diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0183f2d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,19 @@ +name: C17 CI + +on: + push: + pull_request: + +jobs: + build-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y libblas-dev liblapack-dev + - name: Build + run: make clean all + - name: Unit tests + run: make test + - name: Equivalence tests + run: make equivalence-test diff --git a/.gitignore b/.gitignore index 07b4e31..7d24594 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,10 @@ -/build/ -/out/ -/results/ +build/ *.o *.a *.so *.dll +*.dylib *.exe -*.dSYM/ -.vscode/ -.idea/ -# Downloaded experiment source data -experiments/*/data/raw/*.csv -experiments/*/results/*.txt -experiments/*/results/windows/*.txt -experiments/*/results/*_validation_windows.csv -experiments/*/results/*_threshold_sweep.csv +__pycache__/ +.pytest_cache/ +.DS_Store diff --git a/BUILD_AND_TEST_REPORT.txt b/BUILD_AND_TEST_REPORT.txt new file mode 100644 index 0000000..47262a1 --- /dev/null +++ b/BUILD_AND_TEST_REPORT.txt @@ -0,0 +1,28 @@ +rm -rf build +mkdir -p build +cc -Iinclude -Ithird_party/scipy_lbfgsb -std=c17 -O2 -Wall -Wextra -Wpedantic -Werror -c src/cameff.c -o build/cameff.o +cc -Iinclude -Ithird_party/scipy_lbfgsb -std=c17 -O2 -Wall -Wextra -Wpedantic -c third_party/scipy_lbfgsb/lbfgsb_standalone.c -o build/lbfgsb_standalone.o +ar rcs build/libcameff.a build/cameff.o build/lbfgsb_standalone.o +cc -Iinclude -Ithird_party/scipy_lbfgsb -std=c17 -O2 -Wall -Wextra -Wpedantic -Werror tools/cameff_cli.c build/libcameff.a -llapack -lblas -lm -o build/cameff_cli +cc -Iinclude -Ithird_party/scipy_lbfgsb -std=c17 -O2 -Wall -Wextra -Wpedantic -Werror tests/unit/test_cameff.c build/libcameff.a -llapack -lblas -lm -o build/test_cameff +./build/test_cameff +C17 smoke test passed +python3 tests/equivalence/run_equivalence.py +{ + "cases": 36, + "passed": 36, + "failed": 0, + "status": "PASS", + "failures": [] +} + +Spreadsheet runtime warmup failed during python startup +Traceback (most recent call last): + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/patches/warm_spreadsheet_runtime_on_startup.py", line 26, in warm_spreadsheet_runtime_on_startup + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/spreadsheet_warmup.py", line 785, in warm_spreadsheet_runtime + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/spreadsheet_warmup.py", line 720, in _warm_feature_flows + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/spreadsheet_warmup.py", line 704, in _warm_collaboration_flows + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/generated/interface/models.py", line 30820, in hydrate_crdt_from_proto + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/rpc/remote.py", line 749, in __call__ + File "/tmp/tmp.yTcnQsZYiA/artifact_tool_v2-2.8.4/artifact_tool/rpc/client.py", line 150, in call +artifact_tool.rpc.client.RemoteError: hydrateCrdtFromProto requires an empty collaborative document. diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index b05cae9..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,432 +0,0 @@ -cmake_minimum_required(VERSION 3.20) -project(cameff VERSION 1.0.0 LANGUAGES C) - -set(CMAKE_C_STANDARD 17) -set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_C_EXTENSIONS OFF) - -option(CAMEFF_WARNINGS_AS_ERRORS "Treat compiler warnings as errors" ON) -option(CAMEFF_ENABLE_SANITIZERS "Enable address and undefined-behavior sanitizers" OFF) - -add_library(cameff_core STATIC - src/catalog.c - src/config.c - src/evaluation.c - src/expert_registry.c - src/fusion.c - src/experts/baseline_expert.c - src/experts/subduction_expert.c - src/experts/crustal_fault_expert.c - src/experts/cascade_expert.c - src/geo.c - src/pattern.c - src/signals.c - src/framework.c -) - -target_include_directories(cameff_core PUBLIC include) -if(NOT WIN32) - target_compile_definitions(cameff_core PRIVATE _GNU_SOURCE) -endif() - -if(MSVC) - target_compile_options(cameff_core PRIVATE /W4) - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_core PRIVATE /WX) - endif() -else() - target_compile_options(cameff_core PRIVATE - -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes - ) - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_core PRIVATE -Werror) - endif() - target_link_libraries(cameff_core PUBLIC m) - if(CAMEFF_ENABLE_SANITIZERS) - target_compile_options(cameff_core PRIVATE -fsanitize=address,undefined -fno-omit-frame-pointer) - target_link_options(cameff_core PRIVATE -fsanitize=address,undefined) - endif() -endif() - -add_executable(cameff apps/cameff_cli.c) -target_link_libraries(cameff PRIVATE cameff_core) - -if(NOT MSVC) - target_compile_options(cameff PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow) - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff PRIVATE -Werror) - endif() -endif() - -enable_testing() -add_executable(cameff_tests tests/test_main.c) -target_link_libraries(cameff_tests PRIVATE cameff_core) -if(NOT MSVC) - target_compile_options(cameff_tests PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow) - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_tests PRIVATE -Werror) - endif() -endif() -add_test(NAME cameff-unit-tests COMMAND cameff_tests) -add_executable(cameff_m2_contract_tests tests/test_m2_contracts.c) -target_link_libraries(cameff_m2_contract_tests PRIVATE cameff_core) -if(NOT MSVC) - target_compile_options(cameff_m2_contract_tests PRIVATE - -Wall -Wextra -Wpedantic -Wconversion -Wshadow - ) - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_m2_contract_tests PRIVATE -Werror) - endif() -endif() -add_test(NAME cameff-m2-contract-tests COMMAND cameff_m2_contract_tests) -add_executable(cameff_baseline_expert_tests - tests/test_baseline_expert.c -) - -target_link_libraries(cameff_baseline_expert_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_baseline_expert_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_baseline_expert_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-baseline-expert-tests - COMMAND cameff_baseline_expert_tests -) - -add_executable(cameff_pattern_tests - tests/test_pattern.c -) - -target_link_libraries(cameff_pattern_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_pattern_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_pattern_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-pattern-tests - COMMAND cameff_pattern_tests -) -add_executable(cameff_expert_registry_tests - tests/test_expert_registry.c -) - -target_link_libraries(cameff_expert_registry_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_expert_registry_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_expert_registry_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-expert-registry-tests - COMMAND cameff_expert_registry_tests -) - -add_executable(cameff_specialized_expert_tests - tests/test_specialized_experts.c -) - -target_link_libraries(cameff_specialized_expert_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_specialized_expert_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_specialized_expert_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-specialized-expert-tests - COMMAND cameff_specialized_expert_tests -) - -add_executable(cameff_fusion_tests - tests/test_fusion.c -) - -target_link_libraries(cameff_fusion_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_fusion_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_fusion_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-fusion-tests - COMMAND cameff_fusion_tests -) - -add_executable(cameff_evaluation_tests - tests/test_evaluation.c -) - -target_link_libraries(cameff_evaluation_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_evaluation_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_evaluation_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-evaluation-tests - COMMAND cameff_evaluation_tests -) - -add_executable(cameff_structural_case_tests - tests/test_structural_cases.c -) - -target_link_libraries(cameff_structural_case_tests - PRIVATE cameff_core -) - -if(NOT MSVC) - target_compile_options(cameff_structural_case_tests PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options(cameff_structural_case_tests PRIVATE -Werror) - endif() -endif() - -add_test( - NAME cameff-structural-case-tests - COMMAND cameff_structural_case_tests -) - -add_library(cameff_validation STATIC - - src/validation/hindcast.c - src/validation/hindcast_evaluator.c - src/validation/metrics.c - src/validation/report.c - src/validation/cameff_pipeline_adapter.c - - src/data/earthquake_event.c - src/data/earthquake_catalog.c - src/data/earthquake_catalog_filter.c - - -) - -add_executable( - cameff_catalog_tests - tests/data/test_catalog.c -) - -target_link_libraries( - cameff_catalog_tests - PRIVATE - cameff_validation -) - -target_link_libraries( - cameff_validation - PUBLIC - cameff_core -) - -add_executable( - cameff_hindcast_runner - apps/cameff_hindcast_runner.c -) - -target_link_libraries( - cameff_hindcast_runner - PRIVATE - cameff_validation -) - -if(NOT MSVC) - target_compile_options( - cameff_hindcast_runner - PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options( - cameff_hindcast_runner - PRIVATE - -Werror - ) - endif() -endif() - -add_executable( - cameff_catalog_normalizer - apps/cameff_catalog_normalizer.c -) - -if(NOT MSVC) - target_compile_options( - cameff_catalog_normalizer - PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options( - cameff_catalog_normalizer - PRIVATE - -Werror - ) - endif() -endif() - -add_executable( - cameff_threshold_sweep - apps/cameff_threshold_sweep.c -) - -if(NOT MSVC) - target_compile_options( - cameff_threshold_sweep - PRIVATE - -Wall - -Wextra - -Wpedantic - -Wconversion - -Wshadow - ) - - if(CAMEFF_WARNINGS_AS_ERRORS) - target_compile_options( - cameff_threshold_sweep - PRIVATE - -Werror - ) - endif() -endif() - -if(NOT WIN32) - target_link_libraries( - cameff_threshold_sweep - PRIVATE - m - ) -endif() - -target_compile_definitions( - cameff_catalog_tests - PRIVATE - CAMEFF_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" -) - -add_test( - NAME cameff-catalog-tests - COMMAND cameff_catalog_tests -) - -add_executable( - cameff_hindcast_tests - tests/validation/test_hindcast.c -) - -target_link_libraries( - cameff_hindcast_tests - PRIVATE - cameff_validation -) - -target_compile_definitions( - cameff_hindcast_tests - PRIVATE - CAMEFF_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" -) - -add_test( - NAME cameff-hindcast-tests - COMMAND cameff_hindcast_tests -) - -install( - TARGETS - cameff - cameff_hindcast_runner - cameff_catalog_normalizer - cameff_threshold_sweep - RUNTIME DESTINATION bin -) -install(DIRECTORY include/cameff DESTINATION include) diff --git a/MANIFEST.json b/MANIFEST.json new file mode 100644 index 0000000..3af4dd2 --- /dev/null +++ b/MANIFEST.json @@ -0,0 +1,265 @@ +{ + "package": "cameff-c17-reference-fm-v1.4", + "files": { + ".github/workflows/ci.yml": { + "sha256": "f79e6ae118e1337ec17e180055c3e87d1dc6b0a7b2622224058981599e8d4e10", + "size_bytes": 419 + }, + ".gitignore": { + "sha256": "183845dd1daddeeac9364d8691841f89c50b8100fc3c83687959cfe8e05689a9", + "size_bytes": 78 + }, + "BUILD_AND_TEST_REPORT.txt": { + "sha256": "c3b26ff6986e6aeea920982d5a01b6457ba84f45212c8a845c496a9eb0544d68", + "size_bytes": 1946 + }, + "Makefile": { + "sha256": "3856c43fe3a123bd5bc233824356027acb931b33c54e5256005ce25d2635c758", + "size_bytes": 1418 + }, + "PACKAGE_METADATA.json": { + "sha256": "a6aa9fce125e9065c270f453a2f09c3ad0296f381489cc39e0ca23be05988551", + "size_bytes": 372 + }, + "README.md": { + "sha256": "40aedbc9cb716601626af1f65200d5e00788e8596cbb37df61f84c81d7942b36", + "size_bytes": 1256 + }, + "build/cameff.o": { + "sha256": "08fc58979a7e65db5ac02d0909d1476fe620028443fee65ada69c649aba86a48", + "size_bytes": 17792 + }, + "build/cameff_cli": { + "sha256": "a27355e3a021c9667b1327fd55bb9d60f23f149deb4cbf75f3ab10f2cfe9a07a", + "size_bytes": 51352 + }, + "build/lbfgsb_standalone.o": { + "sha256": "fdf4102f7c09dc254ecec4270cd8e03e5d40b1be3dfffd51d4521479aded4464", + "size_bytes": 33768 + }, + "build/libcameff.a": { + "sha256": "47448a6644836fe4b317afed13d8cb352600f0cdff6bf6ec0f4cbf3775bdc3fc", + "size_bytes": 52262 + }, + "build/test_cameff": { + "sha256": "7775d0a556f852b67466483a90ced5db8d8f6e9700d2eb8bb1b03c9455d38d99", + "size_bytes": 50840 + }, + "config/fm_v1_4_numerical_contract.json": { + "sha256": "0adc3c48ed0fd163185a2f2fe6d2fa0ede60d726a83849d8c8757a2d219414cb", + "size_bytes": 5336 + }, + "config/near_zero_equivalence_contract.json": { + "sha256": "adda86911bc2d3cefcb9ee212f8a321c250f83155c9768a0517a3e78900d4d5c", + "size_bytes": 966 + }, + "docs/IMPLEMENTATION_PROVENANCE.md": { + "sha256": "3a9ddd6cec3020b68025df3ddad353830dce6f4d14e6a05ae66fed4ca7a4bf8d", + "size_bytes": 496 + }, + "include/cameff/cameff.h": { + "sha256": "c8f970c75f4dfa9ba178f34ae0ff96fbb310409f60666251dec0e7aebc49e727", + "size_bytes": 4018 + }, + "include/cameff.h": { + "sha256": "5253e7e6f3c53e85b24647471d2ac3fa733b7e0ac23579db49440c0e800403cd", + "size_bytes": 82 + }, + "src/cameff.c": { + "sha256": "36801e02bf9f6877b6347d7b02dbbb93b544ace93b43c5bf05f50efe1c864142", + "size_bytes": 20020 + }, + "tests/equivalence/run_equivalence.py": { + "sha256": "7b222a6a44c325deb0679cecdbed91fd6f3b6c31fe87ad98e6f5e628331c2e20", + "size_bytes": 2951 + }, + "tests/fixtures/catalogs/case_001_background_low_800d.csv": { + "sha256": "956014d5d71abd6ac8feeae1cf4b1db7ea64a77db02656e9641a346223879d58", + "size_bytes": 19509 + }, + "tests/fixtures/catalogs/case_002_background_medium_800d.csv": { + "sha256": "cc0ad0ad54a8358a236d6a19c5a84b396f69f227276ca18e83eee4d93c422d14", + "size_bytes": 19515 + }, + "tests/fixtures/catalogs/case_003_background_high_800d.csv": { + "sha256": "d73cbdbc8d22c45d449a29caf5dde1aded42b578840cd81e45b75b86d8b5d7f4", + "size_bytes": 19448 + }, + "tests/fixtures/catalogs/case_004_periodic_800d.csv": { + "sha256": "15b708cacc2767ab56718a0eeb3e04980a69994249b168e592cc77e1d5a8fb73", + "size_bytes": 19419 + }, + "tests/fixtures/catalogs/case_005_clustered_800d.csv": { + "sha256": "b2ae2825deccd2295bfa50eed794b7773981407edf59649d4b9115b47a5213c9", + "size_bytes": 19505 + }, + "tests/fixtures/catalogs/case_006_quiet_then_active_800d.csv": { + "sha256": "a4608fa8963f49000a46470556842b8ac06fa7ab83b78555e96f8e225ad3a0f4", + "size_bytes": 19496 + }, + "tests/fixtures/catalogs/case_007_active_then_quiet_800d.csv": { + "sha256": "69c21e0d438c20fb2ddb908abfa79ff3d03b1cb14845041cef631a79b36da8a6", + "size_bytes": 19494 + }, + "tests/fixtures/catalogs/case_008_near_stationary_boundary_800d.csv": { + "sha256": "e5265ba9f95fc4533f6201ad6614a06fe56139e928d2311b0b72d526f9cd51c7", + "size_bytes": 19495 + }, + "tests/fixtures/catalogs/case_009_high_mc_800d.csv": { + "sha256": "375c5ee11b5c7158d8ae76d779e6150d14bf86d62a62c8425f812a65de901f73", + "size_bytes": 19402 + }, + "tests/fixtures/catalogs/case_010_low_count_800d.csv": { + "sha256": "5859912e98af6109e236584640fab24e63035974b469ca67586b1fc83d340f66", + "size_bytes": 1881 + }, + "tests/fixtures/catalogs/case_011_burst_end_800d.csv": { + "sha256": "594a9b2ddc7b3c49c5aab6872eea011912708e143f104cf0970a6b84398a7421", + "size_bytes": 19503 + }, + "tests/fixtures/catalogs/case_012_burst_middle_800d.csv": { + "sha256": "537fe2ba37e984a1c38f5a0756d8325fa19c2f3e9c33da748cbc2325253626b8", + "size_bytes": 19507 + }, + "tests/fixtures/catalogs/case_013_background_low_1400d.csv": { + "sha256": "dbb798e55c6adb1dff30fc86a014fa6c9fa125cd118d9a1348dfc8fcef203c6a", + "size_bytes": 34593 + }, + "tests/fixtures/catalogs/case_014_background_medium_1400d.csv": { + "sha256": "5154909d7e48e9784b3f8850885bf0b274cff64a6b395760b418c833e5aa2f5e", + "size_bytes": 34620 + }, + "tests/fixtures/catalogs/case_015_background_high_1400d.csv": { + "sha256": "e53fbbc26282f582a5c19ea4cf23940194008cdb81b904abd678f1035e36c734", + "size_bytes": 34515 + }, + "tests/fixtures/catalogs/case_016_periodic_1400d.csv": { + "sha256": "a1ba0145b73a1ad15ec39ec39a70bb6022bc504f2aa5250d7fb926220283348f", + "size_bytes": 34453 + }, + "tests/fixtures/catalogs/case_017_clustered_1400d.csv": { + "sha256": "f950fe0d163e05f4bcc675785b12517613e5f1e8a2a038a4cfded8b7e941503a", + "size_bytes": 34602 + }, + "tests/fixtures/catalogs/case_018_quiet_then_active_1400d.csv": { + "sha256": "c845f948ca4a61b7d1347787ce7543a596096e955de529612ee2e39b0a5963cb", + "size_bytes": 34592 + }, + "tests/fixtures/catalogs/case_019_active_then_quiet_1400d.csv": { + "sha256": "9c23b9fcf5cf9e97f1dbddf1e6808e1021c8125fafade6d62a3b9c42dec849b9", + "size_bytes": 34535 + }, + "tests/fixtures/catalogs/case_020_near_stationary_boundary_1400d.csv": { + "sha256": "cf03c6e43288ca3d63f6e60b00e1df8a0eb784c7ca4d7574a69e246fedf959fc", + "size_bytes": 34547 + }, + "tests/fixtures/catalogs/case_021_high_mc_1400d.csv": { + "sha256": "93ccdb4e389ef213160e005fa15ed6c0cc569dc6f78a87caad7cbf68e81b061d", + "size_bytes": 34422 + }, + "tests/fixtures/catalogs/case_022_low_count_1400d.csv": { + "sha256": "9e7a5bf7f158dd7b58c00037d105e142ea8dac8331d863dffc8c41c1b9e6b0e3", + "size_bytes": 3991 + }, + "tests/fixtures/catalogs/case_023_burst_end_1400d.csv": { + "sha256": "091c75980542ec8a01bb2b0dec7c4f0424632b8b8edf953e1bd741d15090d2a7", + "size_bytes": 34596 + }, + "tests/fixtures/catalogs/case_024_burst_middle_1400d.csv": { + "sha256": "b0ce65156c9a8c6bbdae9b12bb05379c56325c2de2b9f911d21fbab845a7126e", + "size_bytes": 34596 + }, + "tests/fixtures/catalogs/case_025_background_low_2200d.csv": { + "sha256": "cc8ec78ab75fbced51158fbd07d8370e5773f3fc8cee8742c3046f2fb64e8798", + "size_bytes": 55058 + }, + "tests/fixtures/catalogs/case_026_background_medium_2200d.csv": { + "sha256": "1972fc16fc08b9e981d1df61a7539d7075b282f87d31ece2944fbd7a1bbcb2b0", + "size_bytes": 54955 + }, + "tests/fixtures/catalogs/case_027_background_high_2200d.csv": { + "sha256": "cf509915582347042dd4bb0defc357b39e7679378c5a3380cbf25e48e63c17e9", + "size_bytes": 54871 + }, + "tests/fixtures/catalogs/case_028_periodic_2200d.csv": { + "sha256": "2dcb04376fc5f8cb782c50a4d87bf8d9e1c288fd65bb4a271dcf096608c7757f", + "size_bytes": 54713 + }, + "tests/fixtures/catalogs/case_029_clustered_2200d.csv": { + "sha256": "b50c73b9fea25d704a93872afa68e7bc26898a03597f4f1803ab445d9b65e5c7", + "size_bytes": 55014 + }, + "tests/fixtures/catalogs/case_030_quiet_then_active_2200d.csv": { + "sha256": "78d0cd702d8932b8e196c85efbe62810518ecb881d7c32518ea1fb36963c0e31", + "size_bytes": 54946 + }, + "tests/fixtures/catalogs/case_031_active_then_quiet_2200d.csv": { + "sha256": "25078e1627b1bf87f500eaf302116a7cfc183f2ecff5b7cd5d35afd640b7cd6d", + "size_bytes": 54923 + }, + "tests/fixtures/catalogs/case_032_near_stationary_boundary_2200d.csv": { + "sha256": "e16dbd7e7e5faa788c35cd8b7162de94514ab4f9643effec95ae841c7d3ce9cf", + "size_bytes": 54961 + }, + "tests/fixtures/catalogs/case_033_high_mc_2200d.csv": { + "sha256": "c4dca19169862290b9df6623f1eef185d3c1c96348c61aa8ba0fc6204ff0f8b3", + "size_bytes": 54740 + }, + "tests/fixtures/catalogs/case_034_low_count_2200d.csv": { + "sha256": "12ea60134c410f16f418522731faf322bab254e43d04ad59721c95ca0913f9df", + "size_bytes": 7019 + }, + "tests/fixtures/catalogs/case_035_burst_end_2200d.csv": { + "sha256": "f63611e4fec7ae0462ff7e32aa372442961c955bf0a9bd6c1c3435965f530e97", + "size_bytes": 54980 + }, + "tests/fixtures/catalogs/case_036_burst_middle_2200d.csv": { + "sha256": "0e464ef6905617422ce0fa86f3ef30f48d5917c7f1769805206ca9c16c86000a", + "size_bytes": 55017 + }, + "tests/fixtures/oracle/P34G_NORMATIVE_ETAS_ORACLE.csv": { + "sha256": "8bf1bc3263efa0416eb75bd19ac885ecc09e75fd9b15741fd746cc35542f753b", + "size_bytes": 9770 + }, + "tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE.csv": { + "sha256": "16138750b893c9939a9ebf4d7d95b0efeed012b31bec27a802518c7fead66744", + "size_bytes": 11549 + }, + "tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN1.csv": { + "sha256": "16138750b893c9939a9ebf4d7d95b0efeed012b31bec27a802518c7fead66744", + "size_bytes": 11549 + }, + "tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN2.csv": { + "sha256": "16138750b893c9939a9ebf4d7d95b0efeed012b31bec27a802518c7fead66744", + "size_bytes": 11549 + }, + "tests/unit/test_cameff.c": { + "sha256": "1bdee60a134192ed444cdfe0c2fc16680a30550e6035c85d6480884875442faa", + "size_bytes": 246 + }, + "third_party/scipy_lbfgsb/PROVENANCE.txt": { + "sha256": "bb269f77f37744a56e635377ffe56ddf1cfe6a0fb9f27481d42fe0a91b7db5ee", + "size_bytes": 498 + }, + "third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.c": { + "sha256": "0519789db86a2f80398b6c8e14d081fcd95b6136574388b36751042ea8861f5d", + "size_bytes": 127782 + }, + "third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.h": { + "sha256": "0280f8a5907a3eeec38859c1acd44deeef810da0589cce50ad57654f25f4d90f", + "size_bytes": 7051 + }, + "third_party/scipy_lbfgsb/lbfgsb_standalone.c": { + "sha256": "a3b102fd594dde7d4de2c9b0b780ab87b6a473a32c8b24f915249cf4c23b7c07", + "size_bytes": 127805 + }, + "third_party/scipy_lbfgsb/lbfgsb_standalone.h": { + "sha256": "9a9dca13220b5532ba42d8d6ee39ce9cb08b5586334605efe167fbbd3e6262ff", + "size_bytes": 986 + }, + "tools/cameff_cli.c": { + "sha256": "36d7a8cf0041733b9541565f0e18fc7a7c5789ce24cd764c1ba66e912ec927d5", + "size_bytes": 3636 + } + } +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf9c240 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +CC ?= cc +AR ?= ar + +CFLAGS ?= -std=c17 -O2 -Wall -Wextra -Wpedantic -Werror +CPPFLAGS ?= -Iinclude -Ithird_party/scipy_lbfgsb +LDLIBS ?= -llapack -lblas -lm + +BUILD := build +LIBOBJ := $(BUILD)/cameff.o $(BUILD)/lbfgsb_standalone.o + +.PHONY: all test equivalence-test sanitize clean + +all: $(BUILD)/libcameff.a $(BUILD)/cameff_cli $(BUILD)/test_cameff + +$(BUILD): + mkdir -p $(BUILD) + +$(BUILD)/cameff.o: src/cameff.c include/cameff/cameff.h third_party/scipy_lbfgsb/lbfgsb_standalone.h | $(BUILD) + $(CC) $(CPPFLAGS) $(CFLAGS) -c src/cameff.c -o $@ + +$(BUILD)/lbfgsb_standalone.o: third_party/scipy_lbfgsb/lbfgsb_standalone.c third_party/scipy_lbfgsb/lbfgsb_standalone.h | $(BUILD) + $(CC) $(CPPFLAGS) -std=c17 -O2 -Wall -Wextra -Wpedantic -c third_party/scipy_lbfgsb/lbfgsb_standalone.c -o $@ + +$(BUILD)/libcameff.a: $(LIBOBJ) + $(AR) rcs $@ $^ + +$(BUILD)/cameff_cli: tools/cameff_cli.c $(BUILD)/libcameff.a + $(CC) $(CPPFLAGS) $(CFLAGS) tools/cameff_cli.c $(BUILD)/libcameff.a $(LDLIBS) -o $@ + +$(BUILD)/test_cameff: tests/unit/test_cameff.c $(BUILD)/libcameff.a + $(CC) $(CPPFLAGS) $(CFLAGS) tests/unit/test_cameff.c $(BUILD)/libcameff.a $(LDLIBS) -o $@ + +test: all + ./$(BUILD)/test_cameff + +equivalence-test: all + python3 tests/equivalence/run_equivalence.py + +sanitize: + $(MAKE) clean + $(MAKE) CFLAGS="-std=c17 -O1 -g -Wall -Wextra -Wpedantic -Werror -fsanitize=address,undefined" all + ./$(BUILD)/test_cameff + +clean: + rm -rf $(BUILD) diff --git a/PACKAGE_METADATA.json b/PACKAGE_METADATA.json new file mode 100644 index 0000000..06b260c --- /dev/null +++ b/PACKAGE_METADATA.json @@ -0,0 +1,9 @@ +{ + "package": "cameff-c17-reference-fm-v1.4", + "fm_version": "1.4", + "language": "ISO C17", + "build_and_tests_passed": true, + "parent_P34K_sha256": "4a930b54321b0ebc6b1dcdeaf9a7e565988b4e58155c66e6523f9006a0097c29", + "normative_FM_v1_4_sha256": "a4a326da854ab6cd5960ecd14e47dc6280c5f43ad4e35bac4937fefc7cd02d48", + "created_utc": "2026-07-16T14:38:38.039899+00:00" +} \ No newline at end of file diff --git a/README.md b/README.md index 8fa45f9..b62de35 100644 --- a/README.md +++ b/README.md @@ -1,324 +1,61 @@ -# CAMEFF b1.0.0 — Milestone 1 +# CAMEFF C17 Reference Implementation — FM-v1.4 -Pure C17 foundation for the **Classification-Adaptive Multi-Expert Forecasting Framework**. +This repository contains the simple standalone C17 operational numerical +reference implementation of the validated CAMEFF FM-v1.4 branch. -Milestone 1 deliberately implements the framework substrate, not a claimed operational earthquake predictor: +## Implemented branch -- time-causal CSV catalog ingestion; -- geographic and temporal event selection; -- eight normalized, uncertainty-aware signal channels; -- explicit fault-map-confidence input; -- deterministic evidence aggregation; -- `BACKGROUND`, `WATCH`, `ELEVATED`, and `INSUFFICIENT_DATA` states; -- external configuration, CLI, unit tests, CMake/Ninja build. - -The weights and thresholds are transparent engineering defaults. They are not calibrated probabilities and must not be treated as public-warning criteria. +- magnitude-completeness estimation; +- Gutenberg–Richter b-value; +- temporal ETAS fitting; +- official SciPy L-BFGS-B C translation; +- stationarity rejection; +- seven-day M>=6 probability; +- P29K calibration support; +- architecture utilities for quality, unknown support, and fusion. ## Build -```bash -cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -cmake --build build -ctest --test-dir build --output-on-failure -``` - -## Run - -```bash -./build/cameff analyze \ - --catalog data/examples/catalog.csv \ - --cutoff 2026-01-31T00:00:00Z \ - --lat 10.0 --lon 123.0 --radius-km 100 \ - --lookback-days 7 --config config/default.conf -``` - -## Milestone boundary - -Included: data contracts, signal extraction, uncertainty propagation, evidence-level output, portability tests. - -Deferred: tectonic-pattern classifier, expert modules, expert gating, calibration, hindcast runner, USGS/FDSN adapters, negative controls, probability calibration, persistence, evolutionary optimization, and operational hazard mapping. - ---- - -# CAMEFF b1.0.0 — Milestone 2: Expert Framework Architecture - -Status: Complete - -Milestone 2 evolved the reference implementation into an expert-driven earthquake analysis framework. - -## Implemented components: - -### Pattern Classification - -Added deterministic soft pattern classification: - -Background seismic behavior -Subduction preparation -Crustal fault activation -Seismic cascade activity -Volcanic unrest -Transform fault activity -Unknown / insufficient information - -The classifier produces normalized pattern memberships: - -[ -\sum_i p_i = 1 -] - -where each (p_i) represents relative compatibility with a seismic process pattern. - -### Expert Registry and Routing - -Added an expert orchestration layer: - -Expert registration -Applicability evaluation -Pattern-based routing -Routing strength calculation -Explicit expert abstention - -Routing strength: - -[ -g_e = a_e \times p_e -] - -where: - -(a_e) = expert applicability -(p_e) = pattern membership - -Experts can abstain when their specialization is not supported. - -### Specialized Experts - -Implemented initial expert modules: - -Baseline expert -Preserves Milestone 1 behavior -Subduction expert -Handles subduction-related preparation patterns -Crustal fault expert -Handles crustal activation and hidden-fault uncertainty scenarios -Seismic cascade expert -Handles clustered and cascading seismic activity - -### Confidence-Aware Fusion - -Added multi-expert evidence fusion. - -Active experts contribute according to: - -[ -\omega_e = g_e c_e -] - -where: - -(g_e) = routing strength -(c_e) = expert confidence - -Fused evidence: - -[ -H = -\frac{\sum_e \omega_e H_e} -{\sum_e \omega_e} -] - -Abstaining experts are excluded from fusion while remaining visible in explanations. - -### End-to-End Evaluation Pipeline - -Added complete processing flow: - -Signal Frame - | - v -Pattern Classification - | - v -Expert Registry - | - v -Expert Routing - | - v -Expert Evaluation - | - v -Confidence Fusion - | - v -Explainable Assessment - -## Structural Hindcast Scenarios - -Added architecture validation scenarios: - -Japan subduction scenario -Russia subduction scenario -Cebu crustal fault scenario -Davao mixed tectonic scenario -Venezuela transform scenario - -These tests validate architectural behavior and routing logic. - -They are not claims of operational earthquake prediction accuracy. - -## Current Capability After Milestone 2 - -CAMEFF b1.0.0 currently provides: - -Deterministic earthquake process classification -Expert-based interpretation architecture -Confidence-aware reasoning -Explainable assessment output -Extensible expert framework - -Future milestones will focus on: - -Additional expert models -Real catalog integration -Historical hindcast experiments -Calibration against observed earthquake catalogs -Operational hazard visualization -Scientific validation - -## Milestone 3 — Historical Hindcast and Frozen Validation - -Milestone 3 establishes the first reproducible historical-validation -baseline for CAMEFF b1.0.0. - -The core signal mathematics, expert-fusion logic, warning threshold, and -validation configuration were frozen before the final test cases were -evaluated. Results were preserved even when the framework missed the -target event. - -### Frozen validation configuration - -* Warning threshold: `0.73` -* Forecast lead time: `24 hours` -* Evidence window: `365 days` -* Analysis radius: `500 km` -* Minimum catalog magnitude: `M2.5` -* Minimum evidence events: `20` - -The CAMEFF hazard-evidence output is an uncalibrated evidence score. It -must not be interpreted as an earthquake-occurrence probability. - -### Historical positive cases - -| Case | Evidence events | Hazard evidence | Fused confidence | Outcome | -| -------------- | --------------: | --------------: | ---------------: | ------- | -| Japan 2011 | 235 | 0.780870 | 0.953963 | HIT | -| Russia 2025 | 626 | 0.850781 | 0.910297 | HIT | -| Cebu 2025 | 236 | 0.602291 | 0.841350 | MISS | -| Davao 2026 | 906 | 0.685162 | 0.872197 | MISS | -| Venezuela 2026 | 33 | 0.514422 | 0.954718 | MISS | - -### Aggregate frozen-validation results - -The consolidated validation set contains: - -* 5 evaluable positive windows -* 16 evaluable negative-control windows -* 4 non-evaluable Venezuela control windows - -The aggregate confusion counts are: - -| Metric | Count | -| --------------------- | ----: | -| True positives | 2 | -| False positives | 0 | -| True negatives | 16 | -| False negatives | 3 | -| Non-evaluable windows | 4 | - -The aggregate performance metrics are: - -| Metric | Value | -| ------------------- | -------: | -| Precision | 1.000000 | -| Recall | 0.400000 | -| Specificity | 1.000000 | -| False-positive rate | 0.000000 | -| F1 score | 0.571429 | -| Balanced accuracy | 0.700000 | - -### Interpretation - -CAMEFF detected the Japan 2011 and Russia 2025 positive cases while -remaining below the frozen warning threshold for all sixteen evaluable -negative controls. - -The framework missed the Cebu 2025, Davao 2026, and Venezuela 2026 -positive cases. - -All five positive cases were routed to: - -```text -SUBDUCTION_PREPARATION +```sh +make clean all ``` -and all selected: +## Test -```text -baseline +```sh +make test +make equivalence-test ``` -as the dominant expert. - -This indicates that the current architecture does not yet provide -sufficient tectonic-regime discrimination or expert specialization. -Shallow crustal, strike-slip, regional subduction, and sparse-catalog -conditions are not being routed distinctly enough. +The equivalence suite contains 36 frozen catalog fixtures and uses the P34K +mixed absolute/relative near-zero comparison contract. -The fault-map-confidence signal also remains a fixed placeholder: +Expected result: ```text -fault_map_confidence=0.500000 -supporting_events=0 +36 cases +36 passed +0 failed ``` -High fused confidence was observed for both correct and incorrect -classifications. Fused confidence therefore represents confidence in the -available evidence frame, not confidence that a target earthquake will -occur. +## Dependencies -### Reproduce the consolidated report +- ISO C17 compiler +- BLAS +- LAPACK +- Python 3 only for the equivalence test harness -Run: +Ubuntu/Debian: -```bash -./experiments/milestone_3/run_aggregate_report.sh +```sh +sudo apt-get install build-essential libblas-dev liblapack-dev python3 ``` -Generated outputs: - -```text -experiments/milestone_3/results/cameff_b1_milestone_3_windows.csv -experiments/milestone_3/results/cameff_b1_milestone_3_cases.csv -experiments/milestone_3/results/cameff_b1_milestone_3_metrics.csv -experiments/milestone_3/results/cameff_b1_milestone_3_report.txt -``` - -### Milestone conclusion - -Milestone 3 is the official frozen validation baseline for CAMEFF -b1.0.0. +## Reference status -The misses are not corrected retroactively. They are preserved as -evidence of the limitations of the current architecture. +This is an operational numerical one-to-one implementation of the validated +FM-v1.4 ETAS branch under the frozen P34F/P34K numerical contracts. -Milestone 4 will address: +Bit-for-bit equality between Python and C17 is not claimed. -* tectonic-regime routing; -* specialized experts; -* shallow-crustal and strike-slip patterns; -* fault-aware spatial geometry; -* multi-scale analysis regions; -* sparse-catalog handling; -* preservation of the Japan and Russia hits; -* independent holdout validation. +Binary and public-warning outputs remain disabled. diff --git a/apps/cameff_catalog_normalizer.c b/apps/cameff_catalog_normalizer.c deleted file mode 100644 index e642e77..0000000 --- a/apps/cameff_catalog_normalizer.c +++ /dev/null @@ -1,624 +0,0 @@ -#include -#include -#include -#include - -#define CAMEFF_NORMALIZER_LINE_CAPACITY 8192U -#define CAMEFF_NORMALIZER_FIELD_CAPACITY 1024U -#define CAMEFF_NORMALIZER_MAX_COLUMNS 64U - -typedef struct -{ - char values[CAMEFF_NORMALIZER_MAX_COLUMNS] - [CAMEFF_NORMALIZER_FIELD_CAPACITY]; - - size_t count; -} CsvRow; - -typedef struct -{ - size_t time; - size_t latitude; - size_t longitude; - size_t depth; - size_t magnitude; - size_t region; -} UsgsColumnMap; - -static void remove_line_ending( - char *line -) -{ - size_t length; - - if (line == NULL) - { - return; - } - - length = strlen(line); - - while (length > 0U && - (line[length - 1U] == '\n' || - line[length - 1U] == '\r')) - { - line[length - 1U] = '\0'; - length--; - } -} - -static int append_character( - char *field, - size_t *length, - char character -) -{ - if (field == NULL || length == NULL) - { - return 0; - } - - if (*length + 1U >= - CAMEFF_NORMALIZER_FIELD_CAPACITY) - { - return 0; - } - - field[*length] = character; - (*length)++; - field[*length] = '\0'; - - return 1; -} - -static int parse_csv_row( - const char *line, - CsvRow *row -) -{ - size_t column; - size_t field_length; - size_t index; - int inside_quotes; - - if (line == NULL || row == NULL) - { - return 0; - } - - (void)memset(row, 0, sizeof(*row)); - - column = 0U; - field_length = 0U; - index = 0U; - inside_quotes = 0; - - while (line[index] != '\0') - { - char current; - - current = line[index]; - - if (current == '"') - { - if (inside_quotes != 0 && - line[index + 1U] == '"') - { - if (!append_character( - row->values[column], - &field_length, - '"')) - { - return 0; - } - - index += 2U; - continue; - } - - inside_quotes = !inside_quotes; - index++; - continue; - } - - if (current == ',' && - inside_quotes == 0) - { - column++; - - if (column >= - CAMEFF_NORMALIZER_MAX_COLUMNS) - { - return 0; - } - - field_length = 0U; - index++; - continue; - } - - if (!append_character( - row->values[column], - &field_length, - current)) - { - return 0; - } - - index++; - } - - if (inside_quotes != 0) - { - return 0; - } - - row->count = column + 1U; - - return 1; -} - -static int find_column( - const CsvRow *header, - const char *name, - size_t *index -) -{ - size_t column; - - if (header == NULL || - name == NULL || - index == NULL) - { - return 0; - } - - for (column = 0U; - column < header->count; - column++) - { - if (strcmp( - header->values[column], - name) == 0) - { - *index = column; - return 1; - } - } - - return 0; -} - -static int build_usgs_column_map( - const CsvRow *header, - UsgsColumnMap *map -) -{ - if (header == NULL || map == NULL) - { - return 0; - } - - return - find_column(header, "time", &map->time) && - find_column(header, "latitude", &map->latitude) && - find_column(header, "longitude", &map->longitude) && - find_column(header, "depth", &map->depth) && - find_column(header, "mag", &map->magnitude) && - find_column(header, "place", &map->region); -} - -static int validate_required_fields( - const CsvRow *row, - const UsgsColumnMap *map -) -{ - size_t largest_index; - - if (row == NULL || map == NULL) - { - return 0; - } - - largest_index = map->time; - - if (map->latitude > largest_index) - { - largest_index = map->latitude; - } - - if (map->longitude > largest_index) - { - largest_index = map->longitude; - } - - if (map->depth > largest_index) - { - largest_index = map->depth; - } - - if (map->magnitude > largest_index) - { - largest_index = map->magnitude; - } - - if (map->region > largest_index) - { - largest_index = map->region; - } - - if (row->count <= largest_index) - { - return 0; - } - - if (row->values[map->time][0] == '\0' || - row->values[map->latitude][0] == '\0' || - row->values[map->longitude][0] == '\0' || - row->values[map->depth][0] == '\0' || - row->values[map->magnitude][0] == '\0' || - row->values[map->region][0] == '\0') - { - return 0; - } - - return 1; -} - -static void write_csv_field( - FILE *output, - const char *value -) -{ - const char *cursor; - int needs_quotes; - - needs_quotes = 0; - - for (cursor = value; - *cursor != '\0'; - cursor++) - { - if (*cursor == ',' || - *cursor == '"' || - *cursor == '\n' || - *cursor == '\r') - { - needs_quotes = 1; - break; - } - } - - if (needs_quotes == 0) - { - (void)fputs(value, output); - return; - } - - (void)fputc('"', output); - - for (cursor = value; - *cursor != '\0'; - cursor++) - { - if (*cursor == '"') - { - (void)fputc('"', output); - } - - (void)fputc(*cursor, output); - } - - (void)fputc('"', output); -} - -static void normalize_region( - const char *source, - char *destination, - size_t destination_capacity -) -{ - size_t source_index; - size_t destination_index; - - if (source == NULL || - destination == NULL || - destination_capacity == 0U) - { - return; - } - - destination_index = 0U; - - for (source_index = 0U; - source[source_index] != '\0' && - destination_index + 1U < destination_capacity; - source_index++) - { - char character; - - character = source[source_index]; - - if (character == ',' || - character == '\n' || - character == '\r') - { - character = ' '; - } - - destination[destination_index] = - character; - - destination_index++; - } - - destination[destination_index] = '\0'; -} - -static int normalize_catalog( - const char *input_path, - const char *output_path -) -{ - FILE *input; - FILE *output; - - char line[CAMEFF_NORMALIZER_LINE_CAPACITY]; - - CsvRow header; - CsvRow row; - UsgsColumnMap map; - - size_t input_rows; - size_t output_rows; - size_t rejected_rows; - - input = fopen(input_path, "r"); - - if (input == NULL) - { - (void)fprintf( - stderr, - "Unable to open input catalog: %s\n", - input_path - ); - - return 0; - } - - output = fopen(output_path, "w"); - - if (output == NULL) - { - (void)fprintf( - stderr, - "Unable to open output catalog: %s\n", - output_path - ); - - (void)fclose(input); - return 0; - } - - if (fgets( - line, - sizeof(line), - input) == NULL) - { - (void)fprintf( - stderr, - "Input catalog is empty.\n" - ); - - (void)fclose(output); - (void)fclose(input); - - return 0; - } - - remove_line_ending(line); - - if (!parse_csv_row(line, &header)) - { - (void)fprintf( - stderr, - "Unable to parse USGS CSV header.\n" - ); - - (void)fclose(output); - (void)fclose(input); - - return 0; - } - - if (!build_usgs_column_map( - &header, - &map)) - { - (void)fprintf( - stderr, - "USGS CSV is missing one or more required columns.\n" - ); - - (void)fclose(output); - (void)fclose(input); - - return 0; - } - - (void)fputs( - "time,latitude,longitude,depth,mag,region\n", - output - ); - - input_rows = 0U; - output_rows = 0U; - rejected_rows = 0U; - - while (fgets( - line, - sizeof(line), - input) != NULL) - { - remove_line_ending(line); - - if (line[0] == '\0') - { - continue; - } - - input_rows++; - - if (!parse_csv_row(line, &row) || - !validate_required_fields( - &row, - &map)) - { - rejected_rows++; - continue; - } - - write_csv_field( - output, - row.values[map.time] - ); - - (void)fputc(',', output); - - write_csv_field( - output, - row.values[map.latitude] - ); - - (void)fputc(',', output); - - write_csv_field( - output, - row.values[map.longitude] - ); - - (void)fputc(',', output); - - write_csv_field( - output, - row.values[map.depth] - ); - - (void)fputc(',', output); - - write_csv_field( - output, - row.values[map.magnitude] - ); - - (void)fputc(',', output); - - { - char normalized_region[64]; - - normalize_region( - row.values[map.region], - normalized_region, - sizeof(normalized_region) - ); - - write_csv_field( - output, - normalized_region - ); - } - - (void)fputc('\n', output); - - output_rows++; - } - - if (ferror(input)) - { - (void)fprintf( - stderr, - "Error while reading input catalog.\n" - ); - - (void)fclose(output); - (void)fclose(input); - - return 0; - } - - if (fclose(output) != 0) - { - (void)fprintf( - stderr, - "Error while closing output catalog.\n" - ); - - (void)fclose(input); - return 0; - } - - if (fclose(input) != 0) - { - (void)fprintf( - stderr, - "Error while closing input catalog.\n" - ); - - return 0; - } - - (void)printf( - "input_rows=%zu\n", - input_rows - ); - - (void)printf( - "normalized_rows=%zu\n", - output_rows - ); - - (void)printf( - "rejected_rows=%zu\n", - rejected_rows - ); - - (void)printf( - "output_file=%s\n", - output_path - ); - - return 1; -} - -static void print_usage( - const char *program_name -) -{ - (void)fprintf( - stderr, - "Usage:\n" - " %s \n", - program_name - ); -} - -int main( - int argc, - char **argv -) -{ - if (argc != 3) - { - print_usage(argv[0]); - return EXIT_FAILURE; - } - - if (!normalize_catalog( - argv[1], - argv[2])) - { - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} \ No newline at end of file diff --git a/apps/cameff_cli.c b/apps/cameff_cli.c deleted file mode 100644 index b190f41..0000000 --- a/apps/cameff_cli.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "cameff/cameff.h" -#include -#include -#include - -static void usage(const char *p){fprintf(stderr,"Usage: %s analyze --catalog FILE --cutoff ISO --lat N --lon N --radius-km N [--lookback-days N] [--config FILE]\n",p);} -static const char *arg(int argc,char **argv,const char *name){int i;for(i=2;i+1 -#include -#include -#include -#include -#include - -static int parse_unsigned_value( - const char *text, - unsigned *value -) -{ - char *end; - unsigned long parsed; - - if (text == NULL || value == NULL) - { - return 0; - } - - errno = 0; - end = NULL; - - parsed = strtoul(text, &end, 10); - - if (errno != 0 || - end == text || - *end != '\0') - { - return 0; - } - - *value = (unsigned)parsed; - - return 1; -} - -static int parse_int64_value( - const char *text, - int64_t *value -) -{ - char *end; - intmax_t parsed; - - if (text == NULL || value == NULL) - { - return 0; - } - - errno = 0; - end = NULL; - - parsed = strtoimax(text, &end, 10); - - if (errno != 0 || - end == text || - *end != '\0') - { - return 0; - } - - *value = (int64_t)parsed; - - return 1; -} - -static int parse_double_value( - const char *text, - double *value -) -{ - char *end; - double parsed; - - if (text == NULL || value == NULL) - { - return 0; - } - - errno = 0; - end = NULL; - - parsed = strtod(text, &end); - - if (errno != 0 || - end == text || - *end != '\0') - { - return 0; - } - - *value = parsed; - - return 1; -} - -static void initialize_subduction_region( - cameff_region_profile_t *region -) -{ - if (region == NULL) - { - return; - } - - (void)memset( - region, - 0, - sizeof(*region) - ); - - (void)snprintf( - region->region_id, - sizeof(region->region_id), - "%s", - "japan-trench" - ); - - region->tectonic_setting = - CAMEFF_TECTONIC_SUBDUCTION; - - region->subduction_affinity = 1.0; - region->crustal_fault_affinity = 0.10; - region->transform_affinity = 0.05; - region->volcanic_affinity = 0.05; - - region->fault_map_confidence = 0.90; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static const char *hindcast_status_name( - int status -) -{ - switch (status) - { - case CAMEFF_HINDCAST_OK: - return "ok"; - - case CAMEFF_HINDCAST_INVALID_ARGUMENT: - return "invalid-argument"; - - case CAMEFF_HINDCAST_INVALID_TARGET: - return "invalid-target"; - - case CAMEFF_HINDCAST_INVALID_TIME_WINDOW: - return "invalid-time-window"; - - case CAMEFF_HINDCAST_INVALID_RADIUS: - return "invalid-radius"; - - case CAMEFF_HINDCAST_FILTER_FAILED: - return "filter-failed"; - - case CAMEFF_HINDCAST_NO_EVIDENCE: - return "no-evidence"; - - case CAMEFF_HINDCAST_EVALUATION_FAILED: - return "evaluation-failed"; - - case CAMEFF_HINDCAST_NOT_EVALUATED: - return "not-evaluated"; - - default: - return "unknown"; - } -} - -static void print_usage( - const char *program_name -) -{ - (void)fprintf( - stderr, - "Usage:\n" - " %s " - " " - " " - " " - " " - " " - " \n", - program_name - ); -} - -int main( - int argc, - char **argv -) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - CameffPipelineAdapterContext adapter_context; - - unsigned lookback_days; - unsigned minimum_events; - - int64_t target_epoch; - int64_t observation_start_epoch; - int64_t cutoff_epoch; - - double target_latitude; - double target_longitude; - double target_depth_km; - double target_magnitude; - - double center_latitude; - double center_longitude; - double radius_km; - - const char *target_region; - - int catalog_status; - int hindcast_status; - - if (argc != 15) - { - print_usage(argv[0]); - return EXIT_FAILURE; - } - - target_region = argv[7]; - - if (!parse_int64_value( - argv[2], - &target_epoch) || - !parse_double_value( - argv[3], - &target_latitude) || - !parse_double_value( - argv[4], - &target_longitude) || - !parse_double_value( - argv[5], - &target_depth_km) || - !parse_double_value( - argv[6], - &target_magnitude) || - !parse_int64_value( - argv[8], - &observation_start_epoch) || - !parse_int64_value( - argv[9], - &cutoff_epoch) || - !parse_double_value( - argv[10], - ¢er_latitude) || - !parse_double_value( - argv[11], - ¢er_longitude) || - !parse_double_value( - argv[12], - &radius_km) || - !parse_unsigned_value( - argv[13], - &lookback_days) || - !parse_unsigned_value( - argv[14], - &minimum_events)) - { - (void)fprintf( - stderr, - "Invalid command-line argument.\n" - ); - - print_usage(argv[0]); - - return EXIT_FAILURE; - } - -if (strlen(target_region) >= - sizeof(experiment.target.region)) -{ - (void)fprintf( - stderr, - "Target region exceeds the maximum length.\n" - ); - - return EXIT_FAILURE; -} - - catalog_status = - catalog_load_csv( - argv[1], - &catalog - ); - - if (catalog_status != CAMEFF_CATALOG_OK) - { - (void)fprintf( - stderr, - "Failed to load catalog: status=%d\n", - catalog_status - ); - - return EXIT_FAILURE; - } - - hindcast_experiment_initialize( - &experiment - ); - - initialize_earthquake_event( - &experiment.target - ); - - experiment.target.timestamp = - (time_t)target_epoch; - - experiment.target.latitude = - target_latitude; - - experiment.target.longitude = - target_longitude; - - experiment.target.depth_km = - target_depth_km; - - experiment.target.magnitude = - target_magnitude; - - (void)snprintf( - experiment.target.region, - sizeof(experiment.target.region), - "%s", - target_region - ); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)observation_start_epoch; - - experiment.cutoff_time = - (time_t)cutoff_epoch; - - experiment.analysis_radius_km = - radius_km; - - cameff_pipeline_adapter_context_initialize( - &adapter_context - ); - - adapter_context.analysis_latitude = - center_latitude; - - adapter_context.analysis_longitude = - center_longitude; - - adapter_context.analysis_radius_km = - radius_km; - - adapter_context.lookback_days = - lookback_days; - - adapter_context.cutoff_epoch_seconds = - cutoff_epoch; - - adapter_context.config.minimum_events = - minimum_events; - - initialize_subduction_region( - &adapter_context.region - ); - - experiment.evaluator = - cameff_pipeline_evaluator; - - experiment.evaluator_context = - &adapter_context; - - hindcast_status = - run_hindcast( - &experiment, - &result - ); - - (void)printf( - "experiment_status=%s\n", - hindcast_status_name(hindcast_status) - ); - - (void)printf( - "experiment_status_code=%d\n", - hindcast_status - ); - - (void)printf( - "target_region=%s\n", - experiment.target.region - ); - - (void)printf( - "target_timestamp=%" PRId64 "\n", - (int64_t)experiment.target.timestamp - ); - - (void)printf( - "target_latitude=%.6f\n", - experiment.target.latitude - ); - - (void)printf( - "target_longitude=%.6f\n", - experiment.target.longitude - ); - - (void)printf( - "target_depth_km=%.6f\n", - experiment.target.depth_km - ); - - (void)printf( - "target_magnitude=%.6f\n", - experiment.target.magnitude - ); - - (void)printf( - "observation_start=%" PRId64 "\n", - observation_start_epoch - ); - - (void)printf( - "cutoff=%" PRId64 "\n", - cutoff_epoch - ); - - (void)printf( - "analysis_center_latitude=%.6f\n", - center_latitude - ); - - (void)printf( - "analysis_center_longitude=%.6f\n", - center_longitude - ); - - (void)printf( - "analysis_radius_km=%.6f\n", - radius_km - ); - - (void)printf( - "lookback_days=%u\n", - lookback_days - ); - - (void)printf( - "minimum_events=%u\n", - minimum_events - ); - - (void)printf( - "evidence_event_count=%zu\n", - result.evidence_event_count - ); - - if (hindcast_status == CAMEFF_HINDCAST_OK) - { - (void)printf( - "hazard_evidence=%.6f\n", - result.hazard_score - ); - - (void)printf( - "fused_confidence=%.6f\n", - result.confidence - ); - - (void)printf( - "dominant_pattern=%s\n", - result.dominant_pattern - ); - - (void)printf( - "dominant_expert=%s\n", - result.dominant_expert - ); - - { - size_t signal_index; - - for (signal_index = 0U; - signal_index < result.signal_count; - signal_index++) - { - const cameff_signal_t *signal; - const char *signal_name; - - signal = - &result.signals[signal_index]; - - signal_name = - cameff_signal_name( - (cameff_signal_id_t)signal_index - ); - - (void)printf( - "signal.%s.value=%.6f\n", - signal_name, - signal->value - ); - - (void)printf( - "signal.%s.confidence=%.6f\n", - signal_name, - signal->confidence - ); - - (void)printf( - "signal.%s.supporting_events=%zu\n", - signal_name, - signal->supporting_events - ); - - (void)printf( - "signal.%s.available=%d\n", - signal_name, - signal->available - ); - } - } - } - - return hindcast_status == CAMEFF_HINDCAST_OK - ? EXIT_SUCCESS - : EXIT_FAILURE; -} \ No newline at end of file diff --git a/apps/cameff_threshold_sweep.c b/apps/cameff_threshold_sweep.c deleted file mode 100644 index 4b688b7..0000000 --- a/apps/cameff_threshold_sweep.c +++ /dev/null @@ -1,387 +0,0 @@ -#include -#include -#include -#include -#include - -#define CAMEFF_SWEEP_LINE_CAPACITY 2048U -#define CAMEFF_SWEEP_MAX_CASES 1024U - -typedef struct -{ - int label; - double score; -} ValidationCase; - -static int parse_label( - const char *text, - int *label -) -{ - char *end; - long value; - - if (text == NULL || label == NULL) - { - return 0; - } - - errno = 0; - end = NULL; - - value = strtol(text, &end, 10); - - if (errno != 0 || - end == text || - *end != '\0' || - (value != 0L && value != 1L)) - { - return 0; - } - - *label = (int)value; - - return 1; -} - -static int parse_score( - const char *text, - double *score -) -{ - char *end; - double value; - - if (text == NULL || score == NULL) - { - return 0; - } - - errno = 0; - end = NULL; - - value = strtod(text, &end); - - if (errno != 0 || - end == text || - *end != '\0' || - !isfinite(value) || - value < 0.0 || - value > 1.0) - { - return 0; - } - - *score = value; - - return 1; -} - -static int parse_validation_row( - char *line, - ValidationCase *validation_case -) -{ - char *token; - size_t column; - - if (line == NULL || validation_case == NULL) - { - return 0; - } - - column = 0U; - token = strtok(line, ","); - - while (token != NULL) - { - if (column == 1U) - { - if (!parse_label( - token, - &validation_case->label)) - { - return 0; - } - } - else if (column == 5U) - { - if (!parse_score( - token, - &validation_case->score)) - { - return 0; - } - } - - column++; - token = strtok(NULL, ","); - } - - return column >= 6U; -} - -static double safe_divide( - double numerator, - double denominator -) -{ - if (denominator == 0.0) - { - return 0.0; - } - - return numerator / denominator; -} - -static void run_threshold_sweep( - const ValidationCase *cases, - size_t case_count -) -{ - unsigned threshold_index; - - (void)printf( - "threshold,tp,fp,tn,fn," - "precision,recall,specificity," - "false_positive_rate,f1,balanced_accuracy\n" - ); - - for (threshold_index = 0U; - threshold_index <= 100U; - threshold_index += 5U) - { - double threshold; - - size_t true_positive; - size_t false_positive; - size_t true_negative; - size_t false_negative; - - size_t index; - - double precision; - double recall; - double specificity; - double false_positive_rate; - double f1; - double balanced_accuracy; - - threshold = - (double)threshold_index / 100.0; - - true_positive = 0U; - false_positive = 0U; - true_negative = 0U; - false_negative = 0U; - - for (index = 0U; - index < case_count; - index++) - { - int predicted_positive; - - predicted_positive = - cases[index].score >= threshold; - - if (cases[index].label == 1 && - predicted_positive != 0) - { - true_positive++; - } - else if (cases[index].label == 0 && - predicted_positive != 0) - { - false_positive++; - } - else if (cases[index].label == 0) - { - true_negative++; - } - else - { - false_negative++; - } - } - - precision = safe_divide( - (double)true_positive, - (double)(true_positive + false_positive) - ); - - recall = safe_divide( - (double)true_positive, - (double)(true_positive + false_negative) - ); - - specificity = safe_divide( - (double)true_negative, - (double)(true_negative + false_positive) - ); - - false_positive_rate = - 1.0 - specificity; - - f1 = safe_divide( - 2.0 * precision * recall, - precision + recall - ); - - balanced_accuracy = - 0.5 * (recall + specificity); - - (void)printf( - "%.2f,%zu,%zu,%zu,%zu," - "%.6f,%.6f,%.6f," - "%.6f,%.6f,%.6f\n", - threshold, - true_positive, - false_positive, - true_negative, - false_negative, - precision, - recall, - specificity, - false_positive_rate, - f1, - balanced_accuracy - ); - } -} - -int main( - int argc, - char **argv -) -{ - FILE *input; - - char line[CAMEFF_SWEEP_LINE_CAPACITY]; - - ValidationCase cases[CAMEFF_SWEEP_MAX_CASES]; - - size_t case_count; - size_t line_number; - - if (argc != 2) - { - (void)fprintf( - stderr, - "Usage:\n" - " %s \n", - argv[0] - ); - - return EXIT_FAILURE; - } - - input = fopen(argv[1], "r"); - - if (input == NULL) - { - (void)fprintf( - stderr, - "Unable to open validation file: %s\n", - argv[1] - ); - - return EXIT_FAILURE; - } - - if (fgets( - line, - sizeof(line), - input) == NULL) - { - (void)fprintf( - stderr, - "Validation file is empty.\n" - ); - - (void)fclose(input); - return EXIT_FAILURE; - } - - case_count = 0U; - line_number = 1U; - - while (fgets( - line, - sizeof(line), - input) != NULL) - { - size_t length; - - line_number++; - - length = strlen(line); - - while (length > 0U && - (line[length - 1U] == '\n' || - line[length - 1U] == '\r')) - { - line[length - 1U] = '\0'; - length--; - } - - if (line[0] == '\0') - { - continue; - } - - if (case_count >= - CAMEFF_SWEEP_MAX_CASES) - { - (void)fprintf( - stderr, - "Too many validation cases.\n" - ); - - (void)fclose(input); - return EXIT_FAILURE; - } - - if (!parse_validation_row( - line, - &cases[case_count])) - { - (void)fprintf( - stderr, - "Invalid validation row at line %zu.\n", - line_number - ); - - (void)fclose(input); - return EXIT_FAILURE; - } - - case_count++; - } - - if (fclose(input) != 0) - { - (void)fprintf( - stderr, - "Unable to close validation file.\n" - ); - - return EXIT_FAILURE; - } - - if (case_count == 0U) - { - (void)fprintf( - stderr, - "No validation cases were loaded.\n" - ); - - return EXIT_FAILURE; - } - - run_threshold_sweep( - cases, - case_count - ); - - return EXIT_SUCCESS; -} \ No newline at end of file diff --git a/build-asan/.ninja_deps b/build-asan/.ninja_deps deleted file mode 100644 index 760013a..0000000 Binary files a/build-asan/.ninja_deps and /dev/null differ diff --git a/build-asan/.ninja_log b/build-asan/.ninja_log deleted file mode 100644 index aea970e..0000000 --- a/build-asan/.ninja_log +++ /dev/null @@ -1,52 +0,0 @@ -# ninja log v7 -85 205 1783949860455098300 CMakeFiles/cameff_core.dir/src/experts/baseline_expert.c.o a489f9400ceb03ec -68 248 1783949860436098800 CMakeFiles/cameff_core.dir/src/catalog.c.o 95f683924921ae30 -71 282 1783949860440100400 CMakeFiles/cameff_core.dir/src/config.c.o 9295c2e08bf55131 -75 295 1783949860444102000 CMakeFiles/cameff_core.dir/src/evaluation.c.o 83f93b3ccbef8fe0 -78 311 1783949860447098400 CMakeFiles/cameff_core.dir/src/expert_registry.c.o 3000806b807297f2 -81 319 1783949860451098300 CMakeFiles/cameff_core.dir/src/fusion.c.o 9826d7a98c2727b9 -106 329 1783949860475014800 CMakeFiles/cameff_core.dir/src/geo.c.o 46eeb5d7b05444d -141 343 1783949860511669000 CMakeFiles/cameff_validation.dir/src/validation/metrics.c.o 47c3df66b93ace97 -148 356 1783949860518718200 CMakeFiles/cameff_validation.dir/src/validation/report.c.o f0b1866a6f4a1606 -90 371 1783949860460100000 CMakeFiles/cameff_core.dir/src/experts/subduction_expert.c.o 137546b1dd2bd2db -95 387 1783949860464636000 CMakeFiles/cameff_core.dir/src/experts/crustal_fault_expert.c.o c0fbe51236236e49 -100 402 1783949860470016900 CMakeFiles/cameff_core.dir/src/experts/cascade_expert.c.o 44ad1ce7a8ea6e7 -111 418 1783949860479013300 CMakeFiles/cameff_core.dir/src/pattern.c.o 4b852a0bd76a0c3d -114 433 1783949860484619300 CMakeFiles/cameff_core.dir/src/signals.c.o 2543251f850c4b5d -120 447 1783949860490668200 CMakeFiles/cameff_core.dir/src/framework.c.o 379de168c2eabb13 -101 272 1783950999048339700 CMakeFiles/cameff_validation.dir/src/validation/hindcast.c.o 3440c761a4f8a963 -105 255 1783950999052547200 CMakeFiles/cameff_validation.dir/src/validation/hindcast_evaluator.c.o ef51fb011a1848fd -111 228 1783950999059547500 CMakeFiles/cameff_validation.dir/src/data/earthquake_event.c.o 5b2da17eff84f17d -109 311 1783950999055547400 CMakeFiles/cameff_validation.dir/src/validation/cameff_pipeline_adapter.c.o cfa9c7fce0509c18 -116 286 1783950999062547400 CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog.c.o 4d9b26fc639aff00 -119 249 1783950999071577100 CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog_filter.c.o f58752ba09ff9ae6 -303 545 1783949860671965500 CMakeFiles/cameff.dir/apps/cameff_cli.c.o 37e210cde963fa58 -313 553 1783949860682490600 CMakeFiles/cameff_tests.dir/tests/test_main.c.o c2302d84aa8ef9ae -321 561 1783949860691011200 CMakeFiles/cameff_m2_contract_tests.dir/tests/test_m2_contracts.c.o 41176433b6d34153 -332 569 1783949860701542400 CMakeFiles/cameff_baseline_expert_tests.dir/tests/test_baseline_expert.c.o 960c3c63ea82f01c -347 576 1783949860717066100 CMakeFiles/cameff_pattern_tests.dir/tests/test_pattern.c.o ab56bde06f945748 -359 583 1783949860729065900 CMakeFiles/cameff_expert_registry_tests.dir/tests/test_expert_registry.c.o 5faf76e2e9602da9 -376 590 1783949860746065000 CMakeFiles/cameff_specialized_expert_tests.dir/tests/test_specialized_experts.c.o bb8b837cf827ca3f -391 597 1783949860761068800 CMakeFiles/cameff_fusion_tests.dir/tests/test_fusion.c.o df17b0b10ce4ae07 -406 603 1783949860776120300 CMakeFiles/cameff_evaluation_tests.dir/tests/test_evaluation.c.o 7b3275d575294dbf -128 264 1783950999075578400 CMakeFiles/cameff_catalog_tests.dir/tests/data/test_catalog.c.o c2ef1d85994ff5cf -422 616 1783949860793119200 CMakeFiles/cameff_structural_case_tests.dir/tests/test_structural_cases.c.o 82d671783dcfe49e -479 621 1783949860849167600 CMakeFiles/cameff_catalog_normalizer.dir/apps/cameff_catalog_normalizer.c.o 92bf0f09ffe80016 -132 298 1783950999078578200 CMakeFiles/cameff_hindcast_runner.dir/apps/cameff_hindcast_runner.c.o d27d664abb3dccf4 -139 317 1783950999086581400 CMakeFiles/cameff_hindcast_tests.dir/tests/validation/test_hindcast.c.o 25021b52a441602b -624 806 1783949860992030100 cameff_catalog_normalizer 4910935127c312a1 -450 811 1783949860819121800 libcameff_core.a 2ac2a150afe01a1c -818 1068 1783949861185425000 cameff_m2_contract_tests bbe9ca4f7e006f15 -812 1077 1783949861179423100 libcameff_validation.a 571cdae957fa72cb -830 1135 1783949861198424200 cameff_fusion_tests 91759a18a6fb31e -822 1143 1783949861189425700 cameff_pattern_tests 263eea44aed9b6da -815 1232 1783949861183423600 cameff_tests a83b14174ef0bbb2 -813 1238 1783949861180421800 cameff c5d933a86a86b246 -819 1244 1783949861187423100 cameff_baseline_expert_tests 44b288c4e4652e53 -824 1265 1783949861192423200 cameff_expert_registry_tests 982f0e4605a9b7d9 -827 1270 1783949861195422600 cameff_specialized_expert_tests 5e23b15d303a22ef -833 1379 1783949861202425400 cameff_evaluation_tests f7a68c179c9088c1 -837 1384 1783949861205426600 cameff_structural_case_tests 7decf0a8c4afbb6a -1078 1394 1783949861447093700 cameff_catalog_tests 62b01725d1cae124 -1082 1595 1783949861450095000 cameff_hindcast_runner c955553cb3800425 -1086 1625 1783949861454094600 cameff_hindcast_tests c1463f8b8ea7d93b diff --git a/build-asan/CMakeCache.txt b/build-asan/CMakeCache.txt deleted file mode 100644 index 0cbd167..0000000 --- a/build-asan/CMakeCache.txt +++ /dev/null @@ -1,364 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /mnt/c/opt/C Projects/cameff/build-asan -# It was generated by CMake: /usr/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Enable address and undefined-behavior sanitizers -CAMEFF_ENABLE_SANITIZERS:BOOL=OFF - -//Treat compiler warnings as errors -CAMEFF_WARNINGS_AS_ERRORS:BOOL=ON - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line - -//Path to a program. -CMAKE_AR:FILEPATH=/usr/bin/ar - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//No help, variable specified on the command line. -CMAKE_C_COMPILER:UNINITIALIZED=gcc - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-15 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-15 - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING=-fsanitize=address,undefined -fno-omit-frame-pointer - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=-g - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING=-fsanitize=address,undefined - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of build database during the build. -CMAKE_EXPORT_BUILD_DATABASE:BOOL= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= - -//Value Computed by CMake. -CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/pkgRedirects - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//Path to a program. -CMAKE_LINKER:FILEPATH=/usr/bin/ld - -//Program used to build from build.ninja files. -CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/ninja - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/usr/bin/nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump - -//Value Computed by CMake -CMAKE_PROJECT_COMPAT_VERSION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=cameff - -//Value Computed by CMake -CMAKE_PROJECT_SPDX_LICENSE:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_VERSION:STATIC=1.0.0 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MAJOR:STATIC=1 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MINOR:STATIC=0 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_PATCH:STATIC=0 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_TWEAK:STATIC= - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/usr/bin/readelf - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the archiver during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the archiver during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the archiver during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the archiver during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the archiver during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_STRIP:FILEPATH=/usr/bin/strip - -//Path to a program. -CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -cameff_BINARY_DIR:STATIC=/mnt/c/opt/C Projects/cameff/build-asan - -//Value Computed by CMake -cameff_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -cameff_SOURCE_DIR:STATIC=/mnt/c/opt/C Projects/cameff - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/mnt/c/opt/C Projects/cameff/build-asan -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=2 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/usr/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_BUILD_DATABASE -CMAKE_EXPORT_BUILD_DATABASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/mnt/c/opt/C Projects/cameff -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//Name of CMakeLists files to read -CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt -//ADVANCED property for variable: CMAKE_MAKE_PROGRAM -CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/usr/share/cmake-4.2 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_TAPI -CMAKE_TAPI-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 - diff --git a/build-asan/CMakeFiles/4.2.3/CMakeCCompiler.cmake b/build-asan/CMakeFiles/4.2.3/CMakeCCompiler.cmake deleted file mode 100644 index 3e8f1eb..0000000 --- a/build-asan/CMakeFiles/4.2.3/CMakeCCompiler.cmake +++ /dev/null @@ -1,84 +0,0 @@ -set(CMAKE_C_COMPILER "/usr/bin/gcc") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "GNU") -set(CMAKE_C_COMPILER_VERSION "15.2.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "23") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_STANDARD_LATEST "23") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_COMPILER_APPLE_SYSROOT "") -set(CMAKE_C_SIMULATE_VERSION "") -set(CMAKE_C_COMPILER_ARCHITECTURE_ID "x86_64") - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-15") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-15") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_LINKER_LINK "") -set(CMAKE_LINKER_LLD "") -set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld") -set(CMAKE_C_COMPILER_LINKER_ID "GNU") -set(CMAKE_C_COMPILER_LINKER_VERSION 2.46) -set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU) -set(CMAKE_MT "") -set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC 1) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) -set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE) -set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) -set(CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED TRUE) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/15/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "asan;ubsan;gcc;gcc_s;c;gcc;gcc_s") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/15;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build-asan/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_C.bin b/build-asan/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_C.bin deleted file mode 100644 index 20b4028..0000000 Binary files a/build-asan/CMakeFiles/4.2.3/CMakeDetermineCompilerABI_C.bin and /dev/null differ diff --git a/build-asan/CMakeFiles/4.2.3/CMakeSystem.cmake b/build-asan/CMakeFiles/4.2.3/CMakeSystem.cmake deleted file mode 100644 index df25167..0000000 --- a/build-asan/CMakeFiles/4.2.3/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-6.18.33.2-microsoft-standard-WSL2") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "6.18.33.2-microsoft-standard-WSL2") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - - - -set(CMAKE_SYSTEM "Linux-6.18.33.2-microsoft-standard-WSL2") -set(CMAKE_SYSTEM_NAME "Linux") -set(CMAKE_SYSTEM_VERSION "6.18.33.2-microsoft-standard-WSL2") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/build-asan/CMakeFiles/4.2.3/CompilerIdC/CMakeCCompilerId.c b/build-asan/CMakeFiles/4.2.3/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index ab3c359..0000000 --- a/build-asan/CMakeFiles/4.2.3/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,934 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__RENESAS__) -# define COMPILER_ID "Renesas" -/* __RENESAS_VERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF) - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__DCC__) && defined(_DIAB_TOOL) -# define COMPILER_ID "Diab" - # define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__) - # define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__) - # define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__) - # define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__) - - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "ARM" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) || defined(__CPARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__RENESAS__) -# if defined(__CCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__CCRL__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__CCRH__) -# define ARCHITECTURE_ID "RH850" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define C_STD_99 199901L -#define C_STD_11 201112L -#define C_STD_17 201710L -#define C_STD_23 202311L - -#ifdef __STDC_VERSION__ -# define C_STD __STDC_VERSION__ -#endif - -#if !defined(__STDC__) && !defined(__clang__) && !defined(__RENESAS__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif C_STD > C_STD_17 -# define C_VERSION "23" -#elif C_STD > C_STD_11 -# define C_VERSION "17" -#elif C_STD > C_STD_99 -# define C_VERSION "11" -#elif C_STD >= C_STD_99 -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR) - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/build-asan/CMakeFiles/4.2.3/CompilerIdC/a.out b/build-asan/CMakeFiles/4.2.3/CompilerIdC/a.out deleted file mode 100644 index 0490d3d..0000000 Binary files a/build-asan/CMakeFiles/4.2.3/CompilerIdC/a.out and /dev/null differ diff --git a/build-asan/CMakeFiles/CMakeConfigureLog.yaml b/build-asan/CMakeFiles/CMakeConfigureLog.yaml deleted file mode 100644 index 05489ec..0000000 --- a/build-asan/CMakeFiles/CMakeConfigureLog.yaml +++ /dev/null @@ -1,2058 +0,0 @@ - ---- -events: - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineSystem.cmake:12 (find_program)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_UNAME" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: true - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "uname" - candidate_directories: - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/usr/bin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/local/sbin/uname" - - "/usr/local/bin/uname" - - "/usr/sbin/uname" - found: "/usr/bin/uname" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "message-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineSystem.cmake:212 (message)" - - "CMakeLists.txt:2 (project)" - message: | - The system is: Linux - 6.18.33.2-microsoft-standard-WSL2 - x86_64 - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeNinjaFindMake.cmake:5 (find_program)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_MAKE_PROGRAM" - description: "Program used to build from build.ninja files." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: true - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "ninja-build" - - "ninja" - - "samu" - candidate_directories: - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/usr/bin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/local/sbin/ninja-build" - - "/usr/local/sbin/ninja" - - "/usr/local/sbin/samu" - - "/usr/local/bin/ninja-build" - - "/usr/local/bin/ninja" - - "/usr/local/bin/samu" - - "/usr/sbin/ninja-build" - - "/usr/sbin/ninja" - - "/usr/sbin/samu" - - "/usr/bin/ninja-build" - found: "/usr/bin/ninja" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompiler.cmake:115 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:67 (_cmake_find_compiler_path)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_C_COMPILER_WITH_PATH" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: true - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "gcc" - candidate_directories: - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/usr/bin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/local/sbin/gcc" - - "/usr/local/bin/gcc" - - "/usr/sbin/gcc" - found: "/usr/bin/gcc" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:462 (find_file)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:500 (CMAKE_DETERMINE_COMPILER_ID_WRITE)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:122 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - mode: "file" - variable: "src_in" - description: "Path to a file." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: true - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "CMakeCCompilerId.c.in" - candidate_directories: - - "/usr/share/cmake-4.2/Modules/" - found: "/usr/share/cmake-4.2/Modules/CMakeCCompilerId.c.in" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "message-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:122 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. - Compiler: /usr/bin/gcc - Build flags: -fsanitize=address,undefined;-fno-omit-frame-pointer - Id flags: - - The output was: - 0 - - - Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" - - The C compiler identification is GNU, found in: - /mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/4.2.3/CompilerIdC/a.out - - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_AR" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "ar" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/ar" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_RANLIB" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "ranlib" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/ranlib" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_STRIP" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "strip" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/strip" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_LINKER" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "ld" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/ld" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_NM" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "nm" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/nm" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_OBJDUMP" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "objdump" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/objdump" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_OBJCOPY" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "objcopy" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/objcopy" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_READELF" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "readelf" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/readelf" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_DLLTOOL" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "dlltool" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/bin/dlltool" - - "/usr/local/sbin/dlltool" - - "/usr/local/bin/dlltool" - - "/usr/sbin/dlltool" - - "/sbin/dlltool" - - "/bin/dlltool" - - "/usr/games/dlltool" - - "/usr/local/games/dlltool" - - "/usr/lib/wsl/lib/dlltool" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/dlltool" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/dlltool" - - "/mnt/c/Windows/system32/dlltool" - - "/mnt/c/Windows/dlltool" - - "/mnt/c/Windows/System32/Wbem/dlltool" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/dlltool" - - "/mnt/c/Windows/System32/OpenSSH/dlltool" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/dlltool" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/dlltool" - - "/mnt/c/Program Files/PuTTY/dlltool" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/dlltool" - - "/mnt/c/Program Files/dotnet/dlltool" - - "/mnt/c/Program Files/Java/jdk-17/bin/dlltool" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/dlltool" - - "/mnt/c/Program Files/Git/cmd/dlltool" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/dlltool" - - "/mnt/c/Program Files/cursor/resources/app/bin/dlltool" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/dlltool" - - "/mnt/c/Users/USER/.local/bin/dlltool" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/dlltool" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/dlltool" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/dlltool" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/dlltool" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/dlltool" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/dlltool" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/dlltool" - - "/snap/bin/dlltool" - found: false - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_ADDR2LINE" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "addr2line" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - found: "/usr/bin/addr2line" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeFindBinUtils.cmake:243 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:200 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_TAPI" - description: "Path to a program." - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "tapi" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/bin/tapi" - - "/usr/local/sbin/tapi" - - "/usr/local/bin/tapi" - - "/usr/sbin/tapi" - - "/sbin/tapi" - - "/bin/tapi" - - "/usr/games/tapi" - - "/usr/local/games/tapi" - - "/usr/lib/wsl/lib/tapi" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/tapi" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/tapi" - - "/mnt/c/Windows/system32/tapi" - - "/mnt/c/Windows/tapi" - - "/mnt/c/Windows/System32/Wbem/tapi" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/tapi" - - "/mnt/c/Windows/System32/OpenSSH/tapi" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/tapi" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/tapi" - - "/mnt/c/Program Files/PuTTY/tapi" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/tapi" - - "/mnt/c/Program Files/dotnet/tapi" - - "/mnt/c/Program Files/Java/jdk-17/bin/tapi" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/tapi" - - "/mnt/c/Program Files/Git/cmd/tapi" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/tapi" - - "/mnt/c/Program Files/cursor/resources/app/bin/tapi" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/tapi" - - "/mnt/c/Users/USER/.local/bin/tapi" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/tapi" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/tapi" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/tapi" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/tapi" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/tapi" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/tapi" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/tapi" - - "/snap/bin/tapi" - found: false - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/Compiler/GNU-FindBinUtils.cmake:18 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:201 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_C_COMPILER_AR" - description: "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "gcc-ar-15.2" - - "gcc-ar-15" - - "gcc-ar15" - - "gcc-ar" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/bin/gcc-ar-15.2" - - "/usr/local/sbin/gcc-ar-15.2" - - "/usr/local/bin/gcc-ar-15.2" - - "/usr/sbin/gcc-ar-15.2" - - "/sbin/gcc-ar-15.2" - - "/bin/gcc-ar-15.2" - - "/usr/games/gcc-ar-15.2" - - "/usr/local/games/gcc-ar-15.2" - - "/usr/lib/wsl/lib/gcc-ar-15.2" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/gcc-ar-15.2" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/gcc-ar-15.2" - - "/mnt/c/Windows/system32/gcc-ar-15.2" - - "/mnt/c/Windows/gcc-ar-15.2" - - "/mnt/c/Windows/System32/Wbem/gcc-ar-15.2" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/gcc-ar-15.2" - - "/mnt/c/Windows/System32/OpenSSH/gcc-ar-15.2" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/gcc-ar-15.2" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/gcc-ar-15.2" - - "/mnt/c/Program Files/PuTTY/gcc-ar-15.2" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/gcc-ar-15.2" - - "/mnt/c/Program Files/dotnet/gcc-ar-15.2" - - "/mnt/c/Program Files/Java/jdk-17/bin/gcc-ar-15.2" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/gcc-ar-15.2" - - "/mnt/c/Program Files/Git/cmd/gcc-ar-15.2" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/gcc-ar-15.2" - - "/mnt/c/Program Files/cursor/resources/app/bin/gcc-ar-15.2" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/gcc-ar-15.2" - - "/mnt/c/Users/USER/.local/bin/gcc-ar-15.2" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/gcc-ar-15.2" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/gcc-ar-15.2" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/gcc-ar-15.2" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/gcc-ar-15.2" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/gcc-ar-15.2" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/gcc-ar-15.2" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/gcc-ar-15.2" - - "/snap/bin/gcc-ar-15.2" - found: "/usr/bin/gcc-ar-15" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "find-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/Compiler/GNU-FindBinUtils.cmake:30 (find_program)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCCompiler.cmake:201 (include)" - - "CMakeLists.txt:2 (project)" - mode: "program" - variable: "CMAKE_C_COMPILER_RANLIB" - description: "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" - settings: - SearchFramework: "NEVER" - SearchAppBundle: "NEVER" - CMAKE_FIND_USE_CMAKE_PATH: false - CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false - CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true - CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true - CMAKE_FIND_USE_INSTALL_PREFIX: true - names: - - "gcc-ranlib-15.2" - - "gcc-ranlib-15" - - "gcc-ranlib15" - - "gcc-ranlib" - candidate_directories: - - "/usr/bin/" - - "/usr/local/sbin/" - - "/usr/local/bin/" - - "/usr/sbin/" - - "/sbin/" - - "/bin/" - - "/usr/games/" - - "/usr/local/games/" - - "/usr/lib/wsl/lib/" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/" - - "/mnt/c/Windows/system32/" - - "/mnt/c/Windows/" - - "/mnt/c/Windows/System32/Wbem/" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin/" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/" - - "/mnt/c/Program Files/Git/cmd/" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/" - - "/mnt/c/Program Files/cursor/resources/app/bin/" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/" - - "/mnt/c/Users/USER/.local/bin/" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/" - - "/snap/bin/" - searched_directories: - - "/usr/bin/gcc-ranlib-15.2" - - "/usr/local/sbin/gcc-ranlib-15.2" - - "/usr/local/bin/gcc-ranlib-15.2" - - "/usr/sbin/gcc-ranlib-15.2" - - "/sbin/gcc-ranlib-15.2" - - "/bin/gcc-ranlib-15.2" - - "/usr/games/gcc-ranlib-15.2" - - "/usr/local/games/gcc-ranlib-15.2" - - "/usr/lib/wsl/lib/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath/gcc-ranlib-15.2" - - "/mnt/c/Windows/system32/gcc-ranlib-15.2" - - "/mnt/c/Windows/gcc-ranlib-15.2" - - "/mnt/c/Windows/System32/Wbem/gcc-ranlib-15.2" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/gcc-ranlib-15.2" - - "/mnt/c/Windows/System32/OpenSSH/gcc-ranlib-15.2" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/PuTTY/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/gcc-ranlib-15.2" - - "/mnt/c/Program Files/dotnet/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Java/jdk-17/bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Git/cmd/gcc-ranlib-15.2" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/cursor/resources/app/bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/Docker/Docker/resources/bin/gcc-ranlib-15.2" - - "/mnt/c/Users/USER/.local/bin/gcc-ranlib-15.2" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin/gcc-ranlib-15.2" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps/gcc-ranlib-15.2" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin/gcc-ranlib-15.2" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin/gcc-ranlib-15.2" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin/gcc-ranlib-15.2" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama/gcc-ranlib-15.2" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin/gcc-ranlib-15.2" - - "/snap/bin/gcc-ranlib-15.2" - found: "/usr/bin/gcc-ranlib-15" - search_context: - ENV{PATH}: - - "/usr/local/sbin" - - "/usr/local/bin" - - "/usr/sbin" - - "/usr/bin" - - "/sbin" - - "/bin" - - "/usr/games" - - "/usr/local/games" - - "/usr/lib/wsl/lib" - - "/mnt/c/Program Files/Java/Eclipse Adoptium/jre-17.0.8.101-hotspot/bin" - - "/mnt/c/Program Files/Common Files/Oracle/Java/javapath" - - "/mnt/c/Windows/system32" - - "/mnt/c/Windows" - - "/mnt/c/Windows/System32/Wbem" - - "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/" - - "/mnt/c/Windows/System32/OpenSSH/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin/" - - "/mnt/c/Program Files/IVI Foundation/VISA/Win64/Bin/" - - "/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin" - - "/mnt/c/Program Files/PuTTY/" - - "/mnt/c/Program Files/Amazon/AWSCLIV2/" - - "/mnt/c/Program Files/dotnet/" - - "/mnt/c/Program Files/Java/jdk-17/bin" - - "/mnt/c/Program Files/Maven/apache-maven-3.9.14/bin" - - "/mnt/c/Program Files/Git/cmd" - - "/mnt/c/opt/Tools/msys64/ucrt64/bin" - - "/mnt/c/Program Files/cursor/resources/app/bin" - - "/mnt/c/Program Files/Docker/Docker/resources/bin" - - "/mnt/c/Users/USER/.local/bin" - - "/mnt/c/opt/dev-tools/GNATSTUDIO/bin" - - "/mnt/c/Users/USER/AppData/Local/Microsoft/WindowsApps" - - "/mnt/c/opt/Tools/Microsoft VS Code/bin" - - "/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2023.1.3/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/cursor/resources/app/bin" - - "/mnt/c/Users/USER/AppData/Local/Programs/Ollama" - - "/mnt/c/Users/USER/AppData/Local/Programs/Microsoft VS Code Insiders/bin" - - "/snap/bin" - - - kind: "try_compile-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)" - - "/usr/share/cmake-4.2/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - checks: - - "Detecting C compiler ABI info" - directories: - source: "/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/CMakeScratch/TryCompile-f6NSHh" - binary: "/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/CMakeScratch/TryCompile-f6NSHh" - cmakeVariables: - CMAKE_C_FLAGS: "-fsanitize=address,undefined -fno-omit-frame-pointer" - CMAKE_C_FLAGS_DEBUG: "-g" - CMAKE_EXE_LINKER_FLAGS: "-fsanitize=address,undefined" - buildResult: - variable: "CMAKE_C_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/CMakeScratch/TryCompile-f6NSHh' - - Run Build Command(s): /usr/bin/ninja -v cmTC_8fca5 - [1/2] /usr/bin/gcc -fsanitize=address,undefined -fno-omit-frame-pointer -v -o CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-4.2/Modules/CMakeCCompilerABI.c - Using built-in specs. - COLLECT_GCC=/usr/bin/gcc - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 15.2.0-16ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-15/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust,cobol,algol68 --prefix=/usr --with-gcc-major-version-only --program-suffix=-15 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 15.2.0 (Ubuntu 15.2.0-16ubuntu1) - COLLECT_GCC_OPTIONS='-fsanitize=address,undefined' '-fno-omit-frame-pointer' '-v' '-o' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8fca5.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/15/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-4.2/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_8fca5.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fsanitize=address,undefined -fno-omit-frame-pointer -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -fzero-init-padding-bits=all -Wbidi-chars=any -o /tmp/cchRIpTP.s - GNU C23 (Ubuntu 15.2.0-16ubuntu1) version 15.2.0 (x86_64-linux-gnu) - compiled by GNU C version 15.2.0, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.27-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/15/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/15/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/15/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/lib/gcc/x86_64-linux-gnu/15/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - Compiler executable checksum: edd70396dcc669433a92073f97309866 - COLLECT_GCC_OPTIONS='-fsanitize=address,undefined' '-fno-omit-frame-pointer' '-v' '-o' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8fca5.dir/' - /usr/bin/x86_64-linux-gnu-as -v --64 -o CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o /tmp/cchRIpTP.s - GNU assembler version 2.46 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.46 - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-fsanitize=address,undefined' '-fno-omit-frame-pointer' '-v' '-o' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.' - [2/2] : && /usr/bin/gcc -fsanitize=address,undefined -fno-omit-frame-pointer -fsanitize=address,undefined -v -Wl,-v CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o -o cmTC_8fca5 && : - Using built-in specs. - COLLECT_GCC=/usr/bin/gcc - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 15.2.0-16ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-15/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust,cobol,algol68 --prefix=/usr --with-gcc-major-version-only --program-suffix=-15 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 15.2.0 (Ubuntu 15.2.0-16ubuntu1) - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-fsanitize=address,undefined' '-fno-omit-frame-pointer' '-fsanitize=address,undefined' '-v' '-o' 'cmTC_8fca5' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_8fca5.' - /usr/libexec/gcc/x86_64-linux-gnu/15/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/15/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4Vdrl3.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_8fca5 /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/15 -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/15/../../.. -L/lib -L/usr/lib /usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o --push-state --no-as-needed -lasan --pop-state -v CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o --push-state --no-as-needed -lubsan --pop-state -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o - collect2 version 15.2.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/15/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4Vdrl3.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_8fca5 /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/15 -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/15/../../.. -L/lib -L/usr/lib /usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o --push-state --no-as-needed -lasan --pop-state -v CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o --push-state --no-as-needed -lubsan --pop-state -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o - GNU ld (GNU Binutils for Ubuntu) 2.46 - COLLECT_GCC_OPTIONS='-fsanitize=address,undefined' '-fno-omit-frame-pointer' '-fsanitize=address,undefined' '-v' '-o' 'cmTC_8fca5' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_8fca5.' - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:217 (message)" - - "/usr/share/cmake-4.2/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Parsed C implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-linux-gnu/15/include] - add: [/usr/local/include] - add: [/usr/include/x86_64-linux-gnu] - add: [/usr/include] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/15/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/15/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/15/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:253 (message)" - - "/usr/share/cmake-4.2/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Parsed C implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)] - ignore line: [Change Dir: '/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/CMakeScratch/TryCompile-f6NSHh'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/ninja -v cmTC_8fca5] - ignore line: [[1/2] /usr/bin/gcc -fsanitize=address undefined -fno-omit-frame-pointer -v -o CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-4.2/Modules/CMakeCCompilerABI.c] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/gcc] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 15.2.0-16ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-15/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 rust cobol algol68 --prefix=/usr --with-gcc-major-version-only --program-suffix=-15 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 15.2.0 (Ubuntu 15.2.0-16ubuntu1) ] - ignore line: [COLLECT_GCC_OPTIONS='-fsanitize=address undefined' '-fno-omit-frame-pointer' '-v' '-o' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8fca5.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/15/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-4.2/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_8fca5.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fsanitize=address undefined -fno-omit-frame-pointer -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -fzero-init-padding-bits=all -Wbidi-chars=any -o /tmp/cchRIpTP.s] - ignore line: [GNU C23 (Ubuntu 15.2.0-16ubuntu1) version 15.2.0 (x86_64-linux-gnu)] - ignore line: [ compiled by GNU C version 15.2.0 GMP version 6.3.0 MPFR version 4.2.2 MPC version 1.3.1 isl version isl-0.27-GMP] - ignore line: [] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/15/include-fixed/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/15/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/15/../../../../x86_64-linux-gnu/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/15/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include/x86_64-linux-gnu] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [Compiler executable checksum: edd70396dcc669433a92073f97309866] - ignore line: [COLLECT_GCC_OPTIONS='-fsanitize=address undefined' '-fno-omit-frame-pointer' '-v' '-o' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8fca5.dir/'] - ignore line: [ /usr/bin/x86_64-linux-gnu-as -v --64 -o CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o /tmp/cchRIpTP.s] - ignore line: [GNU assembler version 2.46 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.46] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-fsanitize=address undefined' '-fno-omit-frame-pointer' '-v' '-o' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.'] - ignore line: [[2/2] : && /usr/bin/gcc -fsanitize=address undefined -fno-omit-frame-pointer -fsanitize=address undefined -v -Wl -v CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o -o cmTC_8fca5 && :] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/gcc] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 15.2.0-16ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-15/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 rust cobol algol68 --prefix=/usr --with-gcc-major-version-only --program-suffix=-15 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-15-j35TAX/gcc-15-15.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 15.2.0 (Ubuntu 15.2.0-16ubuntu1) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/15/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/15/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/15/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-fsanitize=address undefined' '-fno-omit-frame-pointer' '-fsanitize=address undefined' '-v' '-o' 'cmTC_8fca5' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_8fca5.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/15/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/15/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4Vdrl3.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_8fca5 /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/15 -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/15/../../.. -L/lib -L/usr/lib /usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o --push-state --no-as-needed -lasan --pop-state -v CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o --push-state --no-as-needed -lubsan --pop-state -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o] - arg [/usr/libexec/gcc/x86_64-linux-gnu/15/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-linux-gnu/15/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/cc4Vdrl3.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [--build-id] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-pie] ==> ignore - arg [-znow] ==> ignore - arg [-zrelro] ==> ignore - arg [-o] ==> ignore - arg [cmTC_8fca5] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/15] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/15] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib] - arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/15/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/15/../../..] - arg [-L/lib] ==> dir [/lib] - arg [-L/usr/lib] ==> dir [/usr/lib] - arg [/usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o] - arg [--push-state] ==> ignore - arg [--no-as-needed] ==> ignore - arg [-lasan] ==> lib [asan] - arg [--pop-state] ==> ignore - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o] ==> ignore - arg [--push-state] ==> ignore - arg [--no-as-needed] ==> ignore - arg [-lubsan] ==> lib [ubsan] - arg [--pop-state] ==> ignore - arg [-lgcc] ==> lib [gcc] - arg [--push-state] ==> ignore - arg [--as-needed] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [--pop-state] ==> ignore - arg [-lc] ==> lib [c] - arg [-lgcc] ==> lib [gcc] - arg [--push-state] ==> ignore - arg [--as-needed] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [--pop-state] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o] - ignore line: [collect2 version 15.2.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/15/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/15/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4Vdrl3.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_8fca5 /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/15 -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/15/../../.. -L/lib -L/usr/lib /usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o --push-state --no-as-needed -lasan --pop-state -v CMakeFiles/cmTC_8fca5.dir/CMakeCCompilerABI.c.o --push-state --no-as-needed -lubsan --pop-state -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o] - linker tool for 'C': /usr/bin/ld - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/15] ==> [/usr/lib/gcc/x86_64-linux-gnu/15] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/15/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/15/../../..] ==> [/usr/lib] - collapse library dir [/lib] ==> [/lib] - collapse library dir [/usr/lib] ==> [/usr/lib] - implicit libs: [asan;ubsan;gcc;gcc_s;c;gcc;gcc_s] - implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/15/libasan_preinit.o;/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] - implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/15;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] - implicit fwks: [] - - - - - kind: "message-v1" - backtrace: - - "/usr/share/cmake-4.2/Modules/Internal/CMakeDetermineLinkerId.cmake:38 (message)" - - "/usr/share/cmake-4.2/Modules/CMakeDetermineCompilerABI.cmake:299 (cmake_determine_linker_id)" - - "/usr/share/cmake-4.2/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Running the C compiler's linker: "/usr/bin/ld" "-v" - GNU ld (GNU Binutils for Ubuntu) 2.46 -... diff --git a/build-asan/CMakeFiles/InstallScripts.json b/build-asan/CMakeFiles/InstallScripts.json deleted file mode 100644 index c412f6c..0000000 --- a/build-asan/CMakeFiles/InstallScripts.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "InstallScripts" : - [ - "/mnt/c/opt/C Projects/cameff/build-asan/cmake_install.cmake" - ], - "Parallel" : false -} diff --git a/build-asan/CMakeFiles/TargetDirectories.txt b/build-asan/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 14cee63..0000000 --- a/build-asan/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,23 +0,0 @@ -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_core.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_m2_contract_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_baseline_expert_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_pattern_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_expert_registry_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_specialized_expert_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_fusion_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_evaluation_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_structural_case_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_validation.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_catalog_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_hindcast_runner.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_catalog_normalizer.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/cameff_hindcast_tests.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/test.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/edit_cache.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/rebuild_cache.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/list_install_components.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/install.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/install/local.dir -/mnt/c/opt/C Projects/cameff/build-asan/CMakeFiles/install/strip.dir diff --git a/build-asan/CMakeFiles/cmake.check_cache b/build-asan/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/build-asan/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build-asan/CMakeFiles/rules.ninja b/build-asan/CMakeFiles/rules.ninja deleted file mode 100644 index 578ddb9..0000000 --- a/build-asan/CMakeFiles/rules.ninja +++ /dev/null @@ -1,377 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 4.2 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: cameff -# Configurations: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_core_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C static library. - -rule C_STATIC_LIBRARY_LINKER__cameff_core_Debug - command = $PRE_LINK && /usr/bin/cmake -E rm -f $TARGET_FILE && /usr/bin/ar qc $TARGET_FILE $LINK_FLAGS $in && /usr/bin/ranlib $TARGET_FILE && $POST_BUILD - description = Linking C static library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_m2_contract_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_m2_contract_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_baseline_expert_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_baseline_expert_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_pattern_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_pattern_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_expert_registry_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_expert_registry_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_specialized_expert_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_specialized_expert_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_fusion_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_fusion_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_evaluation_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_evaluation_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_structural_case_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_structural_case_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_validation_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C static library. - -rule C_STATIC_LIBRARY_LINKER__cameff_validation_Debug - command = $PRE_LINK && /usr/bin/cmake -E rm -f $TARGET_FILE && /usr/bin/ar qc $TARGET_FILE $LINK_FLAGS $in && /usr/bin/ranlib $TARGET_FILE && $POST_BUILD - description = Linking C static library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_catalog_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_catalog_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_hindcast_runner_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_hindcast_runner_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_catalog_normalizer_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_catalog_normalizer_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for compiling C files. - -rule C_COMPILER__cameff_hindcast_tests_unscanned_Debug - depfile = $DEP_FILE - deps = gcc - command = ${LAUNCHER}${CODE_CHECK}/usr/bin/gcc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building C object $out - - -############################################# -# Rule for linking C executable. - -rule C_EXECUTABLE_LINKER__cameff_hindcast_tests_Debug - depfile = $DEP_FILE - deps = gcc - command = $PRE_LINK && /usr/bin/gcc $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking C executable $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /usr/bin/cmake --regenerate-during-build -S"/mnt/c/opt/C Projects/cameff" -B"/mnt/c/opt/C Projects/cameff/build-asan" - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /usr/bin/ninja $FILE_ARG -t clean $TARGETS - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /usr/bin/ninja -t targets - description = All primary targets available: - diff --git a/build-asan/CTestTestfile.cmake b/build-asan/CTestTestfile.cmake deleted file mode 100644 index fc8e062..0000000 --- a/build-asan/CTestTestfile.cmake +++ /dev/null @@ -1,28 +0,0 @@ -# CMake generated Testfile for -# Source directory: /mnt/c/opt/C Projects/cameff -# Build directory: /mnt/c/opt/C Projects/cameff/build-asan -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. -add_test([=[cameff-unit-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_tests") -set_tests_properties([=[cameff-unit-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;70;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-m2-contract-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_m2_contract_tests") -set_tests_properties([=[cameff-m2-contract-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;81;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-baseline-expert-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_baseline_expert_tests") -set_tests_properties([=[cameff-baseline-expert-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;104;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-pattern-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_pattern_tests") -set_tests_properties([=[cameff-pattern-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;131;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-expert-registry-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_expert_registry_tests") -set_tests_properties([=[cameff-expert-registry-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;157;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-specialized-expert-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_specialized_expert_tests") -set_tests_properties([=[cameff-specialized-expert-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;184;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-fusion-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_fusion_tests") -set_tests_properties([=[cameff-fusion-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;211;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-evaluation-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_evaluation_tests") -set_tests_properties([=[cameff-evaluation-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;238;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-structural-case-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_structural_case_tests") -set_tests_properties([=[cameff-structural-case-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;265;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-catalog-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_catalog_tests") -set_tests_properties([=[cameff-catalog-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;364;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") -add_test([=[cameff-hindcast-tests]=] "/mnt/c/opt/C Projects/cameff/build-asan/cameff_hindcast_tests") -set_tests_properties([=[cameff-hindcast-tests]=] PROPERTIES _BACKTRACE_TRIPLES "/mnt/c/opt/C Projects/cameff/CMakeLists.txt;386;add_test;/mnt/c/opt/C Projects/cameff/CMakeLists.txt;0;") diff --git a/build-asan/build.ninja b/build-asan/build.ninja deleted file mode 100644 index b8c5499..0000000 --- a/build-asan/build.ninja +++ /dev/null @@ -1,971 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 4.2 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: cameff -# Configurations: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - - -############################################# -# Set configuration variable for custom commands. - -CONFIGURATION = Debug -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include CMakeFiles/rules.ninja - -# ============================================================================= - -############################################# -# Logical path to working directory; prefix for absolute paths. - -cmake_ninja_workdir = /mnt/c/opt/C$ Projects/cameff/build-asan/ -# ============================================================================= -# Object build statements for STATIC_LIBRARY target cameff_core - - -############################################# -# Order-only phony target for cameff_core - -build cmake_object_order_depends_target_cameff_core: phony || . - -build CMakeFiles/cameff_core.dir/src/catalog.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/catalog.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/catalog.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/config.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/config.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/config.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/evaluation.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/evaluation.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/evaluation.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/expert_registry.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/expert_registry.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/expert_registry.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/fusion.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/fusion.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/fusion.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/experts/baseline_expert.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/experts/baseline_expert.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/experts/baseline_expert.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src/experts - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/experts/subduction_expert.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/experts/subduction_expert.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/experts/subduction_expert.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src/experts - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/experts/crustal_fault_expert.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/experts/crustal_fault_expert.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/experts/crustal_fault_expert.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src/experts - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/experts/cascade_expert.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/experts/cascade_expert.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/experts/cascade_expert.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src/experts - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/geo.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/geo.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/geo.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/pattern.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/pattern.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/pattern.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/signals.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/signals.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/signals.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -build CMakeFiles/cameff_core.dir/src/framework.c.o: C_COMPILER__cameff_core_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/framework.c || cmake_object_order_depends_target_cameff_core - CONFIG = Debug - DEFINES = -D_GNU_SOURCE - DEP_FILE = CMakeFiles/cameff_core.dir/src/framework.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_core.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_core.dir/src - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - - -# ============================================================================= -# Link build statements for STATIC_LIBRARY target cameff_core - - -############################################# -# Link the static library libcameff_core.a - -build libcameff_core.a: C_STATIC_LIBRARY_LINKER__cameff_core_Debug CMakeFiles/cameff_core.dir/src/catalog.c.o CMakeFiles/cameff_core.dir/src/config.c.o CMakeFiles/cameff_core.dir/src/evaluation.c.o CMakeFiles/cameff_core.dir/src/expert_registry.c.o CMakeFiles/cameff_core.dir/src/fusion.c.o CMakeFiles/cameff_core.dir/src/experts/baseline_expert.c.o CMakeFiles/cameff_core.dir/src/experts/subduction_expert.c.o CMakeFiles/cameff_core.dir/src/experts/crustal_fault_expert.c.o CMakeFiles/cameff_core.dir/src/experts/cascade_expert.c.o CMakeFiles/cameff_core.dir/src/geo.c.o CMakeFiles/cameff_core.dir/src/pattern.c.o CMakeFiles/cameff_core.dir/src/signals.c.o CMakeFiles/cameff_core.dir/src/framework.c.o - CONFIG = Debug - LANGUAGE_COMPILE_FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - OBJECT_DIR = CMakeFiles/cameff_core.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = libcameff_core.a - TARGET_PDB = cameff_core.a.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_core.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff - - -############################################# -# Order-only phony target for cameff - -build cmake_object_order_depends_target_cameff: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff.dir/apps/cameff_cli.c.o: C_COMPILER__cameff_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/apps/cameff_cli.c || cmake_object_order_depends_target_cameff - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff.dir/apps/cameff_cli.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff.dir - OBJECT_FILE_DIR = CMakeFiles/cameff.dir/apps - TARGET_SUPPORT_DIR = CMakeFiles/cameff.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff - - -############################################# -# Link the executable cameff - -build cameff: C_EXECUTABLE_LINKER__cameff_Debug CMakeFiles/cameff.dir/apps/cameff_cli.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff - TARGET_PDB = cameff.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_tests - - -############################################# -# Order-only phony target for cameff_tests - -build cmake_object_order_depends_target_cameff_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_tests.dir/tests/test_main.c.o: C_COMPILER__cameff_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_main.c || cmake_object_order_depends_target_cameff_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_tests.dir/tests/test_main.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_tests - - -############################################# -# Link the executable cameff_tests - -build cameff_tests: C_EXECUTABLE_LINKER__cameff_tests_Debug CMakeFiles/cameff_tests.dir/tests/test_main.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_tests - TARGET_PDB = cameff_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_m2_contract_tests - - -############################################# -# Order-only phony target for cameff_m2_contract_tests - -build cmake_object_order_depends_target_cameff_m2_contract_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_m2_contract_tests.dir/tests/test_m2_contracts.c.o: C_COMPILER__cameff_m2_contract_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_m2_contracts.c || cmake_object_order_depends_target_cameff_m2_contract_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_m2_contract_tests.dir/tests/test_m2_contracts.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_m2_contract_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_m2_contract_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_m2_contract_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_m2_contract_tests - - -############################################# -# Link the executable cameff_m2_contract_tests - -build cameff_m2_contract_tests: C_EXECUTABLE_LINKER__cameff_m2_contract_tests_Debug CMakeFiles/cameff_m2_contract_tests.dir/tests/test_m2_contracts.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_m2_contract_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_m2_contract_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_m2_contract_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_m2_contract_tests - TARGET_PDB = cameff_m2_contract_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_m2_contract_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_baseline_expert_tests - - -############################################# -# Order-only phony target for cameff_baseline_expert_tests - -build cmake_object_order_depends_target_cameff_baseline_expert_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_baseline_expert_tests.dir/tests/test_baseline_expert.c.o: C_COMPILER__cameff_baseline_expert_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_baseline_expert.c || cmake_object_order_depends_target_cameff_baseline_expert_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_baseline_expert_tests.dir/tests/test_baseline_expert.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_baseline_expert_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_baseline_expert_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_baseline_expert_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_baseline_expert_tests - - -############################################# -# Link the executable cameff_baseline_expert_tests - -build cameff_baseline_expert_tests: C_EXECUTABLE_LINKER__cameff_baseline_expert_tests_Debug CMakeFiles/cameff_baseline_expert_tests.dir/tests/test_baseline_expert.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_baseline_expert_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_baseline_expert_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_baseline_expert_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_baseline_expert_tests - TARGET_PDB = cameff_baseline_expert_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_baseline_expert_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_pattern_tests - - -############################################# -# Order-only phony target for cameff_pattern_tests - -build cmake_object_order_depends_target_cameff_pattern_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_pattern_tests.dir/tests/test_pattern.c.o: C_COMPILER__cameff_pattern_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_pattern.c || cmake_object_order_depends_target_cameff_pattern_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_pattern_tests.dir/tests/test_pattern.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_pattern_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_pattern_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_pattern_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_pattern_tests - - -############################################# -# Link the executable cameff_pattern_tests - -build cameff_pattern_tests: C_EXECUTABLE_LINKER__cameff_pattern_tests_Debug CMakeFiles/cameff_pattern_tests.dir/tests/test_pattern.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_pattern_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_pattern_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_pattern_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_pattern_tests - TARGET_PDB = cameff_pattern_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_pattern_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_expert_registry_tests - - -############################################# -# Order-only phony target for cameff_expert_registry_tests - -build cmake_object_order_depends_target_cameff_expert_registry_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_expert_registry_tests.dir/tests/test_expert_registry.c.o: C_COMPILER__cameff_expert_registry_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_expert_registry.c || cmake_object_order_depends_target_cameff_expert_registry_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_expert_registry_tests.dir/tests/test_expert_registry.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_expert_registry_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_expert_registry_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_expert_registry_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_expert_registry_tests - - -############################################# -# Link the executable cameff_expert_registry_tests - -build cameff_expert_registry_tests: C_EXECUTABLE_LINKER__cameff_expert_registry_tests_Debug CMakeFiles/cameff_expert_registry_tests.dir/tests/test_expert_registry.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_expert_registry_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_expert_registry_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_expert_registry_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_expert_registry_tests - TARGET_PDB = cameff_expert_registry_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_expert_registry_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_specialized_expert_tests - - -############################################# -# Order-only phony target for cameff_specialized_expert_tests - -build cmake_object_order_depends_target_cameff_specialized_expert_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_specialized_expert_tests.dir/tests/test_specialized_experts.c.o: C_COMPILER__cameff_specialized_expert_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_specialized_experts.c || cmake_object_order_depends_target_cameff_specialized_expert_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_specialized_expert_tests.dir/tests/test_specialized_experts.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_specialized_expert_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_specialized_expert_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_specialized_expert_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_specialized_expert_tests - - -############################################# -# Link the executable cameff_specialized_expert_tests - -build cameff_specialized_expert_tests: C_EXECUTABLE_LINKER__cameff_specialized_expert_tests_Debug CMakeFiles/cameff_specialized_expert_tests.dir/tests/test_specialized_experts.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_specialized_expert_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_specialized_expert_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_specialized_expert_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_specialized_expert_tests - TARGET_PDB = cameff_specialized_expert_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_specialized_expert_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_fusion_tests - - -############################################# -# Order-only phony target for cameff_fusion_tests - -build cmake_object_order_depends_target_cameff_fusion_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_fusion_tests.dir/tests/test_fusion.c.o: C_COMPILER__cameff_fusion_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_fusion.c || cmake_object_order_depends_target_cameff_fusion_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_fusion_tests.dir/tests/test_fusion.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_fusion_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_fusion_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_fusion_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_fusion_tests - - -############################################# -# Link the executable cameff_fusion_tests - -build cameff_fusion_tests: C_EXECUTABLE_LINKER__cameff_fusion_tests_Debug CMakeFiles/cameff_fusion_tests.dir/tests/test_fusion.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_fusion_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_fusion_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_fusion_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_fusion_tests - TARGET_PDB = cameff_fusion_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_fusion_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_evaluation_tests - - -############################################# -# Order-only phony target for cameff_evaluation_tests - -build cmake_object_order_depends_target_cameff_evaluation_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_evaluation_tests.dir/tests/test_evaluation.c.o: C_COMPILER__cameff_evaluation_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_evaluation.c || cmake_object_order_depends_target_cameff_evaluation_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_evaluation_tests.dir/tests/test_evaluation.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_evaluation_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_evaluation_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_evaluation_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_evaluation_tests - - -############################################# -# Link the executable cameff_evaluation_tests - -build cameff_evaluation_tests: C_EXECUTABLE_LINKER__cameff_evaluation_tests_Debug CMakeFiles/cameff_evaluation_tests.dir/tests/test_evaluation.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_evaluation_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_evaluation_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_evaluation_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_evaluation_tests - TARGET_PDB = cameff_evaluation_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_evaluation_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_structural_case_tests - - -############################################# -# Order-only phony target for cameff_structural_case_tests - -build cmake_object_order_depends_target_cameff_structural_case_tests: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_structural_case_tests.dir/tests/test_structural_cases.c.o: C_COMPILER__cameff_structural_case_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/test_structural_cases.c || cmake_object_order_depends_target_cameff_structural_case_tests - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_structural_case_tests.dir/tests/test_structural_cases.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_structural_case_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_structural_case_tests.dir/tests - TARGET_SUPPORT_DIR = CMakeFiles/cameff_structural_case_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_structural_case_tests - - -############################################# -# Link the executable cameff_structural_case_tests - -build cameff_structural_case_tests: C_EXECUTABLE_LINKER__cameff_structural_case_tests_Debug CMakeFiles/cameff_structural_case_tests.dir/tests/test_structural_cases.c.o | libcameff_core.a || libcameff_core.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_structural_case_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_structural_case_tests.dir/link.d - LINK_LIBRARIES = libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_structural_case_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_structural_case_tests - TARGET_PDB = cameff_structural_case_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_structural_case_tests.dir - -# ============================================================================= -# Object build statements for STATIC_LIBRARY target cameff_validation - - -############################################# -# Order-only phony target for cameff_validation - -build cmake_object_order_depends_target_cameff_validation: phony || cmake_object_order_depends_target_cameff_core - -build CMakeFiles/cameff_validation.dir/src/validation/hindcast.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/validation/hindcast.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/validation/hindcast.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/validation - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/validation/hindcast_evaluator.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/validation/hindcast_evaluator.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/validation/hindcast_evaluator.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/validation - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/validation/metrics.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/validation/metrics.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/validation/metrics.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/validation - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/validation/report.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/validation/report.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/validation/report.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/validation - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/validation/cameff_pipeline_adapter.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/validation/cameff_pipeline_adapter.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/validation/cameff_pipeline_adapter.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/validation - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/data/earthquake_event.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/data/earthquake_event.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/data/earthquake_event.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/data - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/data/earthquake_catalog.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/data - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -build CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog_filter.c.o: C_COMPILER__cameff_validation_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/src/data/earthquake_catalog_filter.c || cmake_object_order_depends_target_cameff_validation - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog_filter.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_validation.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_validation.dir/src/data - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - - -# ============================================================================= -# Link build statements for STATIC_LIBRARY target cameff_validation - - -############################################# -# Link the static library libcameff_validation.a - -build libcameff_validation.a: C_STATIC_LIBRARY_LINKER__cameff_validation_Debug CMakeFiles/cameff_validation.dir/src/validation/hindcast.c.o CMakeFiles/cameff_validation.dir/src/validation/hindcast_evaluator.c.o CMakeFiles/cameff_validation.dir/src/validation/metrics.c.o CMakeFiles/cameff_validation.dir/src/validation/report.c.o CMakeFiles/cameff_validation.dir/src/validation/cameff_pipeline_adapter.c.o CMakeFiles/cameff_validation.dir/src/data/earthquake_event.c.o CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog.c.o CMakeFiles/cameff_validation.dir/src/data/earthquake_catalog_filter.c.o || libcameff_core.a - CONFIG = Debug - LANGUAGE_COMPILE_FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - OBJECT_DIR = CMakeFiles/cameff_validation.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = libcameff_validation.a - TARGET_PDB = cameff_validation.a.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_validation.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_catalog_tests - - -############################################# -# Order-only phony target for cameff_catalog_tests - -build cmake_object_order_depends_target_cameff_catalog_tests: phony || cmake_object_order_depends_target_cameff_core cmake_object_order_depends_target_cameff_validation - -build CMakeFiles/cameff_catalog_tests.dir/tests/data/test_catalog.c.o: C_COMPILER__cameff_catalog_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/data/test_catalog.c || cmake_object_order_depends_target_cameff_catalog_tests - CONFIG = Debug - DEFINES = -DCAMEFF_TEST_SOURCE_DIR="\"/mnt/c/opt/C Projects/cameff\"" - DEP_FILE = CMakeFiles/cameff_catalog_tests.dir/tests/data/test_catalog.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_catalog_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_catalog_tests.dir/tests/data - TARGET_SUPPORT_DIR = CMakeFiles/cameff_catalog_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_catalog_tests - - -############################################# -# Link the executable cameff_catalog_tests - -build cameff_catalog_tests: C_EXECUTABLE_LINKER__cameff_catalog_tests_Debug CMakeFiles/cameff_catalog_tests.dir/tests/data/test_catalog.c.o | libcameff_validation.a libcameff_core.a || libcameff_core.a libcameff_validation.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_catalog_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_catalog_tests.dir/link.d - LINK_LIBRARIES = libcameff_validation.a libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_catalog_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_catalog_tests - TARGET_PDB = cameff_catalog_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_catalog_tests.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_hindcast_runner - - -############################################# -# Order-only phony target for cameff_hindcast_runner - -build cmake_object_order_depends_target_cameff_hindcast_runner: phony || cmake_object_order_depends_target_cameff_core cmake_object_order_depends_target_cameff_validation - -build CMakeFiles/cameff_hindcast_runner.dir/apps/cameff_hindcast_runner.c.o: C_COMPILER__cameff_hindcast_runner_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/apps/cameff_hindcast_runner.c || cmake_object_order_depends_target_cameff_hindcast_runner - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_hindcast_runner.dir/apps/cameff_hindcast_runner.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_hindcast_runner.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_hindcast_runner.dir/apps - TARGET_SUPPORT_DIR = CMakeFiles/cameff_hindcast_runner.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_hindcast_runner - - -############################################# -# Link the executable cameff_hindcast_runner - -build cameff_hindcast_runner: C_EXECUTABLE_LINKER__cameff_hindcast_runner_Debug CMakeFiles/cameff_hindcast_runner.dir/apps/cameff_hindcast_runner.c.o | libcameff_validation.a libcameff_core.a || libcameff_core.a libcameff_validation.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_hindcast_runner.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_hindcast_runner.dir/link.d - LINK_LIBRARIES = libcameff_validation.a libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_hindcast_runner.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_hindcast_runner - TARGET_PDB = cameff_hindcast_runner.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_hindcast_runner.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_catalog_normalizer - - -############################################# -# Order-only phony target for cameff_catalog_normalizer - -build cmake_object_order_depends_target_cameff_catalog_normalizer: phony || . - -build CMakeFiles/cameff_catalog_normalizer.dir/apps/cameff_catalog_normalizer.c.o: C_COMPILER__cameff_catalog_normalizer_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/apps/cameff_catalog_normalizer.c || cmake_object_order_depends_target_cameff_catalog_normalizer - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_catalog_normalizer.dir/apps/cameff_catalog_normalizer.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Werror - OBJECT_DIR = CMakeFiles/cameff_catalog_normalizer.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_catalog_normalizer.dir/apps - TARGET_SUPPORT_DIR = CMakeFiles/cameff_catalog_normalizer.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_catalog_normalizer - - -############################################# -# Link the executable cameff_catalog_normalizer - -build cameff_catalog_normalizer: C_EXECUTABLE_LINKER__cameff_catalog_normalizer_Debug CMakeFiles/cameff_catalog_normalizer.dir/apps/cameff_catalog_normalizer.c.o - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_catalog_normalizer.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_catalog_normalizer.dir/link.d - OBJECT_DIR = CMakeFiles/cameff_catalog_normalizer.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_catalog_normalizer - TARGET_PDB = cameff_catalog_normalizer.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_catalog_normalizer.dir - -# ============================================================================= -# Object build statements for EXECUTABLE target cameff_hindcast_tests - - -############################################# -# Order-only phony target for cameff_hindcast_tests - -build cmake_object_order_depends_target_cameff_hindcast_tests: phony || cmake_object_order_depends_target_cameff_core cmake_object_order_depends_target_cameff_validation - -build CMakeFiles/cameff_hindcast_tests.dir/tests/validation/test_hindcast.c.o: C_COMPILER__cameff_hindcast_tests_unscanned_Debug /mnt/c/opt/C$ Projects/cameff/tests/validation/test_hindcast.c || cmake_object_order_depends_target_cameff_hindcast_tests - CONFIG = Debug - DEFINES = -DCAMEFF_TEST_SOURCE_DIR="\"/mnt/c/opt/C Projects/cameff\"" - DEP_FILE = CMakeFiles/cameff_hindcast_tests.dir/tests/validation/test_hindcast.c.o.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g -std=c17 - INCLUDES = -I"/mnt/c/opt/C Projects/cameff/include" - OBJECT_DIR = CMakeFiles/cameff_hindcast_tests.dir - OBJECT_FILE_DIR = CMakeFiles/cameff_hindcast_tests.dir/tests/validation - TARGET_SUPPORT_DIR = CMakeFiles/cameff_hindcast_tests.dir - - -# ============================================================================= -# Link build statements for EXECUTABLE target cameff_hindcast_tests - - -############################################# -# Link the executable cameff_hindcast_tests - -build cameff_hindcast_tests: C_EXECUTABLE_LINKER__cameff_hindcast_tests_Debug CMakeFiles/cameff_hindcast_tests.dir/tests/validation/test_hindcast.c.o | libcameff_validation.a libcameff_core.a || libcameff_core.a libcameff_validation.a - CONFIG = Debug - DEP_FILE = CMakeFiles/cameff_hindcast_tests.dir/link.d - FLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -g - LINK_FLAGS = -fsanitize=address,undefined -Wl,--dependency-file=CMakeFiles/cameff_hindcast_tests.dir/link.d - LINK_LIBRARIES = libcameff_validation.a libcameff_core.a -lm - OBJECT_DIR = CMakeFiles/cameff_hindcast_tests.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = cameff_hindcast_tests - TARGET_PDB = cameff_hindcast_tests.dbg - TARGET_SUPPORT_DIR = CMakeFiles/cameff_hindcast_tests.dir - - -############################################# -# Utility command for test - -build CMakeFiles/test.util: CUSTOM_COMMAND - COMMAND = cd "/mnt/c/opt/C Projects/cameff/build-asan" && /usr/bin/ctest - DESC = Running tests... - pool = console - restat = 1 - -build test: phony CMakeFiles/test.util - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd "/mnt/c/opt/C Projects/cameff/build-asan" && /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 - -build edit_cache: phony CMakeFiles/edit_cache.util - - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd "/mnt/c/opt/C Projects/cameff/build-asan" && /usr/bin/cmake --regenerate-during-build -S"/mnt/c/opt/C Projects/cameff" -B"/mnt/c/opt/C Projects/cameff/build-asan" - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 - -build rebuild_cache: phony CMakeFiles/rebuild_cache.util - - -############################################# -# Utility command for list_install_components - -build list_install_components: phony - - -############################################# -# Utility command for install - -build CMakeFiles/install.util: CUSTOM_COMMAND all - COMMAND = cd "/mnt/c/opt/C Projects/cameff/build-asan" && /usr/bin/cmake -P cmake_install.cmake - DESC = Install the project... - pool = console - restat = 1 - -build install: phony CMakeFiles/install.util - - -############################################# -# Utility command for install/local - -build CMakeFiles/install/local.util: CUSTOM_COMMAND all - COMMAND = cd "/mnt/c/opt/C Projects/cameff/build-asan" && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake - DESC = Installing only the local directory... - pool = console - restat = 1 - -build install/local: phony CMakeFiles/install/local.util - - -############################################# -# Utility command for install/strip - -build CMakeFiles/install/strip.util: CUSTOM_COMMAND all - COMMAND = cd "/mnt/c/opt/C Projects/cameff/build-asan" && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake - DESC = Installing the project stripped... - pool = console - restat = 1 - -build install/strip: phony CMakeFiles/install/strip.util - -# ============================================================================= -# Target aliases. - -build cameff_core: phony libcameff_core.a - -build cameff_validation: phony libcameff_validation.a - -# ============================================================================= -# Folder targets. - -# ============================================================================= - -############################################# -# Folder: /mnt/c/opt/C Projects/cameff/build-asan - -build all: phony libcameff_core.a cameff cameff_tests cameff_m2_contract_tests cameff_baseline_expert_tests cameff_pattern_tests cameff_expert_registry_tests cameff_specialized_expert_tests cameff_fusion_tests cameff_evaluation_tests cameff_structural_case_tests libcameff_validation.a cameff_catalog_tests cameff_hindcast_runner cameff_catalog_normalizer cameff_hindcast_tests - -# ============================================================================= -# Built-in targets - - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja /mnt/c/opt/C$ Projects/cameff/build-asan/cmake_install.cmake /mnt/c/opt/C$ Projects/cameff/build-asan/CTestTestfile.cmake: RERUN_CMAKE | /mnt/c/opt/C$ Projects/cameff/CMakeLists.txt /usr/share/cmake-4.2/Modules/CMakeCInformation.cmake /usr/share/cmake-4.2/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake-4.2/Modules/CMakeGenericSystem.cmake /usr/share/cmake-4.2/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake-4.2/Modules/CMakeLanguageInformation.cmake /usr/share/cmake-4.2/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake-4.2/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake-4.2/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake-4.2/Modules/Compiler/GNU-C.cmake /usr/share/cmake-4.2/Modules/Compiler/GNU.cmake /usr/share/cmake-4.2/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake-4.2/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake-4.2/Modules/Linker/GNU-C.cmake /usr/share/cmake-4.2/Modules/Linker/GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linker/GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake-4.2/Modules/Platform/Linux-GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake-4.2/Modules/Platform/Linux.cmake /usr/share/cmake-4.2/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.2.3/CMakeCCompiler.cmake CMakeFiles/4.2.3/CMakeSystem.cmake - pool = console - - -############################################# -# A missing CMake input file is not an error. - -build /mnt/c/opt/C$ Projects/cameff/CMakeLists.txt /usr/share/cmake-4.2/Modules/CMakeCInformation.cmake /usr/share/cmake-4.2/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake-4.2/Modules/CMakeGenericSystem.cmake /usr/share/cmake-4.2/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake-4.2/Modules/CMakeLanguageInformation.cmake /usr/share/cmake-4.2/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake-4.2/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake-4.2/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake-4.2/Modules/Compiler/GNU-C.cmake /usr/share/cmake-4.2/Modules/Compiler/GNU.cmake /usr/share/cmake-4.2/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake-4.2/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake-4.2/Modules/Linker/GNU-C.cmake /usr/share/cmake-4.2/Modules/Linker/GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linker/GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake-4.2/Modules/Platform/Linux-GNU.cmake /usr/share/cmake-4.2/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake-4.2/Modules/Platform/Linux.cmake /usr/share/cmake-4.2/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.2.3/CMakeCCompiler.cmake CMakeFiles/4.2.3/CMakeSystem.cmake: phony - - -############################################# -# Clean all the built files. - -build clean: CLEAN - - -############################################# -# Print all primary targets available. - -build help: HELP - - -############################################# -# Make the all target the default. - -default all diff --git a/build-asan/cameff b/build-asan/cameff deleted file mode 100644 index 5827dfd..0000000 Binary files a/build-asan/cameff and /dev/null differ diff --git a/build-asan/cameff_baseline_expert_tests b/build-asan/cameff_baseline_expert_tests deleted file mode 100644 index 17807e0..0000000 Binary files a/build-asan/cameff_baseline_expert_tests and /dev/null differ diff --git a/build-asan/cameff_catalog_normalizer b/build-asan/cameff_catalog_normalizer deleted file mode 100644 index 3a7a51e..0000000 Binary files a/build-asan/cameff_catalog_normalizer and /dev/null differ diff --git a/build-asan/cameff_catalog_tests b/build-asan/cameff_catalog_tests deleted file mode 100644 index b6332a1..0000000 Binary files a/build-asan/cameff_catalog_tests and /dev/null differ diff --git a/build-asan/cameff_evaluation_tests b/build-asan/cameff_evaluation_tests deleted file mode 100644 index 1af62d0..0000000 Binary files a/build-asan/cameff_evaluation_tests and /dev/null differ diff --git a/build-asan/cameff_expert_registry_tests b/build-asan/cameff_expert_registry_tests deleted file mode 100644 index d3935af..0000000 Binary files a/build-asan/cameff_expert_registry_tests and /dev/null differ diff --git a/build-asan/cameff_fusion_tests b/build-asan/cameff_fusion_tests deleted file mode 100644 index a5f6ad8..0000000 Binary files a/build-asan/cameff_fusion_tests and /dev/null differ diff --git a/build-asan/cameff_hindcast_runner b/build-asan/cameff_hindcast_runner deleted file mode 100644 index 38dc6f9..0000000 Binary files a/build-asan/cameff_hindcast_runner and /dev/null differ diff --git a/build-asan/cameff_hindcast_tests b/build-asan/cameff_hindcast_tests deleted file mode 100644 index 53a1ada..0000000 Binary files a/build-asan/cameff_hindcast_tests and /dev/null differ diff --git a/build-asan/cameff_m2_contract_tests b/build-asan/cameff_m2_contract_tests deleted file mode 100644 index bda9456..0000000 Binary files a/build-asan/cameff_m2_contract_tests and /dev/null differ diff --git a/build-asan/cameff_pattern_tests b/build-asan/cameff_pattern_tests deleted file mode 100644 index aba5a15..0000000 Binary files a/build-asan/cameff_pattern_tests and /dev/null differ diff --git a/build-asan/cameff_specialized_expert_tests b/build-asan/cameff_specialized_expert_tests deleted file mode 100644 index 175c3cf..0000000 Binary files a/build-asan/cameff_specialized_expert_tests and /dev/null differ diff --git a/build-asan/cameff_structural_case_tests b/build-asan/cameff_structural_case_tests deleted file mode 100644 index 765d93e..0000000 Binary files a/build-asan/cameff_structural_case_tests and /dev/null differ diff --git a/build-asan/cameff_tests b/build-asan/cameff_tests deleted file mode 100644 index e9414e5..0000000 Binary files a/build-asan/cameff_tests and /dev/null differ diff --git a/build-asan/cmake_install.cmake b/build-asan/cmake_install.cmake deleted file mode 100644 index 13976af..0000000 --- a/build-asan/cmake_install.cmake +++ /dev/null @@ -1,118 +0,0 @@ -# Install script for directory: /mnt/c/opt/C Projects/cameff - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -# Set path to fallback-tool for dependency-resolution. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/objdump") -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff" AND - NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff") - file(RPATH_CHECK - FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff" - RPATH "") - endif() - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/mnt/c/opt/C Projects/cameff/build-asan/cameff") - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff" AND - NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff") - if(CMAKE_INSTALL_DO_STRIP) - execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff") - endif() - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_hindcast_runner" AND - NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_hindcast_runner") - file(RPATH_CHECK - FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_hindcast_runner" - RPATH "") - endif() - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/mnt/c/opt/C Projects/cameff/build-asan/cameff_hindcast_runner") - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_hindcast_runner" AND - NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_hindcast_runner") - if(CMAKE_INSTALL_DO_STRIP) - execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_hindcast_runner") - endif() - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_catalog_normalizer" AND - NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_catalog_normalizer") - file(RPATH_CHECK - FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_catalog_normalizer" - RPATH "") - endif() - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/mnt/c/opt/C Projects/cameff/build-asan/cameff_catalog_normalizer") - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_catalog_normalizer" AND - NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_catalog_normalizer") - if(CMAKE_INSTALL_DO_STRIP) - execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/cameff_catalog_normalizer") - endif() - endif() -endif() - -if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/mnt/c/opt/C Projects/cameff/include/cameff") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -if(CMAKE_INSTALL_LOCAL_ONLY) - file(WRITE "/mnt/c/opt/C Projects/cameff/build-asan/install_local_manifest.txt" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") -endif() -if(CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") - else() - string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") - unset(CMAKE_INST_COMP_HASH) - endif() -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - file(WRITE "/mnt/c/opt/C Projects/cameff/build-asan/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") -endif() diff --git a/config/default.conf b/config/default.conf deleted file mode 100644 index d166a01..0000000 --- a/config/default.conf +++ /dev/null @@ -1,13 +0,0 @@ -minimum_events=8 -watch_threshold=0.45 -elevated_threshold=0.68 -minimum_data_confidence=0.35 -fault_map_confidence=0.50 -weight.activity_rate=0.17 -weight.temporal_acceleration=0.18 -weight.spatial_concentration=0.15 -weight.magnitude_trend=0.14 -weight.depth_migration=0.10 -weight.b_value_anomaly=0.12 -weight.catalog_completeness=0.08 -weight.fault_map_confidence=0.06 diff --git a/config/fm_v1_4_numerical_contract.json b/config/fm_v1_4_numerical_contract.json new file mode 100644 index 0000000..f808894 --- /dev/null +++ b/config/fm_v1_4_numerical_contract.json @@ -0,0 +1,173 @@ +{ + "contract_id": "CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1", + "scope": "Validated operational branch: temporal ETAS plus P29K calibration", + "purpose": "Define the exact computational interpretation required to generate authoritative Python oracle outputs and evaluate C17 equivalence.", + "mathematical_authority": "CAMEFF FM-v1.4", + "floating_point": { + "format": "IEEE-754 binary64", + "python_dtype": "numpy.float64", + "c_type": "double", + "fused_multiply_add": "not required", + "extended_precision_intermediates": "not allowed for normative comparisons", + "rounding_mode": "round-to-nearest ties-to-even", + "nan_policy": "reject input row", + "infinity_policy": "reject input row" + }, + "chronology": { + "timezone": "UTC", + "decision_time_inclusion": "event_time < decision_time", + "event_revision_inclusion": "updated_time < decision_time", + "daily_bin_rule": "floor UTC timestamp to civil UTC day", + "forecast_horizon": "[decision_time, decision_time + 7 days)" + }, + "magnitude_completeness": { + "histogram_bin_width": 0.1, + "bin_start": "floor(min_magnitude*10)/10", + "bin_end": "ceil(max_magnitude*10)/10 + 0.1", + "selection": "left edge of first maximum-count bin + 0.2", + "rounding": "round to two decimal places", + "lower_bound": 1.0, + "upper_bound": 5.0, + "minimum_prior_events": 200, + "tie_break": "first bin in ascending magnitude order" + }, + "gutenberg_richter": { + "formula": "b = log10(e)/(mean(M[M>=Mc]) - (Mc - 0.05))", + "minimum_events_at_or_above_mc": 100 + }, + "etas_grid": { + "alpha": [ + 0.5, + 1.0, + 1.5, + 2.0 + ], + "c_days": [ + 0.05, + 0.1, + 0.5 + ], + "p": [ + 1.0, + 1.2, + 1.5 + ], + "traversal_order": "alpha outer, c middle, p inner, ascending as listed", + "tie_tolerance_loglik": 1e-12, + "tie_break": "first candidate in traversal order" + }, + "etas_objective": { + "parameterization": "z0=log(mu), z1=log(K)", + "bounds": { + "log_mu": [ + -15.0, + 5.0 + ], + "log_K": [ + -20.0, + 5.0 + ] + }, + "daily_intensity": "lambda_t = mu + K*g_t", + "negative_log_likelihood": "sum(lambda_t - y_t*log(lambda_t))", + "minimum_lambda": 1e-12, + "gradient": [ + "dNLL/dlog(mu) = sum((1-y_t/lambda_t)*mu)", + "dNLL/dlog(K) = sum((1-y_t/lambda_t)*K*g_t)" + ], + "initialization": { + "mu": "max(0.5*mean(y), 1e-5)", + "K": "max(0.5*mean(y)/(mean(g)+1e-9), 1e-8)" + } + }, + "normative_optimizer": { + "family": "SciPy minimize(method='L-BFGS-B')", + "required_call": { + "method": "L-BFGS-B", + "bounds": [ + [ + -15.0, + 5.0 + ], + [ + -20.0, + 5.0 + ] + ], + "jac": "analytic gradient required", + "maxiter": 2000, + "ftol": 1e-12, + "gtol": 1e-08, + "maxls": 20 + }, + "termination_status_policy": { + "success_true": "candidate eligible", + "success_false": "candidate ineligible", + "boundary_solution": "eligible if success=true and stationarity passes" + }, + "versioning_rule": "Any change to Python, NumPy, SciPy, BLAS/LAPACK, optimizer options, objective, gradient, initialization, or bounds creates a new contract version." + }, + "stationarity": { + "kernel_memory_days": 365, + "branching_proxy": "K * sum_{lag=1}^{365}(lag+c)^(-p) * mean(exp(alpha*(M-Mc)))", + "eligible": "branching_proxy < 1.0", + "boundary_rule": "branching_proxy >= 1.0 is rejected" + }, + "forecast_probability": { + "daily_rate": "max(mu + K*g_decision_day, 1e-12)", + "m6_tail": "min(1, 10^(-b*(6-Mc)))", + "raw_probability": "1-exp(-7*daily_rate*m6_tail)", + "clip": [ + 1e-09, + 0.999999999 + ] + }, + "p29k_calibration": { + "window_days": 1095, + "refit": "annual at 00:00 UTC January 1", + "minimum_rows": 500, + "minimum_positives": 10, + "regularization_C": 0.01, + "features": [ + "log(p_raw)", + "-log(1-p_raw)" + ], + "solver": "liblinear", + "max_iter": 2000, + "random_state": 20260716, + "beta_probability": "sigmoid(intercept + coef_log_p*log(p_raw) + coef_neg_log_1mp*(-log(1-p_raw)))", + "final_probability": "0.5*beta_probability + 0.5*training_prevalence", + "clip": [ + 1e-09, + 0.999999999 + ] + }, + "equivalence_acceptance": { + "status": "exact", + "alpha_c_p": "exact", + "Mc_absolute": 1e-12, + "b_absolute": 1e-10, + "mu_relative": 1e-06, + "K_relative": 1e-06, + "loglik_absolute": 1e-06, + "branching_relative": 1e-06, + "raw_probability_absolute": 1e-08, + "calibrated_probability_absolute": 1e-10 + }, + "oracle_generation": { + "single_authoritative_command": "python -m cameff_oracle.generate --contract P34F", + "fixture_mutation": "prohibited", + "output_sorting": "catalog_id, decision_time ascending", + "serialization": "UTF-8 CSV with Unix LF and decimal point '.'", + "hash_algorithm": "SHA-256" + }, + "prohibited": [ + "Using SciPy defaults without explicitly recording options", + "Changing fixture order", + "Changing grid traversal order", + "Post-hoc tolerance relaxation", + "Platform-specific tie-breaking", + "Replacing failed candidate with nearest successful candidate", + "Inventing missing expert coefficients" + ] +} \ No newline at end of file diff --git a/config/near_zero_equivalence_contract.json b/config/near_zero_equivalence_contract.json new file mode 100644 index 0000000..ad10a05 --- /dev/null +++ b/config/near_zero_equivalence_contract.json @@ -0,0 +1,25 @@ +{ + "contract_id": "CAMEFF-FM-v1.4-P34K-NEAR-ZERO-EQUIVALENCE-v1", + "inherits": "CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1", + "reason": "A relative-only test is ill-conditioned when the reference parameter is approximately zero. The sole remaining mismatch has an absolute K difference of about 2.3e-14 while both K values are about 2.6e-9.", + "mixed_tolerance_rule": { + "formula": "abs(a-b) <= max(abs_tol, rel_tol*max(abs(a),abs(b)))", + "K_absolute_tolerance": 1e-12, + "K_relative_tolerance": 1e-06, + "branching_absolute_tolerance": 1e-12, + "branching_relative_tolerance": 1e-06 + }, + "unchanged_requirements": { + "status": "exact", + "alpha_c_p": "exact", + "Mc_absolute": 1e-12, + "b_absolute": 1e-10, + "mu_relative": 1e-06, + "loglik_absolute": 1e-06, + "raw_probability_absolute": 1e-08 + }, + "mathematics_changed": false, + "c17_source_changed": false, + "python_oracle_changed": false, + "fixtures_changed": false +} \ No newline at end of file diff --git a/data/examples/catalog.csv b/data/examples/catalog.csv deleted file mode 100644 index fca2e55..0000000 --- a/data/examples/catalog.csv +++ /dev/null @@ -1,9 +0,0 @@ -id,source,time,latitude,longitude,depth_km,magnitude -e1,example,2026-01-25T00:00:00Z,10.00,123.00,45,4.1 -e2,example,2026-01-26T00:00:00Z,10.02,123.01,42,4.2 -e3,example,2026-01-27T00:00:00Z,10.01,123.02,39,4.3 -e4,example,2026-01-28T00:00:00Z,10.03,123.01,35,4.4 -e5,example,2026-01-29T00:00:00Z,10.02,123.00,31,4.5 -e6,example,2026-01-30T00:00:00Z,10.01,123.01,28,4.6 -e7,example,2026-01-30T12:00:00Z,10.00,123.02,24,4.7 -e8,example,2026-01-31T00:00:00Z,10.01,123.00,20,4.8 diff --git a/docs/IMPLEMENTATION_PROVENANCE.md b/docs/IMPLEMENTATION_PROVENANCE.md new file mode 100644 index 0000000..238f941 --- /dev/null +++ b/docs/IMPLEMENTATION_PROVENANCE.md @@ -0,0 +1,11 @@ +# Implementation provenance + +- Foundational mathematics: CAMEFF FM-v1.4 +- Numerical contract: P34F +- Near-zero equivalence clarification: P34K +- Validated fixture suite: 36 cases +- Optimizer backend: SciPy 1.17.0 C translation of L-BFGS-B +- Parent P34K SHA-256: `4a930b54321b0ebc6b1dcdeaf9a7e565988b4e58155c66e6523f9006a0097c29` +- FM-v1.4 DOCX SHA-256: `a4a326da854ab6cd5960ecd14e47dc6280c5f43ad4e35bac4937fefc7cd02d48` + +No CAMEFF mathematics was changed while producing this repository package. diff --git a/docs/MILESTONE_1.md b/docs/MILESTONE_1.md deleted file mode 100644 index dfeac5a..0000000 --- a/docs/MILESTONE_1.md +++ /dev/null @@ -1,12 +0,0 @@ -# Milestone 1 acceptance criteria - -1. Builds as strict ISO C17 with GCC and warnings-as-errors. -2. Requires a cutoff timestamp, preventing future-event leakage. -3. Selects only events inside the configured time-space window. -4. Produces bounded signal values and per-signal confidence in [0,1]. -5. Represents missing/weak evidence explicitly rather than inventing certainty. -6. Treats fault-map confidence as an input signal, allowing regions with incomplete mapped faults to remain uncertain. -7. Outputs an evidence level, not a calibrated earthquake probability. -8. Passes deterministic unit tests. - -The next milestone should introduce the earthquake-situation classifier and the expert interface without changing these public data contracts unnecessarily. diff --git a/experiments/cebu_2025/README.md b/experiments/cebu_2025/README.md deleted file mode 100644 index c7c3ad7..0000000 --- a/experiments/cebu_2025/README.md +++ /dev/null @@ -1,172 +0,0 @@ -# Cebu 2025 Hindcast Experiment - -This experiment evaluates the frozen CAMEFF b1.0.0 validation pipeline -against the 30 September 2025 Offshore Northern Cebu earthquake. - -## Target event - -* Time: 2025-09-30 13:59:43 UTC -* Latitude: 11.156 degrees north -* Longitude: 124.111 degrees east -* Depth: 10.0 km -* Magnitude: Mw6.9 -* USGS event identifier: us6000rdrz -* Tectonic setting: shallow crustal faulting -* Associated fault: Bogo Bay Fault - -## Frozen validation rules - -The following rules were fixed before evaluating Cebu: - -* Warning threshold: 0.73 -* Forecast lead time: 24 hours -* Evidence window: 365 days -* Analysis radius: 500 km -* Minimum catalog magnitude: M2.5 -* Minimum evidence events: 20 - -The threshold and CAMEFF core mathematics must not be modified to fit -the Cebu result. - -## Why this case matters - -Japan and Kamchatka are subduction-zone megathrust cases. Cebu is a -shallower crustal earthquake associated with a locally significant fault -system. - -This makes Cebu an important test of whether CAMEFF can generalize beyond -large subduction preparation sequences. - -A miss must be recorded as a miss rather than corrected by changing the -frozen threshold after observing the result. - -## Validation catalog - -The catalog covers approximately five years before the target. - -Acquisition parameters: - -* Start: 2020-09-29 13:59:43 UTC -* End: 2025-09-30 13:59:42 UTC -* Centre: 11.156, 124.111 -* Radius: 500 km -* Minimum magnitude: M2.5 -* Event type: earthquake -* Ordering: ascending origin time - -The catalog ends one second before the target event, preventing direct -target leakage. - -## Download - -From the repository root: - -```bash -./experiments/cebu_2025/fetch_usgs_raw.sh -``` - -The raw catalog is written to: - -```text -experiments/cebu_2025/data/raw/usgs_cebu_2020_2025_raw.csv -``` - -## Normalize - -Build the CAMEFF utilities: - -```bash -cmake --build build -``` - -Normalize the catalog: - -```bash -./experiments/cebu_2025/normalize_catalog.sh -``` - -The normalized file is written to: - -```text -experiments/cebu_2025/data/normalized/catalog.csv -``` - -## Planned positive window - -* Evidence start: 2024-09-29 13:59:43 UTC -* Cutoff: 2025-09-29 13:59:43 UTC -* Target: 2025-09-30 13:59:43 UTC -* Forecast lead time: 24 hours -* Expected label: positive - -## Planned controls - -* Cebu 2021 annual control -* Cebu 2022 annual control -* Cebu 2023 annual control -* Cebu 2024 annual control - -The controls will be classified using the same frozen threshold of 0.73. - -## Interpretation - -The hazard-evidence output is an uncalibrated score. It is not an -earthquake probability. - -This experiment is an untouched retrospective generalization test. - -## Run the positive hindcast - -From the repository root: - -```bash -./experiments/cebu_2025/run_hindcast.sh -``` - -The experiment uses a cutoff exactly twenty-four hours before the target -earthquake. - -The generated report is written to: - -```text -experiments/cebu_2025/results/cebu_2025_hindcast.txt -``` - -## Run the validation suite - -Run the four annual controls and the positive target window: - -```bash -./experiments/cebu_2025/run_validation_suite.sh -``` - -Inspect the results: - -```bash -column -s, -t \ - experiments/cebu_2025/results/cebu_validation_windows.csv -``` - -The `predicted_label` field uses the frozen warning threshold of 0.73: - -* `1` means CAMEFF issued a warning. -* `0` means the hazard score remained below the threshold. - -## Frozen-threshold metrics - -Generate the Cebu metrics: - -```bash -./experiments/cebu_2025/run_threshold_report.sh -``` - -Inspect the report: - -```bash -column -s, -t \ - experiments/cebu_2025/results/cebu_frozen_threshold_metrics.csv -``` - -The warning threshold must not be modified based on the Cebu outcome. -A result below 0.73 for the positive target window must be recorded as a -miss. diff --git a/experiments/cebu_2025/data/normalized/catalog.csv b/experiments/cebu_2025/data/normalized/catalog.csv deleted file mode 100644 index 82640a8..0000000 --- a/experiments/cebu_2025/data/normalized/catalog.csv +++ /dev/null @@ -1,2227 +0,0 @@ -time,latitude,longitude,depth,mag,region -2020-09-30T20:48:01.256Z,7.8599,127.0387,44.34,4,57 km ENE of Kinablangan Philippines -2020-09-30T21:08:08.342Z,9.1581,126.6167,10,4.6,43 km ENE of La Paz Philippines -2020-09-30T21:13:10.357Z,9.2094,126.7568,10,4.6,59 km ENE of La Paz Philippines -2020-09-30T22:10:47.184Z,9.2267,126.7042,10,5.1,55 km ENE of La Paz Philippines -2020-09-30T22:16:59.500Z,9.1325,126.6122,10,4.4,41 km ENE of La Paz Philippines -2020-10-01T03:08:46.766Z,9.6862,127.2006,10,4.4,119 km ENE of Cortes Philippines -2020-10-01T04:14:54.422Z,9.3704,127.179,10,4.3,108 km E of Cortes Philippines -2020-10-01T06:59:22.723Z,9.4225,127.2024,10,4.3,112 km E of Cortes Philippines -2020-10-02T01:40:07.888Z,10.7875,126.2756,10,4.5,51 km ESE of Sulangan Philippines -2020-10-03T05:03:47.399Z,13.5738,120.9304,177.14,4.7,7 km N of Balatero Philippines -2020-10-03T22:19:29.574Z,9.2532,126.3193,39.88,4.6,14 km ESE of Cortes Philippines -2020-10-04T18:16:53.824Z,13.6082,120.7526,121,5.6,14 km WSW of Tingloy Philippines -2020-10-05T08:35:13.396Z,10.3752,126.2001,54.86,4.5,43 km NNE of Santa Monica Philippines -2020-10-05T09:36:56.371Z,10.3199,126.0057,61.1,4.3,33 km N of Santa Monica Philippines -2020-10-05T11:20:20.480Z,8.6575,125.9797,118.56,4.5,2 km NNW of Los Arcos Philippines -2020-10-06T13:22:02.275Z,9.5863,126.6861,10,4.8,64 km ENE of Cortes Philippines -2020-10-06T20:49:29.398Z,9.8413,126.856,10,4.4,82 km E of Union Philippines -2020-10-06T21:18:04.990Z,9.7097,126.3434,10,4.5,26 km ESE of Union Philippines -2020-10-06T21:29:06.790Z,9.7633,126.3368,10,4.6,24 km E of Union Philippines -2020-10-06T21:45:21.823Z,9.9221,126.4609,10,4.4,40 km E of Pilar Philippines -2020-10-06T22:06:03.895Z,9.7346,126.3234,10,4.4,23 km E of Union Philippines -2020-10-07T00:32:06.980Z,9.6359,126.1821,18.26,4.4,15 km SSE of Union Philippines -2020-10-07T15:22:15.683Z,8.6939,125.9612,10,4.3,7 km NNW of Los Arcos Philippines -2020-10-09T10:42:34.948Z,9.8889,126.6263,10,4.3,57 km E of Pilar Philippines -2020-10-10T01:18:15.922Z,9.936,125.9545,96.1,4.3,6 km WSW of San Benito Philippines -2020-10-12T19:21:40.276Z,9.7721,126.0146,91.55,4.8,4 km WNW of Dapa Philippines -2020-10-13T06:49:00.805Z,11.3325,125.6562,24.28,4.7,4 km E of Hernani Philippines -2020-10-13T07:26:11.108Z,11.5605,125.7512,35,4.3,27 km NE of Llorente Philippines -2020-10-14T13:11:22.602Z,8.7269,127.0538,10,4.2,83 km ESE of Aras-asan Philippines -2020-10-15T08:51:35.627Z,7.2362,126.3157,10,4.6,22 km NNE of Limot Philippines -2020-10-16T00:27:42.257Z,10.4359,122.273,10,4.8,22 km SE of San Joaquin Philippines -2020-10-16T00:32:42.060Z,10.4407,122.2578,10,4.8,20 km SE of San Joaquin Philippines -2020-10-16T00:42:01.875Z,10.4182,122.2035,10,4.7,18 km ESE of Lawigan Philippines -2020-10-17T12:57:07.801Z,10.5129,122.3821,10,4.1,15 km WNW of Locmayan Philippines -2020-10-18T05:46:54.653Z,11.1819,125.9284,35,4.8,27 km NE of Guiuan Philippines -2020-10-19T19:32:59.574Z,11.7604,124.8823,35,4.4,1 km SSW of Catbalogan Philippines -2020-10-19T20:59:04.980Z,8.1367,126.8607,70.91,4.6,47 km E of Barcelona Philippines -2020-10-29T05:25:50.823Z,13.7177,120.8742,76.9,4.8,1 km NW of Bagalangit Philippines -2020-10-29T07:23:16.832Z,13.6978,120.7783,98.29,4.5,10 km WNW of Tingloy Philippines -2020-10-30T20:32:46.000Z,13.1321,125.6668,24.12,4.6,83 km NE of Cabatuan Philippines -2020-11-02T06:29:00.670Z,8.6379,121.9721,10,4.6,87 km NW of Kalawit Philippines -2020-11-04T18:27:48.797Z,10.0607,126.0084,55.88,5,5 km NW of Santa Monica Philippines -2020-11-05T02:37:02.804Z,10.5569,126.5694,10,4.5,83 km NE of Santa Monica Philippines -2020-11-10T03:35:32.215Z,13.3059,120.4351,35,4.5,12 km SSW of Paluan Philippines -2020-11-10T03:45:34.537Z,9.7432,125.9516,60,4.5,11 km W of Dapa Philippines -2020-11-11T17:07:27.025Z,9.1276,126.3209,62.08,4.4,14 km ENE of Tandag Philippines -2020-11-11T23:25:04.733Z,9.2775,122.93,10,4.5,5 km E of Alangilan Philippines -2020-11-12T07:18:25.893Z,10.2155,126.0501,47.71,5.3,21 km N of Santa Monica Philippines -2020-11-12T12:41:59.322Z,13.5431,120.6753,88.14,4.3,Mindoro Philippines -2020-11-12T16:33:43.190Z,14.0234,120.6276,104.01,4.3,2 km S of San Diego Philippines -2020-11-13T18:15:32.227Z,13.7476,120.9041,116.98,4.3,0 km ENE of Solo Philippines -2020-11-14T05:31:04.583Z,10.3559,126.5907,10,4.6,71 km ENE of Santa Monica Philippines -2020-11-15T06:35:14.716Z,11.8301,124.2432,20.88,5,21 km ESE of Limbuhan Philippines -2020-11-15T22:37:43.690Z,8.7572,126.2914,43,6,5 km S of Marihatag Philippines -2020-11-15T22:49:09.716Z,13.3288,124.3723,16.34,4.4,31 km ENE of Rapu-Rapu Philippines -2020-11-17T10:28:48.422Z,10.4626,126.1735,46.33,4.4,51 km NNE of Santa Monica Philippines -2020-11-19T12:14:09.404Z,7.9454,123.2439,10,4.5,6 km SSW of Midsalip Philippines -2020-11-21T11:12:59.490Z,7.7198,126.0833,10,4.2,1 km SE of Babag Philippines -2020-11-21T17:06:18.501Z,14.0915,120.621,135.34,4.4,2 km NNW of Nasugbu Philippines -2020-11-24T14:17:27.504Z,8.5752,126.6525,62.7,4.6,41 km ENE of Hinatuan Philippines -2020-11-25T02:25:26.750Z,8.4782,126.5702,61.16,4.7,28 km ENE of Hinatuan Philippines -2020-11-25T17:28:27.386Z,10.74,126.0099,35,4.4,29 km SE of Sulangan Philippines -2020-11-26T23:26:35.917Z,13.9401,120.8469,291.95,4,2 km N of Sinisian Philippines -2020-11-27T02:37:53.266Z,14.0484,120.6726,145.9,4.5,0 km SE of Lumbangan Philippines -2020-11-29T05:49:03.605Z,7.8831,127.1706,38.15,4.1,71 km ENE of Kinablangan Philippines -2020-11-29T20:23:49.359Z,12.0949,124.2898,10,4.9,16 km SW of Piña Philippines -2020-12-04T04:40:59.587Z,13.634,120.4235,78.75,4.4,20 km N of Harrison Philippines -2020-12-04T22:08:39.131Z,8.33,126.603,47.47,4.1,26 km NE of Barcelona Philippines -2020-12-07T14:37:24.035Z,12.9771,124.5106,68.9,5.4,36 km NNE of Biri Philippines -2020-12-11T04:10:11.740Z,13.8417,120.7331,138,4.5,3 km E of Hukay Philippines -2020-12-15T15:38:41.397Z,9.0674,126.1647,36.58,4.4,3 km WSW of Tandag Philippines -2020-12-16T00:00:07.461Z,13.1234,123.9382,10,4.5,3 km WNW of Santo Niño Philippines -2020-12-19T20:40:54.383Z,10.8492,126.273,10,4.7,49 km E of Sulangan Philippines -2020-12-21T18:14:47.611Z,14.7716,121.6318,37.94,4.9,0 km NNW of General Nakar Philippines -2020-12-22T13:37:53.748Z,10.0821,126.0988,54.97,5,9 km NE of Santa Monica Philippines -2020-12-24T04:16:31.088Z,13.5924,120.7549,118.74,4.2,14 km N of Wawa Philippines -2020-12-24T10:32:07.304Z,13.7471,120.9371,122.91,4.5,Mindoro Philippines -2020-12-24T23:43:41.964Z,13.82,120.6539,109,6.3,2 km ESE of Calatagan Philippines -2020-12-25T01:06:50.404Z,13.6673,120.6024,127.42,4.1,18 km S of Calatagan Philippines -2020-12-25T10:04:34.286Z,13.2955,122.3301,10,5.4,20 km W of Silongin Philippines -2020-12-25T13:24:47.240Z,13.7462,120.8312,121.32,4.7,7 km NW of Bagalangit Philippines -2020-12-26T03:41:17.024Z,13.0154,122.1056,10,4.4,27 km SSE of Yook Philippines -2020-12-27T22:31:31.086Z,13.7534,120.7854,117.13,4.4,Mindoro Philippines -2020-12-28T03:46:07.270Z,13.2406,122.592,10,4.4,3 km S of Tala Philippines -2020-12-28T13:43:32.767Z,13.9939,120.6997,154.22,4.5,3 km W of Putol Philippines -2020-12-29T16:38:08.564Z,8.7329,126.7121,46.44,4.2,46 km E of Marihatag Philippines -2020-12-29T16:38:55.611Z,8.2531,127.1138,10,4.4,75 km E of Barcelona Philippines -2020-12-29T18:43:22.393Z,9.4131,124.2318,529.84,4.3,21 km S of Valencia Philippines -2020-12-30T21:27:32.633Z,7.6359,126.9172,53.27,4.6,40 km E of Baganga Philippines -2021-01-02T05:29:17.919Z,9.5829,125.9985,61.49,4.3,5 km SE of Socorro Philippines -2021-01-04T00:05:10.096Z,13.1674,122.2262,10,4.5,22 km SE of Torrijos Philippines -2021-01-06T15:44:31.415Z,8.9701,126.7309,27.47,4.5,47 km E of Aras-asan Philippines -2021-01-07T02:20:32.752Z,7.8003,122.0446,10,4.5,14 km NW of Siocon Philippines -2021-01-07T16:47:18.277Z,7.6827,121.9292,10,4.5,22 km W of Siocon Philippines -2021-01-15T22:48:55.129Z,13.7845,120.7376,158.64,4.6,7 km SSE of Hukay Philippines -2021-01-16T22:37:45.312Z,12.0214,125.0465,80.23,4.5,4 km SE of San Jose de Buan Philippines -2021-01-20T01:27:58.557Z,9.0657,125.6272,10,4.8,1 km NNE of Balangbalang Philippines -2021-01-20T06:53:09.510Z,10.5061,125.5427,60.49,4.9,16 km NNW of Loreto Philippines -2021-01-22T07:57:11.693Z,13.6855,120.7777,190.08,4.2,10 km WNW of Tingloy Philippines -2021-01-22T07:59:16.772Z,9.8355,126.3433,10,4.4,26 km E of Pilar Philippines -2021-01-22T23:14:06.478Z,10.207,125.3979,10,4.2,22 km SW of Tubajon Philippines -2021-01-23T09:29:23.653Z,9.0234,126.2249,165.55,4,0 km WNW of Tago Philippines -2021-01-24T07:44:19.099Z,8.194,125.0968,10,4.2,4 km NW of Sumpong Philippines -2021-01-24T14:26:45.309Z,8.99,126.504,64.31,5.2,24 km ENE of Aras-asan Philippines -2021-01-25T17:31:25.014Z,9.1524,126.185,70.36,4.3,3 km SSE of Mabahin Philippines -2021-01-25T19:39:47.617Z,13.8793,120.6672,90.63,4.6,2 km E of Lucsuhin Philippines -2021-01-26T21:04:17.581Z,8.0318,126.9793,35,4.4,59 km E of Santa Maria Philippines -2021-01-27T20:48:46.902Z,13.878,120.8167,116.91,4.1,5 km SW of Sinisian Philippines -2021-01-29T05:08:14.209Z,13.5184,120.4817,54.49,4.8,9 km NE of Harrison Philippines -2021-01-29T05:12:23.257Z,13.4978,120.5059,43.3,5,9 km NE of Harrison Philippines -2021-01-30T03:12:57.887Z,10.5986,125.5181,10,4.8,26 km NNW of Loreto Philippines -2021-01-31T00:34:14.635Z,9.0919,126.5574,18.17,4.9,34 km ENE of Bacolod Philippines -2021-01-31T05:02:44.783Z,9.4274,125.8907,71.09,4.2,2 km NNW of Adlay Philippines -2021-02-01T14:08:11.201Z,13.0728,120.3517,10,4.4,29 km SW of Tayaman Philippines -2021-02-01T22:31:08.001Z,9.7061,126.01,10,4.7,7 km SW of Dapa Philippines -2021-02-03T03:36:05.281Z,13.752,120.8608,107.41,4.4,4 km W of Solo Philippines -2021-02-04T22:00:43.301Z,14.5452,122.976,10,5.1,35 km NE of Paracale Philippines -2021-02-04T22:08:40.294Z,14.4849,123.1486,10,4.5,38 km NE of Sabang Indan Philippines -2021-02-04T23:30:02.617Z,14.3807,123.0941,10,4.5,26 km NE of Sabang Indan Philippines -2021-02-04T23:49:49.484Z,11.9022,120.7811,10,4.8,52 km SW of Santa Teresa Philippines -2021-02-05T00:23:50.031Z,14.2998,122.8456,10,4.3,6 km ENE of Paracale Philippines -2021-02-05T11:14:44.735Z,9.2687,126.5677,38.67,4.5,Mindanao Philippines -2021-02-06T10:21:12.868Z,7.527,126.6197,74.7,4.6,8 km SE of Baganga Philippines -2021-02-07T04:22:56.667Z,6.7693,125.1011,16,6,9 km W of Magsaysay Philippines -2021-02-08T17:33:16.737Z,7.5478,126.7851,58.26,4.5,24 km ENE of Baculin Philippines -2021-02-08T23:24:39.901Z,11.9604,120.7767,10,5,48 km SW of Santa Teresa Philippines -2021-02-08T23:27:30.145Z,11.8418,120.7459,10,4.4,47 km N of Algeciras Philippines -2021-02-08T23:50:53.848Z,11.8296,120.5697,10,4.6,43 km ESE of Coron Philippines -2021-02-11T13:35:02.728Z,13.5954,120.8395,149.45,4.8,8 km SSW of Tingloy Philippines -2021-02-12T10:16:35.908Z,10.6828,121.7048,10,4.6,29 km W of Piape I Philippines -2021-02-16T14:20:47.075Z,9.2629,127.0509,10,4.5,91 km ENE of Aras-asan Philippines -2021-02-18T05:59:00.725Z,13.5014,120.4868,59.97,4.4,8 km NE of Harrison Philippines -2021-02-18T06:31:30.385Z,13.4506,120.4296,68.49,4.2,0 km W of Harrison Philippines -2021-02-21T07:54:27.454Z,10.5442,125.7223,135.27,4.3,25 km NE of Loreto Philippines -2021-02-26T01:41:03.525Z,9.1152,123.39,10,4.3,16 km ESE of Dauin Philippines -2021-02-26T02:42:16.533Z,10.245,125.7931,96.59,4.3,27 km ESE of Tubajon Philippines -2021-03-03T13:08:23.992Z,8.5068,126.8144,35,4.7,54 km ENE of Hinatuan Philippines -2021-03-03T13:23:53.368Z,8.516,126.9305,35,4.4,67 km NE of Barcelona Philippines -2021-03-07T02:55:51.210Z,7.4027,125.4989,49.2,4.2,9 km NW of Mabuhay Philippines -2021-03-12T12:28:50.593Z,8.2272,125.4309,10,4.3,16 km NE of Cabanglasan Philippines -2021-03-16T02:48:15.739Z,9.2874,126.031,93.1,4.6,6 km NNE of Carmen Philippines -2021-03-17T06:16:16.504Z,8.8453,126.5553,88.35,4.1,27 km E of Aras-asan Philippines -2021-03-18T21:51:44.661Z,7.7407,126.9503,56.96,4.3,44 km E of Kinablangan Philippines -2021-03-20T05:56:30.796Z,14.0859,120.71,110.16,4.2,1 km WNW of Tumalim Philippines -2021-03-20T10:06:05.304Z,10.182,126.8325,10,4.5,87 km ENE of Pilar Philippines -2021-03-24T13:30:36.128Z,10.0289,126.0443,81.58,4.4,1 km NNE of Santa Monica Philippines -2021-03-24T21:00:45.222Z,9.9552,125.6702,10,4.2,3 km N of Cagdianao Philippines -2021-03-25T20:24:26.629Z,14.0169,120.8088,142.6,4.2,5 km E of Bolboc Philippines -2021-03-26T22:45:51.253Z,7.9883,126.2967,71.21,4.4,13 km WSW of Lingig Philippines -2021-03-29T21:08:35.578Z,13.5455,124.9909,10,4.4,69 km ESE of Gigmoto Philippines -2021-04-06T03:22:03.629Z,10.2521,126.4228,35,4.5,49 km ENE of Santa Monica Philippines -2021-04-12T17:35:23.908Z,9.8703,125.4694,35,4.2,7 km NNE of Mabua Philippines -2021-04-13T14:08:10.881Z,11.206,125.8416,35,4.3,20 km ENE of Salcedo Philippines -2021-04-13T18:39:55.341Z,13.8687,120.6771,202.61,4.8,3 km NW of Hukay Philippines -2021-04-14T05:32:52.784Z,10.0059,126.1283,57.35,4.3,9 km E of Santa Monica Philippines -2021-04-14T11:09:34.240Z,10.0362,126.3367,35,4.9,32 km NE of Pilar Philippines -2021-04-14T11:20:46.591Z,9.8906,126.3663,35,4.2,29 km E of Pilar Philippines -2021-04-14T16:39:27.602Z,10.1525,126.4943,35,4.2,52 km ENE of Santa Monica Philippines -2021-04-19T23:49:42.409Z,6.892,123.5914,616.53,4.8,48 km WNW of Gadung Philippines -2021-04-20T08:30:13.320Z,9.5436,125.8521,82.79,4.7,13 km ESE of Claver Philippines -2021-04-21T08:45:12.324Z,8.7617,125.8334,10,4.5,7 km E of Bayugan Philippines -2021-04-21T15:32:49.421Z,10.8256,125.912,10,4.3,15 km SE of Sulangan Philippines -2021-04-22T20:31:24.077Z,10.4743,125.0767,25.82,4.7,11 km WSW of Silago Philippines -2021-04-23T07:04:29.716Z,10.4074,125.0937,26.21,4.4,12 km ENE of Sogod Philippines -2021-04-23T08:48:16.461Z,8.4545,125.9417,48.48,4.5,5 km NW of Lapinigan Philippines -2021-04-23T09:56:48.203Z,7.6818,125.6339,87.28,4.5,2 km NNW of Suz-on Philippines -2021-04-23T10:39:48.017Z,8.3337,125.9671,4.52,4.6,9 km S of Lapinigan Philippines -2021-04-25T13:05:44.791Z,9.5241,126.0774,35,4.6,16 km SE of Socorro Philippines -2021-04-25T13:36:08.502Z,10.0203,126.5483,35,4.2,52 km ENE of Pilar Philippines -2021-04-25T21:21:16.300Z,7.8276,126.2242,109.62,4.1,16 km WSW of Boston Philippines -2021-04-27T08:44:08.425Z,9.9752,126.2305,43.08,4.5,18 km NE of Pilar Philippines -2021-05-04T09:29:37.063Z,8.6141,122.8133,10,4.2,29 km NW of Ponot Philippines -2021-05-06T04:29:23.114Z,13.5505,125.2057,10,4.6,91 km ESE of Gigmoto Philippines -2021-05-08T08:38:41.024Z,8.6065,126.8253,20.8,4.5,59 km ENE of Hinatuan Philippines -2021-05-10T00:15:08.355Z,10.9936,124.9236,34.63,4.3,3 km ENE of Burauen Philippines -2021-05-12T01:09:27.067Z,13.5716,120.8478,113,5.8,10 km SSW of Tingloy Philippines -2021-05-12T20:40:11.986Z,13.5553,120.9681,135.51,4.2,5 km N of Sabang Philippines -2021-05-15T03:04:08.322Z,13.7931,120.7743,117.1,4.6,9 km SE of Hukay Philippines -2021-05-16T16:42:04.595Z,14.214,120.7947,122.98,4.1,2 km SSW of Pantijan No 2 Philippines -2021-05-18T01:16:43.360Z,13.5749,120.9802,104.06,4.5,7 km N of Sabang Philippines -2021-05-19T19:55:56.793Z,8.2792,122.8649,31.77,4.2,14 km WSW of Siari Philippines -2021-05-20T17:00:54.249Z,10.2141,126.138,57.24,4.6,24 km NNE of Santa Monica Philippines -2021-05-29T21:20:21.949Z,8.8081,125.7811,29.59,4.5,5 km NNE of Bayugan Philippines -2021-06-01T21:59:31.582Z,8.7667,126.4033,64.76,4.4,12 km ESE of Marihatag Philippines -2021-06-03T05:14:46.138Z,13.7152,121.0102,47.44,4.2,5 km WSW of Wawa Philippines -2021-06-03T09:57:27.964Z,10.1231,125.987,80.62,4.5,12 km NNW of Santa Monica Philippines -2021-06-03T10:06:01.192Z,10.1834,126.1065,40.52,4.4,19 km NNE of Santa Monica Philippines -2021-06-05T20:28:45.355Z,8.5611,126.6697,59.47,4.9,42 km ENE of Hinatuan Philippines -2021-06-06T02:59:24.121Z,10.223,126.3641,49.72,5,42 km ENE of Santa Monica Philippines -2021-06-06T03:21:02.356Z,10.2164,126.2052,57.12,4.9,28 km NE of Santa Monica Philippines -2021-06-06T03:40:18.875Z,10.1491,125.9362,69.55,4.5,18 km NW of Santa Monica Philippines -2021-06-06T07:24:57.850Z,10.1238,126.0554,5.53,4.3,11 km N of Santa Monica Philippines -2021-06-06T08:03:25.537Z,10.1888,126.2622,57.25,4.9,30 km NE of Santa Monica Philippines -2021-06-06T08:34:46.129Z,10.0903,125.9837,10,4.3,9 km NW of Santa Monica Philippines -2021-06-06T08:40:01.226Z,10.1705,126.2348,35,4.2,27 km NE of Santa Monica Philippines -2021-06-06T08:42:59.509Z,10.0179,126.0605,35,4.3,2 km E of Santa Monica Philippines -2021-06-06T09:09:44.265Z,10.0989,126.1277,44.92,4.8,13 km NE of Santa Monica Philippines -2021-06-06T09:27:57.969Z,10.1566,126.2514,64.04,4.5,27 km ENE of Santa Monica Philippines -2021-06-06T13:31:15.612Z,10.1919,126.1496,26.87,4.5,22 km NNE of Santa Monica Philippines -2021-06-06T13:51:27.804Z,10.1729,126.062,21.82,4.5,17 km N of Santa Monica Philippines -2021-06-06T14:02:10.778Z,10.2534,126.3677,56.86,4.4,44 km NE of Santa Monica Philippines -2021-06-06T21:28:36.327Z,10.3578,126.6098,10,4.5,72 km ENE of Santa Monica Philippines -2021-06-07T11:49:58.307Z,10.9641,122.2394,10,4.7,18 km WSW of Jayubó Philippines -2021-06-07T14:14:18.132Z,8.6447,127.0288,10,4.3,82 km ENE of Hinatuan Philippines -2021-06-07T18:17:42.139Z,12.2284,124.1782,35,4.3,9 km ESE of San Vicente Philippines -2021-06-07T21:41:10.852Z,10.2413,126.1873,35,5.2,29 km NNE of Santa Monica Philippines -2021-06-09T08:11:08.280Z,9.085,126.1551,76.49,4.5,3 km S of Buenavista Philippines -2021-06-09T19:47:00.227Z,10.1318,126.1527,51.81,4.4,17 km NE of Santa Monica Philippines -2021-06-10T04:41:55.813Z,10.2032,126.1261,41.47,4.6,22 km NNE of Santa Monica Philippines -2021-06-13T00:51:28.237Z,10.1844,126.116,10,4.6,20 km NNE of Santa Monica Philippines -2021-06-13T08:53:45.234Z,10.1567,121.9629,36.11,4,29 km S of Magdalena Philippines -2021-06-13T09:49:12.563Z,10.1198,126.0915,71.01,4.2,12 km NNE of Santa Monica Philippines -2021-06-14T14:38:41.447Z,7.7102,124.967,5.86,5.7,5 km NW of Don Carlos Philippines -2021-06-14T14:49:44.579Z,7.8263,125.005,10,4.7,4 km WSW of Dologon Philippines -2021-06-14T14:49:54.793Z,7.5814,124.9042,10,5.3,2 km SSW of Kadingilan Philippines -2021-06-14T14:56:14.457Z,7.7121,124.9707,10,4.3,5 km NW of Don Carlos Philippines -2021-06-14T14:59:44.957Z,7.7497,124.9362,10,4.5,7 km W of Maramag Philippines -2021-06-14T15:44:24.892Z,7.6354,124.7796,10,4.3,5 km NW of Osias Philippines -2021-06-15T01:59:04.360Z,13.4991,120.8934,118.9,4.4,3 km W of Balatero Philippines -2021-06-15T06:15:44.541Z,7.0689,123.6684,10,4.5,47 km W of Rimpeso Philippines -2021-06-16T00:14:02.600Z,10.1732,126.0078,23.6,4.9,17 km N of Santa Monica Philippines -2021-06-16T16:42:40.480Z,10.0799,125.9819,10,4.2,9 km NW of Santa Monica Philippines -2021-06-16T18:35:31.865Z,10.1054,126.1405,51.52,4.6,14 km NE of Santa Monica Philippines -2021-06-16T22:19:15.815Z,10.1013,126.0765,10,4.6,9 km NNE of Santa Monica Philippines -2021-06-17T01:04:37.197Z,9.0812,125.9583,10,4.3,12 km N of San Miguel Philippines -2021-06-17T14:46:11.262Z,11.464,125.7802,10,4.3,23 km NE of Hernani Philippines -2021-06-18T01:13:40.990Z,7.6462,124.7356,10,4.3,8 km ESE of Wao Philippines -2021-06-18T18:40:57.781Z,6.9375,124.8181,10,4.3,4 km WSW of Dunguan Philippines -2021-06-18T21:15:28.167Z,7.5677,124.8496,10,4.5,5 km SE of Osias Philippines -2021-06-20T13:44:35.679Z,10.1236,125.8472,60.74,4.4,23 km WNW of Santa Monica Philippines -2021-06-20T14:36:19.536Z,12.0588,126.1924,10,4.3,75 km E of San Policarpo Philippines -2021-06-22T12:03:10.426Z,9.1081,122.039,10,4.5,70 km SW of Colipapa Philippines -2021-06-26T04:18:09.642Z,13.6823,121.0073,120.61,4.6,8 km SW of Wawa Philippines -2021-06-26T15:07:18.920Z,8.5281,126.6608,54.88,4.5,39 km ENE of Hinatuan Philippines -2021-06-27T07:14:10.316Z,8.9437,126.2703,49.01,5,2 km WNW of Bacolod Philippines -2021-06-28T11:34:09.528Z,9.8463,126.7334,25.07,4.5,69 km E of Union Philippines -2021-06-29T08:56:04.709Z,9.1836,122.3194,62.43,4.6,41 km SW of Colipapa Philippines -2021-06-30T09:58:05.823Z,9.4892,126.1217,36.14,4.6,22 km SE of Socorro Philippines -2021-06-30T15:51:46.371Z,9.1432,126.4753,35,4.1,29 km NE of La Paz Philippines -2021-07-01T20:44:47.746Z,15.051,123.1191,28.86,4.4,88 km ENE of Casuguran Philippines -2021-07-02T13:39:40.518Z,7.102,123.2024,10,4.2,39 km SSW of Panubigan Philippines -2021-07-04T17:04:40.824Z,9.7783,126.4913,36.14,4.5,Mindanao Philippines -2021-07-05T19:57:23.025Z,9.0051,126.5935,45.66,4.5,33 km ENE of Aras-asan Philippines -2021-07-06T14:38:16.369Z,6.9681,125.1636,11.49,4.5,4 km NE of Malasila Philippines -2021-07-09T08:34:51.161Z,8.5765,123.2523,10,4.6,6 km NNE of Langatian Philippines -2021-07-09T11:21:07.861Z,13.6165,120.9705,113.62,4.2,10 km W of Ilihan Philippines -2021-07-11T17:07:23.691Z,8.7759,126.2666,78.05,4.3,Mindanao Philippines -2021-07-19T07:28:08.193Z,7.6783,126.4905,99.92,4.4,6 km SSW of Taytayan Philippines -2021-07-19T17:53:23.806Z,10.4322,125.0469,43.05,4.3,8 km NE of Sogod Philippines -2021-07-20T10:07:16.654Z,13.8005,120.8029,78.71,4.6,11 km ESE of Hukay Philippines -2021-07-21T20:09:29.299Z,10.2807,125.4206,121.16,4.4,16 km WSW of Tubajon Philippines -2021-07-22T11:15:17.910Z,11.568,124.6191,38.85,4.5,Leyte Philippines -2021-07-23T20:48:57.357Z,13.7047,120.7259,110,6.7,15 km S of Hukay Philippines -2021-07-23T20:57:18.713Z,13.7977,120.7434,120.58,5.8,6 km SE of Hukay Philippines -2021-07-23T21:04:06.343Z,12.47,123.4295,285.28,4.2,5 km ESE of Puro Philippines -2021-07-24T01:23:38.933Z,10.4119,127.1222,10,4.4,126 km ENE of Santa Monica Philippines -2021-07-24T09:43:35.089Z,13.7582,120.9719,121.88,4.5,3 km E of Mabini Philippines -2021-07-25T21:13:50.005Z,10.6077,125.8894,57.15,4.5,36 km S of Sulangan Philippines -2021-08-03T16:20:17.057Z,13.4827,120.8529,91.53,4.7,3 km E of Odala Philippines -2021-08-13T15:08:31.218Z,13.7016,120.7817,121,5.9,10 km WNW of Tingloy Philippines -2021-08-14T10:30:41.952Z,9.8416,125.9073,67.63,4.9,7 km WSW of Del Carmen Surigao del Norte Philippines -2021-08-17T02:22:37.876Z,10.3711,125.4306,137.71,4.4,15 km WNW of Tubajon Philippines -2021-08-17T14:17:00.660Z,9.0781,126.9615,10,4.2,74 km ENE of Aras-asan Philippines -2021-08-20T07:29:46.192Z,11.703,125.1361,105.57,4.2,12 km E of San Sebastian Philippines -2021-08-25T12:03:12.660Z,7.1198,122.8975,10,4.8,21 km SSE of Olutanga Philippines -2021-08-29T14:53:04.629Z,7.9497,126.2274,35,4.6,11 km SE of Santa Maria Philippines -2021-08-30T11:28:08.565Z,12.8271,121.4055,63.89,4.7,6 km WSW of Tiguisan Philippines -2021-08-31T05:12:32.393Z,9.6721,122.4409,10,4.3,1 km SE of Cayhagan Philippines -2021-08-31T15:26:57.900Z,11.4266,125.3467,54.87,4.4,16 km W of Cabay Philippines -2021-08-31T22:26:05.831Z,7.1271,125.6224,23.22,4.5,6 km N of Davao Philippines -2021-09-02T07:23:32.100Z,11.6172,124.4795,30.7,4.8,8 km WSW of Culaba Philippines -2021-09-03T21:23:22.621Z,12.9238,124.058,55.58,4.6,1 km ESE of Boton Philippines -2021-09-05T09:00:26.018Z,9.8614,122.0354,35,4.6,40 km W of Bulata Philippines -2021-09-05T16:10:29.706Z,13.3134,120.1049,10,4.5,38 km WSW of Harrison Philippines -2021-09-07T18:29:22.778Z,8.3118,126.6729,74.46,4.6,31 km ENE of Barcelona Philippines -2021-09-15T10:48:05.155Z,11.258,125.1588,166.7,4.3,10 km ESE of Basey Philippines -2021-09-21T16:43:08.724Z,13.3406,120.6662,80.72,4.9,0 km NE of Cabacao Philippines -2021-09-22T06:50:49.692Z,8.1735,126.5754,87.12,4.5,15 km E of Barcelona Philippines -2021-09-22T19:47:10.956Z,13.3748,120.6983,85.3,4.6,6 km NE of Cabacao Philippines -2021-09-23T08:43:06.015Z,13.4105,121.0042,41.58,4.5,2 km SSW of San Teodoro Philippines -2021-09-24T10:54:19.702Z,13.6695,121.9225,10,4.1,16 km NNE of Balanacan Philippines -2021-09-26T05:30:05.889Z,9.823,123.7196,10,4.5,8 km WNW of Loon Philippines -2021-09-26T17:12:05.243Z,13.8941,120.5097,83,5.7,12 km W of Talisay Philippines -2021-09-26T17:40:51.605Z,13.868,120.6696,103.85,4.4,3 km ESE of Lucsuhin Philippines -2021-09-26T22:57:51.761Z,13.9004,120.837,90.8,4.8,1 km SSW of Sinisian Philippines -2021-09-30T15:40:52.347Z,13.6474,121.0987,144.27,4.2,2 km SW of Haligue Philippines -2021-10-02T18:06:51.811Z,9.3026,125.3054,10,4.5,23 km W of Jabonga Philippines -2021-10-02T20:55:42.450Z,13.0286,121.1312,10,4.4,Mindoro Philippines -2021-10-02T21:59:26.680Z,12.8716,120.9142,8.72,5.4,11 km NE of Tuban Philippines -2021-10-02T23:33:33.833Z,12.935,121.0059,10,4.6,23 km NE of Tuban Philippines -2021-10-03T00:45:42.570Z,13.8349,120.6855,148.18,4.4,2 km WSW of Hukay Philippines -2021-10-03T18:33:50.962Z,13.4399,121.6374,10,4.5,19 km W of Laylay Philippines -2021-10-04T15:25:48.289Z,9.8247,122.3729,10,4.6,3 km W of Cartagena Philippines -2021-10-04T20:12:02.220Z,9.9437,122.1494,10,4.6,29 km WNW of Bulata Philippines -2021-10-05T01:47:41.817Z,9.8673,122.1333,10,4.7,Negros Philippines -2021-10-07T18:14:54.009Z,13.9389,120.6866,160.14,5.3,2 km E of Bungahan Philippines -2021-10-12T15:16:11.175Z,9.8834,124.2825,10,4.7,1 km S of Dagohoy Philippines -2021-10-14T10:37:47.510Z,10.8969,121.8532,36,4.4,13 km WNW of Belison Philippines -2021-10-14T17:20:59.801Z,13.6121,123.3201,10,4.4,2 km ENE of Curry Philippines -2021-10-15T16:54:48.484Z,8.8157,126.2651,67.98,4.9,3 km WNW of Marihatag Philippines -2021-10-15T22:44:42.525Z,8.244,127.4223,10,4.4,109 km E of Barcelona Philippines -2021-10-17T11:28:01.676Z,7.4422,126.5876,156.46,4.3,Mindanao Philippines -2021-10-17T16:32:51.103Z,14.5064,123.3527,32.58,4.4,56 km NE of Sabang Indan Philippines -2021-10-19T02:11:15.140Z,13.961,120.6694,10,4.5,Mindoro Philippines -2021-10-19T22:12:24.661Z,10.9441,124.8208,10,4.5,1 km S of San Pedro Philippines -2021-10-22T05:19:50.662Z,14.4571,123.3593,68.29,4.5,53 km NE of Mercedes Philippines -2021-10-22T19:44:53.472Z,13.5648,123.1742,40.64,4.4,1 km WSW of Minalabac Philippines -2021-10-23T23:08:29.143Z,8.5647,127.0163,10,5.1,78 km ENE of Hinatuan Philippines -2021-10-26T05:51:11.106Z,7.5204,126.6653,68.77,4.5,11 km NE of Baculin Philippines -2021-10-28T05:39:03.263Z,12.8468,124.5033,10,4.8,23 km NE of Biri Philippines -2021-10-30T06:53:09.071Z,9.0673,126.1681,75.22,4.7,3 km WSW of Tandag Philippines -2021-10-31T02:17:16.682Z,13.7372,120.8286,138.6,4.3,6 km WNW of Bagalangit Philippines -2021-11-02T03:58:56.698Z,9.9172,122.5608,10,4.6,6 km S of Tuyum Philippines -2021-11-05T05:05:23.345Z,9.0667,126.7176,59.35,4.6,48 km ENE of Aras-asan Philippines -2021-11-05T18:25:14.455Z,9.7641,126.7122,10,4.4,66 km E of Union Philippines -2021-11-06T23:19:41.846Z,9.5475,125.8324,10,4.3,Mindanao Philippines -2021-11-07T18:09:19.077Z,10.0646,125.4042,221.29,4.4,23 km WNW of Dinagat Philippines -2021-11-08T04:16:47.167Z,7.9544,126.6919,61.18,4.8,27 km E of Santa Maria Philippines -2021-11-11T09:38:45.724Z,13.3171,124.7397,34.12,4.6,57 km SE of Bato Philippines -2021-11-15T11:15:01.631Z,13.9434,120.6176,122.3,4.3,Mindoro Philippines -2021-11-19T09:54:29.253Z,13.5343,120.4084,58.04,4.4,9 km NNW of Harrison Philippines -2021-11-22T12:49:46.360Z,11.2476,122.3402,10,4.4,8 km W of Da-an Sur Philippines -2021-11-23T08:09:42.919Z,9.0375,126.4317,57.2,4.9,19 km ENE of La Paz Philippines -2021-11-26T14:50:07.241Z,11.0931,126.5007,10,4.4,75 km ENE of Sulangan Philippines -2021-11-26T15:47:43.716Z,10.2013,126.2296,35,4.6,29 km NE of Santa Monica Philippines -2021-11-26T23:14:12.287Z,10.1871,126.3446,46.31,4.4,38 km ENE of Santa Monica Philippines -2021-11-30T17:35:38.877Z,13.6934,120.8696,148.9,4.5,2 km SW of Bagalangit Philippines -2021-12-02T11:23:13.586Z,12.8648,123.8396,10,4.4,3 km N of Magallanes Philippines -2021-12-03T03:36:13.076Z,9.4095,127.0471,10,4.2,95 km E of Cortes Philippines -2021-12-07T21:52:29.396Z,14.0988,120.8941,134.33,4,1 km E of Luksuhin Philippines -2021-12-09T00:18:35.125Z,10.0417,126.1777,35,4.6,15 km E of Santa Monica Philippines -2021-12-09T05:42:50.593Z,13.7283,120.7627,167.09,4.5,13 km W of Bagalangit Philippines -2021-12-09T12:44:57.811Z,10.0219,126.1289,35,4.9,9 km E of Santa Monica Philippines -2021-12-09T13:11:06.320Z,10.0622,126.0117,88.86,4.6,5 km NNW of Santa Monica Philippines -2021-12-09T15:59:21.818Z,9.9398,125.9133,10,4.1,9 km NW of Libas Philippines -2021-12-10T16:36:15.074Z,13.9736,120.824,60.49,4.4,4 km NNE of Calaca Philippines -2021-12-10T17:17:18.393Z,13.0317,124.4107,91.57,4.1,29 km E of Bagacay Philippines -2021-12-12T06:26:07.771Z,10.7736,122.0104,35.19,4.3,0 km NW of Catungan Philippines -2021-12-13T08:02:59.069Z,8.5653,126.7793,35,4.3,53 km ENE of Hinatuan Philippines -2021-12-13T09:12:33.433Z,13.6205,120.7577,133.39,5.5,Mindoro Philippines -2021-12-13T18:33:20.920Z,10.1807,126.4215,35,4.6,45 km ENE of Santa Monica Philippines -2021-12-15T13:01:20.702Z,10.1465,126.2598,35,4.5,28 km ENE of Santa Monica Philippines -2021-12-15T13:11:42.353Z,10.1759,126.3021,35,5,33 km ENE of Santa Monica Philippines -2021-12-15T13:16:59.163Z,10.1288,126.2789,35,4.6,28 km ENE of Santa Monica Philippines -2021-12-17T14:28:55.401Z,12.8084,123.5688,10,4.9,11 km SSW of Donsol Philippines -2021-12-17T14:58:03.473Z,12.815,123.736,10,4.6,9 km SSW of Macalaya Philippines -2021-12-18T12:27:18.787Z,10.4152,126.7139,10,4.6,85 km ENE of Santa Monica Philippines -2021-12-21T04:08:12.200Z,12.7482,120.9691,10,4.9,12 km NE of Ligaya Philippines -2021-12-26T16:06:42.876Z,12.6158,120.8404,10,4.6,Mindoro Philippines -2021-12-28T20:59:34.071Z,13.1727,120.8689,85.76,4.4,19 km NE of Santa Cruz Philippines -2021-12-31T13:58:24.334Z,9.0257,126.0283,5.16,4.4,Mindanao Philippines -2022-01-03T06:04:56.777Z,12.7734,123.5064,10,4.3,17 km SSW of Donsol Philippines -2022-01-03T20:38:22.234Z,6.7737,123.5074,17.97,4.5,56 km W of Gadung Philippines -2022-01-09T05:13:27.080Z,12.7291,123.4226,41.47,4.5,9 km E of Osmeña Philippines -2022-01-18T02:30:20.704Z,10.1458,126.8928,10,4.7,92 km ENE of Pilar Philippines -2022-01-21T20:43:45.453Z,7.5552,126.5369,107.13,5.3,3 km SW of Baganga Philippines -2022-01-22T20:43:28.884Z,14.1955,120.7267,233.96,4,3 km WNW of Magallanes Philippines -2022-01-22T22:07:17.910Z,13.7305,120.8305,137.76,4.9,6 km WNW of Bagalangit Philippines -2022-01-25T03:57:26.872Z,10.1565,127.0447,10,4.5,108 km ENE of Pilar Philippines -2022-01-25T05:17:05.933Z,11.5208,122.2836,10,4.5,5 km NNW of Libacao Philippines -2022-01-26T12:36:33.465Z,13.9228,120.6455,109.09,4.3,2 km N of Biga Philippines -2022-02-02T14:47:25.553Z,13.8634,120.7597,112.32,4.4,6 km ENE of Hukay Philippines -2022-02-03T09:28:21.966Z,6.8248,123.7716,601.36,4.2,27 km W of Gadung Philippines -2022-02-07T14:26:15.736Z,10.0345,125.6861,82.96,4.3,12 km N of Cagdianao Philippines -2022-02-07T23:18:35.201Z,9.0574,126.0523,10,4.4,Mindanao Philippines -2022-02-16T10:29:35.422Z,12.5622,125.2129,35,4.5,4 km N of Cabatuan Philippines -2022-02-20T12:48:47.547Z,10.3919,126.4334,10,4.7,59 km NE of Santa Monica Philippines -2022-02-21T01:32:50.362Z,12.872,123.5436,10,4.4,6 km SW of Dangcalan Philippines -2022-02-21T07:22:18.887Z,13.6021,120.8739,139.31,5.3,6 km S of Tingloy Philippines -2022-02-23T13:54:40.183Z,8.4885,126.4977,54.98,4.5,22 km NE of Hinatuan Philippines -2022-02-25T04:00:57.564Z,13.6849,120.722,156.29,4.2,16 km W of Tingloy Philippines -2022-03-01T04:40:24.631Z,12.4322,125.5293,35,4.3,22 km NE of Arteche Philippines -2022-03-04T04:47:44.109Z,9.1933,126.2359,10,4.4,6 km ESE of Tigao Philippines -2022-03-11T14:14:23.541Z,7.8962,125.9281,24.68,4.9,14 km WNW of Baylo Philippines -2022-03-12T19:11:22.721Z,8.8848,126.3223,90.11,4.1,1 km ESE of Aras-asan Philippines -2022-03-13T08:46:22.900Z,6.7599,123.7084,588.23,4.1,34 km W of Gadung Philippines -2022-03-13T20:52:56.731Z,8.4527,125.9314,46.2,4.4,5 km SE of Borbon Philippines -2022-03-15T11:46:33.320Z,13.0553,123.025,10,4.2,8 km ESE of San Rafael Philippines -2022-03-20T16:39:20.917Z,10.9423,124.8614,10,5.3,Leyte Philippines -2022-03-20T16:51:45.156Z,10.229,126.2237,22.22,4.4,30 km NE of Santa Monica Philippines -2022-03-20T20:42:01.220Z,10.4986,126.1074,35,4.5,53 km N of Santa Monica Philippines -2022-03-21T00:02:09.809Z,7.2661,122.3767,10,3.8,10 km S of Limaong Philippines -2022-03-23T10:28:05.847Z,14.1824,120.8007,129.49,4.4,0 km ESE of General Emilio Aguinaldo Philippines -2022-03-24T12:01:57.338Z,9.1793,122.6957,56.33,4.6,21 km WSW of Nagbalaye Philippines -2022-03-25T15:12:08.559Z,13.4995,120.7626,33.47,4.5,4 km NNE of Wawa Philippines -2022-03-28T17:25:07.032Z,8.7802,126.3221,75.53,4.5,Mindanao Philippines -2022-03-29T12:52:55.536Z,13.4614,126.0933,10,4.4,140 km NE of Cabatuan Philippines -2022-04-01T01:35:53.966Z,9.7245,126.7231,10,5,67 km E of Union Philippines -2022-04-01T09:16:23.810Z,10.1886,125.8759,10,4.5,Leyte Philippines -2022-04-01T09:32:01.747Z,9.0492,126.6865,35,4.9,44 km ENE of Aras-asan Philippines -2022-04-02T10:44:53.203Z,9.3452,126.9586,10,4.5,84 km E of Cortes Philippines -2022-04-02T17:20:06.041Z,11.4427,125.9023,35,4.6,33 km ENE of Hernani Philippines -2022-04-03T10:17:22.046Z,11.5157,125.845,27.34,4.5,32 km NE of Hernani Philippines -2022-04-03T10:24:54.783Z,9.2559,126.6946,17.04,5.6,55 km E of Cortes Philippines -2022-04-03T10:37:01.165Z,11.1242,125.7664,35,4.3,11 km NNE of Guiuan Philippines -2022-04-03T11:22:04.613Z,9.2618,126.6961,10,5.4,55 km E of Cortes Philippines -2022-04-03T11:35:16.255Z,9.3476,126.9196,10,4.6,80 km E of Cortes Philippines -2022-04-03T13:45:42.125Z,11.402,126.0174,10,4.4,44 km E of Hernani Philippines -2022-04-03T15:29:39.811Z,9.1938,126.632,18,5.4,46 km ENE of La Paz Philippines -2022-04-03T16:15:24.195Z,9.3427,126.9081,10,4.5,79 km E of Cortes Philippines -2022-04-03T18:36:09.575Z,9.2879,126.588,10,4.8,43 km E of Cortes Philippines -2022-04-03T19:12:50.343Z,9.2284,126.7692,10,4.5,61 km ENE of La Paz Philippines -2022-04-03T21:48:31.157Z,9.5011,127.3891,10,4.2,133 km E of Cortes Philippines -2022-04-04T08:42:01.713Z,11.3218,125.4562,63.8,4.5,12 km NW of General MacArthur Philippines -2022-04-04T14:13:59.693Z,9.2639,126.8881,10,4.7,75 km ENE of La Paz Philippines -2022-04-04T16:30:37.952Z,9.3021,126.7295,10,4.6,59 km E of Cortes Philippines -2022-04-04T18:24:08.417Z,9.2649,126.5454,10,4.3,38 km E of Cortes Philippines -2022-04-05T15:33:37.449Z,11.4308,126.022,10,4.3,45 km ENE of Hernani Philippines -2022-04-05T17:01:26.780Z,11.3455,125.8711,35,4.6,27 km E of Hernani Philippines -2022-04-05T17:20:00.391Z,9.194,126.4275,10,4.5,27 km ESE of Burgos Philippines -2022-04-06T15:33:02.920Z,9.2338,126.6446,10,4.6,50 km E of Cortes Philippines -2022-04-07T08:46:26.638Z,6.8969,124.276,569.37,4,7 km NW of Tapikan Philippines -2022-04-08T05:04:28.198Z,9.2293,126.34,10,4.4,17 km ESE of Burgos Philippines -2022-04-08T17:40:26.962Z,12.5957,123.6625,10,4.5,1 km NNW of Bagahanlad Philippines -2022-04-08T21:00:43.998Z,9.5086,126.7373,22.59,4.3,65 km ENE of Cortes Philippines -2022-04-08T21:08:16.610Z,9.3328,126.7644,10,4.4,63 km E of Cortes Philippines -2022-04-09T01:22:59.445Z,11.358,125.8113,10,4.7,21 km E of Hernani Philippines -2022-04-09T09:44:59.550Z,12.0667,123.7213,19.14,4.6,8 km E of Malbug Philippines -2022-04-11T11:15:48.251Z,9.2862,126.5645,38.66,4.6,41 km E of Cortes Philippines -2022-04-13T09:09:55.077Z,8.3598,126.663,66.51,4.4,33 km NE of Barcelona Philippines -2022-04-15T19:19:38.241Z,13.5016,125.2855,10,4.5,96 km NNE of Cabodiongan Philippines -2022-04-17T11:45:33.999Z,8.7469,127.5341,10,4.3,135 km E of Aras-asan Philippines -2022-04-18T18:19:27.992Z,8.8487,126.4031,51.93,4.3,10 km ESE of Aras-asan Philippines -2022-04-20T03:02:41.693Z,10.0367,126.44,10,4.4,41 km ENE of Pilar Philippines -2022-04-28T11:42:27.833Z,9.9835,126.1778,58.51,5,15 km NNE of Pilar Philippines -2022-04-29T18:46:07.537Z,13.1543,124.498,56.01,4.3,40 km E of Rapu-Rapu Philippines -2022-05-02T05:12:54.831Z,13.9659,121.1137,177.34,4.1,3 km N of Banaybanay Philippines -2022-05-04T20:10:55.299Z,9.677,126.5453,28.94,4.5,48 km E of Union Philippines -2022-05-06T07:34:51.338Z,8.7039,126.4278,60.94,4.8,18 km SE of Marihatag Philippines -2022-05-08T05:16:23.666Z,8.7014,126.3357,75.89,4.3,12 km SSE of Marihatag Philippines -2022-05-10T14:14:36.878Z,13.762,120.7631,141.68,4.5,11 km SE of Hukay Philippines -2022-05-11T09:24:40.110Z,12.6896,125.3053,35,4.4,20 km NNE of Cabatuan Philippines -2022-05-12T05:43:06.205Z,9.618,126.4223,35,4.3,37 km ESE of Union Philippines -2022-05-12T05:54:42.733Z,9.6892,126.456,35,4.3,38 km E of Union Philippines -2022-05-13T17:01:36.113Z,13.8461,120.644,207.29,4.1,1 km NE of Calatagan Philippines -2022-05-17T11:30:17.159Z,9.0122,126.9638,10,4.3,73 km E of Aras-asan Philippines -2022-05-17T11:53:32.876Z,8.6438,126.4855,60.39,4.2,27 km SE of Marihatag Philippines -2022-05-17T23:57:22.037Z,10.1106,126.3059,10,4.6,30 km ENE of Santa Monica Philippines -2022-05-18T01:29:01.464Z,12.379,123.7124,10,4.7,5 km WSW of Batuan Philippines -2022-05-18T01:38:36.754Z,12.4015,123.5901,10,4.7,2 km ESE of Bulo Philippines -2022-05-21T21:50:48.047Z,14.0187,120.6494,129,6.1,1 km S of Lian Philippines -2022-05-23T18:18:25.254Z,10.4326,126.4138,35,4.4,61 km NE of Santa Monica Philippines -2022-05-24T02:16:51.054Z,13.7434,120.6684,167.26,4.3,10 km SSE of Calatagan Philippines -2022-05-26T02:33:09.605Z,8.9484,126.5293,10.85,4.6,24 km ENE of Aras-asan Philippines -2022-05-26T23:53:56.186Z,9.6479,125.8059,10,4.2,11 km NE of Claver Philippines -2022-05-27T23:08:34.529Z,13.2937,124.8069,35,4.5,65 km ESE of Bato Philippines -2022-05-29T07:46:04.794Z,7.8744,126.7734,62.94,4,31 km NE of Kinablangan Philippines -2022-05-29T20:29:42.892Z,13.6608,120.8501,200.689,4.6,2 km W of Tingloy Philippines -2022-06-02T11:55:43.116Z,9.0617,126.229,68.57,4.6,3 km ESE of Tandag Philippines -2022-06-02T18:54:31.063Z,9.0182,126.5097,38.76,5.5,26 km ENE of Bacolod Philippines -2022-06-02T19:11:59.902Z,8.8959,126.4174,42.3,4.4,11 km E of Aras-asan Philippines -2022-06-02T19:32:19.161Z,8.9088,126.4021,49.91,4.4,10 km ENE of Aras-asan Philippines -2022-06-03T01:14:38.691Z,8.8789,126.3289,35,4.2,2 km ESE of Aras-asan Philippines -2022-06-05T07:03:08.496Z,9.6518,125.7797,88.98,4.1,10 km NNE of Claver Philippines -2022-06-05T10:27:13.807Z,9.3114,125.4455,10,4.5,8 km WSW of Jabonga Philippines -2022-06-08T11:28:20.593Z,12.0386,123.7687,12.39,4.2,10 km NNE of Recodo Philippines -2022-06-08T20:56:30.445Z,10.0543,126.8498,10,4.5,84 km ENE of Pilar Philippines -2022-06-09T23:59:34.416Z,12.3462,125.3261,45.98,4.4,4 km NE of Lapinig Philippines -2022-06-18T13:54:57.367Z,10.3944,126.7196,10,4.4,85 km ENE of Santa Monica Philippines -2022-06-23T04:26:01.770Z,10.1648,126.4726,35,4.4,50 km ENE of Santa Monica Philippines -2022-06-24T21:18:15.978Z,8.9852,126.5782,58.39,4.7,31 km ENE of Aras-asan Philippines -2022-06-27T01:39:48.708Z,11.2215,124.0852,10,4.3,Leyte Philippines -2022-06-28T21:23:16.177Z,7.1932,123.5088,10,4.7,29 km SSE of Malim Philippines -2022-06-30T15:45:20.441Z,10.2821,125.9257,59.1,4.5,31 km NNW of Santa Monica Philippines -2022-07-03T11:16:52.042Z,12.1998,120.6241,10,4.2,46 km SW of Adela Philippines -2022-07-07T08:26:10.615Z,7.5793,122.7659,10,4.4,Mindanao Philippines -2022-07-08T14:33:47.510Z,9.817,125.9319,9.997,4.2,7 km SW of Del Carmen Surigao del Norte Philippines -2022-07-12T07:08:22.854Z,10.5401,126.1145,10,4.4,53 km SE of Sulangan Philippines -2022-07-14T10:03:42.585Z,13.8976,120.7244,146.114,4.5,4 km S of Balayan Philippines -2022-07-15T07:18:25.279Z,10.856,124.8902,71.02,4.2,8 km WSW of La Paz Philippines -2022-07-15T17:16:55.980Z,10.3468,125.8846,10,4,34 km E of Loreto Philippines -2022-07-16T21:40:16.936Z,14.1041,120.738,145.8,4.2,3 km NNE of Tumalim Philippines -2022-07-16T21:47:08.259Z,10.3195,125.8388,100.19,4.2,29 km E of Loreto Philippines -2022-07-16T22:00:00.288Z,10.4506,126.1004,42.27,4.2,48 km N of Santa Monica Philippines -2022-07-16T22:46:53.906Z,10.3625,126.0004,10,4.3,38 km N of Santa Monica Philippines -2022-07-17T02:07:59.287Z,10.2781,125.9441,82.36,4.1,30 km NNW of Santa Monica Philippines -2022-07-17T04:04:14.303Z,8.6324,126.2252,10,4.7,9 km SSE of Salvacion Philippines -2022-07-17T04:05:43.526Z,8.6448,126.4131,10,4.5,21 km SE of Marihatag Philippines -2022-07-17T10:40:12.677Z,12.3137,120.7393,10,4.4,29 km WSW of Adela Philippines -2022-07-18T15:31:23.400Z,10.3333,126.1144,46.75,4.3,Philippine Islands region -2022-07-18T18:04:16.016Z,10.3118,126.1075,59.172,4.6,33 km NNE of Santa Monica Philippines -2022-07-20T07:48:37.008Z,8.7379,124.8289,84.267,4.4,4 km ENE of Baliwagan Philippines -2022-07-21T02:01:26.674Z,11.2715,125.3569,88.353,4.7,18 km N of Balangiga Philippines -2022-07-21T16:05:25.844Z,11.8544,125.9105,76.757,4.2,49 km E of Sulat Philippines -2022-07-22T11:17:42.267Z,13.5612,120.8161,150.589,4.3,9 km N of Odala Philippines -2022-07-23T02:34:51.770Z,10.383,125.2445,182.898,4.1,3 km N of Hinundayan Philippines -2022-07-24T14:05:40.339Z,11.7334,125.7021,35,4.4,26 km E of San Julian Philippines -2022-07-24T19:12:14.935Z,11.9485,125.9598,10,4.4,52 km ESE of Dapdap Philippines -2022-07-24T21:45:48.492Z,11.7407,125.6791,35,4.7,24 km E of San Julian Philippines -2022-07-25T09:42:11.457Z,11.5146,125.8454,23.167,4.4,32 km NE of Hernani Philippines -2022-07-27T03:39:50.944Z,13.0407,124.541,53.051,4.5,43 km E of Bagacay Philippines -2022-07-30T09:00:40.748Z,11.3921,125.1684,10.493,4.2,2 km S of Mabini Philippines -2022-08-01T17:10:12.739Z,11.2692,125.4249,62.491,5,Samar Philippines -2022-08-02T05:24:27.762Z,6.8333,123.7663,20,5.5,28 km W of Gadung Philippines -2022-08-03T04:37:58.482Z,13.9112,122.2637,10,4.2,3 km N of Lopez Philippines -2022-08-03T15:41:21.230Z,11.0726,125.8884,35,4.2,16 km NNE of Sulangan Philippines -2022-08-04T17:58:43.464Z,13.7337,120.7146,189.467,4.3,12 km S of Hukay Philippines -2022-08-07T11:17:10.631Z,13.5543,120.7616,145.581,4.5,10 km N of Wawa Philippines -2022-08-09T02:52:43.291Z,10.3184,122.038,10,4.7,13 km SSE of Magdalena Philippines -2022-08-09T12:16:24.265Z,9.3419,126.0739,97.812,4.1,10 km E of Cantilan Philippines -2022-08-12T22:49:49.286Z,10.8558,124.3786,10.756,4.6,8 km SSW of Bantiqui Philippines -2022-08-13T04:25:06.519Z,10.1847,121.9587,10,5.1,26 km S of Magdalena Philippines -2022-08-13T06:25:32.230Z,6.9062,123.792,19.913,5.8,Moro Gulf Mindanao Philippines -2022-08-13T15:25:22.722Z,13.7358,120.7668,138.232,4.5,13 km WNW of Bagalangit Philippines -2022-08-16T07:13:01.189Z,10.3111,125.6739,10,4.7,12 km E of Tubajon Philippines -2022-08-17T09:35:15.352Z,9.6441,125.849,132.73,4.9,13 km W of Socorro Philippines -2022-08-19T19:22:26.759Z,12.3421,123.6803,32.643,4.6,2 km ENE of Mobo Philippines -2022-08-20T05:02:31.239Z,13.3924,120.7356,48.17,4.2,5 km S of Abra de Ilog Philippines -2022-08-21T01:20:03.097Z,15.1789,122.3229,10,4.5,37 km NE of Karligan Philippines -2022-08-22T14:59:59.906Z,13.5996,120.8066,93.883,4.5,9 km SW of Tingloy Philippines -2022-08-26T16:03:39.773Z,8.5363,126.453,80.277,4.4,22 km NE of Hinatuan Philippines -2022-08-26T17:29:07.150Z,8.5809,126.4956,48.159,4.5,28 km E of Gamut Philippines -2022-08-28T10:00:30.219Z,8.7302,126.9294,48.354,4.7,70 km E of Marihatag Philippines -2022-09-01T15:33:15.452Z,10.9795,126.1353,10,4.8,Philippine Islands region -2022-09-04T14:48:19.897Z,10.0226,126.2067,54.708,4.5,Philippine Islands region -2022-09-04T21:49:10.787Z,13.6648,120.6582,10,4.6,18 km S of Calatagan Philippines -2022-09-06T14:27:12.694Z,10.1401,125.6495,99.057,4.5,21 km NNE of Dinagat Philippines -2022-09-08T03:23:10.715Z,13.9264,121.088,218.96,4.3,2 km N of Balagtasin Philippines -2022-09-08T08:54:49.625Z,13.4211,124.5978,34.831,4.7,38 km ESE of Bato Philippines -2022-09-09T23:12:45.422Z,10.2266,125.9903,65.824,4.3,23 km NNW of Santa Monica Philippines -2022-09-10T16:20:24.450Z,10.0849,126.0268,57.567,4.2,Philippine Islands region -2022-09-15T16:51:35.650Z,8.4999,126.0055,11.051,4.4,1 km SW of Alegria Philippines -2022-09-18T14:49:54.393Z,12.2232,120.7215,35,4.4,36 km SW of San Agustin Philippines -2022-09-19T05:24:33.211Z,8.3595,126.5143,84.408,4.5,19 km E of Hinatuan Philippines -2022-09-21T14:24:34.763Z,14.4765,122.0219,10,4.2,27 km SSE of Polillo Philippines -2022-09-21T14:28:48.217Z,14.3697,121.7916,10,4.3,Luzon Philippines -2022-09-22T08:36:58.982Z,10.3298,127.4055,10,4.6,Philippine Islands region -2022-09-25T17:15:26.614Z,13.6074,122.5819,10,4.4,4 km NNE of San Narciso Philippines -2022-09-28T01:12:24.631Z,9.3796,126.6106,35,5.2,47 km ENE of Cortes Philippines -2022-09-28T02:06:56.173Z,9.1904,126.3853,19.223,4.6,23 km E of Tigao Philippines -2022-09-28T02:28:00.426Z,9.2975,126.3829,42.797,4.5,21 km E of Cortes Philippines -2022-09-28T02:39:28.305Z,9.2069,126.208,53.001,4.7,3 km E of Tigao Philippines -2022-09-28T06:22:07.651Z,9.2941,126.5739,36.603,4.4,42 km E of Cortes Philippines -2022-09-28T08:49:48.958Z,9.2958,126.5971,35.559,4.4,44 km E of Cortes Philippines -2022-09-30T01:09:29.178Z,9.4558,126.6941,35,4.5,58 km ENE of Cortes Philippines -2022-09-30T02:59:02.737Z,9.4606,126.6624,35,4.8,55 km ENE of Cortes Philippines -2022-09-30T05:03:22.555Z,9.4362,126.5212,42.057,4.3,40 km ENE of Cortes Philippines -2022-09-30T14:31:11.020Z,9.423,126.4861,35,4.3,36 km ENE of Cortes Philippines -2022-10-02T16:01:07.575Z,9.5529,127.0685,10,4.4,100 km ENE of Cortes Philippines -2022-10-02T18:17:54.006Z,9.911,125.8786,96.02,4.4,11 km WNW of Del Carmen Surigao del Norte Philippines -2022-10-02T20:11:23.131Z,9.228,126.4498,74.94,4.4,28 km ESE of Cortes Philippines -2022-10-03T08:07:53.400Z,9.8876,126.0229,59.67,5.1,4 km E of Libas Philippines -2022-10-04T18:16:11.614Z,10.5666,125.5597,9.332,4.6,Leyte Philippines -2022-10-06T11:02:56.185Z,13.6143,120.6931,100.755,4.6,17 km NNW of Wawa Philippines -2022-10-06T20:16:51.415Z,9.6628,121.6639,10,4.2,81 km W of Sipalay Philippines -2022-10-09T08:44:02.677Z,14.0064,120.7786,227.703,4.4,2 km ESE of Bolboc Philippines -2022-10-10T12:48:29.362Z,10.3238,122.0646,10,4.4,14 km SE of Magdalena Philippines -2022-10-10T13:40:53.758Z,10.1908,126.0858,64.119,4.4,Philippine Islands region -2022-10-13T19:41:25.119Z,7.6266,126.8671,53.555,4.4,34 km E of Baganga Philippines -2022-10-14T13:23:50.128Z,8.0474,124.6737,10,4.2,Mindanao Philippines -2022-10-15T15:14:26.019Z,8.855,126.8371,35,5,57 km E of Aras-asan Philippines -2022-10-16T22:26:17.545Z,13.7707,120.7593,193.741,4.4,10 km SE of Hukay Philippines -2022-10-17T01:57:45.895Z,10.9992,125.3315,92.019,4.7,13 km SSW of Balangiga Philippines -2022-10-18T04:23:09.184Z,8.8115,126.302,92.983,4.5,0 km NE of Marihatag Philippines -2022-10-19T18:48:09.148Z,9.8729,125.5939,112.62,4.5,6 km NNW of Talisay Philippines -2022-10-21T06:48:08.437Z,9.8698,125.8616,95.454,4.2,11 km W of Del Carmen Surigao del Norte Philippines -2022-10-21T10:28:03.785Z,10.6584,125.4465,89.825,4.4,29 km ENE of Hingatungan Philippines -2022-10-24T00:12:44.014Z,10.9696,125.5662,60.996,4.7,18 km WSW of Guiuan Philippines -2022-10-24T01:37:27.392Z,11.1105,125.8123,10,4.3,Samar Philippines -2022-10-24T02:06:42.416Z,7.0424,125.4231,252.131,5.3,Mindanao Philippines -2022-10-24T15:08:33.276Z,11.1043,125.7742,35,5.2,9 km NE of Guiuan Philippines -2022-10-25T09:39:44.362Z,11.2024,125.2628,10,4.3,Samar Philippines -2022-10-25T13:20:43.521Z,8.1873,126.5518,78.118,5.1,13 km ENE of Barcelona Philippines -2022-10-28T21:56:00.888Z,14.528,122.3396,10,4.3,21 km S of Casuguran Philippines -2022-10-29T17:52:44.013Z,11.0336,126.0169,52.336,4.5,23 km ENE of Sulangan Philippines -2022-11-03T07:04:17.133Z,9.4331,128.2351,10,4.5,219 km ENE of Aras-asan Philippines -2022-11-03T12:49:31.052Z,7.5542,126.6895,10,4.6,14 km E of Baganga Philippines -2022-11-03T19:21:59.639Z,8.4976,126.6586,68.076,4.5,38 km ENE of Hinatuan Philippines -2022-11-03T19:33:41.760Z,8.4735,126.6093,79.261,4.3,32 km ENE of Hinatuan Philippines -2022-11-05T01:38:42.538Z,7.5174,126.3986,155.931,4.3,Mindanao Philippines -2022-11-05T10:39:27.564Z,7.4676,126.5814,99.781,4.1,1 km N of Baculin Philippines -2022-11-08T11:16:17.687Z,11.2135,125.9686,68.494,4.5,33 km NE of Guiuan Philippines -2022-11-08T23:59:36.694Z,11.2849,125.9088,35,4.3,30 km ENE of Salcedo Philippines -2022-11-09T00:27:46.354Z,11.1924,126.4496,10,4.6,73 km ENE of Sulangan Philippines -2022-11-10T23:16:08.295Z,10.2771,121.9439,10,4.5,16 km SSW of Magdalena Philippines -2022-11-11T01:36:56.534Z,13.9351,120.7003,120.989,4.9,3 km W of Balayan Philippines -2022-11-13T22:54:19.005Z,13.2338,125.7896,10,4.3,100 km NE of Cabatuan Philippines -2022-11-14T16:23:49.481Z,13.4658,120.7203,87.887,4.2,2 km W of Wawa Philippines -2022-11-18T11:16:43.946Z,13.0601,124.2353,83.947,4.3,13 km NE of Bagacay Philippines -2022-11-24T01:45:04.275Z,13.9438,121.2844,140.597,4.3,2 km WSW of Ayusan Uno Philippines -2022-11-26T20:24:35.896Z,9.0652,126.1559,76.401,4.7,4 km WSW of Tandag Philippines -2022-11-27T04:43:26.582Z,9.3616,126.378,56.023,5,22 km ENE of Cortes Philippines -2022-11-27T11:30:33.416Z,9.3036,126.8465,10,4.2,72 km E of Cortes Philippines -2022-11-28T06:12:57.601Z,13.4472,120.644,10,4.4,Mindoro Philippines -2022-11-30T14:59:30.093Z,6.8295,123.7387,590.277,4.2,Moro Gulf Mindanao Philippines -2022-11-30T15:39:42.995Z,8.5008,126.8305,10,4.4,56 km ENE of Hinatuan Philippines -2022-11-30T16:23:16.341Z,8.8228,126.8539,10,4.8,60 km E of Aras-asan Philippines -2022-11-30T23:46:10.322Z,8.3878,126.686,45.248,4.2,37 km NE of Barcelona Philippines -2022-12-01T20:05:57.157Z,11.4985,124.7206,170.658,4.6,13 km WSW of Talalora Philippines -2022-12-04T17:51:24.944Z,9.7983,125.4571,35,4.3,Mindanao Philippines -2022-12-05T23:39:41.363Z,7.7439,124.6387,8.56,4.6,7 km NNW of Wao Philippines -2022-12-05T23:55:00.263Z,7.7362,124.7364,10.718,4.8,Mindanao Philippines -2022-12-06T02:39:15.445Z,13.5829,121.0764,10.322,4.5,5 km S of Ilihan Philippines -2022-12-07T05:05:27.271Z,14.503,123.0492,10,5.2,34 km NNE of Sabang Indan Philippines -2022-12-08T05:12:23.217Z,9.9762,125.6066,10,4.4,2 km NNE of Dinagat Philippines -2022-12-09T06:32:59.635Z,13.1588,125.8253,9,5.8,96 km NE of Cabatuan Philippines -2022-12-09T22:18:11.891Z,12.9836,125.7401,10,4.6,76 km NE of Cabatuan Philippines -2022-12-10T05:45:18.306Z,7.9492,125.0222,10,4.4,5 km S of Lantapan Philippines -2022-12-14T19:44:31.579Z,12.3241,124.564,132.14,4.6,7 km WNW of Lope de Vega Philippines -2022-12-16T11:00:46.436Z,13.6187,120.8179,139.676,5,7 km SW of Tingloy Philippines -2022-12-18T08:13:39.836Z,9.345,126.2296,10,4.6,8 km NNE of Cortes Philippines -2022-12-19T21:44:25.055Z,7.7019,124.6944,10.015,4.9,3 km NE of Wao Philippines -2022-12-24T17:54:42.466Z,14.3122,122.9606,10,4.5,11 km NNE of Sabang Indan Philippines -2023-01-01T10:44:46.322Z,10.069,126.5571,33.676,4.3,55 km ENE of Pilar Philippines -2023-01-02T03:27:29.148Z,9.3909,126.0204,10.004,4.4,7 km NE of Cantilan Philippines -2023-01-02T22:09:38.208Z,8.4519,126.9002,35,4.9,60 km ENE of Barcelona Philippines -2023-01-03T01:59:11.788Z,8.4265,126.6748,60.755,4.5,37 km E of Hinatuan Philippines -2023-01-03T11:43:09.860Z,10.3251,125.8803,57.036,5.1,33 km E of Loreto Philippines -2023-01-07T14:01:11.816Z,13.7793,120.7736,172.98,4.4,10 km SE of Hukay Philippines -2023-01-07T23:00:33.839Z,7.5478,126.4686,143.364,4.9,Davao Oriental Philippines -2023-01-11T06:04:28.501Z,12.5679,126.4033,10,4.6,106 km ENE of San Policarpo Philippines -2023-01-11T07:12:31.457Z,13.9966,120.5752,10.557,4.5,7 km WNW of Binubusan Philippines -2023-01-14T20:47:26.598Z,13.5884,125.3902,10,4.4,Philippine Islands region -2023-01-15T12:28:15.160Z,11.4179,124.6414,10,4.8,9 km SE of Bunga Philippines -2023-01-16T21:57:39.008Z,14.4132,122.9785,10,5.1,22 km NNE of Sabang Indan Philippines -2023-01-17T18:39:22.177Z,14.3395,122.989,10,4.6,15 km NNE of Sabang Indan Philippines -2023-01-17T18:53:21.408Z,14.3703,122.9517,10,4.3,17 km NNE of Sabang Indan Philippines -2023-01-18T00:56:36.851Z,14.2886,123.1735,10,4.6,26 km NE of Mercedes Philippines -2023-01-18T04:51:36.954Z,14.2601,123.0134,10,4.6,11 km ENE of Sabang Indan Philippines -2023-01-18T05:00:09.114Z,14.2402,122.9879,10,4.5,8 km ENE of Sabang Indan Philippines -2023-01-18T16:28:16.580Z,12.2666,123.3359,10,4.4,3 km S of Cabitan Philippines -2023-01-19T21:45:09.824Z,6.8183,123.6367,601.163,4.2,Moro Gulf Mindanao Philippines -2023-01-21T07:49:06.541Z,12.7217,125.1035,35,4.3,8 km NE of Cabodiongan Philippines -2023-01-21T11:57:18.083Z,9.486,126.1542,57.113,4.4,23 km N of Cortes Philippines -2023-01-24T06:31:39.220Z,13.8442,120.8282,135.645,4.4,8 km SSW of Sinisian Philippines -2023-01-25T03:35:20.717Z,9.1399,126.434,35,4.6,25 km NE of La Paz Philippines -2023-01-25T16:27:54.082Z,14.8806,122.2849,40.898,4.5,15 km NE of Patnanungan Philippines -2023-01-27T01:05:59.814Z,10.0848,126.1192,10,4.2,Philippine Islands region -2023-01-27T03:21:36.350Z,13.7753,120.5562,117.537,4.5,10 km SW of Calatagan Philippines -2023-01-27T20:25:27.079Z,10.69,125.4524,71,5.4,Leyte Philippines -2023-01-29T17:44:28.506Z,10.0711,125.8558,10,4.3,20 km NW of San Benito Philippines -2023-01-31T20:04:35.543Z,9.0601,127.1036,10,4.8,89 km ENE of Aras-asan Philippines -2023-02-01T10:44:46.067Z,7.7431,126.0566,19,6,1 km NW of Babag Philippines -2023-02-01T11:07:37.549Z,7.7079,126.2252,10,4.6,15 km ENE of Compostela Philippines -2023-02-04T07:03:03.408Z,14.2083,122.9667,10,4.5,5 km ESE of Sabang Indan Philippines -2023-02-05T09:59:20.529Z,7.7496,126.0653,12.107,4.6,1 km NNW of Babag Philippines -2023-02-07T13:46:56.948Z,14.3575,122.9823,10,4.8,Luzon Philippines -2023-02-12T03:51:49.049Z,11.0738,126.1254,41.179,4.3,Philippine Islands region -2023-02-12T11:41:37.287Z,10.1176,126.5319,33.413,5,Philippine Islands region -2023-02-12T22:27:19.141Z,10.9927,125.988,35,4.4,18 km ENE of Sulangan Philippines -2023-02-13T07:57:48.596Z,9.8043,126.4278,35,4.8,35 km E of Union Philippines -2023-02-14T17:00:27.465Z,7.7212,122.0358,10,4.6,11 km W of Siocon Philippines -2023-02-15T09:15:31.447Z,12.2474,123.8139,10,4.9,1 km NNW of Miaga Philippines -2023-02-15T18:10:08.107Z,12.3099,123.8605,8,6.1,9 km NNE of Miaga Philippines -2023-02-16T21:38:49.294Z,12.3689,123.7775,10,4.5,3 km SSE of Batuan Philippines -2023-02-17T01:54:23.951Z,12.3097,123.6697,10,4.6,Masbate region Philippines -2023-02-19T04:47:17.935Z,9.1028,126.1694,66.199,4.9,1 km SE of Buenavista Philippines -2023-02-19T18:54:05.558Z,9.0009,126.1626,68.539,4.5,0 km WSW of Gamut Philippines -2023-02-20T03:09:47.618Z,15.2022,122.8013,10,5,70 km NE of Casuguran Philippines -2023-02-21T12:18:37.385Z,15.3277,123.1095,19.859,4.3,104 km NE of Casuguran Philippines -2023-02-22T10:46:25.459Z,12.1038,123.5089,10,4.4,10 km WSW of Tigbaw Philippines -2023-02-22T22:05:53.427Z,10.1495,124.9837,10,4.6,2 km SW of Malitbog Philippines -2023-02-24T20:00:20.812Z,8.5549,127.1036,10,4.3,85 km ENE of Barcelona Philippines -2023-02-27T14:26:05.511Z,7.9175,127.2609,10,4.3,82 km ENE of Kinablangan Philippines -2023-02-28T20:11:57.161Z,8.3987,126.4934,79.069,4.6,17 km E of Hinatuan Philippines -2023-03-01T15:14:41.833Z,9.071,122.4983,10,4.7,40 km SSW of Basay Philippines -2023-03-02T09:51:40.729Z,13.7077,120.7099,146.864,4.5,15 km S of Hukay Philippines -2023-03-02T14:32:16.754Z,9.0645,122.6983,10,4.9,25 km WSW of Bonawon Philippines -2023-03-05T16:49:39.611Z,7.472,126.2112,10,4.7,Compostela Valley Philippines -2023-03-05T16:54:13.437Z,7.5053,126.1941,10,4.3,13 km SSE of Bantacan Philippines -2023-03-05T19:30:53.539Z,7.4962,126.1305,9.601,4.4,11 km S of Bantacan Philippines -2023-03-05T20:43:02.682Z,7.5373,126.1657,10,5.4,10 km SSE of Bantacan Philippines -2023-03-07T06:02:31.481Z,7.4941,126.0567,16.051,5.9,6 km SE of Manat Philippines -2023-03-07T08:47:41.810Z,7.6315,126.2526,10,5.6,13 km ENE of Bantacan Philippines -2023-03-07T11:18:35.725Z,7.5797,126.205,10,4.2,8 km ESE of Bantacan Philippines -2023-03-07T19:16:08.877Z,7.5524,126.25,8.206,4.4,14 km ESE of Bantacan Philippines -2023-03-08T00:29:41.659Z,8.7188,122.046,10,4.4,88 km NW of Kalawit Philippines -2023-03-08T00:47:07.243Z,8.6389,125.7669,10.177,4.4,8 km ESE of Salvacion Philippines -2023-03-08T00:52:36.938Z,7.4045,126.0947,10.192,4.2,14 km SE of San Mariano Philippines -2023-03-08T10:47:33.218Z,7.4576,126.0872,9.118,4.5,10 km ESE of San Mariano Philippines -2023-03-10T02:23:41.020Z,8.8109,125.9778,10,4.5,17 km SSE of San Miguel Philippines -2023-03-10T04:40:31.422Z,8.4835,126.5137,68.604,4.4,23 km ENE of Hinatuan Philippines -2023-03-10T06:32:25.910Z,7.5186,126.1503,13.635,4.3,9 km SSE of Bantacan Philippines -2023-03-10T10:18:27.514Z,10.2706,122.4297,10,4.4,18 km SSW of La Paz Philippines -2023-03-10T15:27:15.419Z,12.6602,124.8346,48.837,4.5,14 km NNE of Bugko Philippines -2023-03-13T08:32:15.727Z,14.5543,123.3319,10,4.2,58 km NE of Sabang Indan Philippines -2023-03-13T10:24:34.490Z,14.4074,123.0199,28.64,4.6,23 km NNE of Sabang Indan Philippines -2023-03-13T12:52:03.573Z,14.3345,123.0011,10,4.5,15 km NE of Sabang Indan Philippines -2023-03-20T21:13:27.773Z,7.3306,123.7796,597.933,4.5,28 km W of Litayan Philippines -2023-03-21T05:21:14.659Z,7.4874,126.1938,10.105,4.4,14 km SSE of Bantacan Philippines -2023-03-23T10:57:07.144Z,13.1033,121.4674,10,4.4,Mindoro Philippines -2023-03-24T15:13:27.666Z,14.3874,123.1532,32.926,4.4,31 km NE of Sabang Indan Philippines -2023-03-29T22:37:45.459Z,7.5039,126.1716,7.397,4.3,Mindanao Philippines -2023-04-04T12:54:31.503Z,13.7318,125.5376,10,6.2,124 km E of Gigmoto Philippines -2023-04-04T14:43:29.285Z,13.7291,125.47,10,4.7,116 km E of Gigmoto Philippines -2023-04-04T17:02:20.990Z,13.9117,125.4604,10,4.5,116 km E of Gigmoto Philippines -2023-04-04T17:48:33.408Z,13.7791,125.3982,10,4.5,109 km E of Gigmoto Philippines -2023-04-04T20:53:40.044Z,8.3082,123.5005,10,4.3,12 km NNW of Josefina Philippines -2023-04-05T08:56:56.556Z,9.6991,126.0009,90.89,4.3,8 km SW of Dapa Philippines -2023-04-05T18:45:09.107Z,13.6179,125.5511,10,4.5,118 km NNE of Cabodiongan Philippines -2023-04-06T04:04:09.969Z,8.1078,123.1932,10,4.2,12 km NNW of Balagon Philippines -2023-04-06T09:17:47.611Z,12.5419,123.9213,10,4.6,7 km SSW of Quezon Philippines -2023-04-06T13:20:15.373Z,12.4445,123.6649,10,4.5,9 km NNE of Masbate Philippines -2023-04-09T11:39:09.782Z,12.7377,124.9476,36.023,4.4,13 km NW of Cabodiongan Philippines -2023-04-12T15:00:22.782Z,11.2044,124.8427,169.233,4,0 km WSW of Alangalang Philippines -2023-04-13T16:04:27.711Z,9.2273,125.5742,20.399,5.1,2 km SE of Jagupit Philippines -2023-04-17T22:35:39.548Z,7.9038,126.5891,10.062,4.4,18 km ESE of Santa Maria Philippines -2023-04-21T06:34:12.515Z,9.4329,127.0938,10,4.1,100 km E of Cortes Philippines -2023-04-22T01:06:06.004Z,9.7109,126.0724,56.614,4.9,5 km SSE of Dapa Philippines -2023-04-24T00:28:17.178Z,8.2865,122.9369,10.984,4.5,7 km SW of Siari Philippines -2023-04-24T05:50:21.376Z,13.128,122.7033,10,4.6,10 km SE of Talisay Philippines -2023-04-24T09:32:10.079Z,9.2801,125.406,26.313,5.2,13 km WSW of Jabonga Philippines -2023-04-24T15:20:47.076Z,9.0347,126.2842,73.426,4.5,5 km ENE of Tago Philippines -2023-04-28T16:00:29.976Z,13.6644,120.6333,89.364,5.2,18 km S of Calatagan Philippines -2023-04-30T04:31:57.565Z,11.1251,125.2091,101.227,4.3,19 km W of Balangiga Philippines -2023-04-30T04:44:30.900Z,10.5369,125.6641,95,4.3,21 km NNE of Loreto Philippines -2023-05-02T19:40:22.453Z,11.6138,125.6324,52.139,4.3,17 km E of Lalawigan Philippines -2023-05-04T01:01:18.256Z,10.5424,125.376,10,4.3,Leyte Philippines -2023-05-04T10:06:02.015Z,10.4106,125.1304,10,4.9,13 km SSW of Silago Philippines -2023-05-05T13:53:55.337Z,10.3617,126.2172,35,4.2,42 km NNE of Santa Monica Philippines -2023-05-07T18:43:31.599Z,13.9935,120.5599,133.16,4,Mindoro Philippines -2023-05-07T22:48:11.739Z,6.8666,124.6218,10,4.3,Mindanao Philippines -2023-05-09T10:15:38.709Z,9.1186,126.2368,70.004,4.5,6 km NE of Tandag Philippines -2023-05-09T20:33:27.188Z,10.1702,126.2614,42.775,4.4,29 km NE of Santa Monica Philippines -2023-05-12T02:43:14.658Z,6.9511,125.0343,17.507,4.5,5 km WSW of Saguing Philippines -2023-05-12T04:34:54.834Z,9.9552,126.106,46.338,4.6,10 km N of Pilar Philippines -2023-05-13T07:21:35.697Z,10.1001,125.9643,70.599,4.9,12 km NW of Santa Monica Philippines -2023-05-13T14:37:43.821Z,10.1268,126.0458,45.197,5,Philippine Islands region -2023-05-14T12:44:31.775Z,7.4664,123.5627,27.349,5,14 km E of Malim Philippines -2023-05-16T21:59:21.861Z,10.3775,125.1232,9.901,4.5,14 km WNW of Hinundayan Philippines -2023-05-18T13:03:03.386Z,7.7552,126.946,64.653,4.6,44 km E of Kinablangan Philippines -2023-05-19T07:19:20.107Z,9.4636,125.4354,10,4.6,2 km S of Cantapoy Philippines -2023-05-19T11:12:16.041Z,9.0713,125.0685,10,4.2,16 km NW of Candiis Philippines -2023-05-20T00:40:24.348Z,12.3224,121.7867,35,4.8,23 km WNW of Looc Philippines -2023-05-21T03:11:53.561Z,9.3074,126.2594,58.519,4.9,8 km ENE of Cortes Philippines -2023-05-22T22:02:39.508Z,11.6249,125.6498,10,4.6,20 km ENE of Lalawigan Philippines -2023-05-25T10:24:34.290Z,8.9929,126.1108,86.992,4.5,Mindanao Philippines -2023-05-25T15:26:23.298Z,12.1835,123.8377,10,4.7,2 km SSW of Balucawi Philippines -2023-05-27T05:52:47.630Z,8.4405,126.5877,80.794,4.5,28 km ENE of Hinatuan Philippines -2023-05-29T17:08:16.394Z,9.8069,125.1974,9.164,4.6,26 km W of Ipil Philippines -2023-05-30T01:04:31.759Z,13.3566,120.8256,84.832,4.7,13 km S of Odala Philippines -2023-05-30T15:22:34.187Z,14.9361,121.7177,10,4.6,10 km W of Panukulan Philippines -2023-06-02T11:40:16.464Z,8.3439,126.2865,10.083,4.1,Mindanao Philippines -2023-06-02T16:22:04.608Z,12.2724,123.6621,35,4.5,4 km SSW of Umabay Philippines -2023-06-03T14:29:26.727Z,12.3326,121.915,35.691,4.5,11 km SW of Odiongan Philippines -2023-06-04T03:27:21.128Z,8.8554,126.261,64.397,4.5,6 km WSW of Aras-asan Philippines -2023-06-04T23:37:10.982Z,10.3546,126.8438,10,4.4,95 km ENE of Santa Monica Philippines -2023-06-06T12:07:08.641Z,11.4477,125.7847,35,4.4,22 km NE of Hernani Philippines -2023-06-07T08:12:32.241Z,10.3758,126.0088,59.41,4.3,39 km N of Santa Monica Philippines -2023-06-07T10:16:59.791Z,13.8062,122.8763,21.012,4.5,Luzon Philippines -2023-06-09T00:30:42.285Z,7.4716,126.0338,89.105,4.6,4 km SE of San Mariano Philippines -2023-06-10T14:50:38.116Z,11.8124,125.9285,33.922,4.9,51 km E of Sulat Philippines -2023-06-10T20:26:02.447Z,10.5892,126.2096,35,4.5,56 km SE of Sulangan Philippines -2023-06-10T23:07:34.890Z,10.5619,126.285,35,4.4,65 km SE of Sulangan Philippines -2023-06-10T23:23:23.977Z,10.5161,126.3657,35,4.6,65 km NNE of Santa Monica Philippines -2023-06-15T02:19:23.272Z,13.7629,120.7203,112,6.2,Mindoro Philippines -2023-06-15T04:38:26.741Z,13.8105,120.6781,104.351,4.3,4 km SW of Hukay Philippines -2023-06-17T20:52:39.694Z,12.4676,120.7197,10,4.4,25 km WSW of Calintaan Philippines -2023-06-18T17:34:00.248Z,10.2332,126.2476,41.736,5.1,32 km NE of Santa Monica Philippines -2023-06-20T04:08:58.773Z,9.7527,125.8107,10,4.5,21 km NE of Gigaquit Philippines -2023-06-23T19:12:00.691Z,13.6877,120.6296,148.544,4.5,15 km S of Calatagan Philippines -2023-06-26T20:32:18.510Z,10.0133,122.1553,10,4.5,31 km WNW of Bulata Philippines -2023-06-29T05:15:39.734Z,8.2949,126.5507,64.118,4.5,19 km NE of Barcelona Philippines -2023-06-29T11:30:18.334Z,10.1859,126.9028,22.001,5.2,Philippine Islands region -2023-06-30T19:45:44.688Z,9.9626,127.132,10,4.1,113 km E of Pilar Philippines -2023-07-01T03:59:40.351Z,10.1775,127.0563,10,4.6,110 km ENE of Pilar Philippines -2023-07-01T04:42:12.039Z,10.0893,126.8261,10,4.7,83 km ENE of Pilar Philippines -2023-07-02T05:40:02.399Z,8.78,126.0234,10,4.7,16 km NNE of Los Arcos Philippines -2023-07-06T23:40:22.531Z,15.0279,124.7654,10,4.5,126 km NNE of Pandan Philippines -2023-07-08T10:13:00.216Z,8.9463,127.1464,10,4.5,92 km E of Aras-asan Philippines -2023-07-09T12:48:10.315Z,12.9933,123.9916,10,4.3,2 km N of Sorsogon Philippines -2023-07-10T13:01:11.580Z,11.3685,125.3559,70.925,5,17 km WSW of Cabay Philippines -2023-07-14T18:54:48.571Z,10.4438,125.2767,10,4.3,10 km NNE of Hinundayan Philippines -2023-07-16T19:18:22.475Z,11.093,125.3389,85.17,4.5,5 km WSW of Balangiga Philippines -2023-07-19T02:50:28.454Z,10.9666,125.2292,10,4.5,21 km E of San Jose Philippines -2023-07-22T16:28:49.285Z,11.3478,125.4224,83.986,4.5,13 km SW of Cabay Philippines -2023-07-22T20:41:02.999Z,8.6299,126.1082,95.404,4.1,1 km ESE of Lianga Philippines -2023-07-25T01:00:42.372Z,10.2891,126.063,52.694,4.3,29 km N of Santa Monica Philippines -2023-07-26T01:58:43.282Z,11.08,125.3622,10,4.7,4 km SW of Balangiga Philippines -2023-07-27T16:57:58.152Z,14.1417,123.1464,10,4.2,15 km ENE of Mercedes Philippines -2023-07-30T21:14:47.243Z,9.1855,126.8404,10,4.5,Mindanao Philippines -2023-08-06T01:39:34.085Z,8.007,127.0154,35,4.3,62 km NE of Kinablangan Philippines -2023-08-08T02:40:36.617Z,13.6936,124.8431,10,4.7,49 km E of Gigmoto Philippines -2023-08-08T10:04:02.569Z,7.4646,123.8751,595.945,4.1,22 km NW of Litayan Philippines -2023-08-18T18:35:15.927Z,12.8171,124.306,93.081,4.9,16 km NNW of Biri Philippines -2023-08-19T06:34:36.212Z,8.9217,126.292,69.143,4.8,1 km SSE of Bacolod Philippines -2023-08-19T08:55:57.093Z,13.7356,122.7032,10,4.4,10 km SSW of Liboro Philippines -2023-08-19T11:01:54.829Z,13.6092,122.8186,10,4.3,3 km SSW of Bao Philippines -2023-08-20T13:03:34.040Z,13.8263,120.7424,127.787,4.4,4 km ESE of Hukay Philippines -2023-08-21T22:02:34.908Z,7.8308,126.8885,9.636,4.3,Mindanao Philippines -2023-08-23T17:38:38.257Z,12.8596,121.4912,10,4.9,3 km E of Bansud Philippines -2023-08-24T23:38:29.318Z,13.8635,120.9007,95.58,4.4,3 km SW of Taal Philippines -2023-08-29T13:17:44.218Z,10.2421,121.8504,10,4.7,24 km SW of Magdalena Philippines -2023-09-03T21:23:12.449Z,8.8765,122.5669,10,4.5,47 km WSW of Cabangahan Philippines -2023-09-03T21:40:53.617Z,8.7962,122.4767,10,4.8,60 km WSW of Cabangahan Philippines -2023-09-06T06:53:38.212Z,13.0504,120.6453,13.049,4.9,8 km WSW of Santa Cruz Philippines -2023-09-06T07:51:57.948Z,7.0227,125.5087,13.273,4.9,4 km ESE of Bato Philippines -2023-09-06T14:38:28.575Z,11.1228,124.6448,10,4.5,3 km SSE of Lim-oo Philippines -2023-09-07T12:44:52.715Z,9.6223,126.3135,38.475,4.2,26 km ESE of Union Philippines -2023-09-14T13:46:01.944Z,8.012,124.8651,10,4.6,3 km S of Basak Philippines -2023-09-17T04:12:33.718Z,11.3007,125.3317,81.88,4.2,21 km NNW of Balangiga Philippines -2023-09-18T02:54:03.904Z,13.1968,120.3441,35,4.9,25 km W of Tayaman Philippines -2023-09-18T11:02:01.108Z,13.0093,121.1304,10,4.9,24 km SW of Victoria Philippines -2023-09-21T08:22:41.150Z,10.2018,125.9164,51.441,4.5,24 km NNW of Santa Monica Philippines -2023-09-21T09:29:57.996Z,10.7914,126.0129,40.105,4.5,25 km SE of Sulangan Philippines -2023-09-23T22:21:31.291Z,12.3667,123.7145,10,4.5,Masbate region Philippines -2023-09-23T22:40:37.336Z,12.482,123.8192,10,4.4,6 km E of San Fernando Philippines -2023-09-25T04:01:50.431Z,10.2187,125.6408,113.943,4.1,15 km SE of Tubajon Philippines -2023-09-26T07:36:46.430Z,9.8894,126.1526,67.572,4.5,6 km ENE of Pilar Philippines -2023-09-28T03:31:45.910Z,9.6651,125.6695,50.762,4.5,7 km NNE of Bacuag Philippines -2023-09-28T17:06:29.204Z,8.9872,126.473,68.191,4.9,20 km ENE of Aras-asan Philippines -2023-09-28T17:26:43.694Z,12.5402,126.0155,10,4.7,68 km ENE of Alugan Philippines -2023-09-29T09:13:59.257Z,11.0579,125.9755,35,4.4,21 km NE of Sulangan Philippines -2023-09-30T11:40:50.689Z,9.1821,126.3269,61.81,4.1,16 km E of Tigao Philippines -2023-10-01T22:54:27.707Z,8.033,126.6357,78.009,4.6,21 km ENE of Santa Maria Philippines -2023-10-02T21:30:08.725Z,12.1905,123.6276,10,4.9,6 km NE of Tigbaw Philippines -2023-10-02T22:12:04.903Z,12.2074,123.7178,10,4.3,5 km W of Dapdap Philippines -2023-10-08T10:46:05.853Z,8.4263,127.3969,10,4.2,110 km ENE of Barcelona Philippines -2023-10-11T13:09:50.520Z,8.4586,126.6335,75.806,4.5,34 km ENE of Hinatuan Philippines -2023-10-13T00:24:16.278Z,13.7815,120.8353,10,5,8 km WNW of Solo Philippines -2023-10-19T18:58:51.126Z,7.4623,126.3516,8.494,5.9,18 km WSW of Batiano Philippines -2023-10-19T19:36:02.629Z,9.5938,122.2437,10,4.2,22 km WSW of Maricalom Philippines -2023-10-20T01:24:33.841Z,9.0497,126.5238,35,4.4,28 km ENE of Bacolod Philippines -2023-10-21T05:29:55.353Z,9.0661,126.6327,48.681,4.5,40 km ENE of Aras-asan Philippines -2023-10-21T05:32:48.003Z,9.1202,126.5564,64.936,4.7,35 km ENE of La Paz Philippines -2023-10-21T15:21:42.967Z,9.1216,126.5906,35,4.6,39 km ENE of La Paz Philippines -2023-10-24T11:53:43.773Z,7.8705,122.1504,10,4.3,18 km N of Siocon Philippines -2023-10-26T19:51:16.882Z,10.6532,126.8859,10,4.9,116 km NE of Santa Monica Philippines -2023-10-27T01:04:56.820Z,11.9873,125.1722,10,4.6,17 km ENE of Calape Philippines -2023-10-28T18:52:37.478Z,7.3558,126.3605,8.57,4.4,17 km W of San Pedro Philippines -2023-10-29T00:53:33.597Z,9.3212,125.9588,10,4.4,2 km SW of Cantilan Philippines -2023-10-29T00:56:19.387Z,9.1722,125.8036,10,4.6,19 km SW of Parang Philippines -2023-10-29T01:48:29.212Z,9.1714,125.6085,10,4.7,3 km NE of Del Pilar Philippines -2023-10-29T21:38:11.265Z,10.3307,126.3189,35,4.6,46 km NE of Santa Monica Philippines -2023-10-30T11:13:50.688Z,11.2539,124.6033,9.952,4.6,5 km SE of Limon Philippines -2023-11-01T14:35:23.359Z,13.7983,120.5817,71.85,4.3,6 km SW of Calatagan Philippines -2023-11-02T06:50:25.384Z,11.4081,125.875,13,5.7,29 km ENE of Hernani Philippines -2023-11-02T08:28:03.242Z,11.3395,125.956,35,4.7,36 km E of Hernani Philippines -2023-11-02T17:12:35.760Z,10.0388,126.1372,79.903,4.5,11 km E of Santa Monica Philippines -2023-11-03T03:26:19.424Z,11.3972,125.9453,35,4.7,36 km ENE of Hernani Philippines -2023-11-03T19:06:42.596Z,9.7112,126.2947,46.691,4,20 km ESE of Union Philippines -2023-11-06T20:50:50.515Z,13.4717,120.8646,149.957,4.9,4 km E of Odala Philippines -2023-11-09T01:09:45.924Z,10.5476,126.4392,35,4.5,73 km NE of Santa Monica Philippines -2023-11-16T14:59:29.839Z,9.4227,126.2069,68.665,4.6,15 km N of Cortes Philippines -2023-11-16T16:43:33.020Z,9.5056,126.3257,87.036,4.4,29 km NNE of Cortes Philippines -2023-11-17T10:03:52.355Z,12.7265,124.7913,51.522,4.2,21 km N of Bugko Philippines -2023-11-17T21:49:05.600Z,9.7495,126.5956,49.012,4.5,53 km E of Union Philippines -2023-11-17T21:50:46.768Z,9.6619,126.3622,43.519,4.4,29 km ESE of Union Philippines -2023-11-19T01:38:01.691Z,10.2517,125.2267,213.318,4.9,11 km SSW of Hinundayan Philippines -2023-11-20T04:57:44.431Z,11.4434,125.0377,107.456,5.1,10 km E of Santa Rita Philippines -2023-11-26T08:24:34.831Z,13.5312,120.8468,117.74,5.1,6 km NNE of Odala Philippines -2023-11-26T09:54:54.108Z,9.6732,127.2715,10,4.4,126 km ENE of Cortes Philippines -2023-11-27T15:38:18.024Z,9.2458,125.5241,10,4.3,3 km W of Jagupit Philippines -2023-11-28T21:32:02.188Z,9.1071,123.096,10,4.3,5 km ESE of Casala-an Philippines -2023-11-29T19:18:41.076Z,13.5539,123.5956,10,4.6,7 km NNW of Joroan Philippines -2023-11-29T20:41:38.334Z,13.882,124.1311,10,4.4,5 km SSW of Tubli Philippines -2023-11-30T22:18:05.042Z,6.9228,123.9963,547.456,4.1,13 km N of Gadung Philippines -2023-12-02T14:37:04.454Z,8.5266,126.4161,40,7.6,19 km E of Gamut Philippines -2023-12-02T14:44:03.355Z,8.5324,126.5047,66.534,5.4,25 km NE of Hinatuan Philippines -2023-12-02T14:44:36.381Z,8.0495,126.6059,43.301,5.4,18 km ENE of Santa Maria Philippines -2023-12-02T14:48:41.232Z,8.3993,126.7463,62.784,5.3,43 km NE of Barcelona Philippines -2023-12-02T14:56:53.045Z,8.512,126.6287,69.498,4.7,35 km ENE of Hinatuan Philippines -2023-12-02T14:57:07.542Z,8.2844,127.4358,10,4.7,111 km E of Barcelona Philippines -2023-12-02T14:58:41.421Z,8.4741,126.5814,79.33,4.9,29 km ENE of Hinatuan Philippines -2023-12-02T15:00:11.497Z,8.6266,126.8901,62.46,5.3,67 km ENE of Hinatuan Philippines -2023-12-02T15:02:24.673Z,8.2958,126.5879,78.694,4.7,22 km NE of Barcelona Philippines -2023-12-02T15:06:46.280Z,8.3198,127.0017,61.655,5.8,65 km ENE of Barcelona Philippines -2023-12-02T15:08:56.249Z,8.3335,126.5833,61.311,5.4,25 km NE of Barcelona Philippines -2023-12-02T15:10:05.463Z,8.3316,127.1679,10,5,83 km ENE of Barcelona Philippines -2023-12-02T15:15:21.087Z,8.3786,126.529,75.936,4.7,21 km E of Hinatuan Philippines -2023-12-02T15:18:01.883Z,8.6804,126.4855,71.023,4.5,24 km ESE of Marihatag Philippines -2023-12-02T15:20:59.590Z,8.3114,126.7872,40.703,4.9,42 km ENE of Barcelona Philippines -2023-12-02T15:21:07.158Z,8.33,126.6462,39.383,5,30 km NE of Barcelona Philippines -2023-12-02T15:22:05.017Z,8.3389,126.6551,60.468,5.4,31 km NE of Barcelona Philippines -2023-12-02T15:24:04.209Z,8.4636,126.7699,52.514,4.8,49 km ENE of Hinatuan Philippines -2023-12-02T15:29:32.440Z,8.3172,127.0409,37.696,5,69 km ENE of Barcelona Philippines -2023-12-02T15:31:08.767Z,8.3139,126.6074,78.05,4.9,25 km NE of Barcelona Philippines -2023-12-02T15:31:29.616Z,8.4758,126.7648,66.805,5.5,48 km ENE of Hinatuan Philippines -2023-12-02T15:34:18.001Z,8.5618,127.2502,10,4.7,100 km ENE of Barcelona Philippines -2023-12-02T15:35:14.924Z,8.4636,126.6339,65.879,4.5,34 km ENE of Hinatuan Philippines -2023-12-02T15:38:26.947Z,8.4345,126.8572,62.666,4.9,55 km ENE of Barcelona Philippines -2023-12-02T15:40:44.672Z,8.3484,126.5641,79.037,4.8,25 km NE of Barcelona Philippines -2023-12-02T15:42:47.515Z,8.5072,126.852,16.902,5.3,58 km ENE of Hinatuan Philippines -2023-12-02T15:46:24.573Z,8.515,126.8914,54.05,5.3,63 km ENE of Hinatuan Philippines -2023-12-02T15:50:41.864Z,8.4619,126.7007,59.672,5.2,41 km ENE of Hinatuan Philippines -2023-12-02T15:54:11.965Z,8.345,126.882,62.271,4.9,53 km ENE of Barcelona Philippines -2023-12-02T16:00:19.448Z,8.3084,126.5232,59.259,4.4,19 km NNE of Barcelona Philippines -2023-12-02T16:03:41.167Z,8.4377,126.757,35,6.4,47 km NE of Barcelona Philippines -2023-12-02T16:08:45.248Z,8.4782,126.4787,74.57,5.2,19 km NE of Hinatuan Philippines -2023-12-02T16:09:04.122Z,8.5779,126.6901,66.337,5.3,45 km ENE of Hinatuan Philippines -2023-12-02T16:13:21.219Z,8.4217,126.8856,45.383,5.2,57 km ENE of Barcelona Philippines -2023-12-02T16:17:01.047Z,8.4904,126.7396,44.034,5.6,46 km ENE of Hinatuan Philippines -2023-12-02T16:19:46.488Z,8.3677,126.7855,52.821,5.7,45 km ENE of Barcelona Philippines -2023-12-02T16:23:23.080Z,8.2291,126.564,60.964,5.2,16 km ENE of Barcelona Philippines -2023-12-02T16:25:21.074Z,8.6872,126.5345,62.905,4.7,29 km ESE of Marihatag Philippines -2023-12-02T16:26:36.280Z,8.3219,126.6062,73.882,4.8,26 km NE of Barcelona Philippines -2023-12-02T16:29:28.206Z,8.4037,126.7321,61.367,4.8,42 km NE of Barcelona Philippines -2023-12-02T16:31:00.963Z,8.5143,126.8698,61.012,4.6,61 km ENE of Hinatuan Philippines -2023-12-02T16:33:40.416Z,8.5451,126.6704,50.541,4.7,41 km ENE of Hinatuan Philippines -2023-12-02T16:34:26.071Z,8.4138,126.7358,55.396,5,43 km NE of Barcelona Philippines -2023-12-02T16:34:59.073Z,8.6092,126.6631,58.952,5.4,44 km NE of Hinatuan Philippines -2023-12-02T16:38:31.770Z,8.3359,127.1387,10,4.8,80 km ENE of Barcelona Philippines -2023-12-02T16:46:34.355Z,8.3737,126.8696,67.709,4.6,53 km ENE of Barcelona Philippines -2023-12-02T16:47:18.650Z,8.3682,126.6444,37.848,4.9,32 km NE of Barcelona Philippines -2023-12-02T16:48:27.104Z,8.4416,126.6029,64.434,4.8,30 km ENE of Hinatuan Philippines -2023-12-02T16:51:00.029Z,8.4415,126.549,66.423,4.8,24 km ENE of Hinatuan Philippines -2023-12-02T16:53:08.675Z,8.4005,126.8647,46.557,5.7,54 km ENE of Barcelona Philippines -2023-12-02T16:57:56.144Z,8.2761,126.6311,60.662,5,25 km ENE of Barcelona Philippines -2023-12-02T17:00:11.740Z,8.4675,126.9878,55.04,4.7,69 km ENE of Barcelona Philippines -2023-12-02T17:00:23.430Z,8.6264,125.4426,106.821,4.7,21 km SW of Tungao Philippines -2023-12-02T17:00:33.380Z,8.4159,126.6224,37.512,4.8,32 km E of Hinatuan Philippines -2023-12-02T17:01:16.201Z,8.5006,126.6137,48.563,4.8,33 km ENE of Hinatuan Philippines -2023-12-02T17:02:01.494Z,8.3663,126.666,48.605,5.3,34 km NE of Barcelona Philippines -2023-12-02T17:05:43.397Z,7.9637,126.406,35,4.7,5 km SW of Santa Maria Philippines -2023-12-02T17:08:41.827Z,8.3445,126.7874,55.013,4.6,43 km ENE of Barcelona Philippines -2023-12-02T17:14:46.734Z,8.1914,126.4573,85.883,4.6,4 km NE of Barcelona Philippines -2023-12-02T17:16:08.290Z,8.288,126.6202,68.436,4.9,24 km NE of Barcelona Philippines -2023-12-02T17:18:39.188Z,8.7485,127.0127,10,4.6,78 km ESE of Aras-asan Philippines -2023-12-02T17:19:10.397Z,9.2421,126.7427,23.688,4.6,59 km ENE of La Paz Philippines -2023-12-02T17:20:54.678Z,8.4797,126.7097,74.775,4.4,43 km ENE of Hinatuan Philippines -2023-12-02T17:25:08.774Z,8.1397,126.397,87.86,4.4,4 km WSW of Barcelona Philippines -2023-12-02T17:26:53.111Z,8.597,126.9183,51.416,4.7,68 km ENE of Hinatuan Philippines -2023-12-02T17:29:48.917Z,8.3353,126.5881,68.871,4.3,25 km NE of Barcelona Philippines -2023-12-02T17:31:40.838Z,8.6831,126.7248,57.067,5,49 km ESE of Marihatag Philippines -2023-12-02T17:32:49.460Z,8.7159,126.7491,63.906,5,52 km ESE of Marihatag Philippines -2023-12-02T17:38:36.868Z,8.6054,126.7732,55.666,4.5,54 km ENE of Hinatuan Philippines -2023-12-02T17:40:15.233Z,8.423,126.722,36.091,6.1,41 km NE of Barcelona Philippines -2023-12-02T17:42:16.957Z,8.4261,126.5207,79.813,5.6,21 km ENE of Hinatuan Philippines -2023-12-02T17:43:14.348Z,8.2748,126.8279,35,5.4,45 km ENE of Barcelona Philippines -2023-12-02T17:45:05.220Z,8.3044,126.5663,51.478,5.4,21 km NE of Barcelona Philippines -2023-12-02T17:49:44.163Z,8.3332,126.671,87.186,5,32 km NE of Barcelona Philippines -2023-12-02T17:50:08.095Z,8.4132,126.6901,78.239,5,39 km E of Hinatuan Philippines -2023-12-02T17:51:16.261Z,8.4873,126.728,61.143,5,45 km ENE of Hinatuan Philippines -2023-12-02T17:55:28.180Z,8.6642,126.7521,64.275,5.6,52 km ESE of Marihatag Philippines -2023-12-02T18:00:06.161Z,8.6995,126.598,36.185,4.9,35 km ESE of Marihatag Philippines -2023-12-02T18:00:56.405Z,8.2941,126.7348,88.254,4.7,36 km ENE of Barcelona Philippines -2023-12-02T18:01:24.013Z,8.4454,126.8357,48.987,5.2,54 km NE of Barcelona Philippines -2023-12-02T18:03:47.876Z,8.8292,126.2411,10,4.8,6 km WNW of Marihatag Philippines -2023-12-02T18:04:43.289Z,8.4814,126.5757,46.984,5.1,29 km ENE of Hinatuan Philippines -2023-12-02T18:06:05.091Z,8.4534,126.5004,75.992,4.6,20 km ENE of Hinatuan Philippines -2023-12-02T18:06:29.578Z,8.4214,126.7036,57.413,5.1,41 km E of Hinatuan Philippines -2023-12-02T18:09:25.972Z,8.4402,126.9387,46.378,6.3,63 km ENE of Barcelona Philippines -2023-12-02T18:13:24.295Z,8.302,126.5678,60.889,5.1,21 km NE of Barcelona Philippines -2023-12-02T18:15:29.883Z,8.4645,126.4469,68.843,4.6,16 km NE of Hinatuan Philippines -2023-12-02T18:20:40.812Z,8.5944,126.6118,48.935,5.4,37 km NE of Hinatuan Philippines -2023-12-02T18:28:18.291Z,8.4848,126.5006,62.076,4.9,22 km NE of Hinatuan Philippines -2023-12-02T18:33:15.008Z,8.2447,126.5128,32.453,4.2,12 km NE of Barcelona Philippines -2023-12-02T18:34:08.680Z,8.4537,126.7402,61.95,4.4,45 km ENE of Hinatuan Philippines -2023-12-02T18:40:15.266Z,8.5012,126.4676,65.42,4.4,20 km NE of Hinatuan Philippines -2023-12-02T18:40:37.283Z,8.4293,126.583,50.477,4.6,28 km ENE of Hinatuan Philippines -2023-12-02T18:47:15.241Z,8.4865,126.6174,48.484,4.4,33 km ENE of Hinatuan Philippines -2023-12-02T18:48:43.186Z,8.5544,126.5027,71.457,4.1,27 km NE of Hinatuan Philippines -2023-12-02T18:54:07.425Z,8.3016,126.4003,87.907,4.2,6 km E of Tidman Philippines -2023-12-02T18:57:21.108Z,8.3917,126.6298,67.428,4.6,32 km E of Hinatuan Philippines -2023-12-02T18:59:30.012Z,8.2944,126.6192,75.043,4.5,25 km NE of Barcelona Philippines -2023-12-02T19:03:41.581Z,8.4907,126.6743,70.123,4.7,39 km ENE of Hinatuan Philippines -2023-12-02T19:05:02.451Z,8.6903,126.7547,57.132,4.8,52 km ESE of Marihatag Philippines -2023-12-02T19:06:35.740Z,8.1827,126.454,84.022,4.5,3 km NE of Barcelona Philippines -2023-12-02T19:08:16.080Z,8.4511,126.6778,63.074,4.7,38 km ENE of Hinatuan Philippines -2023-12-02T19:10:52.152Z,8.3241,126.7782,49.808,4.8,42 km ENE of Barcelona Philippines -2023-12-02T19:15:24.487Z,8.3655,126.436,56.883,4.5,11 km E of Hinatuan Philippines -2023-12-02T19:17:00.158Z,8.4791,126.8697,22.118,5.3,59 km NE of Barcelona Philippines -2023-12-02T19:19:21.467Z,8.4136,126.8349,22.227,5.3,52 km ENE of Barcelona Philippines -2023-12-02T19:26:54.687Z,8.3843,127.1055,10,4.3,78 km ENE of Barcelona Philippines -2023-12-02T19:34:25.945Z,8.3619,126.7236,60.814,4.6,38 km NE of Barcelona Philippines -2023-12-02T19:37:00.943Z,8.4696,126.8694,40.843,5.3,58 km NE of Barcelona Philippines -2023-12-02T19:44:48.633Z,8.7286,127.2714,10,4.7,107 km E of Aras-asan Philippines -2023-12-02T19:53:19.144Z,8.3456,126.8791,43.904,4.2,53 km ENE of Barcelona Philippines -2023-12-02T19:54:19.441Z,8.071,126.608,72.68,4.8,19 km ENE of Santa Maria Philippines -2023-12-02T19:57:09.481Z,8.553,126.5629,75.105,5.2,32 km NE of Hinatuan Philippines -2023-12-02T20:00:39.918Z,8.7779,126.5982,59.037,4.5,33 km E of Marihatag Philippines -2023-12-02T20:05:00.692Z,8.8046,126.7985,48.212,4.4,54 km E of Aras-asan Philippines -2023-12-02T20:12:32.210Z,8.7645,127.1948,10,4.4,98 km E of Aras-asan Philippines -2023-12-02T20:15:37.688Z,8.3739,127.1705,12.771,4.4,84 km ENE of Barcelona Philippines -2023-12-02T20:19:52.646Z,8.429,127.118,38.248,4.3,81 km ENE of Barcelona Philippines -2023-12-02T20:27:40.711Z,8.6788,127.2219,10,4.3,102 km E of Marihatag Philippines -2023-12-02T20:30:43.814Z,8.4058,126.6427,67.266,4.7,34 km E of Hinatuan Philippines -2023-12-02T20:33:31.570Z,8.5645,126.9515,38.532,4.6,71 km ENE of Hinatuan Philippines -2023-12-02T20:39:30.328Z,8.259,126.7494,63.645,5.4,36 km ENE of Barcelona Philippines -2023-12-02T20:47:37.438Z,8.3986,126.5265,78.848,4.3,21 km E of Hinatuan Philippines -2023-12-02T20:52:15.877Z,8.4475,126.7782,9,6,49 km NE of Barcelona Philippines -2023-12-02T20:58:01.435Z,8.4768,126.7454,64.171,4.9,46 km ENE of Hinatuan Philippines -2023-12-02T20:59:20.602Z,8.0777,126.6353,28.239,4.9,23 km ENE of Santa Maria Philippines -2023-12-02T20:59:38.105Z,8.429,126.6642,34.964,4.9,36 km E of Hinatuan Philippines -2023-12-02T21:01:36.093Z,8.4074,126.6247,66.984,4.6,32 km E of Hinatuan Philippines -2023-12-02T21:07:10.806Z,8.4208,126.6183,73.479,4.6,31 km E of Hinatuan Philippines -2023-12-02T21:07:18.946Z,8.4195,126.7332,35,4.9,43 km NE of Barcelona Philippines -2023-12-02T21:07:51.349Z,8.3123,126.6272,45.673,5.1,27 km NE of Barcelona Philippines -2023-12-02T21:14:56.891Z,8.5852,126.9329,55.277,4.6,70 km ENE of Hinatuan Philippines -2023-12-02T21:16:07.839Z,8.3674,127.2501,10,4.5,92 km ENE of Barcelona Philippines -2023-12-02T21:20:15.248Z,8.4185,126.8897,56.304,4.6,57 km ENE of Barcelona Philippines -2023-12-02T21:21:00.999Z,8.4083,126.6577,57.009,4.5,35 km E of Hinatuan Philippines -2023-12-02T21:22:48.333Z,8.5199,126.8444,44.043,4.4,58 km ENE of Hinatuan Philippines -2023-12-02T21:23:41.013Z,8.555,126.8758,25.546,4.2,62 km ENE of Hinatuan Philippines -2023-12-02T21:24:19.675Z,8.4672,126.7643,42.548,4.5,48 km ENE of Hinatuan Philippines -2023-12-02T21:27:02.466Z,8.5219,126.8175,48.685,4.6,55 km ENE of Hinatuan Philippines -2023-12-02T21:28:03.458Z,8.5077,126.8466,64.688,4.5,58 km ENE of Hinatuan Philippines -2023-12-02T21:30:59.239Z,8.3293,126.6436,67.548,4.6,29 km NE of Barcelona Philippines -2023-12-02T21:39:38.716Z,8.3828,126.6851,67.467,4.5,37 km NE of Barcelona Philippines -2023-12-02T21:43:24.027Z,8.0825,126.6881,81.494,4.4,28 km ENE of Santa Maria Philippines -2023-12-02T21:44:38.158Z,8.2805,126.6784,41.416,4.5,30 km ENE of Barcelona Philippines -2023-12-02T21:45:47.629Z,8.4281,126.6863,70.833,4.4,39 km E of Hinatuan Philippines -2023-12-02T21:46:41.734Z,8.4305,126.6716,59.285,5.1,37 km E of Hinatuan Philippines -2023-12-02T21:52:34.875Z,8.5471,126.8652,45.848,4.6,61 km ENE of Hinatuan Philippines -2023-12-02T21:54:22.030Z,8.5433,126.972,49.44,4.3,72 km ENE of Hinatuan Philippines -2023-12-02T21:55:34.888Z,8.2369,126.7136,68.168,4.8,31 km ENE of Barcelona Philippines -2023-12-02T22:00:42.964Z,8.4654,127.0695,29.473,4.5,77 km ENE of Barcelona Philippines -2023-12-02T22:02:12.333Z,8.3554,126.6196,62.824,4.9,29 km NE of Barcelona Philippines -2023-12-02T22:12:23.136Z,8.3555,126.7257,72.816,4.5,38 km NE of Barcelona Philippines -2023-12-02T22:18:11.201Z,8.2931,126.3256,76.783,4.3,1 km WSW of Tidman Philippines -2023-12-02T22:19:35.976Z,8.4739,126.8178,60.921,4.5,54 km ENE of Hinatuan Philippines -2023-12-02T22:21:18.423Z,8.5366,126.9249,55.955,4.2,67 km ENE of Hinatuan Philippines -2023-12-02T22:30:59.163Z,8.3409,126.5156,80.766,4.5,20 km ENE of Tidman Philippines -2023-12-02T22:33:53.184Z,8.7614,127.1329,10,4.4,91 km E of Aras-asan Philippines -2023-12-02T22:35:41.644Z,8.3688,126.8873,26.181,5.5,55 km ENE of Barcelona Philippines -2023-12-02T22:41:20.321Z,8.2765,126.5273,77.099,4.7,16 km NE of Barcelona Philippines -2023-12-02T22:43:39.695Z,8.3799,126.5588,86.825,4.5,24 km E of Hinatuan Philippines -2023-12-02T22:45:19.891Z,8.533,126.8083,60.657,4.9,55 km ENE of Hinatuan Philippines -2023-12-02T22:46:17.669Z,8.3473,126.6005,79.8,4.7,27 km NE of Barcelona Philippines -2023-12-02T22:48:45.552Z,8.4622,126.7379,58.537,4.4,45 km ENE of Hinatuan Philippines -2023-12-02T23:00:10.191Z,8.6393,127.0507,45.843,4.3,84 km ENE of Hinatuan Philippines -2023-12-02T23:04:56.398Z,8.3262,126.6324,74.485,4.1,28 km NE of Barcelona Philippines -2023-12-02T23:05:52.610Z,8.1109,127.251,66.184,4.2,89 km E of Santa Maria Philippines -2023-12-02T23:08:55.720Z,8.946,126.5947,54.728,4,31 km ENE of Aras-asan Philippines -2023-12-02T23:19:52.603Z,8.2707,126.725,50.695,4.6,34 km ENE of Barcelona Philippines -2023-12-02T23:24:25.021Z,8.4343,126.803,62.283,4.5,50 km NE of Barcelona Philippines -2023-12-02T23:45:20.880Z,8.5725,126.6356,62.581,4.8,39 km ENE of Hinatuan Philippines -2023-12-02T23:50:11.895Z,8.3745,126.3916,98.675,4,6 km E of Hinatuan Philippines -2023-12-02T23:52:03.502Z,8.6935,126.8778,54.173,4.1,65 km E of Marihatag Philippines -2023-12-02T23:54:00.445Z,8.4178,126.8213,59.066,4.1,51 km NE of Barcelona Philippines -2023-12-02T23:55:09.013Z,8.448,126.6827,83.704,4.3,39 km ENE of Hinatuan Philippines -2023-12-03T00:11:48.672Z,8.2471,126.7031,70.064,4.5,31 km ENE of Barcelona Philippines -2023-12-03T00:24:31.136Z,8.4057,126.7293,74.371,4.4,42 km NE of Barcelona Philippines -2023-12-03T00:37:44.347Z,8.0463,126.8438,74.695,4.4,44 km E of Santa Maria Philippines -2023-12-03T00:43:03.666Z,8.6212,126.824,56.341,4.2,60 km ENE of Hinatuan Philippines -2023-12-03T00:44:01.199Z,8.5017,126.7354,60.927,4.2,46 km ENE of Hinatuan Philippines -2023-12-03T00:46:19.733Z,8.6753,126.6844,81.464,4.6,45 km ESE of Marihatag Philippines -2023-12-03T00:48:25.369Z,8.399,126.5081,50.345,4.9,19 km E of Hinatuan Philippines -2023-12-03T01:03:28.202Z,8.4877,126.7633,54.488,4.5,48 km ENE of Hinatuan Philippines -2023-12-03T01:16:06.794Z,8.4368,126.9279,56.798,4.7,62 km ENE of Barcelona Philippines -2023-12-03T01:43:30.421Z,8.3396,126.5379,62.08,4.5,22 km ENE of Tidman Philippines -2023-12-03T02:02:00.455Z,8.402,126.646,73.476,4.4,34 km E of Hinatuan Philippines -2023-12-03T02:02:37.910Z,8.5953,126.8367,48.422,5.3,60 km ENE of Hinatuan Philippines -2023-12-03T02:21:20.379Z,8.4553,126.7141,59.094,4.5,42 km ENE of Hinatuan Philippines -2023-12-03T02:31:59.854Z,8.4889,126.6183,54.355,4.7,33 km ENE of Hinatuan Philippines -2023-12-03T02:35:27.735Z,8.5163,126.3824,75.906,4.4,15 km E of Gamut Philippines -2023-12-03T02:36:42.587Z,8.35,126.9319,62.396,4.6,58 km ENE of Barcelona Philippines -2023-12-03T02:42:55.650Z,8.3433,126.5249,55.43,4.5,21 km ENE of Tidman Philippines -2023-12-03T02:47:51.875Z,8.4195,126.6322,65.469,4.4,33 km E of Hinatuan Philippines -2023-12-03T02:53:24.069Z,8.024,126.6335,69.474,4.5,21 km E of Santa Maria Philippines -2023-12-03T02:58:17.209Z,8.6384,126.6521,48.311,4.5,43 km ESE of Marihatag Philippines -2023-12-03T03:02:13.180Z,8.3502,126.4984,78.274,4.5,18 km E of Loyola Philippines -2023-12-03T03:10:18.266Z,8.0051,126.9926,35,4.6,59 km NE of Kinablangan Philippines -2023-12-03T03:18:00.286Z,8.3428,126.2974,59.736,4.4,3 km NNE of Bigaan Philippines -2023-12-03T03:23:58.506Z,8.6725,126.2482,10,4.4,6 km SE of Salvacion Philippines -2023-12-03T03:24:54.138Z,8.5791,126.625,52.66,4.9,39 km NE of Hinatuan Philippines -2023-12-03T03:28:17.758Z,8.0774,126.7675,60.367,5.1,36 km ENE of Santa Maria Philippines -2023-12-03T03:36:24.591Z,8.352,126.8035,65.313,5.2,45 km ENE of Barcelona Philippines -2023-12-03T03:40:12.759Z,8.0613,126.6821,62.668,4.7,27 km ENE of Santa Maria Philippines -2023-12-03T03:41:59.249Z,8.3995,126.8415,35,4.6,52 km ENE of Barcelona Philippines -2023-12-03T03:42:50.690Z,8.0378,126.6351,71.953,4.5,21 km ENE of Santa Maria Philippines -2023-12-03T03:43:39.077Z,8.1042,126.5185,55.34,4.5,11 km ESE of Barcelona Philippines -2023-12-03T03:55:41.926Z,8.3697,126.9227,54.578,4.9,58 km ENE of Barcelona Philippines -2023-12-03T04:15:50.251Z,7.8995,126.7628,81.374,4.5,32 km NE of Kinablangan Philippines -2023-12-03T04:20:59.388Z,8.3512,126.8881,47.993,4.3,54 km ENE of Barcelona Philippines -2023-12-03T04:24:17.316Z,8.6946,126.4013,64.558,4.6,16 km SE of Marihatag Philippines -2023-12-03T04:29:54.892Z,7.6241,126.716,10,4.4,18 km ENE of Baganga Philippines -2023-12-03T04:34:15.990Z,8.4518,126.5958,66.206,4.4,30 km ENE of Hinatuan Philippines -2023-12-03T04:35:37.470Z,8.4304,126.7859,65.96,4.4,49 km NE of Barcelona Philippines -2023-12-03T04:40:35.222Z,8.2518,126.8803,49.078,4.7,50 km ENE of Barcelona Philippines -2023-12-03T04:41:51.720Z,8.3166,126.7681,45.377,5.2,40 km ENE of Barcelona Philippines -2023-12-03T04:54:28.773Z,8.2886,126.5324,67.072,4.5,17 km NE of Barcelona Philippines -2023-12-03T04:59:15.550Z,8.6742,126.4283,46.561,5.1,20 km SE of Marihatag Philippines -2023-12-03T05:27:55.800Z,8.6231,126.9188,54.518,4.9,70 km ENE of Hinatuan Philippines -2023-12-03T05:38:11.750Z,8.5032,126.7688,55.478,4.7,50 km ENE of Hinatuan Philippines -2023-12-03T05:43:43.134Z,8.6422,126.6671,63.392,5.4,44 km ESE of Marihatag Philippines -2023-12-03T05:47:53.126Z,8.5965,126.8521,52.994,4.8,62 km ENE of Hinatuan Philippines -2023-12-03T05:50:23.806Z,8.1804,126.646,67.484,4.9,23 km E of Barcelona Philippines -2023-12-03T05:57:24.266Z,8.1323,126.5855,61.802,4.5,16 km E of Barcelona Philippines -2023-12-03T06:03:39.228Z,8.4466,126.7081,62.901,4.3,41 km ENE of Hinatuan Philippines -2023-12-03T06:10:51.067Z,8.1929,126.6606,85.672,4.5,25 km E of Barcelona Philippines -2023-12-03T06:18:22.337Z,8.4159,126.6195,73.26,4.7,31 km E of Hinatuan Philippines -2023-12-03T06:26:55.990Z,8.2604,126.4771,80.768,4.2,12 km NNE of Barcelona Philippines -2023-12-03T06:33:41.975Z,8.7503,127.1624,10,4.1,94 km E of Aras-asan Philippines -2023-12-03T06:37:14.051Z,8.5113,126.7591,57.272,4.5,49 km ENE of Hinatuan Philippines -2023-12-03T06:41:50.134Z,8.9456,126.4915,58.758,4.6,20 km ENE of Aras-asan Philippines -2023-12-03T06:44:43.205Z,8.474,126.749,54.923,4.5,47 km ENE of Hinatuan Philippines -2023-12-03T06:47:15.234Z,8.306,126.4138,85.286,4,8 km E of Tidman Philippines -2023-12-03T06:55:38.828Z,8.2875,126.7717,54.128,4.5,39 km ENE of Barcelona Philippines -2023-12-03T07:01:06.797Z,8.3926,126.5843,67.318,4.3,27 km E of Hinatuan Philippines -2023-12-03T07:04:10.610Z,8.4699,127.0292,50.031,4.3,74 km ENE of Barcelona Philippines -2023-12-03T07:04:47.178Z,8.6661,126.606,61.633,4.6,37 km ESE of Marihatag Philippines -2023-12-03T07:11:00.066Z,8.7346,126.8671,50.993,4.8,63 km E of Marihatag Philippines -2023-12-03T07:44:23.246Z,8.3833,126.6702,53.514,4.7,35 km NE of Barcelona Philippines -2023-12-03T07:54:05.453Z,8.4532,126.6445,45.081,4.2,35 km ENE of Hinatuan Philippines -2023-12-03T07:54:52.450Z,8.4707,126.9542,51.905,4.9,66 km ENE of Barcelona Philippines -2023-12-03T08:10:55.349Z,8.3276,126.6845,68.404,4.4,33 km NE of Barcelona Philippines -2023-12-03T08:12:53.539Z,8.3249,126.6118,69.57,4.4,26 km NE of Barcelona Philippines -2023-12-03T08:13:39.243Z,8.6847,126.8286,59.56,4.6,60 km ESE of Marihatag Philippines -2023-12-03T08:18:20.171Z,8.5029,126.7193,23.123,4.4,44 km ENE of Hinatuan Philippines -2023-12-03T08:31:21.035Z,8.1579,126.6471,59.629,4.5,23 km E of Barcelona Philippines -2023-12-03T08:36:26.527Z,8.0872,126.6896,78.608,4.7,28 km ENE of Santa Maria Philippines -2023-12-03T08:41:38.851Z,8.3924,126.7505,65.309,4.5,43 km NE of Barcelona Philippines -2023-12-03T08:41:55.724Z,8.3892,126.6878,71.598,4.9,37 km NE of Barcelona Philippines -2023-12-03T08:57:59.561Z,8.2729,126.881,50.57,4.5,50 km ENE of Barcelona Philippines -2023-12-03T09:02:37.618Z,8.2651,126.6534,54.435,4.1,26 km ENE of Barcelona Philippines -2023-12-03T09:03:39.627Z,8.403,126.8476,57.126,5.1,52 km ENE of Barcelona Philippines -2023-12-03T09:05:52.958Z,8.2105,126.7674,44.239,4.4,37 km E of Barcelona Philippines -2023-12-03T09:07:47.274Z,8.5262,126.6632,57.906,4.2,40 km ENE of Hinatuan Philippines -2023-12-03T09:12:09.191Z,8.4466,126.8908,51.73,4.5,59 km ENE of Barcelona Philippines -2023-12-03T09:19:58.330Z,8.3731,126.7146,53.937,4.6,38 km NE of Barcelona Philippines -2023-12-03T09:22:45.332Z,8.4343,126.3347,61.637,4.2,6 km N of Hinatuan Philippines -2023-12-03T09:37:14.442Z,8.4004,126.8489,54.326,4.7,52 km ENE of Barcelona Philippines -2023-12-03T09:42:31.932Z,8.5172,126.9678,44.353,4.4,70 km NE of Barcelona Philippines -2023-12-03T09:45:36.849Z,8.7017,126.7225,58.011,5,48 km ESE of Marihatag Philippines -2023-12-03T09:48:47.433Z,8.5007,126.8224,58.223,4.9,55 km ENE of Hinatuan Philippines -2023-12-03T09:55:44.966Z,8.5072,126.7495,52.305,4.6,48 km ENE of Hinatuan Philippines -2023-12-03T10:00:04.901Z,8.4948,126.7657,57.013,4.6,49 km ENE of Hinatuan Philippines -2023-12-03T10:10:43.006Z,8.3563,126.7052,64.55,4.2,36 km NE of Barcelona Philippines -2023-12-03T10:17:26.640Z,8.4718,126.8103,50.24,4.8,53 km ENE of Hinatuan Philippines -2023-12-03T10:22:06.926Z,8.4956,126.7356,45.362,4.6,46 km ENE of Hinatuan Philippines -2023-12-03T10:27:56.714Z,8.5029,126.3646,55.82,4.4,13 km ESE of Gamut Philippines -2023-12-03T10:35:52.871Z,8.488,126.7454,19,6.6,47 km ENE of Hinatuan Philippines -2023-12-03T10:39:23.796Z,8.5597,126.6174,45.264,5.7,37 km ENE of Hinatuan Philippines -2023-12-03T10:45:47.907Z,8.6436,126.1848,61.756,4.5,8 km SSW of Salvacion Philippines -2023-12-03T10:46:45.558Z,8.5099,126.5423,48.53,4.8,27 km ENE of Hinatuan Philippines -2023-12-03T10:49:40.141Z,8.5477,126.8014,51.206,4.6,54 km ENE of Hinatuan Philippines -2023-12-03T10:51:42.198Z,8.3758,126.5445,54.21,4.4,23 km E of Hinatuan Philippines -2023-12-03T10:53:05.442Z,8.2897,127.0525,39.402,5.5,69 km ENE of Barcelona Philippines -2023-12-03T10:54:55.054Z,8.5622,126.862,36.128,5.6,61 km ENE of Hinatuan Philippines -2023-12-03T10:58:38.200Z,8.8293,126.83,42.849,5.4,57 km E of Aras-asan Philippines -2023-12-03T11:00:29.105Z,8.6963,126.5575,43.054,5,31 km ESE of Marihatag Philippines -2023-12-03T11:01:22.580Z,8.6452,126.3184,67.011,4.6,14 km ESE of Salvacion Philippines -2023-12-03T11:03:08.996Z,8.5882,126.7552,57.835,4.5,52 km ENE of Hinatuan Philippines -2023-12-03T11:04:55.848Z,8.7891,126.5242,40.458,4.5,25 km E of Marihatag Philippines -2023-12-03T11:06:18.465Z,8.6526,127.0953,10,4.7,89 km ENE of Hinatuan Philippines -2023-12-03T11:07:52.319Z,8.5748,126.8872,51.207,4.6,64 km ENE of Hinatuan Philippines -2023-12-03T11:08:54.709Z,8.6676,126.6196,51.186,4.2,38 km ESE of Marihatag Philippines -2023-12-03T11:09:16.935Z,8.552,126.9245,44.271,4.4,67 km ENE of Hinatuan Philippines -2023-12-03T11:11:27.068Z,8.5376,126.6422,57.339,4.3,38 km ENE of Hinatuan Philippines -2023-12-03T11:19:42.414Z,8.7652,126.5561,53.002,4.4,28 km E of Marihatag Philippines -2023-12-03T11:20:45.102Z,8.5588,126.7579,41.613,4.4,51 km ENE of Hinatuan Philippines -2023-12-03T11:23:42.342Z,8.6244,126.6394,42.536,4.3,42 km ESE of Marihatag Philippines -2023-12-03T11:31:09.120Z,8.5428,126.9388,51.756,4.9,69 km ENE of Hinatuan Philippines -2023-12-03T11:40:47.810Z,8.4474,126.8046,55.194,4.5,51 km NE of Barcelona Philippines -2023-12-03T11:53:44.757Z,8.3849,126.7457,59.628,4.7,42 km NE of Barcelona Philippines -2023-12-03T11:56:38.222Z,8.4828,126.5946,55.581,4.2,31 km ENE of Hinatuan Philippines -2023-12-03T11:57:59.989Z,8.5352,126.8199,58.385,4.3,56 km ENE of Hinatuan Philippines -2023-12-03T12:13:46.996Z,8.5042,126.8304,57.025,4.6,56 km ENE of Hinatuan Philippines -2023-12-03T12:28:35.198Z,8.4558,126.932,58.058,4.8,63 km ENE of Barcelona Philippines -2023-12-03T12:29:32.384Z,8.4205,126.8239,44.533,4.4,51 km NE of Barcelona Philippines -2023-12-03T12:37:11.161Z,8.6449,126.9844,30.629,4.3,77 km ENE of Hinatuan Philippines -2023-12-03T12:39:06.935Z,8.3741,126.7408,54.781,4.3,41 km NE of Barcelona Philippines -2023-12-03T12:39:36.297Z,8.6744,127.0239,28.046,5.4,81 km E of Marihatag Philippines -2023-12-03T12:44:48.871Z,8.4676,126.805,56.601,5.2,52 km ENE of Hinatuan Philippines -2023-12-03T12:47:26.181Z,8.5487,126.7992,47.879,4.2,54 km ENE of Hinatuan Philippines -2023-12-03T12:55:10.484Z,8.5387,126.9635,46.421,4.1,71 km ENE of Hinatuan Philippines -2023-12-03T12:58:18.124Z,8.0486,126.7876,61.103,4.3,38 km E of Santa Maria Philippines -2023-12-03T13:17:07.317Z,8.3477,126.3917,80.059,4.3,6 km ENE of Loyola Philippines -2023-12-03T13:22:52.126Z,8.4783,126.645,55.577,4.7,36 km ENE of Hinatuan Philippines -2023-12-03T13:36:38.660Z,8.5165,126.729,44.421,4.4,46 km ENE of Hinatuan Philippines -2023-12-03T14:02:19.715Z,8.1651,126.5208,76.799,4.5,9 km E of Barcelona Philippines -2023-12-03T14:18:54.809Z,8.4366,126.3292,72.076,4.5,7 km N of Hinatuan Philippines -2023-12-03T14:30:59.541Z,8.9177,126.8897,10,4.6,63 km E of Aras-asan Philippines -2023-12-03T14:35:56.830Z,8.732,126.823,13,6,58 km E of Marihatag Philippines -2023-12-03T14:38:35.616Z,8.6927,126.7887,54.816,5.1,55 km ESE of Marihatag Philippines -2023-12-03T14:45:39.077Z,8.7331,127.0897,35,4.5,87 km ESE of Aras-asan Philippines -2023-12-03T14:50:51.799Z,8.775,127.0454,10,4.5,81 km E of Aras-asan Philippines -2023-12-03T14:51:35.144Z,8.7138,127.0059,10,4.5,78 km E of Marihatag Philippines -2023-12-03T14:54:09.941Z,8.2957,126.689,73.552,5.1,31 km ENE of Barcelona Philippines -2023-12-03T15:19:20.571Z,8.2875,126.5697,77.353,4.3,20 km NE of Barcelona Philippines -2023-12-03T15:26:32.519Z,8.5647,126.7204,61.703,4.7,47 km ENE of Hinatuan Philippines -2023-12-03T15:37:05.734Z,8.7785,127.1087,10,4.1,88 km E of Aras-asan Philippines -2023-12-03T15:39:37.467Z,8.7281,126.7169,47.181,4.8,47 km E of Marihatag Philippines -2023-12-03T15:42:52.284Z,8.4701,126.7892,59.105,4.6,51 km ENE of Hinatuan Philippines -2023-12-03T16:27:40.346Z,8.324,126.4789,84.704,4.5,15 km E of Tidman Philippines -2023-12-03T16:31:58.883Z,8.9043,126.6454,74.909,4.4,36 km E of Aras-asan Philippines -2023-12-03T17:01:50.716Z,8.531,126.7048,60.007,5,44 km ENE of Hinatuan Philippines -2023-12-03T17:09:15.343Z,8.4856,126.8515,65.636,4.6,58 km ENE of Hinatuan Philippines -2023-12-03T17:23:43.869Z,8.793,126.8114,61.228,4.3,56 km E of Aras-asan Philippines -2023-12-03T17:24:09.398Z,8.8159,126.6932,47.342,4.6,42 km E of Aras-asan Philippines -2023-12-03T17:38:10.692Z,8.5214,126.8431,57.556,4.2,58 km ENE of Hinatuan Philippines -2023-12-03T17:50:10.111Z,8.9,126.6558,55.451,4.6,37 km E of Aras-asan Philippines -2023-12-03T18:06:52.447Z,8.6138,126.9669,42.295,4.5,74 km ENE of Hinatuan Philippines -2023-12-03T18:07:58.873Z,8.4958,126.6581,58.924,4.8,38 km ENE of Hinatuan Philippines -2023-12-03T18:11:20.290Z,8.8674,126.5348,59.088,5.1,24 km E of Aras-asan Philippines -2023-12-03T18:29:44.806Z,8.5013,126.769,56.488,4.8,49 km ENE of Hinatuan Philippines -2023-12-03T18:47:53.781Z,8.3947,126.7763,59.822,4.5,45 km NE of Barcelona Philippines -2023-12-03T18:59:22.322Z,8.9629,126.4471,57.177,4.9,17 km ENE of Aras-asan Philippines -2023-12-03T19:03:14.535Z,8.5798,126.586,69.598,4.7,36 km NE of Hinatuan Philippines -2023-12-03T19:14:54.619Z,8.8544,126.5721,65.775,4.8,28 km E of Aras-asan Philippines -2023-12-03T19:37:24.507Z,8.5869,126.8123,69.349,4,57 km ENE of Hinatuan Philippines -2023-12-03T19:47:20.396Z,8.7517,127.3971,10,4.4,120 km E of Aras-asan Philippines -2023-12-03T19:49:35.739Z,8.9705,126.6121,20,6.9,34 km ENE of Aras-asan Philippines -2023-12-03T20:03:12.970Z,8.5581,126.6507,77.572,4.8,40 km ENE of Hinatuan Philippines -2023-12-03T20:10:19.177Z,8.8346,126.6593,67.691,4.9,38 km E of Aras-asan Philippines -2023-12-03T20:13:31.213Z,9.0619,126.6963,84.261,4.5,46 km ENE of Aras-asan Philippines -2023-12-03T20:15:08.961Z,8.7108,126.4404,34.474,4.4,18 km ESE of Marihatag Philippines -2023-12-03T20:18:53.465Z,8.9241,126.6255,62.425,5,34 km E of Aras-asan Philippines -2023-12-03T20:27:49.515Z,8.9885,126.5953,61.859,4.7,33 km ENE of Aras-asan Philippines -2023-12-03T20:30:19.781Z,8.9031,126.4867,47.433,5.3,19 km E of Aras-asan Philippines -2023-12-03T20:52:44.367Z,9.0022,126.9853,10,4.4,75 km E of Aras-asan Philippines -2023-12-03T21:05:16.926Z,8.8496,126.3183,64.696,4.4,4 km S of Aras-asan Philippines -2023-12-03T21:06:36.173Z,8.4456,126.7759,61.025,4.5,49 km NE of Barcelona Philippines -2023-12-03T21:08:17.245Z,8.2405,126.8713,58.302,4.7,49 km E of Barcelona Philippines -2023-12-03T21:32:12.302Z,8.5603,126.8658,53.566,4.2,62 km ENE of Hinatuan Philippines -2023-12-03T21:35:43.744Z,8.2052,126.9057,52.995,4.4,52 km E of Barcelona Philippines -2023-12-03T21:43:38.401Z,8.7398,126.8062,24.222,5.4,56 km E of Marihatag Philippines -2023-12-03T21:47:38.586Z,8.8699,126.5502,63.759,4.6,26 km E of Aras-asan Philippines -2023-12-03T21:53:10.615Z,8.0022,126.9929,35,4.2,59 km NE of Kinablangan Philippines -2023-12-03T21:55:57.355Z,8.7812,127.1924,10,4.4,97 km E of Aras-asan Philippines -2023-12-03T21:57:11.415Z,8.9968,126.397,59.477,4.5,13 km ENE of Bacolod Philippines -2023-12-03T22:06:22.496Z,8.662,126.7648,59.858,4.5,53 km ESE of Marihatag Philippines -2023-12-03T22:08:05.521Z,8.7443,126.4046,80.093,4.5,13 km ESE of Marihatag Philippines -2023-12-03T22:12:37.953Z,8.5686,126.9342,54.947,4.4,69 km ENE of Hinatuan Philippines -2023-12-03T22:20:32.282Z,8.5619,126.7744,54.692,4.8,52 km ENE of Hinatuan Philippines -2023-12-03T22:30:04.554Z,8.7493,126.6833,49.421,4.5,43 km E of Marihatag Philippines -2023-12-03T22:31:40.681Z,8.5035,126.485,80.377,4.2,22 km NE of Hinatuan Philippines -2023-12-03T22:38:51.018Z,8.6492,126.9694,43.447,4.5,76 km ESE of Marihatag Philippines -2023-12-03T22:42:17.814Z,8.7045,126.9358,35,5.1,71 km E of Marihatag Philippines -2023-12-03T22:55:09.529Z,9.0829,126.6061,35,4.5,38 km ENE of Bacolod Philippines -2023-12-03T23:15:12.419Z,8.2419,126.5865,59.581,4.3,19 km ENE of Barcelona Philippines -2023-12-03T23:16:16.451Z,8.3619,126.8616,35,4.6,52 km ENE of Barcelona Philippines -2023-12-03T23:23:47.588Z,9.098,126.7735,47.473,4.5,55 km ENE of Aras-asan Philippines -2023-12-03T23:25:12.213Z,8.4018,126.758,58.845,5.1,44 km NE of Barcelona Philippines -2023-12-03T23:57:48.381Z,8.5228,126.3419,35,4.4,11 km E of Gamut Philippines -2023-12-04T00:36:08.606Z,8.4667,126.61,57.53,4.4,32 km ENE of Hinatuan Philippines -2023-12-04T00:39:02.759Z,8.1051,126.7847,50.963,4.8,39 km E of Barcelona Philippines -2023-12-04T00:44:26.400Z,8.8958,126.5411,49.396,4.9,25 km E of Aras-asan Philippines -2023-12-04T00:55:23.811Z,8.8642,126.6775,35,4.3,40 km E of Aras-asan Philippines -2023-12-04T01:00:36.739Z,8.8796,126.5209,49.628,4.5,23 km E of Aras-asan Philippines -2023-12-04T01:06:40.143Z,8.5406,126.5985,35,4.5,34 km ENE of Hinatuan Philippines -2023-12-04T01:07:50.505Z,8.4547,126.8072,66.391,5.5,52 km NE of Barcelona Philippines -2023-12-04T01:17:35.890Z,8.5144,126.7897,70.926,4.4,52 km ENE of Hinatuan Philippines -2023-12-04T01:32:16.569Z,8.3664,127.1768,10,4.6,84 km ENE of Barcelona Philippines -2023-12-04T01:36:02.838Z,8.9354,126.4596,58.633,4.3,17 km ENE of Aras-asan Philippines -2023-12-04T01:51:09.184Z,8.5839,126.7206,19.883,4.2,48 km ENE of Hinatuan Philippines -2023-12-04T02:11:04.909Z,8.4825,126.7738,71.731,5,49 km ENE of Hinatuan Philippines -2023-12-04T02:11:57.805Z,8.5389,126.6466,103.168,4.8,39 km ENE of Hinatuan Philippines -2023-12-04T02:19:50.365Z,8.6371,126.2272,106.562,4.4,8 km SSE of Salvacion Philippines -2023-12-04T02:32:38.647Z,8.7959,126.2415,86.202,4.2,6 km W of Marihatag Philippines -2023-12-04T02:38:18.667Z,8.5649,126.7867,58.768,5.2,54 km ENE of Hinatuan Philippines -2023-12-04T02:59:00.438Z,8.4247,126.6669,62.584,4.3,37 km E of Hinatuan Philippines -2023-12-04T03:08:51.639Z,8.6706,126.7952,59.701,4.5,56 km ESE of Marihatag Philippines -2023-12-04T03:39:29.106Z,7.72,126.642,95.074,4.5,10 km ENE of Kinablangan Philippines -2023-12-04T03:49:14.221Z,8.7488,126.5107,42.785,4.5,24 km ESE of Marihatag Philippines -2023-12-04T04:12:01.156Z,8.7802,127.271,10,4.2,106 km E of Aras-asan Philippines -2023-12-04T04:17:23.815Z,8.8321,126.7554,46.818,5.3,49 km E of Aras-asan Philippines -2023-12-04T04:21:23.420Z,8.6584,127.3283,10,4.8,112 km ENE of Barcelona Philippines -2023-12-04T04:32:29.894Z,8.6628,126.5432,60.201,4.3,31 km ESE of Marihatag Philippines -2023-12-04T04:43:49.261Z,8.3955,126.8925,65.809,5.1,56 km ENE of Barcelona Philippines -2023-12-04T04:59:01.651Z,8.879,126.666,55.451,5.3,39 km E of Aras-asan Philippines -2023-12-04T05:03:41.324Z,8.4492,126.4344,66.13,4.8,13 km NE of Hinatuan Philippines -2023-12-04T05:08:36.001Z,8.8354,126.6446,27,5.7,37 km E of Aras-asan Philippines -2023-12-04T05:14:55.893Z,8.6682,126.4292,68.418,4.4,21 km SE of Marihatag Philippines -2023-12-04T05:15:43.916Z,8.3448,126.7748,66.931,5.3,42 km ENE of Barcelona Philippines -2023-12-04T05:45:11.007Z,8.3339,126.7259,74.017,4.6,37 km ENE of Barcelona Philippines -2023-12-04T05:51:38.185Z,8.6484,126.7103,35,4.3,48 km ESE of Marihatag Philippines -2023-12-04T06:08:29.488Z,8.4944,126.7589,45.738,5,48 km ENE of Hinatuan Philippines -2023-12-04T06:43:48.172Z,8.7921,126.5415,62.33,4.6,26 km E of Marihatag Philippines -2023-12-04T06:59:02.261Z,8.544,126.812,61.167,4.4,55 km ENE of Hinatuan Philippines -2023-12-04T07:10:08.017Z,8.6243,126.7681,47.902,4.2,55 km ENE of Hinatuan Philippines -2023-12-04T07:11:08.522Z,8.4451,126.376,81.047,4.4,9 km NNE of Hinatuan Philippines -2023-12-04T07:23:58.178Z,8.3413,126.5352,77.984,4.2,22 km ENE of Tidman Philippines -2023-12-04T07:33:34.455Z,8.4113,126.9788,40.405,4.2,66 km ENE of Barcelona Philippines -2023-12-04T07:44:55.483Z,8.679,126.3906,35,4.2,17 km SE of Marihatag Philippines -2023-12-04T07:47:55.927Z,8.7874,126.8538,55.25,4.4,60 km E of Aras-asan Philippines -2023-12-04T08:12:25.614Z,8.4308,126.8279,56.959,4.3,52 km NE of Barcelona Philippines -2023-12-04T09:10:37.888Z,8.0992,126.5693,98.886,4.1,16 km ESE of Barcelona Philippines -2023-12-04T09:29:41.149Z,8.5281,126.738,23.333,4.9,47 km ENE of Hinatuan Philippines -2023-12-04T09:55:30.676Z,8.4163,126.6217,66.178,4.1,32 km E of Hinatuan Philippines -2023-12-04T10:06:03.859Z,8.2898,126.6128,81.059,4.3,24 km NE of Barcelona Philippines -2023-12-04T10:12:30.648Z,8.3734,126.5764,67.448,4.5,26 km E of Hinatuan Philippines -2023-12-04T10:23:02.727Z,9.0306,126.6202,68.132,4.6,37 km ENE of Aras-asan Philippines -2023-12-04T10:28:16.564Z,8.8659,126.3996,50.356,4.2,10 km ESE of Aras-asan Philippines -2023-12-04T10:37:56.227Z,8.3084,126.848,35.126,4.4,48 km ENE of Barcelona Philippines -2023-12-04T10:48:43.949Z,8.5486,126.8142,55.057,4.4,56 km ENE of Hinatuan Philippines -2023-12-04T11:31:30.863Z,8.2428,126.5714,66.72,4.4,17 km ENE of Barcelona Philippines -2023-12-04T12:04:24.271Z,8.2883,127.293,10,4.2,95 km E of Barcelona Philippines -2023-12-04T13:00:44.772Z,9.0514,126.7734,42.766,4.5,53 km ENE of Aras-asan Philippines -2023-12-04T13:20:08.149Z,8.4181,126.9414,59.601,4.3,62 km ENE of Barcelona Philippines -2023-12-04T13:46:03.913Z,8.7181,127.1752,10,4.4,96 km E of Aras-asan Philippines -2023-12-04T14:02:31.838Z,8.7103,127.0253,10,4.4,80 km E of Marihatag Philippines -2023-12-04T14:14:46.314Z,8.1961,126.9876,56.268,4.4,61 km E of Barcelona Philippines -2023-12-04T15:38:36.198Z,8.4337,126.6059,76.164,4.4,30 km ENE of Hinatuan Philippines -2023-12-04T15:44:59.627Z,8.5314,126.4196,64.416,4.5,19 km E of Gamut Philippines -2023-12-04T16:05:09.758Z,9.1341,126.6817,53.473,4.3,48 km ENE of Bacolod Philippines -2023-12-04T16:23:46.001Z,8.5476,126.8152,45.186,4.7,56 km ENE of Hinatuan Philippines -2023-12-04T17:07:03.477Z,8.4556,126.3718,83.669,4.3,10 km NNE of Hinatuan Philippines -2023-12-04T18:04:10.825Z,8.7039,127.1912,10,4.2,98 km ESE of Aras-asan Philippines -2023-12-04T19:05:55.402Z,8.1512,126.919,35,4.1,53 km E of Barcelona Philippines -2023-12-04T19:33:04.131Z,8.8632,126.7976,13.215,4.4,53 km E of Aras-asan Philippines -2023-12-04T19:57:39.486Z,8.4035,126.7949,71.182,4.4,48 km NE of Barcelona Philippines -2023-12-04T21:00:25.166Z,9.8038,126.5027,35,4.3,43 km E of Union Philippines -2023-12-04T21:07:52.262Z,8.3486,127.2464,10,4.4,91 km ENE of Barcelona Philippines -2023-12-04T21:20:06.062Z,8.3368,127.269,10,4.7,94 km ENE of Barcelona Philippines -2023-12-04T21:23:33.089Z,8.1699,126.9399,35,4.3,55 km E of Barcelona Philippines -2023-12-04T21:53:29.159Z,8.8535,126.7038,43.419,4.4,43 km E of Aras-asan Philippines -2023-12-04T23:05:29.938Z,8.258,126.9238,58.963,4.6,55 km ENE of Barcelona Philippines -2023-12-04T23:11:12.842Z,8.4649,127.2041,10,4.5,91 km ENE of Barcelona Philippines -2023-12-04T23:20:44.541Z,8.9829,126.5208,46.24,4.4,25 km ENE of Aras-asan Philippines -2023-12-04T23:23:57.674Z,8.9405,126.548,42.447,4.4,26 km ENE of Aras-asan Philippines -2023-12-04T23:39:36.413Z,8.2188,126.8343,42.711,4.4,44 km E of Barcelona Philippines -2023-12-04T23:57:09.449Z,8.9855,126.5335,53.488,4.7,26 km ENE of Aras-asan Philippines -2023-12-05T00:12:12.287Z,8.4604,126.8751,50.085,4.3,58 km NE of Barcelona Philippines -2023-12-05T00:34:29.806Z,8.9528,126.5493,40.403,5.2,27 km ENE of Aras-asan Philippines -2023-12-05T00:49:16.087Z,8.5905,126.8958,35,4.4,66 km ENE of Hinatuan Philippines -2023-12-05T00:58:32.744Z,8.7119,126.7423,35,5.1,50 km ESE of Marihatag Philippines -2023-12-05T01:01:11.523Z,8.707,126.6713,83.856,4.9,42 km ESE of Marihatag Philippines -2023-12-05T01:06:13.127Z,8.9151,126.6056,62.045,4.1,32 km E of Aras-asan Philippines -2023-12-05T01:24:54.240Z,8.3678,126.5158,85.571,4.3,20 km E of Hinatuan Philippines -2023-12-05T02:02:46.561Z,8.4691,126.8397,63.649,4.4,56 km NE of Barcelona Philippines -2023-12-05T02:06:02.689Z,8.8249,126.9575,10,4.3,71 km E of Aras-asan Philippines -2023-12-05T02:19:47.115Z,9.1157,126.3321,49.315,4.2,15 km NE of Tago Philippines -2023-12-05T02:41:27.961Z,8.9697,126.5168,47.642,4.4,24 km ENE of Aras-asan Philippines -2023-12-05T02:44:24.359Z,8.3385,126.9347,69.326,4.9,58 km ENE of Barcelona Philippines -2023-12-05T03:39:58.980Z,8.6563,126.702,72.616,4.8,47 km ESE of Marihatag Philippines -2023-12-05T03:56:17.577Z,8.7833,127.2511,10,4.2,104 km E of Aras-asan Philippines -2023-12-05T03:57:15.902Z,8.3427,126.2225,10,4.3,7 km WNW of Bigaan Philippines -2023-12-05T04:27:36.054Z,8.6856,126.6875,74.92,4.8,45 km ESE of Marihatag Philippines -2023-12-05T04:33:17.389Z,8.9799,127.2244,10,4.5,100 km E of Aras-asan Philippines -2023-12-05T04:58:48.308Z,7.8878,127.2434,10,4.6,79 km ENE of Kinablangan Philippines -2023-12-05T05:27:13.681Z,8.4351,126.9638,38.877,5.1,65 km ENE of Barcelona Philippines -2023-12-05T05:41:15.193Z,8.5037,127.1043,10,4.3,83 km ENE of Barcelona Philippines -2023-12-05T05:42:34.034Z,8.5678,127.2751,10,4.8,103 km ENE of Barcelona Philippines -2023-12-05T05:47:05.726Z,8.5293,127.2312,10,4.5,96 km ENE of Barcelona Philippines -2023-12-05T07:06:13.455Z,8.4541,126.8441,47.02,4.5,55 km NE of Barcelona Philippines -2023-12-05T07:27:24.018Z,8.7445,127.3174,10,4.7,111 km E of Aras-asan Philippines -2023-12-05T08:13:18.209Z,8.3392,126.7188,55.551,4.5,37 km ENE of Barcelona Philippines -2023-12-05T08:23:54.223Z,13.9089,120.5645,75,5.7,6 km W of Talisay Philippines -2023-12-05T09:10:03.799Z,9.0829,126.6785,19.697,5.7,45 km ENE of Aras-asan Philippines -2023-12-05T09:13:06.485Z,9.0224,126.6528,44.569,4.9,40 km ENE of Aras-asan Philippines -2023-12-05T09:32:51.332Z,9.1012,126.6568,35,4.5,44 km ENE of Bacolod Philippines -2023-12-05T09:37:51.267Z,9.0178,126.5255,28.343,4.7,27 km ENE of Aras-asan Philippines -2023-12-05T09:42:52.100Z,9.0999,126.6497,26.021,5.5,43 km ENE of Bacolod Philippines -2023-12-05T09:52:38.051Z,9.1304,126.6893,51.3,4.9,49 km ENE of Bacolod Philippines -2023-12-05T09:56:01.380Z,8.4659,126.6819,56.1,4.6,39 km ENE of Hinatuan Philippines -2023-12-05T09:59:29.110Z,9.2818,126.587,35.343,4.7,43 km E of Cortes Philippines -2023-12-05T10:13:12.760Z,8.4983,127.2187,10,4.4,94 km ENE of Barcelona Philippines -2023-12-05T10:23:56.275Z,9.1074,126.9573,10,4.5,75 km ENE of Aras-asan Philippines -2023-12-05T10:26:18.712Z,8.9322,126.5319,51.309,4.5,24 km ENE of Aras-asan Philippines -2023-12-05T10:45:47.072Z,8.8674,127.0049,10,4.7,76 km E of Aras-asan Philippines -2023-12-05T10:48:07.755Z,8.6345,126.931,35,4.5,71 km ENE of Hinatuan Philippines -2023-12-05T11:00:25.505Z,8.8446,126.7958,43.991,4.5,53 km E of Aras-asan Philippines -2023-12-05T11:33:00.648Z,8.3724,126.4497,76.977,4.8,12 km E of Hinatuan Philippines -2023-12-05T11:49:22.992Z,8.8651,127.4349,10,4.4,123 km E of Aras-asan Philippines -2023-12-05T12:33:59.292Z,8.7637,126.5614,55.552,4.6,29 km E of Marihatag Philippines -2023-12-05T12:42:36.570Z,8.4519,126.6751,77.532,5,38 km ENE of Hinatuan Philippines -2023-12-05T12:45:07.341Z,8.4366,126.3407,68.11,4.7,7 km N of Hinatuan Philippines -2023-12-05T13:32:26.546Z,8.7596,126.6992,53.097,4.5,44 km E of Marihatag Philippines -2023-12-05T13:36:36.285Z,9.1609,126.785,12,5.8,60 km ENE of Bacolod Philippines -2023-12-05T14:57:48.753Z,8.4116,126.9541,49.897,4,63 km ENE of Barcelona Philippines -2023-12-05T15:36:35.373Z,8.7532,127.0767,10,4.5,85 km E of Aras-asan Philippines -2023-12-05T16:29:55.543Z,8.3494,127.0163,49.815,4.4,67 km ENE of Barcelona Philippines -2023-12-05T17:15:44.198Z,9.0511,127.2633,10,4.3,106 km E of Aras-asan Philippines -2023-12-05T17:17:24.327Z,9.0794,127.0628,10,4.1,85 km ENE of Aras-asan Philippines -2023-12-05T17:29:01.207Z,8.3512,127.2242,10,4.3,89 km ENE of Barcelona Philippines -2023-12-05T17:33:21.898Z,8.9566,126.638,54.27,4.8,36 km ENE of Aras-asan Philippines -2023-12-05T17:36:56.900Z,8.9238,126.7087,47.706,4.4,43 km E of Aras-asan Philippines -2023-12-05T18:09:44.717Z,9.0281,126.9413,10,4.6,71 km ENE of Aras-asan Philippines -2023-12-05T18:35:05.332Z,8.9477,126.6742,52.534,4.5,40 km E of Aras-asan Philippines -2023-12-05T19:44:51.596Z,8.608,126.4778,81.004,4.4,27 km ENE of Gamut Philippines -2023-12-05T20:23:28.205Z,8.3338,126.4518,92.688,4.5,13 km E of Loyola Philippines -2023-12-05T20:29:38.408Z,8.8148,126.6416,57.623,4.5,37 km ESE of Aras-asan Philippines -2023-12-05T21:52:13.304Z,8.5437,126.6603,65.136,4.6,40 km ENE of Hinatuan Philippines -2023-12-05T22:23:28.430Z,9.1669,126.6828,64.613,4.4,50 km ENE of La Paz Philippines -2023-12-05T23:18:49.786Z,8.3308,126.9982,57.712,4.4,64 km ENE of Barcelona Philippines -2023-12-05T23:27:46.861Z,8.5301,127.0911,35,4.2,83 km ENE of Barcelona Philippines -2023-12-05T23:29:07.600Z,8.6272,127.4251,10,4.7,120 km ENE of Barcelona Philippines -2023-12-05T23:34:25.426Z,8.6166,126.5826,63.502,4.6,37 km ESE of Marihatag Philippines -2023-12-05T23:39:56.401Z,8.6686,126.5522,70.998,4.7,31 km ESE of Marihatag Philippines -2023-12-05T23:51:06.716Z,8.5242,127.2361,10,4.4,97 km ENE of Barcelona Philippines -2023-12-06T01:02:08.113Z,8.7985,127.3267,10,4.2,112 km E of Aras-asan Philippines -2023-12-06T01:22:48.092Z,8.4338,126.7907,35,4.1,49 km NE of Barcelona Philippines -2023-12-06T01:55:58.955Z,8.6155,126.4644,54.945,5.3,26 km ENE of Gamut Philippines -2023-12-06T02:26:22.001Z,8.9613,127.3348,10,4.1,112 km E of Aras-asan Philippines -2023-12-06T02:38:43.089Z,7.4501,126.1088,10,4.3,13 km ESE of San Mariano Philippines -2023-12-06T04:00:19.898Z,9.2212,126.5551,64.339,4.6,40 km E of Cortes Philippines -2023-12-06T05:34:10.446Z,8.3768,126.8645,48.427,4.2,53 km ENE of Barcelona Philippines -2023-12-06T06:30:37.042Z,8.4696,127.2586,10,4.2,97 km ENE of Barcelona Philippines -2023-12-06T08:01:58.137Z,9.1377,126.3258,79.538,4.5,15 km ENE of Tandag Philippines -2023-12-06T08:32:17.021Z,8.4339,126.9909,58.508,4.3,68 km ENE of Barcelona Philippines -2023-12-06T08:33:04.427Z,8.8178,126.5838,58.596,4.9,30 km ESE of Aras-asan Philippines -2023-12-06T09:34:55.226Z,8.8279,126.4699,10,4.5,18 km ESE of Aras-asan Philippines -2023-12-06T10:33:26.051Z,8.4435,126.9835,53.416,4.3,68 km ENE of Barcelona Philippines -2023-12-06T10:41:23.010Z,8.6273,126.6017,58.768,5.1,38 km ESE of Marihatag Philippines -2023-12-06T11:42:50.241Z,8.462,126.8433,59.211,4.6,56 km NE of Barcelona Philippines -2023-12-06T13:19:22.398Z,8.6399,127.193,10,4.6,99 km ENE of Barcelona Philippines -2023-12-06T14:52:37.348Z,8.4874,126.7553,35,4.9,48 km ENE of Hinatuan Philippines -2023-12-06T15:24:37.994Z,8.5184,127.058,14.62,5.3,79 km ENE of Barcelona Philippines -2023-12-06T15:33:14.413Z,8.4127,126.6908,53.161,4.5,39 km E of Hinatuan Philippines -2023-12-06T16:29:56.634Z,8.9303,127.1137,10,4.2,88 km E of Aras-asan Philippines -2023-12-06T16:32:53.281Z,9.0709,127.0694,10,4.3,85 km ENE of Aras-asan Philippines -2023-12-06T17:15:04.831Z,9.0353,126.4783,72.212,4.4,23 km ENE of Bacolod Philippines -2023-12-06T17:25:46.324Z,8.8083,126.6822,55.999,4.5,41 km ESE of Aras-asan Philippines -2023-12-06T18:04:36.869Z,9.0162,127.0302,10,4.3,80 km E of Aras-asan Philippines -2023-12-06T19:11:39.643Z,8.9319,126.7919,50.565,4.7,53 km E of Aras-asan Philippines -2023-12-06T19:14:45.547Z,8.6108,126.8801,59.094,4.7,65 km ENE of Hinatuan Philippines -2023-12-06T19:18:48.331Z,8.9349,126.7944,57.842,4.4,53 km E of Aras-asan Philippines -2023-12-06T19:20:30.965Z,8.9024,127.2977,10,4.5,108 km E of Aras-asan Philippines -2023-12-06T19:24:22.006Z,8.8888,126.71,59.556,4.5,43 km E of Aras-asan Philippines -2023-12-06T19:46:50.817Z,9.1481,127.085,10,4.4,89 km ENE of Aras-asan Philippines -2023-12-06T22:40:12.467Z,8.675,127.2547,10,4.5,106 km E of Marihatag Philippines -2023-12-06T23:07:25.852Z,8.3855,126.6075,65.785,4.2,30 km E of Hinatuan Philippines -2023-12-06T23:33:46.088Z,8.4094,126.6536,34.432,4.9,35 km E of Hinatuan Philippines -2023-12-06T23:41:33.057Z,8.6556,127.1519,10,4.6,95 km ENE of Hinatuan Philippines -2023-12-07T00:39:02.665Z,8.5933,127.1984,10,4.4,96 km ENE of Barcelona Philippines -2023-12-07T00:46:30.224Z,8.9973,126.7508,16.406,5.4,49 km ENE of Aras-asan Philippines -2023-12-07T00:55:48.569Z,9.2141,127.1388,10,4.3,97 km ENE of Aras-asan Philippines -2023-12-07T01:53:23.099Z,8.399,126.6128,65.854,4.4,30 km E of Hinatuan Philippines -2023-12-07T01:58:27.986Z,9.0756,127.0331,10,4.6,82 km ENE of Aras-asan Philippines -2023-12-07T02:53:44.813Z,8.5138,126.9651,53.054,4.5,70 km NE of Barcelona Philippines -2023-12-07T04:45:46.856Z,8.7042,126.6965,49.809,5.1,45 km ESE of Marihatag Philippines -2023-12-07T05:41:08.590Z,8.8279,127.2111,10,4.5,99 km E of Aras-asan Philippines -2023-12-07T06:38:49.459Z,8.8293,126.7893,44.584,5.2,52 km E of Aras-asan Philippines -2023-12-07T06:42:39.234Z,8.6676,127.1733,10,4.4,97 km E of Marihatag Philippines -2023-12-07T07:09:57.531Z,8.7899,127.2137,10,4.3,99 km E of Aras-asan Philippines -2023-12-07T07:28:53.564Z,8.6191,126.8486,56.162,4.4,62 km ENE of Hinatuan Philippines -2023-12-07T11:27:52.882Z,8.4714,127.3702,10,4.5,108 km ENE of Barcelona Philippines -2023-12-07T12:40:32.795Z,8.7186,127.1754,10,4.4,96 km E of Aras-asan Philippines -2023-12-07T14:11:37.273Z,8.4433,126.5756,72.951,4.6,27 km ENE of Hinatuan Philippines -2023-12-07T15:08:37.998Z,8.507,126.7505,47.343,4.9,48 km ENE of Hinatuan Philippines -2023-12-07T16:06:49.531Z,9.5978,127.0683,10,4.5,102 km ENE of Cortes Philippines -2023-12-07T16:14:05.332Z,8.6944,127.2688,10,4.4,107 km ESE of Aras-asan Philippines -2023-12-07T16:38:48.801Z,8.373,126.471,81.471,4.2,15 km E of Hinatuan Philippines -2023-12-07T19:27:23.614Z,8.744,126.8486,45.89,4.5,61 km E of Marihatag Philippines -2023-12-07T22:12:04.468Z,8.8044,126.7075,67.397,4.3,44 km ESE of Aras-asan Philippines -2023-12-07T23:56:30.747Z,8.5529,127.3392,10,4.1,108 km ENE of Barcelona Philippines -2023-12-08T03:25:49.736Z,9.5093,126.4941,15.331,5.1,41 km NE of Cortes Philippines -2023-12-08T03:43:58.495Z,8.5956,127.1315,10,4.4,90 km ENE of Barcelona Philippines -2023-12-08T05:21:47.328Z,8.7506,127.225,10,4.5,101 km E of Aras-asan Philippines -2023-12-08T05:29:14.784Z,8.4747,126.9889,16.598,4.4,70 km ENE of Barcelona Philippines -2023-12-08T05:47:05.730Z,8.6382,126.4906,68.107,4.5,28 km SE of Marihatag Philippines -2023-12-08T05:54:15.605Z,8.7733,127.4838,10,4.6,129 km E of Aras-asan Philippines -2023-12-08T06:52:43.260Z,8.7458,127.2197,12.689,5,101 km E of Aras-asan Philippines -2023-12-08T08:11:15.438Z,8.7825,127.2812,10,4.4,107 km E of Aras-asan Philippines -2023-12-08T08:59:24.020Z,8.8466,127.3284,10,4.7,111 km E of Aras-asan Philippines -2023-12-08T09:26:53.243Z,8.5821,126.8213,63.524,4.4,58 km ENE of Hinatuan Philippines -2023-12-08T09:46:51.998Z,8.6608,127.1205,10,4.5,92 km E of Marihatag Philippines -2023-12-08T09:53:17.888Z,8.5901,127.4781,10,4.5,124 km ENE of Barcelona Philippines -2023-12-08T10:01:15.077Z,8.6897,127.0566,10,4.7,84 km E of Marihatag Philippines -2023-12-08T10:32:39.480Z,8.7897,126.8612,49.291,5.2,61 km E of Aras-asan Philippines -2023-12-08T11:32:15.254Z,8.8122,126.9302,54.744,4.9,68 km E of Aras-asan Philippines -2023-12-08T14:52:30.732Z,8.5326,127.1288,10,4.3,86 km ENE of Barcelona Philippines -2023-12-08T16:09:47.231Z,8.7513,126.8256,55.654,4.6,58 km E of Marihatag Philippines -2023-12-08T17:46:13.720Z,9.2544,127.2303,10,4.6,108 km ENE of Aras-asan Philippines -2023-12-08T17:51:14.418Z,9.0911,126.9802,10,4.6,76 km ENE of Aras-asan Philippines -2023-12-08T20:18:09.582Z,8.293,127.4591,10,4.7,113 km E of Barcelona Philippines -2023-12-08T20:34:40.498Z,9.0159,127.2037,10,4.2,99 km E of Aras-asan Philippines -2023-12-08T21:24:25.859Z,9.6202,126.8576,10,4.3,82 km ENE of Cortes Philippines -2023-12-08T21:54:20.787Z,9.4663,126.4817,38.403,4.4,38 km ENE of Cortes Philippines -2023-12-08T22:03:55.833Z,9.0745,126.6641,7.708,4.1,43 km ENE of Aras-asan Philippines -2023-12-08T22:13:34.565Z,9.4713,126.3856,26.288,4.4,30 km NE of Cortes Philippines -2023-12-09T00:04:43.521Z,8.6504,126.9781,37.632,4.2,76 km ESE of Marihatag Philippines -2023-12-09T02:38:44.603Z,8.7063,127.1388,10,4.5,93 km ESE of Aras-asan Philippines -2023-12-09T05:56:48.697Z,9.051,126.6986,58.988,4.5,46 km ENE of Aras-asan Philippines -2023-12-09T06:27:45.009Z,8.6364,126.8616,57.923,4.2,64 km ESE of Marihatag Philippines -2023-12-09T08:12:14.609Z,9.1608,126.6142,67.7,4.7,43 km ENE of La Paz Philippines -2023-12-09T08:45:55.756Z,9.2185,126.7816,45.364,4.4,62 km ENE of La Paz Philippines -2023-12-09T09:16:45.723Z,8.7733,127.3875,10,4.2,119 km E of Aras-asan Philippines -2023-12-09T09:37:26.486Z,8.4403,126.5743,72.221,4.7,27 km ENE of Hinatuan Philippines -2023-12-09T09:39:48.839Z,9.2883,125.9433,35,4.5,0 km N of Parang Philippines -2023-12-09T10:09:38.400Z,9.4686,126.4773,57.641,4.3,37 km ENE of Cortes Philippines -2023-12-09T10:14:33.172Z,9.5385,126.4792,42.705,4.4,42 km NE of Cortes Philippines -2023-12-09T10:33:22.611Z,8.2482,126.7122,52.836,4,32 km ENE of Barcelona Philippines -2023-12-09T10:37:54.355Z,8.4588,127.2569,10,4.5,96 km ENE of Barcelona Philippines -2023-12-09T13:20:35.130Z,9.2795,126.5035,55.544,4.6,34 km E of Cortes Philippines -2023-12-09T14:39:30.965Z,9.4103,126.4959,34.393,4.2,36 km ENE of Cortes Philippines -2023-12-09T17:28:29.779Z,8.849,126.8549,67.962,4.2,59 km E of Aras-asan Philippines -2023-12-09T22:31:21.391Z,8.4895,127.6891,10,4.6,142 km ENE of Barcelona Philippines -2023-12-09T23:59:01.264Z,8.4191,126.6676,51.636,4.6,37 km E of Hinatuan Philippines -2023-12-10T00:11:35.969Z,9.3528,126.4236,47.152,4.6,26 km ENE of Cortes Philippines -2023-12-10T01:01:38.191Z,9.2605,126.4429,41.596,4.5,27 km E of Cortes Philippines -2023-12-10T01:14:21.443Z,9.074,126.5863,43.965,4.3,36 km ENE of Bacolod Philippines -2023-12-10T03:31:06.809Z,8.4222,127.2197,10,4.5,91 km ENE of Barcelona Philippines -2023-12-10T05:15:51.310Z,8.5858,126.258,78.113,4.1,6 km NNE of Gamut Philippines -2023-12-10T06:22:43.216Z,8.7556,127.3956,10,4.3,120 km E of Aras-asan Philippines -2023-12-10T07:33:37.647Z,8.7097,126.2525,65.584,4.1,4 km E of Salvacion Philippines -2023-12-10T08:32:06.879Z,8.6547,127.0148,10,4.3,80 km ESE of Marihatag Philippines -2023-12-10T10:00:43.228Z,9.6103,126.5703,44.952,4.3,53 km ESE of Union Philippines -2023-12-10T10:35:50.395Z,10.0625,125.7485,85.352,4.7,17 km NNE of Cagdianao Philippines -2023-12-10T12:44:58.096Z,8.8225,126.7525,39.897,4.4,49 km E of Aras-asan Philippines -2023-12-10T17:46:07.214Z,7.9177,126.8763,33.159,4.9,43 km NE of Kinablangan Philippines -2023-12-10T17:48:50.571Z,8.0653,126.4982,69.608,4.4,9 km ENE of Lingig Philippines -2023-12-10T18:07:35.681Z,8.7042,127.32,10,4.5,112 km E of Aras-asan Philippines -2023-12-10T19:28:09.015Z,9.5164,126.7283,39.677,4.2,64 km ENE of Cortes Philippines -2023-12-10T22:49:38.279Z,8.7028,127.2892,10,4.4,109 km E of Aras-asan Philippines -2023-12-10T22:52:56.501Z,8.7373,127.2677,10,5.1,106 km E of Aras-asan Philippines -2023-12-10T23:10:43.013Z,8.641,127.282,10,4.5,107 km ENE of Barcelona Philippines -2023-12-10T23:18:00.908Z,8.7201,127.3417,10,4.6,114 km E of Aras-asan Philippines -2023-12-10T23:29:15.554Z,8.6511,127.2697,10,4.5,106 km ENE of Barcelona Philippines -2023-12-11T00:45:01.415Z,8.8229,126.9288,10,4.6,68 km E of Aras-asan Philippines -2023-12-11T01:15:38.374Z,8.9146,127.3104,10,4.2,109 km E of Aras-asan Philippines -2023-12-11T01:55:10.236Z,8.7595,127.2681,10,4.7,106 km E of Aras-asan Philippines -2023-12-11T03:48:08.285Z,9.5142,126.1552,85.047,4.8,23 km ESE of Socorro Philippines -2023-12-11T03:48:59.925Z,9.2079,126.0098,10,4.7,2 km SSW of Carmen Philippines -2023-12-11T08:03:00.611Z,8.1267,127.1801,26.551,4.5,82 km E of Barcelona Philippines -2023-12-11T10:55:39.135Z,8.5394,126.7894,57.925,4.7,53 km ENE of Hinatuan Philippines -2023-12-11T11:21:23.114Z,8.4853,127.5228,10,4.3,125 km ENE of Barcelona Philippines -2023-12-11T11:56:29.953Z,8.5209,127.2056,10,4.5,93 km ENE of Barcelona Philippines -2023-12-11T11:57:46.418Z,8.4991,127.2645,10,4.6,98 km ENE of Barcelona Philippines -2023-12-11T13:09:18.385Z,9.4401,126.475,49.119,4.6,35 km ENE of Cortes Philippines -2023-12-11T13:52:31.268Z,9.1178,126.9961,10,4.8,79 km ENE of Aras-asan Philippines -2023-12-11T21:48:03.871Z,8.5433,126.8214,55.178,4.6,56 km ENE of Hinatuan Philippines -2023-12-11T22:01:24.720Z,8.5607,126.918,57.08,4.5,67 km ENE of Hinatuan Philippines -2023-12-11T22:13:39.471Z,8.5702,126.7702,35,4.4,52 km ENE of Hinatuan Philippines -2023-12-11T23:22:53.252Z,8.5333,127.093,10,4.5,83 km ENE of Barcelona Philippines -2023-12-11T23:43:16.165Z,8.5062,127.106,10,5,83 km ENE of Barcelona Philippines -2023-12-12T01:48:05.737Z,8.6145,126.5809,43.959,4.5,37 km SE of Marihatag Philippines -2023-12-12T03:06:39.608Z,8.8298,126.803,35,5,54 km E of Aras-asan Philippines -2023-12-12T03:11:15.185Z,8.7099,126.769,35,4.9,53 km ESE of Marihatag Philippines -2023-12-12T06:22:14.116Z,9.6304,126.4748,40.289,4.6,42 km ESE of Union Philippines -2023-12-12T08:17:52.360Z,8.4165,126.5584,70.563,4.8,25 km E of Hinatuan Philippines -2023-12-12T13:58:24.440Z,8.5843,126.6104,42.549,5.1,38 km NE of Hinatuan Philippines -2023-12-12T16:07:14.370Z,9.7129,126.4653,53.542,4.7,39 km E of Union Philippines -2023-12-12T16:18:53.544Z,8.4486,126.9093,35,4.7,61 km ENE of Barcelona Philippines -2023-12-12T16:20:59.500Z,8.5697,127.1574,10,4.7,91 km ENE of Barcelona Philippines -2023-12-12T16:24:17.233Z,8.552,127.1354,10,4.7,88 km ENE of Barcelona Philippines -2023-12-12T17:49:47.725Z,8.404,126.8793,36.009,4.6,56 km ENE of Barcelona Philippines -2023-12-12T18:10:28.267Z,8.4228,126.5154,50.12,4.4,20 km ENE of Hinatuan Philippines -2023-12-12T18:44:13.669Z,8.4449,126.5995,47.7,4.3,30 km ENE of Hinatuan Philippines -2023-12-12T20:09:20.643Z,8.4992,126.9133,30.217,4.3,64 km NE of Barcelona Philippines -2023-12-12T21:42:52.369Z,8.6012,126.3144,70.017,4.6,11 km NE of Gamut Philippines -2023-12-13T01:53:39.184Z,9.4553,126.8036,10,4.2,70 km ENE of Cortes Philippines -2023-12-13T05:41:37.019Z,8.5888,126.8476,60.105,4.2,61 km ENE of Hinatuan Philippines -2023-12-13T13:04:23.948Z,8.7002,126.3818,54.102,4.5,14 km SE of Marihatag Philippines -2023-12-13T13:36:07.848Z,8.4829,126.7213,57.236,4.5,44 km ENE of Hinatuan Philippines -2023-12-13T14:17:12.376Z,8.5659,127.0131,18.252,4.5,77 km ENE of Hinatuan Philippines -2023-12-13T16:15:55.153Z,8.3574,126.5649,83.181,4.3,25 km E of Hinatuan Philippines -2023-12-13T19:45:13.567Z,13.5244,125.7742,10,4.5,123 km NE of Cabodiongan Philippines -2023-12-14T00:43:45.809Z,11.2092,126.1081,10,4.6,43 km NE of Sulangan Philippines -2023-12-14T03:36:31.407Z,8.5788,127.3464,10,4.7,110 km ENE of Barcelona Philippines -2023-12-14T05:12:31.464Z,8.6424,127.3509,10,4.1,114 km ENE of Barcelona Philippines -2023-12-14T05:26:40.338Z,8.5298,127.1316,10,4.9,87 km ENE of Barcelona Philippines -2023-12-14T05:33:22.291Z,8.6398,127.1535,10,4.6,94 km ENE of Hinatuan Philippines -2023-12-14T05:44:17.912Z,8.5653,127.2353,10,4.3,99 km ENE of Barcelona Philippines -2023-12-14T05:55:16.798Z,8.5645,127.1447,10,4.6,90 km ENE of Barcelona Philippines -2023-12-14T06:05:15.358Z,8.6274,127.2367,10,4.3,102 km ENE of Barcelona Philippines -2023-12-14T07:53:39.872Z,8.4227,127.3162,10,4.4,101 km ENE of Barcelona Philippines -2023-12-14T10:42:54.056Z,8.288,126.8111,68.016,4.7,43 km ENE of Barcelona Philippines -2023-12-14T10:48:21.599Z,8.6396,127.4289,10,4.4,121 km ENE of Barcelona Philippines -2023-12-14T10:49:34.022Z,8.4874,127.0771,10,4.2,79 km ENE of Barcelona Philippines -2023-12-14T11:39:12.655Z,8.3569,126.74,80.313,4.4,40 km ENE of Barcelona Philippines -2023-12-14T11:46:00.006Z,8.3472,126.7989,55.636,4.8,45 km ENE of Barcelona Philippines -2023-12-14T11:54:00.342Z,8.2634,126.8372,64.073,4.7,45 km ENE of Barcelona Philippines -2023-12-14T13:27:19.228Z,8.9749,126.623,36.736,4.8,35 km ENE of Aras-asan Philippines -2023-12-14T15:33:27.499Z,8.5631,127.4101,10,4.5,116 km ENE of Barcelona Philippines -2023-12-14T16:42:52.757Z,8.5399,126.9063,33.092,4.1,65 km ENE of Hinatuan Philippines -2023-12-14T22:05:05.034Z,9.3475,126.4703,38.457,4.6,31 km ENE of Cortes Philippines -2023-12-14T22:44:01.774Z,8.7494,127.3747,10,4.7,117 km E of Aras-asan Philippines -2023-12-14T23:03:34.370Z,8.5153,127.2134,10,4.3,94 km ENE of Barcelona Philippines -2023-12-14T23:10:27.827Z,8.6554,127.5069,10,4.4,130 km ENE of Barcelona Philippines -2023-12-15T04:30:32.259Z,8.865,127.3012,10,4.7,108 km E of Aras-asan Philippines -2023-12-15T04:42:46.554Z,8.8131,127.2448,10,4.6,103 km E of Aras-asan Philippines -2023-12-15T13:43:03.716Z,8.4573,127.0973,10,4.7,80 km ENE of Barcelona Philippines -2023-12-15T14:49:37.478Z,8.5306,126.5542,48.932,4.2,29 km NE of Hinatuan Philippines -2023-12-15T15:40:21.601Z,8.8205,127.3538,10,4.7,114 km E of Aras-asan Philippines -2023-12-15T16:05:28.112Z,8.799,127.315,10,4.9,110 km E of Aras-asan Philippines -2023-12-15T16:35:10.364Z,8.8511,127.4226,10,4.9,122 km E of Aras-asan Philippines -2023-12-15T20:29:34.527Z,8.5677,126.6865,66.683,4.2,44 km ENE of Hinatuan Philippines -2023-12-15T21:32:14.046Z,8.0456,126.787,74.036,4.6,38 km E of Santa Maria Philippines -2023-12-15T22:28:31.343Z,8.9007,127.2847,10,4.4,107 km E of Aras-asan Philippines -2023-12-16T00:12:12.386Z,8.487,126.8695,39.986,4.5,60 km NE of Barcelona Philippines -2023-12-16T03:12:39.806Z,8.7882,127.4494,10,4.5,125 km E of Aras-asan Philippines -2023-12-16T05:36:09.404Z,8.3563,126.5701,57.9,4.2,26 km E of Hinatuan Philippines -2023-12-16T06:56:39.084Z,8.5473,126.841,18.648,4.3,59 km ENE of Hinatuan Philippines -2023-12-16T08:10:01.921Z,10.7195,126.1276,66.044,4.7,40 km SE of Sulangan Philippines -2023-12-16T09:12:51.073Z,8.396,126.5152,72.284,4.6,20 km E of Hinatuan Philippines -2023-12-16T09:38:33.711Z,8.8299,126.6189,60.853,4.3,34 km E of Aras-asan Philippines -2023-12-16T11:43:33.215Z,8.9645,127.1634,10,4.8,94 km E of Aras-asan Philippines -2023-12-16T23:43:23.520Z,8.44,126.3825,75.074,4.5,9 km NE of Hinatuan Philippines -2023-12-17T08:18:57.525Z,8.1747,126.7162,77.764,4.4,31 km E of Barcelona Philippines -2023-12-17T08:23:05.008Z,8.2689,127.2262,10,4.1,88 km E of Barcelona Philippines -2023-12-17T10:58:14.395Z,7.9923,127.0487,59.141,4.9,64 km ENE of Kinablangan Philippines -2023-12-17T20:32:04.823Z,9.0473,126.9297,10,4.2,70 km ENE of Aras-asan Philippines -2023-12-17T20:33:09.689Z,8.8902,126.8702,26.334,4.6,61 km E of Aras-asan Philippines -2023-12-17T21:16:16.135Z,8.3856,126.8845,35.296,4.4,55 km ENE of Barcelona Philippines -2023-12-18T00:23:16.582Z,8.8997,126.6376,60.88,4.2,35 km E of Aras-asan Philippines -2023-12-18T01:37:21.559Z,8.0714,127.3644,10,4,99 km ENE of Kinablangan Philippines -2023-12-18T03:58:59.547Z,8.818,127.2945,10,4.6,108 km E of Aras-asan Philippines -2023-12-18T11:12:37.366Z,8.8629,127.3732,10,4.9,116 km E of Aras-asan Philippines -2023-12-18T12:12:57.368Z,9.3876,126.6691,38.559,4.6,53 km ENE of Cortes Philippines -2023-12-18T15:50:09.090Z,8.9741,126.7375,35,4.6,47 km ENE of Aras-asan Philippines -2023-12-18T16:28:01.843Z,8.6814,126.3387,81.638,4.4,14 km SSE of Marihatag Philippines -2023-12-19T06:51:13.487Z,9.2499,125.8414,10,4.8,11 km WSW of Parang Philippines -2023-12-19T07:16:15.126Z,8.2814,126.4332,10,4.9,10 km E of Tidman Philippines -2023-12-19T08:14:14.444Z,8.3958,126.7399,43.076,4.9,42 km NE of Barcelona Philippines -2023-12-19T08:37:41.284Z,8.6703,127.2214,10,4.3,102 km E of Marihatag Philippines -2023-12-20T01:45:01.277Z,8.6381,126.9927,10,4.2,78 km ENE of Hinatuan Philippines -2023-12-20T05:14:42.407Z,8.6648,127.3096,10,4.5,111 km ENE of Barcelona Philippines -2023-12-20T06:56:08.275Z,8.5636,127.3899,10,4.7,114 km ENE of Barcelona Philippines -2023-12-21T01:17:56.902Z,8.3519,127.1483,10,4.5,81 km ENE of Barcelona Philippines -2023-12-21T02:21:17.804Z,8.114,126.3279,92.947,4.1,11 km S of Bislig Philippines -2023-12-21T09:06:32.114Z,8.5832,127.4205,10,4.6,118 km ENE of Barcelona Philippines -2023-12-21T15:40:47.636Z,13.6077,122.307,41.368,4.6,2 km NW of Catanauan Philippines -2023-12-21T17:25:55.853Z,8.892,127.0558,10,4.6,81 km E of Aras-asan Philippines -2023-12-21T19:30:59.648Z,8.5716,127.3598,10,4.5,111 km ENE of Barcelona Philippines -2023-12-21T21:20:17.210Z,8.9034,127.1686,10,4.2,94 km E of Aras-asan Philippines -2023-12-22T11:01:52.091Z,8.4842,126.9097,35,4.2,63 km NE of Barcelona Philippines -2023-12-22T11:28:37.439Z,8.5479,127.1806,10,4.9,92 km ENE of Barcelona Philippines -2023-12-22T11:31:50.835Z,8.6207,126.5681,59.333,4.4,36 km SE of Marihatag Philippines -2023-12-22T19:07:09.958Z,8.4298,126.9646,43.686,4.5,65 km ENE of Barcelona Philippines -2023-12-23T00:50:02.409Z,8.5673,126.1773,88.744,4.1,6 km WNW of Unidad Philippines -2023-12-23T11:18:24.445Z,8.8867,127.2548,10,4.3,103 km E of Aras-asan Philippines -2023-12-23T14:22:26.625Z,8.1936,126.7418,41.829,5.1,34 km E of Barcelona Philippines -2023-12-23T16:38:34.934Z,8.8625,126.8234,35,5.2,56 km E of Aras-asan Philippines -2023-12-24T02:02:51.931Z,8.5627,126.8172,37.658,4.6,57 km ENE of Hinatuan Philippines -2023-12-24T02:20:44.377Z,8.2927,127.0403,57.029,5.3,68 km ENE of Barcelona Philippines -2023-12-24T02:28:06.868Z,8.1184,126.6391,71.685,4.6,23 km ESE of Barcelona Philippines -2023-12-24T03:02:06.352Z,8.5352,126.5233,51.097,5.1,27 km NE of Hinatuan Philippines -2023-12-24T08:51:57.825Z,8.4638,126.3708,64.772,4.7,10 km NNE of Hinatuan Philippines -2023-12-25T00:10:29.813Z,8.7511,127.3901,10,4.4,119 km E of Aras-asan Philippines -2023-12-25T03:21:05.599Z,9.2851,126.6053,35,4.2,45 km E of Cortes Philippines -2023-12-25T07:19:26.506Z,8.997,127.2369,10,4.5,102 km E of Aras-asan Philippines -2023-12-25T14:45:38.593Z,8.4007,126.3155,94.234,4.5,3 km NNW of Hinatuan Philippines -2023-12-25T22:16:27.881Z,8.5093,127.1231,10,4.5,85 km ENE of Barcelona Philippines -2023-12-26T03:42:51.774Z,8.5556,126.5972,89.342,4.1,35 km NE of Hinatuan Philippines -2023-12-26T10:20:27.825Z,8.4863,126.9279,58.852,4.8,65 km ENE of Barcelona Philippines -2023-12-27T13:17:16.404Z,8.8827,126.2602,10,4.4,5 km W of Aras-asan Philippines -2023-12-27T15:31:19.124Z,8.8522,127.7701,10,4.3,160 km E of Aras-asan Philippines -2023-12-27T17:57:31.412Z,11.1524,125.8418,47.332,4,18 km NE of Guiuan Philippines -2023-12-28T14:17:50.308Z,11.6982,124.3946,10,4.6,8 km W of Tucdao Philippines -2023-12-28T15:48:33.019Z,8.5588,126.4999,51.88,5,27 km NE of Hinatuan Philippines -2023-12-28T16:10:27.756Z,8.3648,127.1915,10,4.5,86 km ENE of Barcelona Philippines -2023-12-28T18:27:28.843Z,8.3548,126.2781,79.396,4.4,4 km N of Bigaan Philippines -2023-12-28T20:35:56.817Z,9.2977,126.8191,10,4.5,69 km E of Cortes Philippines -2023-12-30T10:45:18.788Z,11.7844,124.7993,9.608,4.5,6 km SW of Silanga Philippines -2023-12-30T19:29:41.325Z,8.577,127.1346,10,4.3,89 km ENE of Barcelona Philippines -2023-12-31T00:23:43.953Z,8.9434,126.4849,60.612,4.4,20 km ENE of Aras-asan Philippines -2023-12-31T00:53:05.180Z,8.6464,126.7683,62.659,4.2,54 km ESE of Marihatag Philippines -2023-12-31T03:22:56.282Z,9.3051,126.2038,10,4.4,3 km NNE of Cortes Philippines -2023-12-31T08:48:30.638Z,8.7458,126.6424,40.766,4.2,38 km E of Marihatag Philippines -2023-12-31T17:00:47.300Z,9.6916,125.4144,10,4.6,7 km SW of Mati Philippines -2024-01-01T03:58:30.343Z,8.9147,127.4797,10,4.1,128 km E of Aras-asan Philippines -2024-01-02T02:49:31.315Z,8.8429,127.2178,10,4.6,99 km E of Aras-asan Philippines -2024-01-03T01:11:31.461Z,8.3515,126.5376,76.597,5,22 km E of Hinatuan Philippines -2024-01-03T15:01:05.862Z,10.0148,126.0296,78.347,4.4,1 km WSW of Santa Monica Philippines -2024-01-04T07:32:22.215Z,8.3869,126.5607,84.702,4.7,25 km E of Hinatuan Philippines -2024-01-05T00:45:34.465Z,8.7194,124.3214,9.973,4.3,16 km NW of Gitagum Philippines -2024-01-05T02:57:28.798Z,10.991,125.4677,95.259,4.4,14 km S of Giporlos Philippines -2024-01-06T12:38:10.094Z,8.9737,126.4849,43.529,4,21 km ENE of Aras-asan Philippines -2024-01-06T17:03:10.110Z,8.8884,127.07,10,4.5,83 km E of Aras-asan Philippines -2024-01-07T00:05:13.360Z,8.1321,126.9585,35,4.6,57 km E of Barcelona Philippines -2024-01-08T02:27:42.033Z,12.3343,123.9387,10,4.5,17 km NE of Miaga Philippines -2024-01-08T06:46:36.353Z,10.1142,125.0215,10,4.5,5 km SSE of Malitbog Philippines -2024-01-08T13:30:57.048Z,8.4136,126.3334,78.64,4.4,4 km N of Hinatuan Philippines -2024-01-10T02:09:46.350Z,8.49,127.3718,10,4.1,109 km ENE of Barcelona Philippines -2024-01-10T20:08:26.753Z,8.7981,127.1469,10,4.4,92 km E of Aras-asan Philippines -2024-01-12T05:12:24.468Z,8.9392,126.6842,85.259,4.5,41 km E of Aras-asan Philippines -2024-01-12T09:47:59.241Z,8.4178,126.7185,36.541,4.7,42 km NE of Barcelona Philippines -2024-01-12T18:04:40.497Z,8.5025,126.7873,62.826,4.6,51 km ENE of Hinatuan Philippines -2024-01-13T11:07:55.696Z,11.8975,124.785,9.584,4.4,4 km E of Tarangnan Philippines -2024-01-15T11:31:25.572Z,8.4334,126.3668,78.052,4.8,7 km NNE of Hinatuan Philippines -2024-01-17T12:32:01.191Z,8.558,126.5225,39,5.6,29 km NE of Hinatuan Philippines -2024-01-18T01:33:27.633Z,8.5946,127.3913,10,4.6,115 km ENE of Barcelona Philippines -2024-01-18T02:41:38.888Z,8.556,127.2993,10,4.4,104 km ENE of Barcelona Philippines -2024-01-18T07:42:08.934Z,8.4092,126.4898,77.42,4.4,17 km ENE of Hinatuan Philippines -2024-01-18T15:57:34.167Z,8.5281,127.0422,35,4.7,78 km ENE of Barcelona Philippines -2024-01-19T15:38:23.913Z,8.715,126.1156,99.27,4.3,9 km NNE of Lianga Philippines -2024-01-19T17:23:27.976Z,9.2532,126.8296,10,4.4,69 km ENE of La Paz Philippines -2024-01-19T20:21:51.554Z,11.2289,125.6322,68.505,4.5,9 km NNW of Salcedo Philippines -2024-01-19T22:11:03.632Z,8.2971,126.9973,91.479,4.4,63 km ENE of Barcelona Philippines -2024-01-20T08:05:03.683Z,13.6364,120.8311,52.556,4.9,5 km WSW of Tingloy Philippines -2024-01-20T10:34:29.416Z,7.897,126.564,71.715,4.3,16 km SE of Santa Maria Philippines -2024-01-21T19:33:21.826Z,13.7349,120.7579,193.001,4.4,13 km SSE of Hukay Philippines -2024-01-22T01:19:29.937Z,11.2948,126.0557,10,4.7,45 km ENE of Salcedo Philippines -2024-01-22T07:54:03.284Z,9.1339,126.104,54.306,4.6,6 km WNW of Buenavista Philippines -2024-01-24T02:38:21.868Z,12.7307,125.4334,10,4.2,32 km NE of Cabatuan Philippines -2024-01-26T21:58:33.358Z,8.5173,127.2601,10,4.3,99 km ENE of Barcelona Philippines -2024-01-27T19:05:24.341Z,8.4057,126.8384,53.62,4.5,52 km ENE of Barcelona Philippines -2024-01-27T19:32:35.061Z,11.0222,124.9626,207.714,4.3,2 km S of Tabontabon Philippines -2024-01-27T22:42:55.461Z,8.5022,126.2752,58.422,4.1,4 km SE of Gamut Philippines -2024-01-28T04:01:04.580Z,11.864,124.8575,114.12,4.3,5 km NNE of Silanga Philippines -2024-01-29T07:26:07.440Z,9.0984,125.8595,10,4.3,17 km NNW of San Miguel Philippines -2024-01-29T07:37:21.407Z,8.4722,127.445,10,5.1,116 km ENE of Barcelona Philippines -2024-01-30T06:47:46.247Z,8.8001,126.7652,68.689,4.6,50 km E of Aras-asan Philippines -2024-01-30T08:42:13.730Z,8.8598,127.3827,10,4.3,117 km E of Aras-asan Philippines -2024-01-30T16:12:57.956Z,8.3438,126.8234,36.943,4.3,47 km ENE of Barcelona Philippines -2024-01-31T20:46:48.797Z,13.5357,120.586,77.66,4.8,18 km WNW of Abra de Ilog Philippines -2024-02-01T21:35:39.226Z,8.1667,126.9026,62.522,5.1,51 km E of Barcelona Philippines -2024-02-02T07:12:18.846Z,8.1265,126.576,81.854,4.1,16 km ESE of Barcelona Philippines -2024-02-02T16:38:47.151Z,8.8994,126.3266,81.554,4.8,2 km NE of Aras-asan Philippines -2024-02-02T20:12:55.311Z,8.005,126.8007,84.118,4.3,39 km E of Santa Maria Philippines -2024-02-02T20:19:41.913Z,8.014,126.9641,60.425,4.5,57 km E of Santa Maria Philippines -2024-02-02T20:49:21.225Z,7.9432,126.8955,67.471,4.4,47 km NE of Kinablangan Philippines -2024-02-03T00:59:12.748Z,8.0581,126.4746,87.19,4.4,7 km ENE of Lingig Philippines -2024-02-03T03:51:46.967Z,7.6401,126.5091,95.103,4.3,7 km SW of Kinablangan Philippines -2024-02-03T05:06:01.971Z,8.7713,126.1891,84.87,4.4,6 km NNW of Salvacion Philippines -2024-02-03T06:01:51.904Z,8.8808,126.2261,83.194,4.3,8 km SW of Bacolod Philippines -2024-02-03T22:37:44.109Z,8.717,126.5011,70.09,4.4,24 km ESE of Marihatag Philippines -2024-02-04T18:35:31.633Z,8.6311,127.0254,10,4.1,81 km ENE of Hinatuan Philippines -2024-02-05T06:39:27.190Z,8.7119,126.2322,82.182,4.3,2 km E of Salvacion Philippines -2024-02-06T14:37:56.409Z,8.9318,126.2817,52.252,5.1,0 km W of Bacolod Philippines -2024-02-07T00:09:44.138Z,8.0942,127.068,35,4.5,69 km E of Santa Maria Philippines -2024-02-07T02:44:57.369Z,8.8778,126.7356,65.508,5,46 km E of Aras-asan Philippines -2024-02-07T02:52:47.034Z,8.472,127.0065,10,4.6,71 km ENE of Barcelona Philippines -2024-02-07T02:57:04.102Z,8.7759,126.7802,80.855,5,53 km ESE of Aras-asan Philippines -2024-02-07T05:46:57.133Z,8.8809,126.8952,49.686,4.5,64 km E of Aras-asan Philippines -2024-02-07T20:09:44.771Z,9.6258,126.3495,64.382,4.7,29 km ESE of Union Philippines -2024-02-08T01:26:34.266Z,9.5571,126.5322,107.136,4.4,48 km NE of Cortes Philippines -2024-02-09T04:19:38.004Z,7.8579,126.7665,83.392,4.5,30 km NE of Kinablangan Philippines -2024-02-10T03:22:06.930Z,8.6822,125.568,32,5.8,8 km W of Esperanza Philippines -2024-02-10T05:21:35.429Z,8.6931,125.6903,50.159,5.4,1 km NNW of Salvacion Philippines -2024-02-10T06:20:05.247Z,8.5045,126.4014,82.863,4.3,16 km NNE of Hinatuan Philippines -2024-02-10T09:21:10.423Z,12.7803,124.9854,34.991,4.5,14 km NNW of Cabodiongan Philippines -2024-02-11T08:00:24.023Z,9.9979,126.0261,71.052,4.3,2 km SSW of Santa Monica Philippines -2024-02-11T21:30:12.041Z,13.8072,125.0023,10,4.8,66 km E of Gigmoto Philippines -2024-02-12T02:03:06.309Z,9.7195,126.7002,35,5.3,64 km E of Union Philippines -2024-02-12T15:31:23.843Z,9.9444,126.2058,45.473,4.7,14 km NE of Pilar Philippines -2024-02-13T09:00:13.305Z,8.6127,126.6121,35,4.9,40 km NE of Hinatuan Philippines -2024-02-13T17:43:05.863Z,9.1558,126.2478,10,4.8,9 km ESE of Mabahin Philippines -2024-02-14T07:21:15.491Z,11.846,125.5323,44.177,4.9,9 km ENE of Sulat Philippines -2024-02-14T07:59:36.297Z,8.3934,126.5243,64.396,4.8,21 km E of Hinatuan Philippines -2024-02-14T18:41:57.283Z,9.0536,126.1183,10.802,4.5,7 km NW of Gamut Philippines -2024-02-15T18:53:02.261Z,8.7862,126.2842,36.963,4.6,2 km SSW of Marihatag Philippines -2024-02-15T22:45:22.227Z,6.9967,125.7293,535.905,4.1,8 km SSE of Samal Philippines -2024-02-15T23:58:08.467Z,8.7804,126.399,59.487,4.5,11 km ESE of Marihatag Philippines -2024-02-16T19:41:03.601Z,8.6886,127.1451,10,4.5,94 km E of Marihatag Philippines -2024-02-18T11:48:09.745Z,9.3253,125.818,126.612,4.5,12 km W of Panikian Philippines -2024-02-18T22:54:41.399Z,9.8946,126.0799,56.414,4.4,3 km NNW of Pilar Philippines -2024-02-21T15:22:20.751Z,8.5335,126.4698,63.817,4.4,23 km NE of Hinatuan Philippines -2024-02-22T11:43:16.478Z,9.0625,126.225,72.826,4.9,3 km ESE of Tandag Philippines -2024-02-22T21:00:42.082Z,13.5897,120.7964,148.207,4.2,11 km SW of Tingloy Philippines -2024-02-24T10:19:32.411Z,8.3208,126.5814,83.089,4.3,24 km NE of Barcelona Philippines -2024-02-24T18:28:58.096Z,11.7482,125.1678,93.893,4.5,15 km SE of Tutubigan Philippines -2024-02-24T18:47:42.689Z,12.0373,124.9654,75.122,4.9,6 km WSW of San Jose de Buan Philippines -2024-02-25T06:14:12.768Z,12.0053,124.9656,66.754,4.5,8 km SW of San Jose de Buan Philippines -2024-02-26T03:40:53.276Z,9.0238,126.2736,76.07,4.9,4 km NNE of La Paz Philippines -2024-02-26T07:52:50.525Z,8.4709,126.8878,35,4.4,60 km NE of Barcelona Philippines -2024-02-27T08:00:33.792Z,8.8378,126.6748,62.644,4.4,40 km E of Aras-asan Philippines -2024-02-27T08:22:50.939Z,8.7383,126.2421,51.437,4.6,4 km NE of Salvacion Philippines -2024-02-27T16:58:08.280Z,8.8738,127.1078,10,4.3,87 km E of Aras-asan Philippines -2024-02-28T06:48:47.023Z,8.0002,126.9703,48.651,4.5,57 km NE of Kinablangan Philippines -2024-02-28T08:49:54.851Z,8.4864,126.5074,68.173,4.1,22 km ENE of Hinatuan Philippines -2024-02-28T19:58:19.948Z,8.9165,127.0005,10,4.3,75 km E of Aras-asan Philippines -2024-02-29T00:10:12.174Z,8.8465,126.8221,14.569,5.1,56 km E of Aras-asan Philippines -2024-02-29T00:23:58.202Z,8.8593,126.7364,18,5.4,46 km E of Aras-asan Philippines -2024-02-29T01:05:37.808Z,8.8143,126.2835,73.607,4.8,1 km WNW of Marihatag Philippines -2024-02-29T01:40:37.220Z,8.827,126.9349,10,4.9,68 km E of Aras-asan Philippines -2024-02-29T17:18:50.560Z,8.784,126.9381,35,4.6,69 km E of Aras-asan Philippines -2024-02-29T17:25:02.762Z,8.8045,126.8252,35,4.8,57 km E of Aras-asan Philippines -2024-03-01T00:55:48.332Z,8.8363,126.8581,35,4.5,60 km E of Aras-asan Philippines -2024-03-01T06:47:40.869Z,8.7206,126.7062,62.33,4.4,46 km ESE of Marihatag Philippines -2024-03-01T09:29:02.868Z,8.8616,126.74,42.374,5.4,47 km E of Aras-asan Philippines -2024-03-01T17:35:43.580Z,9.0558,126.6771,45.162,4.6,44 km ENE of Aras-asan Philippines -2024-03-02T05:09:48.606Z,8.8568,126.9154,10,4.6,66 km E of Aras-asan Philippines -2024-03-02T09:06:55.720Z,7.3398,124.7203,12.919,4.3,8 km WSW of Liliongan Philippines -2024-03-03T08:50:16.760Z,13.3464,120.3169,35,4.6,17 km SW of Harrison Philippines -2024-03-03T18:51:08.452Z,8.667,126.362,71.008,4.5,16 km SSE of Marihatag Philippines -2024-03-04T01:00:14.618Z,13.1206,124.9139,35,4.4,52 km NNW of Cabodiongan Philippines -2024-03-04T13:59:07.173Z,7.0711,123.6493,34.812,4.6,48 km SSE of Malim Philippines -2024-03-06T07:29:24.614Z,9.0033,125.7451,101.662,4.4,10 km E of Anticala Philippines -2024-03-06T09:19:14.302Z,8.7924,126.8512,54.134,4.4,60 km E of Aras-asan Philippines -2024-03-06T16:54:45.879Z,8.6433,126.9002,35,4.4,68 km ESE of Marihatag Philippines -2024-03-06T20:08:10.178Z,8.6784,126.3063,81.679,4.8,11 km ESE of Salvacion Philippines -2024-03-06T20:19:43.489Z,7.9178,126.9181,42.632,5,47 km ENE of Kinablangan Philippines -2024-03-06T21:39:28.512Z,7.8963,127.1014,13.012,5,64 km ENE of Kinablangan Philippines -2024-03-08T04:50:37.432Z,9.3486,125.4136,10,4.4,11 km W of Jabonga Philippines -2024-03-13T13:16:35.743Z,8.3696,126.4952,63.776,4.2,17 km E of Hinatuan Philippines -2024-03-13T17:40:25.311Z,9.08,126.1078,59.826,4.5,6 km WSW of Buenavista Philippines -2024-03-14T22:52:29.577Z,8.5774,126.9006,57.107,4.7,66 km ENE of Hinatuan Philippines -2024-03-14T23:31:31.496Z,8.9576,127.2282,10,4.8,101 km E of Aras-asan Philippines -2024-03-15T16:40:03.499Z,9.7726,122.4649,10,4.6,2 km NNW of Cabadiangan Philippines -2024-03-16T12:28:22.165Z,9.4707,126.0399,66.958,4.5,14 km NE of Carrascal Philippines -2024-03-16T13:07:16.190Z,9.0106,127.7603,10,4.5,159 km E of Aras-asan Philippines -2024-03-17T20:12:23.090Z,8.163,127.3514,10,4.3,101 km E of Barcelona Philippines -2024-03-17T22:02:14.877Z,8.5808,126.9207,48.799,4.4,68 km ENE of Hinatuan Philippines -2024-03-18T05:11:55.635Z,11.9462,125.5867,35,4.5,15 km SE of Dolores Philippines -2024-03-20T20:02:31.652Z,13.7171,120.6148,198.284,4.3,12 km S of Calatagan Philippines -2024-03-23T15:00:48.659Z,8.3234,126.5372,74.005,4.2,21 km NNE of Barcelona Philippines -2024-03-23T18:47:00.268Z,8.4411,127.1244,10,4.4,82 km ENE of Barcelona Philippines -2024-03-24T06:22:24.947Z,8.7566,126.3895,59.621,5.2,11 km ESE of Marihatag Philippines -2024-03-25T21:20:35.256Z,8.5867,127.1755,10,4.2,94 km ENE of Barcelona Philippines -2024-03-26T07:41:55.831Z,9.0204,126.3494,33.211,4.5,10 km ENE of La Paz Philippines -2024-03-27T03:53:06.269Z,9.9368,125.7165,81.668,4.4,5 km ENE of Cagdianao Philippines -2024-03-28T00:38:55.839Z,8.9764,126.2569,77.029,3.9,1 km SW of La Paz Philippines -2024-03-30T13:43:10.482Z,8.9096,126.6492,51.85,4.5,37 km E of Aras-asan Philippines -2024-03-31T08:00:30.355Z,13.2325,120.6032,10,4.9,1 km NE of Mamburao Philippines -2024-03-31T11:04:27.717Z,13.3395,120.6472,24.816,4.7,1 km WNW of Cabacao Philippines -2024-03-31T15:57:19.323Z,8.7719,126.2523,61.716,4.3,6 km SW of Marihatag Philippines -2024-03-31T21:16:43.754Z,8.3237,126.5627,52.108,4.9,23 km NE of Barcelona Philippines -2024-04-02T09:10:37.434Z,11.1015,126.3882,10,4.6,64 km ENE of Sulangan Philippines -2024-04-03T04:51:22.460Z,8.5051,126.6773,67.064,5.1,40 km ENE of Hinatuan Philippines -2024-04-03T05:45:13.195Z,8.4565,126.6965,70.39,4.9,40 km ENE of Hinatuan Philippines -2024-04-03T12:14:24.688Z,8.4477,126.5834,67.524,4.4,28 km ENE of Hinatuan Philippines -2024-04-08T04:37:39.208Z,12.3285,120.909,10,4.4,13 km SW of San Agustin Philippines -2024-04-08T13:57:41.058Z,13.8251,120.6059,129.717,4.5,2 km WSW of Calatagan Philippines -2024-04-08T15:56:22.005Z,8.7738,126.4739,70.245,4.6,19 km E of Marihatag Philippines -2024-04-09T10:25:40.288Z,8.1692,126.3589,90.902,4.3,6 km SE of Bislig Philippines -2024-04-09T12:51:06.083Z,8.5001,126.9504,37.645,4.4,68 km ENE of Barcelona Philippines -2024-04-10T06:54:32.424Z,11.6237,125.1882,87.604,4.5,18 km E of Calbiga Philippines -2024-04-10T16:20:17.869Z,11.8705,125.841,9.55,5.2,42 km E of Sulat Philippines -2024-04-11T03:33:57.207Z,7.6449,126.1637,10,5.2,5 km NE of Bantacan Philippines -2024-04-12T00:02:24.682Z,8.5262,122.9545,10,4.5,11 km NW of Ponot Philippines -2024-04-12T20:57:11.077Z,11.8994,126.04,10,4.3,62 km ESE of Dolores Philippines -2024-04-13T09:10:45.375Z,11.8694,125.8013,10,4.7,38 km E of Sulat Philippines -2024-04-13T18:34:54.206Z,8.6018,126.3316,67.688,4.3,12 km NE of Gamut Philippines -2024-04-13T19:32:20.909Z,11.8928,125.7343,10,4.6,31 km ESE of Dolores Philippines -2024-04-14T11:24:14.564Z,11.6794,125.7291,34.395,4.5,29 km ENE of Lalawigan Philippines -2024-04-14T12:37:24.032Z,7.4806,126.4516,8.147,4.3,9 km SSW of Batiano Philippines -2024-04-15T08:17:38.027Z,8.3827,126.8801,35,4.3,54 km ENE of Barcelona Philippines -2024-04-15T09:34:32.104Z,8.3867,127.1621,10,4.3,84 km ENE of Barcelona Philippines -2024-04-16T00:53:39.211Z,9.8282,126.1635,21.442,4.5,8 km ESE of Pilar Philippines -2024-04-16T01:44:26.845Z,9.0484,126.9732,10,4.1,74 km ENE of Aras-asan Philippines -2024-04-16T16:06:15.536Z,9.6873,126.2537,51.666,5,17 km ESE of Union Philippines -2024-04-19T11:05:00.062Z,8.0631,126.7402,79.657,4.4,33 km ENE of Santa Maria Philippines -2024-04-19T18:40:01.086Z,8.4178,127.1695,12.198,4.4,85 km ENE of Barcelona Philippines -2024-04-20T02:22:11.229Z,7.8564,127.0993,10,4.9,63 km ENE of Kinablangan Philippines -2024-04-20T05:39:17.677Z,7.9161,126.5453,91.271,4.4,13 km SE of Santa Maria Philippines -2024-04-22T23:21:13.049Z,8.3119,126.5268,83.526,4.5,19 km NNE of Barcelona Philippines -2024-04-23T07:34:48.306Z,11.2312,124.7044,10,4.5,5 km WSW of Tunga Philippines -2024-04-23T14:23:14.531Z,12.1265,125.4762,34.614,4.4,4 km ESE of Oras Philippines -2024-04-23T14:29:59.540Z,12.1051,125.4043,35.953,4.4,3 km W of Dao Philippines -2024-04-27T11:34:18.293Z,8.5391,126.4283,66.531,4.7,20 km E of Gamut Philippines -2024-04-27T17:58:08.296Z,8.4684,126.7783,45.231,4.7,50 km ENE of Hinatuan Philippines -2024-04-27T20:59:34.939Z,8.6468,126.5394,49.453,4.9,31 km ESE of Marihatag Philippines -2024-04-27T22:05:26.698Z,8.6422,126.6681,35.337,4.6,44 km ESE of Marihatag Philippines -2024-04-29T14:11:19.731Z,8.9312,126.1518,73.279,4.5,8 km SSW of Gamut Philippines -2024-04-29T15:59:22.825Z,8.6702,126.6202,41.917,4.9,38 km ESE of Marihatag Philippines -2024-04-30T21:54:16.978Z,13.9921,120.6955,169.881,4.2,3 km W of Putol Philippines -2024-05-02T19:28:50.046Z,13.629,121.0622,111.058,4.5,0 km WSW of Ilihan Philippines -2024-05-03T04:38:02.660Z,9.0328,122.4978,10,4.6,44 km SSW of Basay Philippines -2024-05-03T10:16:23.573Z,10.8644,125.3349,10.208,5.7,27 km SSW of Balangiga Philippines -2024-05-03T14:01:04.451Z,10.7819,125.1224,10.125,4.4,12 km ENE of Abuyog Philippines -2024-05-04T22:09:51.085Z,10.7372,125.3869,142.851,4.3,27 km NE of Hingatungan Philippines -2024-05-07T08:03:03.382Z,11.3088,125.7334,68.686,5,12 km E of Hernani Philippines -2024-05-09T19:07:03.022Z,12.7958,123.6319,10,4.3,11 km S of Ogod Philippines -2024-05-10T08:08:54.440Z,8.7467,126.152,88.163,4.5,7 km WNW of Salvacion Philippines -2024-05-10T18:39:45.160Z,8.439,126.6372,65.54,4.2,34 km ENE of Hinatuan Philippines -2024-05-13T18:26:10.528Z,7.5865,126.1583,15.302,4.6,3 km ESE of Bantacan Philippines -2024-05-14T11:18:18.858Z,13.8364,120.7511,227.106,4.2,5 km E of Hukay Philippines -2024-05-17T10:02:10.116Z,8.1812,126.8784,51.393,4.3,49 km E of Barcelona Philippines -2024-05-17T16:04:22.983Z,13.5061,120.9503,149.42,4.2,0 km NNW of Puerto Galera Philippines -2024-05-19T00:25:43.968Z,8.8405,122.1066,10,4.4,85 km SW of Basay Philippines -2024-05-19T18:22:49.928Z,13.6553,120.9548,133.376,4.3,9 km E of Tingloy Philippines -2024-05-19T21:17:12.130Z,9.443,126.0766,64.604,4.6,16 km ENE of Carrascal Philippines -2024-05-22T08:47:15.227Z,10.2251,125.8314,55.244,4.5,31 km ESE of Tubajon Philippines -2024-05-22T14:51:40.811Z,10.269,126.0373,57.199,4.3,27 km N of Santa Monica Philippines -2024-05-23T04:56:56.804Z,8.3533,126.3014,76.237,4.4,4 km WNW of Loyola Philippines -2024-05-24T08:51:08.461Z,13.5735,120.6754,143.927,4.2,14 km NNW of Wawa Philippines -2024-05-25T12:36:43.604Z,12.8248,123.4698,26.415,4.7,16 km SW of Dangcalan Philippines -2024-05-26T11:58:26.152Z,8.319,127.5872,10,4.4,128 km E of Barcelona Philippines -2024-05-27T11:40:12.841Z,7.4463,124.7104,13.577,4.4,5 km SSW of Banisilan Philippines -2024-05-28T01:58:53.167Z,8.9347,126.2732,65.872,4.5,1 km W of Bacolod Philippines -2024-05-28T05:42:10.917Z,13.7005,120.5574,81.207,4.6,16 km SSW of Calatagan Philippines -2024-05-28T16:01:28.113Z,10.983,125.438,108.443,4.6,15 km SSE of Balangiga Philippines -2024-05-29T23:46:41.908Z,8.7819,127.4633,10,4.6,127 km E of Aras-asan Philippines -2024-05-31T06:11:14.319Z,9.7536,125.5743,154.045,4,3 km ENE of Capalayan Philippines -2024-05-31T20:21:16.838Z,7.7702,126.9889,13.673,4.4,49 km E of Kinablangan Philippines -2024-05-31T20:31:10.510Z,10.0909,126.0803,40.886,4.4,9 km NNE of Santa Monica Philippines -2024-06-01T04:17:06.969Z,8.9136,126.2895,65.653,4.7,1 km S of Bacolod Philippines -2024-06-03T05:46:31.292Z,8.8054,122.1035,10,4.9,89 km SW of Basay Philippines -2024-06-03T12:12:37.027Z,8.9337,126.6285,57.406,4.6,35 km E of Aras-asan Philippines -2024-06-08T13:07:19.775Z,6.6732,123.7476,10.703,4.8,31 km W of Taguisa Philippines -2024-06-08T16:09:21.821Z,8.7576,126.8774,45.081,4.4,63 km ESE of Aras-asan Philippines -2024-06-09T22:13:16.326Z,10.2064,126.3053,10,4.3,35 km NE of Santa Monica Philippines -2024-06-12T01:19:35.066Z,12.7129,123.7318,134.981,4.2,10 km NE of Monreal Philippines -2024-06-12T14:07:52.435Z,8.8144,126.2809,68.978,4.7,1 km WNW of Marihatag Philippines -2024-06-13T21:45:27.830Z,8.919,126.4202,61.539,4.8,12 km ENE of Aras-asan Philippines -2024-06-14T06:18:26.460Z,9.1691,126.5783,50.48,4.2,40 km ENE of La Paz Philippines -2024-06-21T19:03:07.615Z,8.4795,126.9757,46.522,4.7,69 km ENE of Barcelona Philippines -2024-06-22T00:41:54.636Z,13.937,124.9953,10,5.1,67 km ENE of Gigmoto Philippines -2024-06-23T13:32:37.013Z,8.7823,126.7582,50.136,4.6,50 km ESE of Aras-asan Philippines -2024-06-23T15:23:41.872Z,12.1731,125.388,35,4.4,6 km WNW of Oras Philippines -2024-06-24T05:04:36.664Z,12.2103,125.4493,35,4.8,3 km WSW of Alugan Philippines -2024-06-24T22:35:23.669Z,8.4727,126.9757,35,4.2,68 km ENE of Barcelona Philippines -2024-06-27T01:53:15.534Z,13.3242,120.5012,68.509,4.6,10 km SSE of Paluan Philippines -2024-06-28T04:02:08.057Z,8.7107,126.6149,57.121,4.3,36 km ESE of Marihatag Philippines -2024-06-28T15:37:55.822Z,10.758,125.4271,97.95,4.5,32 km NE of Hingatungan Philippines -2024-06-28T21:21:09.906Z,11.3173,121.9609,12.305,4.8,8 km WNW of Tibiao Philippines -2024-06-29T21:22:08.127Z,9.8509,124.0745,605.151,4.3,7 km SSW of Sagbayan Philippines -2024-06-30T22:53:41.598Z,12.6501,120.7897,10,4.9,11 km W of Ligaya Philippines -2024-07-01T05:22:23.355Z,10.7784,125.3709,72.888,4.8,29 km NE of Hingatungan Philippines -2024-07-01T05:23:53.695Z,10.5367,125.2716,73.096,4.5,10 km ESE of Hingatungan Philippines -2024-07-01T05:28:43.952Z,10.76,125.3498,78.039,4.5,26 km NE of Hingatungan Philippines -2024-07-01T05:53:51.095Z,10.7869,125.3944,87.121,4.8,32 km NE of Hingatungan Philippines -2024-07-02T11:32:09.283Z,15.1383,122.7779,35,4.3,63 km NE of Casuguran Philippines -2024-07-02T15:32:47.223Z,10.0697,126.1126,63.604,5,9 km NE of Santa Monica Philippines -2024-07-02T16:49:08.240Z,9.013,126.9102,10,4.4,67 km ENE of Aras-asan Philippines -2024-07-04T07:30:20.222Z,9.0729,126.6158,63.42,4.5,39 km ENE of Bacolod Philippines -2024-07-05T04:01:47.769Z,10.0208,125.9665,60.588,4.6,7 km W of Santa Monica Philippines -2024-07-05T15:05:02.039Z,15.0543,122.7034,31.277,4.5,51 km NE of Casuguran Philippines -2024-07-06T16:01:05.110Z,12.2671,124.6255,74.344,5,3 km S of Lope de Vega Philippines -2024-07-06T16:58:09.635Z,7.6849,126.9864,8.121,4.3,48 km E of Kinablangan Philippines -2024-07-08T08:19:04.027Z,9.0638,126.7309,41.865,4.8,50 km ENE of Aras-asan Philippines -2024-07-08T13:06:50.510Z,8.4039,126.3019,90.812,4.4,4 km NW of Hinatuan Philippines -2024-07-12T00:39:31.120Z,8.0036,126.72,68.611,4.3,30 km E of Santa Maria Philippines -2024-07-14T10:01:00.924Z,8.4574,126.143,11.549,4.6,3 km W of Tagbina Philippines -2024-07-14T16:59:50.962Z,13.706,120.8144,151.276,4.3,7 km W of Bagalangit Philippines -2024-07-16T14:50:45.689Z,12.8868,125.5234,10,4.4,52 km NE of Cabatuan Philippines -2024-07-18T05:39:55.732Z,8.6935,126.6749,50.368,5.1,43 km ESE of Marihatag Philippines -2024-07-18T08:29:26.216Z,8.7511,126.6641,62.387,4.6,40 km E of Marihatag Philippines -2024-07-18T09:37:55.061Z,8.7084,126.5248,81.194,4.3,27 km ESE of Marihatag Philippines -2024-07-19T06:19:31.120Z,6.8522,123.7377,10.194,4.9,31 km W of Gadung Philippines -2024-07-21T05:23:08.728Z,8.9269,126.1739,57.625,4.6,8 km S of Gamut Philippines -2024-07-22T07:43:45.839Z,7.7878,126.0357,10,4.5,3 km SW of Monkayo Philippines -2024-07-24T08:44:38.649Z,9.8787,122.0111,43.949,4.3,42 km W of Bulata Philippines -2024-07-26T13:58:47.906Z,13.9259,120.7856,98.309,4.5,3 km WSW of Calaca Philippines -2024-07-27T16:56:47.503Z,13.8093,124.2808,30.952,4.5,7 km SSW of Viga Philippines -2024-07-31T15:51:14.457Z,9.6401,125.7504,133.946,4.5,7 km NE of Gigaquit Philippines -2024-08-01T23:36:25.360Z,8.9276,127.076,10,4.6,84 km E of Aras-asan Philippines -2024-08-02T22:23:02.111Z,8.1851,126.6161,32,6.8,20 km E of Barcelona Philippines -2024-08-02T22:30:11.724Z,8.0167,126.7652,35,4.9,35 km E of Santa Maria Philippines -2024-08-02T22:31:15.069Z,8.1185,126.7173,76.98,5.3,31 km E of Barcelona Philippines -2024-08-02T22:33:46.919Z,8.2553,126.7699,52.726,4.8,38 km ENE of Barcelona Philippines -2024-08-02T22:34:34.519Z,8.1649,126.5697,35,4.7,14 km E of Barcelona Philippines -2024-08-02T22:35:00.076Z,8.1064,126.5758,89.012,4.5,16 km ESE of Barcelona Philippines -2024-08-02T22:35:23.239Z,7.9754,126.815,66.346,4.8,40 km E of Santa Maria Philippines -2024-08-02T22:36:20.415Z,7.9719,126.906,45.789,5,50 km NE of Kinablangan Philippines -2024-08-02T22:38:00.870Z,8.2441,126.5585,35,4.7,16 km NE of Barcelona Philippines -2024-08-02T22:41:06.546Z,8.0711,126.7866,35,4.6,38 km ENE of Santa Maria Philippines -2024-08-02T22:46:00.969Z,7.9579,126.8316,64.391,4.9,42 km NE of Kinablangan Philippines -2024-08-02T22:48:59.508Z,7.9348,126.8058,80.118,4.5,38 km NE of Kinablangan Philippines -2024-08-02T22:52:34.985Z,8.0963,126.6017,80.143,4.4,19 km ESE of Barcelona Philippines -2024-08-02T23:05:30.515Z,8.0924,126.7477,69.495,4.4,35 km ENE of Santa Maria Philippines -2024-08-02T23:36:09.043Z,8.1311,126.9613,35,4.9,58 km E of Barcelona Philippines -2024-08-02T23:44:36.254Z,7.85,126.6313,84.196,4.4,19 km NE of Taytayan Philippines -2024-08-03T00:01:19.446Z,8.163,126.4337,67.38,4.3,0 km N of Barcelona Philippines -2024-08-03T00:10:01.913Z,8.1251,126.5914,69.593,4.1,17 km ESE of Barcelona Philippines -2024-08-03T00:23:54.015Z,8.13,126.6745,66.957,4.3,26 km E of Barcelona Philippines -2024-08-03T00:36:07.790Z,8.1657,126.5168,79.774,4.4,9 km E of Barcelona Philippines -2024-08-03T01:17:11.318Z,7.9811,126.614,86.673,4.2,18 km E of Santa Maria Philippines -2024-08-03T01:37:19.320Z,8.0629,126.7996,53.839,5.2,39 km ENE of Santa Maria Philippines -2024-08-03T01:38:21.598Z,8.0161,126.7417,83.676,5.3,32 km E of Santa Maria Philippines -2024-08-03T02:01:50.115Z,8.0651,126.4295,87.497,4.4,3 km NNE of Lingig Philippines -2024-08-03T02:14:44.735Z,7.9849,126.7193,74.614,4.5,30 km E of Santa Maria Philippines -2024-08-03T02:19:18.554Z,7.908,126.411,88.165,4.4,6 km NE of Boston Philippines -2024-08-03T02:35:28.868Z,8.1043,126.5939,88.637,4.4,18 km ESE of Barcelona Philippines -2024-08-03T02:48:29.415Z,8.2403,126.7573,63.109,4.2,36 km ENE of Barcelona Philippines -2024-08-03T03:00:54.784Z,8.1066,126.9397,55.331,4.2,55 km ENE of Santa Maria Philippines -2024-08-03T03:15:29.722Z,7.9924,127.0844,60.785,4.4,67 km ENE of Kinablangan Philippines -2024-08-03T03:17:12.438Z,8.0157,126.8748,35,4.9,47 km E of Santa Maria Philippines -2024-08-03T04:20:26.565Z,8.2038,126.8354,15,6.3,44 km E of Barcelona Philippines -2024-08-03T06:37:10.448Z,8.0845,126.5734,87.944,4.2,17 km ESE of Barcelona Philippines -2024-08-03T06:59:19.643Z,7.9909,127.0002,50.3,4.4,59 km ENE of Kinablangan Philippines -2024-08-03T08:20:38.129Z,7.747,126.9322,82.933,4.1,42 km E of Kinablangan Philippines -2024-08-03T09:12:55.526Z,8.2539,126.7694,63.535,4.9,38 km ENE of Barcelona Philippines -2024-08-03T09:13:35.731Z,8.1907,126.4752,20.791,4.7,5 km NE of Barcelona Philippines -2024-08-03T09:37:45.524Z,7.8698,126.7103,76.808,4.5,26 km NE of Kinablangan Philippines -2024-08-03T14:54:05.595Z,8.0064,126.8899,65.175,4.4,49 km E of Santa Maria Philippines -2024-08-03T15:19:04.628Z,9.653,125.6569,10,4.3,5 km NNE of Bacuag Philippines -2024-08-03T17:12:58.807Z,8.1442,126.6265,70.21,4.5,21 km E of Barcelona Philippines -2024-08-03T22:06:10.252Z,8.0859,126.7208,73.999,4.5,32 km ENE of Santa Maria Philippines -2024-08-04T00:17:25.182Z,8.1164,126.6662,80.01,4.2,26 km E of Barcelona Philippines -2024-08-04T05:26:09.298Z,7.9976,126.7069,82.636,4.4,28 km E of Santa Maria Philippines -2024-08-04T07:30:09.679Z,8.069,126.6599,80.601,4.2,25 km ENE of Santa Maria Philippines -2024-08-04T14:04:23.437Z,8.0548,126.9786,59.759,4.4,59 km E of Santa Maria Philippines -2024-08-04T19:12:07.373Z,7.8944,126.7343,66.421,4.6,30 km NE of Kinablangan Philippines -2024-08-05T02:34:50.514Z,14.8885,122.9977,52.943,4.5,69 km NNE of Luklukan Philippines -2024-08-05T05:22:00.672Z,8.2686,126.744,69.36,4.4,36 km ENE of Barcelona Philippines -2024-08-05T22:05:41.717Z,8.1131,126.7759,52.875,4,38 km E of Barcelona Philippines -2024-08-06T16:51:43.100Z,7.7625,127.0474,49.214,4.1,55 km E of Kinablangan Philippines -2024-08-09T19:58:50.995Z,8.0207,126.8533,63.505,4.4,45 km E of Santa Maria Philippines -2024-08-10T20:11:15.947Z,7.6264,126.66,105.545,4,12 km ENE of Baganga Philippines -2024-08-11T00:52:33.373Z,8.3067,127.0254,45.493,4.3,67 km ENE of Barcelona Philippines -2024-08-12T07:52:46.266Z,8.1749,127.1779,10,4.4,81 km E of Barcelona Philippines -2024-08-12T11:26:39.043Z,8.0517,126.9443,33.799,4.4,55 km E of Santa Maria Philippines -2024-08-16T02:31:01.524Z,10.0656,125.5935,105.344,4.4,12 km N of Dinagat Philippines -2024-08-18T09:15:22.024Z,8.7102,126.2257,83.117,4.5,1 km E of Salvacion Philippines -2024-08-19T03:39:01.072Z,12.7182,124.7335,48,5.7,21 km NNW of Bugko Philippines -2024-08-19T15:32:42.884Z,8.0294,127.1567,10,4.9,76 km ENE of Kinablangan Philippines -2024-08-19T19:42:22.565Z,8.1799,127.0848,10,5,71 km E of Barcelona Philippines -2024-08-19T19:46:04.858Z,8.0712,126.9617,35,4.5,57 km E of Santa Maria Philippines -2024-08-19T21:59:20.107Z,8.1178,127.3,10,4.5,95 km ENE of Kinablangan Philippines -2024-08-20T03:45:55.233Z,8.3243,127.1909,10,4.4,85 km ENE of Barcelona Philippines -2024-08-20T09:50:41.241Z,8.9874,126.514,53.132,4.5,24 km ENE of Aras-asan Philippines -2024-08-21T01:34:54.352Z,8.3037,127.1244,10,4.4,77 km ENE of Barcelona Philippines -2024-08-21T03:28:19.787Z,8.0507,127.1233,10,4.6,74 km ENE of Kinablangan Philippines -2024-08-21T18:37:31.370Z,10.1518,126.2141,65.544,4.4,24 km NE of Santa Monica Philippines -2024-08-22T12:04:53.571Z,12.4713,124.4868,130.205,4.4,10 km SW of Bobon Philippines -2024-08-23T03:14:50.773Z,10.1871,126.1832,68.391,4.4,24 km NE of Santa Monica Philippines -2024-08-23T06:20:44.244Z,12.6894,124.7446,55.322,4.5,17 km NNW of Bugko Philippines -2024-08-26T15:30:20.248Z,10.9859,122.1802,10,4.5,14 km ESE of Bugasong Philippines -2024-08-27T13:01:31.899Z,12.5355,123.5062,10.22,5,6 km N of Baleno Philippines -2024-08-28T02:56:04.106Z,11.4959,126.5393,10,4.6,99 km NE of Sulangan Philippines -2024-08-28T16:46:00.442Z,13.3657,123.3198,10,4.5,3 km S of Inapatan Philippines -2024-08-30T11:04:50.594Z,8.9279,126.0393,145.911,4.2,11 km ESE of San Miguel Philippines -2024-08-31T08:10:30.090Z,7.7758,124.6273,9.032,4.5,10 km W of Kimanuit Philippines -2024-09-03T03:04:42.957Z,11.8539,125.4031,52.42,4.5,3 km WSW of Mantang Philippines -2024-09-03T23:16:44.482Z,14.864,122.5951,16.815,5.3,28 km NE of Casuguran Philippines -2024-09-03T23:55:46.113Z,14.8504,122.5404,10,5,23 km NE of Casuguran Philippines -2024-09-05T15:10:28.419Z,9.9454,122.4246,32.448,4.5,2 km W of Linaon Philippines -2024-09-07T01:46:28.454Z,8.6541,126.0956,101.984,4.3,2 km N of Lianga Philippines -2024-09-08T10:06:26.264Z,8.9706,125.262,72.126,4.7,3 km S of Tagcatong Philippines -2024-09-08T19:28:00.317Z,11.0118,125.7808,41.792,4.9,6 km ESE of Guiuan Philippines -2024-09-11T03:08:34.887Z,8.8888,126.3152,102.638,4.3,0 km ENE of Aras-asan Philippines -2024-09-13T13:13:35.043Z,8.527,127.355,10,4.5,109 km ENE of Barcelona Philippines -2024-09-16T03:29:07.349Z,12.4694,123.6195,10,4.8,8 km NE of Bulo Philippines -2024-09-17T04:13:31.880Z,9.6633,126.6752,35,4.9,62 km E of Union Philippines -2024-09-17T12:09:47.235Z,8.7365,126.3825,40.922,4.6,12 km SE of Marihatag Philippines -2024-09-22T07:31:31.184Z,13.9305,120.7585,219.461,4.1,2 km ESE of Balayan Philippines -2024-09-23T19:39:07.284Z,7.9612,127.2578,10,4.2,83 km ENE of Kinablangan Philippines -2024-09-25T09:07:07.155Z,12.5325,123.6961,10,4.6,4 km WSW of Luna Philippines -2024-09-25T11:37:44.471Z,13.8279,120.6015,107.976,4.4,3 km W of Calatagan Philippines -2024-09-26T23:27:42.432Z,8.2939,127.4205,10,4.7,109 km E of Barcelona Philippines -2024-09-27T07:16:42.080Z,9.85,122.1143,10,4.2,31 km W of Bulata Philippines -2024-09-27T15:08:40.721Z,7.8256,126.4834,101.27,4.3,5 km NE of Cateel Philippines -2024-09-29T02:46:52.203Z,8.1245,126.3208,99.798,4.3,10 km S of Bislig Philippines -2024-09-29T06:53:33.969Z,10.5139,124.465,10,5,14 km SSE of Poro Philippines -2024-09-30T10:04:47.645Z,8.4388,126.5264,94.586,4.5,22 km ENE of Hinatuan Philippines -2024-10-01T17:27:01.877Z,9.4152,126.4891,66.406,4.5,36 km ENE of Cortes Philippines -2024-10-01T21:19:49.760Z,14.1621,124.8171,10,5.9,62 km NE of Gigmoto Philippines -2024-10-02T01:20:37.017Z,9.0263,126.9253,10,4.9,69 km ENE of Aras-asan Philippines -2024-10-02T11:12:16.948Z,8.1964,127.1662,10,4.4,80 km E of Barcelona Philippines -2024-10-02T23:27:06.853Z,11.8155,125.5329,40.157,4.7,8 km E of Sulat Philippines -2024-10-04T14:48:06.824Z,9.963,126.4172,39.502,4.7,36 km ENE of Pilar Philippines -2024-10-05T07:46:48.656Z,9.97,126.4596,10.418,4.3,41 km ENE of Pilar Philippines -2024-10-05T14:40:33.866Z,10.0065,126.371,18.767,4.9,33 km ENE of Pilar Philippines -2024-10-05T15:52:57.195Z,9.9181,126.2352,10,4.5,16 km ENE of Pilar Philippines -2024-10-06T05:26:36.433Z,12.4001,123.6767,10,4.8,6 km ENE of Masbate Philippines -2024-10-06T17:04:41.341Z,14.3882,125.079,10,4.6,100 km ENE of Panganiban Philippines -2024-10-07T20:20:26.287Z,7.4416,126.2046,10,4.9,19 km SSE of Bantacan Philippines -2024-10-11T23:08:15.619Z,8.2113,127.0808,9.325,4.4,71 km E of Barcelona Philippines -2024-10-14T13:21:30.186Z,9.0233,126.2233,69.663,4.6,0 km WNW of Tago Philippines -2024-10-14T23:42:51.698Z,8.7548,127.1148,9.724,4.5,89 km E of Aras-asan Philippines -2024-10-16T10:52:04.642Z,14.0667,120.7416,173.802,4.4,0 km E of Banilad Philippines -2024-10-29T11:02:53.512Z,10.2638,127.2449,10,4.7,133 km ENE of Pilar Philippines -2024-11-01T23:00:03.112Z,7.401,126.1641,10,4.6,21 km ESE of San Mariano Philippines -2024-11-04T07:53:26.624Z,13.8368,120.7303,103.938,4.4,3 km ESE of Hukay Philippines -2024-11-04T07:57:28.532Z,13.8015,120.6955,99.786,4.3,4 km S of Hukay Philippines -2024-11-04T08:32:26.724Z,8.0352,126.3317,10,4.9,8 km W of Lingig Philippines -2024-11-06T10:36:27.217Z,12.5194,122.9906,10,4.6,37 km NW of Tumalaytay Philippines -2024-11-09T00:48:33.569Z,13.6508,120.8082,10,4.5,6 km W of Tingloy Philippines -2024-11-09T01:12:43.630Z,10.1406,125.9297,74.91,4.6,17 km NW of Santa Monica Philippines -2024-11-09T11:05:43.616Z,8.4852,126.1655,82.178,4.2,3 km N of Tagbina Philippines -2024-11-20T19:30:49.998Z,13.2629,124.8657,25.602,4.5,69 km NNW of Cabodiongan Philippines -2024-11-23T16:10:20.259Z,13.7029,120.7125,165.155,4,15 km S of Hukay Philippines -2024-11-26T12:57:12.179Z,10.0247,126.4913,10,4.6,46 km ENE of Pilar Philippines -2024-11-26T13:01:14.469Z,10.0072,126.4594,5.267,4.5,42 km ENE of Pilar Philippines -2024-11-27T08:59:03.951Z,9.1414,126.6882,6.194,5,49 km ENE of Bacolod Philippines -2024-11-27T09:13:27.110Z,9.1431,126.7555,6.812,4.2,56 km ENE of Bacolod Philippines -2024-11-27T12:33:13.962Z,10.1362,125.6025,115.826,4.9,19 km N of Dinagat Philippines -2024-11-27T18:04:59.046Z,11.2158,125.8036,35,4.5,16 km ENE of Salcedo Philippines -2024-11-28T23:39:49.459Z,11.5824,125.5773,10,4.6,11 km E of Lalawigan Philippines -2024-12-01T21:42:55.024Z,9.6881,125.7896,113.569,4.3,14 km NNE of Claver Philippines -2024-12-03T18:27:00.885Z,8.4328,126.7904,33.517,4.9,49 km NE of Barcelona Philippines -2024-12-04T17:06:48.246Z,8.9073,125.8342,131.505,4.1,13 km WSW of San Miguel Philippines -2024-12-09T22:21:33.666Z,7.6171,126.7909,72.637,4.5,25 km E of Baganga Philippines -2024-12-16T12:48:59.280Z,9.0185,126.6165,34.02,4.5,36 km ENE of Aras-asan Philippines -2024-12-17T07:37:38.870Z,9.6861,122.6582,35,5.1,15 km SSE of Candoni Philippines -2024-12-17T20:00:06.331Z,11.5244,126.6621,10,4.5,112 km NE of Sulangan Philippines -2024-12-18T01:34:34.431Z,13.8464,120.7541,213.632,4.7,5 km E of Hukay Philippines -2024-12-18T07:32:54.492Z,8.7519,126.7769,10,4.4,53 km E of Marihatag Philippines -2024-12-19T19:22:19.211Z,11.9512,126.6021,10,5.1,121 km ESE of San Policarpo Philippines -2024-12-24T23:32:45.178Z,13.434,120.4006,10,4.6,3 km WSW of Harrison Philippines -2024-12-26T10:26:20.024Z,8.473,125.927,24.23,5.3,3 km ESE of Borbon Philippines -2024-12-26T11:29:07.732Z,8.3067,126.0068,10,4.9,12 km SSE of Lapinigan Philippines -2024-12-27T01:57:18.235Z,8.0485,127.1446,18.366,4.7,76 km ENE of Kinablangan Philippines -2024-12-27T18:42:59.930Z,9.6146,126.2289,63,5.4,20 km SE of Union Philippines -2024-12-31T22:32:02.906Z,8.0127,127.264,10,4.6,86 km ENE of Kinablangan Philippines -2025-01-01T18:39:33.615Z,11.757,125.9354,10,4.6,52 km E of San Julian Philippines -2025-01-04T05:42:58.606Z,7.3151,123.6156,10,4.1,25 km SE of Malim Philippines -2025-01-04T19:31:05.239Z,11.6865,126.0581,10,4.3,62 km NE of Hernani Philippines -2025-01-07T09:18:58.362Z,9.7888,126.0508,10,4.6,3 km N of Dapa Philippines -2025-01-08T19:12:32.462Z,10.4626,125.2052,10,4.5,8 km SSE of Silago Philippines -2025-01-10T05:49:44.491Z,8.4901,126.5803,63.071,4.8,30 km ENE of Hinatuan Philippines -2025-01-11T17:48:37.086Z,7.6102,126.7188,95.016,4.6,17 km ENE of Baganga Philippines -2025-01-11T20:31:45.257Z,11.7891,125.9037,35,4.5,48 km E of San Julian Philippines -2025-01-13T00:19:47.641Z,6.6712,123.8527,541.546,5.4,20 km W of Taguisa Philippines -2025-01-13T00:21:36.122Z,6.7145,123.9153,552.944,4.8,13 km W of Taguisa Philippines -2025-01-14T09:39:04.240Z,8.0163,126.761,35,4.4,34 km E of Santa Maria Philippines -2025-01-15T18:03:22.759Z,11.6469,124.6543,10,4.9,11 km NE of Caibiran Philippines -2025-01-15T18:59:07.803Z,10.2929,125.5536,149.57,4.4,4 km SSW of Tubajon Philippines -2025-01-16T03:09:43.043Z,10.383,125.1704,135.927,4.3,9 km WNW of Hinundayan Philippines -2025-01-16T06:14:27.061Z,9.9631,125.8581,120.608,4.1,16 km NW of Del Carmen Surigao del Norte Philippines -2025-01-17T08:55:52.080Z,8.4942,125.8032,10,5,4 km NNE of Talacogon Philippines -2025-01-17T19:28:06.006Z,12.6656,123.8852,10,4.5,1 km ESE of Bulan Philippines -2025-01-20T10:42:58.290Z,13.9035,120.5676,100,5.4,6 km WSW of Talisay Philippines -2025-01-22T13:33:26.464Z,9.6039,126.18,82.342,4.6,18 km SSE of Union Philippines -2025-01-22T23:39:46.093Z,10.0899,125.1492,9,5.7,3 km NNW of San Francisco Philippines -2025-01-23T03:41:16.038Z,7.7025,122.2079,62.013,5.4,8 km E of Siocon Philippines -2025-01-23T18:51:46.454Z,10.6816,125.5357,17.206,4.6,35 km N of Loreto Philippines -2025-01-27T06:40:43.420Z,7.3803,124.5001,399.952,4.5,9 km NW of Alamada Philippines -2025-01-27T16:13:05.766Z,13.0295,120.9626,10,4.4,21 km E of Barahan Philippines -2025-01-29T01:56:42.942Z,11.5018,124.2952,10,4.5,12 km NNW of San Isidro Philippines -2025-01-29T04:37:29.365Z,7.5518,123.4787,10,4.6,11 km S of San Pablo Philippines -2025-02-01T11:01:17.568Z,9.8839,125.9034,104.794,4.2,7 km WNW of Del Carmen Surigao del Norte Philippines -2025-02-02T15:43:11.489Z,10.267,125.5373,119.531,5,7 km SSW of Tubajon Philippines -2025-02-07T08:53:54.446Z,8.0545,127.2401,10,4.4,86 km ENE of Kinablangan Philippines -2025-02-11T23:43:07.900Z,10.5814,126.7035,10,4.4,95 km NE of Santa Monica Philippines -2025-02-12T08:08:25.913Z,11.9523,125.4792,38.909,4.5,5 km SE of Can-Avid Philippines -2025-02-14T02:04:10.279Z,6.8607,123.6543,10,4,40 km W of Gadung Philippines -2025-02-14T12:50:03.769Z,11.5308,125.7609,10,5.3,26 km ENE of Llorente Philippines -2025-02-14T13:22:45.857Z,11.4984,125.7395,10,4.4,23 km NE of Hernani Philippines -2025-02-14T14:18:15.939Z,11.3456,125.7426,10,4.5,13 km E of Hernani Philippines -2025-02-15T00:28:58.138Z,12.8077,122.9791,10,5,30 km W of Mabiton Philippines -2025-02-15T01:18:48.716Z,11.4747,125.806,10,5,26 km NE of Hernani Philippines -2025-02-15T08:55:30.205Z,11.4516,125.759,9.898,4.3,20 km NE of Hernani Philippines -2025-02-15T22:19:02.528Z,7.4928,124.6971,10,4.3,2 km W of Banisilan Philippines -2025-02-16T11:43:58.523Z,11.4728,125.6508,10,4.7,13 km ENE of Llorente Philippines -2025-02-17T10:28:15.312Z,15.1202,122.8014,18.88,4.5,64 km NE of Casuguran Philippines -2025-02-18T14:26:55.191Z,11.459,125.6197,10,4.2,9 km ENE of Llorente Philippines -2025-02-19T12:15:14.957Z,9.8875,126.0538,10,4.2,5 km WNW of Pilar Philippines -2025-02-22T18:30:58.566Z,11.5259,125.9215,23.132,4.6,39 km NE of Hernani Philippines -2025-02-24T17:05:49.445Z,8.788,127.3203,10,4.4,111 km E of Aras-asan Philippines -2025-02-25T16:29:02.548Z,10.4482,125.4515,10,4.3,16 km NW of Loreto Philippines -2025-02-28T21:00:29.234Z,10.8559,125.5268,10,4.6,28 km SW of Guiuan Philippines -2025-03-01T06:36:40.192Z,7.863,126.7422,11.163,4.4,28 km NE of Kinablangan Philippines -2025-03-01T06:47:43.954Z,8.8699,122.5991,10,4.6,44 km WSW of Cabangahan Philippines -2025-03-01T13:59:51.898Z,7.867,126.7422,17.616,5,28 km NE of Kinablangan Philippines -2025-03-06T13:40:25.416Z,7.5657,124.8748,14.142,4.6,5 km SW of Kadingilan Philippines -2025-03-07T16:53:59.992Z,7.4935,124.7296,10,4.8,0 km ENE of Banisilan Philippines -2025-03-08T08:03:22.942Z,8.9028,126.3335,65.661,4.4,2 km NE of Aras-asan Philippines -2025-03-08T09:13:26.721Z,7.3703,124.7197,11.472,4.3,8 km W of Liliongan Philippines -2025-03-09T01:07:15.918Z,13.6799,120.5745,104.213,4.5,17 km SSW of Calatagan Philippines -2025-03-09T09:46:45.324Z,8.9593,126.1887,73.035,4.7,5 km SSE of Gamut Philippines -2025-03-10T05:52:59.488Z,7.5899,126.6632,78.798,4.5,11 km E of Baganga Philippines -2025-03-11T06:25:06.943Z,11.3909,125.6842,41.345,4.5,10 km NE of Hernani Philippines -2025-03-12T15:09:44.490Z,8.3112,127.3806,9,5.5,105 km E of Barcelona Philippines -2025-03-12T19:40:40.967Z,8.2694,127.3609,10,4.4,102 km E of Barcelona Philippines -2025-03-13T02:11:44.372Z,8.4659,126.7172,51.899,4.2,43 km ENE of Hinatuan Philippines -2025-03-15T19:50:28.591Z,8.9937,126.4886,47.557,4.5,22 km ENE of Aras-asan Philippines -2025-03-16T01:10:28.613Z,10.2207,125.9927,63.079,4.8,22 km NNW of Santa Monica Philippines -2025-03-16T08:07:24.763Z,7.7697,126.6046,10,4.2,10 km NE of Kinablangan Philippines -2025-03-17T15:41:51.772Z,8.0892,126.8133,35,4.9,42 km ENE of Santa Maria Philippines -2025-03-18T14:53:46.799Z,8.8348,126.3326,70.604,4.5,5 km NE of Marihatag Philippines -2025-03-19T22:35:23.003Z,8.3046,126.2426,8.401,4.5,4 km WSW of Bigaan Philippines -2025-03-22T07:01:27.043Z,7.6274,126.7926,76.976,4.5,26 km ENE of Baganga Philippines -2025-03-22T08:51:39.838Z,7.6829,126.6757,82.622,4.2,14 km E of Kinablangan Philippines -2025-03-24T12:38:06.167Z,12.0361,120.8278,10,4.4,39 km SW of Santa Teresa Philippines -2025-03-25T03:32:35.521Z,7.9081,126.6984,57.723,4.4,28 km NE of Kinablangan Philippines -2025-03-27T14:10:52.110Z,8.6119,126.2634,70.667,4.6,9 km NNE of Gamut Philippines -2025-03-27T23:54:05.998Z,9.8809,125.8377,98.452,4.2,14 km W of Del Carmen Surigao del Norte Philippines -2025-03-28T20:44:09.879Z,9.5575,126.4481,35,4.3,41 km NE of Cortes Philippines -2025-03-29T10:46:38.012Z,9.2642,126.7765,9.173,4.6,64 km E of Cortes Philippines -2025-03-30T11:49:56.946Z,13.3596,120.9198,129.089,4.4,13 km SSW of Dulangan Philippines -2025-04-01T09:25:55.049Z,13.6098,120.8542,173.966,4.9,5 km SSW of Tingloy Philippines -2025-04-02T01:52:27.983Z,9.6865,125.9451,86.506,4.4,7 km NNW of Socorro Philippines -2025-04-04T09:39:42.779Z,9.5784,126.2674,98.322,4.4,26 km SE of Union Philippines -2025-04-05T18:10:41.711Z,8.7894,127.7442,10,4.1,158 km E of Aras-asan Philippines -2025-04-06T11:44:14.408Z,8.5092,127.2414,10,4.5,96 km ENE of Barcelona Philippines -2025-04-07T09:19:38.428Z,9.597,126.5518,35,4.4,51 km ESE of Union Philippines -2025-04-09T20:38:39.460Z,12.0002,124.1669,10,4.2,18 km NE of Limbuhan Philippines -2025-04-14T16:18:45.489Z,10.6208,125.488,10,4.1,29 km NNW of Loreto Philippines -2025-04-21T08:26:13.765Z,9.0125,126.7437,35,4.4,49 km ENE of Aras-asan Philippines -2025-04-22T22:10:20.745Z,11.9558,125.3685,42.5,4.6,8 km NW of Taft Philippines -2025-04-25T20:47:47.311Z,6.6843,123.8153,38.635,4.6,24 km W of Taguisa Philippines -2025-05-01T14:27:00.582Z,8.7712,122.3606,31.046,4.4,72 km WSW of Cabangahan Philippines -2025-05-03T04:55:39.353Z,9.5551,123.0001,10,4.5,7 km SSW of Mayapusi Philippines -2025-05-03T20:39:37.905Z,8.3638,127.1155,10,4.4,78 km ENE of Barcelona Philippines -2025-05-07T03:48:14.829Z,8.1377,126.552,70.852,4.4,13 km E of Barcelona Philippines -2025-05-07T03:48:42.364Z,7.7672,126.876,82.736,4.8,36 km ENE of Kinablangan Philippines -2025-05-07T04:41:31.495Z,12.7216,126.0118,10,4.9,80 km NE of Alugan Philippines -2025-05-07T09:36:28.151Z,12.8093,125.0971,23.287,4.5,16 km NNE of Cabodiongan Philippines -2025-05-09T10:40:52.832Z,13.6125,124.8109,34.975,4.5,49 km ESE of Gigmoto Philippines -2025-05-09T20:58:38.082Z,9.3711,127.1373,10,4.2,104 km E of Cortes Philippines -2025-05-11T21:37:11.127Z,9.3705,127.1473,10,4.5,105 km E of Cortes Philippines -2025-05-15T05:35:39.843Z,13.8751,120.649,129.637,4.3,1 km SE of Lucsuhin Philippines -2025-05-17T00:32:58.473Z,9.867,122.182,10,5.1,24 km W of Bulata Philippines -2025-05-17T03:23:16.326Z,10.4238,121.8659,10,4.3,11 km W of Magdalena Philippines -2025-05-17T06:51:36.933Z,9.8304,122.169,10,4.3,25 km W of Cartagena Philippines -2025-05-18T03:46:05.264Z,8.6216,123.0774,10,4.8,10 km NNW of Manukan Philippines -2025-05-18T20:25:29.532Z,8.744,126.0078,35,4.2,12 km NNE of Los Arcos Philippines -2025-05-19T03:41:29.696Z,7.4417,125.6982,66.405,4.9,5 km SSE of San Miguel Philippines -2025-05-19T16:20:16.737Z,8.808,126.6066,55.608,4.5,33 km ESE of Aras-asan Philippines -2025-05-19T23:11:21.095Z,8.7007,126.5777,44.182,4.2,33 km ESE of Marihatag Philippines -2025-05-20T12:29:40.969Z,10.8814,125.9051,35,4.4,10 km SE of Sulangan Philippines -2025-05-23T05:36:35.718Z,9.9984,125.3254,10,4.3,19 km ESE of San Francisco Philippines -2025-05-25T22:31:50.868Z,9.0733,125.7413,10,4.4,13 km NE of Anticala Philippines -2025-05-26T16:03:41.302Z,12.6584,123.3822,10,4.7,9 km SE of Osmeña Philippines -2025-05-27T04:17:50.207Z,14.6789,121.4548,10,4.8,8 km NNE of Daraitan Philippines -2025-05-27T14:31:34.807Z,12.4605,125.7302,10,4.6,38 km NE of Alugan Philippines -2025-05-29T18:35:13.474Z,13.1316,124.1919,85.683,4.9,9 km SE of Rapu-Rapu Philippines -2025-05-29T22:52:28.375Z,8.482,126.3659,83.261,4.3,12 km NNE of Hinatuan Philippines -2025-06-05T11:11:43.726Z,13.6224,123.4808,35,4.7,0 km NNW of Caraycayon Philippines -2025-06-05T13:17:54.760Z,13.2717,123.9352,10,4.5,15 km E of Bacacay Philippines -2025-06-09T16:04:58.923Z,13.6999,120.7166,167.515,5.1,16 km S of Hukay Philippines -2025-06-10T10:43:10.264Z,8.3867,127.5392,10,4.6,124 km ENE of Barcelona Philippines -2025-06-11T04:59:25.116Z,7.7792,126.2481,10,4.3,16 km SW of Boston Philippines -2025-06-11T08:53:48.877Z,8.1119,126.2944,10,4.6,11 km SSW of Bislig Philippines -2025-06-13T14:17:03.755Z,8.0071,126.5838,89.75,4.2,15 km E of Santa Maria Philippines -2025-06-15T08:08:33.526Z,9.7081,126.6996,15.868,4.3,64 km E of Union Philippines -2025-06-17T08:36:25.059Z,8.2198,126.7159,53.724,5.3,31 km ENE of Barcelona Philippines -2025-06-17T13:53:03.483Z,11.6512,125.5795,55.483,4.2,13 km ENE of Lalawigan Philippines -2025-06-18T00:55:19.100Z,13.0065,123.8456,123.213,4.4,3 km NW of Pili Philippines -2025-06-18T13:47:38.030Z,12.7999,123.5914,10,4.5,11 km SSW of Ogod Philippines -2025-06-18T17:25:03.520Z,13.6478,120.8577,208.633,4.3,2 km SW of Tingloy Philippines -2025-06-21T12:21:02.742Z,12.7855,120.8882,10,4.4,6 km ESE of Tuban Philippines -2025-06-22T08:39:35.299Z,9.1229,126.9743,10,4.3,77 km ENE of Aras-asan Philippines -2025-06-22T22:24:38.497Z,9.2761,126.7381,35,4.4,60 km E of Cortes Philippines -2025-06-24T21:28:52.166Z,7.9049,126.5621,86.065,4.3,16 km SE of Santa Maria Philippines -2025-06-24T22:24:06.654Z,12.6711,120.8885,10,4.3,1 km NNW of Ligaya Philippines -2025-06-28T08:28:33.675Z,8.8826,126.3296,85.642,4.3,2 km ESE of Aras-asan Philippines -2025-07-03T23:50:46.164Z,8.5987,126.4932,90.97,4.1,28 km ENE of Gamut Philippines -2025-07-08T00:38:15.015Z,12.813,125.6655,10,4.2,57 km NE of Anito Philippines -2025-07-08T01:21:03.738Z,13.8317,120.7292,200.512,4.4,3 km ESE of Hukay Philippines -2025-07-11T03:14:35.263Z,9.0119,127.5474,10,4.3,136 km E of Aras-asan Philippines -2025-07-12T23:44:21.139Z,11.056,126.1894,10,4.5,41 km ENE of Sulangan Philippines -2025-07-13T04:24:47.778Z,13.5274,120.7937,196.71,4.4,6 km NNW of Odala Philippines -2025-07-20T00:29:16.550Z,8.2335,127.5108,10,4.7,118 km E of Barcelona Philippines -2025-07-20T16:40:57.597Z,9.169,126.2239,67.09,4.8,6 km ESE of Mabahin Philippines -2025-07-21T14:13:36.637Z,10.3866,121.8794,10,4.7,11 km WSW of Magdalena Philippines -2025-07-22T22:49:24.225Z,9.4274,126.5176,35,4.4,39 km ENE of Cortes Philippines -2025-07-23T04:02:19.839Z,8.1346,126.1909,10,4.7,11 km NNE of Santa Maria Philippines -2025-07-25T05:56:33.696Z,8.9885,126.2206,69.615,4.8,3 km SSW of Tago Philippines -2025-07-27T19:58:44.822Z,13.7808,120.7068,184.79,4.4,7 km S of Hukay Philippines -2025-07-28T06:35:47.692Z,12.4243,123.6545,10,4.4,6 km NNE of Masbate Philippines -2025-07-29T03:39:05.684Z,13.8035,120.8927,10,4.4,6 km N of Solo Philippines -2025-07-29T03:41:22.634Z,13.7793,120.866,10,4.4,5 km NW of Solo Philippines -2025-07-29T21:59:47.098Z,7.4423,126.5296,103.392,4.5,2 km W of San Luis Philippines -2025-08-02T07:27:11.810Z,9.0513,126.2212,10,4.3,3 km NNW of Tago Philippines -2025-08-02T07:31:40.738Z,9.1689,126.7853,9.868,4.7,60 km ENE of Bacolod Philippines -2025-08-12T01:23:28.952Z,7.1702,124.7791,10,4.1,4 km SSW of Carmen Philippines -2025-08-14T08:34:04.212Z,8.9868,123.9738,545.444,4.1,40 km ESE of Lazi Philippines -2025-08-15T14:22:56.975Z,7.8181,127.0853,25.599,4.4,60 km ENE of Kinablangan Philippines -2025-08-16T20:35:42.965Z,13.7848,120.7204,148.78,4.9,6 km SSE of Hukay Philippines -2025-08-19T16:43:18.284Z,13.9315,120.8166,93.766,4.7,0 km ESE of Calaca Philippines -2025-08-20T15:35:35.378Z,11.7781,125.9635,10,4.9,55 km E of San Julian Philippines -2025-08-21T00:43:36.116Z,9.1609,122.607,10,4.5,27 km S of Basay Philippines -2025-08-22T07:08:20.578Z,7.4498,126.5118,143.421,4.8,4 km WNW of San Luis Philippines -2025-08-24T10:47:57.837Z,13.5836,122.9062,10,4.5,3 km ESE of Tinalmud Philippines -2025-08-24T19:29:37.264Z,13.5985,122.9669,10,4.4,5 km NNE of Dalupaon Philippines -2025-08-26T19:45:47.012Z,8.6228,126.3529,74.651,4.8,15 km NE of Gamut Philippines -2025-08-28T12:08:54.024Z,13.527,120.3513,62.176,4.6,12 km NW of Harrison Philippines -2025-08-29T00:44:17.971Z,10.0457,125.8534,87.356,4.7,19 km WNW of San Benito Philippines -2025-08-31T07:49:53.171Z,7.3003,123.4816,10,4.9,17 km SSE of Malim Philippines -2025-09-02T07:09:19.254Z,9.6602,122.2503,10,4.6,19 km WSW of Maricalom Philippines -2025-09-03T19:55:37.603Z,9.9483,125.767,63.711,4.4,11 km ENE of Cagdianao Philippines -2025-09-03T22:45:45.860Z,9.6436,126.3902,35,5,33 km ESE of Union Philippines -2025-09-03T23:04:25.454Z,9.6784,126.2416,32.153,4.5,16 km ESE of Union Philippines -2025-09-07T07:29:07.651Z,9.2452,126.908,10,5.1,76 km ENE of Bacolod Philippines -2025-09-08T18:52:10.347Z,9.9133,125.5075,143.517,5.3,10 km WSW of Dinagat Philippines -2025-09-09T06:56:23.768Z,11.2144,125.476,83.937,4.7,7 km WSW of General MacArthur Philippines -2025-09-13T21:30:52.707Z,10.3303,123.3056,10,4.5,1 km WSW of Malaiba Philippines -2025-09-13T21:32:55.466Z,10.5024,126.4064,10,4.4,66 km NE of Santa Monica Philippines -2025-09-13T22:45:47.436Z,12.9374,122.8587,10,4.7,20 km SSW of San Rafael Philippines -2025-09-14T18:57:29.007Z,12.9753,121.2449,10,4.7,13 km WNW of Malamig Philippines -2025-09-14T22:24:48.891Z,12.9136,121.1533,122.525,4.4,23 km W of Malamig Philippines -2025-09-17T18:12:01.901Z,7.805,126.5145,93.398,4.4,6 km ENE of Cateel Philippines -2025-09-18T15:25:04.596Z,8.0552,126.9205,49.894,4.5,52 km E of Santa Maria Philippines -2025-09-22T02:11:17.539Z,7.7691,122.019,10,4.6,14 km WNW of Siocon Philippines -2025-09-25T02:27:57.244Z,9.605,126.1838,10,4.7,18 km SSE of Union Philippines -2025-09-25T22:48:09.212Z,12.6852,125.2951,35,4.6,19 km NNE of Cabatuan Philippines -2025-09-26T21:56:37.928Z,6.7129,123.6853,605.561,4.1,38 km WSW of Gadung Philippines -2025-09-28T19:13:09.565Z,12.8502,125.6189,10,4.4,56 km NE of Cabatuan Philippines -2025-09-29T16:48:39.749Z,14.0005,120.6055,182.613,4.1,4 km NW of Binubusan Philippines diff --git a/experiments/cebu_2025/fetch_usgs_raw.sh b/experiments/cebu_2025/fetch_usgs_raw.sh deleted file mode 100644 index b0d05f0..0000000 --- a/experiments/cebu_2025/fetch_usgs_raw.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -RAW_DATA_DIRECTORY="${SCRIPT_DIR}/data/raw" -OUTPUT_FILE="${RAW_DATA_DIRECTORY}/usgs_cebu_2020_2025_raw.csv" - -mkdir -p "${RAW_DATA_DIRECTORY}" - -USGS_QUERY_URL="https://earthquake.usgs.gov/fdsnws/event/1/query" - -TARGET_LATITUDE="11.156" -TARGET_LONGITUDE="124.111" - -ANALYSIS_RADIUS_KM="500" - -START_TIME="2020-09-29T13:59:43Z" - -# One second before the target earthquake. -END_TIME="2025-09-30T13:59:42Z" - -MINIMUM_MAGNITUDE="2.5" - -echo "Downloading USGS Cebu validation catalog..." -echo "Output: ${OUTPUT_FILE}" - -curl \ - --fail \ - --location \ - --silent \ - --show-error \ - --get \ - "${USGS_QUERY_URL}" \ - --data-urlencode "format=csv" \ - --data-urlencode "starttime=${START_TIME}" \ - --data-urlencode "endtime=${END_TIME}" \ - --data-urlencode "latitude=${TARGET_LATITUDE}" \ - --data-urlencode "longitude=${TARGET_LONGITUDE}" \ - --data-urlencode "maxradiuskm=${ANALYSIS_RADIUS_KM}" \ - --data-urlencode "minmagnitude=${MINIMUM_MAGNITUDE}" \ - --data-urlencode "eventtype=earthquake" \ - --data-urlencode "orderby=time-asc" \ - --output "${OUTPUT_FILE}" - -if [[ ! -s "${OUTPUT_FILE}" ]]; then - echo "USGS returned an empty catalog." >&2 - exit 1 -fi - -LINE_COUNT="$( - wc -l < "${OUTPUT_FILE}" -)" - -if (( LINE_COUNT >= 20001 )); then - echo "Catalog may have reached the USGS query limit." >&2 - echo "Rows including header: ${LINE_COUNT}" >&2 - echo "The request must be divided into smaller intervals." >&2 - exit 1 -fi - -echo "Download complete." -echo "Rows including header: ${LINE_COUNT}" -echo "Raw catalog: ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/cebu_2025/normalize_catalog.sh b/experiments/cebu_2025/normalize_catalog.sh deleted file mode 100644 index c172da6..0000000 --- a/experiments/cebu_2025/normalize_catalog.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -RAW_CATALOG="${SCRIPT_DIR}/data/raw/usgs_cebu_2020_2025_raw.csv" - -NORMALIZED_DIRECTORY="${SCRIPT_DIR}/data/normalized" -NORMALIZED_CATALOG="${NORMALIZED_DIRECTORY}/catalog.csv" - -NORMALIZER="${REPOSITORY_ROOT}/build/cameff_catalog_normalizer" - -if [[ ! -x "${NORMALIZER}" ]]; then - echo "Catalog normalizer not found:" >&2 - echo " ${NORMALIZER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${RAW_CATALOG}" ]]; then - echo "Raw Cebu catalog not found:" >&2 - echo " ${RAW_CATALOG}" >&2 - echo "Run the acquisition script first." >&2 - exit 1 -fi - -mkdir -p "${NORMALIZED_DIRECTORY}" - -"${NORMALIZER}" \ - "${RAW_CATALOG}" \ - "${NORMALIZED_CATALOG}" - -echo "Normalized catalog created:" -echo " ${NORMALIZED_CATALOG}" \ No newline at end of file diff --git a/experiments/cebu_2025/results/cebu_frozen_threshold_metrics.csv b/experiments/cebu_2025/results/cebu_frozen_threshold_metrics.csv deleted file mode 100644 index 31ec4f2..0000000 --- a/experiments/cebu_2025/results/cebu_frozen_threshold_metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -threshold,tp,fp,tn,fn,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy -0.73,0,0,4,1,0.000000,0.000000,1.000000,0.000000,0.000000,0.500000 diff --git a/experiments/cebu_2025/run_hindcast.sh b/experiments/cebu_2025/run_hindcast.sh deleted file mode 100644 index 3ebb94f..0000000 --- a/experiments/cebu_2025/run_hindcast.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -REPORT_FILE="${RESULT_DIRECTORY}/cebu_2025_hindcast.txt" - -TARGET_TIME="2025-09-30T13:59:43Z" - -# Frozen 24-hour forecasting lead. -CUTOFF_TIME="2025-09-29T13:59:43Z" - -# One-year evidence window ending at the cutoff. -OBSERVATION_START_TIME="2024-09-29T13:59:43Z" - -TARGET_EPOCH="$( - date -u -d "${TARGET_TIME}" +%s -)" - -CUTOFF_EPOCH="$( - date -u -d "${CUTOFF_TIME}" +%s -)" - -OBSERVATION_START_EPOCH="$( - date -u -d "${OBSERVATION_START_TIME}" +%s -)" - -TARGET_LATITUDE="11.156" -TARGET_LONGITUDE="124.111" -TARGET_DEPTH_KM="10.0" -TARGET_MAGNITUDE="6.9" -TARGET_REGION="Offshore Northern Cebu Philippines" - -ANALYSIS_LATITUDE="11.156" -ANALYSIS_LONGITUDE="124.111" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - echo "Run the acquisition and normalization scripts first." >&2 - exit 1 -fi - -mkdir -p "${RESULT_DIRECTORY}" - -"${RUNNER}" \ - "${CATALOG}" \ - "${TARGET_EPOCH}" \ - "${TARGET_LATITUDE}" \ - "${TARGET_LONGITUDE}" \ - "${TARGET_DEPTH_KM}" \ - "${TARGET_MAGNITUDE}" \ - "${TARGET_REGION}" \ - "${OBSERVATION_START_EPOCH}" \ - "${CUTOFF_EPOCH}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - | tee "${REPORT_FILE}" - -HAZARD_EVIDENCE="$( - awk -F= ' - $1 == "hazard_evidence" { - print $2 - exit - } - ' "${REPORT_FILE}" -)" - -if [[ -z "${HAZARD_EVIDENCE}" ]]; then - echo "Unable to extract hazard evidence." >&2 - exit 1 -fi - -CLASSIFICATION="$( - awk \ - -v score="${HAZARD_EVIDENCE}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "warning" - } else { - print "no_warning" - } - }' -)" - -echo "frozen_threshold=${FROZEN_THRESHOLD}" \ - | tee -a "${REPORT_FILE}" - -echo "threshold_classification=${CLASSIFICATION}" \ - | tee -a "${REPORT_FILE}" - -echo -echo "Hindcast report written to:" -echo " ${REPORT_FILE}" \ No newline at end of file diff --git a/experiments/cebu_2025/run_threshold_report.sh b/experiments/cebu_2025/run_threshold_report.sh deleted file mode 100644 index 3c9ab26..0000000 --- a/experiments/cebu_2025/run_threshold_report.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -INPUT_FILE="${SCRIPT_DIR}/results/cebu_validation_windows.csv" -OUTPUT_FILE="${SCRIPT_DIR}/results/cebu_frozen_threshold_metrics.csv" - -if [[ ! -f "${INPUT_FILE}" ]]; then - echo "Cebu validation results not found:" >&2 - echo " ${INPUT_FILE}" >&2 - echo "Run the validation suite first." >&2 - exit 1 -fi - -awk -F, ' - NR == 1 { - next - } - - { - label = $2 + 0 - prediction = $3 + 0 - - if (label == 1 && prediction == 1) { - tp++ - } else if (label == 0 && prediction == 1) { - fp++ - } else if (label == 0 && prediction == 0) { - tn++ - } else if (label == 1 && prediction == 0) { - fn++ - } - } - - END { - precision = (tp + fp) ? tp / (tp + fp) : 0 - recall = (tp + fn) ? tp / (tp + fn) : 0 - specificity = (tn + fp) ? tn / (tn + fp) : 0 - fpr = (fp + tn) ? fp / (fp + tn) : 0 - - f1 = (precision + recall) \ - ? 2 * precision * recall / (precision + recall) \ - : 0 - - balanced_accuracy = (recall + specificity) / 2 - - print "threshold,tp,fp,tn,fn,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy" - - printf "0.73,%d,%d,%d,%d,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f\n", \ - tp, fp, tn, fn, \ - precision, recall, specificity, fpr, f1, balanced_accuracy - } -' "${INPUT_FILE}" | tee "${OUTPUT_FILE}" - -echo -echo "Frozen-threshold report written to:" -echo " ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/cebu_2025/run_validation_suite.sh b/experiments/cebu_2025/run_validation_suite.sh deleted file mode 100644 index 905b3fc..0000000 --- a/experiments/cebu_2025/run_validation_suite.sh +++ /dev/null @@ -1,238 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -WINDOW_DIRECTORY="${RESULT_DIRECTORY}/windows" -SUMMARY_FILE="${RESULT_DIRECTORY}/cebu_validation_windows.csv" - -ANALYSIS_LATITUDE="11.156" -ANALYSIS_LONGITUDE="124.111" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - exit 1 -fi - -mkdir -p "${WINDOW_DIRECTORY}" - -extract_value() -{ - local key="$1" - local file="$2" - - awk -F= -v requested_key="${key}" ' - $1 == requested_key { - print substr($0, index($0, "=") + 1) - exit - } - ' "${file}" -} - -classify_score() -{ - local score="$1" - - awk \ - -v score="${score}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "1" - } else { - print "0" - } - }' -} - -run_window() -{ - local case_id="$1" - local label="$2" - local observation_start_time="$3" - local cutoff_time="$4" - local target_time="$5" - local target_depth="$6" - local target_magnitude="$7" - local target_region="$8" - - local observation_start_epoch - local cutoff_epoch - local target_epoch - - local report_file - - local experiment_status - local evidence_event_count - local hazard_evidence - local fused_confidence - local dominant_pattern - local dominant_expert - local predicted_label - - observation_start_epoch="$( - date -u -d "${observation_start_time}" +%s - )" - - cutoff_epoch="$( - date -u -d "${cutoff_time}" +%s - )" - - target_epoch="$( - date -u -d "${target_time}" +%s - )" - - report_file="${WINDOW_DIRECTORY}/${case_id}.txt" - - echo "Running ${case_id}..." - - "${RUNNER}" \ - "${CATALOG}" \ - "${target_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${target_depth}" \ - "${target_magnitude}" \ - "${target_region}" \ - "${observation_start_epoch}" \ - "${cutoff_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - > "${report_file}" - - experiment_status="$( - extract_value "experiment_status" "${report_file}" - )" - - if [[ "${experiment_status}" != "ok" ]]; then - echo "Experiment failed for ${case_id}." >&2 - cat "${report_file}" >&2 - exit 1 - fi - - evidence_event_count="$( - extract_value "evidence_event_count" "${report_file}" - )" - - hazard_evidence="$( - extract_value "hazard_evidence" "${report_file}" - )" - - fused_confidence="$( - extract_value "fused_confidence" "${report_file}" - )" - - dominant_pattern="$( - extract_value "dominant_pattern" "${report_file}" - )" - - dominant_expert="$( - extract_value "dominant_expert" "${report_file}" - )" - - predicted_label="$( - classify_score "${hazard_evidence}" - )" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${label}" \ - "${predicted_label}" \ - "${observation_start_time}" \ - "${cutoff_time}" \ - "${evidence_event_count}" \ - "${hazard_evidence}" \ - "${fused_confidence}" \ - "${dominant_pattern}" \ - "${dominant_expert}" \ - >> "${SUMMARY_FILE}" -} - -cat > "${SUMMARY_FILE}" <<'EOF' -case_id,label,predicted_label,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert -EOF - -run_window \ - "cebu_2021_control" \ - "0" \ - "2020-09-29T13:59:43Z" \ - "2021-09-29T13:59:43Z" \ - "2021-09-30T13:59:43Z" \ - "0.0" \ - "0.0" \ - "Cebu 2021 negative control" - -run_window \ - "cebu_2022_control" \ - "0" \ - "2021-09-29T13:59:43Z" \ - "2022-09-29T13:59:43Z" \ - "2022-09-30T13:59:43Z" \ - "0.0" \ - "0.0" \ - "Cebu 2022 negative control" - -run_window \ - "cebu_2023_control" \ - "0" \ - "2022-09-29T13:59:43Z" \ - "2023-09-29T13:59:43Z" \ - "2023-09-30T13:59:43Z" \ - "0.0" \ - "0.0" \ - "Cebu 2023 negative control" - -run_window \ - "cebu_2024_control" \ - "0" \ - "2023-09-29T13:59:43Z" \ - "2024-09-29T13:59:43Z" \ - "2024-09-30T13:59:43Z" \ - "0.0" \ - "0.0" \ - "Cebu 2024 negative control" - -run_window \ - "cebu_2025_positive" \ - "1" \ - "2024-09-29T13:59:43Z" \ - "2025-09-29T13:59:43Z" \ - "2025-09-30T13:59:43Z" \ - "10.0" \ - "6.9" \ - "Offshore Northern Cebu Philippines" - -echo -echo "Validation suite complete." -echo "Frozen threshold: ${FROZEN_THRESHOLD}" -echo "Summary:" -echo " ${SUMMARY_FILE}" \ No newline at end of file diff --git a/experiments/davao_2026/README.md b/experiments/davao_2026/README.md deleted file mode 100644 index 70184eb..0000000 --- a/experiments/davao_2026/README.md +++ /dev/null @@ -1,171 +0,0 @@ -# Davao and Southern Mindanao 2026 Hindcast Experiment - -This experiment evaluates the frozen CAMEFF b1.0.0 validation pipeline -against the 7 June 2026 M7.8 southern Mindanao earthquake. - -## Target event - -* Time: 2026-06-07 23:37:41 UTC -* Latitude: 5.599 degrees north -* Longitude: 125.056 degrees east -* Depth: 57.0 km -* Magnitude: M7.8 -* USGS event identifier: us7000srb1 -* USGS description: 25 km southwest of Kablalan, Philippines -* Regional setting: southern Mindanao and Offshore Sarangani -* Tectonic setting: regional subduction-related tectonic earthquake - -## Frozen validation rules - -The following rules were fixed before evaluating this case: - -* Warning threshold: 0.73 -* Forecast lead time: 24 hours -* Evidence window: 365 days -* Analysis radius: 500 km -* Minimum catalog magnitude: M2.5 -* Minimum evidence events: 20 - -Neither the threshold nor the core CAMEFF mathematics may be changed to -fit the Davao result. - -## Why this case matters - -The event occurred south of Mindanao and affected the wider southern -Mindanao and Davao region. - -It differs from the shallow Cebu crustal event in source depth and -regional tectonic structure. It therefore provides another untouched -test of CAMEFF pattern classification and expert fusion. - -A positive score below 0.73 must be recorded as a miss. - -## Validation catalog - -The catalog covers approximately five years before the target event. - -Acquisition parameters: - -* Start: 2021-06-06 23:37:41 UTC -* End: 2026-06-07 23:37:40 UTC -* Centre: 5.599, 125.056 -* Radius: 500 km -* Minimum magnitude: M2.5 -* Event type: earthquake -* Ordering: ascending origin time - -The catalog ends one second before the target event, preventing direct -target leakage. - -## Download - -From the repository root: - -```bash -./experiments/davao_2026/fetch_usgs_raw.sh -``` - -The raw catalog is written to: - -```text -experiments/davao_2026/data/raw/usgs_davao_2021_2026_raw.csv -``` - -## Normalize - -Build the CAMEFF utilities: - -```bash -cmake --build build -``` - -Normalize the catalog: - -```bash -./experiments/davao_2026/normalize_catalog.sh -``` - -The normalized catalog is written to: - -```text -experiments/davao_2026/data/normalized/catalog.csv -``` - -## Planned positive window - -* Evidence start: 2025-06-06 23:37:41 UTC -* Cutoff: 2026-06-06 23:37:41 UTC -* Target: 2026-06-07 23:37:41 UTC -* Forecast lead time: 24 hours -* Expected label: positive - -## Planned controls - -* Davao 2022 annual control -* Davao 2023 annual control -* Davao 2024 annual control -* Davao 2025 annual control - -All controls will use the frozen warning threshold of 0.73. - -## Interpretation - -CAMEFF hazard evidence is an uncalibrated evidence score and not an -earthquake occurrence probability. - -This is an untouched retrospective generalization test. - -## Run the positive hindcast - -From the repository root: - -```bash -./experiments/davao_2026/run_hindcast.sh -``` - -The positive experiment uses a cutoff exactly twenty-four hours before -the M7.8 target event. - -The generated report is written to: - -```text -experiments/davao_2026/results/davao_2026_hindcast.txt -``` - -## Run the validation suite - -Run the four annual controls and positive target window: - -```bash -./experiments/davao_2026/run_validation_suite.sh -``` - -Inspect the results: - -```bash -column -s, -t \ - experiments/davao_2026/results/davao_validation_windows.csv -``` - -The `predicted_label` field uses the frozen threshold of 0.73: - -* `1` means CAMEFF issued a warning. -* `0` means the score remained below the warning threshold. - -## Frozen-threshold metrics - -Generate the Davao metrics: - -```bash -./experiments/davao_2026/run_threshold_report.sh -``` - -Inspect the metrics: - -```bash -column -s, -t \ - experiments/davao_2026/results/davao_frozen_threshold_metrics.csv -``` - -The threshold must remain fixed at 0.73. A positive score below this -threshold must be recorded as a miss. diff --git a/experiments/davao_2026/data/normalized/catalog.csv b/experiments/davao_2026/data/normalized/catalog.csv deleted file mode 100644 index 288912f..0000000 --- a/experiments/davao_2026/data/normalized/catalog.csv +++ /dev/null @@ -1,4369 +0,0 @@ -time,latitude,longitude,depth,mag,region -2021-06-07T00:51:44.500Z,2.8488,128.5901,175.23,4.3,139 km NNE of Tobelo Indonesia -2021-06-07T07:16:28.415Z,2.8449,127.6775,35,4.2,128 km NNW of Tobelo Indonesia -2021-06-07T14:14:18.132Z,8.6447,127.0288,10,4.3,82 km ENE of Hinatuan Philippines -2021-06-09T03:05:27.247Z,3.3687,126.5437,63.04,4.4,243 km NW of Tobelo Indonesia -2021-06-09T08:11:08.280Z,9.085,126.1551,76.49,4.5,3 km S of Buenavista Philippines -2021-06-09T18:49:36.060Z,5.8057,126.221,111.39,4.5,61 km S of Pondaguitan Philippines -2021-06-09T22:00:32.741Z,3.3856,126.7122,35,4.5,233 km NW of Tobelo Indonesia -2021-06-10T02:42:25.419Z,5.8647,126.2193,67.08,4.9,55 km S of Pondaguitan Philippines -2021-06-11T21:37:56.209Z,6.067,126.1689,102.46,4.3,32 km S of Pondaguitan Philippines -2021-06-13T01:14:51.824Z,1.364,124.4511,207.89,5,39 km W of Tomohon Indonesia -2021-06-14T11:44:57.174Z,2.9379,127.3559,77.17,4.2,152 km NNW of Tobelo Indonesia -2021-06-14T14:38:41.447Z,7.7102,124.967,5.86,5.7,5 km NW of Don Carlos Philippines -2021-06-14T14:49:44.579Z,7.8263,125.005,10,4.7,4 km WSW of Dologon Philippines -2021-06-14T14:49:54.793Z,7.5814,124.9042,10,5.3,2 km SSW of Kadingilan Philippines -2021-06-14T14:56:14.457Z,7.7121,124.9707,10,4.3,5 km NW of Don Carlos Philippines -2021-06-14T14:59:44.957Z,7.7497,124.9362,10,4.5,7 km W of Maramag Philippines -2021-06-14T15:44:24.892Z,7.6354,124.7796,10,4.3,5 km NW of Osias Philippines -2021-06-14T18:06:48.184Z,4.7832,125.8752,61.11,4.2,82 km SSE of Sarangani Philippines -2021-06-15T06:15:44.541Z,7.0689,123.6684,10,4.5,47 km W of Rimpeso Philippines -2021-06-15T13:40:11.795Z,5.0793,125.8756,149.96,4.5,58 km SE of Sarangani Philippines -2021-06-17T01:04:37.197Z,9.0812,125.9583,10,4.3,12 km N of San Miguel Philippines -2021-06-18T01:13:40.990Z,7.6462,124.7356,10,4.3,8 km ESE of Wao Philippines -2021-06-18T12:59:52.946Z,3.4428,126.8404,35,4.1,229 km NW of Tobelo Indonesia -2021-06-18T18:40:57.781Z,6.9375,124.8181,10,4.3,4 km WSW of Dunguan Philippines -2021-06-18T21:15:28.167Z,7.5677,124.8496,10,4.5,5 km SE of Osias Philippines -2021-06-19T03:38:51.512Z,6.0662,126.7513,99.59,4.4,71 km ESE of Pondaguitan Philippines -2021-06-20T01:37:02.703Z,6.07,126.1648,124.12,4.5,32 km S of Pondaguitan Philippines -2021-06-20T03:20:54.127Z,5.0525,126.0801,88.83,4.6,78 km ESE of Sarangani Philippines -2021-06-21T04:30:34.543Z,5.5368,123.9986,477.28,4.1,75 km SSW of Malisbeng Philippines -2021-06-21T18:55:58.412Z,5.8027,126.6275,63.82,4.2,79 km SE of Pondaguitan Philippines -2021-06-22T13:55:08.826Z,2.5463,128.0027,163.99,4.2,90 km N of Tobelo Indonesia -2021-06-23T06:20:05.900Z,2.4074,125.9964,82.35,4.3,152 km NE of Laikit Laikit II (Dimembe) Indonesia -2021-06-25T09:06:05.700Z,5.8796,125.7529,67.83,4.5,13 km ESE of Caburan Philippines -2021-06-25T13:38:47.675Z,5.3433,127.1976,53.95,4.3,159 km SE of Pondaguitan Philippines -2021-06-25T17:26:50.935Z,1.8382,125.0774,175.17,4.2,40 km NNE of Laikit Laikit II (Dimembe) Indonesia -2021-06-26T04:16:45.123Z,6.0644,126.5176,82.15,4.9,49 km SE of Pondaguitan Philippines -2021-06-26T15:07:18.920Z,8.5281,126.6608,54.88,4.5,39 km ENE of Hinatuan Philippines -2021-06-27T07:14:10.316Z,8.9437,126.2703,49.01,5,2 km WNW of Bacolod Philippines -2021-06-28T15:06:38.141Z,1.8933,125.5053,57.36,4.2,74 km NE of Laikit Laikit II (Dimembe) Indonesia -2021-06-29T07:35:28.322Z,3.9761,125.8465,154.42,4.7,163 km SSE of Sarangani Philippines -2021-06-29T08:56:04.709Z,9.1836,122.3194,62.43,4.6,41 km SW of Colipapa Philippines -2021-06-29T20:31:04.311Z,3.621,126.6753,14.11,4.1,238 km SE of Sarangani Philippines -2021-06-29T23:36:19.458Z,3.9102,125.8904,151.24,4.5,171 km SSE of Sarangani Philippines -2021-06-30T09:58:05.823Z,9.4892,126.1217,36.14,4.6,22 km SE of Socorro Philippines -2021-06-30T15:51:46.371Z,9.1432,126.4753,35,4.1,29 km NE of La Paz Philippines -2021-06-30T18:53:43.024Z,5.6658,126.0994,122.29,4,57 km ESE of Caburan Philippines -2021-07-02T13:39:40.518Z,7.102,123.2024,10,4.2,39 km SSW of Panubigan Philippines -2021-07-02T13:43:14.085Z,1.8173,127.4782,118.63,4.3,59 km W of Tobelo Indonesia -2021-07-04T16:28:32.024Z,3.3213,126.0544,35,4.3,235 km NNE of Laikit Laikit II (Dimembe) Indonesia -2021-07-04T16:39:26.885Z,1.3853,126.4206,39.5,4.4,125 km WNW of Ternate Indonesia -2021-07-04T17:04:40.824Z,9.7783,126.4913,36.14,4.5,Mindanao Philippines -2021-07-04T19:20:48.666Z,3.6388,126.7633,45.86,4.1,242 km SE of Sarangani Philippines -2021-07-04T22:13:39.484Z,3.2917,122.5766,544.13,4.4,Celebes Sea -2021-07-04T23:52:57.565Z,2.8393,128.5111,223.26,4.3,134 km NNE of Tobelo Indonesia -2021-07-05T19:57:23.025Z,9.0051,126.5935,45.66,4.5,33 km ENE of Aras-asan Philippines -2021-07-06T14:38:16.369Z,6.9681,125.1636,11.49,4.5,4 km NE of Malasila Philippines -2021-07-06T17:13:36.098Z,4.2124,124.605,321.74,4,162 km SW of Sarangani Philippines -2021-07-06T21:35:00.908Z,1.9838,127.6452,10,4.5,49 km NW of Tobelo Indonesia -2021-07-07T20:58:51.969Z,6.0093,125.3602,173.08,4.4,6 km SSW of Suyan Philippines -2021-07-08T06:19:41.456Z,5.4695,126.5002,47.51,4.5,104 km SSE of Pondaguitan Philippines -2021-07-08T10:09:17.725Z,5.3333,126.4682,24.06,5.2,111 km E of Sarangani Philippines -2021-07-08T20:36:09.307Z,4.3966,123.6905,544.02,4.2,202 km SSW of Maitum Philippines -2021-07-08T20:50:18.464Z,4.1661,126.7602,44.38,4.4,198 km SE of Sarangani Philippines -2021-07-09T00:24:44.965Z,5.4378,125.8074,150.79,4.3,38 km E of Sarangani Philippines -2021-07-09T04:12:27.985Z,3.1991,128.0723,140.64,4.3,162 km N of Tobelo Indonesia -2021-07-09T08:34:51.161Z,8.5765,123.2523,10,4.6,6 km NNE of Langatian Philippines -2021-07-09T09:31:29.639Z,2.2036,126.6825,41.99,4.2,156 km WNW of Tobelo Indonesia -2021-07-10T00:43:55.986Z,2.9494,126.4984,44.33,6.1,215 km NW of Tobelo Indonesia -2021-07-10T00:51:08.753Z,2.9677,126.5601,42.57,5.5,211 km NW of Tobelo Indonesia -2021-07-10T00:58:13.388Z,2.9189,126.5451,51.27,5,209 km NW of Tobelo Indonesia -2021-07-10T01:14:10.317Z,2.8401,126.3049,34,4.2,210 km NE of Laikit Laikit II (Dimembe) Indonesia -2021-07-10T01:19:03.431Z,2.8478,126.5982,68.76,4.2,199 km NW of Tobelo Indonesia -2021-07-10T02:20:25.555Z,2.9486,126.6554,63.25,4.4,202 km NW of Tobelo Indonesia -2021-07-10T02:26:13.976Z,2.8069,126.634,64.68,4.5,193 km NW of Tobelo Indonesia -2021-07-10T02:30:59.846Z,2.896,126.6966,77.12,4.6,194 km NW of Tobelo Indonesia -2021-07-10T02:33:37.507Z,2.903,126.6469,69.12,4.6,199 km NW of Tobelo Indonesia -2021-07-10T03:00:43.512Z,2.8374,126.6152,66.25,4,197 km NW of Tobelo Indonesia -2021-07-10T03:30:52.786Z,2.8154,126.5768,63.88,4.6,199 km NW of Tobelo Indonesia -2021-07-10T07:25:52.444Z,2.838,126.3574,38.97,4.1,214 km NE of Laikit Laikit II (Dimembe) Indonesia -2021-07-10T10:04:53.128Z,2.8882,126.7395,52.11,4.5,Molucca Sea -2021-07-10T10:06:30.405Z,2.8571,126.6144,55.94,4.8,199 km NW of Tobelo Indonesia -2021-07-10T18:45:19.834Z,6.3799,124.0361,77.49,4.9,7 km S of Sangay Philippines -2021-07-11T02:12:59.236Z,3.1954,126.8369,47.5,4.1,208 km NW of Tobelo Indonesia -2021-07-11T04:24:43.123Z,4.8984,126.1638,91.29,4.4,95 km SE of Sarangani Philippines -2021-07-11T16:07:32.778Z,2.9087,126.5959,55.15,4.5,204 km NW of Tobelo Indonesia -2021-07-11T17:07:23.691Z,8.7759,126.2666,78.05,4.3,Mindanao Philippines -2021-07-12T00:02:48.885Z,3.2509,127.9314,66.61,4.7,168 km N of Tobelo Indonesia -2021-07-14T13:51:01.020Z,6.0099,123.9427,513.63,4.2,35 km SW of Palimbang Philippines -2021-07-15T13:00:32.166Z,2.7696,126.7891,58.03,4.5,177 km NW of Tobelo Indonesia -2021-07-15T19:10:50.823Z,6.5763,126.0947,82.55,4.2,3 km N of Magdug Philippines -2021-07-15T19:38:58.800Z,3.6761,127.2677,40.43,4.3,230 km NNW of Tobelo Indonesia -2021-07-17T12:58:41.953Z,1.6999,127.2472,120.62,4.5,84 km W of Tobelo Indonesia -2021-07-18T00:09:35.666Z,6.4617,126.2332,70.91,5.1,12 km E of Nangan Philippines -2021-07-18T01:23:55.072Z,3.604,127.2954,47.66,4.1,222 km NNW of Tobelo Indonesia -2021-07-18T03:08:33.908Z,6.2303,124.4073,408.45,4.4,13 km NNE of Malisbeng Philippines -2021-07-18T12:09:43.101Z,6.234,125.7788,118.57,4.4,12 km ESE of Talagutong Philippines -2021-07-18T16:21:13.228Z,2.5869,122.1679,531.46,4.3,247 km NNW of Gorontalo Indonesia -2021-07-18T17:31:15.537Z,6.4744,126.0567,84,4.4,5 km W of Tiblawan Philippines -2021-07-19T07:28:08.193Z,7.6783,126.4905,99.92,4.4,6 km SSW of Taytayan Philippines -2021-07-19T18:39:39.285Z,3.6454,126.7215,64.08,4.5,239 km SE of Sarangani Philippines -2021-07-19T22:19:13.591Z,5.6524,126.493,82.76,4.3,85 km SSE of Pondaguitan Philippines -2021-07-20T19:04:18.532Z,2.3875,126.6485,59.88,4.3,168 km WNW of Tobelo Indonesia -2021-07-20T20:26:46.130Z,5.6101,126.7376,87.68,5.2,Mindanao Philippines -2021-07-21T03:50:42.581Z,2.6702,128.4002,46.91,4.5,112 km NNE of Tobelo Indonesia -2021-07-24T13:07:22.389Z,2.8784,126.5971,54.75,5.3,202 km NW of Tobelo Indonesia -2021-07-25T22:01:44.479Z,2.9307,122.8413,531.97,4.2,265 km N of Gorontalo Indonesia -2021-07-25T22:27:31.911Z,6.5024,126.4284,73.08,4.9,31 km ENE of Pondaguitan Philippines -2021-07-26T11:52:20.708Z,6.334,127.1016,35,4.4,102 km E of Pondaguitan Philippines -2021-07-28T15:13:01.066Z,2.345,126.8548,57.05,4.1,Molucca Sea -2021-07-28T17:40:26.114Z,1.4447,126.503,53.93,4.4,121 km NW of Ternate Indonesia -2021-07-28T21:13:48.859Z,1.6963,126.4809,51.69,4.5,141 km NW of Ternate Indonesia -2021-07-30T10:07:46.798Z,1.5377,124.4335,238.47,4.2,46 km W of Manado Indonesia -2021-07-30T10:17:32.536Z,2.5382,126.4231,50.58,4.2,197 km WNW of Tobelo Indonesia -2021-07-30T17:52:04.667Z,3.9327,127.8582,114.57,4.8,244 km N of Tobelo Indonesia -2021-07-31T03:37:11.407Z,2.4136,128.0065,181.08,4,75 km N of Tobelo Indonesia -2021-07-31T05:29:21.624Z,1.9721,124.1382,298.9,4.2,95 km NW of Manado Indonesia -2021-07-31T12:42:50.902Z,3.7176,128.9337,10,4.2,242 km NNE of Tobelo Indonesia -2021-08-01T06:18:52.021Z,3.6588,124.5057,318.15,4.3,220 km SSW of Sarangani Philippines -2021-08-02T09:10:18.901Z,1.2906,125.8666,10,4,101 km ESE of Laikit Laikit II (Dimembe) Indonesia -2021-08-02T15:04:24.709Z,1.841,127.3842,122.48,5.1,70 km W of Tobelo Indonesia -2021-08-02T16:44:56.231Z,4.5925,126.7437,91.45,4,167 km ESE of Sarangani Philippines -2021-08-03T02:40:52.766Z,5.9946,126.4301,99.96,4.7,49 km SE of Pondaguitan Philippines -2021-08-04T05:42:35.757Z,2.475,125.91,126.81,4.2,150 km NE of Laikit Laikit II (Dimembe) Indonesia -2021-08-04T16:56:45.334Z,5.0473,125.2793,38.99,4.9,44 km SSW of Sarangani Philippines -2021-08-04T19:11:36.370Z,4.8572,127.5168,96.59,4.9,222 km SE of Pondaguitan Philippines -2021-08-05T07:44:11.165Z,2.3927,125.4868,158.02,4.3,115 km NNE of Laikit Laikit II (Dimembe) Indonesia -2021-08-06T03:42:50.023Z,6.0065,127.5076,10,4.7,152 km ESE of Pondaguitan Philippines -2021-08-06T05:24:10.678Z,4.9072,127.425,115.17,4.2,211 km SE of Pondaguitan Philippines -2021-08-06T16:08:58.061Z,4.8347,122.9098,603.23,4.8,173 km SE of Tabiauan Philippines -2021-08-06T23:26:32.946Z,2.907,125.9115,56.03,4.5,188 km NNE of Laikit Laikit II (Dimembe) Indonesia -2021-08-08T07:07:04.993Z,1.4241,126.3214,42.54,4.2,137 km WNW of Ternate Indonesia -2021-08-10T05:13:40.320Z,1.8083,126.3027,38.53,4.2,151 km ENE of Laikit Laikit II (Dimembe) Indonesia -2021-08-10T09:48:07.499Z,6.691,126.909,63.54,4.5,64 km ESE of Lukatan Philippines -2021-08-11T01:48:53.404Z,6.723,126.8737,63.33,4.4,59 km ESE of Lukatan Philippines -2021-08-11T17:46:13.143Z,6.4748,126.7151,55.14,7.1,60 km ENE of Pondaguitan Philippines -2021-08-11T17:54:01.918Z,6.4952,127.1101,67.54,4.6,95 km SE of Lukatan Philippines -2021-08-11T18:05:11.353Z,6.1059,127.1725,48.68,4.8,113 km ESE of Pondaguitan Philippines -2021-08-11T18:28:22.496Z,5.8294,127.0825,60.81,4.5,116 km ESE of Pondaguitan Philippines -2021-08-11T18:44:07.577Z,5.9432,127.0762,66.79,4.1,109 km ESE of Pondaguitan Philippines -2021-08-11T19:25:24.568Z,6.8038,125.8825,48.02,4.3,17 km SW of Lupon Philippines -2021-08-11T19:28:31.175Z,6.1997,126.9974,50,4.9,92 km E of Pondaguitan Philippines -2021-08-11T20:53:16.629Z,6.1261,127.0035,67.07,4.3,95 km ESE of Pondaguitan Philippines -2021-08-11T21:53:02.217Z,6.2211,127.4295,10,4,139 km E of Pondaguitan Philippines -2021-08-11T23:34:27.932Z,5.9471,127.1757,48.4,4.4,119 km ESE of Pondaguitan Philippines -2021-08-12T01:52:46.881Z,6.0043,126.9228,73.25,4.4,91 km ESE of Pondaguitan Philippines -2021-08-12T02:26:11.274Z,6.1544,127.2935,35,5.2,125 km E of Pondaguitan Philippines -2021-08-12T05:01:16.415Z,6.1884,127.1968,6.65,4.3,114 km E of Pondaguitan Philippines -2021-08-12T05:25:23.290Z,6.1249,126.9949,42.27,4.4,94 km ESE of Pondaguitan Philippines -2021-08-12T08:17:30.055Z,6.0264,127.2875,26.29,4.5,128 km ESE of Pondaguitan Philippines -2021-08-12T08:49:57.687Z,6.2215,127.3112,46.26,4.7,126 km E of Pondaguitan Philippines -2021-08-12T09:07:54.893Z,6.11,127.4146,30.53,4.3,139 km ESE of Pondaguitan Philippines -2021-08-12T11:25:10.353Z,6.0089,127.3047,53.68,4.6,130 km ESE of Pondaguitan Philippines -2021-08-12T13:00:12.986Z,6.0257,127.0392,68.05,4.5,102 km ESE of Pondaguitan Philippines -2021-08-12T13:34:37.772Z,1.5963,126.5888,70.26,4.6,125 km NW of Ternate Indonesia -2021-08-12T13:48:27.843Z,6.1345,127.1558,67.52,4.5,111 km ESE of Pondaguitan Philippines -2021-08-12T14:03:05.529Z,6.0215,127.1194,73.75,4.6,110 km ESE of Pondaguitan Philippines -2021-08-12T14:54:21.021Z,6.0476,127.1353,62.64,4.6,Philippine Islands region -2021-08-12T15:42:27.595Z,6.1397,127.1673,35,5.1,112 km ESE of Pondaguitan Philippines -2021-08-12T15:53:28.451Z,6.2918,127.3033,10,5.7,124 km E of Pondaguitan Philippines -2021-08-12T15:57:46.068Z,6.0667,127.0908,42.22,4.7,106 km ESE of Pondaguitan Philippines -2021-08-12T16:25:38.556Z,5.9216,127.19,65.96,4.2,122 km ESE of Pondaguitan Philippines -2021-08-12T18:01:17.818Z,6.1612,126.975,59.54,4.9,90 km ESE of Pondaguitan Philippines -2021-08-12T18:09:16.359Z,6.066,127.4212,10,4.4,141 km ESE of Pondaguitan Philippines -2021-08-12T18:30:00.405Z,4.6259,125.3999,10,4.2,86 km S of Sarangani Philippines -2021-08-12T18:32:56.344Z,6.0612,127.256,53.45,4.5,123 km ESE of Pondaguitan Philippines -2021-08-12T20:17:08.715Z,5.9682,127.1991,54.57,5.2,121 km ESE of Pondaguitan Philippines -2021-08-12T20:28:38.526Z,6.0938,127.1584,53.41,5,112 km ESE of Pondaguitan Philippines -2021-08-12T21:03:44.896Z,6.0066,127.1512,47.75,5.3,114 km ESE of Pondaguitan Philippines -2021-08-12T21:14:20.019Z,5.2457,124.8092,18.01,4.7,69 km SSW of Daliao Philippines -2021-08-13T05:37:59.920Z,6.2007,127.1194,60.85,4.5,105 km E of Pondaguitan Philippines -2021-08-13T06:26:15.839Z,6.5313,126.472,38.95,4.5,37 km ENE of Pondaguitan Philippines -2021-08-13T06:55:51.403Z,5.917,126.7383,92.54,4.5,79 km SE of Pondaguitan Philippines -2021-08-13T10:50:48.431Z,6.2299,127.3214,10,4.4,127 km E of Pondaguitan Philippines -2021-08-13T17:31:23.735Z,5.9209,127.17,65.21,4.5,120 km ESE of Pondaguitan Philippines -2021-08-13T17:33:17.881Z,6.1614,126.9603,80.12,4.8,Mindanao Philippines -2021-08-13T18:03:16.527Z,6.0249,127.1172,69.58,4.5,110 km ESE of Pondaguitan Philippines -2021-08-13T18:17:13.495Z,6.0794,127.1222,63.78,4.6,109 km ESE of Pondaguitan Philippines -2021-08-13T18:25:46.144Z,6.1155,127.1299,60.48,4.5,108 km ESE of Pondaguitan Philippines -2021-08-13T19:00:35.645Z,6.1984,127.0965,62.62,4.9,103 km E of Pondaguitan Philippines -2021-08-13T21:20:09.721Z,4.0932,126.9166,91.35,4.2,216 km SE of Sarangani Philippines -2021-08-13T21:45:06.310Z,6.2068,127.0475,35,4.8,97 km E of Pondaguitan Philippines -2021-08-14T01:27:41.089Z,6.0483,127.116,29.37,5.1,109 km ESE of Pondaguitan Philippines -2021-08-14T02:14:00.666Z,6.1153,127.0527,68.55,4.5,100 km ESE of Pondaguitan Philippines -2021-08-14T10:30:41.952Z,9.8416,125.9073,67.63,4.9,7 km WSW of Del Carmen Surigao del Norte Philippines -2021-08-14T19:22:17.795Z,6.0785,127.0767,51.42,4.4,104 km ESE of Pondaguitan Philippines -2021-08-14T20:11:04.956Z,2.4908,128.2354,218.03,4,87 km NNE of Tobelo Indonesia -2021-08-14T22:09:19.690Z,6.0288,127.6807,10.41,4.2,170 km ESE of Pondaguitan Philippines -2021-08-15T03:56:31.300Z,6.0533,127.3156,35,4.3,130 km ESE of Pondaguitan Philippines -2021-08-15T05:50:16.652Z,6.2125,127.0091,35,4.2,93 km E of Pondaguitan Philippines -2021-08-15T08:06:30.879Z,6.1345,127.0206,61.74,4.6,96 km ESE of Pondaguitan Philippines -2021-08-15T13:01:24.898Z,6.0132,127.3151,9.48,4.5,131 km ESE of Pondaguitan Philippines -2021-08-16T08:04:58.535Z,6.0547,126.8622,68.79,4.6,82 km ESE of Pondaguitan Philippines -2021-08-17T14:17:00.660Z,9.0781,126.9615,10,4.2,74 km ENE of Aras-asan Philippines -2021-08-17T19:43:34.804Z,6.8147,127.375,10,4,102 km ESE of Manay Philippines -2021-08-17T19:54:35.060Z,6.073,127.2883,10,4.4,Philippine Islands region -2021-08-18T13:11:28.071Z,3.6847,126.7434,35,4.2,237 km SE of Sarangani Philippines -2021-08-19T17:18:16.976Z,2.922,123.0448,476.8,4.2,256 km NW of Manado Indonesia -2021-08-20T00:20:26.899Z,5.3162,126.494,21.51,4.1,Mindanao Philippines -2021-08-20T22:21:53.424Z,3.6765,123.4147,465.36,4.2,287 km SSW of Maitum Philippines -2021-08-20T23:55:06.157Z,3.8059,126.6323,53.13,4.4,219 km SE of Sarangani Philippines -2021-08-21T04:45:25.915Z,5.2765,125.7346,160.89,4.2,33 km ESE of Sarangani Philippines -2021-08-22T03:20:28.432Z,3.8562,126.7489,60.66,4.3,222 km SE of Sarangani Philippines -2021-08-22T23:58:19.494Z,5.916,127.3927,10,4.4,143 km ESE of Pondaguitan Philippines -2021-08-23T12:22:52.050Z,2.9319,124.4293,322.71,4,166 km NNW of Manado Indonesia -2021-08-24T18:17:53.172Z,4.1223,126.6662,43.95,4.5,194 km SE of Sarangani Philippines -2021-08-25T03:32:39.517Z,1.7068,127.1684,113.28,4.5,93 km W of Tobelo Indonesia -2021-08-25T12:03:12.660Z,7.1198,122.8975,10,4.8,21 km SSE of Olutanga Philippines -2021-08-26T09:23:14.385Z,5.1995,125.4057,188.59,4.7,23 km SSW of Sarangani Philippines -2021-08-26T14:30:12.812Z,4.5452,125.2971,65.31,4.9,96 km S of Sarangani Philippines -2021-08-26T20:39:42.722Z,5.5505,126.4967,100.52,4.5,96 km SSE of Pondaguitan Philippines -2021-08-27T10:22:26.052Z,5.671,125.0293,54.5,5.6,20 km S of Malbang Philippines -2021-08-27T11:07:03.068Z,5.6457,125.2687,64.63,4.5,6 km SSW of Pangyan Philippines -2021-08-27T11:36:27.062Z,5.5477,125.2078,55.62,4.3,16 km W of Balangonan Philippines -2021-08-28T11:25:03.865Z,7.3338,127.1512,10,4.6,63 km ESE of Baculin Philippines -2021-08-28T22:56:58.484Z,6.184,126.8295,78.32,4.1,74 km ESE of Pondaguitan Philippines -2021-08-29T14:53:04.629Z,7.9497,126.2274,35,4.6,11 km SE of Santa Maria Philippines -2021-08-30T05:21:49.955Z,5.014,127.5176,88.41,4.2,210 km SE of Pondaguitan Philippines -2021-08-30T13:36:54.601Z,6.1278,127.1499,60.82,4.4,110 km ESE of Pondaguitan Philippines -2021-08-31T07:29:02.426Z,3.3862,123.1953,462.07,4,279 km NW of Manado Indonesia -2021-08-31T22:26:05.831Z,7.1271,125.6224,23.22,4.5,6 km N of Davao Philippines -2021-09-02T01:55:14.500Z,3.6951,126.5111,58.82,4.1,221 km SSE of Sarangani Philippines -2021-09-02T02:38:17.268Z,1.8706,127.5207,134.99,4.2,Halmahera Indonesia -2021-09-03T01:55:46.729Z,1.9069,127.4775,113.55,4,62 km WNW of Tobelo Indonesia -2021-09-03T17:22:23.190Z,3.4304,126.7507,46.66,4.3,234 km NW of Tobelo Indonesia -2021-09-04T03:46:06.345Z,3.6821,128.794,10,4.8,north of Halmahera Indonesia -2021-09-05T15:23:13.732Z,4.1856,126.8558,60.95,4.6,204 km SE of Sarangani Philippines -2021-09-05T22:50:15.877Z,5.3532,126.4715,56.27,4.4,111 km SE of Caburan Philippines -2021-09-06T10:27:24.779Z,5.4654,126.3119,71.67,4.5,89 km SE of Caburan Philippines -2021-09-06T10:38:59.105Z,5.5061,126.6961,56.8,4.9,110 km SSE of Pondaguitan Philippines -2021-09-06T16:50:16.654Z,5.498,126.707,52.71,4.5,112 km SSE of Pondaguitan Philippines -2021-09-06T21:16:25.590Z,5.5296,126.8831,10,4.6,120 km SE of Pondaguitan Philippines -2021-09-06T23:53:49.330Z,3.1596,126.8808,39.56,4.7,201 km NW of Tobelo Indonesia -2021-09-07T00:59:00.077Z,3.1243,126.8355,49.84,4.4,202 km NW of Tobelo Indonesia -2021-09-07T02:29:30.997Z,5.505,126.7069,44.07,4.9,Mindanao Philippines -2021-09-07T04:06:33.856Z,5.4363,126.0877,67.86,4.4,69 km E of Sarangani Philippines -2021-09-07T14:00:26.932Z,5.866,127.2807,19.46,4.4,133 km ESE of Pondaguitan Philippines -2021-09-07T18:29:22.778Z,8.3118,126.6729,74.46,4.6,31 km ENE of Barcelona Philippines -2021-09-08T05:15:18.245Z,6.0972,126.9303,57.64,4.5,88 km ESE of Pondaguitan Philippines -2021-09-08T08:44:44.865Z,5.8681,126.5877,84.51,4.2,70 km SE of Pondaguitan Philippines -2021-09-09T05:19:51.742Z,5.8923,126.2337,96.3,4.5,52 km S of Pondaguitan Philippines -2021-09-09T15:18:00.320Z,5.4587,127.1521,48.8,4.3,146 km SE of Pondaguitan Philippines -2021-09-10T04:04:16.385Z,5.5567,126.5134,61.88,4.2,96 km SSE of Pondaguitan Philippines -2021-09-10T12:17:46.331Z,5.3684,126.3287,55.34,4.1,95 km E of Sarangani Philippines -2021-09-11T07:39:38.375Z,2.9931,128.2071,52.12,4.1,141 km N of Tobelo Indonesia -2021-09-11T20:14:36.755Z,5.526,126.5816,41.28,4.6,102 km SSE of Pondaguitan Philippines -2021-09-12T12:14:44.837Z,5.4862,126.3454,58.71,4.4,91 km ESE of Caburan Philippines -2021-09-12T13:34:34.651Z,3.7563,128.7363,10,4.7,238 km NNE of Tobelo Indonesia -2021-09-13T20:13:57.724Z,5.3559,127.2472,17.4,4.1,162 km SE of Pondaguitan Philippines -2021-09-14T09:55:46.567Z,5.2033,121.8517,10,4.4,91 km S of Tabiauan Philippines -2021-09-15T04:42:06.840Z,3.1965,126.6683,54.64,4.7,220 km NW of Tobelo Indonesia -2021-09-16T02:22:20.173Z,5.7876,127.482,10,4.4,157 km ESE of Pondaguitan Philippines -2021-09-17T12:43:56.319Z,4.9143,126.2628,93.45,4.8,103 km ESE of Sarangani Philippines -2021-09-18T09:37:53.545Z,5.3974,125.6083,9.45,4.3,16 km E of Sarangani Philippines -2021-09-18T14:49:14.879Z,2.9477,126.5979,37.17,4.4,206 km NW of Tobelo Indonesia -2021-09-20T23:56:57.178Z,1.8003,125.8664,56.37,4.9,105 km ENE of Laikit Laikit II (Dimembe) Indonesia -2021-09-21T13:59:55.536Z,4.6105,126.7835,54.08,4.7,170 km ESE of Sarangani Philippines -2021-09-21T21:33:53.977Z,5.3241,128.0581,10,4.1,237 km ESE of Pondaguitan Philippines -2021-09-22T04:02:57.556Z,6.1783,127.4091,10,4.2,137 km E of Pondaguitan Philippines -2021-09-22T05:53:34.071Z,5.5939,126.5276,51.35,4.4,93 km SSE of Pondaguitan Philippines -2021-09-22T06:50:49.692Z,8.1735,126.5754,87.12,4.5,15 km E of Barcelona Philippines -2021-09-22T12:03:30.086Z,1.8112,126.5903,33.84,5.4,143 km NW of Ternate Indonesia -2021-09-22T15:03:34.343Z,5.7731,127.1808,10,4.4,128 km ESE of Pondaguitan Philippines -2021-09-22T22:43:49.234Z,1.8746,126.6,38.12,4.3,148 km NW of Ternate Indonesia -2021-09-23T03:52:41.032Z,3.5423,122.6034,540.51,4.5,285 km SSE of Tabiauan Philippines -2021-09-24T06:36:17.020Z,2.1052,126.691,35.78,5.3,152 km WNW of Tobelo Indonesia -2021-09-24T11:35:15.210Z,2.8435,127.2407,69.13,4.7,150 km NW of Tobelo Indonesia -2021-09-26T05:30:05.889Z,9.823,123.7196,10,4.5,8 km WNW of Loon Philippines -2021-09-28T11:10:20.377Z,3.0937,126.1597,102.16,4.4,221 km NE of Laikit Laikit II (Dimembe) Indonesia -2021-09-29T15:48:54.825Z,5.5515,124.793,35,4.8,37 km SSW of Lumatil Philippines -2021-10-02T18:06:51.811Z,9.3026,125.3054,10,4.5,23 km W of Jabonga Philippines -2021-10-03T22:05:50.511Z,5.9709,126.1064,139.27,4.6,43 km S of Pondaguitan Philippines -2021-10-05T03:50:49.415Z,6.4654,126.6637,102.32,4.4,54 km ENE of Pondaguitan Philippines -2021-10-05T04:17:51.142Z,3.0575,126.9521,35,4.6,188 km NW of Tobelo Indonesia -2021-10-05T05:44:23.372Z,2.8751,128.0841,118.66,4.4,127 km N of Tobelo Indonesia -2021-10-05T08:51:08.617Z,2.7502,122.2881,543.42,4.5,259 km NNW of Gorontalo Indonesia -2021-10-05T14:45:49.299Z,4.8591,127.1016,32.19,4.4,191 km ESE of Sarangani Philippines -2021-10-05T23:10:02.683Z,4.8459,127.0294,73.16,4.3,184 km ESE of Sarangani Philippines -2021-10-06T10:12:25.458Z,4.4991,125.6003,165.24,4,101 km S of Sarangani Philippines -2021-10-06T16:51:48.242Z,4.9594,127.3932,122.78,4.1,205 km SE of Pondaguitan Philippines -2021-10-06T23:40:21.952Z,2.5773,128.2326,179.82,4.4,97 km NNE of Tobelo Indonesia -2021-10-07T11:03:25.056Z,2.6055,128.2995,150.91,4.3,102 km NNE of Tobelo Indonesia -2021-10-10T11:32:36.429Z,3.3745,122.9715,548.36,4.6,295 km NW of Manado Indonesia -2021-10-11T15:25:54.633Z,5.2029,125.3122,56.96,4.6,27 km SW of Sarangani Philippines -2021-10-11T20:15:59.447Z,6.6445,123.6439,590.23,4.2,43 km W of Taguisa Philippines -2021-10-11T23:30:21.616Z,6.114,126.9141,69.81,5,85 km ESE of Pondaguitan Philippines -2021-10-12T15:16:11.175Z,9.8834,124.2825,10,4.7,1 km S of Dagohoy Philippines -2021-10-12T18:33:29.267Z,5.823,126.4308,141.1,4,65 km SSE of Pondaguitan Philippines -2021-10-13T08:39:09.301Z,2.2276,126.6335,35,4.2,162 km WNW of Tobelo Indonesia -2021-10-13T17:48:09.450Z,4.3648,123.3591,502.56,4.4,223 km SSW of Malisbeng Philippines -2021-10-14T07:14:34.613Z,6.029,126.033,146.86,4.5,37 km E of Lamitan Philippines -2021-10-14T15:16:29.752Z,1.2369,126.1559,41,5.5,134 km ESE of Laikit Laikit II (Dimembe) Indonesia -2021-10-14T21:19:05.589Z,6.7396,127.2997,10,4.7,98 km ESE of San Ignacio Philippines -2021-10-15T03:30:36.273Z,3.5774,123.2438,480.93,4.4,292 km NW of Manado Indonesia -2021-10-15T09:03:10.812Z,4.5076,126.7154,45.79,4.1,170 km SE of Sarangani Philippines -2021-10-15T16:54:48.484Z,8.8157,126.2651,67.98,4.9,3 km WNW of Marihatag Philippines -2021-10-15T17:55:21.189Z,5.4914,127.0086,108.66,4.5,133 km SE of Pondaguitan Philippines -2021-10-15T22:44:42.525Z,8.244,127.4223,10,4.4,109 km E of Barcelona Philippines -2021-10-17T11:28:01.676Z,7.4422,126.5876,156.46,4.3,Mindanao Philippines -2021-10-17T17:16:06.273Z,4.1769,125.8217,84.11,4.2,141 km SSE of Sarangani Philippines -2021-10-18T07:03:49.081Z,2.8002,128.1005,150.07,4.6,118 km N of Tobelo Indonesia -2021-10-21T07:47:28.758Z,2.6545,127.1246,75.56,4.2,142 km NW of Tobelo Indonesia -2021-10-23T23:08:29.143Z,8.5647,127.0163,10,5.1,78 km ENE of Hinatuan Philippines -2021-10-24T03:22:10.401Z,1.5454,126.4982,45.93,4.8,129 km NW of Ternate Indonesia -2021-10-24T21:54:53.514Z,2.9759,128.0103,90.21,4.5,137 km N of Tobelo Indonesia -2021-10-26T05:51:11.106Z,7.5204,126.6653,68.77,4.5,11 km NE of Baculin Philippines -2021-10-27T12:44:26.706Z,6.0198,125.9874,122.99,4.4,32 km ESE of Lamitan Philippines -2021-10-27T13:09:53.317Z,6.7191,124.8692,10,4.1,5 km SSE of Datu Paglas Philippines -2021-10-27T18:13:48.059Z,4.1959,126.6861,10,4.3,190 km SE of Sarangani Philippines -2021-10-27T22:35:37.428Z,3.0758,128.2237,10,4.4,150 km N of Tobelo Indonesia -2021-10-28T10:00:10.505Z,3.0383,127.9991,81.85,4.5,144 km N of Tobelo Indonesia -2021-10-29T04:33:31.864Z,5.2665,125.4891,177.31,5.1,15 km S of Sarangani Philippines -2021-10-30T06:53:09.071Z,9.0673,126.1681,75.22,4.7,3 km WSW of Tandag Philippines -2021-10-30T12:10:36.126Z,6.0187,126.1972,106.76,4.4,37 km S of Pondaguitan Philippines -2021-10-31T07:30:58.807Z,2.9823,127.834,92.23,4.3,140 km N of Tobelo Indonesia -2021-10-31T13:37:50.240Z,4.1881,127.5992,135.03,4.1,272 km ESE of Sarangani Philippines -2021-11-01T18:40:22.906Z,1.9817,126.5754,58.32,4.1,159 km NW of Ternate Indonesia -2021-11-03T09:11:19.437Z,1.8567,126.6245,35.67,4.5,145 km NW of Ternate Indonesia -2021-11-04T05:48:44.323Z,2.1113,127.1169,68.68,4.2,107 km WNW of Tobelo Indonesia -2021-11-05T05:05:23.345Z,9.0667,126.7176,59.35,4.6,48 km ENE of Aras-asan Philippines -2021-11-05T18:25:14.455Z,9.7641,126.7122,10,4.4,66 km E of Union Philippines -2021-11-06T23:19:41.846Z,9.5475,125.8324,10,4.3,Mindanao Philippines -2021-11-07T18:09:19.077Z,10.0646,125.4042,221.29,4.4,23 km WNW of Dinagat Philippines -2021-11-07T21:39:58.545Z,5.659,124.1296,512.97,4,56 km SSW of Malisbeng Philippines -2021-11-08T04:16:47.167Z,7.9544,126.6919,61.18,4.8,27 km E of Santa Maria Philippines -2021-11-08T07:04:49.323Z,6.4451,126.1404,83.03,4.8,3 km SSE of Nangan Philippines -2021-11-09T03:31:32.543Z,3.0036,124.7245,294.47,4.1,168 km N of Manado Indonesia -2021-11-09T15:37:56.530Z,5.8935,126.737,51.46,4.4,80 km SE of Pondaguitan Philippines -2021-11-09T22:36:35.996Z,5.6747,126.1207,109.49,4.6,59 km ESE of Caburan Philippines -2021-11-10T15:09:48.464Z,2.8491,127.4723,78.13,4.6,137 km NNW of Tobelo Indonesia -2021-11-10T17:40:12.586Z,1.6232,124.8763,203.8,4.1,15 km N of Manado Indonesia -2021-11-12T18:17:41.745Z,6.6869,126.9624,23.14,4.2,69 km SE of Tarragona Philippines -2021-11-13T00:01:04.788Z,1.8277,127.1302,110.04,4.1,98 km W of Tobelo Indonesia -2021-11-13T13:30:32.908Z,5.856,126.7822,57.77,4.4,87 km SE of Pondaguitan Philippines -2021-11-14T02:55:55.598Z,3.2352,127.2669,57.09,4.4,185 km NNW of Tobelo Indonesia -2021-11-15T16:17:50.848Z,5.1451,126.9394,51.05,4.5,158 km SSE of Pondaguitan Philippines -2021-11-15T16:34:01.468Z,5.2133,127.1573,30.28,4.2,166 km SE of Pondaguitan Philippines -2021-11-16T08:10:35.983Z,2.5905,128.405,61.23,4.5,104 km NNE of Tobelo Indonesia -2021-11-16T17:53:13.015Z,6.2737,126.8032,106.48,4.6,69 km E of Pondaguitan Philippines -2021-11-18T04:30:19.173Z,6.6784,123.6029,599.57,4.4,47 km W of Taguisa Philippines -2021-11-18T06:10:08.761Z,1.4207,126.4408,56.31,4.2,126 km WNW of Ternate Indonesia -2021-11-19T17:20:23.005Z,3.3994,126.8137,44.62,4.1,227 km NW of Tobelo Indonesia -2021-11-19T20:07:03.773Z,6.8981,127.1562,35,4,76 km ESE of Manay Philippines -2021-11-19T20:08:22.023Z,6.8091,127.0083,27.21,5.3,66 km ESE of San Ignacio Philippines -2021-11-19T20:13:51.234Z,6.802,127.0055,39.78,5.4,67 km ESE of San Ignacio Philippines -2021-11-19T20:39:22.746Z,6.6806,127.2641,21.36,4.4,98 km ESE of San Ignacio Philippines -2021-11-19T22:06:53.604Z,7.0768,127.2535,10,4.5,78 km ESE of Santiago Philippines -2021-11-19T22:13:50.430Z,6.8861,127.2869,10,4.4,90 km ESE of Manay Philippines -2021-11-20T14:35:30.875Z,6.8773,126.7974,85.7,4.3,43 km ESE of Jovellar Philippines -2021-11-20T14:35:46.969Z,6.8914,127.021,53.67,4.7,64 km ESE of San Ignacio Philippines -2021-11-20T22:42:58.459Z,6.6996,126.6968,95.18,5,44 km ESE of Bobon Philippines -2021-11-22T14:51:10.220Z,3.4306,126.9414,65.67,4.4,222 km NNW of Tobelo Indonesia -2021-11-23T04:23:48.311Z,3.6149,126.9506,51.46,4.6,239 km NNW of Tobelo Indonesia -2021-11-23T08:09:42.919Z,9.0375,126.4317,57.2,4.9,19 km ENE of La Paz Philippines -2021-11-23T16:06:12.357Z,3.4664,126.8688,53.02,4.2,230 km NNW of Tobelo Indonesia -2021-11-23T23:23:57.294Z,2.6293,128.0232,56.14,4.2,99 km N of Tobelo Indonesia -2021-11-24T15:15:32.967Z,2.3689,126.7864,48.54,4.4,153 km WNW of Tobelo Indonesia -2021-11-25T03:56:01.400Z,3.3164,124.1444,380.31,4.7,217 km NNW of Manado Indonesia -2021-11-25T17:10:47.408Z,3.9958,126.5568,72.32,4.3,197 km SE of Sarangani Philippines -2021-11-25T21:38:31.331Z,6.0563,126.9016,77.92,4.2,86 km ESE of Pondaguitan Philippines -2021-11-27T06:01:53.355Z,4.6874,126.2666,79.98,5.2,Pulau-Pulau Talaud Indonesia -2021-11-30T00:56:07.547Z,6.7382,126.1243,58.22,5.1,3 km NE of Talisay Philippines -2021-12-03T03:36:13.076Z,9.4095,127.0471,10,4.2,95 km E of Cortes Philippines -2021-12-04T12:21:50.437Z,3.1395,127.9876,69.58,4.4,156 km N of Tobelo Indonesia -2021-12-04T23:47:55.581Z,4.0932,128.1359,149,6,261 km N of Tobelo Indonesia -2021-12-05T22:05:43.701Z,3.3063,126.9972,91.42,4.6,207 km NNW of Tobelo Indonesia -2021-12-06T05:03:06.247Z,5.0779,127.1915,68.48,4.3,180 km SE of Pondaguitan Philippines -2021-12-07T18:58:13.789Z,5.3293,126.0094,93.93,4.3,61 km E of Sarangani Philippines -2021-12-08T22:45:46.724Z,5.1498,125.3791,67.95,4.4,29 km SSW of Sarangani Philippines -2021-12-09T08:17:29.017Z,2.1659,126.7938,45.46,4.4,143 km WNW of Tobelo Indonesia -2021-12-09T14:55:23.706Z,3.6435,126.5577,46.08,4.7,229 km SSE of Sarangani Philippines -2021-12-09T15:59:21.818Z,9.9398,125.9133,10,4.1,9 km NW of Libas Philippines -2021-12-10T03:14:09.214Z,3.9048,126.6118,50.37,4.5,209 km SE of Sarangani Philippines -2021-12-10T17:09:13.472Z,5.1775,126.9134,93.4,4.4,154 km SSE of Pondaguitan Philippines -2021-12-11T03:07:14.552Z,4.032,126.7692,59.85,4.4,209 km SE of Sarangani Philippines -2021-12-11T21:12:13.888Z,5.2407,127.06,78.62,4,157 km SE of Pondaguitan Philippines -2021-12-13T08:02:59.069Z,8.5653,126.7793,35,4.3,53 km ENE of Hinatuan Philippines -2021-12-13T16:23:38.304Z,6.379,126.5576,47.33,4.5,42 km E of Pondaguitan Philippines -2021-12-13T18:08:58.191Z,4.0767,127.2054,58.44,4.2,242 km SE of Sarangani Philippines -2021-12-14T01:14:23.854Z,5.7194,127.0238,109.49,4.5,117 km SE of Pondaguitan Philippines -2021-12-14T02:23:42.709Z,5.19,125.6949,18.9,4.3,34 km SE of Sarangani Philippines -2021-12-14T18:41:35.999Z,5.7415,127.1154,61.34,4.9,124 km ESE of Pondaguitan Philippines -2021-12-15T02:44:20.943Z,2.798,128.2128,124.53,4.3,120 km N of Tobelo Indonesia -2021-12-15T06:09:22.794Z,5.1603,127.7732,10,4.2,221 km SE of Pondaguitan Philippines -2021-12-17T07:04:23.997Z,3.3081,121.9301,603.96,4.1,268 km SSE of Latung Philippines -2021-12-18T00:18:58.127Z,5.0769,126.8989,35,4.4,Mindanao Philippines -2021-12-18T11:41:27.645Z,3.3683,128.2485,30.7,4.3,183 km N of Tobelo Indonesia -2021-12-21T02:55:12.180Z,5.381,126.2414,70.33,5,86 km E of Sarangani Philippines -2021-12-21T20:10:30.346Z,3.0866,128.0407,109.63,4.3,150 km N of Tobelo Indonesia -2021-12-21T22:04:09.557Z,3.8917,128.6219,10,4.3,248 km NNE of Tobelo Indonesia -2021-12-22T00:17:17.107Z,2.1806,127.8834,40.17,4.3,Molucca Sea -2021-12-22T12:19:56.738Z,2.446,126.9236,19.06,4.9,144 km WNW of Tobelo Indonesia -2021-12-22T12:27:37.477Z,2.3776,126.9103,10,4.9,141 km WNW of Tobelo Indonesia -2021-12-23T03:01:30.630Z,5.8044,124.0274,517.23,4.3,48 km SSW of Palimbang Philippines -2021-12-23T07:18:11.681Z,2.9894,128.1994,62.98,4.3,141 km N of Tobelo Indonesia -2021-12-25T14:25:24.628Z,6.9479,126.6244,68.33,4.7,22 km ESE of Tarragona Philippines -2021-12-26T02:22:53.267Z,2.1321,126.624,26.42,5.3,160 km WNW of Tobelo Indonesia -2021-12-26T21:40:18.462Z,5.9485,126.6996,119.94,4.4,73 km SE of Pondaguitan Philippines -2021-12-28T04:51:34.681Z,6.0912,123.6461,606.66,4.1,58 km SW of Sangay Philippines -2021-12-28T21:49:27.846Z,2.224,126.7883,39.21,4.3,146 km WNW of Tobelo Indonesia -2021-12-29T08:06:33.638Z,5.9565,126.2888,79.12,4.5,Mindanao Philippines -2021-12-31T13:58:24.334Z,9.0257,126.0283,5.16,4.4,Mindanao Philippines -2021-12-31T18:17:37.112Z,7.2006,126.8379,50.78,4.6,30 km ESE of Santiago Philippines -2022-01-01T08:46:29.654Z,2.636,128.2039,152.56,4.2,102 km NNE of Tobelo Indonesia -2022-01-01T10:04:40.090Z,3.9011,122.581,592.07,4.4,247 km SSE of Tabiauan Philippines -2022-01-01T21:43:14.435Z,3.6089,126.9356,61.38,4.5,239 km NNW of Tobelo Indonesia -2022-01-02T22:44:23.224Z,1.9322,127.3237,93.72,5,79 km WNW of Tobelo Indonesia -2022-01-03T18:59:36.414Z,4.8066,123.1304,578.25,4.2,192 km SE of Tabiauan Philippines -2022-01-03T20:38:22.234Z,6.7737,123.5074,17.97,4.5,56 km W of Gadung Philippines -2022-01-04T14:20:42.973Z,2.0079,127.5352,183.05,4.2,61 km WNW of Tobelo Indonesia -2022-01-05T03:15:42.156Z,4.1948,124.5394,296.74,4.2,168 km SW of Sarangani Philippines -2022-01-06T19:22:07.566Z,3.2964,126.3154,55.61,4.4,249 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-01-07T12:09:36.641Z,5.0283,127.2269,93.29,4.3,Philippine Islands region -2022-01-08T01:26:47.252Z,6.265,126.5863,61.82,4.6,46 km ESE of Pondaguitan Philippines -2022-01-08T10:30:42.282Z,5.7328,126.9785,107.86,5,112 km SE of Pondaguitan Philippines -2022-01-09T23:46:50.040Z,2.7814,128.5213,231.24,4.9,129 km NNE of Tobelo Indonesia -2022-01-10T16:22:48.635Z,2.0281,127.6504,85.39,4.4,51 km NW of Tobelo Indonesia -2022-01-11T06:16:27.827Z,3.1287,126.8049,35.28,4.4,204 km NW of Tobelo Indonesia -2022-01-12T11:08:07.310Z,5.039,125.4193,75.61,4.4,40 km S of Sarangani Philippines -2022-01-13T21:04:45.829Z,3.6914,126.8488,58.29,4.4,243 km SE of Sarangani Philippines -2022-01-15T04:27:06.535Z,6.1779,125.8019,160.42,4.2,Mindanao Philippines -2022-01-15T11:51:54.929Z,3.0462,126.7113,33.25,4.1,205 km NW of Tobelo Indonesia -2022-01-15T17:34:07.066Z,1.642,127.0934,72.96,4.4,99 km NNW of Ternate Indonesia -2022-01-16T06:18:10.014Z,5.0371,126.5691,83.55,4,129 km ESE of Sarangani Philippines -2022-01-17T18:26:20.294Z,2.0948,127.2657,110.3,4.4,92 km WNW of Tobelo Indonesia -2022-01-18T03:20:29.294Z,6.0265,126.3446,103.71,4.6,41 km SSE of Pondaguitan Philippines -2022-01-21T11:59:05.287Z,6.5219,126.9537,106.32,4.7,79 km ESE of Bobon Philippines -2022-01-21T20:43:45.453Z,7.5552,126.5369,107.13,5.3,3 km SW of Baganga Philippines -2022-01-22T02:26:13.323Z,3.6724,126.6596,21,6,232 km SE of Sarangani Philippines -2022-01-22T03:21:20.638Z,3.6066,126.5401,10,4.2,231 km SSE of Sarangani Philippines -2022-01-22T03:52:22.691Z,5.9356,126.7474,107.78,4.1,78 km SE of Pondaguitan Philippines -2022-01-22T04:00:30.608Z,3.784,126.8383,10,4.1,235 km SE of Sarangani Philippines -2022-01-22T04:26:22.100Z,3.7017,126.7648,10,4.3,237 km SE of Sarangani Philippines -2022-01-22T07:08:10.889Z,3.6267,126.6391,10,4.9,235 km SSE of Sarangani Philippines -2022-01-22T09:01:26.852Z,3.6224,126.7108,10,4.6,240 km SE of Sarangani Philippines -2022-01-22T13:12:06.527Z,3.485,126.4074,10,4.4,236 km SSE of Sarangani Philippines -2022-01-22T13:49:48.540Z,2.8577,127.5309,48.45,5,135 km NNW of Tobelo Indonesia -2022-01-22T19:16:54.777Z,3.5941,126.6285,10,4.4,238 km SSE of Sarangani Philippines -2022-01-22T21:12:11.010Z,3.6148,126.6878,34.75,4.5,239 km SE of Sarangani Philippines -2022-01-23T01:12:34.661Z,3.6478,126.7218,33.2,4.9,239 km SE of Sarangani Philippines -2022-01-23T05:11:19.094Z,6.9024,126.9476,72.37,4.5,56 km ESE of San Ignacio Philippines -2022-01-23T06:15:57.650Z,7.0341,127.1437,10,4.9,69 km ESE of Santiago Philippines -2022-01-23T06:23:45.304Z,6.986,127.0901,10,5.1,65 km ESE of Manay Philippines -2022-01-23T10:13:18.535Z,3.7024,126.9065,22.07,4.5,247 km SE of Sarangani Philippines -2022-01-24T19:23:34.107Z,3.667,126.5586,10,4.9,227 km SSE of Sarangani Philippines -2022-01-24T20:11:17.623Z,3.4473,126.2222,34.89,4.1,232 km SSE of Sarangani Philippines -2022-01-25T13:59:13.925Z,3.8978,123.0947,522.11,4.3,270 km SSE of Tabiauan Philippines -2022-01-25T23:59:17.439Z,5.3859,126.4274,10,4.5,105 km SE of Caburan Philippines -2022-01-26T09:52:43.805Z,4.2576,128.1979,74.08,4.8,280 km N of Tobelo Indonesia -2022-01-26T15:59:57.320Z,5.3008,126.3548,60.29,4.3,99 km E of Sarangani Philippines -2022-01-26T18:02:41.475Z,1.5265,126.5478,38.75,4.7,123 km NW of Ternate Indonesia -2022-01-26T18:11:10.910Z,4.0012,126.5596,10,4.4,197 km SE of Sarangani Philippines -2022-01-27T06:15:07.849Z,3.1259,127.9629,53.54,5,154 km N of Tobelo Indonesia -2022-01-27T18:20:45.974Z,1.4968,126.4841,37.94,4.4,127 km NW of Ternate Indonesia -2022-01-28T04:56:14.098Z,6.1151,127.0286,65.4,4.7,98 km ESE of Pondaguitan Philippines -2022-01-28T14:29:48.855Z,2.9079,125.7078,144.4,4.4,176 km NNE of Laikit Laikit II (Dimembe) Indonesia -2022-01-29T01:39:11.865Z,3.119,127.954,69.79,4.6,153 km N of Tobelo Indonesia -2022-01-29T14:36:08.512Z,3.6424,126.7299,61.21,4.5,240 km SE of Sarangani Philippines -2022-01-30T01:05:54.986Z,2.9006,126.6848,56.87,4.2,196 km NW of Tobelo Indonesia -2022-01-30T03:32:41.102Z,2.7573,128.2346,53.45,4.5,116 km NNE of Tobelo Indonesia -2022-01-30T09:58:22.394Z,3.9003,125.273,134.2,4.3,167 km S of Sarangani Philippines -2022-01-31T16:14:36.054Z,6.5574,126.4448,65.36,4.6,35 km SSE of Tamisan Philippines -2022-02-02T11:50:27.713Z,4.8819,125.9774,145.17,4.5,81 km SE of Sarangani Philippines -2022-02-02T14:23:11.030Z,1.5213,124.4689,250.55,4.2,42 km W of Manado Indonesia -2022-02-03T09:28:21.966Z,6.8248,123.7716,601.36,4.2,27 km W of Gadung Philippines -2022-02-03T11:49:15.048Z,3.5013,125.621,156.87,4,211 km S of Sarangani Philippines -2022-02-05T04:45:46.537Z,5.6047,126.5823,57.17,4.6,94 km SSE of Pondaguitan Philippines -2022-02-05T11:04:47.279Z,3.709,127.1653,10,4.3,238 km NNW of Tobelo Indonesia -2022-02-05T17:26:33.710Z,5.4628,126.4964,10,4.2,105 km SSE of Pondaguitan Philippines -2022-02-05T17:48:58.412Z,4.7083,126.2468,67.19,4,115 km SE of Sarangani Philippines -2022-02-05T20:12:56.834Z,3.7084,126.7462,35,4.7,235 km SE of Sarangani Philippines -2022-02-06T14:01:14.764Z,6.3747,126.1471,79.08,4.3,1 km S of Surup Philippines -2022-02-07T13:35:53.440Z,5.591,126.6345,76.42,4.5,99 km SSE of Pondaguitan Philippines -2022-02-07T14:26:15.736Z,10.0345,125.6861,82.96,4.3,12 km N of Cagdianao Philippines -2022-02-07T22:39:11.747Z,2.6265,126.6995,58.08,4.1,Molucca Sea -2022-02-07T23:18:35.201Z,9.0574,126.0523,10,4.4,Mindanao Philippines -2022-02-08T00:23:59.266Z,4.6568,127.7491,134.66,4.5,256 km SE of Pondaguitan Philippines -2022-02-09T22:41:57.174Z,3.886,126.6452,40.17,4.3,212 km SE of Sarangani Philippines -2022-02-10T20:16:28.199Z,2.6694,125.6065,65.36,4.2,148 km NNE of Laikit Laikit II (Dimembe) Indonesia -2022-02-11T14:25:19.513Z,5.8987,124.5212,81.46,4.9,14 km SSW of Nalus Philippines -2022-02-12T08:25:10.693Z,3.356,126.6344,35,4.6,236 km NW of Tobelo Indonesia -2022-02-13T03:44:11.712Z,3.2117,126.211,81.96,4.4,235 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-02-13T06:09:07.967Z,2.7353,126.3761,62.85,4.3,208 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-02-13T10:12:18.645Z,5.9977,125.5927,84.83,4.5,8 km WNW of Culaman Philippines -2022-02-14T06:16:57.875Z,1.3673,126.4272,10,4.5,124 km WNW of Ternate Indonesia -2022-02-14T13:30:24.106Z,1.7936,127.4596,121.84,4,61 km W of Tobelo Indonesia -2022-02-15T02:12:18.679Z,5.3492,126.0857,81.03,4.2,69 km E of Sarangani Philippines -2022-02-17T01:22:55.451Z,5.8574,127.5267,10,4.4,159 km ESE of Pondaguitan Philippines -2022-02-18T22:21:11.969Z,4.9845,126.3008,71.28,4,103 km ESE of Sarangani Philippines -2022-02-20T18:29:27.263Z,6.0071,126.6453,58.12,5.5,64 km SE of Pondaguitan Philippines -2022-02-20T18:53:36.191Z,6.0475,126.5737,67.67,4.5,55 km SE of Pondaguitan Philippines -2022-02-20T19:06:59.727Z,6.0502,126.6352,55.54,4.5,61 km SE of Pondaguitan Philippines -2022-02-20T19:25:41.585Z,6.0208,126.5677,61.47,4.7,57 km SE of Pondaguitan Philippines -2022-02-20T19:49:42.917Z,5.809,126.453,57.53,4.3,68 km SSE of Pondaguitan Philippines -2022-02-20T20:31:43.864Z,6.0077,126.6059,60.87,4.9,61 km SE of Pondaguitan Philippines -2022-02-20T21:08:08.177Z,5.6265,125.2277,46.89,4.6,10 km SW of Pangyan Philippines -2022-02-20T21:13:26.078Z,6.0123,126.5855,51.82,5.2,59 km SE of Pondaguitan Philippines -2022-02-21T22:44:12.390Z,6.566,125.1473,10,4.4,10 km NE of Tampakan Philippines -2022-02-23T11:23:50.177Z,2.0062,127.1171,47.21,4.4,103 km WNW of Tobelo Indonesia -2022-02-23T13:54:40.183Z,8.4885,126.4977,54.98,4.5,22 km NE of Hinatuan Philippines -2022-02-23T22:52:28.105Z,6.206,127.4589,10,4.5,142 km E of Pondaguitan Philippines -2022-02-24T03:34:08.790Z,6.6538,126.9663,50.65,4.5,71 km ESE of Lukatan Philippines -2022-02-24T15:38:38.957Z,3.2055,128.1906,109.09,4.5,164 km N of Tobelo Indonesia -2022-02-24T22:19:37.721Z,5.9549,126.495,69.5,4.6,57 km SE of Pondaguitan Philippines -2022-02-25T04:39:39.943Z,6.0067,126.5976,56.84,4.7,60 km SE of Pondaguitan Philippines -2022-02-25T09:02:13.187Z,2.6813,127.3032,80.14,4.5,131 km NW of Tobelo Indonesia -2022-02-26T06:15:53.561Z,5.7048,126.2848,119.18,5.2,73 km S of Pondaguitan Philippines -2022-02-26T22:18:45.761Z,3.6546,126.7204,35,4.3,238 km SE of Sarangani Philippines -2022-02-28T23:21:45.775Z,2.4275,126.2063,76.7,4.7,171 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-03-01T19:04:44.419Z,5.8238,125.9668,136.99,4.2,37 km ESE of Mangili Philippines -2022-03-03T18:10:47.807Z,1.735,126.5451,44,4.2,140 km NW of Ternate Indonesia -2022-03-04T04:47:44.109Z,9.1933,126.2359,10,4.4,6 km ESE of Tigao Philippines -2022-03-04T09:26:47.109Z,2.0641,124.7612,196.42,4.3,65 km N of Manado Indonesia -2022-03-05T05:11:39.523Z,6.5654,123.9949,514.75,4,5 km NW of Bantogon Philippines -2022-03-05T10:30:58.442Z,4.2292,127.7421,111.7,4,278 km N of Tobelo Indonesia -2022-03-05T22:40:27.361Z,3.5884,126.03,80.73,4.9,210 km SSE of Sarangani Philippines -2022-03-06T15:37:04.350Z,5.2795,126.6527,105.91,4.2,130 km SSE of Pondaguitan Philippines -2022-03-06T19:09:30.828Z,7.0764,127.109,10,4.3,63 km ESE of Santiago Philippines -2022-03-06T21:48:07.244Z,4.9759,127.4736,107.55,4.3,209 km SE of Pondaguitan Philippines -2022-03-07T18:13:14.982Z,2.7042,125.7943,96.11,5.3,162 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-03-09T01:49:18.677Z,2.585,128.4029,40.47,5.1,104 km NNE of Tobelo Indonesia -2022-03-10T19:18:50.154Z,5.4348,127.3086,113.35,4.1,161 km SE of Pondaguitan Philippines -2022-03-11T05:56:51.002Z,6.1168,126.9032,80.97,4.5,84 km ESE of Pondaguitan Philippines -2022-03-11T14:14:23.541Z,7.8962,125.9281,24.68,4.9,14 km WNW of Baylo Philippines -2022-03-12T19:11:22.721Z,8.8848,126.3223,90.11,4.1,1 km ESE of Aras-asan Philippines -2022-03-12T22:11:00.278Z,5.0401,127.0089,56.26,4.5,172 km SSE of Pondaguitan Philippines -2022-03-13T03:22:31.520Z,1.3268,124.2029,263.81,4.2,66 km W of Tomohon Indonesia -2022-03-13T08:46:22.900Z,6.7599,123.7084,588.23,4.1,34 km W of Gadung Philippines -2022-03-13T20:52:56.731Z,8.4527,125.9314,46.2,4.4,5 km SE of Borbon Philippines -2022-03-14T05:16:58.035Z,5.0179,127.3067,109.05,4.3,194 km SE of Pondaguitan Philippines -2022-03-17T15:05:00.649Z,5.0276,124.1531,459.24,4,118 km SSW of Tambilil Philippines -2022-03-20T22:37:43.858Z,2.958,127.8708,111.3,4.1,136 km N of Tobelo Indonesia -2022-03-21T00:02:09.809Z,7.2661,122.3767,10,3.8,10 km S of Limaong Philippines -2022-03-22T13:28:00.252Z,1.762,127.0673,68.1,4.5,104 km W of Tobelo Indonesia -2022-03-23T16:29:35.171Z,1.8424,127.3138,119.66,4.8,78 km W of Tobelo Indonesia -2022-03-24T12:01:57.338Z,9.1793,122.6957,56.33,4.6,21 km WSW of Nagbalaye Philippines -2022-03-26T02:10:27.870Z,2.5937,128.2588,198.05,4.2,99 km NNE of Tobelo Indonesia -2022-03-26T04:01:39.564Z,3.5504,126.9205,58.62,4.9,235 km NNW of Tobelo Indonesia -2022-03-26T18:51:21.304Z,4.7709,125.5675,145.66,4,70 km S of Sarangani Philippines -2022-03-28T08:33:21.349Z,3.393,122.7105,541.17,4.2,Celebes Sea -2022-03-28T17:25:07.032Z,8.7802,126.3221,75.53,4.5,Mindanao Philippines -2022-03-29T20:14:51.946Z,2.6882,125.9295,125.68,4.4,169 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-03-30T04:36:27.308Z,3.3652,126.6133,35,4.6,238 km NW of Tobelo Indonesia -2022-03-30T04:42:52.431Z,3.1021,126.279,71.35,4.3,229 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-04-01T01:35:53.966Z,9.7245,126.7231,10,5,67 km E of Union Philippines -2022-04-01T09:32:01.747Z,9.0492,126.6865,35,4.9,44 km ENE of Aras-asan Philippines -2022-04-01T22:53:18.791Z,2.5118,127.2494,83.34,4,121 km NW of Tobelo Indonesia -2022-04-02T08:43:32.869Z,2.6592,127.6127,99.76,4.4,111 km NNW of Tobelo Indonesia -2022-04-02T10:44:53.203Z,9.3452,126.9586,10,4.5,84 km E of Cortes Philippines -2022-04-03T00:52:48.821Z,5.421,126.8353,40.01,5.1,126 km SE of Pondaguitan Philippines -2022-04-03T05:16:48.826Z,3.1564,126.8005,68.51,4,207 km NW of Tobelo Indonesia -2022-04-03T10:24:54.783Z,9.2559,126.6946,17.04,5.6,55 km E of Cortes Philippines -2022-04-03T11:22:04.613Z,9.2618,126.6961,10,5.4,55 km E of Cortes Philippines -2022-04-03T11:35:16.255Z,9.3476,126.9196,10,4.6,80 km E of Cortes Philippines -2022-04-03T15:29:39.811Z,9.1938,126.632,18,5.4,46 km ENE of La Paz Philippines -2022-04-03T16:15:24.195Z,9.3427,126.9081,10,4.5,79 km E of Cortes Philippines -2022-04-03T18:36:09.575Z,9.2879,126.588,10,4.8,43 km E of Cortes Philippines -2022-04-03T19:12:50.343Z,9.2284,126.7692,10,4.5,61 km ENE of La Paz Philippines -2022-04-03T20:01:37.406Z,2.0813,126.4166,72.21,4.4,173 km ENE of Laikit Laikit II (Dimembe) Indonesia -2022-04-04T04:01:46.947Z,1.7906,127.3257,121.36,4.1,76 km W of Tobelo Indonesia -2022-04-04T14:13:59.693Z,9.2639,126.8881,10,4.7,75 km ENE of La Paz Philippines -2022-04-04T16:30:37.952Z,9.3021,126.7295,10,4.6,59 km E of Cortes Philippines -2022-04-04T18:24:08.417Z,9.2649,126.5454,10,4.3,38 km E of Cortes Philippines -2022-04-05T01:44:08.299Z,1.9361,126.8713,36,5.9,128 km W of Tobelo Indonesia -2022-04-05T05:52:13.510Z,2.0646,126.9352,31.93,4.6,125 km WNW of Tobelo Indonesia -2022-04-05T17:20:00.391Z,9.194,126.4275,10,4.5,27 km ESE of Burgos Philippines -2022-04-06T00:04:15.758Z,6.8457,125.7823,71.67,4.3,8 km S of San Remigio Philippines -2022-04-06T15:33:02.920Z,9.2338,126.6446,10,4.6,50 km E of Cortes Philippines -2022-04-07T08:46:26.638Z,6.8969,124.276,569.37,4,7 km NW of Tapikan Philippines -2022-04-07T09:52:55.221Z,6.3211,125.7878,163.74,4.5,14 km ENE of Talagutong Philippines -2022-04-08T05:04:28.198Z,9.2293,126.34,10,4.4,17 km ESE of Burgos Philippines -2022-04-08T19:56:57.438Z,5.9256,126.3325,108.98,4.1,51 km SSE of Pondaguitan Philippines -2022-04-08T21:00:43.998Z,9.5086,126.7373,22.59,4.3,65 km ENE of Cortes Philippines -2022-04-08T21:08:16.610Z,9.3328,126.7644,10,4.4,63 km E of Cortes Philippines -2022-04-08T21:51:39.594Z,5.3417,126.3534,44.36,4.5,98 km E of Sarangani Philippines -2022-04-09T10:43:08.379Z,1.998,126.3067,41.26,4.1,158 km ENE of Laikit Laikit II (Dimembe) Indonesia -2022-04-09T20:23:59.370Z,6.861,126.2922,69.56,4.4,2 km NNW of Tamisan Philippines -2022-04-10T20:56:48.970Z,1.8634,127.4362,122.15,4.8,65 km WNW of Tobelo Indonesia -2022-04-11T11:15:48.251Z,9.2862,126.5645,38.66,4.6,41 km E of Cortes Philippines -2022-04-12T15:46:49.329Z,2.6357,128.3209,96.21,4.5,106 km NNE of Tobelo Indonesia -2022-04-13T09:09:55.077Z,8.3598,126.663,66.51,4.4,33 km NE of Barcelona Philippines -2022-04-14T09:47:38.665Z,2.8927,126.047,52.15,4.3,195 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-04-16T00:41:06.361Z,6.518,123.201,10,4.5,92 km W of Bantogon Philippines -2022-04-16T01:57:13.740Z,2.712,125.9415,89.71,4.3,172 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-04-16T21:01:05.657Z,5.5377,124.458,10,4.2,52 km SSW of Tambilil Philippines -2022-04-17T11:45:33.999Z,8.7469,127.5341,10,4.3,135 km E of Aras-asan Philippines -2022-04-17T12:19:39.793Z,5.3486,126.2807,86.23,4.5,Mindanao Philippines -2022-04-18T06:13:53.281Z,4.1597,126.5683,53.79,4.6,184 km SE of Sarangani Philippines -2022-04-18T15:38:22.520Z,4.9483,126.751,47.5,4.5,151 km ESE of Sarangani Philippines -2022-04-18T18:19:27.992Z,8.8487,126.4031,51.93,4.3,10 km ESE of Aras-asan Philippines -2022-04-19T01:23:07.057Z,7.2852,126.9533,19,6.1,41 km E of Santiago Philippines -2022-04-19T01:43:59.220Z,7.114,127.2093,10,4.7,72 km ESE of Santiago Philippines -2022-04-19T01:54:53.683Z,7.2241,127.0517,10,4.6,53 km E of Santiago Philippines -2022-04-19T01:59:35.994Z,7.2602,127.1603,10,4.4,64 km E of Santiago Philippines -2022-04-19T02:04:04.370Z,7.1588,127.1236,10,4.5,62 km ESE of Santiago Philippines -2022-04-19T02:23:40.440Z,7.2928,127.3042,10,4.5,80 km E of Santiago Philippines -2022-04-19T02:26:33.092Z,7.2534,127.0949,10,4.6,57 km E of Santiago Philippines -2022-04-19T03:00:04.431Z,7.0707,127.1518,10,4.5,68 km ESE of Santiago Philippines -2022-04-19T03:02:44.248Z,7.1525,127.081,10,4.4,58 km ESE of Santiago Philippines -2022-04-19T03:58:29.265Z,7.1697,127.1791,10,4,68 km E of Santiago Philippines -2022-04-19T04:24:33.294Z,7.0845,127.0372,10,5.2,55 km ESE of Santiago Philippines -2022-04-19T04:51:48.824Z,7.1204,127.1858,10,4.2,70 km ESE of Santiago Philippines -2022-04-19T04:52:50.982Z,7.1833,127.122,10,4.6,61 km E of Santiago Philippines -2022-04-19T05:56:27.165Z,7.1182,126.8511,65.01,4.6,36 km ESE of Santiago Philippines -2022-04-19T06:08:44.036Z,7.2421,127.1533,16.87,4.9,64 km E of Santiago Philippines -2022-04-19T14:39:58.099Z,7.075,126.7006,83.83,4.4,Mindanao Philippines -2022-04-19T16:36:30.695Z,7.002,126.7335,77.7,4.6,30 km ESE of San Ignacio Philippines -2022-04-19T17:22:14.481Z,1.6338,126.5752,31.42,4.5,129 km NW of Ternate Indonesia -2022-04-19T17:52:00.617Z,6.4097,127.0596,66.44,5,95 km ESE of Bobon Philippines -2022-04-19T18:28:24.045Z,7.056,126.9833,38.75,4.9,52 km ESE of Manay Philippines -2022-04-19T19:30:34.621Z,7.0302,126.8459,58.83,4.6,39 km ESE of Manay Philippines -2022-04-19T21:19:59.873Z,3.6598,126.6402,9.68,5.1,Pulau-Pulau Talaud Indonesia -2022-04-19T21:38:28.783Z,6.5885,127.2988,10,4.6,106 km ESE of Jovellar Philippines -2022-04-19T22:03:22.489Z,3.5872,126.4752,32.48,4.4,230 km SSE of Sarangani Philippines -2022-04-20T01:07:00.661Z,3.532,122.2769,600.46,4.1,266 km SE of Latung Philippines -2022-04-20T09:07:41.124Z,6.3986,127.0528,47.77,5.3,95 km ESE of Bobon Philippines -2022-04-20T09:13:40.375Z,6.3478,126.9185,73.18,4.5,81 km E of Pondaguitan Philippines -2022-04-20T09:21:02.861Z,6.2947,126.8896,72.77,4.4,79 km E of Pondaguitan Philippines -2022-04-20T11:20:23.293Z,2.1947,126.6327,59.72,4.6,161 km WNW of Tobelo Indonesia -2022-04-20T14:34:23.507Z,6.9321,126.9425,62.74,4.9,54 km ESE of San Ignacio Philippines -2022-04-20T14:48:36.374Z,5.3179,127.7659,10,4.1,210 km ESE of Pondaguitan Philippines -2022-04-20T15:43:44.586Z,6.5497,127.0643,37.38,4.3,87 km SE of Lukatan Philippines -2022-04-20T16:35:15.819Z,6.5642,127.3877,10,4.4,116 km ESE of San Ignacio Philippines -2022-04-20T16:56:52.600Z,6.534,127.2311,10,4.3,103 km ESE of Tarragona Philippines -2022-04-20T17:48:16.062Z,4.0145,126.4369,56.08,4.4,187 km SE of Sarangani Philippines -2022-04-20T21:57:43.018Z,6.9686,126.9241,19,6,50 km ESE of Manay Philippines -2022-04-20T22:02:46.636Z,4.0869,126.6063,42.06,5.2,193 km SE of Sarangani Philippines -2022-04-20T22:14:35.069Z,6.9725,126.96,37.35,4.4,53 km ESE of Manay Philippines -2022-04-21T01:16:32.492Z,4.4079,127.3507,35,4.4,236 km ESE of Sarangani Philippines -2022-04-22T02:57:57.690Z,7.0515,126.5218,184.24,4.4,7 km E of Jovellar Philippines -2022-04-22T04:21:00.044Z,6.423,126.9976,56.43,4.5,Mindanao Philippines -2022-04-22T15:49:27.100Z,7.2364,126.9592,51.89,4.3,43 km E of Santiago Philippines -2022-04-22T22:26:29.787Z,3.2071,128.1574,148.78,4.4,164 km N of Tobelo Indonesia -2022-04-23T12:04:34.317Z,7.0157,127.008,46.61,4.3,Philippine Islands region -2022-04-23T15:20:02.330Z,7.3141,127.3207,10,4.6,82 km E of Santiago Philippines -2022-04-24T22:14:32.738Z,4.06,126.6807,10,4.2,200 km SE of Sarangani Philippines -2022-04-25T06:16:45.841Z,6.8769,126.7919,74.77,4.3,42 km ESE of Jovellar Philippines -2022-04-26T23:00:49.237Z,5.5748,126.287,55.78,4.4,80 km ESE of Caburan Philippines -2022-04-27T00:24:32.822Z,4.4846,128.0956,47.71,4.3,297 km SE of Pondaguitan Philippines -2022-04-27T17:20:11.038Z,1.957,126.519,60.48,4.3,160 km NW of Ternate Indonesia -2022-04-30T01:10:37.139Z,2.7214,128.5182,202.64,4.2,123 km NNE of Tobelo Indonesia -2022-04-30T03:24:53.978Z,2.7886,126.5388,68.95,4.9,201 km NW of Tobelo Indonesia -2022-05-01T02:10:52.717Z,3.1429,127.9058,106.4,4.3,156 km N of Tobelo Indonesia -2022-05-03T00:52:05.897Z,2.0451,126.4159,10,4.4,171 km ENE of Laikit Laikit II (Dimembe) Indonesia -2022-05-03T11:37:49.583Z,2.9951,127.9126,111.95,4.3,140 km N of Tobelo Indonesia -2022-05-04T20:10:55.299Z,9.677,126.5453,28.94,4.5,48 km E of Union Philippines -2022-05-04T20:16:06.027Z,6.5927,127.0537,11.34,5.1,83 km ESE of Lukatan Philippines -2022-05-04T21:41:06.134Z,6.4879,127.0565,19.82,5.6,90 km ESE of Bobon Philippines -2022-05-04T21:52:54.783Z,6.7746,127.2787,10,4.5,95 km ESE of Manay Philippines -2022-05-04T23:42:23.605Z,7.4607,127.0798,10,4.1,54 km E of Baculin Philippines -2022-05-05T01:53:35.480Z,6.6372,127.2416,10,4.4,98 km ESE of San Ignacio Philippines -2022-05-05T01:55:53.813Z,2.846,126.3832,50.77,4.5,217 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-05-05T02:49:34.016Z,6.5875,127.1527,10,4.4,93 km ESE of Tarragona Philippines -2022-05-05T08:21:15.666Z,6.5295,127.1315,18,6,94 km SE of Lukatan Philippines -2022-05-05T08:33:11.842Z,6.501,127.0576,28.46,4.7,90 km SE of Lukatan Philippines -2022-05-05T10:37:31.043Z,6.5556,126.9838,53.07,5.1,79 km SE of Lukatan Philippines -2022-05-05T14:54:31.339Z,6.5885,126.9957,58.28,4.6,78 km SE of Lukatan Philippines -2022-05-05T19:54:40.262Z,6.5441,127.0545,10,5.2,Philippine Islands region -2022-05-06T00:02:23.375Z,6.5821,126.9217,26.86,5.3,72 km SE of Lukatan Philippines -2022-05-06T00:31:00.863Z,6.5096,127.2531,10,4.4,107 km SE of Tarragona Philippines -2022-05-06T01:36:15.595Z,6.2709,127.1703,10,4.4,110 km E of Pondaguitan Philippines -2022-05-06T02:00:45.153Z,6.3565,127.2817,10,4.5,119 km SE of Lukatan Philippines -2022-05-06T04:40:47.849Z,6.6209,127.0504,10,4.6,81 km ESE of Lukatan Philippines -2022-05-06T07:34:51.338Z,8.7039,126.4278,60.94,4.8,18 km SE of Marihatag Philippines -2022-05-06T16:14:55.367Z,6.7719,127.2773,10,4.4,95 km ESE of Manay Philippines -2022-05-07T18:56:53.564Z,3.8366,126.8713,21.31,4.5,233 km SE of Sarangani Philippines -2022-05-07T23:02:21.338Z,6.5522,127.0554,55.78,4.6,86 km SE of Lukatan Philippines -2022-05-08T00:47:45.345Z,5.0017,126.568,10,4.2,130 km ESE of Sarangani Philippines -2022-05-08T02:12:43.237Z,3.7289,126.9366,10,5.1,246 km SE of Sarangani Philippines -2022-05-08T02:18:52.938Z,3.8111,126.9625,10,5,242 km SE of Sarangani Philippines -2022-05-08T02:28:59.589Z,3.6971,126.9085,10,5.2,247 km SE of Sarangani Philippines -2022-05-08T05:16:23.666Z,8.7014,126.3357,75.89,4.3,12 km SSE of Marihatag Philippines -2022-05-08T12:17:27.769Z,3.6504,126.9739,18.84,5,241 km NNW of Tobelo Indonesia -2022-05-08T16:34:28.943Z,3.6704,126.8744,39.16,4.6,247 km SE of Sarangani Philippines -2022-05-08T21:51:39.714Z,1.8437,127.2017,39.28,5.6,90 km W of Tobelo Indonesia -2022-05-09T09:27:31.259Z,4.0473,126.4755,10,4.5,187 km SE of Sarangani Philippines -2022-05-09T09:30:34.535Z,4.1229,126.5428,10,4.3,185 km SE of Sarangani Philippines -2022-05-09T15:24:22.651Z,2.5831,128.3699,216.32,4.3,102 km NNE of Tobelo Indonesia -2022-05-10T08:28:40.291Z,2.9382,128.332,55.97,4.5,138 km NNE of Tobelo Indonesia -2022-05-11T01:39:18.203Z,4.8371,123.1601,585.9,4.4,189 km SW of Palimbang Philippines -2022-05-11T07:59:16.097Z,2.3638,126.7349,59.96,4.4,158 km WNW of Tobelo Indonesia -2022-05-11T11:52:39.056Z,1.3033,124.5322,179.24,4.5,30 km W of Tomohon Indonesia -2022-05-11T16:20:09.282Z,3.746,126.6456,20.53,5,225 km SE of Sarangani Philippines -2022-05-11T19:12:56.271Z,5.4117,126.0284,138.12,4.6,62 km E of Sarangani Philippines -2022-05-12T01:59:35.809Z,1.6973,127.3013,67.11,4.5,78 km W of Tobelo Indonesia -2022-05-12T05:43:06.205Z,9.618,126.4223,35,4.3,37 km ESE of Union Philippines -2022-05-12T05:54:42.733Z,9.6892,126.456,35,4.3,38 km E of Union Philippines -2022-05-12T12:24:01.464Z,6.2513,127.5139,10,4.5,147 km SE of Lukatan Philippines -2022-05-12T16:14:30.356Z,6.1763,126.9245,61.7,4.6,85 km ESE of Pondaguitan Philippines -2022-05-13T16:32:25.006Z,3.5269,129.0457,10,4.4,229 km NNE of Tobelo Indonesia -2022-05-15T00:03:27.751Z,6.305,126.5994,84.99,4.1,47 km E of Pondaguitan Philippines -2022-05-16T14:25:39.365Z,1.6031,126.6491,37.31,4.4,Molucca Sea -2022-05-17T01:49:19.586Z,1.7626,126.7451,49.65,4.4,128 km NNW of Ternate Indonesia -2022-05-17T11:30:17.159Z,9.0122,126.9638,10,4.3,73 km E of Aras-asan Philippines -2022-05-17T11:53:32.876Z,8.6438,126.4855,60.39,4.2,27 km SE of Marihatag Philippines -2022-05-19T08:03:42.591Z,5.2774,126.4258,64.36,4.1,107 km E of Sarangani Philippines -2022-05-19T15:29:15.118Z,1.7136,126.4084,18.59,5.2,149 km NW of Ternate Indonesia -2022-05-20T09:12:52.726Z,6.1848,127.1892,35,4.7,113 km E of Pondaguitan Philippines -2022-05-20T12:31:06.120Z,4.3248,126.2774,87.18,4.6,149 km SE of Sarangani Philippines -2022-05-20T22:35:05.441Z,5.546,126.1277,106.73,4.3,67 km SE of Caburan Philippines -2022-05-22T20:50:14.049Z,6.7514,127.3984,10,4.5,107 km ESE of Manay Philippines -2022-05-22T23:45:33.717Z,4.7432,125.9182,36.91,4.3,88 km SE of Sarangani Philippines -2022-05-23T05:37:51.144Z,4.2742,127.1542,51.77,4.6,225 km ESE of Sarangani Philippines -2022-05-23T05:41:15.297Z,4.2475,126.8613,35,4.2,200 km SE of Sarangani Philippines -2022-05-23T16:45:39.686Z,1.7199,127.2709,63.78,4.5,82 km W of Tobelo Indonesia -2022-05-23T23:11:45.574Z,3.7223,128.1473,149.94,4.7,221 km N of Tobelo Indonesia -2022-05-24T02:58:18.229Z,4.9419,126.6682,76.62,4.3,142 km ESE of Sarangani Philippines -2022-05-26T02:33:09.605Z,8.9484,126.5293,10.85,4.6,24 km ENE of Aras-asan Philippines -2022-05-26T20:49:39.542Z,5.0135,127.3852,65.91,4.3,200 km SE of Pondaguitan Philippines -2022-05-26T23:53:56.186Z,9.6479,125.8059,10,4.2,11 km NE of Claver Philippines -2022-05-28T03:16:19.616Z,5.6002,126.6608,93.19,4.4,99 km SSE of Pondaguitan Philippines -2022-05-29T07:46:04.794Z,7.8744,126.7734,62.94,4,31 km NE of Kinablangan Philippines -2022-05-29T21:13:24.762Z,3.9028,126.7607,43.69,4.9,219 km SE of Sarangani Philippines -2022-05-30T19:29:03.436Z,5.8166,126.3969,102.22,4.3,64 km SSE of Pondaguitan Philippines -2022-05-31T03:05:02.615Z,6.2675,123.7369,560.79,4.3,39 km WSW of Sangay Philippines -2022-06-01T18:19:54.621Z,7.1576,127.0311,47.38,4.5,52 km ESE of Santiago Philippines -2022-06-02T03:06:38.869Z,6.0471,127.5479,10,5.2,155 km ESE of Pondaguitan Philippines -2022-06-02T11:55:43.116Z,9.0617,126.229,68.57,4.6,3 km ESE of Tandag Philippines -2022-06-02T18:54:31.063Z,9.0182,126.5097,38.76,5.5,26 km ENE of Bacolod Philippines -2022-06-02T19:11:59.902Z,8.8959,126.4174,42.3,4.4,11 km E of Aras-asan Philippines -2022-06-02T19:32:19.161Z,8.9088,126.4021,49.91,4.4,10 km ENE of Aras-asan Philippines -2022-06-03T01:14:38.691Z,8.8789,126.3289,35,4.2,2 km ESE of Aras-asan Philippines -2022-06-03T14:19:10.470Z,2.3778,127.6472,10,4.3,82 km NNW of Tobelo Indonesia -2022-06-03T14:29:54.771Z,3.4503,126.677,60.06,4.3,241 km NW of Tobelo Indonesia -2022-06-03T15:16:35.608Z,5.4793,127.5037,10,4.5,176 km ESE of Pondaguitan Philippines -2022-06-03T15:57:03.638Z,5.6361,127.3916,10.362,4.5,156 km ESE of Pondaguitan Philippines -2022-06-04T00:55:25.923Z,5.5645,126.7926,10,4.5,111 km SE of Pondaguitan Philippines -2022-06-05T07:03:08.496Z,9.6518,125.7797,88.98,4.1,10 km NNE of Claver Philippines -2022-06-05T10:27:13.807Z,9.3114,125.4455,10,4.5,8 km WSW of Jabonga Philippines -2022-06-05T22:12:02.958Z,6.0336,126.0141,128.97,4.6,35 km E of Lamitan Philippines -2022-06-06T09:59:07.471Z,6.389,126.2279,70.73,4.2,Mindanao Philippines -2022-06-07T09:08:57.861Z,4.1927,126.7352,50.81,4.2,194 km SE of Sarangani Philippines -2022-06-07T14:34:55.703Z,2.0596,124.466,262.62,4.4,76 km NNW of Manado Indonesia -2022-06-07T20:37:25.713Z,6.6463,127.0252,48.51,5.1,77 km SE of Tarragona Philippines -2022-06-10T17:07:46.358Z,4.0986,123.0625,546.52,4.3,249 km SSE of Tabiauan Philippines -2022-06-11T07:22:30.897Z,5.7489,127.2544,10,4.3,137 km ESE of Pondaguitan Philippines -2022-06-12T09:52:43.448Z,1.7943,127.0446,117.41,4.4,107 km W of Tobelo Indonesia -2022-06-12T13:12:20.450Z,2.5639,127.2297,69.06,4.6,126 km NW of Tobelo Indonesia -2022-06-14T18:14:18.623Z,5.1245,123.9627,498.67,4.1,117 km SSW of Maitum Philippines -2022-06-14T20:34:41.278Z,5.8503,126.8336,78.92,4,91 km SE of Pondaguitan Philippines -2022-06-15T12:35:56.669Z,2.8334,128.1761,170.05,4,123 km N of Tobelo Indonesia -2022-06-19T21:43:21.111Z,4.1404,126.1519,114.06,4.2,159 km SSE of Sarangani Philippines -2022-06-20T05:39:12.368Z,2.5709,128.278,162.57,4.6,97 km NNE of Tobelo Indonesia -2022-06-20T17:26:47.241Z,5.1222,127.195,87.98,4.3,177 km SE of Pondaguitan Philippines -2022-06-21T01:54:13.680Z,1.97,126.8761,42.2,4.6,128 km WNW of Tobelo Indonesia -2022-06-21T21:27:36.643Z,6.0099,125.7361,130.1,4.2,5 km E of Mangili Philippines -2022-06-22T15:03:02.448Z,2.4641,125.2613,248.09,4.1,112 km NNE of Laikit Laikit II (Dimembe) Indonesia -2022-06-23T14:59:38.123Z,3.4807,123.3356,464.23,4.1,277 km NW of Manado Indonesia -2022-06-24T13:41:54.970Z,4.6305,125.898,166.76,4.5,Pulau-Pulau Sangihe Indonesia -2022-06-24T21:18:15.978Z,8.9852,126.5782,58.39,4.7,31 km ENE of Aras-asan Philippines -2022-06-25T20:22:58.110Z,6.0116,125.7,150.52,4.5,2 km ENE of Mangili Philippines -2022-06-28T09:54:37.170Z,2.9358,128.4842,35,4.4,143 km NNE of Tobelo Indonesia -2022-06-28T21:23:16.177Z,7.1932,123.5088,10,4.7,29 km SSE of Malim Philippines -2022-06-30T08:57:44.429Z,1.3876,125.9681,91.49,4.5,111 km E of Laikit Laikit II (Dimembe) Indonesia -2022-06-30T09:21:37.043Z,6.3277,126.5323,10,4.5,39 km E of Pondaguitan Philippines -2022-06-30T18:03:51.596Z,4.2346,127.7499,135.28,4.5,278 km N of Tobelo Indonesia -2022-07-04T11:48:43.749Z,3.2175,127.7102,60.33,4.3,167 km NNW of Tobelo Indonesia -2022-07-05T06:44:50.347Z,4.9714,127.2228,114.6,4.6,192 km SE of Pondaguitan Philippines -2022-07-05T23:53:22.048Z,6.5725,125.2348,10,4.6,4 km S of Kiblawan Philippines -2022-07-06T17:58:52.846Z,6.1743,126.4891,79.705,4.3,Mindanao Philippines -2022-07-07T08:26:10.615Z,7.5793,122.7659,10,4.4,Mindanao Philippines -2022-07-07T12:46:11.854Z,4.0458,126.4114,83.733,4.2,183 km SE of Sarangani Philippines -2022-07-08T04:26:43.259Z,2.6778,122.8755,508.39,4.2,237 km N of Gorontalo Indonesia -2022-07-08T14:33:47.510Z,9.817,125.9319,9.997,4.2,7 km SW of Del Carmen Surigao del Norte Philippines -2022-07-09T01:08:41.505Z,5.5852,126.585,62.182,4.9,96 km SSE of Pondaguitan Philippines -2022-07-09T11:40:43.777Z,4.8641,127.5836,115.584,4,227 km SE of Pondaguitan Philippines -2022-07-09T22:11:21.432Z,3.0361,127.0555,18.26,4.4,179 km NW of Tobelo Indonesia -2022-07-10T16:02:39.939Z,2.5387,126.867,35,4.3,155 km NW of Tobelo Indonesia -2022-07-10T21:11:42.526Z,6.4071,125.4981,165.25,4.4,8 km SW of Pangian Philippines -2022-07-11T10:18:55.194Z,6.0131,125.8965,117.619,4.3,23 km ESE of Lamitan Philippines -2022-07-11T16:39:48.623Z,1.4277,124.0941,253.41,4.2,79 km W of Tomohon Indonesia -2022-07-12T02:50:55.318Z,5.0863,125.206,10,4.3,45 km SW of Sarangani Philippines -2022-07-12T04:54:31.034Z,3.0813,127.1502,35,4.9,177 km NNW of Tobelo Indonesia -2022-07-12T06:44:23.577Z,3.1621,127.1927,46.1,4.7,Pulau-Pulau Talaud Indonesia -2022-07-12T17:23:25.068Z,1.6584,126.5086,35.924,4.6,136 km NW of Ternate Indonesia -2022-07-12T20:41:24.596Z,3.0359,127.1272,58.139,4.5,174 km NW of Tobelo Indonesia -2022-07-14T07:09:41.057Z,2.9876,126.9714,43.552,4.4,Molucca Sea -2022-07-14T12:08:19.444Z,3.1004,127.1621,35.565,5,178 km NNW of Tobelo Indonesia -2022-07-14T12:36:43.291Z,3.0437,127.1552,46.798,4.5,173 km NNW of Tobelo Indonesia -2022-07-14T13:12:57.624Z,2.9573,127.0417,60.99,4.4,173 km NW of Tobelo Indonesia -2022-07-14T13:55:41.057Z,3.08,127.1646,36.017,4.7,176 km NNW of Tobelo Indonesia -2022-07-17T04:04:14.303Z,8.6324,126.2252,10,4.7,9 km SSE of Salvacion Philippines -2022-07-17T04:05:43.526Z,8.6448,126.4131,10,4.5,21 km SE of Marihatag Philippines -2022-07-19T21:14:49.232Z,7.3032,127.0753,10,4.5,55 km E of Santiago Philippines -2022-07-20T05:18:41.898Z,5.7596,126.8398,129.259,4.8,98 km SE of Pondaguitan Philippines -2022-07-20T07:48:37.008Z,8.7379,124.8289,84.267,4.4,4 km ENE of Baliwagan Philippines -2022-07-21T09:03:23.226Z,1.7043,127.2669,80.305,4.4,82 km W of Tobelo Indonesia -2022-07-21T16:38:45.814Z,4.8884,126.4244,96.632,4.6,120 km ESE of Sarangani Philippines -2022-07-21T19:31:32.356Z,2.7441,128.4402,239,4.4,122 km NNE of Tobelo Indonesia -2022-07-22T15:14:25.971Z,1.602,124.8892,190.181,4.3,13 km NNE of Manado Indonesia -2022-07-22T18:11:02.171Z,2.7865,128.3946,71.119,4.1,124 km NNE of Tobelo Indonesia -2022-07-26T04:19:37.107Z,2.842,126.7378,53.099,4.6,Molucca Sea -2022-07-31T05:37:55.706Z,2.9507,128.1894,176.002,4,136 km N of Tobelo Indonesia -2022-07-31T21:37:02.996Z,7.3025,127.2817,10,4.7,78 km E of Santiago Philippines -2022-08-02T05:24:27.762Z,6.8333,123.7663,20,5.5,28 km W of Gadung Philippines -2022-08-02T18:14:06.037Z,1.49,126.3121,48.818,4,142 km WNW of Ternate Indonesia -2022-08-02T19:19:35.765Z,7.1923,126.8718,60.587,5.4,34 km ESE of Santiago Philippines -2022-08-04T01:00:38.981Z,2.5629,128.1263,146.898,4.1,93 km N of Tobelo Indonesia -2022-08-08T18:59:13.560Z,1.1786,125.3055,103.888,4.2,45 km ESE of Tondano Indonesia -2022-08-08T21:56:16.920Z,6.3132,126.9441,94.019,4.4,84 km E of Pondaguitan Philippines -2022-08-09T12:16:24.265Z,9.3419,126.0739,97.812,4.1,10 km E of Cantilan Philippines -2022-08-10T03:31:24.866Z,4.8286,127.8347,10,4.4,Pulau-Pulau Talaud Indonesia -2022-08-11T12:14:02.385Z,4.2473,126.4922,54.255,4.3,171 km SE of Sarangani Philippines -2022-08-11T17:43:53.754Z,5.326,126.1383,143.865,4.4,75 km E of Sarangani Philippines -2022-08-11T21:40:57.016Z,1.7728,126.408,44.39,4,153 km NW of Ternate Indonesia -2022-08-11T23:43:41.062Z,4.8947,126.4003,116.689,4.3,118 km ESE of Sarangani Philippines -2022-08-13T06:25:32.230Z,6.9062,123.792,19.913,5.8,Moro Gulf Mindanao Philippines -2022-08-14T02:47:46.891Z,1.7974,126.3859,30,5.7,157 km NW of Ternate Indonesia -2022-08-14T03:17:55.261Z,1.9578,126.5123,47.448,4.5,161 km NW of Ternate Indonesia -2022-08-14T13:04:36.750Z,4.3848,126.3899,66.457,4.7,152 km SE of Sarangani Philippines -2022-08-14T16:44:12.997Z,1.6071,127.1354,128.295,4.2,94 km NNW of Ternate Indonesia -2022-08-15T01:38:03.314Z,6.4748,126.8619,85.077,4.7,73 km SE of Bobon Philippines -2022-08-15T04:34:48.816Z,2.4926,128.2388,153.973,4.6,88 km NNE of Tobelo Indonesia -2022-08-15T08:23:06.941Z,6.616,125.0631,18.273,5.4,10 km E of Telafas Philippines -2022-08-15T15:07:26.248Z,1.7941,126.3844,39.693,4.7,157 km NW of Ternate Indonesia -2022-08-16T16:35:28.165Z,1.7313,126.2283,13.261,4.6,142 km E of Laikit Laikit II (Dimembe) Indonesia -2022-08-17T02:33:08.558Z,1.7625,126.4721,46.303,4.1,Molucca Sea -2022-08-17T09:35:15.352Z,9.6441,125.849,132.73,4.9,13 km W of Socorro Philippines -2022-08-18T09:55:16.336Z,5.7888,127.1973,55.308,4.4,129 km ESE of Pondaguitan Philippines -2022-08-18T18:20:39.573Z,4.2861,125.8045,102.101,4.5,Pulau-Pulau Sangihe Indonesia -2022-08-19T22:05:24.350Z,4.695,125.8574,187.31,4.3,89 km SSE of Sarangani Philippines -2022-08-21T07:33:59.150Z,3.1415,126.3533,60.893,4.7,238 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-08-22T01:39:32.570Z,2.4615,127.9541,156.488,4.3,81 km N of Tobelo Indonesia -2022-08-24T20:10:51.593Z,3.5265,127.0736,40.383,4.9,224 km NNW of Tobelo Indonesia -2022-08-25T17:46:13.372Z,7.1315,126.7003,87.936,4.3,19 km ESE of Manay Philippines -2022-08-25T23:13:56.510Z,5.1037,127.2002,8.991,5,179 km SE of Pondaguitan Philippines -2022-08-26T16:03:39.773Z,8.5363,126.453,80.277,4.4,22 km NE of Hinatuan Philippines -2022-08-26T17:29:07.150Z,8.5809,126.4956,48.159,4.5,28 km E of Gamut Philippines -2022-08-26T19:37:49.732Z,6.1388,125.9022,153.278,4.4,22 km E of Lapuan Philippines -2022-08-27T03:29:21.231Z,4.0767,126.7311,49.2,4.4,203 km SE of Sarangani Philippines -2022-08-28T04:58:54.283Z,5.2774,125.3273,186.011,4.8,Mindanao Philippines -2022-08-28T10:00:30.219Z,8.7302,126.9294,48.354,4.7,70 km E of Marihatag Philippines -2022-08-28T16:58:48.768Z,6.6145,126.7021,174.971,4.4,49 km SE of Bobon Philippines -2022-08-28T20:32:18.406Z,3.754,122.2341,597.945,4.4,244 km SE of Latung Philippines -2022-08-29T00:15:03.402Z,1.3122,126.1663,41.632,4,116 km E of Bitung Indonesia -2022-08-29T04:22:38.794Z,3.6432,127.2721,49.613,4.3,227 km NNW of Tobelo Indonesia -2022-08-29T11:01:34.319Z,4.9498,127.5703,40.833,4.4,219 km SE of Pondaguitan Philippines -2022-08-30T12:20:44.609Z,4.5958,127.7124,108.364,4.3,258 km SE of Pondaguitan Philippines -2022-08-30T15:40:53.577Z,2.8638,124.9405,241.869,4.4,152 km N of Laikit Laikit II (Dimembe) Indonesia -2022-08-30T20:41:44.402Z,4.2703,126.8427,58.097,4.1,197 km SE of Sarangani Philippines -2022-08-31T12:25:35.027Z,3.5888,125.6173,143.197,4.2,201 km S of Sarangani Philippines -2022-09-04T23:02:32.604Z,5.2054,125.8789,135.422,4.1,50 km ESE of Sarangani Philippines -2022-09-05T12:04:33.771Z,4.9103,125.9657,119.094,4.3,77 km SE of Sarangani Philippines -2022-09-06T04:39:40.024Z,1.6953,125.9509,91.446,4.2,Molucca Sea -2022-09-06T05:24:30.027Z,6.7124,127.3789,10,4.3,108 km ESE of Manay Philippines -2022-09-06T15:41:27.553Z,5.94,126.4978,9.69,4.4,Mindanao Philippines -2022-09-07T07:35:57.368Z,1.7848,127.4448,122.271,4.5,63 km W of Tobelo Indonesia -2022-09-09T17:20:17.763Z,2.0788,126.5726,36.724,5.2,164 km WNW of Tobelo Indonesia -2022-09-09T17:25:02.142Z,1.9809,126.5514,56.678,4.6,160 km NW of Ternate Indonesia -2022-09-10T19:51:00.453Z,3.4489,127.1224,37.796,4.1,214 km NNW of Tobelo Indonesia -2022-09-12T08:14:39.695Z,6.1524,127.6087,10,5.7,160 km E of Pondaguitan Philippines -2022-09-12T10:19:42.370Z,4.0375,127.816,128.031,4.5,256 km N of Tobelo Indonesia -2022-09-14T06:48:44.363Z,4.0975,126.5121,35,4.5,185 km SE of Sarangani Philippines -2022-09-14T08:55:00.915Z,5.8983,127.0242,51.644,4.5,Philippine Islands region -2022-09-15T16:51:35.650Z,8.4999,126.0055,11.051,4.4,1 km SW of Alegria Philippines -2022-09-16T11:45:35.212Z,3.1481,126.052,101.318,4.6,219 km NNE of Laikit Laikit II (Dimembe) Indonesia -2022-09-17T20:39:35.714Z,5.4699,125.3336,10,4.4,11 km S of Balangonan Philippines -2022-09-19T05:24:33.211Z,8.3595,126.5143,84.408,4.5,19 km E of Hinatuan Philippines -2022-09-19T13:06:59.321Z,5.9725,125.8383,154.564,4.5,17 km ESE of Mangili Philippines -2022-09-19T23:34:33.850Z,2.3732,126.9378,53.116,4.5,Molucca Sea -2022-09-21T15:29:43.260Z,2.3171,126.7238,42.891,4.3,157 km WNW of Tobelo Indonesia -2022-09-21T17:37:14.924Z,6.3828,126.2195,57.88,4.4,5 km ENE of Pondaguitan Philippines -2022-09-24T21:11:42.254Z,3.9812,125.8702,155.494,4.5,163 km SSE of Sarangani Philippines -2022-09-25T02:54:40.794Z,6.0352,125.8823,168.642,4.2,20 km ESE of Lamitan Philippines -2022-09-25T11:16:31.404Z,4.3182,126.072,133.398,5.1,137 km SSE of Sarangani Philippines -2022-09-26T02:53:32.922Z,4.9554,126.3799,10,4.4,113 km ESE of Sarangani Philippines -2022-09-26T03:33:32.958Z,1.8876,122.6124,465.079,4.4,157 km NNW of Gorontalo Indonesia -2022-09-26T13:31:34.314Z,1.9363,125.8944,53.164,4,113 km ENE of Laikit Laikit II (Dimembe) Indonesia -2022-09-28T01:12:24.631Z,9.3796,126.6106,35,5.2,47 km ENE of Cortes Philippines -2022-09-28T02:06:56.173Z,9.1904,126.3853,19.223,4.6,23 km E of Tigao Philippines -2022-09-28T02:28:00.426Z,9.2975,126.3829,42.797,4.5,21 km E of Cortes Philippines -2022-09-28T02:39:28.305Z,9.2069,126.208,53.001,4.7,3 km E of Tigao Philippines -2022-09-28T03:43:28.470Z,3.2277,126.8959,35,4.5,206 km NW of Tobelo Indonesia -2022-09-28T04:20:57.791Z,2.9893,126.1825,55.746,4.6,213 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-09-28T06:22:07.651Z,9.2941,126.5739,36.603,4.4,42 km E of Cortes Philippines -2022-09-28T08:49:48.958Z,9.2958,126.5971,35.559,4.4,44 km E of Cortes Philippines -2022-09-28T11:41:39.151Z,2.7319,128.1508,73.152,4.6,112 km N of Tobelo Indonesia -2022-09-29T15:14:40.370Z,2.7648,128.4528,221.295,4.5,124 km NNE of Tobelo Indonesia -2022-09-30T01:09:29.178Z,9.4558,126.6941,35,4.5,58 km ENE of Cortes Philippines -2022-09-30T02:59:02.737Z,9.4606,126.6624,35,4.8,55 km ENE of Cortes Philippines -2022-09-30T05:03:22.555Z,9.4362,126.5212,42.057,4.3,40 km ENE of Cortes Philippines -2022-09-30T14:31:11.020Z,9.423,126.4861,35,4.3,36 km ENE of Cortes Philippines -2022-10-02T10:57:58.395Z,2.5551,127.8251,71.114,4.3,Molucca Sea -2022-10-02T16:01:07.575Z,9.5529,127.0685,10,4.4,100 km ENE of Cortes Philippines -2022-10-02T18:17:54.006Z,9.911,125.8786,96.02,4.4,11 km WNW of Del Carmen Surigao del Norte Philippines -2022-10-02T20:11:23.131Z,9.228,126.4498,74.94,4.4,28 km ESE of Cortes Philippines -2022-10-02T21:03:01.038Z,4.6515,126.0376,69.936,4.9,104 km SE of Sarangani Philippines -2022-10-03T08:07:53.400Z,9.8876,126.0229,59.67,5.1,4 km E of Libas Philippines -2022-10-03T08:32:55.353Z,4.5146,123.9825,452.974,4,177 km SSW of Tambilil Philippines -2022-10-03T13:26:29.006Z,4.3179,125.8257,88.272,4.5,126 km SSE of Sarangani Philippines -2022-10-03T17:13:53.068Z,3.9487,125.7226,150.42,4.4,163 km S of Sarangani Philippines -2022-10-07T13:06:25.460Z,3.5144,125.9949,84.903,4.7,217 km SSE of Sarangani Philippines -2022-10-07T15:15:39.519Z,6.2892,126.0406,150.093,4.4,16 km SW of Surup Philippines -2022-10-09T09:55:51.177Z,3.7831,127.0223,44.743,4.9,Pulau-Pulau Talaud Indonesia -2022-10-10T23:03:34.917Z,3.6195,126.917,45.905,4.5,241 km NNW of Tobelo Indonesia -2022-10-11T05:31:50.018Z,6.0772,126.2783,154.125,4.3,33 km SSE of Pondaguitan Philippines -2022-10-11T07:14:49.091Z,1.9165,126.4408,39.192,4.1,Molucca Sea -2022-10-11T14:31:47.101Z,6.2982,127.1808,35,4.4,111 km E of Pondaguitan Philippines -2022-10-12T11:25:22.225Z,6.0134,126.171,66.769,4.1,38 km S of Pondaguitan Philippines -2022-10-13T18:16:56.763Z,5.4352,126.4183,40.243,4.6,101 km ESE of Caburan Philippines -2022-10-13T19:41:25.119Z,7.6266,126.8671,53.555,4.4,34 km E of Baganga Philippines -2022-10-13T20:56:26.748Z,3.4975,125.983,77.377,4.4,218 km SSE of Sarangani Philippines -2022-10-14T13:23:50.128Z,8.0474,124.6737,10,4.2,Mindanao Philippines -2022-10-14T17:53:46.419Z,6.3534,126.2005,94.788,4.6,2 km ESE of Pondaguitan Philippines -2022-10-15T01:10:30.212Z,7.242,127.6586,10,4.5,119 km E of Santiago Philippines -2022-10-15T08:24:06.640Z,5.1459,127.4719,152.79,4.4,196 km SE of Pondaguitan Philippines -2022-10-15T15:14:26.019Z,8.855,126.8371,35,5,57 km E of Aras-asan Philippines -2022-10-16T03:27:13.492Z,2.8228,128.1359,149.834,4.4,121 km N of Tobelo Indonesia -2022-10-16T05:05:35.247Z,2.582,128.2283,243.98,3.7,97 km NNE of Tobelo Indonesia -2022-10-16T07:55:08.880Z,2.1576,127.4388,110.948,4.1,79 km NW of Tobelo Indonesia -2022-10-16T13:13:32.655Z,6.5205,127.0703,11.012,4.3,89 km SE of Lukatan Philippines -2022-10-17T15:36:03.184Z,6.7576,126.1418,219.855,4.5,6 km NE of Talisay Philippines -2022-10-17T16:29:24.771Z,3.0931,127.8285,59.494,4.3,152 km N of Tobelo Indonesia -2022-10-18T04:23:09.184Z,8.8115,126.302,92.983,4.5,0 km NE of Marihatag Philippines -2022-10-18T17:14:00.705Z,3.2116,128.0122,71.968,4.6,164 km N of Tobelo Indonesia -2022-10-18T21:19:42.213Z,5.1082,124.7121,384.244,4,Mindanao Philippines -2022-10-19T01:43:58.694Z,3.891,126.3138,72.829,4,192 km SSE of Sarangani Philippines -2022-10-19T08:05:40.546Z,6.7327,125.1351,34,5.5,6 km SW of Magsaysay Philippines -2022-10-19T18:48:09.148Z,9.8729,125.5939,112.62,4.5,6 km NNW of Talisay Philippines -2022-10-20T07:15:19.207Z,4.978,126.4278,77.164,4.5,Pulau-Pulau Talaud Indonesia -2022-10-20T11:30:19.375Z,2.2054,126.9293,61.549,4.1,131 km WNW of Tobelo Indonesia -2022-10-21T06:48:08.437Z,9.8698,125.8616,95.454,4.2,11 km W of Del Carmen Surigao del Norte Philippines -2022-10-21T18:23:44.486Z,2.5112,127.8156,86.534,4.6,Molucca Sea -2022-10-24T01:18:32.707Z,4.8039,124.1536,9.717,4.6,140 km SSW of Tambilil Philippines -2022-10-24T02:06:42.416Z,7.0424,125.4231,252.131,5.3,Mindanao Philippines -2022-10-24T15:19:18.359Z,5.7504,125.5479,9.158,4.4,Mindanao Philippines -2022-10-25T13:20:43.521Z,8.1873,126.5518,78.118,5.1,13 km ENE of Barcelona Philippines -2022-10-25T22:24:14.129Z,1.5655,126.0339,9.698,4.4,101 km E of Bitung Indonesia -2022-10-25T23:54:19.737Z,2.7339,128.3889,213.146,4.5,Halmahera Indonesia -2022-10-28T03:27:33.686Z,2.2031,124.7403,205.935,4.5,80 km N of Manado Indonesia -2022-10-29T16:48:23.100Z,1.3636,126.256,40.741,4.6,140 km WNW of Ternate Indonesia -2022-10-31T02:05:59.485Z,5.289,127.348,150.398,4,175 km SE of Pondaguitan Philippines -2022-10-31T14:48:58.751Z,2.1068,125.7528,9.217,4.3,110 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-10-31T23:43:26.755Z,5.4618,126.631,67.437,4.2,Mindanao Philippines -2022-11-01T12:56:31.623Z,1.6404,126.9788,121.777,4.9,104 km NNW of Ternate Indonesia -2022-11-03T06:37:18.664Z,6.1754,126.3216,117.051,4.1,25 km SE of Pondaguitan Philippines -2022-11-03T12:49:31.052Z,7.5542,126.6895,10,4.6,14 km E of Baganga Philippines -2022-11-03T19:21:59.639Z,8.4976,126.6586,68.076,4.5,38 km ENE of Hinatuan Philippines -2022-11-03T19:33:41.760Z,8.4735,126.6093,79.261,4.3,32 km ENE of Hinatuan Philippines -2022-11-04T02:57:42.697Z,2.6519,128.4641,231.713,4.4,113 km NNE of Tobelo Indonesia -2022-11-04T02:58:38.922Z,1.9835,127.1244,72.203,4.9,102 km WNW of Tobelo Indonesia -2022-11-04T10:57:00.536Z,5.9335,126.6934,87.874,4.2,74 km SE of Pondaguitan Philippines -2022-11-04T16:58:29.586Z,3.0532,128.5682,221.88,4.6,159 km NNE of Tobelo Indonesia -2022-11-05T01:38:42.538Z,7.5174,126.3986,155.931,4.3,Mindanao Philippines -2022-11-05T07:42:10.539Z,4.1071,126.2033,88.998,5,165 km SSE of Sarangani Philippines -2022-11-05T10:39:27.564Z,7.4676,126.5814,99.781,4.1,1 km N of Baculin Philippines -2022-11-05T15:35:07.648Z,3.6718,126.8508,28.805,5.1,245 km SE of Sarangani Philippines -2022-11-06T00:03:12.098Z,2.5867,124.6644,231,5.6,124 km N of Manado Indonesia -2022-11-06T08:14:14.054Z,5.089,127.3038,85.794,4.1,Philippine Islands region -2022-11-07T05:19:00.817Z,2.1754,126.9558,82.2,4.3,127 km WNW of Tobelo Indonesia -2022-11-08T20:40:48.074Z,6.6626,124.9519,11.104,4.6,4 km SSE of Columbio Philippines -2022-11-09T12:52:26.015Z,1.6498,127.0805,68.203,4.3,100 km NNW of Ternate Indonesia -2022-11-11T20:52:38.630Z,1.734,127.1792,127.335,4.3,92 km W of Tobelo Indonesia -2022-11-13T13:45:30.133Z,2.4941,124.0156,356.527,4.2,145 km NW of Manado Indonesia -2022-11-15T07:50:49.299Z,2.1149,127.207,108.077,4.4,98 km WNW of Tobelo Indonesia -2022-11-15T09:47:28.022Z,5.6909,126.1015,106.739,4.4,Mindanao Philippines -2022-11-15T20:52:00.531Z,6.2134,126.5769,111.436,4.4,47 km ESE of Pondaguitan Philippines -2022-11-17T08:00:23.484Z,1.5761,126.1807,53.192,4.4,134 km E of Laikit Laikit II (Dimembe) Indonesia -2022-11-19T21:36:00.233Z,7.7992,127.7359,10,4.3,131 km E of Kinablangan Philippines -2022-11-22T05:13:02.263Z,4.984,127.4734,128.003,4.7,209 km SE of Pondaguitan Philippines -2022-11-22T06:09:31.741Z,2.9625,128.558,223.434,4.2,149 km NNE of Tobelo Indonesia -2022-11-22T15:52:42.686Z,6.2975,126.7664,186.231,4.3,65 km E of Pondaguitan Philippines -2022-11-23T04:04:52.265Z,5.942,126.1256,93.598,4.8,46 km S of Pondaguitan Philippines -2022-11-26T02:25:29.877Z,2.0284,126.8709,56.259,4,Molucca Sea -2022-11-26T20:24:35.896Z,9.0652,126.1559,76.401,4.7,4 km WSW of Tandag Philippines -2022-11-27T04:43:26.582Z,9.3616,126.378,56.023,5,22 km ENE of Cortes Philippines -2022-11-27T11:30:33.416Z,9.3036,126.8465,10,4.2,72 km E of Cortes Philippines -2022-11-27T16:23:48.031Z,2.6479,128.0317,163.978,4.4,Halmahera Indonesia -2022-11-28T23:37:20.668Z,4.3658,125.7632,120.689,4.2,Pulau-Pulau Sangihe Indonesia -2022-11-29T21:42:09.444Z,4.0359,126.6842,35,4.6,202 km SE of Sarangani Philippines -2022-11-30T14:59:30.093Z,6.8295,123.7387,590.277,4.2,Moro Gulf Mindanao Philippines -2022-11-30T15:39:42.995Z,8.5008,126.8305,10,4.4,56 km ENE of Hinatuan Philippines -2022-11-30T16:23:16.341Z,8.8228,126.8539,10,4.8,60 km E of Aras-asan Philippines -2022-11-30T19:40:53.923Z,3.142,128.1618,72.751,4.2,157 km N of Tobelo Indonesia -2022-11-30T22:30:36.483Z,5.5812,127.1411,150.253,4.6,137 km SE of Pondaguitan Philippines -2022-11-30T23:46:10.322Z,8.3878,126.686,45.248,4.2,37 km NE of Barcelona Philippines -2022-12-01T03:53:54.543Z,3.5457,126.9551,87.592,4.5,232 km NNW of Tobelo Indonesia -2022-12-02T07:09:25.592Z,5.9112,126.3556,97.162,4,53 km SSE of Pondaguitan Philippines -2022-12-03T01:02:24.875Z,4.9865,127.5379,10,4.4,214 km SE of Pondaguitan Philippines -2022-12-04T17:51:24.944Z,9.7983,125.4571,35,4.3,Mindanao Philippines -2022-12-05T23:39:41.363Z,7.7439,124.6387,8.56,4.6,7 km NNW of Wao Philippines -2022-12-05T23:55:00.263Z,7.7362,124.7364,10.718,4.8,Mindanao Philippines -2022-12-08T05:12:23.217Z,9.9762,125.6066,10,4.4,2 km NNE of Dinagat Philippines -2022-12-08T07:35:10.689Z,2.3551,126.1074,83.224,4.1,158 km NE of Laikit Laikit II (Dimembe) Indonesia -2022-12-09T05:06:41.754Z,6.4798,123.9805,9.925,4.5,8 km WNW of Sangay Philippines -2022-12-09T13:51:27.875Z,4.0615,128.712,10,4.5,269 km NNE of Tobelo Indonesia -2022-12-09T20:01:56.492Z,6.4472,126.1762,72.166,5.6,6 km ESE of Nangan Philippines -2022-12-10T05:45:18.306Z,7.9492,125.0222,10,4.4,5 km S of Lantapan Philippines -2022-12-11T02:54:58.810Z,7.6701,127.0236,10,4.3,52 km ENE of Baganga Philippines -2022-12-14T20:42:58.082Z,4.0868,126.7133,55.036,4.5,201 km SE of Sarangani Philippines -2022-12-15T03:31:09.951Z,2.8569,127.4994,85.796,4.8,137 km NNW of Tobelo Indonesia -2022-12-18T05:52:24.806Z,6.4662,127.6145,10.087,4.3,143 km ESE of San Ignacio Philippines -2022-12-18T08:13:39.836Z,9.345,126.2296,10,4.6,8 km NNE of Cortes Philippines -2022-12-18T14:39:20.066Z,4.9468,124.8947,10.619,4.3,Celebes Sea -2022-12-19T21:44:25.055Z,7.7019,124.6944,10.015,4.9,3 km NE of Wao Philippines -2022-12-23T01:39:20.531Z,4.2759,125.6808,90.312,4.4,126 km S of Sarangani Philippines -2022-12-29T13:13:36.794Z,6.2316,126.1831,140.887,5.2,14 km S of Pondaguitan Philippines -2022-12-29T15:57:04.230Z,6.2459,126.3208,126.906,4.6,20 km SE of Pondaguitan Philippines -2022-12-29T16:52:35.854Z,2.0797,127.1383,104.677,4.9,104 km WNW of Tobelo Indonesia -2022-12-31T15:45:51.231Z,4.9172,125.1619,277.283,4.3,63 km SSW of Sarangani Philippines -2022-12-31T19:55:16.113Z,2.1748,126.7058,45.928,4.4,153 km WNW of Tobelo Indonesia -2023-01-01T01:41:43.755Z,7.1397,126.738,79.194,4.5,23 km ESE of Manay Philippines -2023-01-02T03:27:29.148Z,9.3909,126.0204,10.004,4.4,7 km NE of Cantilan Philippines -2023-01-02T21:05:36.655Z,3.5828,127.107,41.675,4.5,228 km NNW of Tobelo Indonesia -2023-01-02T22:09:38.208Z,8.4519,126.9002,35,4.9,60 km ENE of Barcelona Philippines -2023-01-03T01:07:25.496Z,3.6361,124.5139,250.613,4.4,222 km SSW of Sarangani Philippines -2023-01-03T01:59:11.788Z,8.4265,126.6748,60.755,4.5,37 km E of Hinatuan Philippines -2023-01-03T17:29:54.551Z,4.2505,126.7251,39.737,4.2,189 km SE of Sarangani Philippines -2023-01-04T16:36:22.152Z,3.5691,126.7719,49.297,4.3,245 km NW of Tobelo Indonesia -2023-01-04T16:38:06.417Z,3.4965,126.6943,50.551,4.2,244 km NW of Tobelo Indonesia -2023-01-04T17:03:38.964Z,3.6115,126.9024,41.721,4.4,241 km NNW of Tobelo Indonesia -2023-01-05T01:35:26.061Z,2.0929,127.8829,10,4.2,42 km NNW of Tobelo Indonesia -2023-01-07T05:21:56.238Z,4.1528,122.796,581.105,4.5,230 km SSE of Tabiauan Philippines -2023-01-07T06:46:52.339Z,1.5312,126.4499,10,4.2,132 km NW of Ternate Indonesia -2023-01-07T23:00:33.839Z,7.5478,126.4686,143.364,4.9,Davao Oriental Philippines -2023-01-10T11:26:45.845Z,3.6141,122.7771,539.655,4,284 km SSE of Tabiauan Philippines -2023-01-11T07:49:17.106Z,6.0665,126.0555,124.073,4.4,35 km SSW of Pondaguitan Philippines -2023-01-12T21:48:17.382Z,2.1524,125.9305,9.057,4.7,Pulau-Pulau Sangihe Indonesia -2023-01-13T03:47:17.677Z,5.0389,127.3963,109.357,4.4,198 km SE of Pondaguitan Philippines -2023-01-14T19:34:07.631Z,3.53,122.8718,543.489,4.2,296 km SSE of Tabiauan Philippines -2023-01-14T22:15:01.301Z,1.5787,126.7041,53.996,4.1,115 km NW of Ternate Indonesia -2023-01-15T07:32:17.509Z,1.6709,126.5954,72.437,4.5,131 km NW of Ternate Indonesia -2023-01-16T03:39:29.286Z,3.19,126.9637,35,4.3,199 km NW of Tobelo Indonesia -2023-01-17T22:05:11.469Z,6.2672,126.0482,138.405,4.5,17 km SW of Surup Philippines -2023-01-18T06:06:11.454Z,2.7306,127.0221,29.708,7,156 km NW of Tobelo Indonesia -2023-01-18T06:19:13.687Z,2.8239,127.0179,35,5.1,163 km NW of Tobelo Indonesia -2023-01-18T06:21:53.434Z,2.5854,126.9129,55.297,4.4,Molucca Sea -2023-01-18T06:28:04.620Z,2.7322,126.9106,47.607,4.5,165 km NW of Tobelo Indonesia -2023-01-18T06:52:05.328Z,2.7108,126.9027,50.398,4.6,164 km NW of Tobelo Indonesia -2023-01-18T07:00:33.965Z,2.6154,127.0118,35,4.8,148 km NW of Tobelo Indonesia -2023-01-18T07:20:21.826Z,2.8174,127.1375,47.416,4.6,Molucca Sea -2023-01-18T08:01:26.536Z,2.6982,127.1349,50.394,5.5,144 km NW of Tobelo Indonesia -2023-01-18T08:15:01.128Z,2.7897,127.1201,35,4.4,153 km NW of Tobelo Indonesia -2023-01-18T09:09:22.284Z,2.8107,127.0827,59.196,4.4,157 km NW of Tobelo Indonesia -2023-01-18T09:39:07.466Z,2.7363,127.079,67.668,4.6,152 km NW of Tobelo Indonesia -2023-01-18T10:26:00.091Z,2.716,126.9909,35,4.4,157 km NW of Tobelo Indonesia -2023-01-18T10:47:35.584Z,2.674,126.9412,58.361,4.2,158 km NW of Tobelo Indonesia -2023-01-18T12:10:54.980Z,2.599,126.8006,35,4.4,165 km NW of Tobelo Indonesia -2023-01-18T13:35:11.931Z,2.6628,127.02,47.541,4.3,150 km NW of Tobelo Indonesia -2023-01-18T13:39:43.330Z,2.7378,126.9009,30.531,4.8,166 km NW of Tobelo Indonesia -2023-01-18T13:40:51.959Z,2.6702,127.1304,53.707,4.3,142 km NW of Tobelo Indonesia -2023-01-18T13:55:28.974Z,2.7211,127.1358,48.764,4.5,146 km NW of Tobelo Indonesia -2023-01-18T14:03:09.338Z,2.7955,126.9949,44.406,4.2,163 km NW of Tobelo Indonesia -2023-01-18T14:04:13.017Z,2.7838,127.1272,63.333,4.2,152 km NW of Tobelo Indonesia -2023-01-18T14:21:39.970Z,2.7711,127.0537,56.605,4.6,156 km NW of Tobelo Indonesia -2023-01-18T15:03:33.226Z,2.8561,127.2252,54.864,4.5,152 km NW of Tobelo Indonesia -2023-01-18T15:14:01.799Z,2.7226,126.9833,46.534,4.6,158 km NW of Tobelo Indonesia -2023-01-18T15:33:07.277Z,2.6208,127.0252,58.388,4.1,147 km NW of Tobelo Indonesia -2023-01-18T15:43:31.175Z,2.9276,127.0925,35,4.9,167 km NW of Tobelo Indonesia -2023-01-18T16:06:40.710Z,2.6606,126.9997,49.952,4.9,Molucca Sea -2023-01-18T16:15:57.984Z,2.695,127.0915,54.949,4.3,147 km NW of Tobelo Indonesia -2023-01-18T18:15:36.473Z,2.6911,126.8984,46.469,4.6,163 km NW of Tobelo Indonesia -2023-01-18T18:55:38.702Z,2.6451,126.9312,60.838,4.5,157 km NW of Tobelo Indonesia -2023-01-18T19:55:00.899Z,2.6921,126.8287,51.121,4.8,169 km NW of Tobelo Indonesia -2023-01-18T20:57:50.626Z,2.7438,126.9974,46.353,4.6,159 km NW of Tobelo Indonesia -2023-01-18T23:10:22.187Z,2.6671,126.8865,42.856,4.3,162 km NW of Tobelo Indonesia -2023-01-19T00:52:14.765Z,2.8378,127.0081,35,4.4,165 km NW of Tobelo Indonesia -2023-01-19T00:55:56.964Z,2.6461,126.7978,35,4.2,168 km NW of Tobelo Indonesia -2023-01-19T01:36:23.195Z,2.801,127.2439,35,4.4,146 km NW of Tobelo Indonesia -2023-01-19T02:24:56.968Z,2.9459,127.2927,35,4.2,156 km NNW of Tobelo Indonesia -2023-01-19T04:54:29.603Z,2.7042,127.0452,35,4.5,152 km NW of Tobelo Indonesia -2023-01-19T07:38:34.635Z,2.7637,127.012,51.964,4.5,159 km NW of Tobelo Indonesia -2023-01-19T07:58:27.249Z,2.8043,127.0002,44.984,4.4,163 km NW of Tobelo Indonesia -2023-01-19T09:14:29.186Z,6.0457,125.68,127.84,4.7,4 km N of Mangili Philippines -2023-01-19T11:04:45.912Z,2.656,127.0019,55.119,4.5,151 km NW of Tobelo Indonesia -2023-01-19T11:54:29.352Z,2.8996,126.6652,23.649,4.5,197 km NW of Tobelo Indonesia -2023-01-19T12:29:49.742Z,2.7749,126.987,41.554,4.7,Molucca Sea -2023-01-19T13:00:21.304Z,2.9462,127.0475,52.185,4.8,171 km NW of Tobelo Indonesia -2023-01-19T14:28:52.309Z,4.3296,126.8131,46.66,4.4,191 km SE of Sarangani Philippines -2023-01-19T15:03:36.418Z,2.7909,127.0919,52.848,4.5,Molucca Sea -2023-01-19T15:20:13.295Z,2.5129,126.5695,56.608,4.1,Molucca Sea -2023-01-19T17:08:54.733Z,2.6248,127.1475,58.127,4.2,Molucca Sea -2023-01-19T17:51:31.397Z,2.7314,126.8195,46.251,4.7,172 km NW of Tobelo Indonesia -2023-01-19T18:51:37.067Z,2.6425,126.8328,54.043,4.5,165 km NW of Tobelo Indonesia -2023-01-19T20:18:17.163Z,2.7685,127.1185,39.868,4.3,151 km NW of Tobelo Indonesia -2023-01-19T20:35:20.072Z,2.7314,127.0244,51.227,4.7,155 km NW of Tobelo Indonesia -2023-01-19T21:45:09.824Z,6.8183,123.6367,601.163,4.2,Moro Gulf Mindanao Philippines -2023-01-19T21:49:06.734Z,2.7117,126.9991,58.29,4.3,156 km NW of Tobelo Indonesia -2023-01-20T01:25:04.964Z,2.6943,126.9659,35,4.3,157 km NW of Tobelo Indonesia -2023-01-20T08:45:47.460Z,4.2931,126.7468,40.37,4.4,187 km SE of Sarangani Philippines -2023-01-20T08:58:08.992Z,3.5848,128.5719,11.49,4.9,214 km NNE of Tobelo Indonesia -2023-01-20T10:40:14.498Z,3.0079,127.0761,53.381,4.7,175 km NW of Tobelo Indonesia -2023-01-20T12:29:40.141Z,2.8439,127.0225,41.473,4.3,Molucca Sea -2023-01-20T14:29:46.068Z,2.9926,126.9301,35.061,4,Molucca Sea -2023-01-20T17:49:34.758Z,2.745,126.9444,24.625,5,163 km NW of Tobelo Indonesia -2023-01-20T19:04:11.226Z,2.176,127.3055,109.974,4.3,92 km WNW of Tobelo Indonesia -2023-01-20T19:33:59.222Z,2.8487,126.9995,51.607,4,167 km NW of Tobelo Indonesia -2023-01-20T19:57:43.576Z,2.6372,126.7544,40.771,4.2,Molucca Sea -2023-01-21T01:14:37.658Z,2.3923,126.7277,49.806,4.5,160 km WNW of Tobelo Indonesia -2023-01-21T03:58:09.650Z,2.7552,127.054,44.905,5.1,155 km NW of Tobelo Indonesia -2023-01-21T05:26:09.631Z,2.7721,126.9975,55.782,4.3,Molucca Sea -2023-01-21T06:17:08.477Z,2.7842,127.0146,52.582,4.7,160 km NW of Tobelo Indonesia -2023-01-21T09:24:40.484Z,2.7651,127.0662,42.036,4.5,155 km NW of Tobelo Indonesia -2023-01-21T11:49:57.998Z,2.6374,126.909,53.379,4.1,158 km NW of Tobelo Indonesia -2023-01-21T11:57:18.083Z,9.486,126.1542,57.113,4.4,23 km N of Cortes Philippines -2023-01-21T14:59:14.070Z,5.9755,125.7624,78.819,4.6,9 km ESE of Mangili Philippines -2023-01-21T15:02:26.712Z,3.0934,126.8245,49.602,4.4,200 km NW of Tobelo Indonesia -2023-01-21T17:24:06.444Z,2.657,126.6547,35,4.5,182 km NW of Tobelo Indonesia -2023-01-21T17:43:40.707Z,2.7118,126.8934,47.837,4.3,165 km NW of Tobelo Indonesia -2023-01-21T20:06:50.880Z,2.7214,126.9929,28.931,5.1,157 km NW of Tobelo Indonesia -2023-01-21T22:49:17.849Z,2.4201,126.1014,35,4.3,162 km NE of Laikit Laikit II (Dimembe) Indonesia -2023-01-21T23:07:11.666Z,6.4722,124.9072,10,4.2,Mindanao Philippines -2023-01-21T23:21:44.750Z,6.91,126.7181,140.577,4.4,Mindanao Philippines -2023-01-22T01:19:00.817Z,3.9273,128.248,10,4.4,244 km N of Tobelo Indonesia -2023-01-22T02:29:04.165Z,2.7978,126.9838,40.742,4.5,164 km NW of Tobelo Indonesia -2023-01-22T04:43:47.365Z,2.7671,127.2314,50.498,4,143 km NW of Tobelo Indonesia -2023-01-22T06:42:05.844Z,2.7381,126.9916,45.562,4.6,159 km NW of Tobelo Indonesia -2023-01-22T13:10:24.842Z,2.7308,126.7271,53.443,4.3,180 km NW of Tobelo Indonesia -2023-01-22T17:57:43.070Z,2.729,127.0199,37.868,4.7,156 km NW of Tobelo Indonesia -2023-01-22T18:21:01.698Z,2.8623,127.0919,30.351,4.5,161 km NW of Tobelo Indonesia -2023-01-22T22:49:23.327Z,6.6786,126.78,122.541,4.7,Mindanao Philippines -2023-01-22T22:50:51.538Z,2.6826,127.0214,35,4.5,Molucca Sea -2023-01-23T02:42:58.194Z,2.777,127.1631,51.722,4.6,149 km NW of Tobelo Indonesia -2023-01-23T03:43:21.807Z,3.0671,127.4254,35,4.4,161 km NNW of Tobelo Indonesia -2023-01-23T13:36:06.965Z,2.698,126.9894,52.426,4.2,156 km NW of Tobelo Indonesia -2023-01-23T14:01:53.556Z,3.0151,127.0689,35,4.7,Pulau-Pulau Talaud Indonesia -2023-01-23T14:09:00.252Z,2.9525,127.0088,58.17,4.5,175 km NW of Tobelo Indonesia -2023-01-23T14:40:03.394Z,3.1265,127.3272,55.506,4.1,172 km NNW of Tobelo Indonesia -2023-01-23T15:15:07.238Z,3.0014,126.9769,47.982,4.2,181 km NW of Tobelo Indonesia -2023-01-23T15:38:35.809Z,2.7568,127.0395,42.887,4.6,156 km NW of Tobelo Indonesia -2023-01-23T17:06:48.456Z,2.7944,126.899,30.491,5,170 km NW of Tobelo Indonesia -2023-01-23T18:17:34.706Z,2.8202,127.0015,9.735,5.5,164 km NW of Tobelo Indonesia -2023-01-23T18:20:52.468Z,2.1964,125.7186,10.554,4.2,113 km NE of Laikit Laikit II (Dimembe) Indonesia -2023-01-23T21:55:10.289Z,1.8588,127.3671,110.943,4.2,72 km WNW of Tobelo Indonesia -2023-01-24T01:10:20.922Z,2.7739,126.9144,18.473,5.1,167 km NW of Tobelo Indonesia -2023-01-24T01:14:31.403Z,2.569,126.3889,35,4.7,197 km NE of Laikit Laikit II (Dimembe) Indonesia -2023-01-24T02:13:14.936Z,2.8182,126.944,35,5.8,169 km NW of Tobelo Indonesia -2023-01-24T02:18:28.916Z,2.8282,126.942,35,4.7,169 km NW of Tobelo Indonesia -2023-01-24T02:25:23.625Z,2.7746,126.8379,35,4.6,Molucca Sea -2023-01-24T02:26:57.818Z,2.7848,127.0061,35,4.4,161 km NW of Tobelo Indonesia -2023-01-24T02:28:53.831Z,2.5213,126.4108,35,4.6,196 km NE of Laikit Laikit II (Dimembe) Indonesia -2023-01-24T02:30:04.675Z,2.9043,127.088,35,5.4,165 km NW of Tobelo Indonesia -2023-01-24T02:37:06.287Z,2.8189,126.8519,35,4.6,176 km NW of Tobelo Indonesia -2023-01-24T02:38:32.603Z,2.8856,127.2573,35,4.5,152 km NNW of Tobelo Indonesia -2023-01-24T02:50:57.122Z,2.6908,126.5906,35,4.2,190 km NW of Tobelo Indonesia -2023-01-24T02:53:31.094Z,2.9088,127.1235,35,4.6,Molucca Sea -2023-01-24T03:16:50.069Z,2.806,127.1825,35,4,150 km NW of Tobelo Indonesia -2023-01-24T03:22:15.140Z,2.9175,127.2949,35,4.4,153 km NNW of Tobelo Indonesia -2023-01-24T03:36:08.195Z,2.8298,127.3658,35,4.4,141 km NNW of Tobelo Indonesia -2023-01-24T03:38:37.121Z,2.9076,127.1653,35,4.5,160 km NW of Tobelo Indonesia -2023-01-24T03:50:52.358Z,2.9529,127.2743,35,4.3,158 km NNW of Tobelo Indonesia -2023-01-24T03:59:48.564Z,2.4837,126.2199,35,4.1,176 km NE of Laikit Laikit II (Dimembe) Indonesia -2023-01-24T04:02:54.811Z,2.7818,126.9104,35,4.9,168 km NW of Tobelo Indonesia -2023-01-24T04:13:59.200Z,2.7244,127.1493,35,4.5,145 km NW of Tobelo Indonesia -2023-01-24T04:21:05.024Z,2.8528,127.0019,35,4.1,Molucca Sea -2023-01-24T04:48:21.137Z,2.5936,126.7846,35,4,166 km NW of Tobelo Indonesia -2023-01-24T04:49:02.671Z,2.8675,127.2473,35,4.1,151 km NW of Tobelo Indonesia -2023-01-24T05:04:39.907Z,2.8419,126.954,52.471,4.5,Molucca Sea -2023-01-24T05:09:18.751Z,2.8713,127.1987,55.995,4.3,155 km NW of Tobelo Indonesia -2023-01-24T05:14:12.092Z,2.6671,126.8508,52.701,4.3,165 km NW of Tobelo Indonesia -2023-01-24T05:35:07.209Z,2.8024,126.9746,51.27,4.5,165 km NW of Tobelo Indonesia -2023-01-24T08:48:58.052Z,2.8064,127.2083,45.751,4.2,148 km NW of Tobelo Indonesia -2023-01-24T09:25:00.334Z,2.8028,126.678,35,4,189 km NW of Tobelo Indonesia -2023-01-24T10:17:29.175Z,2.8339,127.0001,46.297,4.7,Molucca Sea -2023-01-24T11:08:10.590Z,2.7706,127.186,42.651,4.6,147 km NW of Tobelo Indonesia -2023-01-24T12:06:34.287Z,2.806,126.9835,38.562,4.4,164 km NW of Tobelo Indonesia -2023-01-24T13:06:37.465Z,2.738,126.8597,50.04,4.5,169 km NW of Tobelo Indonesia -2023-01-24T13:11:21.947Z,3.0821,127.016,35.881,5,186 km NW of Tobelo Indonesia -2023-01-24T15:21:07.960Z,2.732,126.8924,64.194,4.2,166 km NW of Tobelo Indonesia -2023-01-24T16:10:15.984Z,3.555,128.5402,11.012,5.2,210 km NNE of Tobelo Indonesia -2023-01-24T17:09:54.208Z,2.6127,126.6714,55.238,4.4,178 km WNW of Tobelo Indonesia -2023-01-24T18:09:35.457Z,3.1008,127.5951,73.055,4.2,158 km NNW of Tobelo Indonesia -2023-01-24T18:31:42.958Z,2.6864,126.8087,50.345,4.4,Molucca Sea -2023-01-24T19:25:40.914Z,2.9885,127.0439,53.781,4.4,175 km NW of Tobelo Indonesia -2023-01-24T20:12:55.993Z,2.9423,127.2788,39.689,4.5,156 km NNW of Tobelo Indonesia -2023-01-24T20:17:58.699Z,3.1604,127.0141,35,5.3,193 km NW of Tobelo Indonesia -2023-01-24T21:23:51.649Z,3.0899,127.3087,55.789,4.3,169 km NNW of Tobelo Indonesia -2023-01-25T00:44:54.720Z,3.115,127.0491,35.68,4.5,Pulau-Pulau Talaud Indonesia -2023-01-25T03:35:20.717Z,9.1399,126.434,35,4.6,25 km NE of La Paz Philippines -2023-01-25T06:49:33.994Z,2.8827,127.133,31.592,4.3,Molucca Sea -2023-01-25T06:57:20.062Z,4.6733,125.4956,10.304,4.3,80 km S of Sarangani Philippines -2023-01-25T15:50:56.400Z,2.8144,127.0816,46.865,4.2,158 km NW of Tobelo Indonesia -2023-01-25T15:51:50.730Z,2.8108,126.9383,43.5,4.6,168 km NW of Tobelo Indonesia -2023-01-25T16:28:21.589Z,2.7578,126.7581,35,4,179 km NW of Tobelo Indonesia -2023-01-25T16:48:08.954Z,3.1406,127.0219,41.965,4.4,Pulau-Pulau Talaud Indonesia -2023-01-25T19:31:07.519Z,2.8254,127.2766,36.436,4.5,146 km NW of Tobelo Indonesia -2023-01-26T01:46:22.455Z,2.842,127.2438,35,4.3,149 km NW of Tobelo Indonesia -2023-01-26T02:15:02.600Z,2.6442,126.8692,35,4,162 km NW of Tobelo Indonesia -2023-01-26T02:25:10.364Z,2.8189,126.761,35,4.1,183 km NW of Tobelo Indonesia -2023-01-26T02:51:41.071Z,2.8807,127.108,35,4.3,Molucca Sea -2023-01-26T04:23:51.212Z,2.8391,126.9856,35,5.7,167 km NW of Tobelo Indonesia -2023-01-26T04:30:13.337Z,3.3254,128.1163,10,4.7,north of Halmahera Indonesia -2023-01-26T04:34:23.984Z,2.5517,126.6152,35,4.4,179 km WNW of Tobelo Indonesia -2023-01-26T05:33:48.270Z,2.7188,126.7167,26.541,4.3,180 km NW of Tobelo Indonesia -2023-01-26T06:13:15.422Z,2.6363,127.1828,58.808,4.1,136 km NW of Tobelo Indonesia -2023-01-26T06:33:45.142Z,2.84,127.0684,64.583,4.8,161 km NW of Tobelo Indonesia -2023-01-26T08:47:42.418Z,2.7314,127.0085,52.739,4.1,157 km NW of Tobelo Indonesia -2023-01-26T08:57:32.233Z,2.7852,126.8024,42.938,4.3,177 km NW of Tobelo Indonesia -2023-01-26T12:28:08.257Z,2.7983,127.0292,48.574,4,160 km NW of Tobelo Indonesia -2023-01-26T13:11:32.455Z,2.7257,126.7964,38.582,4.5,Molucca Sea -2023-01-26T14:40:57.596Z,2.6517,126.894,48.341,4.4,160 km NW of Tobelo Indonesia -2023-01-26T15:47:26.047Z,2.8409,127.1773,41.145,4.1,153 km NW of Tobelo Indonesia -2023-01-26T15:53:32.170Z,2.7809,127.0215,54.448,4.1,160 km NW of Tobelo Indonesia -2023-01-26T15:55:29.301Z,2.7738,127.0139,42.445,4.2,160 km NW of Tobelo Indonesia -2023-01-26T16:26:07.759Z,2.8814,126.8379,29.724,4.3,182 km NW of Tobelo Indonesia -2023-01-26T16:58:10.142Z,2.7075,126.1618,6.331,4.2,188 km NE of Laikit Laikit II (Dimembe) Indonesia -2023-01-26T16:59:56.488Z,2.7359,127.0258,54.723,4.2,156 km NW of Tobelo Indonesia -2023-01-26T17:25:58.419Z,2.7929,126.8576,34.247,4.6,173 km NW of Tobelo Indonesia -2023-01-26T17:33:45.521Z,2.709,127.3963,64.11,4.4,128 km NNW of Tobelo Indonesia -2023-01-26T21:22:57.347Z,3.061,126.9892,43.872,4.3,185 km NW of Tobelo Indonesia -2023-01-26T22:30:26.639Z,2.7438,126.6932,47.351,4.2,184 km NW of Tobelo Indonesia -2023-01-27T00:40:05.409Z,2.7726,126.9823,49.021,4.2,162 km NW of Tobelo Indonesia -2023-01-27T09:16:57.519Z,2.8127,126.8178,55.452,4.4,178 km NW of Tobelo Indonesia -2023-01-27T19:37:53.350Z,1.8253,127.1361,96.774,4.4,97 km W of Tobelo Indonesia -2023-01-28T00:03:31.879Z,3.0504,126.9979,38.508,4.7,184 km NW of Tobelo Indonesia -2023-01-29T01:45:44.856Z,2.9066,126.8881,48.939,4.5,180 km NW of Tobelo Indonesia -2023-01-29T03:20:20.797Z,2.8499,126.9825,51.395,4.6,168 km NW of Tobelo Indonesia -2023-01-29T04:23:33.367Z,5.5924,125.0567,49.134,4.9,Mindanao Philippines -2023-01-29T05:15:38.885Z,2.7358,127.0428,64.686,4.6,154 km NW of Tobelo Indonesia -2023-01-29T06:27:15.401Z,4.7886,126.5285,74.972,4.3,Pulau-Pulau Talaud Indonesia -2023-01-29T14:09:05.351Z,2.7289,127.0706,34.347,4.4,152 km NW of Tobelo Indonesia -2023-01-29T15:20:28.798Z,2.9047,126.9938,49.175,4.7,172 km NW of Tobelo Indonesia -2023-01-29T16:11:02.225Z,2.8896,126.9662,47.576,4.7,173 km NW of Tobelo Indonesia -2023-01-29T17:26:32.250Z,2.8623,127.0656,45.361,4.3,163 km NW of Tobelo Indonesia -2023-01-29T19:57:14.754Z,2.8491,126.9433,42.236,5,171 km NW of Tobelo Indonesia -2023-01-29T20:18:58.481Z,5.4659,126.1501,156.259,4.6,75 km SE of Caburan Philippines -2023-01-29T20:25:22.946Z,2.6589,126.6496,52.418,4.5,Molucca Sea -2023-01-29T22:14:57.403Z,2.71,126.666,35,4.6,Molucca Sea -2023-01-29T23:50:27.239Z,2.6813,127.2482,35,4.1,135 km NW of Tobelo Indonesia -2023-01-30T00:44:33.287Z,2.7141,126.796,35,4.4,173 km NW of Tobelo Indonesia -2023-01-30T08:36:15.601Z,2.7748,127.2569,35,4.3,142 km NW of Tobelo Indonesia -2023-01-30T08:58:24.929Z,2.6811,126.7548,35,4.3,174 km NW of Tobelo Indonesia -2023-01-30T22:56:43.336Z,2.7173,127.1018,45.733,4.2,148 km NW of Tobelo Indonesia -2023-01-31T04:34:50.837Z,5.9313,125.9995,88.91,4.6,35 km ESE of Mangili Philippines -2023-01-31T12:02:38.685Z,2.8318,127.1317,37.559,4.4,Molucca Sea -2023-01-31T12:32:15.218Z,3.9105,128.5033,10.746,4.5,247 km NNE of Tobelo Indonesia -2023-01-31T13:55:10.020Z,2.7425,126.9775,58.838,4.2,160 km NW of Tobelo Indonesia -2023-01-31T20:04:35.543Z,9.0601,127.1036,10,4.8,89 km ENE of Aras-asan Philippines -2023-02-01T02:58:11.587Z,7.1978,127.2493,10,4.3,75 km E of Santiago Philippines -2023-02-01T04:32:41.067Z,2.8084,127.1186,35,4.2,155 km NW of Tobelo Indonesia -2023-02-01T10:44:46.067Z,7.7431,126.0566,19,6,1 km NW of Babag Philippines -2023-02-01T11:07:37.549Z,7.7079,126.2252,10,4.6,15 km ENE of Compostela Philippines -2023-02-01T15:23:12.644Z,2.6118,126.924,49.408,4.4,155 km NW of Tobelo Indonesia -2023-02-01T17:25:09.533Z,2.8386,127.0849,55.512,4.3,160 km NW of Tobelo Indonesia -2023-02-01T21:03:18.502Z,2.9957,126.964,52.474,4.2,182 km NW of Tobelo Indonesia -2023-02-02T01:06:06.363Z,3.0003,126.8399,35,4.3,Pulau-Pulau Talaud Indonesia -2023-02-02T01:41:43.255Z,4.8691,126.4196,72.31,4.5,121 km ESE of Sarangani Philippines -2023-02-02T23:05:05.842Z,2.4828,128.2209,81.032,5,86 km NNE of Tobelo Indonesia -2023-02-03T10:49:44.434Z,5.827,126.1074,54.106,4.5,50 km ESE of Mangili Philippines -2023-02-03T12:36:24.814Z,2.6634,126.9692,55.479,4.2,Molucca Sea -2023-02-03T17:23:40.271Z,2.6329,126.8298,31.589,4.9,164 km NW of Tobelo Indonesia -2023-02-03T17:31:49.717Z,2.4859,126.7121,36.529,4.1,166 km WNW of Tobelo Indonesia -2023-02-03T17:48:15.004Z,2.8393,127.3198,35,4.5,144 km NNW of Tobelo Indonesia -2023-02-03T21:03:51.237Z,4.7968,127.0199,55.858,4.5,185 km ESE of Sarangani Philippines -2023-02-05T01:40:35.280Z,3.0078,126.8516,59.293,4.3,Pulau-Pulau Talaud Indonesia -2023-02-05T09:59:20.529Z,7.7496,126.0653,12.107,4.6,1 km NNW of Babag Philippines -2023-02-05T22:29:33.958Z,2.8312,126.9788,35,4.1,Molucca Sea -2023-02-06T12:48:40.593Z,3.031,126.8752,46.899,4.2,191 km NW of Tobelo Indonesia -2023-02-08T13:06:57.259Z,2.8377,127.0361,45.934,4.5,163 km NW of Tobelo Indonesia -2023-02-08T14:25:17.805Z,3.7443,124.0362,416.288,4,242 km SW of Sarangani Philippines -2023-02-08T23:34:39.681Z,3.6679,127.8622,92.467,4.3,215 km N of Tobelo Indonesia -2023-02-09T04:31:33.364Z,2.9113,127.2793,35,4.3,153 km NNW of Tobelo Indonesia -2023-02-09T06:09:30.629Z,2.22,127.0319,106.673,4.5,121 km WNW of Tobelo Indonesia -2023-02-09T06:20:46.119Z,2.7848,127.0118,35,4.2,161 km NW of Tobelo Indonesia -2023-02-10T23:35:17.009Z,2.5779,126.7162,51.583,4.2,171 km WNW of Tobelo Indonesia -2023-02-11T02:29:18.943Z,4.7432,126.5567,55.326,4.2,141 km ESE of Sarangani Philippines -2023-02-11T08:55:05.019Z,3.5892,126.6923,25,5.9,242 km SE of Sarangani Philippines -2023-02-11T09:07:56.847Z,3.5894,126.7198,59.628,4.3,244 km SE of Sarangani Philippines -2023-02-11T09:12:29.424Z,3.6613,126.6914,52.029,4.2,235 km SE of Sarangani Philippines -2023-02-11T19:52:58.188Z,3.5825,126.7034,66.909,4.2,243 km SE of Sarangani Philippines -2023-02-12T20:12:59.608Z,2.1776,127.2831,99.392,4.2,94 km WNW of Tobelo Indonesia -2023-02-12T23:55:22.275Z,5.0528,126.6853,66.795,4.2,Mindanao Philippines -2023-02-13T00:26:07.194Z,2.8039,126.9024,35,4.4,171 km NW of Tobelo Indonesia -2023-02-13T07:57:48.596Z,9.8043,126.4278,35,4.8,35 km E of Union Philippines -2023-02-13T13:20:34.541Z,1.5922,124.6736,226.923,4.4,22 km WNW of Manado Indonesia -2023-02-13T13:45:31.683Z,3.342,126.844,61.19,4.4,220 km NW of Tobelo Indonesia -2023-02-14T17:00:27.465Z,7.7212,122.0358,10,4.6,11 km W of Siocon Philippines -2023-02-15T13:43:15.044Z,3.9801,128.6382,10,4.7,258 km NNE of Tobelo Indonesia -2023-02-15T16:15:29.195Z,2.9209,126.913,56.769,4.5,179 km NW of Tobelo Indonesia -2023-02-15T21:00:42.174Z,6.7146,125.5523,38.851,4.4,17 km NE of Tanlad Philippines -2023-02-16T03:46:06.754Z,2.7019,127.2149,35,4.1,139 km NW of Tobelo Indonesia -2023-02-17T17:12:25.178Z,4.0014,122.5978,583.024,4.1,237 km SSE of Tabiauan Philippines -2023-02-19T04:47:17.935Z,9.1028,126.1694,66.199,4.9,1 km SE of Buenavista Philippines -2023-02-19T07:19:41.029Z,2.1412,126.0732,69.199,4.1,130 km NE of Bitung Indonesia -2023-02-19T08:26:35.277Z,2.8509,127.0043,36.348,4.2,167 km NW of Tobelo Indonesia -2023-02-19T15:17:03.365Z,2.4206,125.9377,59.996,4.9,140 km NE of Bitung Indonesia -2023-02-19T17:08:48.929Z,1.8181,127.349,116.477,4.3,74 km W of Tobelo Indonesia -2023-02-19T18:54:05.558Z,9.0009,126.1626,68.539,4.5,0 km WSW of Gamut Philippines -2023-02-19T22:09:12.599Z,2.846,128.5433,227.098,4.6,137 km NNE of Tobelo Indonesia -2023-02-19T23:12:21.709Z,2.7233,126.9943,35,4.8,157 km NW of Tobelo Indonesia -2023-02-20T00:01:18.958Z,2.7197,126.9851,35,4.8,158 km NW of Tobelo Indonesia -2023-02-20T09:47:26.932Z,3.3019,123.9216,413.219,4.6,226 km NNW of Manado Indonesia -2023-02-21T01:46:41.203Z,3.0397,126.2768,35,4,218 km NE of Bitung Indonesia -2023-02-23T16:14:27.387Z,3.5622,126.5283,50.559,4.3,235 km SSE of Sarangani Philippines -2023-02-23T20:02:47.541Z,3.2796,128.1356,92,6.3,172 km N of Tobelo Indonesia -2023-02-24T09:02:51.817Z,3.7003,128.7389,10,4.5,232 km NNE of Tobelo Indonesia -2023-02-24T17:28:36.666Z,2.8649,126.1296,35.262,4.9,192 km NE of Bitung Indonesia -2023-02-24T20:00:20.812Z,8.5549,127.1036,10,4.3,85 km ENE of Barcelona Philippines -2023-02-25T05:28:14.027Z,2.948,126.6357,32.356,4.3,Molucca Sea -2023-02-26T03:53:08.361Z,5.6459,126.2682,66.83,4.6,Mindanao Philippines -2023-02-26T05:52:43.422Z,1.7709,125.8777,11.402,4.8,91 km ENE of Bitung Indonesia -2023-02-27T10:26:36.998Z,3.2093,125.4743,178.06,4.3,198 km NNE of Laikit Laikit II (Dimembe) Indonesia -2023-02-27T14:26:05.511Z,7.9175,127.2609,10,4.3,82 km ENE of Kinablangan Philippines -2023-02-28T14:42:50.761Z,1.3696,125.7758,64.487,5.1,72 km E of Bitung Indonesia -2023-02-28T17:09:19.647Z,6.3003,126.286,56.344,4.5,Mindanao Philippines -2023-02-28T19:20:35.418Z,1.3388,125.5559,50.691,4.1,Molucca Sea -2023-02-28T20:03:08.895Z,1.3991,125.4671,10,4.6,37 km E of Bitung Indonesia -2023-02-28T20:11:57.161Z,8.3987,126.4934,79.069,4.6,17 km E of Hinatuan Philippines -2023-02-28T22:06:49.562Z,2.6997,126.5308,45.296,4.5,Molucca Sea -2023-03-01T04:15:56.291Z,2.3561,127.4677,10.369,4.3,91 km NW of Tobelo Indonesia -2023-03-01T11:40:25.671Z,3.6849,124.1986,395.164,4,236 km SW of Sarangani Philippines -2023-03-01T15:14:41.833Z,9.071,122.4983,10,4.7,40 km SSW of Basay Philippines -2023-03-02T00:05:17.254Z,1.4418,125.8415,67.022,4.4,79 km E of Bitung Indonesia -2023-03-02T04:11:51.245Z,1.8599,127.0011,78.544,4.2,113 km W of Tobelo Indonesia -2023-03-02T08:23:58.734Z,2.4517,128.2614,74.41,4.6,84 km NNE of Tobelo Indonesia -2023-03-02T13:38:20.078Z,2.8152,127.0643,54.595,4.6,Molucca Sea -2023-03-02T14:32:16.754Z,9.0645,122.6983,10,4.9,25 km WSW of Bonawon Philippines -2023-03-05T13:43:55.184Z,5.0769,127.3465,144.361,4.4,192 km SE of Pondaguitan Philippines -2023-03-05T16:37:27.949Z,5.9794,125.6336,148.974,4.5,3 km NW of Culaman Philippines -2023-03-05T16:49:39.611Z,7.472,126.2112,10,4.7,Compostela Valley Philippines -2023-03-05T16:54:13.437Z,7.5053,126.1941,10,4.3,13 km SSE of Bantacan Philippines -2023-03-05T19:30:53.539Z,7.4962,126.1305,9.601,4.4,11 km S of Bantacan Philippines -2023-03-05T20:43:02.682Z,7.5373,126.1657,10,5.4,10 km SSE of Bantacan Philippines -2023-03-06T14:27:39.486Z,2.8518,127.1472,56.2,4.1,156 km NW of Tobelo Indonesia -2023-03-06T15:53:02.685Z,5.774,125.911,151.146,4.8,33 km ESE of Caburan Philippines -2023-03-06T22:18:17.781Z,2.0282,127.7752,234.332,4.3,Molucca Sea -2023-03-07T06:02:31.481Z,7.4941,126.0567,16.051,5.9,6 km SE of Manat Philippines -2023-03-07T08:47:41.810Z,7.6315,126.2526,10,5.6,13 km ENE of Bantacan Philippines -2023-03-07T11:18:35.725Z,7.5797,126.205,10,4.2,8 km ESE of Bantacan Philippines -2023-03-07T19:16:08.877Z,7.5524,126.25,8.206,4.4,14 km ESE of Bantacan Philippines -2023-03-08T00:29:41.659Z,8.7188,122.046,10,4.4,88 km NW of Kalawit Philippines -2023-03-08T00:47:07.243Z,8.6389,125.7669,10.177,4.4,8 km ESE of Salvacion Philippines -2023-03-08T00:52:36.938Z,7.4045,126.0947,10.192,4.2,14 km SE of San Mariano Philippines -2023-03-08T10:47:33.218Z,7.4576,126.0872,9.118,4.5,10 km ESE of San Mariano Philippines -2023-03-09T14:18:22.422Z,5.5609,126.6376,144.955,4.1,102 km SSE of Pondaguitan Philippines -2023-03-10T02:23:41.020Z,8.8109,125.9778,10,4.5,17 km SSE of San Miguel Philippines -2023-03-10T04:40:31.422Z,8.4835,126.5137,68.604,4.4,23 km ENE of Hinatuan Philippines -2023-03-10T06:32:25.910Z,7.5186,126.1503,13.635,4.3,9 km SSE of Bantacan Philippines -2023-03-10T07:30:42.938Z,2.5626,126.9011,54.626,4.2,153 km NW of Tobelo Indonesia -2023-03-11T07:41:43.607Z,4.8221,123.6907,505.318,4.6,161 km SSW of Malisbeng Philippines -2023-03-13T05:41:51.865Z,2.6263,126.8465,35,4.1,163 km NW of Tobelo Indonesia -2023-03-14T02:43:01.955Z,2.8125,126.4444,35,4.2,210 km NE of Bitung Indonesia -2023-03-14T10:23:51.692Z,2.2757,127.962,10,4.5,60 km N of Tobelo Indonesia -2023-03-14T13:50:35.545Z,5.7913,126.9355,154.503,4.2,104 km SE of Pondaguitan Philippines -2023-03-15T15:32:26.923Z,3.1581,123.3533,488.249,4,249 km NW of Manado Indonesia -2023-03-15T21:25:39.711Z,4.7016,126.9061,56.549,5.4,177 km ESE of Sarangani Philippines -2023-03-15T21:49:16.629Z,2.8356,127.1203,52.818,4.4,157 km NW of Tobelo Indonesia -2023-03-16T00:49:08.034Z,2.482,126.8654,35,4,152 km WNW of Tobelo Indonesia -2023-03-16T14:51:26.706Z,1.8214,127.3012,120.734,4.3,79 km W of Tobelo Indonesia -2023-03-16T17:22:04.929Z,7.1504,126.52,14.652,4.3,4 km NE of San Ignacio Philippines -2023-03-16T17:54:57.645Z,1.7877,126.2915,38.467,4.6,135 km ENE of Bitung Indonesia -2023-03-17T03:38:27.155Z,4.9747,125.4894,169.032,4.3,Pulau-Pulau Sangihe Indonesia -2023-03-17T16:11:39.179Z,5.9274,126.9418,70.175,5,97 km ESE of Pondaguitan Philippines -2023-03-17T19:37:58.861Z,5.9215,125.7693,120.468,4.7,12 km ESE of Culaman Philippines -2023-03-18T08:50:29.274Z,5.0833,127.2865,94.409,4.1,187 km SE of Pondaguitan Philippines -2023-03-19T06:23:20.359Z,2.7005,128.1961,10.044,4.2,109 km N of Tobelo Indonesia -2023-03-20T01:14:47.882Z,4.3478,126.1736,110.9,4.4,140 km SE of Sarangani Philippines -2023-03-20T21:13:27.773Z,7.3306,123.7796,597.933,4.5,28 km W of Litayan Philippines -2023-03-21T05:21:14.659Z,7.4874,126.1938,10.105,4.4,14 km SSE of Bantacan Philippines -2023-03-22T04:13:29.758Z,2.9116,126.8566,35,4.6,183 km NW of Tobelo Indonesia -2023-03-22T04:28:14.543Z,6.7301,126.1069,67.755,4.8,1 km NNE of Talisay Philippines -2023-03-25T06:23:47.765Z,2.7365,125.7832,119.564,4.2,Pulau-Pulau Sangihe Indonesia -2023-03-25T10:16:26.389Z,5.1141,125.4499,190.143,4.3,32 km S of Sarangani Philippines -2023-03-25T12:45:16.261Z,2.8224,128.5057,234.516,4.1,Halmahera Indonesia -2023-03-27T00:44:51.205Z,5.344,125.6996,72.223,4.8,26 km ESE of Sarangani Philippines -2023-03-28T21:50:00.158Z,3.0616,128.4055,214.577,4,153 km NNE of Tobelo Indonesia -2023-03-29T07:41:46.881Z,5.9533,126.3284,11.616,4.9,Mindanao Philippines -2023-03-29T20:10:42.402Z,1.9095,127.1701,116.804,4.7,95 km WNW of Tobelo Indonesia -2023-03-29T22:37:45.459Z,7.5039,126.1716,7.397,4.3,Mindanao Philippines -2023-03-31T08:50:09.981Z,3.0829,128.7921,35,4.3,173 km NNE of Tobelo Indonesia -2023-04-01T02:18:48.550Z,2.8346,127.1833,24.303,4.3,Molucca Sea -2023-04-03T00:59:35.638Z,4.0381,123.5266,488.923,4,246 km SSW of Maitum Philippines -2023-04-03T21:48:09.585Z,5.4745,126.3213,108.501,4,89 km ESE of Caburan Philippines -2023-04-04T01:09:27.251Z,5.6627,123.4485,511.534,4.1,Celebes Sea -2023-04-04T01:12:09.364Z,4.5926,127.3525,61.179,4.5,227 km ESE of Sarangani Philippines -2023-04-04T04:27:40.854Z,2.5812,128.2586,192.845,4.3,98 km NNE of Tobelo Indonesia -2023-04-04T09:36:23.902Z,2.5493,128.1907,140.454,4.2,92 km NNE of Tobelo Indonesia -2023-04-04T12:58:19.128Z,4.5905,126.5997,122.456,4.7,154 km SE of Sarangani Philippines -2023-04-04T20:53:40.044Z,8.3082,123.5005,10,4.3,12 km NNW of Josefina Philippines -2023-04-05T08:56:56.556Z,9.6991,126.0009,90.89,4.3,8 km SW of Dapa Philippines -2023-04-06T02:53:01.457Z,2.6526,128.3099,64.906,4.2,107 km NNE of Tobelo Indonesia -2023-04-06T04:04:09.969Z,8.1078,123.1932,10,4.2,12 km NNW of Balagon Philippines -2023-04-07T01:43:52.166Z,5.044,125.3203,123.063,4.4,42 km SSW of Sarangani Philippines -2023-04-08T06:58:16.126Z,1.9123,127.1046,100.508,4.8,102 km WNW of Tobelo Indonesia -2023-04-10T01:29:46.416Z,6.494,126.6123,11.626,4.3,50 km ENE of Pondaguitan Philippines -2023-04-10T08:03:08.807Z,3.5634,128.6073,10,4.7,213 km NNE of Tobelo Indonesia -2023-04-11T06:58:07.114Z,3.8631,126.8212,40.692,4.6,227 km SE of Sarangani Philippines -2023-04-11T09:31:10.873Z,2.0579,126.5897,43.63,5,Molucca Sea -2023-04-12T02:02:13.250Z,5.8532,126.7748,83.529,5.3,86 km SE of Pondaguitan Philippines -2023-04-12T20:56:18.904Z,4.0167,122.5556,604.814,4.1,234 km SSE of Tabiauan Philippines -2023-04-13T16:04:27.711Z,9.2273,125.5742,20.399,5.1,2 km SE of Jagupit Philippines -2023-04-13T17:23:34.309Z,6.0174,124.0295,529.193,4.2,Mindanao Philippines -2023-04-13T23:00:32.827Z,5.297,127.8771,10,4.7,221 km ESE of Pondaguitan Philippines -2023-04-14T18:18:40.082Z,5.8734,125.7475,193.701,4.6,12 km ESE of Caburan Philippines -2023-04-16T08:36:42.142Z,4.0267,126.6533,57.472,4.3,201 km SE of Sarangani Philippines -2023-04-17T01:32:32.700Z,3.8921,126.5548,48.471,4.4,206 km SE of Sarangani Philippines -2023-04-17T12:02:41.030Z,4.0745,127.8435,146.671,4.4,260 km N of Tobelo Indonesia -2023-04-17T22:35:39.548Z,7.9038,126.5891,10.062,4.4,18 km ESE of Santa Maria Philippines -2023-04-18T19:05:24.618Z,3.2545,128.2744,39.307,4.4,171 km N of Tobelo Indonesia -2023-04-20T19:08:40.376Z,2.4067,127.2476,96.065,4,113 km NW of Tobelo Indonesia -2023-04-20T21:27:22.204Z,4.6374,122.909,583.641,4.1,190 km SE of Tabiauan Philippines -2023-04-21T06:34:12.515Z,9.4329,127.0938,10,4.1,100 km E of Cortes Philippines -2023-04-21T10:21:13.132Z,2.7652,127.0501,21,5.9,156 km NW of Tobelo Indonesia -2023-04-21T11:16:00.928Z,2.8167,127.1418,48.8,4.8,154 km NW of Tobelo Indonesia -2023-04-21T12:21:09.178Z,2.8045,127.1544,52.75,4.5,152 km NW of Tobelo Indonesia -2023-04-21T14:25:43.740Z,3.0654,126.3285,59.508,4.1,223 km NE of Bitung Indonesia -2023-04-22T01:06:06.004Z,9.7109,126.0724,56.614,4.9,5 km SSE of Dapa Philippines -2023-04-22T05:23:10.971Z,2.41,126.9263,58.776,4.2,142 km WNW of Tobelo Indonesia -2023-04-22T12:35:50.944Z,6.279,125.9678,156.388,4,23 km WSW of Surup Philippines -2023-04-23T02:34:12.484Z,2.7519,127.1388,52.985,4.6,148 km NW of Tobelo Indonesia -2023-04-23T02:45:17.731Z,2.712,127.0354,44.359,4.5,153 km NW of Tobelo Indonesia -2023-04-23T21:28:31.437Z,3.3968,126.6947,35,4.6,235 km NW of Tobelo Indonesia -2023-04-23T21:30:02.499Z,3.4482,126.7884,35,4.4,233 km NW of Tobelo Indonesia -2023-04-24T00:28:17.178Z,8.2865,122.9369,10.984,4.5,7 km SW of Siari Philippines -2023-04-24T02:59:00.588Z,2.3989,126.7428,54.445,4.5,159 km WNW of Tobelo Indonesia -2023-04-24T06:06:44.133Z,3.7248,122.7693,537.692,4.1,272 km SSE of Tabiauan Philippines -2023-04-24T09:32:10.079Z,9.2801,125.406,26.313,5.2,13 km WSW of Jabonga Philippines -2023-04-24T13:57:02.018Z,3.5141,123.0811,525.591,4,298 km NW of Manado Indonesia -2023-04-24T15:20:47.076Z,9.0347,126.2842,73.426,4.5,5 km ENE of Tago Philippines -2023-04-24T23:20:38.693Z,6.1864,126.8864,118.34,4.8,Mindanao Philippines -2023-04-26T05:39:48.390Z,4.365,124.787,302.848,4.1,137 km SSW of Sarangani Philippines -2023-04-27T11:36:05.867Z,5.9304,126.0474,151.881,4.2,41 km ESE of Mangili Philippines -2023-04-30T16:29:01.489Z,1.3426,126.2937,19.922,5.2,Molucca Sea -2023-05-02T01:07:21.289Z,4.3165,125.7103,148.092,4.4,123 km SSE of Sarangani Philippines -2023-05-02T11:15:46.379Z,2.3389,127.9409,108.361,4.1,67 km N of Tobelo Indonesia -2023-05-03T01:23:05.737Z,3.4003,125.9293,105.349,5.2,227 km SSE of Sarangani Philippines -2023-05-05T16:59:40.409Z,6.6152,126.2762,75.064,4.5,18 km E of Tibanbang Philippines -2023-05-06T04:54:47.153Z,4.1883,127.8496,138.077,4.3,272 km N of Tobelo Indonesia -2023-05-06T19:38:56.372Z,2.3479,126.7295,35,4.8,158 km WNW of Tobelo Indonesia -2023-05-06T19:38:58.358Z,2.3453,126.7916,53.379,4.8,Molucca Sea -2023-05-07T00:36:53.493Z,2.7685,127.7606,70.343,4.3,118 km NNW of Tobelo Indonesia -2023-05-07T08:31:14.699Z,2.4361,127.2852,95.7,4.4,112 km NW of Tobelo Indonesia -2023-05-07T22:48:11.739Z,6.8666,124.6218,10,4.3,Mindanao Philippines -2023-05-08T02:57:04.529Z,5.7168,127.2145,35,4.5,135 km ESE of Pondaguitan Philippines -2023-05-09T00:13:25.956Z,2.1855,125.9771,78.766,4.5,125 km NE of Bitung Indonesia -2023-05-09T03:41:28.015Z,3.7479,128.0919,59.171,4.4,223 km N of Tobelo Indonesia -2023-05-09T10:15:38.709Z,9.1186,126.2368,70.004,4.5,6 km NE of Tandag Philippines -2023-05-10T14:59:17.138Z,5.8335,126.9701,101.685,4.4,105 km ESE of Pondaguitan Philippines -2023-05-12T02:43:14.658Z,6.9511,125.0343,17.507,4.5,5 km WSW of Saguing Philippines -2023-05-12T04:34:54.834Z,9.9552,126.106,46.338,4.6,10 km N of Pilar Philippines -2023-05-12T05:11:33.166Z,3.1682,127.9978,76.364,4.1,159 km N of Tobelo Indonesia -2023-05-13T19:16:46.120Z,5.8776,125.3675,90.915,4.9,6 km NE of Kiupo Philippines -2023-05-14T05:17:04.449Z,3.3026,123.7472,429.55,4.1,Celebes Sea -2023-05-14T12:44:31.775Z,7.4664,123.5627,27.349,5,14 km E of Malim Philippines -2023-05-14T22:10:26.554Z,3.1371,128.2735,67.142,4.4,158 km N of Tobelo Indonesia -2023-05-15T16:23:23.392Z,1.9536,126.7368,49.813,4.6,143 km W of Tobelo Indonesia -2023-05-18T13:03:03.386Z,7.7552,126.946,64.653,4.6,44 km E of Kinablangan Philippines -2023-05-19T07:19:20.107Z,9.4636,125.4354,10,4.6,2 km S of Cantapoy Philippines -2023-05-19T11:12:16.041Z,9.0713,125.0685,10,4.2,16 km NW of Candiis Philippines -2023-05-19T12:14:07.178Z,1.4595,126.4928,46.303,4.8,123 km NW of Ternate Indonesia -2023-05-21T03:11:53.561Z,9.3074,126.2594,58.519,4.9,8 km ENE of Cortes Philippines -2023-05-22T03:00:54.709Z,3.1142,126.819,35,4.6,202 km NW of Tobelo Indonesia -2023-05-22T21:50:01.085Z,3.0902,126.6613,35,4.5,212 km NW of Tobelo Indonesia -2023-05-23T15:04:55.574Z,3.0781,126.7467,48.463,5.1,204 km NW of Tobelo Indonesia -2023-05-23T15:31:44.889Z,2.9393,126.6079,49.382,4.3,205 km NW of Tobelo Indonesia -2023-05-23T17:04:01.252Z,5.7587,124.5398,71.423,4.9,26 km SSW of Tambilil Philippines -2023-05-23T17:11:56.060Z,5.8038,124.5777,72.525,4.5,20 km SSW of Tambilil Philippines -2023-05-23T18:23:04.019Z,5.7164,124.5005,62.174,4.7,33 km SW of Tambilil Philippines -2023-05-23T18:30:17.472Z,5.7023,124.2519,11.592,4.3,45 km SSW of Mabay Philippines -2023-05-24T00:44:07.040Z,5.6719,124.2704,17.872,5.2,47 km SSW of Maitum Philippines -2023-05-24T03:07:30.023Z,5.6282,124.1739,10.189,4.3,57 km SW of Mabay Philippines -2023-05-24T08:14:53.572Z,5.5386,124.2323,12.294,4.3,62 km SSW of Maitum Philippines -2023-05-24T08:55:57.380Z,6.0648,126.3325,98.339,4.5,36 km SSE of Pondaguitan Philippines -2023-05-24T14:45:50.538Z,5.5494,124.2203,10,4.1,62 km SSW of Maitum Philippines -2023-05-24T16:34:25.062Z,3.0484,126.7046,48.938,4.4,205 km NW of Tobelo Indonesia -2023-05-25T10:24:34.290Z,8.9929,126.1108,86.992,4.5,Mindanao Philippines -2023-05-27T05:52:47.630Z,8.4405,126.5877,80.794,4.5,28 km ENE of Hinatuan Philippines -2023-05-28T21:12:56.815Z,3.1165,122.6688,520.37,4.2,Celebes Sea -2023-05-29T17:08:16.394Z,9.8069,125.1974,9.164,4.6,26 km W of Ipil Philippines -2023-05-30T16:00:12.591Z,1.9332,126.7813,42.226,4.1,138 km W of Tobelo Indonesia -2023-06-01T21:38:56.071Z,5.2849,125.979,138.988,4.5,58 km ESE of Sarangani Philippines -2023-06-02T11:40:16.464Z,8.3439,126.2865,10.083,4.1,Mindanao Philippines -2023-06-02T17:40:04.655Z,6.1356,120.9311,10,4.6,11 km N of Bato Bato Philippines -2023-06-02T19:07:38.991Z,3.6107,126.6805,48.829,4.1,Pulau-Pulau Talaud Indonesia -2023-06-02T21:40:14.029Z,4.809,125.4626,10,4.6,65 km S of Sarangani Philippines -2023-06-03T08:39:51.082Z,6.421,124.7491,10.533,4.6,3 km W of Bañga Philippines -2023-06-03T17:58:29.752Z,3.0313,126.9395,62.89,4.1,186 km NW of Tobelo Indonesia -2023-06-04T03:27:21.128Z,8.8554,126.261,64.397,4.5,6 km WSW of Aras-asan Philippines -2023-06-04T14:55:27.476Z,1.6786,125.6479,104.227,4.9,Molucca Sea -2023-06-07T16:17:38.519Z,4.0651,126.6228,49.074,4.4,196 km SE of Sarangani Philippines -2023-06-09T00:30:42.285Z,7.4716,126.0338,89.105,4.6,4 km SE of San Mariano Philippines -2023-06-09T10:47:58.168Z,2.6326,128.2532,100.834,4.5,103 km NNE of Tobelo Indonesia -2023-06-10T22:41:29.467Z,4.0073,122.9354,10,4.4,251 km SSE of Tabiauan Philippines -2023-06-11T21:26:34.288Z,5.6506,126.7573,10,4.5,101 km SE of Pondaguitan Philippines -2023-06-12T16:05:07.882Z,2.1861,126.8785,90.323,4.1,135 km WNW of Tobelo Indonesia -2023-06-14T14:27:49.779Z,1.602,125.937,71.155,4.4,Molucca Sea -2023-06-14T18:08:51.141Z,3.5269,126.5868,49.776,4.5,242 km SSE of Sarangani Philippines -2023-06-15T20:41:36.852Z,2.8606,122.6381,540.432,4.1,261 km N of Gorontalo Indonesia -2023-06-16T20:52:23.809Z,3.3381,128.2335,94.157,4.4,179 km N of Tobelo Indonesia -2023-06-17T23:11:28.583Z,2.6182,126.1509,55.789,4.6,172 km NE of Bitung Indonesia -2023-06-18T01:00:38.086Z,6.8263,126.3669,63.494,4.4,6 km SE of Bobon Philippines -2023-06-19T16:17:50.341Z,5.4391,126.9515,11.668,4.6,133 km SE of Pondaguitan Philippines -2023-06-20T01:45:41.630Z,5.8912,126.3995,92.963,4.5,57 km SSE of Pondaguitan Philippines -2023-06-20T04:08:58.773Z,9.7527,125.8107,10,4.5,21 km NE of Gigaquit Philippines -2023-06-21T00:25:33.489Z,5.4612,127.0329,9.168,4.4,137 km SE of Pondaguitan Philippines -2023-06-22T08:03:39.134Z,2.0172,126.0144,109.012,4,117 km ENE of Bitung Indonesia -2023-06-24T23:49:54.241Z,5.6878,124.1148,511.838,4.4,Mindanao Philippines -2023-06-25T19:21:30.311Z,1.6379,126.6483,47.793,4.5,124 km NW of Ternate Indonesia -2023-06-27T15:57:01.048Z,4.9418,127.3006,18.602,4.3,200 km SE of Pondaguitan Philippines -2023-06-28T13:21:55.168Z,1.7544,127.2546,106.678,4.4,84 km W of Tobelo Indonesia -2023-06-29T02:06:58.451Z,1.9885,127.6309,89.651,4.3,51 km NW of Tobelo Indonesia -2023-06-29T05:15:39.734Z,8.2949,126.5507,64.118,4.5,19 km NE of Barcelona Philippines -2023-06-29T08:09:00.089Z,2.1059,126.5527,44.571,4.7,167 km WNW of Tobelo Indonesia -2023-06-29T13:52:38.833Z,5.6935,125.8156,120.851,4.6,31 km SE of Caburan Philippines -2023-06-30T10:29:49.017Z,3.3941,127.9104,102.912,4.7,184 km N of Tobelo Indonesia -2023-07-01T19:48:28.867Z,5.1351,127.0969,84.791,4.4,169 km SE of Pondaguitan Philippines -2023-07-02T05:40:02.399Z,8.78,126.0234,10,4.7,16 km NNE of Los Arcos Philippines -2023-07-03T00:36:47.704Z,4.1335,123.3752,511.233,4,244 km SSW of Mabay Philippines -2023-07-03T05:46:26.206Z,6.4721,126.426,76.253,4.3,30 km ENE of Pondaguitan Philippines -2023-07-03T06:30:15.615Z,4.5967,126.0017,136.122,4.4,107 km SE of Sarangani Philippines -2023-07-03T10:20:25.701Z,5.8358,124.3778,35,4.8,26 km SSW of Maitum Philippines -2023-07-05T13:32:10.545Z,1.9023,126.3075,48.715,4.2,140 km ENE of Bitung Indonesia -2023-07-06T06:54:18.171Z,2.721,125.9522,109.655,4.3,168 km NNE of Bitung Indonesia -2023-07-06T15:40:00.116Z,2.1477,122.6855,10,4.6,182 km NNW of Gorontalo Indonesia -2023-07-08T10:13:00.216Z,8.9463,127.1464,10,4.5,92 km E of Aras-asan Philippines -2023-07-09T20:32:40.546Z,2.9291,128.6413,226.471,4.2,150 km NNE of Tobelo Indonesia -2023-07-10T07:12:06.771Z,2.5357,127.965,145.732,4.3,89 km N of Tobelo Indonesia -2023-07-10T08:45:19.590Z,5.9075,126.4984,71.824,4.2,61 km SE of Pondaguitan Philippines -2023-07-10T12:05:26.307Z,7.8794,127.3975,10,4.8,95 km ENE of Kinablangan Philippines -2023-07-11T02:27:23.870Z,2.9906,128.4205,226.672,4.2,146 km NNE of Tobelo Indonesia -2023-07-12T07:39:46.663Z,6.5085,125.7913,158.225,4.4,22 km ENE of Malita Philippines -2023-07-12T20:50:57.160Z,2.9924,127.3139,44.178,4.8,159 km NNW of Tobelo Indonesia -2023-07-13T00:14:44.232Z,6.037,124.2117,483.281,4.2,18 km WSW of Malisbeng Philippines -2023-07-13T03:10:39.700Z,2.7808,127.5929,68.875,4.2,125 km NNW of Tobelo Indonesia -2023-07-13T15:50:37.128Z,4.5582,128.1979,10,4.2,north of Halmahera Indonesia -2023-07-14T14:04:04.900Z,6.3072,126.0262,78.1,4.3,16 km SW of Surup Philippines -2023-07-15T05:45:14.573Z,5.2285,123.9699,496.137,4.1,106 km SSW of Mabay Philippines -2023-07-17T09:57:12.688Z,5.155,125.0917,85.797,4.4,49 km WSW of Sarangani Philippines -2023-07-17T15:35:24.450Z,5.7772,124.0668,9,5.4,49 km SW of Malisbeng Philippines -2023-07-19T23:08:07.513Z,3.1049,128.4342,214.209,4.9,north of Halmahera Indonesia -2023-07-21T16:41:45.679Z,2.3813,126.8311,55.166,4.4,149 km WNW of Tobelo Indonesia -2023-07-21T19:24:48.127Z,6.7437,126.5384,74.308,4.3,26 km ESE of Bobon Philippines -2023-07-22T20:41:02.999Z,8.6299,126.1082,95.404,4.1,1 km ESE of Lianga Philippines -2023-07-23T06:02:50.442Z,2.6433,127.2759,93.124,4.5,129 km NW of Tobelo Indonesia -2023-07-24T17:26:35.243Z,5.2341,124.0175,481.237,4.4,103 km SSW of Maitum Philippines -2023-07-25T15:35:05.938Z,2.2525,126.8188,55.246,5.1,144 km WNW of Tobelo Indonesia -2023-07-26T17:47:57.448Z,4.775,124.963,11.677,5.1,88 km SW of Sarangani Philippines -2023-07-28T13:58:29.417Z,2.5156,125.4085,135.606,4.2,Pulau-Pulau Sangihe Indonesia -2023-07-28T21:27:32.820Z,1.4578,126.3419,34.519,4.3,135 km E of Bitung Indonesia -2023-07-28T22:16:04.878Z,4.377,126.3133,103.048,4.4,147 km SE of Sarangani Philippines -2023-07-29T09:53:34.210Z,3.1707,126.5965,55.623,4.3,223 km NW of Tobelo Indonesia -2023-07-30T21:14:47.243Z,9.1855,126.8404,10,4.5,Mindanao Philippines -2023-07-31T08:40:28.609Z,3.2574,127.1153,35,4.2,196 km NNW of Tobelo Indonesia -2023-08-01T20:14:51.737Z,1.7884,126.2867,51.842,4.1,Molucca Sea -2023-08-01T22:22:57.453Z,3.5186,126.6394,59.028,4.4,245 km SSE of Sarangani Philippines -2023-08-03T05:39:19.365Z,2.9043,128.1377,184.607,4.5,130 km N of Tobelo Indonesia -2023-08-03T08:19:21.832Z,2.8096,127.1677,21.798,4.7,151 km NW of Tobelo Indonesia -2023-08-03T09:20:41.031Z,3.3664,125.7158,164.219,4.2,222 km NNE of Bitung Indonesia -2023-08-04T17:24:16.660Z,1.7508,124.5915,232.769,4.1,41 km NW of Manado Indonesia -2023-08-04T23:11:25.548Z,3.9275,125.6547,119.119,4,Pulau-Pulau Sangihe Indonesia -2023-08-06T01:39:34.085Z,8.007,127.0154,35,4.3,62 km NE of Kinablangan Philippines -2023-08-07T02:11:49.924Z,2.901,126.912,35,4.2,Molucca Sea -2023-08-07T04:24:55.973Z,2.7525,126.7678,35,4.3,178 km NW of Tobelo Indonesia -2023-08-07T04:38:32.044Z,4.6543,124.7343,286.702,4,Celebes Sea -2023-08-07T08:06:05.310Z,1.8342,125.9571,10,4.5,101 km ENE of Bitung Indonesia -2023-08-07T17:34:55.355Z,3.5213,126.7837,51.728,4.3,240 km NW of Tobelo Indonesia -2023-08-08T10:04:02.569Z,7.4646,123.8751,595.945,4.1,22 km NW of Litayan Philippines -2023-08-09T00:57:18.049Z,6.5014,126.3305,62.03,5.3,22 km NE of Pondaguitan Philippines -2023-08-10T01:29:27.251Z,4.2838,126.0748,137.507,4.5,141 km SSE of Sarangani Philippines -2023-08-10T03:11:17.501Z,4.0482,125.7234,124.686,4.7,152 km S of Sarangani Philippines -2023-08-10T06:48:51.781Z,6.5022,126.3047,71.051,4.9,20 km E of Nangan Philippines -2023-08-10T10:48:12.720Z,5.5836,126.8831,81.467,4.3,116 km SE of Pondaguitan Philippines -2023-08-10T11:19:59.237Z,6.2704,125.6734,134.398,4.4,0 km NE of Talagutong Philippines -2023-08-10T22:15:50.126Z,3.7067,126.5118,28.542,4.6,220 km SSE of Sarangani Philippines -2023-08-11T19:06:03.394Z,5.8971,126.7848,118.445,4.4,84 km SE of Pondaguitan Philippines -2023-08-13T19:05:16.232Z,4.8265,123.5558,512.723,4.3,168 km SSW of Malisbeng Philippines -2023-08-16T02:30:54.088Z,4.4504,125.029,104.402,4.5,115 km SSW of Sarangani Philippines -2023-08-16T13:53:30.326Z,2.9334,128.4669,229.246,4.3,142 km NNE of Tobelo Indonesia -2023-08-16T22:53:09.594Z,1.511,126.3738,55.646,4.6,137 km NW of Ternate Indonesia -2023-08-18T17:01:02.057Z,1.6964,124.1125,291.771,4.4,85 km WNW of Manado Indonesia -2023-08-19T06:34:36.212Z,8.9217,126.292,69.143,4.8,1 km SSE of Bacolod Philippines -2023-08-21T02:54:13.564Z,5.1078,127.4328,153.071,4.8,196 km SE of Pondaguitan Philippines -2023-08-21T11:46:41.002Z,6.6164,126.5097,82.044,4.6,34 km SE of Bobon Philippines -2023-08-21T17:37:04.478Z,2.3355,124.3319,294.06,4.1,110 km NNW of Manado Indonesia -2023-08-21T22:02:34.908Z,7.8308,126.8885,9.636,4.3,Mindanao Philippines -2023-08-22T03:22:06.957Z,3.4182,128.6194,35,4.4,198 km NNE of Tobelo Indonesia -2023-08-22T10:21:59.155Z,7.4632,126.9479,35,4.5,40 km E of Baculin Philippines -2023-08-22T18:37:57.181Z,3.3506,125.6998,60.685,4.5,220 km NNE of Bitung Indonesia -2023-08-22T21:55:35.679Z,3.1315,127.1509,53.616,4.2,182 km NNW of Tobelo Indonesia -2023-08-23T10:28:26.940Z,2.0068,127.1782,103.176,4.3,97 km WNW of Tobelo Indonesia -2023-08-25T19:13:41.882Z,6.2438,124.7479,13.286,5,4 km ENE of Lake Sebu Philippines -2023-08-26T07:28:50.277Z,6.1649,124.7253,12.717,4.4,6 km SSE of Lake Sebu Philippines -2023-08-27T21:53:51.791Z,2.2028,126.734,51.45,4.4,151 km WNW of Tobelo Indonesia -2023-08-28T17:51:11.460Z,2.1943,127.1223,106.653,4.2,Molucca Sea -2023-08-28T17:59:16.946Z,4.3673,126.5051,28.833,5.3,Pulau-Pulau Talaud Indonesia -2023-08-29T13:57:38.803Z,5.8834,126.056,109.903,4.4,43 km ESE of Mangili Philippines -2023-08-29T20:00:28.978Z,5.9227,125.7224,185.071,4.3,8 km ESE of Culaman Philippines -2023-09-01T05:53:17.771Z,4.8872,127.4966,126.215,4.3,218 km SE of Pondaguitan Philippines -2023-09-01T21:10:51.046Z,4.0378,128.0545,79.146,4.2,255 km N of Tobelo Indonesia -2023-09-02T18:58:53.738Z,5.2007,123.4199,572.256,4.3,140 km SW of Palimbang Philippines -2023-09-03T18:15:09.249Z,4.924,125.6615,109.192,4.7,57 km SSE of Sarangani Philippines -2023-09-03T21:23:12.449Z,8.8765,122.5669,10,4.5,47 km WSW of Cabangahan Philippines -2023-09-03T21:40:53.617Z,8.7962,122.4767,10,4.8,60 km WSW of Cabangahan Philippines -2023-09-04T09:11:16.954Z,2.1697,127.241,104.328,5,98 km WNW of Tobelo Indonesia -2023-09-05T04:12:27.842Z,5.6574,126.5287,78.2,4.7,86 km SSE of Pondaguitan Philippines -2023-09-06T00:07:08.512Z,2.68,127.0446,48.8,4.9,150 km NW of Tobelo Indonesia -2023-09-06T07:51:57.948Z,7.0227,125.5087,13.273,4.9,4 km ESE of Bato Philippines -2023-09-06T15:12:06.954Z,5.4647,123.8077,545.728,4.3,92 km SSW of Palimbang Philippines -2023-09-07T12:44:52.715Z,9.6223,126.3135,38.475,4.2,26 km ESE of Union Philippines -2023-09-07T15:18:49.106Z,1.8195,122.9838,421.31,4.3,142 km N of Gorontalo Indonesia -2023-09-07T19:20:13.205Z,4.405,127.7487,130.486,5.1,276 km ESE of Sarangani Philippines -2023-09-08T22:50:02.683Z,4.1863,126.1948,115.34,4.5,157 km SSE of Sarangani Philippines -2023-09-10T05:42:40.635Z,2.3262,127.5239,87.377,4.9,85 km NW of Tobelo Indonesia -2023-09-10T07:13:04.437Z,2.5155,127.0783,57.368,4.5,135 km NW of Tobelo Indonesia -2023-09-10T10:21:01.572Z,1.6239,127.0086,116.075,4.9,101 km NNW of Ternate Indonesia -2023-09-10T19:44:27.716Z,4.8223,126.1393,10,4.3,98 km SE of Sarangani Philippines -2023-09-10T22:38:30.807Z,2.5581,127.1756,87.295,4.3,130 km NW of Tobelo Indonesia -2023-09-12T02:01:06.787Z,1.9116,125.9141,10,4.1,101 km ENE of Bitung Indonesia -2023-09-13T23:51:54.383Z,1.7725,127.1011,125.584,4,101 km W of Tobelo Indonesia -2023-09-14T13:46:01.944Z,8.012,124.8651,10,4.6,3 km S of Basak Philippines -2023-09-14T23:34:41.094Z,5.4208,126.7951,137.169,4.2,124 km SSE of Pondaguitan Philippines -2023-09-15T12:44:00.449Z,2.6591,127.1326,57.272,4.3,141 km NW of Tobelo Indonesia -2023-09-16T10:04:52.845Z,3.8828,126.2644,8.99,4.9,190 km SSE of Sarangani Philippines -2023-09-18T02:51:37.006Z,2.8782,126.204,35,4.3,198 km NE of Bitung Indonesia -2023-09-19T04:32:17.124Z,6.1041,126.9186,81.367,4.6,86 km ESE of Pondaguitan Philippines -2023-09-20T02:31:40.126Z,1.5514,126.2641,53.204,4.4,126 km E of Bitung Indonesia -2023-09-20T10:05:27.904Z,5.9006,125.682,11.1,4.2,4 km ESE of Caburan Philippines -2023-09-20T23:25:14.882Z,3.4693,126.9877,35,4.4,223 km NNW of Tobelo Indonesia -2023-09-21T08:13:08.494Z,3.6016,126.9641,39.74,4.4,237 km NNW of Tobelo Indonesia -2023-09-22T03:18:12.961Z,6.2175,123.7635,582.801,4.4,39 km SW of Sangay Philippines -2023-09-26T01:39:43.416Z,4.7109,127.5053,94,5.9,234 km SE of Pondaguitan Philippines -2023-09-26T02:12:27.799Z,4.6957,127.4741,35,4.5,233 km SE of Pondaguitan Philippines -2023-09-26T04:20:49.510Z,4.6278,126.8379,35,4.2,174 km ESE of Sarangani Philippines -2023-09-26T07:36:46.430Z,9.8894,126.1526,67.572,4.5,6 km ENE of Pilar Philippines -2023-09-26T22:17:37.567Z,3.1467,126.9475,57.627,4.5,196 km NW of Tobelo Indonesia -2023-09-27T04:06:53.106Z,2.3851,123.1384,10,4.2,204 km N of Gorontalo Indonesia -2023-09-28T03:31:45.910Z,9.6651,125.6695,50.762,4.5,7 km NNE of Bacuag Philippines -2023-09-28T17:06:29.204Z,8.9872,126.473,68.191,4.9,20 km ENE of Aras-asan Philippines -2023-09-29T00:39:10.062Z,6.5934,127.4795,10,4.4,124 km ESE of San Ignacio Philippines -2023-09-29T23:55:00.302Z,4.8524,125.1348,10,4.5,70 km SSW of Sarangani Philippines -2023-09-30T11:40:50.689Z,9.1821,126.3269,61.81,4.1,16 km E of Tigao Philippines -2023-10-01T22:54:27.707Z,8.033,126.6357,78.009,4.6,21 km ENE of Santa Maria Philippines -2023-10-02T04:15:02.442Z,4.8241,124.9659,290.986,4.2,84 km SW of Sarangani Philippines -2023-10-02T20:59:08.656Z,5.0962,127.0894,66.765,4.5,172 km SE of Pondaguitan Philippines -2023-10-03T03:58:22.310Z,2.2572,126.6817,35,4.3,158 km WNW of Tobelo Indonesia -2023-10-03T13:53:04.726Z,4.5477,127.5947,82.879,5.1,254 km ESE of Sarangani Philippines -2023-10-04T11:21:47.730Z,5.3171,126.0438,113,6.4,65 km E of Sarangani Philippines -2023-10-05T03:38:23.429Z,4.3363,125.7723,107.765,4.6,122 km SSE of Sarangani Philippines -2023-10-07T23:18:02.354Z,6.0897,126.0327,145.473,4.2,34 km SSW of Pondaguitan Philippines -2023-10-08T04:08:01.389Z,1.5586,126.0481,115.834,4.3,103 km E of Bitung Indonesia -2023-10-08T10:46:05.853Z,8.4263,127.3969,10,4.2,110 km ENE of Barcelona Philippines -2023-10-09T12:24:38.452Z,3.2721,127.0418,36.062,4.8,201 km NNW of Tobelo Indonesia -2023-10-09T12:35:56.770Z,3.2283,126.9733,47.84,4.3,201 km NW of Tobelo Indonesia -2023-10-09T17:00:42.653Z,3.1996,127.0809,40.452,4.3,192 km NNW of Tobelo Indonesia -2023-10-11T00:04:40.227Z,3.0841,125.7969,153.159,4.6,196 km NNE of Bitung Indonesia -2023-10-11T13:09:50.520Z,8.4586,126.6335,75.806,4.5,34 km ENE of Hinatuan Philippines -2023-10-11T18:12:32.069Z,4.225,126.3929,39.961,4.1,166 km SE of Sarangani Philippines -2023-10-11T20:48:27.455Z,2.7171,127.0552,74.741,4,152 km NW of Tobelo Indonesia -2023-10-19T18:58:51.126Z,7.4623,126.3516,8.494,5.9,18 km WSW of Batiano Philippines -2023-10-20T01:24:33.841Z,9.0497,126.5238,35,4.4,28 km ENE of Bacolod Philippines -2023-10-20T02:52:46.580Z,1.9259,125.3448,131.388,4.3,58 km NNE of Bitung Indonesia -2023-10-20T13:07:02.201Z,2.1185,127.8186,228.275,4.6,48 km NNW of Tobelo Indonesia -2023-10-21T05:29:55.353Z,9.0661,126.6327,48.681,4.5,40 km ENE of Aras-asan Philippines -2023-10-21T05:32:48.003Z,9.1202,126.5564,64.936,4.7,35 km ENE of La Paz Philippines -2023-10-21T15:21:42.967Z,9.1216,126.5906,35,4.6,39 km ENE of La Paz Philippines -2023-10-24T08:40:45.961Z,6.4632,127.3249,10,4.1,116 km SE of Tarragona Philippines -2023-10-24T11:53:43.773Z,7.8705,122.1504,10,4.3,18 km N of Siocon Philippines -2023-10-27T03:02:03.809Z,1.646,126.2336,56.593,4.4,125 km E of Bitung Indonesia -2023-10-27T10:05:26.213Z,2.3531,126.6958,35,4.9,161 km WNW of Tobelo Indonesia -2023-10-28T18:52:37.478Z,7.3558,126.3605,8.57,4.4,17 km W of San Pedro Philippines -2023-10-29T00:53:33.597Z,9.3212,125.9588,10,4.4,2 km SW of Cantilan Philippines -2023-10-29T00:56:19.387Z,9.1722,125.8036,10,4.6,19 km SW of Parang Philippines -2023-10-29T01:48:29.212Z,9.1714,125.6085,10,4.7,3 km NE of Del Pilar Philippines -2023-10-30T11:55:54.234Z,4.8117,125.6197,171.78,4.4,67 km SSE of Sarangani Philippines -2023-10-30T17:11:21.504Z,5.1126,125.9602,71.024,4.2,63 km ESE of Sarangani Philippines -2023-10-31T18:02:24.984Z,5.1626,127.203,94.284,4.8,174 km SE of Pondaguitan Philippines -2023-11-02T17:02:02.020Z,4.4748,127.7044,135.681,4.3,268 km SE of Pondaguitan Philippines -2023-11-03T19:06:42.596Z,9.7112,126.2947,46.691,4,20 km ESE of Union Philippines -2023-11-04T00:18:19.089Z,1.5451,125.412,10,4.6,33 km ENE of Bitung Indonesia -2023-11-06T05:53:21.157Z,3.222,126.3796,51.538,4.3,241 km NE of Bitung Indonesia -2023-11-11T11:29:53.444Z,4.9036,127.6567,18.026,4.4,229 km SE of Pondaguitan Philippines -2023-11-12T21:05:47.930Z,5.4199,126.9068,122.711,4.4,131 km SE of Pondaguitan Philippines -2023-11-14T00:10:14.942Z,5.8937,124.3413,35,4.9,22 km SW of Mabay Philippines -2023-11-14T02:34:35.482Z,3.1889,128.2366,35,4.3,163 km N of Tobelo Indonesia -2023-11-14T17:15:31.960Z,5.6567,125.2921,229,4.3,5 km SSE of Pangyan Philippines -2023-11-14T18:21:47.382Z,4.9181,126.4698,75.656,4.6,123 km ESE of Sarangani Philippines -2023-11-14T19:19:55.361Z,1.3856,125.7397,10,4.6,68 km E of Bitung Indonesia -2023-11-15T23:26:14.296Z,1.9998,124.1476,289,5.8,96 km NW of Manado Indonesia -2023-11-16T14:59:29.839Z,9.4227,126.2069,68.665,4.6,15 km N of Cortes Philippines -2023-11-16T16:43:33.020Z,9.5056,126.3257,87.036,4.4,29 km NNE of Cortes Philippines -2023-11-17T08:14:10.513Z,5.5627,125.0013,52,6.7,32 km SW of Kablalan Philippines -2023-11-17T21:15:09.207Z,5.5221,125.0746,78.002,4.2,29 km SW of Burias Philippines -2023-11-17T21:49:05.600Z,9.7495,126.5956,49.012,4.5,53 km E of Union Philippines -2023-11-17T21:50:46.768Z,9.6619,126.3622,43.519,4.4,29 km ESE of Union Philippines -2023-11-18T04:18:18.721Z,5.533,124.9855,74.942,4.5,35 km S of Maasim Philippines -2023-11-18T11:20:03.011Z,5.9807,125.9702,157.795,4.2,31 km E of Mangili Philippines -2023-11-18T11:29:39.544Z,6.0134,127.0822,168.006,4.1,107 km ESE of Pondaguitan Philippines -2023-11-19T22:04:17.739Z,5.2884,125.8385,101.655,4.2,43 km ESE of Sarangani Philippines -2023-11-20T19:28:25.747Z,5.677,125.2156,84.367,5,6 km SW of Burias Philippines -2023-11-20T22:20:36.629Z,5.7813,125.3774,224.932,4.3,9 km SE of Kiupo Philippines -2023-11-22T02:48:51.641Z,1.7827,127.1887,102,6,91 km W of Tobelo Indonesia -2023-11-23T03:24:33.295Z,5.5742,125.1139,88.745,4.7,22 km SW of Burias Philippines -2023-11-23T13:36:02.650Z,6.4901,125.9908,142.498,4.4,11 km WSW of Luzon Philippines -2023-11-23T14:13:08.653Z,5.9335,126.5949,102.687,4.5,66 km SE of Pondaguitan Philippines -2023-11-25T01:27:17.062Z,2.8868,128.4964,231.74,4,139 km NNE of Tobelo Indonesia -2023-11-25T18:53:12.621Z,3.3346,124.7649,10,4.5,205 km N of Manado Indonesia -2023-11-26T08:32:45.857Z,1.6971,125.8159,11.617,4.2,81 km ENE of Bitung Indonesia -2023-11-27T04:03:36.992Z,4.6795,127.5096,136.446,4.4,237 km SE of Pondaguitan Philippines -2023-11-27T07:18:44.239Z,2.5914,122.1634,543.903,4.4,248 km NNW of Gorontalo Indonesia -2023-11-27T15:38:18.024Z,9.2458,125.5241,10,4.3,3 km W of Jagupit Philippines -2023-11-28T21:32:02.188Z,9.1071,123.096,10,4.3,5 km ESE of Casala-an Philippines -2023-11-30T16:48:20.483Z,6.0112,126.0773,137.312,4.3,40 km SSW of Pondaguitan Philippines -2023-11-30T22:18:05.042Z,6.9228,123.9963,547.456,4.1,13 km N of Gadung Philippines -2023-12-02T14:37:04.454Z,8.5266,126.4161,40,7.6,19 km E of Gamut Philippines -2023-12-02T14:44:03.355Z,8.5324,126.5047,66.534,5.4,25 km NE of Hinatuan Philippines -2023-12-02T14:44:36.381Z,8.0495,126.6059,43.301,5.4,18 km ENE of Santa Maria Philippines -2023-12-02T14:48:41.232Z,8.3993,126.7463,62.784,5.3,43 km NE of Barcelona Philippines -2023-12-02T14:56:53.045Z,8.512,126.6287,69.498,4.7,35 km ENE of Hinatuan Philippines -2023-12-02T14:57:07.542Z,8.2844,127.4358,10,4.7,111 km E of Barcelona Philippines -2023-12-02T14:58:41.421Z,8.4741,126.5814,79.33,4.9,29 km ENE of Hinatuan Philippines -2023-12-02T15:00:11.497Z,8.6266,126.8901,62.46,5.3,67 km ENE of Hinatuan Philippines -2023-12-02T15:02:24.673Z,8.2958,126.5879,78.694,4.7,22 km NE of Barcelona Philippines -2023-12-02T15:06:46.280Z,8.3198,127.0017,61.655,5.8,65 km ENE of Barcelona Philippines -2023-12-02T15:08:56.249Z,8.3335,126.5833,61.311,5.4,25 km NE of Barcelona Philippines -2023-12-02T15:10:05.463Z,8.3316,127.1679,10,5,83 km ENE of Barcelona Philippines -2023-12-02T15:15:21.087Z,8.3786,126.529,75.936,4.7,21 km E of Hinatuan Philippines -2023-12-02T15:18:01.883Z,8.6804,126.4855,71.023,4.5,24 km ESE of Marihatag Philippines -2023-12-02T15:20:59.590Z,8.3114,126.7872,40.703,4.9,42 km ENE of Barcelona Philippines -2023-12-02T15:21:07.158Z,8.33,126.6462,39.383,5,30 km NE of Barcelona Philippines -2023-12-02T15:22:05.017Z,8.3389,126.6551,60.468,5.4,31 km NE of Barcelona Philippines -2023-12-02T15:24:04.209Z,8.4636,126.7699,52.514,4.8,49 km ENE of Hinatuan Philippines -2023-12-02T15:29:32.440Z,8.3172,127.0409,37.696,5,69 km ENE of Barcelona Philippines -2023-12-02T15:31:08.767Z,8.3139,126.6074,78.05,4.9,25 km NE of Barcelona Philippines -2023-12-02T15:31:29.616Z,8.4758,126.7648,66.805,5.5,48 km ENE of Hinatuan Philippines -2023-12-02T15:34:18.001Z,8.5618,127.2502,10,4.7,100 km ENE of Barcelona Philippines -2023-12-02T15:35:14.924Z,8.4636,126.6339,65.879,4.5,34 km ENE of Hinatuan Philippines -2023-12-02T15:38:26.947Z,8.4345,126.8572,62.666,4.9,55 km ENE of Barcelona Philippines -2023-12-02T15:40:44.672Z,8.3484,126.5641,79.037,4.8,25 km NE of Barcelona Philippines -2023-12-02T15:42:47.515Z,8.5072,126.852,16.902,5.3,58 km ENE of Hinatuan Philippines -2023-12-02T15:46:24.573Z,8.515,126.8914,54.05,5.3,63 km ENE of Hinatuan Philippines -2023-12-02T15:50:41.864Z,8.4619,126.7007,59.672,5.2,41 km ENE of Hinatuan Philippines -2023-12-02T15:54:11.965Z,8.345,126.882,62.271,4.9,53 km ENE of Barcelona Philippines -2023-12-02T16:00:19.448Z,8.3084,126.5232,59.259,4.4,19 km NNE of Barcelona Philippines -2023-12-02T16:03:41.167Z,8.4377,126.757,35,6.4,47 km NE of Barcelona Philippines -2023-12-02T16:08:45.248Z,8.4782,126.4787,74.57,5.2,19 km NE of Hinatuan Philippines -2023-12-02T16:09:04.122Z,8.5779,126.6901,66.337,5.3,45 km ENE of Hinatuan Philippines -2023-12-02T16:13:21.219Z,8.4217,126.8856,45.383,5.2,57 km ENE of Barcelona Philippines -2023-12-02T16:17:01.047Z,8.4904,126.7396,44.034,5.6,46 km ENE of Hinatuan Philippines -2023-12-02T16:18:29.453Z,7.421,126.7924,10,4.8,23 km E of Baculin Philippines -2023-12-02T16:19:46.488Z,8.3677,126.7855,52.821,5.7,45 km ENE of Barcelona Philippines -2023-12-02T16:23:23.080Z,8.2291,126.564,60.964,5.2,16 km ENE of Barcelona Philippines -2023-12-02T16:25:21.074Z,8.6872,126.5345,62.905,4.7,29 km ESE of Marihatag Philippines -2023-12-02T16:26:36.280Z,8.3219,126.6062,73.882,4.8,26 km NE of Barcelona Philippines -2023-12-02T16:29:28.206Z,8.4037,126.7321,61.367,4.8,42 km NE of Barcelona Philippines -2023-12-02T16:31:00.963Z,8.5143,126.8698,61.012,4.6,61 km ENE of Hinatuan Philippines -2023-12-02T16:33:40.416Z,8.5451,126.6704,50.541,4.7,41 km ENE of Hinatuan Philippines -2023-12-02T16:34:26.071Z,8.4138,126.7358,55.396,5,43 km NE of Barcelona Philippines -2023-12-02T16:34:59.073Z,8.6092,126.6631,58.952,5.4,44 km NE of Hinatuan Philippines -2023-12-02T16:38:31.770Z,8.3359,127.1387,10,4.8,80 km ENE of Barcelona Philippines -2023-12-02T16:46:34.355Z,8.3737,126.8696,67.709,4.6,53 km ENE of Barcelona Philippines -2023-12-02T16:47:18.650Z,8.3682,126.6444,37.848,4.9,32 km NE of Barcelona Philippines -2023-12-02T16:48:27.104Z,8.4416,126.6029,64.434,4.8,30 km ENE of Hinatuan Philippines -2023-12-02T16:51:00.029Z,8.4415,126.549,66.423,4.8,24 km ENE of Hinatuan Philippines -2023-12-02T16:53:08.675Z,8.4005,126.8647,46.557,5.7,54 km ENE of Barcelona Philippines -2023-12-02T16:57:56.144Z,8.2761,126.6311,60.662,5,25 km ENE of Barcelona Philippines -2023-12-02T17:00:11.740Z,8.4675,126.9878,55.04,4.7,69 km ENE of Barcelona Philippines -2023-12-02T17:00:23.430Z,8.6264,125.4426,106.821,4.7,21 km SW of Tungao Philippines -2023-12-02T17:00:33.380Z,8.4159,126.6224,37.512,4.8,32 km E of Hinatuan Philippines -2023-12-02T17:01:16.201Z,8.5006,126.6137,48.563,4.8,33 km ENE of Hinatuan Philippines -2023-12-02T17:02:01.494Z,8.3663,126.666,48.605,5.3,34 km NE of Barcelona Philippines -2023-12-02T17:05:43.397Z,7.9637,126.406,35,4.7,5 km SW of Santa Maria Philippines -2023-12-02T17:08:41.827Z,8.3445,126.7874,55.013,4.6,43 km ENE of Barcelona Philippines -2023-12-02T17:14:46.734Z,8.1914,126.4573,85.883,4.6,4 km NE of Barcelona Philippines -2023-12-02T17:16:08.290Z,8.288,126.6202,68.436,4.9,24 km NE of Barcelona Philippines -2023-12-02T17:18:39.188Z,8.7485,127.0127,10,4.6,78 km ESE of Aras-asan Philippines -2023-12-02T17:19:10.397Z,9.2421,126.7427,23.688,4.6,59 km ENE of La Paz Philippines -2023-12-02T17:20:54.678Z,8.4797,126.7097,74.775,4.4,43 km ENE of Hinatuan Philippines -2023-12-02T17:25:08.774Z,8.1397,126.397,87.86,4.4,4 km WSW of Barcelona Philippines -2023-12-02T17:26:53.111Z,8.597,126.9183,51.416,4.7,68 km ENE of Hinatuan Philippines -2023-12-02T17:29:48.917Z,8.3353,126.5881,68.871,4.3,25 km NE of Barcelona Philippines -2023-12-02T17:31:40.838Z,8.6831,126.7248,57.067,5,49 km ESE of Marihatag Philippines -2023-12-02T17:32:49.460Z,8.7159,126.7491,63.906,5,52 km ESE of Marihatag Philippines -2023-12-02T17:38:36.868Z,8.6054,126.7732,55.666,4.5,54 km ENE of Hinatuan Philippines -2023-12-02T17:40:15.233Z,8.423,126.722,36.091,6.1,41 km NE of Barcelona Philippines -2023-12-02T17:42:16.957Z,8.4261,126.5207,79.813,5.6,21 km ENE of Hinatuan Philippines -2023-12-02T17:43:14.348Z,8.2748,126.8279,35,5.4,45 km ENE of Barcelona Philippines -2023-12-02T17:45:05.220Z,8.3044,126.5663,51.478,5.4,21 km NE of Barcelona Philippines -2023-12-02T17:49:44.163Z,8.3332,126.671,87.186,5,32 km NE of Barcelona Philippines -2023-12-02T17:50:08.095Z,8.4132,126.6901,78.239,5,39 km E of Hinatuan Philippines -2023-12-02T17:51:16.261Z,8.4873,126.728,61.143,5,45 km ENE of Hinatuan Philippines -2023-12-02T17:52:47.087Z,6.6163,126.3206,2.716,4.6,23 km E of Tibanbang Philippines -2023-12-02T17:55:28.180Z,8.6642,126.7521,64.275,5.6,52 km ESE of Marihatag Philippines -2023-12-02T18:00:06.161Z,8.6995,126.598,36.185,4.9,35 km ESE of Marihatag Philippines -2023-12-02T18:00:56.405Z,8.2941,126.7348,88.254,4.7,36 km ENE of Barcelona Philippines -2023-12-02T18:01:24.013Z,8.4454,126.8357,48.987,5.2,54 km NE of Barcelona Philippines -2023-12-02T18:03:47.876Z,8.8292,126.2411,10,4.8,6 km WNW of Marihatag Philippines -2023-12-02T18:04:43.289Z,8.4814,126.5757,46.984,5.1,29 km ENE of Hinatuan Philippines -2023-12-02T18:06:05.091Z,8.4534,126.5004,75.992,4.6,20 km ENE of Hinatuan Philippines -2023-12-02T18:06:29.578Z,8.4214,126.7036,57.413,5.1,41 km E of Hinatuan Philippines -2023-12-02T18:09:25.972Z,8.4402,126.9387,46.378,6.3,63 km ENE of Barcelona Philippines -2023-12-02T18:13:24.295Z,8.302,126.5678,60.889,5.1,21 km NE of Barcelona Philippines -2023-12-02T18:15:29.883Z,8.4645,126.4469,68.843,4.6,16 km NE of Hinatuan Philippines -2023-12-02T18:20:40.812Z,8.5944,126.6118,48.935,5.4,37 km NE of Hinatuan Philippines -2023-12-02T18:28:18.291Z,8.4848,126.5006,62.076,4.9,22 km NE of Hinatuan Philippines -2023-12-02T18:33:15.008Z,8.2447,126.5128,32.453,4.2,12 km NE of Barcelona Philippines -2023-12-02T18:34:08.680Z,8.4537,126.7402,61.95,4.4,45 km ENE of Hinatuan Philippines -2023-12-02T18:40:15.266Z,8.5012,126.4676,65.42,4.4,20 km NE of Hinatuan Philippines -2023-12-02T18:40:37.283Z,8.4293,126.583,50.477,4.6,28 km ENE of Hinatuan Philippines -2023-12-02T18:47:15.241Z,8.4865,126.6174,48.484,4.4,33 km ENE of Hinatuan Philippines -2023-12-02T18:48:43.186Z,8.5544,126.5027,71.457,4.1,27 km NE of Hinatuan Philippines -2023-12-02T18:54:07.425Z,8.3016,126.4003,87.907,4.2,6 km E of Tidman Philippines -2023-12-02T18:57:21.108Z,8.3917,126.6298,67.428,4.6,32 km E of Hinatuan Philippines -2023-12-02T18:59:30.012Z,8.2944,126.6192,75.043,4.5,25 km NE of Barcelona Philippines -2023-12-02T19:03:41.581Z,8.4907,126.6743,70.123,4.7,39 km ENE of Hinatuan Philippines -2023-12-02T19:05:02.451Z,8.6903,126.7547,57.132,4.8,52 km ESE of Marihatag Philippines -2023-12-02T19:06:35.740Z,8.1827,126.454,84.022,4.5,3 km NE of Barcelona Philippines -2023-12-02T19:08:16.080Z,8.4511,126.6778,63.074,4.7,38 km ENE of Hinatuan Philippines -2023-12-02T19:10:52.152Z,8.3241,126.7782,49.808,4.8,42 km ENE of Barcelona Philippines -2023-12-02T19:15:24.487Z,8.3655,126.436,56.883,4.5,11 km E of Hinatuan Philippines -2023-12-02T19:17:00.158Z,8.4791,126.8697,22.118,5.3,59 km NE of Barcelona Philippines -2023-12-02T19:19:21.467Z,8.4136,126.8349,22.227,5.3,52 km ENE of Barcelona Philippines -2023-12-02T19:26:54.687Z,8.3843,127.1055,10,4.3,78 km ENE of Barcelona Philippines -2023-12-02T19:34:25.945Z,8.3619,126.7236,60.814,4.6,38 km NE of Barcelona Philippines -2023-12-02T19:37:00.943Z,8.4696,126.8694,40.843,5.3,58 km NE of Barcelona Philippines -2023-12-02T19:44:48.633Z,8.7286,127.2714,10,4.7,107 km E of Aras-asan Philippines -2023-12-02T19:53:19.144Z,8.3456,126.8791,43.904,4.2,53 km ENE of Barcelona Philippines -2023-12-02T19:54:19.441Z,8.071,126.608,72.68,4.8,19 km ENE of Santa Maria Philippines -2023-12-02T19:57:09.481Z,8.553,126.5629,75.105,5.2,32 km NE of Hinatuan Philippines -2023-12-02T20:00:39.918Z,8.7779,126.5982,59.037,4.5,33 km E of Marihatag Philippines -2023-12-02T20:05:00.692Z,8.8046,126.7985,48.212,4.4,54 km E of Aras-asan Philippines -2023-12-02T20:12:32.210Z,8.7645,127.1948,10,4.4,98 km E of Aras-asan Philippines -2023-12-02T20:15:37.688Z,8.3739,127.1705,12.771,4.4,84 km ENE of Barcelona Philippines -2023-12-02T20:19:52.646Z,8.429,127.118,38.248,4.3,81 km ENE of Barcelona Philippines -2023-12-02T20:27:40.711Z,8.6788,127.2219,10,4.3,102 km E of Marihatag Philippines -2023-12-02T20:30:43.814Z,8.4058,126.6427,67.266,4.7,34 km E of Hinatuan Philippines -2023-12-02T20:33:31.570Z,8.5645,126.9515,38.532,4.6,71 km ENE of Hinatuan Philippines -2023-12-02T20:39:30.328Z,8.259,126.7494,63.645,5.4,36 km ENE of Barcelona Philippines -2023-12-02T20:47:37.438Z,8.3986,126.5265,78.848,4.3,21 km E of Hinatuan Philippines -2023-12-02T20:52:15.877Z,8.4475,126.7782,9,6,49 km NE of Barcelona Philippines -2023-12-02T20:58:01.435Z,8.4768,126.7454,64.171,4.9,46 km ENE of Hinatuan Philippines -2023-12-02T20:59:20.602Z,8.0777,126.6353,28.239,4.9,23 km ENE of Santa Maria Philippines -2023-12-02T20:59:38.105Z,8.429,126.6642,34.964,4.9,36 km E of Hinatuan Philippines -2023-12-02T21:01:36.093Z,8.4074,126.6247,66.984,4.6,32 km E of Hinatuan Philippines -2023-12-02T21:07:10.806Z,8.4208,126.6183,73.479,4.6,31 km E of Hinatuan Philippines -2023-12-02T21:07:18.946Z,8.4195,126.7332,35,4.9,43 km NE of Barcelona Philippines -2023-12-02T21:07:51.349Z,8.3123,126.6272,45.673,5.1,27 km NE of Barcelona Philippines -2023-12-02T21:14:56.891Z,8.5852,126.9329,55.277,4.6,70 km ENE of Hinatuan Philippines -2023-12-02T21:16:07.839Z,8.3674,127.2501,10,4.5,92 km ENE of Barcelona Philippines -2023-12-02T21:20:15.248Z,8.4185,126.8897,56.304,4.6,57 km ENE of Barcelona Philippines -2023-12-02T21:21:00.999Z,8.4083,126.6577,57.009,4.5,35 km E of Hinatuan Philippines -2023-12-02T21:22:48.333Z,8.5199,126.8444,44.043,4.4,58 km ENE of Hinatuan Philippines -2023-12-02T21:23:41.013Z,8.555,126.8758,25.546,4.2,62 km ENE of Hinatuan Philippines -2023-12-02T21:24:19.675Z,8.4672,126.7643,42.548,4.5,48 km ENE of Hinatuan Philippines -2023-12-02T21:27:02.466Z,8.5219,126.8175,48.685,4.6,55 km ENE of Hinatuan Philippines -2023-12-02T21:28:03.458Z,8.5077,126.8466,64.688,4.5,58 km ENE of Hinatuan Philippines -2023-12-02T21:30:59.239Z,8.3293,126.6436,67.548,4.6,29 km NE of Barcelona Philippines -2023-12-02T21:39:38.716Z,8.3828,126.6851,67.467,4.5,37 km NE of Barcelona Philippines -2023-12-02T21:43:24.027Z,8.0825,126.6881,81.494,4.4,28 km ENE of Santa Maria Philippines -2023-12-02T21:44:38.158Z,8.2805,126.6784,41.416,4.5,30 km ENE of Barcelona Philippines -2023-12-02T21:45:47.629Z,8.4281,126.6863,70.833,4.4,39 km E of Hinatuan Philippines -2023-12-02T21:46:41.734Z,8.4305,126.6716,59.285,5.1,37 km E of Hinatuan Philippines -2023-12-02T21:52:34.875Z,8.5471,126.8652,45.848,4.6,61 km ENE of Hinatuan Philippines -2023-12-02T21:54:22.030Z,8.5433,126.972,49.44,4.3,72 km ENE of Hinatuan Philippines -2023-12-02T21:55:34.888Z,8.2369,126.7136,68.168,4.8,31 km ENE of Barcelona Philippines -2023-12-02T22:00:42.964Z,8.4654,127.0695,29.473,4.5,77 km ENE of Barcelona Philippines -2023-12-02T22:02:12.333Z,8.3554,126.6196,62.824,4.9,29 km NE of Barcelona Philippines -2023-12-02T22:12:23.136Z,8.3555,126.7257,72.816,4.5,38 km NE of Barcelona Philippines -2023-12-02T22:18:11.201Z,8.2931,126.3256,76.783,4.3,1 km WSW of Tidman Philippines -2023-12-02T22:19:35.976Z,8.4739,126.8178,60.921,4.5,54 km ENE of Hinatuan Philippines -2023-12-02T22:21:18.423Z,8.5366,126.9249,55.955,4.2,67 km ENE of Hinatuan Philippines -2023-12-02T22:30:59.163Z,8.3409,126.5156,80.766,4.5,20 km ENE of Tidman Philippines -2023-12-02T22:33:53.184Z,8.7614,127.1329,10,4.4,91 km E of Aras-asan Philippines -2023-12-02T22:35:41.644Z,8.3688,126.8873,26.181,5.5,55 km ENE of Barcelona Philippines -2023-12-02T22:41:20.321Z,8.2765,126.5273,77.099,4.7,16 km NE of Barcelona Philippines -2023-12-02T22:43:39.695Z,8.3799,126.5588,86.825,4.5,24 km E of Hinatuan Philippines -2023-12-02T22:45:19.891Z,8.533,126.8083,60.657,4.9,55 km ENE of Hinatuan Philippines -2023-12-02T22:46:17.669Z,8.3473,126.6005,79.8,4.7,27 km NE of Barcelona Philippines -2023-12-02T22:48:45.552Z,8.4622,126.7379,58.537,4.4,45 km ENE of Hinatuan Philippines -2023-12-02T23:00:10.191Z,8.6393,127.0507,45.843,4.3,84 km ENE of Hinatuan Philippines -2023-12-02T23:04:56.398Z,8.3262,126.6324,74.485,4.1,28 km NE of Barcelona Philippines -2023-12-02T23:05:52.610Z,8.1109,127.251,66.184,4.2,89 km E of Santa Maria Philippines -2023-12-02T23:08:55.720Z,8.946,126.5947,54.728,4,31 km ENE of Aras-asan Philippines -2023-12-02T23:19:52.603Z,8.2707,126.725,50.695,4.6,34 km ENE of Barcelona Philippines -2023-12-02T23:24:25.021Z,8.4343,126.803,62.283,4.5,50 km NE of Barcelona Philippines -2023-12-02T23:45:20.880Z,8.5725,126.6356,62.581,4.8,39 km ENE of Hinatuan Philippines -2023-12-02T23:50:11.895Z,8.3745,126.3916,98.675,4,6 km E of Hinatuan Philippines -2023-12-02T23:52:03.502Z,8.6935,126.8778,54.173,4.1,65 km E of Marihatag Philippines -2023-12-02T23:54:00.445Z,8.4178,126.8213,59.066,4.1,51 km NE of Barcelona Philippines -2023-12-02T23:55:09.013Z,8.448,126.6827,83.704,4.3,39 km ENE of Hinatuan Philippines -2023-12-03T00:11:48.672Z,8.2471,126.7031,70.064,4.5,31 km ENE of Barcelona Philippines -2023-12-03T00:24:31.136Z,8.4057,126.7293,74.371,4.4,42 km NE of Barcelona Philippines -2023-12-03T00:37:44.347Z,8.0463,126.8438,74.695,4.4,44 km E of Santa Maria Philippines -2023-12-03T00:43:03.666Z,8.6212,126.824,56.341,4.2,60 km ENE of Hinatuan Philippines -2023-12-03T00:44:01.199Z,8.5017,126.7354,60.927,4.2,46 km ENE of Hinatuan Philippines -2023-12-03T00:46:19.733Z,8.6753,126.6844,81.464,4.6,45 km ESE of Marihatag Philippines -2023-12-03T00:48:25.369Z,8.399,126.5081,50.345,4.9,19 km E of Hinatuan Philippines -2023-12-03T01:03:28.202Z,8.4877,126.7633,54.488,4.5,48 km ENE of Hinatuan Philippines -2023-12-03T01:16:06.794Z,8.4368,126.9279,56.798,4.7,62 km ENE of Barcelona Philippines -2023-12-03T01:43:30.421Z,8.3396,126.5379,62.08,4.5,22 km ENE of Tidman Philippines -2023-12-03T02:02:00.455Z,8.402,126.646,73.476,4.4,34 km E of Hinatuan Philippines -2023-12-03T02:02:37.910Z,8.5953,126.8367,48.422,5.3,60 km ENE of Hinatuan Philippines -2023-12-03T02:21:20.379Z,8.4553,126.7141,59.094,4.5,42 km ENE of Hinatuan Philippines -2023-12-03T02:31:59.854Z,8.4889,126.6183,54.355,4.7,33 km ENE of Hinatuan Philippines -2023-12-03T02:35:27.735Z,8.5163,126.3824,75.906,4.4,15 km E of Gamut Philippines -2023-12-03T02:36:42.587Z,8.35,126.9319,62.396,4.6,58 km ENE of Barcelona Philippines -2023-12-03T02:42:55.650Z,8.3433,126.5249,55.43,4.5,21 km ENE of Tidman Philippines -2023-12-03T02:47:51.875Z,8.4195,126.6322,65.469,4.4,33 km E of Hinatuan Philippines -2023-12-03T02:53:24.069Z,8.024,126.6335,69.474,4.5,21 km E of Santa Maria Philippines -2023-12-03T02:58:17.209Z,8.6384,126.6521,48.311,4.5,43 km ESE of Marihatag Philippines -2023-12-03T03:02:13.180Z,8.3502,126.4984,78.274,4.5,18 km E of Loyola Philippines -2023-12-03T03:10:18.266Z,8.0051,126.9926,35,4.6,59 km NE of Kinablangan Philippines -2023-12-03T03:18:00.286Z,8.3428,126.2974,59.736,4.4,3 km NNE of Bigaan Philippines -2023-12-03T03:23:58.506Z,8.6725,126.2482,10,4.4,6 km SE of Salvacion Philippines -2023-12-03T03:24:54.138Z,8.5791,126.625,52.66,4.9,39 km NE of Hinatuan Philippines -2023-12-03T03:28:17.758Z,8.0774,126.7675,60.367,5.1,36 km ENE of Santa Maria Philippines -2023-12-03T03:36:24.591Z,8.352,126.8035,65.313,5.2,45 km ENE of Barcelona Philippines -2023-12-03T03:40:12.759Z,8.0613,126.6821,62.668,4.7,27 km ENE of Santa Maria Philippines -2023-12-03T03:41:59.249Z,8.3995,126.8415,35,4.6,52 km ENE of Barcelona Philippines -2023-12-03T03:42:50.690Z,8.0378,126.6351,71.953,4.5,21 km ENE of Santa Maria Philippines -2023-12-03T03:43:39.077Z,8.1042,126.5185,55.34,4.5,11 km ESE of Barcelona Philippines -2023-12-03T03:55:41.926Z,8.3697,126.9227,54.578,4.9,58 km ENE of Barcelona Philippines -2023-12-03T04:15:50.251Z,7.8995,126.7628,81.374,4.5,32 km NE of Kinablangan Philippines -2023-12-03T04:20:59.388Z,8.3512,126.8881,47.993,4.3,54 km ENE of Barcelona Philippines -2023-12-03T04:24:17.316Z,8.6946,126.4013,64.558,4.6,16 km SE of Marihatag Philippines -2023-12-03T04:29:54.892Z,7.6241,126.716,10,4.4,18 km ENE of Baganga Philippines -2023-12-03T04:34:15.990Z,8.4518,126.5958,66.206,4.4,30 km ENE of Hinatuan Philippines -2023-12-03T04:35:37.470Z,8.4304,126.7859,65.96,4.4,49 km NE of Barcelona Philippines -2023-12-03T04:40:35.222Z,8.2518,126.8803,49.078,4.7,50 km ENE of Barcelona Philippines -2023-12-03T04:41:51.720Z,8.3166,126.7681,45.377,5.2,40 km ENE of Barcelona Philippines -2023-12-03T04:54:28.773Z,8.2886,126.5324,67.072,4.5,17 km NE of Barcelona Philippines -2023-12-03T04:59:15.550Z,8.6742,126.4283,46.561,5.1,20 km SE of Marihatag Philippines -2023-12-03T05:27:55.800Z,8.6231,126.9188,54.518,4.9,70 km ENE of Hinatuan Philippines -2023-12-03T05:38:11.750Z,8.5032,126.7688,55.478,4.7,50 km ENE of Hinatuan Philippines -2023-12-03T05:43:43.134Z,8.6422,126.6671,63.392,5.4,44 km ESE of Marihatag Philippines -2023-12-03T05:47:53.126Z,8.5965,126.8521,52.994,4.8,62 km ENE of Hinatuan Philippines -2023-12-03T05:50:23.806Z,8.1804,126.646,67.484,4.9,23 km E of Barcelona Philippines -2023-12-03T05:57:24.266Z,8.1323,126.5855,61.802,4.5,16 km E of Barcelona Philippines -2023-12-03T06:03:39.228Z,8.4466,126.7081,62.901,4.3,41 km ENE of Hinatuan Philippines -2023-12-03T06:10:51.067Z,8.1929,126.6606,85.672,4.5,25 km E of Barcelona Philippines -2023-12-03T06:18:22.337Z,8.4159,126.6195,73.26,4.7,31 km E of Hinatuan Philippines -2023-12-03T06:26:55.990Z,8.2604,126.4771,80.768,4.2,12 km NNE of Barcelona Philippines -2023-12-03T06:33:41.975Z,8.7503,127.1624,10,4.1,94 km E of Aras-asan Philippines -2023-12-03T06:37:14.051Z,8.5113,126.7591,57.272,4.5,49 km ENE of Hinatuan Philippines -2023-12-03T06:41:50.134Z,8.9456,126.4915,58.758,4.6,20 km ENE of Aras-asan Philippines -2023-12-03T06:44:43.205Z,8.474,126.749,54.923,4.5,47 km ENE of Hinatuan Philippines -2023-12-03T06:47:15.234Z,8.306,126.4138,85.286,4,8 km E of Tidman Philippines -2023-12-03T06:55:38.828Z,8.2875,126.7717,54.128,4.5,39 km ENE of Barcelona Philippines -2023-12-03T07:01:06.797Z,8.3926,126.5843,67.318,4.3,27 km E of Hinatuan Philippines -2023-12-03T07:04:10.610Z,8.4699,127.0292,50.031,4.3,74 km ENE of Barcelona Philippines -2023-12-03T07:04:47.178Z,8.6661,126.606,61.633,4.6,37 km ESE of Marihatag Philippines -2023-12-03T07:11:00.066Z,8.7346,126.8671,50.993,4.8,63 km E of Marihatag Philippines -2023-12-03T07:44:23.246Z,8.3833,126.6702,53.514,4.7,35 km NE of Barcelona Philippines -2023-12-03T07:54:05.453Z,8.4532,126.6445,45.081,4.2,35 km ENE of Hinatuan Philippines -2023-12-03T07:54:52.450Z,8.4707,126.9542,51.905,4.9,66 km ENE of Barcelona Philippines -2023-12-03T08:10:55.349Z,8.3276,126.6845,68.404,4.4,33 km NE of Barcelona Philippines -2023-12-03T08:12:53.539Z,8.3249,126.6118,69.57,4.4,26 km NE of Barcelona Philippines -2023-12-03T08:13:39.243Z,8.6847,126.8286,59.56,4.6,60 km ESE of Marihatag Philippines -2023-12-03T08:18:20.171Z,8.5029,126.7193,23.123,4.4,44 km ENE of Hinatuan Philippines -2023-12-03T08:31:21.035Z,8.1579,126.6471,59.629,4.5,23 km E of Barcelona Philippines -2023-12-03T08:36:26.527Z,8.0872,126.6896,78.608,4.7,28 km ENE of Santa Maria Philippines -2023-12-03T08:41:38.851Z,8.3924,126.7505,65.309,4.5,43 km NE of Barcelona Philippines -2023-12-03T08:41:55.724Z,8.3892,126.6878,71.598,4.9,37 km NE of Barcelona Philippines -2023-12-03T08:57:59.561Z,8.2729,126.881,50.57,4.5,50 km ENE of Barcelona Philippines -2023-12-03T09:02:37.618Z,8.2651,126.6534,54.435,4.1,26 km ENE of Barcelona Philippines -2023-12-03T09:03:39.627Z,8.403,126.8476,57.126,5.1,52 km ENE of Barcelona Philippines -2023-12-03T09:05:52.958Z,8.2105,126.7674,44.239,4.4,37 km E of Barcelona Philippines -2023-12-03T09:07:47.274Z,8.5262,126.6632,57.906,4.2,40 km ENE of Hinatuan Philippines -2023-12-03T09:12:09.191Z,8.4466,126.8908,51.73,4.5,59 km ENE of Barcelona Philippines -2023-12-03T09:19:58.330Z,8.3731,126.7146,53.937,4.6,38 km NE of Barcelona Philippines -2023-12-03T09:22:45.332Z,8.4343,126.3347,61.637,4.2,6 km N of Hinatuan Philippines -2023-12-03T09:37:14.442Z,8.4004,126.8489,54.326,4.7,52 km ENE of Barcelona Philippines -2023-12-03T09:42:31.932Z,8.5172,126.9678,44.353,4.4,70 km NE of Barcelona Philippines -2023-12-03T09:45:36.849Z,8.7017,126.7225,58.011,5,48 km ESE of Marihatag Philippines -2023-12-03T09:48:47.433Z,8.5007,126.8224,58.223,4.9,55 km ENE of Hinatuan Philippines -2023-12-03T09:55:44.966Z,8.5072,126.7495,52.305,4.6,48 km ENE of Hinatuan Philippines -2023-12-03T10:00:04.901Z,8.4948,126.7657,57.013,4.6,49 km ENE of Hinatuan Philippines -2023-12-03T10:10:43.006Z,8.3563,126.7052,64.55,4.2,36 km NE of Barcelona Philippines -2023-12-03T10:17:26.640Z,8.4718,126.8103,50.24,4.8,53 km ENE of Hinatuan Philippines -2023-12-03T10:22:06.926Z,8.4956,126.7356,45.362,4.6,46 km ENE of Hinatuan Philippines -2023-12-03T10:27:56.714Z,8.5029,126.3646,55.82,4.4,13 km ESE of Gamut Philippines -2023-12-03T10:35:52.871Z,8.488,126.7454,19,6.6,47 km ENE of Hinatuan Philippines -2023-12-03T10:39:23.796Z,8.5597,126.6174,45.264,5.7,37 km ENE of Hinatuan Philippines -2023-12-03T10:45:47.907Z,8.6436,126.1848,61.756,4.5,8 km SSW of Salvacion Philippines -2023-12-03T10:46:45.558Z,8.5099,126.5423,48.53,4.8,27 km ENE of Hinatuan Philippines -2023-12-03T10:49:40.141Z,8.5477,126.8014,51.206,4.6,54 km ENE of Hinatuan Philippines -2023-12-03T10:51:42.198Z,8.3758,126.5445,54.21,4.4,23 km E of Hinatuan Philippines -2023-12-03T10:53:05.442Z,8.2897,127.0525,39.402,5.5,69 km ENE of Barcelona Philippines -2023-12-03T10:54:55.054Z,8.5622,126.862,36.128,5.6,61 km ENE of Hinatuan Philippines -2023-12-03T10:58:38.200Z,8.8293,126.83,42.849,5.4,57 km E of Aras-asan Philippines -2023-12-03T11:00:29.105Z,8.6963,126.5575,43.054,5,31 km ESE of Marihatag Philippines -2023-12-03T11:01:22.580Z,8.6452,126.3184,67.011,4.6,14 km ESE of Salvacion Philippines -2023-12-03T11:03:08.996Z,8.5882,126.7552,57.835,4.5,52 km ENE of Hinatuan Philippines -2023-12-03T11:04:55.848Z,8.7891,126.5242,40.458,4.5,25 km E of Marihatag Philippines -2023-12-03T11:06:18.465Z,8.6526,127.0953,10,4.7,89 km ENE of Hinatuan Philippines -2023-12-03T11:07:52.319Z,8.5748,126.8872,51.207,4.6,64 km ENE of Hinatuan Philippines -2023-12-03T11:08:54.709Z,8.6676,126.6196,51.186,4.2,38 km ESE of Marihatag Philippines -2023-12-03T11:09:16.935Z,8.552,126.9245,44.271,4.4,67 km ENE of Hinatuan Philippines -2023-12-03T11:11:27.068Z,8.5376,126.6422,57.339,4.3,38 km ENE of Hinatuan Philippines -2023-12-03T11:19:42.414Z,8.7652,126.5561,53.002,4.4,28 km E of Marihatag Philippines -2023-12-03T11:20:45.102Z,8.5588,126.7579,41.613,4.4,51 km ENE of Hinatuan Philippines -2023-12-03T11:23:42.342Z,8.6244,126.6394,42.536,4.3,42 km ESE of Marihatag Philippines -2023-12-03T11:31:09.120Z,8.5428,126.9388,51.756,4.9,69 km ENE of Hinatuan Philippines -2023-12-03T11:40:47.810Z,8.4474,126.8046,55.194,4.5,51 km NE of Barcelona Philippines -2023-12-03T11:53:44.757Z,8.3849,126.7457,59.628,4.7,42 km NE of Barcelona Philippines -2023-12-03T11:56:38.222Z,8.4828,126.5946,55.581,4.2,31 km ENE of Hinatuan Philippines -2023-12-03T11:57:59.989Z,8.5352,126.8199,58.385,4.3,56 km ENE of Hinatuan Philippines -2023-12-03T12:13:46.996Z,8.5042,126.8304,57.025,4.6,56 km ENE of Hinatuan Philippines -2023-12-03T12:28:35.198Z,8.4558,126.932,58.058,4.8,63 km ENE of Barcelona Philippines -2023-12-03T12:29:32.384Z,8.4205,126.8239,44.533,4.4,51 km NE of Barcelona Philippines -2023-12-03T12:37:11.161Z,8.6449,126.9844,30.629,4.3,77 km ENE of Hinatuan Philippines -2023-12-03T12:39:06.935Z,8.3741,126.7408,54.781,4.3,41 km NE of Barcelona Philippines -2023-12-03T12:39:36.297Z,8.6744,127.0239,28.046,5.4,81 km E of Marihatag Philippines -2023-12-03T12:44:48.871Z,8.4676,126.805,56.601,5.2,52 km ENE of Hinatuan Philippines -2023-12-03T12:47:26.181Z,8.5487,126.7992,47.879,4.2,54 km ENE of Hinatuan Philippines -2023-12-03T12:55:10.484Z,8.5387,126.9635,46.421,4.1,71 km ENE of Hinatuan Philippines -2023-12-03T12:58:18.124Z,8.0486,126.7876,61.103,4.3,38 km E of Santa Maria Philippines -2023-12-03T13:17:07.317Z,8.3477,126.3917,80.059,4.3,6 km ENE of Loyola Philippines -2023-12-03T13:22:52.126Z,8.4783,126.645,55.577,4.7,36 km ENE of Hinatuan Philippines -2023-12-03T13:36:38.660Z,8.5165,126.729,44.421,4.4,46 km ENE of Hinatuan Philippines -2023-12-03T14:02:19.715Z,8.1651,126.5208,76.799,4.5,9 km E of Barcelona Philippines -2023-12-03T14:18:54.809Z,8.4366,126.3292,72.076,4.5,7 km N of Hinatuan Philippines -2023-12-03T14:30:59.541Z,8.9177,126.8897,10,4.6,63 km E of Aras-asan Philippines -2023-12-03T14:35:56.830Z,8.732,126.823,13,6,58 km E of Marihatag Philippines -2023-12-03T14:38:35.616Z,8.6927,126.7887,54.816,5.1,55 km ESE of Marihatag Philippines -2023-12-03T14:45:39.077Z,8.7331,127.0897,35,4.5,87 km ESE of Aras-asan Philippines -2023-12-03T14:50:51.799Z,8.775,127.0454,10,4.5,81 km E of Aras-asan Philippines -2023-12-03T14:51:35.144Z,8.7138,127.0059,10,4.5,78 km E of Marihatag Philippines -2023-12-03T14:54:09.941Z,8.2957,126.689,73.552,5.1,31 km ENE of Barcelona Philippines -2023-12-03T15:19:20.571Z,8.2875,126.5697,77.353,4.3,20 km NE of Barcelona Philippines -2023-12-03T15:26:32.519Z,8.5647,126.7204,61.703,4.7,47 km ENE of Hinatuan Philippines -2023-12-03T15:37:05.734Z,8.7785,127.1087,10,4.1,88 km E of Aras-asan Philippines -2023-12-03T15:39:37.467Z,8.7281,126.7169,47.181,4.8,47 km E of Marihatag Philippines -2023-12-03T15:42:52.284Z,8.4701,126.7892,59.105,4.6,51 km ENE of Hinatuan Philippines -2023-12-03T16:27:40.346Z,8.324,126.4789,84.704,4.5,15 km E of Tidman Philippines -2023-12-03T16:31:58.883Z,8.9043,126.6454,74.909,4.4,36 km E of Aras-asan Philippines -2023-12-03T17:01:50.716Z,8.531,126.7048,60.007,5,44 km ENE of Hinatuan Philippines -2023-12-03T17:09:15.343Z,8.4856,126.8515,65.636,4.6,58 km ENE of Hinatuan Philippines -2023-12-03T17:23:43.869Z,8.793,126.8114,61.228,4.3,56 km E of Aras-asan Philippines -2023-12-03T17:24:09.398Z,8.8159,126.6932,47.342,4.6,42 km E of Aras-asan Philippines -2023-12-03T17:38:10.692Z,8.5214,126.8431,57.556,4.2,58 km ENE of Hinatuan Philippines -2023-12-03T17:50:10.111Z,8.9,126.6558,55.451,4.6,37 km E of Aras-asan Philippines -2023-12-03T18:06:52.447Z,8.6138,126.9669,42.295,4.5,74 km ENE of Hinatuan Philippines -2023-12-03T18:07:58.873Z,8.4958,126.6581,58.924,4.8,38 km ENE of Hinatuan Philippines -2023-12-03T18:11:20.290Z,8.8674,126.5348,59.088,5.1,24 km E of Aras-asan Philippines -2023-12-03T18:29:44.806Z,8.5013,126.769,56.488,4.8,49 km ENE of Hinatuan Philippines -2023-12-03T18:47:53.781Z,8.3947,126.7763,59.822,4.5,45 km NE of Barcelona Philippines -2023-12-03T18:59:22.322Z,8.9629,126.4471,57.177,4.9,17 km ENE of Aras-asan Philippines -2023-12-03T19:03:14.535Z,8.5798,126.586,69.598,4.7,36 km NE of Hinatuan Philippines -2023-12-03T19:14:54.619Z,8.8544,126.5721,65.775,4.8,28 km E of Aras-asan Philippines -2023-12-03T19:37:24.507Z,8.5869,126.8123,69.349,4,57 km ENE of Hinatuan Philippines -2023-12-03T19:47:20.396Z,8.7517,127.3971,10,4.4,120 km E of Aras-asan Philippines -2023-12-03T19:49:35.739Z,8.9705,126.6121,20,6.9,34 km ENE of Aras-asan Philippines -2023-12-03T20:03:12.970Z,8.5581,126.6507,77.572,4.8,40 km ENE of Hinatuan Philippines -2023-12-03T20:10:19.177Z,8.8346,126.6593,67.691,4.9,38 km E of Aras-asan Philippines -2023-12-03T20:13:31.213Z,9.0619,126.6963,84.261,4.5,46 km ENE of Aras-asan Philippines -2023-12-03T20:15:08.961Z,8.7108,126.4404,34.474,4.4,18 km ESE of Marihatag Philippines -2023-12-03T20:18:53.465Z,8.9241,126.6255,62.425,5,34 km E of Aras-asan Philippines -2023-12-03T20:27:49.515Z,8.9885,126.5953,61.859,4.7,33 km ENE of Aras-asan Philippines -2023-12-03T20:30:19.781Z,8.9031,126.4867,47.433,5.3,19 km E of Aras-asan Philippines -2023-12-03T20:52:44.367Z,9.0022,126.9853,10,4.4,75 km E of Aras-asan Philippines -2023-12-03T21:02:37.002Z,6.4937,127.2819,9.77,4.5,110 km ESE of Tarragona Philippines -2023-12-03T21:05:16.926Z,8.8496,126.3183,64.696,4.4,4 km S of Aras-asan Philippines -2023-12-03T21:06:36.173Z,8.4456,126.7759,61.025,4.5,49 km NE of Barcelona Philippines -2023-12-03T21:08:17.245Z,8.2405,126.8713,58.302,4.7,49 km E of Barcelona Philippines -2023-12-03T21:32:12.302Z,8.5603,126.8658,53.566,4.2,62 km ENE of Hinatuan Philippines -2023-12-03T21:35:43.744Z,8.2052,126.9057,52.995,4.4,52 km E of Barcelona Philippines -2023-12-03T21:43:38.401Z,8.7398,126.8062,24.222,5.4,56 km E of Marihatag Philippines -2023-12-03T21:47:38.586Z,8.8699,126.5502,63.759,4.6,26 km E of Aras-asan Philippines -2023-12-03T21:53:10.615Z,8.0022,126.9929,35,4.2,59 km NE of Kinablangan Philippines -2023-12-03T21:55:57.355Z,8.7812,127.1924,10,4.4,97 km E of Aras-asan Philippines -2023-12-03T21:57:11.415Z,8.9968,126.397,59.477,4.5,13 km ENE of Bacolod Philippines -2023-12-03T22:06:22.496Z,8.662,126.7648,59.858,4.5,53 km ESE of Marihatag Philippines -2023-12-03T22:08:05.521Z,8.7443,126.4046,80.093,4.5,13 km ESE of Marihatag Philippines -2023-12-03T22:12:37.953Z,8.5686,126.9342,54.947,4.4,69 km ENE of Hinatuan Philippines -2023-12-03T22:20:32.282Z,8.5619,126.7744,54.692,4.8,52 km ENE of Hinatuan Philippines -2023-12-03T22:30:04.554Z,8.7493,126.6833,49.421,4.5,43 km E of Marihatag Philippines -2023-12-03T22:31:40.681Z,8.5035,126.485,80.377,4.2,22 km NE of Hinatuan Philippines -2023-12-03T22:38:51.018Z,8.6492,126.9694,43.447,4.5,76 km ESE of Marihatag Philippines -2023-12-03T22:42:17.814Z,8.7045,126.9358,35,5.1,71 km E of Marihatag Philippines -2023-12-03T22:55:09.529Z,9.0829,126.6061,35,4.5,38 km ENE of Bacolod Philippines -2023-12-03T23:15:12.419Z,8.2419,126.5865,59.581,4.3,19 km ENE of Barcelona Philippines -2023-12-03T23:16:16.451Z,8.3619,126.8616,35,4.6,52 km ENE of Barcelona Philippines -2023-12-03T23:23:47.588Z,9.098,126.7735,47.473,4.5,55 km ENE of Aras-asan Philippines -2023-12-03T23:25:12.213Z,8.4018,126.758,58.845,5.1,44 km NE of Barcelona Philippines -2023-12-03T23:57:48.381Z,8.5228,126.3419,35,4.4,11 km E of Gamut Philippines -2023-12-04T00:36:08.606Z,8.4667,126.61,57.53,4.4,32 km ENE of Hinatuan Philippines -2023-12-04T00:39:02.759Z,8.1051,126.7847,50.963,4.8,39 km E of Barcelona Philippines -2023-12-04T00:44:26.400Z,8.8958,126.5411,49.396,4.9,25 km E of Aras-asan Philippines -2023-12-04T00:55:23.811Z,8.8642,126.6775,35,4.3,40 km E of Aras-asan Philippines -2023-12-04T01:00:36.739Z,8.8796,126.5209,49.628,4.5,23 km E of Aras-asan Philippines -2023-12-04T01:05:53.712Z,7.6397,127.1161,10,4.3,61 km E of Baganga Philippines -2023-12-04T01:06:40.143Z,8.5406,126.5985,35,4.5,34 km ENE of Hinatuan Philippines -2023-12-04T01:07:50.505Z,8.4547,126.8072,66.391,5.5,52 km NE of Barcelona Philippines -2023-12-04T01:17:35.890Z,8.5144,126.7897,70.926,4.4,52 km ENE of Hinatuan Philippines -2023-12-04T01:32:16.569Z,8.3664,127.1768,10,4.6,84 km ENE of Barcelona Philippines -2023-12-04T01:36:02.838Z,8.9354,126.4596,58.633,4.3,17 km ENE of Aras-asan Philippines -2023-12-04T01:51:09.184Z,8.5839,126.7206,19.883,4.2,48 km ENE of Hinatuan Philippines -2023-12-04T02:11:04.909Z,8.4825,126.7738,71.731,5,49 km ENE of Hinatuan Philippines -2023-12-04T02:11:57.805Z,8.5389,126.6466,103.168,4.8,39 km ENE of Hinatuan Philippines -2023-12-04T02:19:50.365Z,8.6371,126.2272,106.562,4.4,8 km SSE of Salvacion Philippines -2023-12-04T02:32:38.647Z,8.7959,126.2415,86.202,4.2,6 km W of Marihatag Philippines -2023-12-04T02:38:18.667Z,8.5649,126.7867,58.768,5.2,54 km ENE of Hinatuan Philippines -2023-12-04T02:59:00.438Z,8.4247,126.6669,62.584,4.3,37 km E of Hinatuan Philippines -2023-12-04T03:08:51.639Z,8.6706,126.7952,59.701,4.5,56 km ESE of Marihatag Philippines -2023-12-04T03:39:29.106Z,7.72,126.642,95.074,4.5,10 km ENE of Kinablangan Philippines -2023-12-04T03:49:14.221Z,8.7488,126.5107,42.785,4.5,24 km ESE of Marihatag Philippines -2023-12-04T04:05:50.045Z,3.541,126.8943,35,4.3,235 km NNW of Tobelo Indonesia -2023-12-04T04:12:01.156Z,8.7802,127.271,10,4.2,106 km E of Aras-asan Philippines -2023-12-04T04:17:23.815Z,8.8321,126.7554,46.818,5.3,49 km E of Aras-asan Philippines -2023-12-04T04:21:23.420Z,8.6584,127.3283,10,4.8,112 km ENE of Barcelona Philippines -2023-12-04T04:32:29.894Z,8.6628,126.5432,60.201,4.3,31 km ESE of Marihatag Philippines -2023-12-04T04:43:49.261Z,8.3955,126.8925,65.809,5.1,56 km ENE of Barcelona Philippines -2023-12-04T04:59:01.651Z,8.879,126.666,55.451,5.3,39 km E of Aras-asan Philippines -2023-12-04T05:03:41.324Z,8.4492,126.4344,66.13,4.8,13 km NE of Hinatuan Philippines -2023-12-04T05:08:36.001Z,8.8354,126.6446,27,5.7,37 km E of Aras-asan Philippines -2023-12-04T05:14:55.893Z,8.6682,126.4292,68.418,4.4,21 km SE of Marihatag Philippines -2023-12-04T05:15:43.916Z,8.3448,126.7748,66.931,5.3,42 km ENE of Barcelona Philippines -2023-12-04T05:45:11.007Z,8.3339,126.7259,74.017,4.6,37 km ENE of Barcelona Philippines -2023-12-04T05:51:38.185Z,8.6484,126.7103,35,4.3,48 km ESE of Marihatag Philippines -2023-12-04T06:08:29.488Z,8.4944,126.7589,45.738,5,48 km ENE of Hinatuan Philippines -2023-12-04T06:43:48.172Z,8.7921,126.5415,62.33,4.6,26 km E of Marihatag Philippines -2023-12-04T06:59:02.261Z,8.544,126.812,61.167,4.4,55 km ENE of Hinatuan Philippines -2023-12-04T07:10:08.017Z,8.6243,126.7681,47.902,4.2,55 km ENE of Hinatuan Philippines -2023-12-04T07:11:08.522Z,8.4451,126.376,81.047,4.4,9 km NNE of Hinatuan Philippines -2023-12-04T07:23:58.178Z,8.3413,126.5352,77.984,4.2,22 km ENE of Tidman Philippines -2023-12-04T07:33:34.455Z,8.4113,126.9788,40.405,4.2,66 km ENE of Barcelona Philippines -2023-12-04T07:44:55.483Z,8.679,126.3906,35,4.2,17 km SE of Marihatag Philippines -2023-12-04T07:47:55.927Z,8.7874,126.8538,55.25,4.4,60 km E of Aras-asan Philippines -2023-12-04T08:12:25.614Z,8.4308,126.8279,56.959,4.3,52 km NE of Barcelona Philippines -2023-12-04T09:10:37.888Z,8.0992,126.5693,98.886,4.1,16 km ESE of Barcelona Philippines -2023-12-04T09:29:41.149Z,8.5281,126.738,23.333,4.9,47 km ENE of Hinatuan Philippines -2023-12-04T09:55:30.676Z,8.4163,126.6217,66.178,4.1,32 km E of Hinatuan Philippines -2023-12-04T10:06:03.859Z,8.2898,126.6128,81.059,4.3,24 km NE of Barcelona Philippines -2023-12-04T10:12:30.648Z,8.3734,126.5764,67.448,4.5,26 km E of Hinatuan Philippines -2023-12-04T10:23:02.727Z,9.0306,126.6202,68.132,4.6,37 km ENE of Aras-asan Philippines -2023-12-04T10:28:16.564Z,8.8659,126.3996,50.356,4.2,10 km ESE of Aras-asan Philippines -2023-12-04T10:37:56.227Z,8.3084,126.848,35.126,4.4,48 km ENE of Barcelona Philippines -2023-12-04T10:48:43.949Z,8.5486,126.8142,55.057,4.4,56 km ENE of Hinatuan Philippines -2023-12-04T11:31:30.863Z,8.2428,126.5714,66.72,4.4,17 km ENE of Barcelona Philippines -2023-12-04T12:04:24.271Z,8.2883,127.293,10,4.2,95 km E of Barcelona Philippines -2023-12-04T13:00:44.772Z,9.0514,126.7734,42.766,4.5,53 km ENE of Aras-asan Philippines -2023-12-04T13:20:08.149Z,8.4181,126.9414,59.601,4.3,62 km ENE of Barcelona Philippines -2023-12-04T13:46:03.913Z,8.7181,127.1752,10,4.4,96 km E of Aras-asan Philippines -2023-12-04T14:02:31.838Z,8.7103,127.0253,10,4.4,80 km E of Marihatag Philippines -2023-12-04T14:14:46.314Z,8.1961,126.9876,56.268,4.4,61 km E of Barcelona Philippines -2023-12-04T15:38:36.198Z,8.4337,126.6059,76.164,4.4,30 km ENE of Hinatuan Philippines -2023-12-04T15:44:59.627Z,8.5314,126.4196,64.416,4.5,19 km E of Gamut Philippines -2023-12-04T16:05:09.758Z,9.1341,126.6817,53.473,4.3,48 km ENE of Bacolod Philippines -2023-12-04T16:23:46.001Z,8.5476,126.8152,45.186,4.7,56 km ENE of Hinatuan Philippines -2023-12-04T17:07:03.477Z,8.4556,126.3718,83.669,4.3,10 km NNE of Hinatuan Philippines -2023-12-04T18:04:10.825Z,8.7039,127.1912,10,4.2,98 km ESE of Aras-asan Philippines -2023-12-04T18:21:33.525Z,3.5472,126.8715,46.238,4.8,237 km NNW of Tobelo Indonesia -2023-12-04T18:28:19.885Z,3.5674,126.8618,44.104,4.5,240 km NNW of Tobelo Indonesia -2023-12-04T19:05:55.402Z,8.1512,126.919,35,4.1,53 km E of Barcelona Philippines -2023-12-04T19:33:04.131Z,8.8632,126.7976,13.215,4.4,53 km E of Aras-asan Philippines -2023-12-04T19:57:39.486Z,8.4035,126.7949,71.182,4.4,48 km NE of Barcelona Philippines -2023-12-04T21:00:25.166Z,9.8038,126.5027,35,4.3,43 km E of Union Philippines -2023-12-04T21:07:52.262Z,8.3486,127.2464,10,4.4,91 km ENE of Barcelona Philippines -2023-12-04T21:20:06.062Z,8.3368,127.269,10,4.7,94 km ENE of Barcelona Philippines -2023-12-04T21:23:33.089Z,8.1699,126.9399,35,4.3,55 km E of Barcelona Philippines -2023-12-04T21:53:29.159Z,8.8535,126.7038,43.419,4.4,43 km E of Aras-asan Philippines -2023-12-04T23:05:29.938Z,8.258,126.9238,58.963,4.6,55 km ENE of Barcelona Philippines -2023-12-04T23:11:12.842Z,8.4649,127.2041,10,4.5,91 km ENE of Barcelona Philippines -2023-12-04T23:20:44.541Z,8.9829,126.5208,46.24,4.4,25 km ENE of Aras-asan Philippines -2023-12-04T23:23:57.674Z,8.9405,126.548,42.447,4.4,26 km ENE of Aras-asan Philippines -2023-12-04T23:39:36.413Z,8.2188,126.8343,42.711,4.4,44 km E of Barcelona Philippines -2023-12-04T23:57:09.449Z,8.9855,126.5335,53.488,4.7,26 km ENE of Aras-asan Philippines -2023-12-05T00:12:12.287Z,8.4604,126.8751,50.085,4.3,58 km NE of Barcelona Philippines -2023-12-05T00:34:29.806Z,8.9528,126.5493,40.403,5.2,27 km ENE of Aras-asan Philippines -2023-12-05T00:49:16.087Z,8.5905,126.8958,35,4.4,66 km ENE of Hinatuan Philippines -2023-12-05T00:58:32.744Z,8.7119,126.7423,35,5.1,50 km ESE of Marihatag Philippines -2023-12-05T01:01:11.523Z,8.707,126.6713,83.856,4.9,42 km ESE of Marihatag Philippines -2023-12-05T01:06:13.127Z,8.9151,126.6056,62.045,4.1,32 km E of Aras-asan Philippines -2023-12-05T01:24:54.240Z,8.3678,126.5158,85.571,4.3,20 km E of Hinatuan Philippines -2023-12-05T02:02:46.561Z,8.4691,126.8397,63.649,4.4,56 km NE of Barcelona Philippines -2023-12-05T02:06:02.689Z,8.8249,126.9575,10,4.3,71 km E of Aras-asan Philippines -2023-12-05T02:19:47.115Z,9.1157,126.3321,49.315,4.2,15 km NE of Tago Philippines -2023-12-05T02:41:27.961Z,8.9697,126.5168,47.642,4.4,24 km ENE of Aras-asan Philippines -2023-12-05T02:44:24.359Z,8.3385,126.9347,69.326,4.9,58 km ENE of Barcelona Philippines -2023-12-05T03:39:58.980Z,8.6563,126.702,72.616,4.8,47 km ESE of Marihatag Philippines -2023-12-05T03:56:17.577Z,8.7833,127.2511,10,4.2,104 km E of Aras-asan Philippines -2023-12-05T03:57:15.902Z,8.3427,126.2225,10,4.3,7 km WNW of Bigaan Philippines -2023-12-05T04:27:36.054Z,8.6856,126.6875,74.92,4.8,45 km ESE of Marihatag Philippines -2023-12-05T04:33:17.389Z,8.9799,127.2244,10,4.5,100 km E of Aras-asan Philippines -2023-12-05T04:58:48.308Z,7.8878,127.2434,10,4.6,79 km ENE of Kinablangan Philippines -2023-12-05T05:27:13.681Z,8.4351,126.9638,38.877,5.1,65 km ENE of Barcelona Philippines -2023-12-05T05:41:15.193Z,8.5037,127.1043,10,4.3,83 km ENE of Barcelona Philippines -2023-12-05T05:42:34.034Z,8.5678,127.2751,10,4.8,103 km ENE of Barcelona Philippines -2023-12-05T05:47:05.726Z,8.5293,127.2312,10,4.5,96 km ENE of Barcelona Philippines -2023-12-05T07:06:13.455Z,8.4541,126.8441,47.02,4.5,55 km NE of Barcelona Philippines -2023-12-05T07:27:24.018Z,8.7445,127.3174,10,4.7,111 km E of Aras-asan Philippines -2023-12-05T08:13:18.209Z,8.3392,126.7188,55.551,4.5,37 km ENE of Barcelona Philippines -2023-12-05T09:10:03.799Z,9.0829,126.6785,19.697,5.7,45 km ENE of Aras-asan Philippines -2023-12-05T09:13:06.485Z,9.0224,126.6528,44.569,4.9,40 km ENE of Aras-asan Philippines -2023-12-05T09:32:51.332Z,9.1012,126.6568,35,4.5,44 km ENE of Bacolod Philippines -2023-12-05T09:37:51.267Z,9.0178,126.5255,28.343,4.7,27 km ENE of Aras-asan Philippines -2023-12-05T09:42:52.100Z,9.0999,126.6497,26.021,5.5,43 km ENE of Bacolod Philippines -2023-12-05T09:52:38.051Z,9.1304,126.6893,51.3,4.9,49 km ENE of Bacolod Philippines -2023-12-05T09:56:01.380Z,8.4659,126.6819,56.1,4.6,39 km ENE of Hinatuan Philippines -2023-12-05T09:59:29.110Z,9.2818,126.587,35.343,4.7,43 km E of Cortes Philippines -2023-12-05T10:13:12.760Z,8.4983,127.2187,10,4.4,94 km ENE of Barcelona Philippines -2023-12-05T10:23:56.275Z,9.1074,126.9573,10,4.5,75 km ENE of Aras-asan Philippines -2023-12-05T10:26:18.712Z,8.9322,126.5319,51.309,4.5,24 km ENE of Aras-asan Philippines -2023-12-05T10:45:47.072Z,8.8674,127.0049,10,4.7,76 km E of Aras-asan Philippines -2023-12-05T10:48:07.755Z,8.6345,126.931,35,4.5,71 km ENE of Hinatuan Philippines -2023-12-05T11:00:25.505Z,8.8446,126.7958,43.991,4.5,53 km E of Aras-asan Philippines -2023-12-05T11:33:00.648Z,8.3724,126.4497,76.977,4.8,12 km E of Hinatuan Philippines -2023-12-05T11:49:22.992Z,8.8651,127.4349,10,4.4,123 km E of Aras-asan Philippines -2023-12-05T12:33:59.292Z,8.7637,126.5614,55.552,4.6,29 km E of Marihatag Philippines -2023-12-05T12:36:38.296Z,2.5629,128.2423,62.979,5.1,95 km NNE of Tobelo Indonesia -2023-12-05T12:42:36.570Z,8.4519,126.6751,77.532,5,38 km ENE of Hinatuan Philippines -2023-12-05T12:45:07.341Z,8.4366,126.3407,68.11,4.7,7 km N of Hinatuan Philippines -2023-12-05T13:32:26.546Z,8.7596,126.6992,53.097,4.5,44 km E of Marihatag Philippines -2023-12-05T13:36:36.285Z,9.1609,126.785,12,5.8,60 km ENE of Bacolod Philippines -2023-12-05T14:57:48.753Z,8.4116,126.9541,49.897,4,63 km ENE of Barcelona Philippines -2023-12-05T15:36:35.373Z,8.7532,127.0767,10,4.5,85 km E of Aras-asan Philippines -2023-12-05T16:29:55.543Z,8.3494,127.0163,49.815,4.4,67 km ENE of Barcelona Philippines -2023-12-05T17:15:44.198Z,9.0511,127.2633,10,4.3,106 km E of Aras-asan Philippines -2023-12-05T17:17:24.327Z,9.0794,127.0628,10,4.1,85 km ENE of Aras-asan Philippines -2023-12-05T17:29:01.207Z,8.3512,127.2242,10,4.3,89 km ENE of Barcelona Philippines -2023-12-05T17:33:21.898Z,8.9566,126.638,54.27,4.8,36 km ENE of Aras-asan Philippines -2023-12-05T17:36:56.900Z,8.9238,126.7087,47.706,4.4,43 km E of Aras-asan Philippines -2023-12-05T18:09:44.717Z,9.0281,126.9413,10,4.6,71 km ENE of Aras-asan Philippines -2023-12-05T18:35:05.332Z,8.9477,126.6742,52.534,4.5,40 km E of Aras-asan Philippines -2023-12-05T19:44:51.596Z,8.608,126.4778,81.004,4.4,27 km ENE of Gamut Philippines -2023-12-05T20:23:28.205Z,8.3338,126.4518,92.688,4.5,13 km E of Loyola Philippines -2023-12-05T20:29:38.408Z,8.8148,126.6416,57.623,4.5,37 km ESE of Aras-asan Philippines -2023-12-05T21:52:13.304Z,8.5437,126.6603,65.136,4.6,40 km ENE of Hinatuan Philippines -2023-12-05T22:23:28.430Z,9.1669,126.6828,64.613,4.4,50 km ENE of La Paz Philippines -2023-12-05T23:18:49.786Z,8.3308,126.9982,57.712,4.4,64 km ENE of Barcelona Philippines -2023-12-05T23:27:46.861Z,8.5301,127.0911,35,4.2,83 km ENE of Barcelona Philippines -2023-12-05T23:29:07.600Z,8.6272,127.4251,10,4.7,120 km ENE of Barcelona Philippines -2023-12-05T23:34:25.426Z,8.6166,126.5826,63.502,4.6,37 km ESE of Marihatag Philippines -2023-12-05T23:39:56.401Z,8.6686,126.5522,70.998,4.7,31 km ESE of Marihatag Philippines -2023-12-05T23:51:06.716Z,8.5242,127.2361,10,4.4,97 km ENE of Barcelona Philippines -2023-12-06T01:02:08.113Z,8.7985,127.3267,10,4.2,112 km E of Aras-asan Philippines -2023-12-06T01:22:48.092Z,8.4338,126.7907,35,4.1,49 km NE of Barcelona Philippines -2023-12-06T01:55:58.955Z,8.6155,126.4644,54.945,5.3,26 km ENE of Gamut Philippines -2023-12-06T02:26:22.001Z,8.9613,127.3348,10,4.1,112 km E of Aras-asan Philippines -2023-12-06T02:38:43.089Z,7.4501,126.1088,10,4.3,13 km ESE of San Mariano Philippines -2023-12-06T04:00:19.898Z,9.2212,126.5551,64.339,4.6,40 km E of Cortes Philippines -2023-12-06T05:34:10.446Z,8.3768,126.8645,48.427,4.2,53 km ENE of Barcelona Philippines -2023-12-06T06:30:37.042Z,8.4696,127.2586,10,4.2,97 km ENE of Barcelona Philippines -2023-12-06T08:01:58.137Z,9.1377,126.3258,79.538,4.5,15 km ENE of Tandag Philippines -2023-12-06T08:32:17.021Z,8.4339,126.9909,58.508,4.3,68 km ENE of Barcelona Philippines -2023-12-06T08:33:04.427Z,8.8178,126.5838,58.596,4.9,30 km ESE of Aras-asan Philippines -2023-12-06T09:34:55.226Z,8.8279,126.4699,10,4.5,18 km ESE of Aras-asan Philippines -2023-12-06T10:33:26.051Z,8.4435,126.9835,53.416,4.3,68 km ENE of Barcelona Philippines -2023-12-06T10:41:23.010Z,8.6273,126.6017,58.768,5.1,38 km ESE of Marihatag Philippines -2023-12-06T11:42:50.241Z,8.462,126.8433,59.211,4.6,56 km NE of Barcelona Philippines -2023-12-06T13:01:27.361Z,3.1941,126.6826,41.408,4.6,219 km NW of Tobelo Indonesia -2023-12-06T13:19:22.398Z,8.6399,127.193,10,4.6,99 km ENE of Barcelona Philippines -2023-12-06T14:52:37.348Z,8.4874,126.7553,35,4.9,48 km ENE of Hinatuan Philippines -2023-12-06T15:24:37.994Z,8.5184,127.058,14.62,5.3,79 km ENE of Barcelona Philippines -2023-12-06T15:33:14.413Z,8.4127,126.6908,53.161,4.5,39 km E of Hinatuan Philippines -2023-12-06T16:29:56.634Z,8.9303,127.1137,10,4.2,88 km E of Aras-asan Philippines -2023-12-06T16:32:53.281Z,9.0709,127.0694,10,4.3,85 km ENE of Aras-asan Philippines -2023-12-06T17:15:04.831Z,9.0353,126.4783,72.212,4.4,23 km ENE of Bacolod Philippines -2023-12-06T17:25:46.324Z,8.8083,126.6822,55.999,4.5,41 km ESE of Aras-asan Philippines -2023-12-06T18:04:36.869Z,9.0162,127.0302,10,4.3,80 km E of Aras-asan Philippines -2023-12-06T19:11:39.643Z,8.9319,126.7919,50.565,4.7,53 km E of Aras-asan Philippines -2023-12-06T19:14:45.547Z,8.6108,126.8801,59.094,4.7,65 km ENE of Hinatuan Philippines -2023-12-06T19:18:48.331Z,8.9349,126.7944,57.842,4.4,53 km E of Aras-asan Philippines -2023-12-06T19:20:30.965Z,8.9024,127.2977,10,4.5,108 km E of Aras-asan Philippines -2023-12-06T19:24:22.006Z,8.8888,126.71,59.556,4.5,43 km E of Aras-asan Philippines -2023-12-06T19:46:50.817Z,9.1481,127.085,10,4.4,89 km ENE of Aras-asan Philippines -2023-12-06T22:40:12.467Z,8.675,127.2547,10,4.5,106 km E of Marihatag Philippines -2023-12-06T23:07:25.852Z,8.3855,126.6075,65.785,4.2,30 km E of Hinatuan Philippines -2023-12-06T23:33:46.088Z,8.4094,126.6536,34.432,4.9,35 km E of Hinatuan Philippines -2023-12-06T23:41:33.057Z,8.6556,127.1519,10,4.6,95 km ENE of Hinatuan Philippines -2023-12-07T00:39:02.665Z,8.5933,127.1984,10,4.4,96 km ENE of Barcelona Philippines -2023-12-07T00:46:30.224Z,8.9973,126.7508,16.406,5.4,49 km ENE of Aras-asan Philippines -2023-12-07T00:55:48.569Z,9.2141,127.1388,10,4.3,97 km ENE of Aras-asan Philippines -2023-12-07T01:53:23.099Z,8.399,126.6128,65.854,4.4,30 km E of Hinatuan Philippines -2023-12-07T01:58:27.986Z,9.0756,127.0331,10,4.6,82 km ENE of Aras-asan Philippines -2023-12-07T02:53:44.813Z,8.5138,126.9651,53.054,4.5,70 km NE of Barcelona Philippines -2023-12-07T04:45:46.856Z,8.7042,126.6965,49.809,5.1,45 km ESE of Marihatag Philippines -2023-12-07T05:41:08.590Z,8.8279,127.2111,10,4.5,99 km E of Aras-asan Philippines -2023-12-07T06:38:49.459Z,8.8293,126.7893,44.584,5.2,52 km E of Aras-asan Philippines -2023-12-07T06:42:39.234Z,8.6676,127.1733,10,4.4,97 km E of Marihatag Philippines -2023-12-07T06:56:01.429Z,5.0858,127.451,115.537,4.4,199 km SE of Pondaguitan Philippines -2023-12-07T07:09:57.531Z,8.7899,127.2137,10,4.3,99 km E of Aras-asan Philippines -2023-12-07T07:28:53.564Z,8.6191,126.8486,56.162,4.4,62 km ENE of Hinatuan Philippines -2023-12-07T11:27:52.882Z,8.4714,127.3702,10,4.5,108 km ENE of Barcelona Philippines -2023-12-07T12:40:32.795Z,8.7186,127.1754,10,4.4,96 km E of Aras-asan Philippines -2023-12-07T13:09:46.026Z,5.7478,125.3216,78.721,4.8,6 km NE of Pangyan Philippines -2023-12-07T14:11:37.273Z,8.4433,126.5756,72.951,4.6,27 km ENE of Hinatuan Philippines -2023-12-07T15:08:37.998Z,8.507,126.7505,47.343,4.9,48 km ENE of Hinatuan Philippines -2023-12-07T15:38:05.525Z,4.1987,127.823,114.656,4.4,273 km N of Tobelo Indonesia -2023-12-07T16:06:49.531Z,9.5978,127.0683,10,4.5,102 km ENE of Cortes Philippines -2023-12-07T16:14:05.332Z,8.6944,127.2688,10,4.4,107 km ESE of Aras-asan Philippines -2023-12-07T16:38:48.801Z,8.373,126.471,81.471,4.2,15 km E of Hinatuan Philippines -2023-12-07T19:27:23.614Z,8.744,126.8486,45.89,4.5,61 km E of Marihatag Philippines -2023-12-07T22:12:04.468Z,8.8044,126.7075,67.397,4.3,44 km ESE of Aras-asan Philippines -2023-12-07T23:56:30.747Z,8.5529,127.3392,10,4.1,108 km ENE of Barcelona Philippines -2023-12-08T03:25:49.736Z,9.5093,126.4941,15.331,5.1,41 km NE of Cortes Philippines -2023-12-08T03:43:58.495Z,8.5956,127.1315,10,4.4,90 km ENE of Barcelona Philippines -2023-12-08T05:21:47.328Z,8.7506,127.225,10,4.5,101 km E of Aras-asan Philippines -2023-12-08T05:29:14.784Z,8.4747,126.9889,16.598,4.4,70 km ENE of Barcelona Philippines -2023-12-08T05:47:05.730Z,8.6382,126.4906,68.107,4.5,28 km SE of Marihatag Philippines -2023-12-08T05:54:15.605Z,8.7733,127.4838,10,4.6,129 km E of Aras-asan Philippines -2023-12-08T06:52:43.260Z,8.7458,127.2197,12.689,5,101 km E of Aras-asan Philippines -2023-12-08T08:11:15.438Z,8.7825,127.2812,10,4.4,107 km E of Aras-asan Philippines -2023-12-08T08:59:24.020Z,8.8466,127.3284,10,4.7,111 km E of Aras-asan Philippines -2023-12-08T09:26:53.243Z,8.5821,126.8213,63.524,4.4,58 km ENE of Hinatuan Philippines -2023-12-08T09:46:51.998Z,8.6608,127.1205,10,4.5,92 km E of Marihatag Philippines -2023-12-08T09:53:17.888Z,8.5901,127.4781,10,4.5,124 km ENE of Barcelona Philippines -2023-12-08T10:01:15.077Z,8.6897,127.0566,10,4.7,84 km E of Marihatag Philippines -2023-12-08T10:32:39.480Z,8.7897,126.8612,49.291,5.2,61 km E of Aras-asan Philippines -2023-12-08T11:32:15.254Z,8.8122,126.9302,54.744,4.9,68 km E of Aras-asan Philippines -2023-12-08T14:52:30.732Z,8.5326,127.1288,10,4.3,86 km ENE of Barcelona Philippines -2023-12-08T16:09:47.231Z,8.7513,126.8256,55.654,4.6,58 km E of Marihatag Philippines -2023-12-08T17:46:13.720Z,9.2544,127.2303,10,4.6,108 km ENE of Aras-asan Philippines -2023-12-08T17:51:14.418Z,9.0911,126.9802,10,4.6,76 km ENE of Aras-asan Philippines -2023-12-08T20:18:09.582Z,8.293,127.4591,10,4.7,113 km E of Barcelona Philippines -2023-12-08T20:34:40.498Z,9.0159,127.2037,10,4.2,99 km E of Aras-asan Philippines -2023-12-08T21:24:25.859Z,9.6202,126.8576,10,4.3,82 km ENE of Cortes Philippines -2023-12-08T21:54:20.787Z,9.4663,126.4817,38.403,4.4,38 km ENE of Cortes Philippines -2023-12-08T22:03:55.833Z,9.0745,126.6641,7.708,4.1,43 km ENE of Aras-asan Philippines -2023-12-08T22:13:34.565Z,9.4713,126.3856,26.288,4.4,30 km NE of Cortes Philippines -2023-12-09T00:04:43.521Z,8.6504,126.9781,37.632,4.2,76 km ESE of Marihatag Philippines -2023-12-09T02:38:44.603Z,8.7063,127.1388,10,4.5,93 km ESE of Aras-asan Philippines -2023-12-09T05:56:48.697Z,9.051,126.6986,58.988,4.5,46 km ENE of Aras-asan Philippines -2023-12-09T06:27:45.009Z,8.6364,126.8616,57.923,4.2,64 km ESE of Marihatag Philippines -2023-12-09T08:12:14.609Z,9.1608,126.6142,67.7,4.7,43 km ENE of La Paz Philippines -2023-12-09T08:45:55.756Z,9.2185,126.7816,45.364,4.4,62 km ENE of La Paz Philippines -2023-12-09T09:16:45.723Z,8.7733,127.3875,10,4.2,119 km E of Aras-asan Philippines -2023-12-09T09:37:26.486Z,8.4403,126.5743,72.221,4.7,27 km ENE of Hinatuan Philippines -2023-12-09T09:39:48.839Z,9.2883,125.9433,35,4.5,0 km N of Parang Philippines -2023-12-09T10:09:38.400Z,9.4686,126.4773,57.641,4.3,37 km ENE of Cortes Philippines -2023-12-09T10:14:33.172Z,9.5385,126.4792,42.705,4.4,42 km NE of Cortes Philippines -2023-12-09T10:33:22.611Z,8.2482,126.7122,52.836,4,32 km ENE of Barcelona Philippines -2023-12-09T10:37:54.355Z,8.4588,127.2569,10,4.5,96 km ENE of Barcelona Philippines -2023-12-09T13:20:35.130Z,9.2795,126.5035,55.544,4.6,34 km E of Cortes Philippines -2023-12-09T14:39:30.965Z,9.4103,126.4959,34.393,4.2,36 km ENE of Cortes Philippines -2023-12-09T15:07:04.027Z,6.2107,126.3149,62.446,4.9,22 km SE of Pondaguitan Philippines -2023-12-09T17:28:29.779Z,8.849,126.8549,67.962,4.2,59 km E of Aras-asan Philippines -2023-12-09T19:44:47.805Z,1.8063,126.3784,54.695,5,144 km ENE of Bitung Indonesia -2023-12-09T22:31:21.391Z,8.4895,127.6891,10,4.6,142 km ENE of Barcelona Philippines -2023-12-09T23:13:31.141Z,5.9419,127.1164,74.394,4.6,113 km ESE of Pondaguitan Philippines -2023-12-09T23:59:01.264Z,8.4191,126.6676,51.636,4.6,37 km E of Hinatuan Philippines -2023-12-10T00:11:35.969Z,9.3528,126.4236,47.152,4.6,26 km ENE of Cortes Philippines -2023-12-10T01:01:38.191Z,9.2605,126.4429,41.596,4.5,27 km E of Cortes Philippines -2023-12-10T01:14:21.443Z,9.074,126.5863,43.965,4.3,36 km ENE of Bacolod Philippines -2023-12-10T03:31:06.809Z,8.4222,127.2197,10,4.5,91 km ENE of Barcelona Philippines -2023-12-10T05:15:51.310Z,8.5858,126.258,78.113,4.1,6 km NNE of Gamut Philippines -2023-12-10T06:22:43.216Z,8.7556,127.3956,10,4.3,120 km E of Aras-asan Philippines -2023-12-10T07:33:37.647Z,8.7097,126.2525,65.584,4.1,4 km E of Salvacion Philippines -2023-12-10T08:32:06.879Z,8.6547,127.0148,10,4.3,80 km ESE of Marihatag Philippines -2023-12-10T10:00:43.228Z,9.6103,126.5703,44.952,4.3,53 km ESE of Union Philippines -2023-12-10T12:44:58.096Z,8.8225,126.7525,39.897,4.4,49 km E of Aras-asan Philippines -2023-12-10T17:46:07.214Z,7.9177,126.8763,33.159,4.9,43 km NE of Kinablangan Philippines -2023-12-10T17:48:50.571Z,8.0653,126.4982,69.608,4.4,9 km ENE of Lingig Philippines -2023-12-10T18:07:35.681Z,8.7042,127.32,10,4.5,112 km E of Aras-asan Philippines -2023-12-10T19:28:09.015Z,9.5164,126.7283,39.677,4.2,64 km ENE of Cortes Philippines -2023-12-10T22:49:38.279Z,8.7028,127.2892,10,4.4,109 km E of Aras-asan Philippines -2023-12-10T22:52:56.501Z,8.7373,127.2677,10,5.1,106 km E of Aras-asan Philippines -2023-12-10T23:10:43.013Z,8.641,127.282,10,4.5,107 km ENE of Barcelona Philippines -2023-12-10T23:18:00.908Z,8.7201,127.3417,10,4.6,114 km E of Aras-asan Philippines -2023-12-10T23:29:15.554Z,8.6511,127.2697,10,4.5,106 km ENE of Barcelona Philippines -2023-12-11T00:45:01.415Z,8.8229,126.9288,10,4.6,68 km E of Aras-asan Philippines -2023-12-11T01:15:38.374Z,8.9146,127.3104,10,4.2,109 km E of Aras-asan Philippines -2023-12-11T01:55:10.236Z,8.7595,127.2681,10,4.7,106 km E of Aras-asan Philippines -2023-12-11T03:48:08.285Z,9.5142,126.1552,85.047,4.8,23 km ESE of Socorro Philippines -2023-12-11T03:48:59.925Z,9.2079,126.0098,10,4.7,2 km SSW of Carmen Philippines -2023-12-11T04:33:31.631Z,2.6627,128.2722,122.003,4.8,107 km NNE of Tobelo Indonesia -2023-12-11T08:03:00.611Z,8.1267,127.1801,26.551,4.5,82 km E of Barcelona Philippines -2023-12-11T10:55:39.135Z,8.5394,126.7894,57.925,4.7,53 km ENE of Hinatuan Philippines -2023-12-11T11:21:23.114Z,8.4853,127.5228,10,4.3,125 km ENE of Barcelona Philippines -2023-12-11T11:56:29.953Z,8.5209,127.2056,10,4.5,93 km ENE of Barcelona Philippines -2023-12-11T11:57:46.418Z,8.4991,127.2645,10,4.6,98 km ENE of Barcelona Philippines -2023-12-11T13:09:18.385Z,9.4401,126.475,49.119,4.6,35 km ENE of Cortes Philippines -2023-12-11T13:20:42.146Z,3.0393,126.0377,111.915,4.4,203 km NNE of Bitung Indonesia -2023-12-11T13:52:31.268Z,9.1178,126.9961,10,4.8,79 km ENE of Aras-asan Philippines -2023-12-11T18:51:51.994Z,2.4633,126.7122,50.457,4.5,165 km WNW of Tobelo Indonesia -2023-12-11T21:48:03.871Z,8.5433,126.8214,55.178,4.6,56 km ENE of Hinatuan Philippines -2023-12-11T22:01:24.720Z,8.5607,126.918,57.08,4.5,67 km ENE of Hinatuan Philippines -2023-12-11T22:13:39.471Z,8.5702,126.7702,35,4.4,52 km ENE of Hinatuan Philippines -2023-12-11T23:22:53.252Z,8.5333,127.093,10,4.5,83 km ENE of Barcelona Philippines -2023-12-11T23:43:16.165Z,8.5062,127.106,10,5,83 km ENE of Barcelona Philippines -2023-12-12T01:48:05.737Z,8.6145,126.5809,43.959,4.5,37 km SE of Marihatag Philippines -2023-12-12T03:06:39.608Z,8.8298,126.803,35,5,54 km E of Aras-asan Philippines -2023-12-12T03:11:15.185Z,8.7099,126.769,35,4.9,53 km ESE of Marihatag Philippines -2023-12-12T06:22:14.116Z,9.6304,126.4748,40.289,4.6,42 km ESE of Union Philippines -2023-12-12T08:17:52.360Z,8.4165,126.5584,70.563,4.8,25 km E of Hinatuan Philippines -2023-12-12T12:04:31.528Z,4.9283,127.5308,10,4.5,218 km SE of Pondaguitan Philippines -2023-12-12T13:58:24.440Z,8.5843,126.6104,42.549,5.1,38 km NE of Hinatuan Philippines -2023-12-12T16:07:14.370Z,9.7129,126.4653,53.542,4.7,39 km E of Union Philippines -2023-12-12T16:18:53.544Z,8.4486,126.9093,35,4.7,61 km ENE of Barcelona Philippines -2023-12-12T16:20:59.500Z,8.5697,127.1574,10,4.7,91 km ENE of Barcelona Philippines -2023-12-12T16:24:17.233Z,8.552,127.1354,10,4.7,88 km ENE of Barcelona Philippines -2023-12-12T17:49:47.725Z,8.404,126.8793,36.009,4.6,56 km ENE of Barcelona Philippines -2023-12-12T18:10:28.267Z,8.4228,126.5154,50.12,4.4,20 km ENE of Hinatuan Philippines -2023-12-12T18:44:13.669Z,8.4449,126.5995,47.7,4.3,30 km ENE of Hinatuan Philippines -2023-12-12T20:09:20.643Z,8.4992,126.9133,30.217,4.3,64 km NE of Barcelona Philippines -2023-12-12T21:42:52.369Z,8.6012,126.3144,70.017,4.6,11 km NE of Gamut Philippines -2023-12-13T01:53:39.184Z,9.4553,126.8036,10,4.2,70 km ENE of Cortes Philippines -2023-12-13T04:43:33.222Z,5.563,126.9519,10,4.4,123 km SE of Pondaguitan Philippines -2023-12-13T05:41:37.019Z,8.5888,126.8476,60.105,4.2,61 km ENE of Hinatuan Philippines -2023-12-13T13:04:23.948Z,8.7002,126.3818,54.102,4.5,14 km SE of Marihatag Philippines -2023-12-13T13:36:07.848Z,8.4829,126.7213,57.236,4.5,44 km ENE of Hinatuan Philippines -2023-12-13T14:17:12.376Z,8.5659,127.0131,18.252,4.5,77 km ENE of Hinatuan Philippines -2023-12-13T16:15:55.153Z,8.3574,126.5649,83.181,4.3,25 km E of Hinatuan Philippines -2023-12-13T17:36:51.387Z,2.0165,124.1617,302.23,4.1,96 km NW of Manado Indonesia -2023-12-14T03:36:31.407Z,8.5788,127.3464,10,4.7,110 km ENE of Barcelona Philippines -2023-12-14T05:12:31.464Z,8.6424,127.3509,10,4.1,114 km ENE of Barcelona Philippines -2023-12-14T05:26:40.338Z,8.5298,127.1316,10,4.9,87 km ENE of Barcelona Philippines -2023-12-14T05:33:22.291Z,8.6398,127.1535,10,4.6,94 km ENE of Hinatuan Philippines -2023-12-14T05:44:17.912Z,8.5653,127.2353,10,4.3,99 km ENE of Barcelona Philippines -2023-12-14T05:55:16.798Z,8.5645,127.1447,10,4.6,90 km ENE of Barcelona Philippines -2023-12-14T06:05:15.358Z,8.6274,127.2367,10,4.3,102 km ENE of Barcelona Philippines -2023-12-14T07:53:39.872Z,8.4227,127.3162,10,4.4,101 km ENE of Barcelona Philippines -2023-12-14T09:19:05.322Z,2.1486,127.8388,103.046,4.1,50 km NNW of Tobelo Indonesia -2023-12-14T10:42:54.056Z,8.288,126.8111,68.016,4.7,43 km ENE of Barcelona Philippines -2023-12-14T10:48:21.599Z,8.6396,127.4289,10,4.4,121 km ENE of Barcelona Philippines -2023-12-14T10:49:34.022Z,8.4874,127.0771,10,4.2,79 km ENE of Barcelona Philippines -2023-12-14T11:39:12.655Z,8.3569,126.74,80.313,4.4,40 km ENE of Barcelona Philippines -2023-12-14T11:46:00.006Z,8.3472,126.7989,55.636,4.8,45 km ENE of Barcelona Philippines -2023-12-14T11:54:00.342Z,8.2634,126.8372,64.073,4.7,45 km ENE of Barcelona Philippines -2023-12-14T13:27:19.228Z,8.9749,126.623,36.736,4.8,35 km ENE of Aras-asan Philippines -2023-12-14T15:33:27.499Z,8.5631,127.4101,10,4.5,116 km ENE of Barcelona Philippines -2023-12-14T16:42:52.757Z,8.5399,126.9063,33.092,4.1,65 km ENE of Hinatuan Philippines -2023-12-14T22:05:05.034Z,9.3475,126.4703,38.457,4.6,31 km ENE of Cortes Philippines -2023-12-14T22:44:01.774Z,8.7494,127.3747,10,4.7,117 km E of Aras-asan Philippines -2023-12-14T23:03:34.370Z,8.5153,127.2134,10,4.3,94 km ENE of Barcelona Philippines -2023-12-14T23:10:27.827Z,8.6554,127.5069,10,4.4,130 km ENE of Barcelona Philippines -2023-12-14T23:30:24.133Z,8.7264,128.1334,10,4.5,197 km ENE of Barcelona Philippines -2023-12-15T04:30:32.259Z,8.865,127.3012,10,4.7,108 km E of Aras-asan Philippines -2023-12-15T04:41:24.038Z,1.6227,126.6154,48.662,4.5,125 km NW of Ternate Indonesia -2023-12-15T04:42:46.554Z,8.8131,127.2448,10,4.6,103 km E of Aras-asan Philippines -2023-12-15T13:43:03.716Z,8.4573,127.0973,10,4.7,80 km ENE of Barcelona Philippines -2023-12-15T14:49:37.478Z,8.5306,126.5542,48.932,4.2,29 km NE of Hinatuan Philippines -2023-12-15T15:40:21.601Z,8.8205,127.3538,10,4.7,114 km E of Aras-asan Philippines -2023-12-15T16:05:28.112Z,8.799,127.315,10,4.9,110 km E of Aras-asan Philippines -2023-12-15T16:35:10.364Z,8.8511,127.4226,10,4.9,122 km E of Aras-asan Philippines -2023-12-15T20:29:34.527Z,8.5677,126.6865,66.683,4.2,44 km ENE of Hinatuan Philippines -2023-12-15T21:32:14.046Z,8.0456,126.787,74.036,4.6,38 km E of Santa Maria Philippines -2023-12-15T22:28:31.343Z,8.9007,127.2847,10,4.4,107 km E of Aras-asan Philippines -2023-12-16T00:12:12.386Z,8.487,126.8695,39.986,4.5,60 km NE of Barcelona Philippines -2023-12-16T03:12:39.806Z,8.7882,127.4494,10,4.5,125 km E of Aras-asan Philippines -2023-12-16T05:36:09.404Z,8.3563,126.5701,57.9,4.2,26 km E of Hinatuan Philippines -2023-12-16T06:56:39.084Z,8.5473,126.841,18.648,4.3,59 km ENE of Hinatuan Philippines -2023-12-16T09:12:51.073Z,8.396,126.5152,72.284,4.6,20 km E of Hinatuan Philippines -2023-12-16T09:38:33.711Z,8.8299,126.6189,60.853,4.3,34 km E of Aras-asan Philippines -2023-12-16T11:43:33.215Z,8.9645,127.1634,10,4.8,94 km E of Aras-asan Philippines -2023-12-16T23:43:23.520Z,8.44,126.3825,75.074,4.5,9 km NE of Hinatuan Philippines -2023-12-17T04:45:44.726Z,4.2529,126.874,59.654,4.3,201 km SE of Sarangani Philippines -2023-12-17T08:18:57.525Z,8.1747,126.7162,77.764,4.4,31 km E of Barcelona Philippines -2023-12-17T08:23:05.008Z,8.2689,127.2262,10,4.1,88 km E of Barcelona Philippines -2023-12-17T10:58:14.395Z,7.9923,127.0487,59.141,4.9,64 km ENE of Kinablangan Philippines -2023-12-17T20:32:04.823Z,9.0473,126.9297,10,4.2,70 km ENE of Aras-asan Philippines -2023-12-17T20:33:09.689Z,8.8902,126.8702,26.334,4.6,61 km E of Aras-asan Philippines -2023-12-17T21:16:16.135Z,8.3856,126.8845,35.296,4.4,55 km ENE of Barcelona Philippines -2023-12-18T00:23:16.582Z,8.8997,126.6376,60.88,4.2,35 km E of Aras-asan Philippines -2023-12-18T01:37:21.559Z,8.0714,127.3644,10,4,99 km ENE of Kinablangan Philippines -2023-12-18T03:58:59.547Z,8.818,127.2945,10,4.6,108 km E of Aras-asan Philippines -2023-12-18T11:12:37.366Z,8.8629,127.3732,10,4.9,116 km E of Aras-asan Philippines -2023-12-18T12:12:57.368Z,9.3876,126.6691,38.559,4.6,53 km ENE of Cortes Philippines -2023-12-18T15:50:09.090Z,8.9741,126.7375,35,4.6,47 km ENE of Aras-asan Philippines -2023-12-18T16:28:01.843Z,8.6814,126.3387,81.638,4.4,14 km SSE of Marihatag Philippines -2023-12-19T06:51:13.487Z,9.2499,125.8414,10,4.8,11 km WSW of Parang Philippines -2023-12-19T07:16:15.126Z,8.2814,126.4332,10,4.9,10 km E of Tidman Philippines -2023-12-19T08:14:14.444Z,8.3958,126.7399,43.076,4.9,42 km NE of Barcelona Philippines -2023-12-19T08:37:41.284Z,8.6703,127.2214,10,4.3,102 km E of Marihatag Philippines -2023-12-19T12:21:16.156Z,3.3197,126.9701,79.322,4.2,210 km NNW of Tobelo Indonesia -2023-12-19T16:09:15.928Z,3.1737,127.395,34.644,4.4,173 km NNW of Tobelo Indonesia -2023-12-19T22:36:03.417Z,2.7011,128.2749,173.775,5.2,111 km NNE of Tobelo Indonesia -2023-12-19T23:35:40.304Z,3.2291,126.9565,50.145,4.5,203 km NW of Tobelo Indonesia -2023-12-20T01:45:01.277Z,8.6381,126.9927,10,4.2,78 km ENE of Hinatuan Philippines -2023-12-20T05:14:42.407Z,8.6648,127.3096,10,4.5,111 km ENE of Barcelona Philippines -2023-12-20T06:56:08.275Z,8.5636,127.3899,10,4.7,114 km ENE of Barcelona Philippines -2023-12-21T01:17:56.902Z,8.3519,127.1483,10,4.5,81 km ENE of Barcelona Philippines -2023-12-21T02:21:17.804Z,8.114,126.3279,92.947,4.1,11 km S of Bislig Philippines -2023-12-21T09:06:32.114Z,8.5832,127.4205,10,4.6,118 km ENE of Barcelona Philippines -2023-12-21T17:25:55.853Z,8.892,127.0558,10,4.6,81 km E of Aras-asan Philippines -2023-12-21T19:30:59.648Z,8.5716,127.3598,10,4.5,111 km ENE of Barcelona Philippines -2023-12-21T21:20:17.210Z,8.9034,127.1686,10,4.2,94 km E of Aras-asan Philippines -2023-12-22T11:01:52.091Z,8.4842,126.9097,35,4.2,63 km NE of Barcelona Philippines -2023-12-22T11:28:37.439Z,8.5479,127.1806,10,4.9,92 km ENE of Barcelona Philippines -2023-12-22T11:31:50.835Z,8.6207,126.5681,59.333,4.4,36 km SE of Marihatag Philippines -2023-12-22T11:33:59.813Z,2.6388,128.1978,62.909,5.1,102 km NNE of Tobelo Indonesia -2023-12-22T19:07:09.958Z,8.4298,126.9646,43.686,4.5,65 km ENE of Barcelona Philippines -2023-12-23T00:50:02.409Z,8.5673,126.1773,88.744,4.1,6 km WNW of Unidad Philippines -2023-12-23T11:18:24.445Z,8.8867,127.2548,10,4.3,103 km E of Aras-asan Philippines -2023-12-23T14:22:26.625Z,8.1936,126.7418,41.829,5.1,34 km E of Barcelona Philippines -2023-12-23T16:38:34.934Z,8.8625,126.8234,35,5.2,56 km E of Aras-asan Philippines -2023-12-23T21:54:30.198Z,6.5565,126.2938,134.173,4.4,20 km ENE of Nangan Philippines -2023-12-24T02:02:51.931Z,8.5627,126.8172,37.658,4.6,57 km ENE of Hinatuan Philippines -2023-12-24T02:20:44.377Z,8.2927,127.0403,57.029,5.3,68 km ENE of Barcelona Philippines -2023-12-24T02:28:06.868Z,8.1184,126.6391,71.685,4.6,23 km ESE of Barcelona Philippines -2023-12-24T03:02:06.352Z,8.5352,126.5233,51.097,5.1,27 km NE of Hinatuan Philippines -2023-12-24T08:51:57.825Z,8.4638,126.3708,64.772,4.7,10 km NNE of Hinatuan Philippines -2023-12-24T20:31:54.297Z,5.0747,126.0217,109.751,4.9,71 km ESE of Sarangani Philippines -2023-12-25T00:10:29.813Z,8.7511,127.3901,10,4.4,119 km E of Aras-asan Philippines -2023-12-25T03:21:05.599Z,9.2851,126.6053,35,4.2,45 km E of Cortes Philippines -2023-12-25T07:19:26.506Z,8.997,127.2369,10,4.5,102 km E of Aras-asan Philippines -2023-12-25T14:45:38.593Z,8.4007,126.3155,94.234,4.5,3 km NNW of Hinatuan Philippines -2023-12-25T22:16:27.881Z,8.5093,127.1231,10,4.5,85 km ENE of Barcelona Philippines -2023-12-26T03:42:51.774Z,8.5556,126.5972,89.342,4.1,35 km NE of Hinatuan Philippines -2023-12-26T06:42:37.211Z,4.0237,126.6495,47.429,4.7,201 km SE of Sarangani Philippines -2023-12-26T10:20:27.825Z,8.4863,126.9279,58.852,4.8,65 km ENE of Barcelona Philippines -2023-12-26T11:39:23.602Z,2,125.8117,9.696,4.2,98 km NE of Bitung Indonesia -2023-12-27T13:17:16.404Z,8.8827,126.2602,10,4.4,5 km W of Aras-asan Philippines -2023-12-27T15:31:19.124Z,8.8522,127.7701,10,4.3,160 km E of Aras-asan Philippines -2023-12-28T01:35:11.401Z,6.121,125.4786,35,5.2,12 km ENE of Suyan Philippines -2023-12-28T15:48:33.019Z,8.5588,126.4999,51.88,5,27 km NE of Hinatuan Philippines -2023-12-28T16:10:27.756Z,8.3648,127.1915,10,4.5,86 km ENE of Barcelona Philippines -2023-12-28T18:27:28.843Z,8.3548,126.2781,79.396,4.4,4 km N of Bigaan Philippines -2023-12-28T20:35:56.817Z,9.2977,126.8191,10,4.5,69 km E of Cortes Philippines -2023-12-29T10:29:32.017Z,6.7248,126.9004,68.61,4.6,61 km SE of Tarragona Philippines -2023-12-29T16:26:50.027Z,2.6211,121.8937,556.561,4.4,264 km NNW of Gorontalo Indonesia -2023-12-30T19:29:41.325Z,8.577,127.1346,10,4.3,89 km ENE of Barcelona Philippines -2023-12-31T00:23:43.953Z,8.9434,126.4849,60.612,4.4,20 km ENE of Aras-asan Philippines -2023-12-31T00:53:05.180Z,8.6464,126.7683,62.659,4.2,54 km ESE of Marihatag Philippines -2023-12-31T03:22:56.282Z,9.3051,126.2038,10,4.4,3 km NNE of Cortes Philippines -2023-12-31T08:48:30.638Z,8.7458,126.6424,40.766,4.2,38 km E of Marihatag Philippines -2023-12-31T10:19:09.179Z,3.9902,128.2428,10,4.6,251 km N of Tobelo Indonesia -2023-12-31T15:23:14.621Z,4.0416,128.3381,10,4.9,258 km N of Tobelo Indonesia -2023-12-31T17:00:47.300Z,9.6916,125.4144,10,4.6,7 km SW of Mati Philippines -2024-01-01T03:58:30.343Z,8.9147,127.4797,10,4.1,128 km E of Aras-asan Philippines -2024-01-01T14:52:07.932Z,4.7027,127.3061,53.468,4.2,218 km ESE of Sarangani Philippines -2024-01-02T02:49:31.315Z,8.8429,127.2178,10,4.6,99 km E of Aras-asan Philippines -2024-01-03T01:11:31.461Z,8.3515,126.5376,76.597,5,22 km E of Hinatuan Philippines -2024-01-03T04:38:54.197Z,5.3784,127.722,10,4.2,202 km ESE of Pondaguitan Philippines -2024-01-03T12:59:19.567Z,5.5484,125.0908,79.453,4.4,26 km SW of Burias Philippines -2024-01-03T22:44:18.408Z,4.8183,127.2989,45.929,4.4,211 km SE of Pondaguitan Philippines -2024-01-04T07:32:22.215Z,8.3869,126.5607,84.702,4.7,25 km E of Hinatuan Philippines -2024-01-05T00:45:34.465Z,8.7194,124.3214,9.973,4.3,16 km NW of Gitagum Philippines -2024-01-05T01:15:40.339Z,5.8063,127.5533,10,4.2,164 km ESE of Pondaguitan Philippines -2024-01-06T11:02:38.724Z,3.96,125.2602,93.13,4.2,161 km S of Sarangani Philippines -2024-01-06T12:38:10.094Z,8.9737,126.4849,43.529,4,21 km ENE of Aras-asan Philippines -2024-01-06T17:03:10.110Z,8.8884,127.07,10,4.5,83 km E of Aras-asan Philippines -2024-01-07T00:05:13.360Z,8.1321,126.9585,35,4.6,57 km E of Barcelona Philippines -2024-01-07T03:47:27.160Z,4.7913,127.8373,67.031,4.5,252 km SE of Pondaguitan Philippines -2024-01-07T12:02:03.500Z,6.2251,126.9851,215.461,4.1,90 km E of Pondaguitan Philippines -2024-01-08T13:30:57.048Z,8.4136,126.3334,78.64,4.4,4 km N of Hinatuan Philippines -2024-01-08T20:48:42.361Z,4.9225,126.1575,62.574,6.7,93 km SE of Sarangani Philippines -2024-01-08T21:04:39.509Z,4.7288,126.0407,88.58,4.2,98 km SE of Sarangani Philippines -2024-01-08T21:06:16.101Z,4.8164,126.0506,82.702,4.5,91 km SE of Sarangani Philippines -2024-01-08T22:30:35.744Z,4.6686,126.299,92.212,4.1,123 km SE of Sarangani Philippines -2024-01-08T22:49:59.374Z,4.9569,126.4601,62.882,4.2,121 km ESE of Sarangani Philippines -2024-01-09T01:08:41.354Z,4.7116,126.3124,97.409,4.5,121 km SE of Sarangani Philippines -2024-01-09T03:10:38.970Z,4.6255,126.205,96.647,4.1,118 km SE of Sarangani Philippines -2024-01-09T05:33:57.267Z,2.9203,125.5756,140.016,4.2,171 km NNE of Bitung Indonesia -2024-01-09T11:14:27.650Z,5.1326,125.3566,10,4.1,32 km SSW of Sarangani Philippines -2024-01-10T02:09:46.350Z,8.49,127.3718,10,4.1,109 km ENE of Barcelona Philippines -2024-01-10T20:08:26.753Z,8.7981,127.1469,10,4.4,92 km E of Aras-asan Philippines -2024-01-11T14:59:34.058Z,1.9746,124.0298,298.551,4.3,106 km WNW of Manado Indonesia -2024-01-12T02:05:04.693Z,4.8837,126.43,44.076,5,121 km ESE of Sarangani Philippines -2024-01-12T05:12:24.468Z,8.9392,126.6842,85.259,4.5,41 km E of Aras-asan Philippines -2024-01-12T09:47:59.241Z,8.4178,126.7185,36.541,4.7,42 km NE of Barcelona Philippines -2024-01-12T18:02:34.156Z,4.9202,126.4269,66.758,4.2,119 km ESE of Sarangani Philippines -2024-01-12T18:04:40.497Z,8.5025,126.7873,62.826,4.6,51 km ENE of Hinatuan Philippines -2024-01-12T19:52:14.391Z,5.5013,125.1256,80.959,4.6,26 km WSW of Balangonan Philippines -2024-01-13T22:07:42.282Z,1.4591,124.4982,243.669,4.2,37 km WNW of Tomohon Indonesia -2024-01-14T10:56:20.744Z,4.8037,126.1553,92.124,4.5,101 km SE of Sarangani Philippines -2024-01-15T11:31:25.572Z,8.4334,126.3668,78.052,4.8,7 km NNE of Hinatuan Philippines -2024-01-15T14:04:35.409Z,4.3428,125.7007,88.75,5,120 km SSE of Sarangani Philippines -2024-01-16T05:35:56.692Z,4.3024,128.4198,8.542,4.1,288 km N of Tobelo Indonesia -2024-01-16T17:57:13.510Z,1.5479,124.6017,223.021,4.2,28 km WNW of Manado Indonesia -2024-01-16T18:03:50.427Z,1.3347,126.2949,25.01,4.8,130 km E of Bitung Indonesia -2024-01-17T12:32:01.191Z,8.558,126.5225,39,5.6,29 km NE of Hinatuan Philippines -2024-01-17T12:42:22.519Z,2.6602,128.3711,201.593,4.2,110 km NNE of Tobelo Indonesia -2024-01-18T01:33:27.633Z,8.5946,127.3913,10,4.6,115 km ENE of Barcelona Philippines -2024-01-18T01:48:29.671Z,5.7416,127.0838,115.154,4.4,121 km SE of Pondaguitan Philippines -2024-01-18T02:41:38.888Z,8.556,127.2993,10,4.4,104 km ENE of Barcelona Philippines -2024-01-18T07:42:08.934Z,8.4092,126.4898,77.42,4.4,17 km ENE of Hinatuan Philippines -2024-01-18T12:47:37.381Z,6.0394,125.9644,73.685,4.6,29 km E of Lamitan Philippines -2024-01-18T15:57:34.167Z,8.5281,127.0422,35,4.7,78 km ENE of Barcelona Philippines -2024-01-19T09:30:24.776Z,6.7737,126.477,59.111,4.3,19 km ESE of Bobon Philippines -2024-01-19T15:38:23.913Z,8.715,126.1156,99.27,4.3,9 km NNE of Lianga Philippines -2024-01-19T17:23:27.976Z,9.2532,126.8296,10,4.4,69 km ENE of La Paz Philippines -2024-01-19T22:11:03.632Z,8.2971,126.9973,91.479,4.4,63 km ENE of Barcelona Philippines -2024-01-20T10:34:29.416Z,7.897,126.564,71.715,4.3,16 km SE of Santa Maria Philippines -2024-01-22T07:54:03.284Z,9.1339,126.104,54.306,4.6,6 km WNW of Buenavista Philippines -2024-01-22T12:02:20.287Z,5.3214,125.3615,191.376,4.6,14 km SW of Sarangani Philippines -2024-01-23T14:30:17.986Z,6.1179,125.9406,148.334,4.5,26 km E of Lamitan Philippines -2024-01-24T16:35:53.551Z,6.0303,126.0437,152.676,4.3,38 km E of Lamitan Philippines -2024-01-24T18:21:01.357Z,3.6836,123.4543,496.671,4.1,285 km SSW of Maitum Philippines -2024-01-24T22:10:46.958Z,2.165,124.7976,239.194,4.3,75 km N of Manado Indonesia -2024-01-25T07:04:19.443Z,2.3037,126.7166,64.606,4.2,157 km WNW of Tobelo Indonesia -2024-01-26T21:58:33.358Z,8.5173,127.2601,10,4.3,99 km ENE of Barcelona Philippines -2024-01-27T18:29:49.816Z,4.5353,125.7835,163.893,5,102 km SSE of Sarangani Philippines -2024-01-27T18:45:25.411Z,5.0869,125.5611,181.731,4.5,36 km SSE of Sarangani Philippines -2024-01-27T19:05:24.341Z,8.4057,126.8384,53.62,4.5,52 km ENE of Barcelona Philippines -2024-01-27T22:42:55.461Z,8.5022,126.2752,58.422,4.1,4 km SE of Gamut Philippines -2024-01-28T07:41:12.053Z,1.6726,123.4428,10,4.3,132 km NNE of Gorontalo Indonesia -2024-01-29T04:06:35.270Z,4.1141,125.8625,142.784,4.4,149 km SSE of Sarangani Philippines -2024-01-29T07:26:07.440Z,9.0984,125.8595,10,4.3,17 km NNW of San Miguel Philippines -2024-01-29T07:37:21.407Z,8.4722,127.445,10,5.1,116 km ENE of Barcelona Philippines -2024-01-29T12:06:49.068Z,6.4106,123.9539,543.409,4.2,10 km WSW of Sangay Philippines -2024-01-30T04:30:39.482Z,5.0774,127.1467,128.874,4.4,177 km SE of Pondaguitan Philippines -2024-01-30T06:47:46.247Z,8.8001,126.7652,68.689,4.6,50 km E of Aras-asan Philippines -2024-01-30T08:42:13.730Z,8.8598,127.3827,10,4.3,117 km E of Aras-asan Philippines -2024-01-30T16:12:57.956Z,8.3438,126.8234,36.943,4.3,47 km ENE of Barcelona Philippines -2024-01-30T18:05:27.752Z,1.8874,126.4795,41.461,5,157 km NW of Ternate Indonesia -2024-01-31T16:13:58.346Z,5.1901,126.9205,97.033,4.4,153 km SSE of Pondaguitan Philippines -2024-01-31T18:31:25.823Z,3.685,126.6546,52.416,4.4,231 km SE of Sarangani Philippines -2024-02-01T13:24:39.891Z,4.8476,126.0421,79.771,4.4,88 km SE of Sarangani Philippines -2024-02-01T21:35:39.226Z,8.1667,126.9026,62.522,5.1,51 km E of Barcelona Philippines -2024-02-02T07:12:18.846Z,8.1265,126.576,81.854,4.1,16 km ESE of Barcelona Philippines -2024-02-02T16:38:47.151Z,8.8994,126.3266,81.554,4.8,2 km NE of Aras-asan Philippines -2024-02-02T20:12:55.311Z,8.005,126.8007,84.118,4.3,39 km E of Santa Maria Philippines -2024-02-02T20:19:41.913Z,8.014,126.9641,60.425,4.5,57 km E of Santa Maria Philippines -2024-02-02T20:49:21.225Z,7.9432,126.8955,67.471,4.4,47 km NE of Kinablangan Philippines -2024-02-03T00:59:12.748Z,8.0581,126.4746,87.19,4.4,7 km ENE of Lingig Philippines -2024-02-03T03:51:46.967Z,7.6401,126.5091,95.103,4.3,7 km SW of Kinablangan Philippines -2024-02-03T05:06:01.971Z,8.7713,126.1891,84.87,4.4,6 km NNW of Salvacion Philippines -2024-02-03T06:01:51.904Z,8.8808,126.2261,83.194,4.3,8 km SW of Bacolod Philippines -2024-02-03T08:25:09.304Z,2.3788,126.9728,35.893,5,135 km WNW of Tobelo Indonesia -2024-02-03T18:43:53.008Z,6.6033,126.0614,71.748,4.5,5 km SSW of Sigaboy Philippines -2024-02-03T22:37:44.109Z,8.717,126.5011,70.09,4.4,24 km ESE of Marihatag Philippines -2024-02-04T01:33:29.926Z,6.4897,126.2608,88.15,4.4,15 km E of Nangan Philippines -2024-02-04T18:35:31.633Z,8.6311,127.0254,10,4.1,81 km ENE of Hinatuan Philippines -2024-02-05T06:39:27.190Z,8.7119,126.2322,82.182,4.3,2 km E of Salvacion Philippines -2024-02-05T07:51:52.088Z,2.3086,126.8276,37.124,4.6,146 km WNW of Tobelo Indonesia -2024-02-05T20:04:27.486Z,3.6866,126.8773,47.928,4.1,246 km SE of Sarangani Philippines -2024-02-06T07:00:50.213Z,3.5746,126.4109,53.067,4.1,227 km SSE of Sarangani Philippines -2024-02-06T13:17:25.762Z,5.6861,125.7994,99.036,4.3,31 km SE of Caburan Philippines -2024-02-06T14:37:56.409Z,8.9318,126.2817,52.252,5.1,0 km W of Bacolod Philippines -2024-02-06T15:09:55.514Z,4.5151,125.3336,185.57,4.3,99 km S of Sarangani Philippines -2024-02-07T00:09:44.138Z,8.0942,127.068,35,4.5,69 km E of Santa Maria Philippines -2024-02-07T02:44:57.369Z,8.8778,126.7356,65.508,5,46 km E of Aras-asan Philippines -2024-02-07T02:52:47.034Z,8.472,127.0065,10,4.6,71 km ENE of Barcelona Philippines -2024-02-07T02:57:04.102Z,8.7759,126.7802,80.855,5,53 km ESE of Aras-asan Philippines -2024-02-07T05:46:57.133Z,8.8809,126.8952,49.686,4.5,64 km E of Aras-asan Philippines -2024-02-07T19:49:38.050Z,6.5541,125.8869,76.5,4.6,23 km W of Magdug Philippines -2024-02-07T20:09:44.771Z,9.6258,126.3495,64.382,4.7,29 km ESE of Union Philippines -2024-02-08T01:26:34.266Z,9.5571,126.5322,107.136,4.4,48 km NE of Cortes Philippines -2024-02-09T04:19:38.004Z,7.8579,126.7665,83.392,4.5,30 km NE of Kinablangan Philippines -2024-02-09T08:54:23.155Z,5.8944,123.9888,530.677,4.3,41 km SSW of Palimbang Philippines -2024-02-10T03:22:06.930Z,8.6822,125.568,32,5.8,8 km W of Esperanza Philippines -2024-02-10T05:21:35.429Z,8.6931,125.6903,50.159,5.4,1 km NNW of Salvacion Philippines -2024-02-10T06:20:05.247Z,8.5045,126.4014,82.863,4.3,16 km NNE of Hinatuan Philippines -2024-02-10T17:03:30.752Z,5.7765,125.796,92.374,4.6,23 km SE of Caburan Philippines -2024-02-10T19:58:43.019Z,6.2576,127.0153,206.51,4.4,93 km E of Pondaguitan Philippines -2024-02-11T02:23:49.488Z,1.5307,126.5425,37.484,4.4,124 km NW of Ternate Indonesia -2024-02-11T04:08:24.095Z,1.3743,126.4512,48.089,4.3,122 km WNW of Ternate Indonesia -2024-02-11T13:16:30.409Z,5.719,127.0083,119.695,4.6,116 km SE of Pondaguitan Philippines -2024-02-12T02:03:06.309Z,9.7195,126.7002,35,5.3,64 km E of Union Philippines -2024-02-12T15:04:45.298Z,6.5779,125.9575,75.426,4.4,15 km WSW of Sigaboy Philippines -2024-02-12T15:31:23.843Z,9.9444,126.2058,45.473,4.7,14 km NE of Pilar Philippines -2024-02-12T20:45:39.566Z,2.9092,126.5762,66.521,4.5,206 km NW of Tobelo Indonesia -2024-02-13T00:34:07.134Z,5.0873,125.3865,10.431,4.9,35 km SSW of Sarangani Philippines -2024-02-13T07:31:15.837Z,3.9875,126.4623,45.373,4.5,191 km SE of Sarangani Philippines -2024-02-13T09:00:13.305Z,8.6127,126.6121,35,4.9,40 km NE of Hinatuan Philippines -2024-02-13T17:43:05.863Z,9.1558,126.2478,10,4.8,9 km ESE of Mabahin Philippines -2024-02-14T07:59:36.297Z,8.3934,126.5243,64.396,4.8,21 km E of Hinatuan Philippines -2024-02-14T18:41:57.283Z,9.0536,126.1183,10.802,4.5,7 km NW of Gamut Philippines -2024-02-15T18:53:02.261Z,8.7862,126.2842,36.963,4.6,2 km SSW of Marihatag Philippines -2024-02-15T22:45:22.227Z,6.9967,125.7293,535.905,4.1,8 km SSE of Samal Philippines -2024-02-15T23:58:08.467Z,8.7804,126.399,59.487,4.5,11 km ESE of Marihatag Philippines -2024-02-16T06:05:38.490Z,3.1816,125.7753,149.364,4.5,205 km NNE of Bitung Indonesia -2024-02-16T19:41:03.601Z,8.6886,127.1451,10,4.5,94 km E of Marihatag Philippines -2024-02-17T03:06:44.340Z,2.5023,128.2584,75.17,4.5,89 km NNE of Tobelo Indonesia -2024-02-17T10:47:00.612Z,3.7031,124.6945,310.007,4,206 km SSW of Sarangani Philippines -2024-02-18T11:10:05.686Z,7.1704,126.8375,89.798,4.4,31 km ESE of Santiago Philippines -2024-02-18T11:48:09.745Z,9.3253,125.818,126.612,4.5,12 km W of Panikian Philippines -2024-02-18T22:54:41.399Z,9.8946,126.0799,56.414,4.4,3 km NNW of Pilar Philippines -2024-02-21T15:22:20.751Z,8.5335,126.4698,63.817,4.4,23 km NE of Hinatuan Philippines -2024-02-22T02:57:15.033Z,2.6628,128.1951,10,4,105 km NNE of Tobelo Indonesia -2024-02-22T11:43:16.478Z,9.0625,126.225,72.826,4.9,3 km ESE of Tandag Philippines -2024-02-22T22:25:29.881Z,1.7993,127.2808,113.25,4.1,81 km W of Tobelo Indonesia -2024-02-23T19:47:14.436Z,1.4886,126.3142,40.999,4.5,132 km E of Bitung Indonesia -2024-02-23T23:51:16.015Z,1.5608,126.3822,43.096,4.6,140 km E of Bitung Indonesia -2024-02-24T00:51:21.349Z,3.9671,128.6605,10,5.2,257 km NNE of Tobelo Indonesia -2024-02-24T04:19:52.958Z,4.0394,126.0238,135.986,4.7,163 km SSE of Sarangani Philippines -2024-02-24T10:19:32.411Z,8.3208,126.5814,83.089,4.3,24 km NE of Barcelona Philippines -2024-02-25T10:19:59.321Z,1.667,127.1734,127.998,4.5,93 km W of Tobelo Indonesia -2024-02-25T22:10:01.806Z,4.9425,127.5944,56.023,4.3,221 km SE of Pondaguitan Philippines -2024-02-26T03:40:53.276Z,9.0238,126.2736,76.07,4.9,4 km NNE of La Paz Philippines -2024-02-26T07:52:50.525Z,8.4709,126.8878,35,4.4,60 km NE of Barcelona Philippines -2024-02-26T17:04:47.515Z,5.6658,126.8807,112.36,4.2,109 km SE of Pondaguitan Philippines -2024-02-27T00:08:27.383Z,2.0183,127.4499,91.522,4,70 km WNW of Tobelo Indonesia -2024-02-27T03:47:30.549Z,2.8288,127.0281,35,4.4,163 km NW of Tobelo Indonesia -2024-02-27T08:00:33.792Z,8.8378,126.6748,62.644,4.4,40 km E of Aras-asan Philippines -2024-02-27T08:22:50.939Z,8.7383,126.2421,51.437,4.6,4 km NE of Salvacion Philippines -2024-02-27T16:58:08.280Z,8.8738,127.1078,10,4.3,87 km E of Aras-asan Philippines -2024-02-28T06:48:47.023Z,8.0002,126.9703,48.651,4.5,57 km NE of Kinablangan Philippines -2024-02-28T08:49:54.851Z,8.4864,126.5074,68.173,4.1,22 km ENE of Hinatuan Philippines -2024-02-28T19:58:19.948Z,8.9165,127.0005,10,4.3,75 km E of Aras-asan Philippines -2024-02-29T00:10:12.174Z,8.8465,126.8221,14.569,5.1,56 km E of Aras-asan Philippines -2024-02-29T00:23:58.202Z,8.8593,126.7364,18,5.4,46 km E of Aras-asan Philippines -2024-02-29T01:05:37.808Z,8.8143,126.2835,73.607,4.8,1 km WNW of Marihatag Philippines -2024-02-29T01:40:37.220Z,8.827,126.9349,10,4.9,68 km E of Aras-asan Philippines -2024-02-29T17:18:50.560Z,8.784,126.9381,35,4.6,69 km E of Aras-asan Philippines -2024-02-29T17:25:02.762Z,8.8045,126.8252,35,4.8,57 km E of Aras-asan Philippines -2024-03-01T00:55:48.332Z,8.8363,126.8581,35,4.5,60 km E of Aras-asan Philippines -2024-03-01T06:47:40.869Z,8.7206,126.7062,62.33,4.4,46 km ESE of Marihatag Philippines -2024-03-01T09:29:02.868Z,8.8616,126.74,42.374,5.4,47 km E of Aras-asan Philippines -2024-03-01T17:35:43.580Z,9.0558,126.6771,45.162,4.6,44 km ENE of Aras-asan Philippines -2024-03-01T23:18:01.514Z,3.3286,126.8216,76.22,4.4,220 km NW of Tobelo Indonesia -2024-03-02T05:09:48.606Z,8.8568,126.9154,10,4.6,66 km E of Aras-asan Philippines -2024-03-02T09:06:55.720Z,7.3398,124.7203,12.919,4.3,8 km WSW of Liliongan Philippines -2024-03-03T18:51:08.452Z,8.667,126.362,71.008,4.5,16 km SSE of Marihatag Philippines -2024-03-04T13:59:07.173Z,7.0711,123.6493,34.812,4.6,48 km SSE of Malim Philippines -2024-03-04T21:15:20.817Z,5.9286,125.6375,188.887,4.7,1 km NNW of Caburan Philippines -2024-03-05T01:44:41.566Z,2.6737,128.1082,169.63,4.3,105 km N of Tobelo Indonesia -2024-03-05T04:43:56.958Z,5.4074,126.624,101.438,4.4,116 km SSE of Pondaguitan Philippines -2024-03-06T07:29:24.614Z,9.0033,125.7451,101.662,4.4,10 km E of Anticala Philippines -2024-03-06T09:19:14.302Z,8.7924,126.8512,54.134,4.4,60 km E of Aras-asan Philippines -2024-03-06T16:54:45.879Z,8.6433,126.9002,35,4.4,68 km ESE of Marihatag Philippines -2024-03-06T20:08:10.178Z,8.6784,126.3063,81.679,4.8,11 km ESE of Salvacion Philippines -2024-03-06T20:19:43.489Z,7.9178,126.9181,42.632,5,47 km ENE of Kinablangan Philippines -2024-03-06T21:39:28.512Z,7.8963,127.1014,13.012,5,64 km ENE of Kinablangan Philippines -2024-03-07T03:30:13.827Z,5.1726,125.9703,111.162,4.7,61 km ESE of Sarangani Philippines -2024-03-07T10:14:58.381Z,6.362,125.9614,77.804,4.5,20 km W of Surup Philippines -2024-03-08T04:50:37.432Z,9.3486,125.4136,10,4.4,11 km W of Jabonga Philippines -2024-03-08T09:11:45.110Z,5.8168,126.9407,115,6,103 km SE of Pondaguitan Philippines -2024-03-10T17:07:50.300Z,4.6623,127.5402,37.298,4.1,241 km SE of Pondaguitan Philippines -2024-03-12T00:15:28.688Z,4.2812,126.1981,131.918,4.1,148 km SSE of Sarangani Philippines -2024-03-12T04:21:38.254Z,5.3658,126.1959,122.374,4.4,81 km E of Sarangani Philippines -2024-03-13T13:16:35.743Z,8.3696,126.4952,63.776,4.2,17 km E of Hinatuan Philippines -2024-03-13T15:25:51.506Z,6.4958,125.7493,151.622,4.6,17 km ENE of Malita Philippines -2024-03-13T17:40:25.311Z,9.08,126.1078,59.826,4.5,6 km WSW of Buenavista Philippines -2024-03-13T18:29:32.505Z,3.584,126.6472,49.974,4.5,240 km SSE of Sarangani Philippines -2024-03-14T22:52:29.577Z,8.5774,126.9006,57.107,4.7,66 km ENE of Hinatuan Philippines -2024-03-14T23:31:31.496Z,8.9576,127.2282,10,4.8,101 km E of Aras-asan Philippines -2024-03-15T23:52:10.532Z,3.2463,126.8012,35.522,4.6,215 km NW of Tobelo Indonesia -2024-03-16T12:28:22.165Z,9.4707,126.0399,66.958,4.5,14 km NE of Carrascal Philippines -2024-03-16T13:07:16.190Z,9.0106,127.7603,10,4.5,159 km E of Aras-asan Philippines -2024-03-17T06:15:34.251Z,6.4888,126.0652,35,4.4,4 km SW of Luzon Philippines -2024-03-17T19:31:13.908Z,4.8928,126.0525,95.074,4.5,86 km SE of Sarangani Philippines -2024-03-17T20:12:23.090Z,8.163,127.3514,10,4.3,101 km E of Barcelona Philippines -2024-03-17T22:02:14.877Z,8.5808,126.9207,48.799,4.4,68 km ENE of Hinatuan Philippines -2024-03-17T23:41:41.218Z,4.9072,127.3776,125.895,4.7,208 km SE of Pondaguitan Philippines -2024-03-18T06:41:18.667Z,4.0034,125.402,139.799,4.4,154 km S of Sarangani Philippines -2024-03-18T09:35:15.074Z,1.5419,126.259,35.211,4.9,126 km E of Bitung Indonesia -2024-03-19T07:54:36.719Z,3.0782,124.0462,324.014,4.4,197 km NNW of Manado Indonesia -2024-03-22T00:19:14.621Z,3.6607,126.246,71.962,4.5,211 km SSE of Sarangani Philippines -2024-03-23T01:02:51.144Z,2.3063,126.8597,53.646,4.4,142 km WNW of Tobelo Indonesia -2024-03-23T01:53:49.604Z,6.0647,123.8885,553.226,4,36 km WSW of Palimbang Philippines -2024-03-23T15:00:48.659Z,8.3234,126.5372,74.005,4.2,21 km NNE of Barcelona Philippines -2024-03-23T18:23:07.048Z,4.9421,127.2584,94.097,4.3,197 km SE of Pondaguitan Philippines -2024-03-23T18:47:00.268Z,8.4411,127.1244,10,4.4,82 km ENE of Barcelona Philippines -2024-03-24T06:22:24.947Z,8.7566,126.3895,59.621,5.2,11 km ESE of Marihatag Philippines -2024-03-24T10:52:06.281Z,1.8478,127.3019,100.71,4.2,79 km W of Tobelo Indonesia -2024-03-25T21:20:35.256Z,8.5867,127.1755,10,4.2,94 km ENE of Barcelona Philippines -2024-03-26T07:41:55.831Z,9.0204,126.3494,33.211,4.5,10 km ENE of La Paz Philippines -2024-03-26T19:22:02.774Z,2.2452,126.6421,43.564,4.6,162 km WNW of Tobelo Indonesia -2024-03-27T03:53:06.269Z,9.9368,125.7165,81.668,4.4,5 km ENE of Cagdianao Philippines -2024-03-27T17:35:45.235Z,3.8954,126.8914,35.075,4.6,230 km SE of Sarangani Philippines -2024-03-28T00:38:55.839Z,8.9764,126.2569,77.029,3.9,1 km SW of La Paz Philippines -2024-03-29T18:06:56.060Z,2.0792,126.9937,105.135,4.8,119 km WNW of Tobelo Indonesia -2024-03-30T01:13:14.562Z,2.4604,126.7767,44.161,4.7,159 km WNW of Tobelo Indonesia -2024-03-30T13:43:10.482Z,8.9096,126.6492,51.85,4.5,37 km E of Aras-asan Philippines -2024-03-30T19:22:56.487Z,2.271,122.8537,460.002,4.3,193 km N of Gorontalo Indonesia -2024-03-31T15:57:19.323Z,8.7719,126.2523,61.716,4.3,6 km SW of Marihatag Philippines -2024-03-31T21:16:43.754Z,8.3237,126.5627,52.108,4.9,23 km NE of Barcelona Philippines -2024-04-01T18:20:38.934Z,5.6918,126.5299,55.452,4.2,83 km SSE of Pondaguitan Philippines -2024-04-02T12:28:49.968Z,4.349,125.7692,167.056,4.3,121 km SSE of Sarangani Philippines -2024-04-03T03:09:51.192Z,1.364,126.3393,54.183,4.4,132 km WNW of Ternate Indonesia -2024-04-03T04:51:22.460Z,8.5051,126.6773,67.064,5.1,40 km ENE of Hinatuan Philippines -2024-04-03T05:45:13.195Z,8.4565,126.6965,70.39,4.9,40 km ENE of Hinatuan Philippines -2024-04-03T12:14:24.688Z,8.4477,126.5834,67.524,4.4,28 km ENE of Hinatuan Philippines -2024-04-03T16:10:16.612Z,2.8594,125.6614,127.604,4,167 km NNE of Bitung Indonesia -2024-04-04T15:10:48.324Z,5.6722,125.4013,77.408,4.6,5 km NW of Nuing Philippines -2024-04-04T18:29:27.742Z,1.6071,126.3817,60.52,4.6,140 km E of Bitung Indonesia -2024-04-05T02:13:44.240Z,2.1582,126.8223,68.648,4.2,140 km WNW of Tobelo Indonesia -2024-04-05T21:21:37.356Z,5.8432,126.7761,132.77,4.4,87 km SE of Pondaguitan Philippines -2024-04-06T09:32:53.318Z,5.4354,126.3625,109.123,4.5,96 km SE of Caburan Philippines -2024-04-06T17:29:56.022Z,1.349,126.4307,41.785,4.4,122 km WNW of Ternate Indonesia -2024-04-07T17:23:52.465Z,1.4395,126.4669,46.996,4.2,124 km NW of Ternate Indonesia -2024-04-07T22:44:17.207Z,5.7612,126.5577,100.521,4.1,78 km SSE of Pondaguitan Philippines -2024-04-07T23:07:11.057Z,3.2146,127.1975,55.936,4.3,187 km NNW of Tobelo Indonesia -2024-04-08T01:02:56.714Z,4.4316,127.6413,69.786,4.5,264 km ESE of Sarangani Philippines -2024-04-08T04:06:57.861Z,3.914,123.0208,523.183,4,265 km SSE of Tabiauan Philippines -2024-04-08T15:56:22.005Z,8.7738,126.4739,70.245,4.6,19 km E of Marihatag Philippines -2024-04-09T04:19:57.858Z,3.6003,126.8034,35,4.3,246 km NNW of Tobelo Indonesia -2024-04-09T09:47:59.810Z,2.6982,127.0624,22,6.4,150 km NW of Tobelo Indonesia -2024-04-09T10:25:40.288Z,8.1692,126.3589,90.902,4.3,6 km SE of Bislig Philippines -2024-04-09T10:37:29.825Z,2.6721,127.0456,62.237,4.4,149 km NW of Tobelo Indonesia -2024-04-09T12:51:06.083Z,8.5001,126.9504,37.645,4.4,68 km ENE of Barcelona Philippines -2024-04-09T17:15:50.168Z,2.6693,127.1736,58.325,4.2,139 km NW of Tobelo Indonesia -2024-04-09T17:58:16.169Z,2.6953,127.1553,57.2,4.5,143 km NW of Tobelo Indonesia -2024-04-10T06:30:44.303Z,2.5669,127.0058,68.101,4.1,145 km NW of Tobelo Indonesia -2024-04-10T14:06:07.479Z,4.4196,126.8765,55.843,4.6,190 km SE of Sarangani Philippines -2024-04-11T02:07:50.073Z,2.7711,127.3046,50.168,4.4,139 km NW of Tobelo Indonesia -2024-04-11T03:33:57.207Z,7.6449,126.1637,10,5.2,5 km NE of Bantacan Philippines -2024-04-11T04:56:23.465Z,2.8434,125.3849,180.886,4.1,156 km NNE of Laikit Laikit II (Dimembe) Indonesia -2024-04-11T13:06:18.826Z,2.6875,127.3579,63.918,4.6,128 km NW of Tobelo Indonesia -2024-04-11T17:34:06.488Z,3.6958,126.7665,45.378,5,237 km SE of Sarangani Philippines -2024-04-12T00:02:24.682Z,8.5262,122.9545,10,4.5,11 km NW of Ponot Philippines -2024-04-12T18:38:45.738Z,4.8148,125.7359,152.613,4.1,71 km SSE of Sarangani Philippines -2024-04-13T06:26:35.031Z,2.226,126.6873,38.856,5.2,157 km WNW of Tobelo Indonesia -2024-04-13T16:01:32.448Z,1.36,126.2914,25.758,4.2,129 km E of Bitung Indonesia -2024-04-13T16:40:55.412Z,2.1044,126.6086,39.341,5,161 km WNW of Tobelo Indonesia -2024-04-13T17:07:55.636Z,2.1003,126.6927,47.568,4.2,152 km WNW of Tobelo Indonesia -2024-04-13T17:46:59.392Z,2.4779,126.821,38.551,4.5,156 km WNW of Tobelo Indonesia -2024-04-13T18:34:54.206Z,8.6018,126.3316,67.688,4.3,12 km NE of Gamut Philippines -2024-04-14T12:37:24.032Z,7.4806,126.4516,8.147,4.3,9 km SSW of Batiano Philippines -2024-04-15T08:17:38.027Z,8.3827,126.8801,35,4.3,54 km ENE of Barcelona Philippines -2024-04-15T09:34:32.104Z,8.3867,127.1621,10,4.3,84 km ENE of Barcelona Philippines -2024-04-15T11:11:40.956Z,5.4929,123.8981,506.363,4.2,85 km SSW of Palimbang Philippines -2024-04-16T00:53:39.211Z,9.8282,126.1635,21.442,4.5,8 km ESE of Pilar Philippines -2024-04-16T01:44:26.845Z,9.0484,126.9732,10,4.1,74 km ENE of Aras-asan Philippines -2024-04-16T03:14:02.801Z,4.9534,127.9876,10,4.3,253 km SE of Pondaguitan Philippines -2024-04-16T16:06:15.536Z,9.6873,126.2537,51.666,5,17 km ESE of Union Philippines -2024-04-17T20:34:36.649Z,1.8221,124.3862,277.579,4.1,63 km NW of Manado Indonesia -2024-04-17T21:15:56.548Z,2.8385,125.7219,145.692,4.4,168 km NNE of Bitung Indonesia -2024-04-19T06:02:04.721Z,1.5234,124.7945,208.64,4.2,7 km NW of Manado Indonesia -2024-04-19T08:52:21.945Z,2.6343,122.5496,486.772,4,238 km NNW of Gorontalo Indonesia -2024-04-19T11:05:00.062Z,8.0631,126.7402,79.657,4.4,33 km ENE of Santa Maria Philippines -2024-04-19T18:40:01.086Z,8.4178,127.1695,12.198,4.4,85 km ENE of Barcelona Philippines -2024-04-20T00:39:01.038Z,4.8238,126.8118,56.351,4.4,162 km ESE of Sarangani Philippines -2024-04-20T02:22:11.229Z,7.8564,127.0993,10,4.9,63 km ENE of Kinablangan Philippines -2024-04-20T05:39:17.677Z,7.9161,126.5453,91.271,4.4,13 km SE of Santa Maria Philippines -2024-04-21T09:31:16.668Z,4.1216,122.9749,550.61,4.4,242 km SSE of Tabiauan Philippines -2024-04-22T10:32:50.566Z,4.1059,123.1329,10,4.6,253 km SSE of Tabiauan Philippines -2024-04-22T23:21:13.049Z,8.3119,126.5268,83.526,4.5,19 km NNE of Barcelona Philippines -2024-04-24T01:59:19.578Z,7.8198,127.1766,10,4.4,70 km ENE of Kinablangan Philippines -2024-04-24T02:04:15.428Z,7.7683,127.1559,10,4.7,67 km E of Kinablangan Philippines -2024-04-24T09:24:03.687Z,4.4207,126.4853,79.144,4.3,156 km SE of Sarangani Philippines -2024-04-24T21:17:46.665Z,5.3675,123.7772,518.086,4.1,103 km SSW of Palimbang Philippines -2024-04-25T04:20:15.583Z,7.7252,127.1182,10,5,62 km E of Kinablangan Philippines -2024-04-25T15:37:39.563Z,7.4391,127.2066,10,4.4,68 km E of Baculin Philippines -2024-04-27T11:34:18.293Z,8.5391,126.4283,66.531,4.7,20 km E of Gamut Philippines -2024-04-27T17:58:08.296Z,8.4684,126.7783,45.231,4.7,50 km ENE of Hinatuan Philippines -2024-04-27T20:59:34.939Z,8.6468,126.5394,49.453,4.9,31 km ESE of Marihatag Philippines -2024-04-27T22:05:26.698Z,8.6422,126.6681,35.337,4.6,44 km ESE of Marihatag Philippines -2024-04-27T23:35:53.985Z,3.5986,126.5911,55.518,4.4,235 km SSE of Sarangani Philippines -2024-04-28T05:37:19.796Z,4.1589,125.4725,97.454,4.4,137 km S of Sarangani Philippines -2024-04-29T03:03:48.945Z,1.8969,126.5866,47.798,4.3,151 km NW of Ternate Indonesia -2024-04-29T05:59:12.432Z,6.1757,126.7,9.56,4.4,61 km ESE of Pondaguitan Philippines -2024-04-29T14:11:19.731Z,8.9312,126.1518,73.279,4.5,8 km SSW of Gamut Philippines -2024-04-29T15:59:22.825Z,8.6702,126.6202,41.917,4.9,38 km ESE of Marihatag Philippines -2024-04-29T22:24:17.950Z,5.1549,125.9794,84.307,4.4,63 km ESE of Sarangani Philippines -2024-04-29T22:40:59.454Z,2.6502,127.17,43.321,4.4,138 km NW of Tobelo Indonesia -2024-04-30T09:20:44.342Z,5.3935,126.587,10,4.2,116 km SSE of Pondaguitan Philippines -2024-04-30T13:52:40.877Z,2.2997,126.767,20.048,5.3,151 km WNW of Tobelo Indonesia -2024-04-30T20:03:47.201Z,5.8512,126.7129,121.746,4.4,81 km SE of Pondaguitan Philippines -2024-05-01T16:37:34.036Z,6.2664,127.4059,10,4.2,136 km E of Pondaguitan Philippines -2024-05-03T04:38:02.660Z,9.0328,122.4978,10,4.6,44 km SSW of Basay Philippines -2024-05-05T02:12:13.160Z,6.4617,126.6389,124.989,4.5,52 km ENE of Pondaguitan Philippines -2024-05-06T21:18:41.336Z,5.7336,127.6058,8.324,4.4,172 km ESE of Pondaguitan Philippines -2024-05-07T13:12:56.228Z,5.729,124.6392,50.41,5,25 km SSW of Maan Philippines -2024-05-07T23:38:00.593Z,1.817,126.5267,35.375,4.3,148 km NW of Ternate Indonesia -2024-05-10T08:08:54.440Z,8.7467,126.152,88.163,4.5,7 km WNW of Salvacion Philippines -2024-05-10T18:39:45.160Z,8.439,126.6372,65.54,4.2,34 km ENE of Hinatuan Philippines -2024-05-11T10:55:33.408Z,4.5869,127.4919,52.357,4.1,242 km ESE of Sarangani Philippines -2024-05-13T10:28:35.871Z,6.7651,127.0523,10,4.5,73 km ESE of San Ignacio Philippines -2024-05-13T18:26:10.528Z,7.5865,126.1583,15.302,4.6,3 km ESE of Bantacan Philippines -2024-05-14T13:39:53.079Z,5.9883,126.1987,104.686,4.4,41 km S of Pondaguitan Philippines -2024-05-15T12:30:45.284Z,1.5432,126.4869,57.572,4,129 km NW of Ternate Indonesia -2024-05-17T10:02:10.116Z,8.1812,126.8784,51.393,4.3,49 km E of Barcelona Philippines -2024-05-17T14:12:13.690Z,4.4918,126.1998,111.785,4.2,129 km SE of Sarangani Philippines -2024-05-17T21:45:33.541Z,6.21,126.6856,118.059,4.5,58 km ESE of Pondaguitan Philippines -2024-05-17T22:03:10.310Z,3.9942,127.8881,60.352,4,250 km N of Tobelo Indonesia -2024-05-18T06:26:09.996Z,3.838,122.9135,524.072,5.5,267 km SSE of Tabiauan Philippines -2024-05-19T00:25:43.968Z,8.8405,122.1066,10,4.4,85 km SW of Basay Philippines -2024-05-19T21:17:12.130Z,9.443,126.0766,64.604,4.6,16 km ENE of Carrascal Philippines -2024-05-20T16:34:21.043Z,4.583,126.8745,71.239,4.5,180 km ESE of Sarangani Philippines -2024-05-22T09:32:25.303Z,4.0411,122.5183,590.844,4.4,230 km SSE of Tabiauan Philippines -2024-05-22T17:20:05.159Z,4.8241,126.2396,73.129,4.4,107 km SE of Sarangani Philippines -2024-05-23T04:56:56.804Z,8.3533,126.3014,76.237,4.4,4 km WNW of Loyola Philippines -2024-05-23T08:29:19.710Z,3.0518,127.0092,48.176,4.2,183 km NW of Tobelo Indonesia -2024-05-25T02:20:08.454Z,2.3711,126.7089,49.516,4.8,161 km WNW of Tobelo Indonesia -2024-05-26T03:59:18.675Z,6.137,125.8919,147.769,4.7,21 km E of Lapuan Philippines -2024-05-26T11:58:26.152Z,8.319,127.5872,10,4.4,128 km E of Barcelona Philippines -2024-05-27T11:40:12.841Z,7.4463,124.7104,13.577,4.4,5 km SSW of Banisilan Philippines -2024-05-28T01:58:53.167Z,8.9347,126.2732,65.872,4.5,1 km W of Bacolod Philippines -2024-05-28T13:14:36.659Z,5.4185,126.4129,10.542,4.6,101 km ESE of Caburan Philippines -2024-05-29T12:00:25.519Z,4.4842,126.1685,139.589,4.3,128 km SE of Sarangani Philippines -2024-05-29T23:46:41.908Z,8.7819,127.4633,10,4.6,127 km E of Aras-asan Philippines -2024-05-30T10:26:04.174Z,2.3975,126.8001,55.132,4.2,153 km WNW of Tobelo Indonesia -2024-05-30T10:28:50.237Z,1.4367,126.4923,63.986,4.2,122 km NW of Ternate Indonesia -2024-05-30T15:05:49.267Z,5.2032,126.1199,10,4.6,76 km ESE of Sarangani Philippines -2024-05-30T20:52:56.899Z,5.9341,126.799,151.233,4.4,83 km SE of Pondaguitan Philippines -2024-05-30T22:54:37.665Z,5.6407,126.0584,105.577,4.8,55 km ESE of Caburan Philippines -2024-05-31T06:11:14.319Z,9.7536,125.5743,154.045,4,3 km ENE of Capalayan Philippines -2024-05-31T20:21:16.838Z,7.7702,126.9889,13.673,4.4,49 km E of Kinablangan Philippines -2024-06-01T04:17:06.969Z,8.9136,126.2895,65.653,4.7,1 km S of Bacolod Philippines -2024-06-01T14:13:15.535Z,2.4354,128.1828,135.767,4.8,80 km NNE of Tobelo Indonesia -2024-06-02T09:22:03.680Z,2.0429,127.8149,233.222,4.8,40 km NNW of Tobelo Indonesia -2024-06-02T19:42:20.038Z,7.3397,126.7927,62.882,4.2,24 km ENE of Santiago Philippines -2024-06-03T05:46:31.292Z,8.8054,122.1035,10,4.9,89 km SW of Basay Philippines -2024-06-03T12:12:37.027Z,8.9337,126.6285,57.406,4.6,35 km E of Aras-asan Philippines -2024-06-04T01:33:39.697Z,2.5,125.6697,150.886,4.3,131 km NNE of Bitung Indonesia -2024-06-04T11:57:32.154Z,5.7362,126.2053,100.766,4.2,64 km ESE of Mangili Philippines -2024-06-06T03:43:18.005Z,1.6896,127.1997,106.392,4.4,90 km W of Tobelo Indonesia -2024-06-06T15:11:26.981Z,4.8079,126.1105,78.534,4.5,97 km SE of Sarangani Philippines -2024-06-07T06:17:54.382Z,4.8208,125.3795,9.732,4.2,65 km S of Sarangani Philippines -2024-06-08T13:07:19.775Z,6.6732,123.7476,10.703,4.8,31 km W of Taguisa Philippines -2024-06-08T16:09:21.821Z,8.7576,126.8774,45.081,4.4,63 km ESE of Aras-asan Philippines -2024-06-08T23:34:41.717Z,6.2619,127.4001,10,4.4,135 km E of Pondaguitan Philippines -2024-06-09T01:04:45.532Z,4.8573,126.0864,96.521,4.7,91 km SE of Sarangani Philippines -2024-06-10T01:44:28.227Z,4.0851,126.746,35,4.3,203 km SE of Sarangani Philippines -2024-06-10T15:18:19.893Z,5.1238,126.6921,10.219,4.4,139 km ESE of Sarangani Philippines -2024-06-12T07:26:41.388Z,1.7687,127.1357,95.885,4.4,97 km W of Tobelo Indonesia -2024-06-12T14:07:52.435Z,8.8144,126.2809,68.978,4.7,1 km WNW of Marihatag Philippines -2024-06-12T17:01:20.867Z,4.3762,126.4544,39,5.8,158 km SE of Sarangani Philippines -2024-06-13T19:44:01.649Z,5.5951,125.9799,111.276,4.5,51 km SE of Caburan Philippines -2024-06-13T21:45:27.830Z,8.919,126.4202,61.539,4.8,12 km ENE of Aras-asan Philippines -2024-06-14T06:18:26.460Z,9.1691,126.5783,50.48,4.2,40 km ENE of La Paz Philippines -2024-06-14T11:09:14.443Z,5.2248,125.9101,93.94,4.4,53 km ESE of Sarangani Philippines -2024-06-15T00:03:57.780Z,1.2889,126.1095,35.076,4.3,110 km E of Bitung Indonesia -2024-06-15T13:08:14.671Z,3.1837,127.2673,45.789,5.6,180 km NNW of Tobelo Indonesia -2024-06-16T01:53:11.671Z,3.9485,126.2188,102.995,4.1,181 km SSE of Sarangani Philippines -2024-06-16T11:49:04.817Z,4.8219,125.2875,58.813,4.9,67 km SSW of Sarangani Philippines -2024-06-21T10:14:46.671Z,3.0451,127.9033,137.343,4.3,146 km N of Tobelo Indonesia -2024-06-21T19:03:07.615Z,8.4795,126.9757,46.522,4.7,69 km ENE of Barcelona Philippines -2024-06-22T16:09:23.654Z,5.1831,125.9944,10.544,4.5,63 km ESE of Sarangani Philippines -2024-06-22T22:11:35.718Z,6.6853,126.5631,71.358,4.6,32 km SE of Bobon Philippines -2024-06-22T23:03:39.708Z,1.5785,126.8184,117.495,4.4,107 km NW of Ternate Indonesia -2024-06-23T04:50:53.444Z,4.7844,127.7135,79.482,4.9,243 km SE of Pondaguitan Philippines -2024-06-23T13:32:37.013Z,8.7823,126.7582,50.136,4.6,50 km ESE of Aras-asan Philippines -2024-06-24T22:35:23.669Z,8.4727,126.9757,35,4.2,68 km ENE of Barcelona Philippines -2024-06-25T17:06:00.031Z,3.2592,128.253,76.927,4,171 km N of Tobelo Indonesia -2024-06-26T07:18:07.171Z,5.6364,125.6322,202.604,4.5,17 km ESE of Kalbay Philippines -2024-06-28T04:02:08.057Z,8.7107,126.6149,57.121,4.3,36 km ESE of Marihatag Philippines -2024-06-28T10:03:10.713Z,5.8251,125.2739,10,4.3,5 km WSW of Kiupo Philippines -2024-06-29T04:03:32.777Z,1.7579,127.2932,115.817,4.1,79 km W of Tobelo Indonesia -2024-06-29T14:22:00.348Z,6.7968,127.1617,62.155,4.4,82 km ESE of San Ignacio Philippines -2024-06-29T21:22:08.127Z,9.8509,124.0745,605.151,4.3,7 km SSW of Sagbayan Philippines -2024-06-30T06:24:05.224Z,3.4627,124.4523,320.257,4,223 km NNW of Manado Indonesia -2024-06-30T15:28:34.577Z,2.9365,125.7646,9.984,4.5,179 km NNE of Bitung Indonesia -2024-06-30T16:06:37.072Z,6.0254,123.8748,530.12,4.4,40 km WSW of Palimbang Philippines -2024-07-02T03:01:06.571Z,3.1535,127.0405,35,4.4,190 km NW of Tobelo Indonesia -2024-07-02T03:30:48.206Z,3.1263,126.7697,55.714,4.5,207 km NW of Tobelo Indonesia -2024-07-02T16:49:08.240Z,9.013,126.9102,10,4.4,67 km ENE of Aras-asan Philippines -2024-07-03T23:00:33.177Z,2.5454,127.049,62.056,4.6,139 km NW of Tobelo Indonesia -2024-07-04T07:30:20.222Z,9.0729,126.6158,63.42,4.5,39 km ENE of Bacolod Philippines -2024-07-06T16:58:09.635Z,7.6849,126.9864,8.121,4.3,48 km E of Kinablangan Philippines -2024-07-06T17:25:59.084Z,7.6717,127.0054,53.37,5,50 km ENE of Baganga Philippines -2024-07-06T22:41:12.407Z,7.8816,127.3068,10,4.5,86 km ENE of Kinablangan Philippines -2024-07-07T08:49:46.585Z,6.49,127.6588,10,4.1,146 km ESE of San Ignacio Philippines -2024-07-08T00:50:48.285Z,5.0443,127.0282,110.365,4.1,173 km SSE of Pondaguitan Philippines -2024-07-08T08:19:04.027Z,9.0638,126.7309,41.865,4.8,50 km ENE of Aras-asan Philippines -2024-07-08T13:06:50.510Z,8.4039,126.3019,90.812,4.4,4 km NW of Hinatuan Philippines -2024-07-11T02:13:18.585Z,6.0838,123.1503,639.503,7.1,106 km WSW of Sangay Philippines -2024-07-11T12:30:56.256Z,4.1353,124.2515,372.415,4.3,194 km SW of Sarangani Philippines -2024-07-11T17:43:40.543Z,4.5156,126.6038,51.444,4.1,160 km SE of Sarangani Philippines -2024-07-12T00:39:31.120Z,8.0036,126.72,68.611,4.3,30 km E of Santa Maria Philippines -2024-07-12T10:34:00.855Z,1.2947,126.3177,10,5,131 km WNW of Ternate Indonesia -2024-07-13T16:12:51.061Z,4.8663,126.2235,82.893,4.5,103 km SE of Sarangani Philippines -2024-07-14T07:27:45.821Z,3.8812,128.1604,10.16,4.9,238 km N of Tobelo Indonesia -2024-07-14T10:01:00.924Z,8.4574,126.143,11.549,4.6,3 km W of Tagbina Philippines -2024-07-14T12:03:33.466Z,5.6272,126.8542,103.496,4.5,110 km SE of Pondaguitan Philippines -2024-07-15T13:40:17.691Z,2.4755,121.9454,547.658,4.2,247 km NNW of Gorontalo Indonesia -2024-07-16T07:00:38.940Z,2.041,126.6234,42.337,4.2,158 km WNW of Tobelo Indonesia -2024-07-17T19:17:41.344Z,4.2527,124.6162,23.714,4.6,158 km SW of Sarangani Philippines -2024-07-18T05:39:55.732Z,8.6935,126.6749,50.368,5.1,43 km ESE of Marihatag Philippines -2024-07-18T08:29:26.216Z,8.7511,126.6641,62.387,4.6,40 km E of Marihatag Philippines -2024-07-18T09:37:55.061Z,8.7084,126.5248,81.194,4.3,27 km ESE of Marihatag Philippines -2024-07-19T06:14:53.259Z,1.3134,126.2062,49.828,4.2,120 km E of Bitung Indonesia -2024-07-19T06:19:31.120Z,6.8522,123.7377,10.194,4.9,31 km W of Gadung Philippines -2024-07-21T05:23:08.728Z,8.9269,126.1739,57.625,4.6,8 km S of Gamut Philippines -2024-07-22T07:43:45.839Z,7.7878,126.0357,10,4.5,3 km SW of Monkayo Philippines -2024-07-24T09:34:17.980Z,2.8779,126.597,63.095,4.1,202 km NW of Tobelo Indonesia -2024-07-24T10:36:04.380Z,1.5141,126.4066,35.427,4.3,135 km NW of Ternate Indonesia -2024-07-26T09:25:51.014Z,1.7545,127.2578,120.389,4.5,83 km W of Tobelo Indonesia -2024-07-27T17:01:47.869Z,2.6348,128.4464,228.397,4.8,111 km NNE of Tobelo Indonesia -2024-07-29T11:27:55.434Z,4.7254,126.2064,98.487,4.5,111 km SE of Sarangani Philippines -2024-07-30T08:34:45.906Z,3.4429,125.6197,133.027,4.2,217 km S of Sarangani Philippines -2024-07-30T10:36:20.541Z,6.2936,126.1023,60.782,4.6,11 km SW of Pondaguitan Philippines -2024-07-31T15:51:14.457Z,9.6401,125.7504,133.946,4.5,7 km NE of Gigaquit Philippines -2024-08-01T20:47:48.058Z,5.154,125.941,90.502,4.4,59 km ESE of Sarangani Philippines -2024-08-01T23:36:25.360Z,8.9276,127.076,10,4.6,84 km E of Aras-asan Philippines -2024-08-02T22:23:02.111Z,8.1851,126.6161,32,6.8,20 km E of Barcelona Philippines -2024-08-02T22:30:11.724Z,8.0167,126.7652,35,4.9,35 km E of Santa Maria Philippines -2024-08-02T22:31:15.069Z,8.1185,126.7173,76.98,5.3,31 km E of Barcelona Philippines -2024-08-02T22:33:46.919Z,8.2553,126.7699,52.726,4.8,38 km ENE of Barcelona Philippines -2024-08-02T22:34:34.519Z,8.1649,126.5697,35,4.7,14 km E of Barcelona Philippines -2024-08-02T22:35:00.076Z,8.1064,126.5758,89.012,4.5,16 km ESE of Barcelona Philippines -2024-08-02T22:35:23.239Z,7.9754,126.815,66.346,4.8,40 km E of Santa Maria Philippines -2024-08-02T22:36:20.415Z,7.9719,126.906,45.789,5,50 km NE of Kinablangan Philippines -2024-08-02T22:38:00.870Z,8.2441,126.5585,35,4.7,16 km NE of Barcelona Philippines -2024-08-02T22:41:06.546Z,8.0711,126.7866,35,4.6,38 km ENE of Santa Maria Philippines -2024-08-02T22:46:00.969Z,7.9579,126.8316,64.391,4.9,42 km NE of Kinablangan Philippines -2024-08-02T22:48:59.508Z,7.9348,126.8058,80.118,4.5,38 km NE of Kinablangan Philippines -2024-08-02T22:52:34.985Z,8.0963,126.6017,80.143,4.4,19 km ESE of Barcelona Philippines -2024-08-02T23:05:30.515Z,8.0924,126.7477,69.495,4.4,35 km ENE of Santa Maria Philippines -2024-08-02T23:36:09.043Z,8.1311,126.9613,35,4.9,58 km E of Barcelona Philippines -2024-08-02T23:44:36.254Z,7.85,126.6313,84.196,4.4,19 km NE of Taytayan Philippines -2024-08-03T00:01:19.446Z,8.163,126.4337,67.38,4.3,0 km N of Barcelona Philippines -2024-08-03T00:10:01.913Z,8.1251,126.5914,69.593,4.1,17 km ESE of Barcelona Philippines -2024-08-03T00:23:54.015Z,8.13,126.6745,66.957,4.3,26 km E of Barcelona Philippines -2024-08-03T00:36:07.790Z,8.1657,126.5168,79.774,4.4,9 km E of Barcelona Philippines -2024-08-03T01:17:11.318Z,7.9811,126.614,86.673,4.2,18 km E of Santa Maria Philippines -2024-08-03T01:37:19.320Z,8.0629,126.7996,53.839,5.2,39 km ENE of Santa Maria Philippines -2024-08-03T01:38:21.598Z,8.0161,126.7417,83.676,5.3,32 km E of Santa Maria Philippines -2024-08-03T02:01:50.115Z,8.0651,126.4295,87.497,4.4,3 km NNE of Lingig Philippines -2024-08-03T02:14:44.735Z,7.9849,126.7193,74.614,4.5,30 km E of Santa Maria Philippines -2024-08-03T02:19:18.554Z,7.908,126.411,88.165,4.4,6 km NE of Boston Philippines -2024-08-03T02:35:28.868Z,8.1043,126.5939,88.637,4.4,18 km ESE of Barcelona Philippines -2024-08-03T02:48:29.415Z,8.2403,126.7573,63.109,4.2,36 km ENE of Barcelona Philippines -2024-08-03T03:00:54.784Z,8.1066,126.9397,55.331,4.2,55 km ENE of Santa Maria Philippines -2024-08-03T03:15:29.722Z,7.9924,127.0844,60.785,4.4,67 km ENE of Kinablangan Philippines -2024-08-03T03:17:12.438Z,8.0157,126.8748,35,4.9,47 km E of Santa Maria Philippines -2024-08-03T04:20:26.565Z,8.2038,126.8354,15,6.3,44 km E of Barcelona Philippines -2024-08-03T06:37:10.448Z,8.0845,126.5734,87.944,4.2,17 km ESE of Barcelona Philippines -2024-08-03T06:59:19.643Z,7.9909,127.0002,50.3,4.4,59 km ENE of Kinablangan Philippines -2024-08-03T08:20:38.129Z,7.747,126.9322,82.933,4.1,42 km E of Kinablangan Philippines -2024-08-03T09:12:55.526Z,8.2539,126.7694,63.535,4.9,38 km ENE of Barcelona Philippines -2024-08-03T09:13:35.731Z,8.1907,126.4752,20.791,4.7,5 km NE of Barcelona Philippines -2024-08-03T09:37:45.524Z,7.8698,126.7103,76.808,4.5,26 km NE of Kinablangan Philippines -2024-08-03T14:54:05.595Z,8.0064,126.8899,65.175,4.4,49 km E of Santa Maria Philippines -2024-08-03T15:19:04.628Z,9.653,125.6569,10,4.3,5 km NNE of Bacuag Philippines -2024-08-03T17:12:58.807Z,8.1442,126.6265,70.21,4.5,21 km E of Barcelona Philippines -2024-08-03T22:06:10.252Z,8.0859,126.7208,73.999,4.5,32 km ENE of Santa Maria Philippines -2024-08-03T23:16:58.402Z,4.5826,125.7217,180.366,4.1,95 km SSE of Sarangani Philippines -2024-08-04T00:17:25.182Z,8.1164,126.6662,80.01,4.2,26 km E of Barcelona Philippines -2024-08-04T05:26:09.298Z,7.9976,126.7069,82.636,4.4,28 km E of Santa Maria Philippines -2024-08-04T07:30:09.679Z,8.069,126.6599,80.601,4.2,25 km ENE of Santa Maria Philippines -2024-08-04T08:46:42.838Z,7,126.5931,170.862,4.5,16 km ESE of Jovellar Philippines -2024-08-04T14:04:23.437Z,8.0548,126.9786,59.759,4.4,59 km E of Santa Maria Philippines -2024-08-04T19:12:07.373Z,7.8944,126.7343,66.421,4.6,30 km NE of Kinablangan Philippines -2024-08-05T02:35:18.268Z,2.9571,128.6569,35,4.3,153 km NNE of Tobelo Indonesia -2024-08-05T05:22:00.672Z,8.2686,126.744,69.36,4.4,36 km ENE of Barcelona Philippines -2024-08-05T14:25:23.055Z,7.2731,126.4696,165.283,4.4,9 km SW of San Pedro Philippines -2024-08-05T22:05:41.717Z,8.1131,126.7759,52.875,4,38 km E of Barcelona Philippines -2024-08-06T05:39:25.804Z,7.756,127.1076,36.61,5.2,62 km E of Kinablangan Philippines -2024-08-06T16:51:43.100Z,7.7625,127.0474,49.214,4.1,55 km E of Kinablangan Philippines -2024-08-08T10:41:07.109Z,5.9812,127.4292,10.186,4.3,144 km ESE of Pondaguitan Philippines -2024-08-08T18:47:51.133Z,1.6697,127.2138,125.096,4.5,88 km W of Tobelo Indonesia -2024-08-09T15:21:20.533Z,3.3547,127.0295,42.22,4.6,210 km NNW of Tobelo Indonesia -2024-08-09T19:58:50.995Z,8.0207,126.8533,63.505,4.4,45 km E of Santa Maria Philippines -2024-08-10T05:14:37.230Z,5.5837,126.6302,96.37,4.8,99 km SSE of Pondaguitan Philippines -2024-08-10T14:08:49.951Z,5.9784,125.8662,156.374,4.2,20 km E of Mangili Philippines -2024-08-10T20:11:15.947Z,7.6264,126.66,105.545,4,12 km ENE of Baganga Philippines -2024-08-11T00:52:33.373Z,8.3067,127.0254,45.493,4.3,67 km ENE of Barcelona Philippines -2024-08-12T07:52:46.266Z,8.1749,127.1779,10,4.4,81 km E of Barcelona Philippines -2024-08-12T11:26:39.043Z,8.0517,126.9443,33.799,4.4,55 km E of Santa Maria Philippines -2024-08-12T11:36:13.742Z,2.3936,126.52,54.11,5,181 km WNW of Tobelo Indonesia -2024-08-12T11:54:53.829Z,2.3704,126.7132,51.744,4.5,160 km WNW of Tobelo Indonesia -2024-08-13T09:15:14.794Z,2.5241,128.2111,186.672,4.2,90 km NNE of Tobelo Indonesia -2024-08-16T02:31:01.524Z,10.0656,125.5935,105.344,4.4,12 km N of Dinagat Philippines -2024-08-16T05:48:28.426Z,4.9416,125.6433,186.825,4.5,54 km SSE of Sarangani Philippines -2024-08-16T08:58:16.353Z,3.031,126.3031,70.14,4.2,219 km NE of Bitung Indonesia -2024-08-17T00:41:49.428Z,3.4055,126.1077,62.484,4.4,232 km SSE of Sarangani Philippines -2024-08-18T09:15:22.024Z,8.7102,126.2257,83.117,4.5,1 km E of Salvacion Philippines -2024-08-18T18:44:00.301Z,2.2156,126.6791,45.114,4.5,157 km WNW of Tobelo Indonesia -2024-08-19T15:32:42.884Z,8.0294,127.1567,10,4.9,76 km ENE of Kinablangan Philippines -2024-08-19T19:42:22.565Z,8.1799,127.0848,10,5,71 km E of Barcelona Philippines -2024-08-19T19:46:04.858Z,8.0712,126.9617,35,4.5,57 km E of Santa Maria Philippines -2024-08-19T21:59:20.107Z,8.1178,127.3,10,4.5,95 km ENE of Kinablangan Philippines -2024-08-20T03:45:55.233Z,8.3243,127.1909,10,4.4,85 km ENE of Barcelona Philippines -2024-08-20T04:14:08.922Z,4.9642,126.0954,10,4.2,85 km SE of Sarangani Philippines -2024-08-20T09:50:41.241Z,8.9874,126.514,53.132,4.5,24 km ENE of Aras-asan Philippines -2024-08-21T01:34:54.352Z,8.3037,127.1244,10,4.4,77 km ENE of Barcelona Philippines -2024-08-21T03:28:19.787Z,8.0507,127.1233,10,4.6,74 km ENE of Kinablangan Philippines -2024-08-21T08:46:31.848Z,5.9434,125.6205,91.89,4.4,3 km NW of Caburan Philippines -2024-08-21T13:27:37.653Z,3.3507,122.6226,547.674,4.5,Celebes Sea -2024-08-22T01:47:18.545Z,1.863,127.1797,129.556,4.2,93 km W of Tobelo Indonesia -2024-08-22T17:21:13.923Z,5.8928,126.8308,127.71,4.9,88 km SE of Pondaguitan Philippines -2024-08-22T17:44:22.011Z,1.9766,127.1135,70.787,4.8,103 km WNW of Tobelo Indonesia -2024-08-22T21:14:08.039Z,2.9615,127.8613,120.539,4,137 km N of Tobelo Indonesia -2024-08-23T16:17:11.955Z,2.7256,128.2093,56.348,4.4,112 km NNE of Tobelo Indonesia -2024-08-23T23:13:45.844Z,2.0681,127.0431,99.241,4.4,113 km WNW of Tobelo Indonesia -2024-08-24T01:32:36.695Z,2.2566,127.6121,128.291,4.2,73 km NW of Tobelo Indonesia -2024-08-25T11:45:53.697Z,1.7365,127.3103,121.754,4.3,77 km W of Tobelo Indonesia -2024-08-26T17:22:28.361Z,6.1449,125.8773,141.802,4.6,19 km E of Lapuan Philippines -2024-08-26T22:27:48.108Z,5.6829,127.0321,138.84,4.5,120 km SE of Pondaguitan Philippines -2024-08-28T06:41:40.648Z,3.2099,123.0735,532.424,4.2,274 km NW of Manado Indonesia -2024-08-28T15:47:44.635Z,5.4625,124.9552,65.666,4.8,43 km SW of Burias Philippines -2024-08-28T22:16:44.996Z,1.8425,126.6118,34.477,4.1,144 km NW of Ternate Indonesia -2024-08-29T13:47:02.410Z,5.0183,127.0891,93.758,4.4,179 km SE of Pondaguitan Philippines -2024-08-30T06:15:50.083Z,6.0817,125.9601,135.055,4.6,28 km E of Lamitan Philippines -2024-08-30T11:04:50.594Z,8.9279,126.0393,145.911,4.2,11 km ESE of San Miguel Philippines -2024-08-31T08:10:30.090Z,7.7758,124.6273,9.032,4.5,10 km W of Kimanuit Philippines -2024-08-31T14:53:11.204Z,2.067,126.7591,56.796,4.2,144 km WNW of Tobelo Indonesia -2024-09-01T00:49:26.519Z,4.8108,125.3428,10,5,66 km SSW of Sarangani Philippines -2024-09-01T07:59:07.956Z,4.7148,125.1867,10,4.4,82 km SSW of Sarangani Philippines -2024-09-01T19:59:25.436Z,3.7986,126.5018,46.933,5,211 km SSE of Sarangani Philippines -2024-09-03T08:46:17.594Z,5.5662,126.795,61.074,4.5,111 km SE of Pondaguitan Philippines -2024-09-03T13:36:41.728Z,5.3427,126.3604,11.086,4.8,99 km E of Sarangani Philippines -2024-09-05T07:08:17.464Z,1.6713,127.1522,123.08,4.5,95 km W of Tobelo Indonesia -2024-09-05T16:59:16.564Z,4.4666,128.0586,60.998,4.5,295 km SE of Pondaguitan Philippines -2024-09-06T07:39:46.828Z,5.6967,125.0407,80.511,4.7,17 km S of Malbang Philippines -2024-09-06T18:10:38.678Z,7.035,127.101,10,4.6,64 km ESE of Santiago Philippines -2024-09-07T00:02:38.771Z,3.2356,128.1094,61.256,4.6,167 km N of Tobelo Indonesia -2024-09-07T01:46:28.454Z,8.6541,126.0956,101.984,4.3,2 km N of Lianga Philippines -2024-09-08T10:06:26.264Z,8.9706,125.262,72.126,4.7,3 km S of Tagcatong Philippines -2024-09-08T11:03:20.129Z,5.7845,126.286,113.935,4.6,64 km S of Pondaguitan Philippines -2024-09-09T21:01:29.242Z,4.3404,126.7337,48.5,5.1,183 km SE of Sarangani Philippines -2024-09-09T21:38:05.165Z,4.3925,126.8557,56.974,4.2,190 km SE of Sarangani Philippines -2024-09-10T04:05:54.152Z,2.7546,127.2019,66.238,4.2,144 km NW of Tobelo Indonesia -2024-09-10T20:05:31.014Z,5.3282,125.0906,37.891,4.4,39 km SW of Balangonan Philippines -2024-09-11T01:33:32.962Z,2.9216,126.6408,74.804,4.3,201 km NW of Tobelo Indonesia -2024-09-11T03:08:34.887Z,8.8888,126.3152,102.638,4.3,0 km ENE of Aras-asan Philippines -2024-09-13T06:33:47.161Z,4.6972,126.5809,60.965,5,146 km ESE of Sarangani Philippines -2024-09-13T13:13:35.043Z,8.527,127.355,10,4.5,109 km ENE of Barcelona Philippines -2024-09-13T17:31:24.246Z,4.9515,126.7812,67.573,4.7,154 km ESE of Sarangani Philippines -2024-09-15T15:40:05.790Z,5.6607,126.611,51.961,4.2,91 km SSE of Pondaguitan Philippines -2024-09-15T19:06:31.265Z,3.7702,127.9792,60.483,4.2,225 km N of Tobelo Indonesia -2024-09-17T04:13:31.880Z,9.6633,126.6752,35,4.9,62 km E of Union Philippines -2024-09-17T12:09:47.235Z,8.7365,126.3825,40.922,4.6,12 km SE of Marihatag Philippines -2024-09-17T13:43:29.923Z,2.1782,122.8069,435.257,4.1,183 km N of Gorontalo Indonesia -2024-09-18T05:48:06.083Z,4.6273,127.677,146.985,4.4,253 km SE of Pondaguitan Philippines -2024-09-19T04:08:19.090Z,2.3226,122.7685,463.624,4.5,200 km N of Gorontalo Indonesia -2024-09-22T08:22:46.051Z,5.7103,126.977,134.705,4.4,114 km SE of Pondaguitan Philippines -2024-09-23T01:48:36.469Z,5.622,124.4254,35,4.1,46 km SSW of Kiamba Philippines -2024-09-23T19:39:07.284Z,7.9612,127.2578,10,4.2,83 km ENE of Kinablangan Philippines -2024-09-25T12:42:34.978Z,4.2516,127.7292,107.566,4.4,280 km N of Tobelo Indonesia -2024-09-25T16:17:53.939Z,3.4933,126.9349,47.295,4.6,228 km NNW of Tobelo Indonesia -2024-09-25T16:24:05.762Z,3.2728,126.8458,56.51,4.3,214 km NW of Tobelo Indonesia -2024-09-26T23:27:42.432Z,8.2939,127.4205,10,4.7,109 km E of Barcelona Philippines -2024-09-27T15:08:40.721Z,7.8256,126.4834,101.27,4.3,5 km NE of Cateel Philippines -2024-09-28T17:09:55.092Z,3.0962,122.424,536.792,4.5,291 km NNW of Gorontalo Indonesia -2024-09-28T18:28:16.304Z,3.2134,125.6383,174.056,4.6,204 km NNE of Bitung Indonesia -2024-09-29T02:46:52.203Z,8.1245,126.3208,99.798,4.3,10 km S of Bislig Philippines -2024-09-29T11:09:16.673Z,2.4975,126.838,46.013,5.2,155 km WNW of Tobelo Indonesia -2024-09-30T10:04:47.645Z,8.4388,126.5264,94.586,4.5,22 km ENE of Hinatuan Philippines -2024-10-01T17:27:01.877Z,9.4152,126.4891,66.406,4.5,36 km ENE of Cortes Philippines -2024-10-02T01:20:37.017Z,9.0263,126.9253,10,4.9,69 km ENE of Aras-asan Philippines -2024-10-02T11:12:16.948Z,8.1964,127.1662,10,4.4,80 km E of Barcelona Philippines -2024-10-02T20:44:00.077Z,5.7471,125.9934,101.321,4.5,43 km ESE of Caburan Philippines -2024-10-03T20:05:13.564Z,5.7495,126.1932,114.378,4.7,62 km ESE of Mangili Philippines -2024-10-03T20:53:44.177Z,2.7785,128.1817,164.01,4.7,117 km N of Tobelo Indonesia -2024-10-04T05:25:05.040Z,6.0633,126.6528,167.759,4,62 km ESE of Pondaguitan Philippines -2024-10-04T10:09:59.089Z,3.6069,126.7249,52.739,4.7,243 km SE of Sarangani Philippines -2024-10-04T21:21:12.003Z,4.8966,126.1748,98.963,4.7,96 km SE of Sarangani Philippines -2024-10-05T15:52:57.195Z,9.9181,126.2352,10,4.5,16 km ENE of Pilar Philippines -2024-10-05T20:22:56.840Z,6.7884,125.6784,49.329,4.4,18 km SW of San Remigio Philippines -2024-10-05T22:54:42.600Z,3.0007,127.9729,134.742,4.2,140 km N of Tobelo Indonesia -2024-10-07T00:43:44.782Z,2.4979,127.239,72.79,4.4,120 km NW of Tobelo Indonesia -2024-10-07T01:00:07.713Z,6.666,125.8758,10,4.5,21 km W of Sigaboy Philippines -2024-10-07T20:20:26.287Z,7.4416,126.2046,10,4.9,19 km SSE of Bantacan Philippines -2024-10-08T01:28:29.229Z,2.3199,126.9463,35,4.7,135 km WNW of Tobelo Indonesia -2024-10-09T09:42:53.680Z,7.9461,127.436,10,4.6,101 km ENE of Kinablangan Philippines -2024-10-10T07:22:46.274Z,1.8848,127.163,107.508,4.9,95 km W of Tobelo Indonesia -2024-10-11T00:16:02.539Z,5.8112,126.5377,101.61,4.9,72 km SSE of Pondaguitan Philippines -2024-10-11T01:38:08.294Z,5.28,125.9454,114.291,4.3,55 km ESE of Sarangani Philippines -2024-10-11T23:08:15.619Z,8.2113,127.0808,9.325,4.4,71 km E of Barcelona Philippines -2024-10-14T13:21:30.186Z,9.0233,126.2233,69.663,4.6,0 km WNW of Tago Philippines -2024-10-14T21:24:46.990Z,1.5247,126.4429,70.483,4.3,132 km NW of Ternate Indonesia -2024-10-14T23:42:51.698Z,8.7548,127.1148,9.724,4.5,89 km E of Aras-asan Philippines -2024-10-17T09:58:04.340Z,5.9769,125.9122,147.032,4.6,25 km E of Mangili Philippines -2024-10-17T15:33:00.777Z,4.9697,125.1377,222.192,4.3,60 km SW of Sarangani Philippines -2024-10-20T04:44:42.987Z,3.5772,127.8858,79.634,4.8,204 km N of Tobelo Indonesia -2024-10-20T09:38:42.962Z,1.649,126.3258,10,4.1,135 km E of Bitung Indonesia -2024-10-21T14:47:10.459Z,1.4331,125.8901,60.697,4.3,84 km E of Bitung Indonesia -2024-10-22T03:01:45.834Z,3.5573,126.7022,48.716,4.3,246 km SE of Sarangani Philippines -2024-10-22T18:14:17.547Z,5.6923,126.344,10,4.5,76 km SSE of Pondaguitan Philippines -2024-10-22T18:42:22.027Z,2.3225,128.1061,10,4.3,66 km N of Tobelo Indonesia -2024-10-23T23:00:32.342Z,3.5106,126.9012,35,4.2,232 km NNW of Tobelo Indonesia -2024-10-24T14:33:36.639Z,3.1075,128.2465,85.428,4.6,154 km N of Tobelo Indonesia -2024-10-27T15:56:25.415Z,5.7151,126.5679,32.832,4.6,83 km SSE of Pondaguitan Philippines -2024-10-28T05:40:29.430Z,1.8348,126.855,108.244,4.7,128 km W of Tobelo Indonesia -2024-10-30T13:03:53.914Z,6.4558,126.8095,113.356,4.6,70 km SE of Bobon Philippines -2024-10-30T23:47:23.326Z,4.6729,127.508,111.067,4.6,237 km SE of Pondaguitan Philippines -2024-11-01T23:00:03.112Z,7.401,126.1641,10,4.6,21 km ESE of San Mariano Philippines -2024-11-03T23:07:56.901Z,6.2382,126.9508,188.447,4.1,86 km E of Pondaguitan Philippines -2024-11-04T08:32:26.724Z,8.0352,126.3317,10,4.9,8 km W of Lingig Philippines -2024-11-06T21:57:54.374Z,3.2665,126.8783,48.346,4.4,211 km NW of Tobelo Indonesia -2024-11-07T02:47:08.046Z,5.1817,123.4747,563.334,4.2,138 km SW of Palimbang Philippines -2024-11-09T11:05:43.616Z,8.4852,126.1655,82.178,4.2,3 km N of Tagbina Philippines -2024-11-09T12:34:37.280Z,2.0794,127.6077,75.768,4.3,59 km NW of Tobelo Indonesia -2024-11-10T09:40:15.170Z,1.6566,127.1273,79.108,4.4,98 km W of Tobelo Indonesia -2024-11-11T16:10:23.733Z,5.388,125.9683,143.704,4.4,55 km E of Sarangani Philippines -2024-11-12T01:23:24.997Z,5.6605,126.5877,10,4.5,89 km SSE of Pondaguitan Philippines -2024-11-12T12:51:48.650Z,2.3148,126.8501,72.837,4.4,144 km WNW of Tobelo Indonesia -2024-11-13T18:11:43.490Z,6.5513,125.7675,168.55,4.3,22 km NE of Malita Philippines -2024-11-15T15:27:42.001Z,4.8002,125.5451,85.781,4.4,67 km S of Sarangani Philippines -2024-11-15T17:50:25.789Z,5.5558,126.5322,58.154,4.1,97 km SSE of Pondaguitan Philippines -2024-11-15T17:50:45.978Z,5.5633,126.6785,71.033,4.3,104 km SSE of Pondaguitan Philippines -2024-11-18T10:39:10.439Z,5.1128,127.2161,99.218,4.2,179 km SE of Pondaguitan Philippines -2024-11-19T08:34:02.404Z,6.1462,126.1658,105.102,5.1,23 km S of Pondaguitan Philippines -2024-11-21T06:15:50.128Z,5.9993,126.0068,139.926,4.1,35 km ESE of Lamitan Philippines -2024-11-22T03:44:40.893Z,6.8423,126.5548,108.561,4.5,23 km SE of Lukatan Philippines -2024-11-22T07:51:05.718Z,2.5891,128.2336,68.892,5.1,98 km NNE of Tobelo Indonesia -2024-11-23T04:58:52.248Z,2.2558,128.0003,170.426,4.5,58 km N of Tobelo Indonesia -2024-11-23T19:24:29.576Z,5.5052,126.9072,85.727,4.6,124 km SE of Pondaguitan Philippines -2024-11-23T21:47:51.786Z,5.7972,124.3072,437.462,4.4,33 km SSW of Mabay Philippines -2024-11-25T19:18:16.011Z,4.3722,126.1791,79.965,4.5,138 km SE of Sarangani Philippines -2024-11-26T03:33:01.105Z,4.7624,126.1492,111.608,4.4,103 km SE of Sarangani Philippines -2024-11-26T14:34:30.169Z,3.315,126.4003,58.46,4.2,250 km NW of Tobelo Indonesia -2024-11-26T23:37:46.061Z,3.8286,126.4261,85.156,4.3,204 km SSE of Sarangani Philippines -2024-11-27T00:47:14.960Z,6.1006,128.2035,10,4.5,220 km ESE of San Ignacio Philippines -2024-11-27T08:59:03.951Z,9.1414,126.6882,6.194,5,49 km ENE of Bacolod Philippines -2024-11-27T09:13:27.110Z,9.1431,126.7555,6.812,4.2,56 km ENE of Bacolod Philippines -2024-11-29T11:53:32.404Z,2.7762,125.4851,172.651,4.4,152 km NNE of Bitung Indonesia -2024-11-29T20:39:23.351Z,4.631,127.7829,133.592,4.6,261 km SE of Pondaguitan Philippines -2024-11-30T16:10:41.929Z,6.2665,123.3551,10,4.5,78 km WSW of Sangay Philippines -2024-12-01T21:42:55.024Z,9.6881,125.7896,113.569,4.3,14 km NNE of Claver Philippines -2024-12-02T21:43:44.130Z,3.2087,128.3722,59.576,4.2,168 km NNE of Tobelo Indonesia -2024-12-03T16:09:11.776Z,4.8557,126.4225,14.196,5.1,122 km ESE of Sarangani Philippines -2024-12-03T18:27:00.885Z,8.4328,126.7904,33.517,4.9,49 km NE of Barcelona Philippines -2024-12-04T09:14:52.624Z,2.3155,127.3651,114.222,4.1,96 km NW of Tobelo Indonesia -2024-12-04T14:07:17.534Z,1.2844,126.2917,47.256,4.4,130 km E of Bitung Indonesia -2024-12-04T17:06:48.246Z,8.9073,125.8342,131.505,4.1,13 km WSW of San Miguel Philippines -2024-12-05T04:43:26.754Z,5.9941,125.7448,172.797,4.4,6 km E of Mangili Philippines -2024-12-07T22:10:51.152Z,1.4964,126.543,51.647,4.6,121 km NW of Ternate Indonesia -2024-12-08T17:11:44.942Z,1.8541,122.9907,10,4.9,145 km N of Gorontalo Indonesia -2024-12-08T18:51:30.336Z,2.8463,128.4419,235.878,4.2,132 km NNE of Tobelo Indonesia -2024-12-08T21:16:33.932Z,1.9178,126.645,57.157,4.3,149 km NNW of Ternate Indonesia -2024-12-09T22:21:33.666Z,7.6171,126.7909,72.637,4.5,25 km E of Baganga Philippines -2024-12-10T06:13:41.200Z,3.8052,127.9545,148.248,4.7,229 km N of Tobelo Indonesia -2024-12-10T21:26:38.014Z,5.7054,127.3562,35,4.8,149 km ESE of Pondaguitan Philippines -2024-12-11T03:27:57.933Z,5.6886,126.181,113.273,4.5,64 km ESE of Caburan Philippines -2024-12-12T07:52:06.561Z,3.3682,126.1226,71.159,4.2,236 km SSE of Sarangani Philippines -2024-12-13T23:32:37.860Z,4.4858,126.4524,44.761,4.4,149 km SE of Sarangani Philippines -2024-12-14T17:38:15.481Z,1.5829,126.5578,36.664,5.2,127 km NW of Ternate Indonesia -2024-12-16T03:24:27.572Z,2.4789,128.2201,10,4.4,86 km NNE of Tobelo Indonesia -2024-12-16T12:48:59.280Z,9.0185,126.6165,34.02,4.5,36 km ENE of Aras-asan Philippines -2024-12-17T11:05:37.249Z,5.1686,127.4188,138.792,5,190 km SE of Pondaguitan Philippines -2024-12-17T11:12:54.854Z,6.5111,126.5581,136.035,4.3,45 km ENE of Pondaguitan Philippines -2024-12-18T07:32:54.492Z,8.7519,126.7769,10,4.4,53 km E of Marihatag Philippines -2024-12-19T16:51:21.717Z,5.6191,127.0599,74.798,4.8,127 km SE of Pondaguitan Philippines -2024-12-20T02:27:37.917Z,4.5225,127.7672,43.148,4.2,269 km SE of Pondaguitan Philippines -2024-12-20T11:42:07.521Z,3.6954,126.5443,35,4.6,223 km SSE of Sarangani Philippines -2024-12-20T21:09:32.525Z,5.7996,127.2143,66.393,4.9,130 km ESE of Pondaguitan Philippines -2024-12-20T21:51:27.385Z,3.9895,125.8551,159.186,4.9,162 km SSE of Sarangani Philippines -2024-12-22T04:45:13.122Z,3.3742,126.6274,46.888,4.9,238 km NW of Tobelo Indonesia -2024-12-24T10:42:54.577Z,2.6116,126.3472,70.557,4.8,187 km NE of Bitung Indonesia -2024-12-26T05:55:25.329Z,6.4386,126.1293,66.978,4.6,3 km S of Nangan Philippines -2024-12-26T10:26:20.024Z,8.473,125.927,24.23,5.3,3 km ESE of Borbon Philippines -2024-12-26T11:29:07.732Z,8.3067,126.0068,10,4.9,12 km SSE of Lapinigan Philippines -2024-12-27T01:57:18.235Z,8.0485,127.1446,18.366,4.7,76 km ENE of Kinablangan Philippines -2024-12-27T17:30:08.760Z,2.0409,126.445,57.539,4.5,160 km ENE of Bitung Indonesia -2024-12-27T18:42:59.930Z,9.6146,126.2289,63,5.4,20 km SE of Union Philippines -2024-12-27T22:39:56.605Z,3.2544,123.1875,480.874,4.7,269 km NW of Manado Indonesia -2024-12-30T00:43:14.853Z,2.463,128.1684,55.415,4.1,83 km NNE of Tobelo Indonesia -2024-12-30T19:21:33.371Z,5.0395,127.5491,122.595,4.4,210 km SE of Pondaguitan Philippines -2024-12-31T22:32:02.906Z,8.0127,127.264,10,4.6,86 km ENE of Kinablangan Philippines -2025-01-02T13:25:28.775Z,1.7617,127.3626,117.276,4.4,72 km W of Tobelo Indonesia -2025-01-03T17:59:54.378Z,2.3865,128.1744,140.869,4.5,75 km NNE of Tobelo Indonesia -2025-01-04T05:42:58.606Z,7.3151,123.6156,10,4.1,25 km SE of Malim Philippines -2025-01-04T13:57:33.463Z,4.7057,126.4071,87.575,4.4,129 km SE of Sarangani Philippines -2025-01-05T09:16:42.355Z,6.4682,126.5325,132.697,5.1,40 km ENE of Pondaguitan Philippines -2025-01-06T03:27:54.201Z,3.5416,126.0311,108.771,4.2,215 km SSE of Sarangani Philippines -2025-01-07T09:18:58.362Z,9.7888,126.0508,10,4.6,3 km N of Dapa Philippines -2025-01-09T19:11:11.518Z,5.7029,126.4539,155.3,4.5,78 km SSE of Pondaguitan Philippines -2025-01-10T03:43:27.951Z,2.4871,126.0765,90.598,4.4,156 km NE of Bitung Indonesia -2025-01-10T05:49:44.491Z,8.4901,126.5803,63.071,4.8,30 km ENE of Hinatuan Philippines -2025-01-10T09:32:53.637Z,2.7916,128.33,76.695,4.4,122 km NNE of Tobelo Indonesia -2025-01-10T19:41:10.729Z,3.43,125.6986,124.037,4.4,219 km S of Sarangani Philippines -2025-01-11T17:48:37.086Z,7.6102,126.7188,95.016,4.6,17 km ENE of Baganga Philippines -2025-01-12T22:30:37.536Z,4.4541,125.863,156.38,4.3,113 km SSE of Sarangani Philippines -2025-01-13T00:19:47.641Z,6.6712,123.8527,541.546,5.4,20 km W of Taguisa Philippines -2025-01-13T00:21:17.635Z,6.6151,123.9218,552.886,4.8,15 km NW of Bantogon Philippines -2025-01-13T00:21:36.122Z,6.7145,123.9153,552.944,4.8,13 km W of Taguisa Philippines -2025-01-13T00:33:53.740Z,1.5065,126.381,53.375,4.2,136 km NW of Ternate Indonesia -2025-01-13T11:41:09.141Z,5.5763,125.0964,37.472,5,23 km SW of Burias Philippines -2025-01-14T09:39:04.240Z,8.0163,126.761,35,4.4,34 km E of Santa Maria Philippines -2025-01-14T15:06:34.062Z,3.6035,126.3871,63.344,4.1,223 km SSE of Sarangani Philippines -2025-01-14T20:51:53.279Z,5.8855,126.6769,72.017,4.6,76 km SE of Pondaguitan Philippines -2025-01-15T10:05:54.831Z,5.1639,127.3268,35,4.5,183 km SE of Pondaguitan Philippines -2025-01-16T06:14:27.061Z,9.9631,125.8581,120.608,4.1,16 km NW of Del Carmen Surigao del Norte Philippines -2025-01-16T09:56:14.176Z,5.3612,126.4061,150.737,4.4,104 km E of Sarangani Philippines -2025-01-16T20:42:33.882Z,6.0327,125.373,77.432,4,3 km SSW of Suyan Philippines -2025-01-17T08:55:52.080Z,8.4942,125.8032,10,5,4 km NNE of Talacogon Philippines -2025-01-17T10:00:23.818Z,5.9466,126.0225,150.207,4.3,38 km E of Mangili Philippines -2025-01-18T17:23:04.300Z,4.374,126.9329,54.181,4.3,198 km SE of Sarangani Philippines -2025-01-19T05:29:33.100Z,3.7422,126.7466,48.016,4.4,232 km SE of Sarangani Philippines -2025-01-20T03:46:57.993Z,5.7948,126.3955,82.586,4.5,67 km SSE of Pondaguitan Philippines -2025-01-21T08:51:04.184Z,6.5686,125.9065,76.637,4.2,20 km WSW of Sigaboy Philippines -2025-01-22T13:33:26.464Z,9.6039,126.18,82.342,4.6,18 km SSE of Union Philippines -2025-01-22T15:32:55.695Z,3.2129,127.9618,133.517,4.4,164 km N of Tobelo Indonesia -2025-01-22T23:39:46.093Z,10.0899,125.1492,9,5.7,3 km NNW of San Francisco Philippines -2025-01-23T03:41:16.038Z,7.7025,122.2079,62.013,5.4,8 km E of Siocon Philippines -2025-01-23T05:12:51.007Z,3.2296,126.9458,47.595,4,203 km NW of Tobelo Indonesia -2025-01-25T05:38:13.356Z,6.6174,123.9823,542.987,4.1,9 km WNW of Limulan Philippines -2025-01-26T18:45:58.346Z,5.75,127.0098,134.526,4.6,114 km SE of Pondaguitan Philippines -2025-01-27T06:40:43.420Z,7.3803,124.5001,399.952,4.5,9 km NW of Alamada Philippines -2025-01-27T13:56:31.883Z,4.3494,122.8311,587.179,4,212 km SSE of Tabiauan Philippines -2025-01-29T04:37:29.365Z,7.5518,123.4787,10,4.6,11 km S of San Pablo Philippines -2025-01-29T11:33:19.272Z,4.3177,125.7493,163.491,4.2,124 km SSE of Sarangani Philippines -2025-01-30T19:48:44.120Z,6.892,126.0956,76.662,4.5,4 km ENE of Manikling Philippines -2025-01-30T21:10:44.085Z,2.408,126.8759,52.726,4.3,146 km WNW of Tobelo Indonesia -2025-01-31T00:51:47.934Z,6.6688,126.7553,107.227,4.2,52 km ESE of Bobon Philippines -2025-01-31T17:01:28.311Z,1.5851,126.3737,42.698,4.3,139 km E of Bitung Indonesia -2025-02-01T11:01:17.568Z,9.8839,125.9034,104.794,4.2,7 km WNW of Del Carmen Surigao del Norte Philippines -2025-02-01T11:44:11.789Z,1.4434,126.0506,47.12,4.2,102 km E of Bitung Indonesia -2025-02-02T02:05:36.400Z,2.4545,126.6379,49.555,4.5,172 km WNW of Tobelo Indonesia -2025-02-03T21:35:51.094Z,3.0383,128.2254,103,5.9,146 km N of Tobelo Indonesia -2025-02-03T22:21:07.799Z,2.9266,128.1457,117.645,4.2,133 km N of Tobelo Indonesia -2025-02-03T23:53:28.566Z,5.673,123.9953,521.781,4.2,63 km SSW of Palimbang Philippines -2025-02-04T13:10:58.458Z,3.3618,126.6979,46.933,4.2,232 km NW of Tobelo Indonesia -2025-02-04T18:30:32.082Z,3.4305,126.7991,59.511,4.4,231 km NW of Tobelo Indonesia -2025-02-05T03:12:30.192Z,1.6173,127.118,99,5.5,96 km NNW of Ternate Indonesia -2025-02-05T08:03:41.352Z,7.4306,126.8564,82.39,4.6,30 km E of Baculin Philippines -2025-02-05T11:11:31.142Z,4.9771,124.0056,484.054,4.4,129 km SSW of Maitum Philippines -2025-02-06T13:16:27.647Z,4.3939,126.6197,56.008,5.2,170 km SE of Sarangani Philippines -2025-02-07T08:53:54.446Z,8.0545,127.2401,10,4.4,86 km ENE of Kinablangan Philippines -2025-02-07T13:43:44.271Z,3.6232,127.8452,80.155,4.3,210 km N of Tobelo Indonesia -2025-02-07T16:17:35.989Z,3.6861,127.8424,83.655,4.6,217 km N of Tobelo Indonesia -2025-02-08T08:35:32.299Z,6.6689,127.2192,10,4.5,94 km ESE of San Ignacio Philippines -2025-02-08T12:00:18.163Z,5.2165,126.8555,97.19,4.4,147 km SSE of Pondaguitan Philippines -2025-02-08T15:30:42.461Z,4.3955,126.6833,53.364,4.6,175 km SE of Sarangani Philippines -2025-02-10T18:25:53.765Z,4.9771,127.4953,112.895,4.3,211 km SE of Pondaguitan Philippines -2025-02-12T06:53:34.776Z,1.7606,127.3044,32.113,4.9,78 km W of Tobelo Indonesia -2025-02-14T02:04:10.279Z,6.8607,123.6543,10,4,40 km W of Gadung Philippines -2025-02-14T14:44:25.125Z,1.9145,127.4151,122.316,4.6,69 km WNW of Tobelo Indonesia -2025-02-14T20:56:18.580Z,3.4928,127.854,135.671,4.6,195 km N of Tobelo Indonesia -2025-02-15T03:46:15.225Z,1.7566,127.3945,124.839,4.2,68 km W of Tobelo Indonesia -2025-02-15T05:30:22.923Z,5.2576,127.3959,9.827,4.2,181 km SE of Pondaguitan Philippines -2025-02-15T22:19:02.528Z,7.4928,124.6971,10,4.3,2 km W of Banisilan Philippines -2025-02-16T02:53:42.852Z,3.3766,128.9629,10,4.4,210 km NNE of Tobelo Indonesia -2025-02-16T07:27:43.361Z,1.4368,126.2578,69.092,4.6,125 km E of Bitung Indonesia -2025-02-18T06:45:19.931Z,2.9703,128.2216,10,4.6,139 km N of Tobelo Indonesia -2025-02-19T05:52:34.520Z,3.1072,128.5093,224.681,4.5,162 km NNE of Tobelo Indonesia -2025-02-19T12:15:14.957Z,9.8875,126.0538,10,4.2,5 km WNW of Pilar Philippines -2025-02-19T12:54:06.338Z,4.462,123.2228,528.593,4.1,220 km SSW of Palimbang Philippines -2025-02-19T18:15:57.666Z,3.7705,127.9162,147.624,4.4,226 km N of Tobelo Indonesia -2025-02-20T23:22:45.564Z,2.2489,127.2262,10,4.3,104 km WNW of Tobelo Indonesia -2025-02-21T18:44:01.211Z,4.0381,126.4332,96.402,4.1,185 km SE of Sarangani Philippines -2025-02-22T03:12:21.161Z,1.3487,125.595,9.507,4.4,52 km E of Bitung Indonesia -2025-02-24T17:05:49.445Z,8.788,127.3203,10,4.4,111 km E of Aras-asan Philippines -2025-02-25T14:23:03.878Z,4.5899,126.2828,74.186,4.1,127 km SE of Sarangani Philippines -2025-02-25T15:59:39.779Z,2.7999,125.6199,138.561,4.9,159 km NNE of Bitung Indonesia -2025-02-25T18:13:49.712Z,2.9535,126.5765,47.046,5.1,209 km NW of Tobelo Indonesia -2025-02-25T19:07:46.336Z,2.9559,126.5571,64.366,4.1,210 km NW of Tobelo Indonesia -2025-02-26T04:52:37.631Z,3.8388,125.8069,145.983,4.2,177 km SSE of Sarangani Philippines -2025-02-26T17:35:00.362Z,1.3287,126.3181,46.136,4.9,132 km WNW of Ternate Indonesia -2025-02-26T17:41:41.388Z,4.7976,127.3799,99.476,4.4,218 km SE of Pondaguitan Philippines -2025-02-27T15:30:42.492Z,3.6796,127.8669,57.963,4.6,216 km N of Tobelo Indonesia -2025-02-28T03:55:30.104Z,6.1861,126.8278,98.445,4.3,74 km ESE of Pondaguitan Philippines -2025-02-28T11:30:02.298Z,1.7012,126.3429,73.513,4.2,138 km ENE of Bitung Indonesia -2025-02-28T16:18:52.058Z,2.8167,125.7533,143.941,4.3,167 km NNE of Bitung Indonesia -2025-02-28T19:39:41.321Z,6.1668,126.8401,106.793,4.3,76 km ESE of Pondaguitan Philippines -2025-03-01T06:36:40.192Z,7.863,126.7422,11.163,4.4,28 km NE of Kinablangan Philippines -2025-03-01T06:47:43.954Z,8.8699,122.5991,10,4.6,44 km WSW of Cabangahan Philippines -2025-03-01T06:56:40.501Z,1.3509,126.4127,34.727,4.3,124 km WNW of Ternate Indonesia -2025-03-01T10:22:57.328Z,1.8023,124.1284,298.663,4.3,87 km WNW of Manado Indonesia -2025-03-01T13:59:51.898Z,7.867,126.7422,17.616,5,28 km NE of Kinablangan Philippines -2025-03-04T01:42:22.745Z,6.7213,125.1352,17.179,5,7 km SW of Magsaysay Philippines -2025-03-04T02:37:53.589Z,1.8535,127.3253,101.326,4.4,77 km W of Tobelo Indonesia -2025-03-06T13:40:25.416Z,7.5657,124.8748,14.142,4.6,5 km SW of Kadingilan Philippines -2025-03-07T07:16:01.303Z,3.0593,128.5368,217.013,4.1,158 km NNE of Tobelo Indonesia -2025-03-07T16:53:59.992Z,7.4935,124.7296,10,4.8,0 km ENE of Banisilan Philippines -2025-03-08T02:54:35.279Z,6.8088,127.5687,10,4.1,122 km ESE of Santiago Philippines -2025-03-08T08:03:22.942Z,8.9028,126.3335,65.661,4.4,2 km NE of Aras-asan Philippines -2025-03-08T09:13:26.721Z,7.3703,124.7197,11.472,4.3,8 km W of Liliongan Philippines -2025-03-08T19:37:19.331Z,3.0408,126.9306,88.174,4.6,188 km NW of Tobelo Indonesia -2025-03-09T09:46:45.324Z,8.9593,126.1887,73.035,4.7,5 km SSE of Gamut Philippines -2025-03-09T15:24:28.940Z,5.9994,126.7244,40.252,4.7,72 km ESE of Pondaguitan Philippines -2025-03-10T05:52:59.488Z,7.5899,126.6632,78.798,4.5,11 km E of Baganga Philippines -2025-03-11T14:58:53.760Z,1.6397,126.6806,50.314,4.9,122 km NW of Ternate Indonesia -2025-03-12T13:36:15.776Z,1.9558,127.4492,114.732,4.5,67 km WNW of Tobelo Indonesia -2025-03-12T15:09:44.490Z,8.3112,127.3806,9,5.5,105 km E of Barcelona Philippines -2025-03-12T19:40:40.967Z,8.2694,127.3609,10,4.4,102 km E of Barcelona Philippines -2025-03-12T23:32:51.946Z,1.6571,127.1518,116.877,4.6,95 km W of Tobelo Indonesia -2025-03-13T02:11:44.372Z,8.4659,126.7172,51.899,4.2,43 km ENE of Hinatuan Philippines -2025-03-13T23:03:46.437Z,3.4956,127.3521,38.683,4.3,208 km NNW of Tobelo Indonesia -2025-03-14T12:29:11.124Z,3.5606,127.3263,33.583,4.5,216 km NNW of Tobelo Indonesia -2025-03-15T19:50:28.591Z,8.9937,126.4886,47.557,4.5,22 km ENE of Aras-asan Philippines -2025-03-16T08:07:24.763Z,7.7697,126.6046,10,4.2,10 km NE of Kinablangan Philippines -2025-03-17T15:41:51.772Z,8.0892,126.8133,35,4.9,42 km ENE of Santa Maria Philippines -2025-03-17T23:04:35.490Z,5.5494,126.0931,129.301,4.5,64 km SE of Caburan Philippines -2025-03-18T14:53:46.799Z,8.8348,126.3326,70.604,4.5,5 km NE of Marihatag Philippines -2025-03-19T02:13:55.553Z,6.5869,126.2713,38.048,4.2,18 km ESE of Tibanbang Philippines -2025-03-19T22:35:23.003Z,8.3046,126.2426,8.401,4.5,4 km WSW of Bigaan Philippines -2025-03-20T17:49:46.142Z,4.2528,126.0592,136.616,4.6,143 km SSE of Sarangani Philippines -2025-03-21T10:37:16.252Z,2.2641,127.145,99.41,4.7,112 km WNW of Tobelo Indonesia -2025-03-22T05:27:04.488Z,7.6659,127.0997,10,4.6,60 km E of Baganga Philippines -2025-03-22T07:01:27.043Z,7.6274,126.7926,76.976,4.5,26 km ENE of Baganga Philippines -2025-03-22T08:51:39.838Z,7.6829,126.6757,82.622,4.2,14 km E of Kinablangan Philippines -2025-03-23T16:42:07.860Z,4.9899,126.8534,89.469,4.3,160 km ESE of Sarangani Philippines -2025-03-23T22:01:07.259Z,2.8128,128.5451,231.644,4.3,133 km NNE of Tobelo Indonesia -2025-03-24T10:28:03.234Z,6.1813,126.9933,98.512,4,92 km ESE of Pondaguitan Philippines -2025-03-25T03:32:35.521Z,7.9081,126.6984,57.723,4.4,28 km NE of Kinablangan Philippines -2025-03-26T06:53:39.103Z,4.5016,124.5188,10,4.9,144 km SW of Sarangani Philippines -2025-03-26T19:40:14.248Z,3.4833,126.1894,74.614,4.2,227 km SSE of Sarangani Philippines -2025-03-26T22:03:04.281Z,2.6798,122.1756,556.221,4.2,256 km NNW of Gorontalo Indonesia -2025-03-27T14:08:25.498Z,6.6187,126.6882,59.911,4.4,48 km SE of Bobon Philippines -2025-03-27T14:10:52.110Z,8.6119,126.2634,70.667,4.6,9 km NNE of Gamut Philippines -2025-03-27T23:54:05.998Z,9.8809,125.8377,98.452,4.2,14 km W of Del Carmen Surigao del Norte Philippines -2025-03-28T08:33:16.920Z,6.4042,124.5678,10,4.2,11 km WSW of Manuel Roxas Philippines -2025-03-28T20:44:09.879Z,9.5575,126.4481,35,4.3,41 km NE of Cortes Philippines -2025-03-29T10:46:38.012Z,9.2642,126.7765,9.173,4.6,64 km E of Cortes Philippines -2025-03-29T14:26:41.890Z,2.9665,126.4501,46.139,4.1,220 km NW of Tobelo Indonesia -2025-03-30T03:57:49.930Z,1.4283,126.3831,56.522,4,131 km WNW of Ternate Indonesia -2025-03-30T05:58:35.589Z,4.8185,126.3301,82.086,4.2,115 km SE of Sarangani Philippines -2025-03-31T09:47:24.858Z,5.4272,126.1544,101.406,4.4,76 km E of Sarangani Philippines -2025-04-02T01:52:27.983Z,9.6865,125.9451,86.506,4.4,7 km NNW of Socorro Philippines -2025-04-02T18:31:28.741Z,4.6063,128.0817,69.561,4.1,286 km SE of Pondaguitan Philippines -2025-04-02T18:45:03.416Z,3.381,128.3642,204.178,4.2,186 km NNE of Tobelo Indonesia -2025-04-02T21:03:40.049Z,2.1324,126.7258,44,5.8,149 km WNW of Tobelo Indonesia -2025-04-02T21:10:19.736Z,2.0883,126.7091,54.248,4.9,150 km WNW of Tobelo Indonesia -2025-04-04T09:39:42.779Z,9.5784,126.2674,98.322,4.4,26 km SE of Union Philippines -2025-04-05T09:25:39.470Z,1.7037,126.2895,47.467,4,132 km ENE of Bitung Indonesia -2025-04-05T11:33:54.278Z,2.6672,126.7434,40.192,4.9,174 km NW of Tobelo Indonesia -2025-04-05T18:10:41.711Z,8.7894,127.7442,10,4.1,158 km E of Aras-asan Philippines -2025-04-06T04:19:15.873Z,3.4975,127.2372,49.364,4.6,213 km NNW of Tobelo Indonesia -2025-04-06T11:44:14.408Z,8.5092,127.2414,10,4.5,96 km ENE of Barcelona Philippines -2025-04-07T09:19:38.428Z,9.597,126.5518,35,4.4,51 km ESE of Union Philippines -2025-04-08T07:56:02.180Z,1.3501,126.0824,52.648,4.3,106 km E of Bitung Indonesia -2025-04-08T09:30:26.185Z,7.059,126.5025,145.968,4.5,5 km E of Jovellar Philippines -2025-04-08T16:28:47.491Z,5.724,126.5766,82.61,4.3,83 km SSE of Pondaguitan Philippines -2025-04-08T19:25:55.660Z,4.6687,125.0956,12.773,5.1,90 km SSW of Sarangani Philippines -2025-04-09T04:05:01.526Z,5.4483,126.1605,78.032,4.4,77 km E of Sarangani Philippines -2025-04-09T07:25:13.236Z,3.4619,127.2364,42.219,4.8,210 km NNW of Tobelo Indonesia -2025-04-09T15:21:22.331Z,3.5137,127.3729,31.63,5,209 km NNW of Tobelo Indonesia -2025-04-10T02:39:07.502Z,3.5858,127.0535,52.038,4.4,231 km NNW of Tobelo Indonesia -2025-04-10T15:42:58.780Z,1.6055,127.0941,125.774,4.3,95 km NNW of Ternate Indonesia -2025-04-10T16:40:41.243Z,2.9712,128.5664,225.881,4.4,150 km NNE of Tobelo Indonesia -2025-04-10T21:55:44.089Z,2.5898,127.3907,96.73,4.2,117 km NW of Tobelo Indonesia -2025-04-11T10:33:25.890Z,3.3849,127.1707,35,4.4,205 km NNW of Tobelo Indonesia -2025-04-12T16:02:02.576Z,3.2534,127.9736,82.879,4.4,168 km N of Tobelo Indonesia -2025-04-14T16:25:27.438Z,3.6117,126.7868,49.172,4.3,246 km SE of Sarangani Philippines -2025-04-15T21:42:42.326Z,5.8038,124.2362,10,5.6,37 km SSW of Maguling Philippines -2025-04-16T05:02:56.716Z,5.5151,126.5883,22.709,4.5,104 km SSE of Pondaguitan Philippines -2025-04-16T05:22:31.665Z,5.5317,126.3395,46.164,4.6,88 km ESE of Caburan Philippines -2025-04-18T03:34:10.284Z,3.1176,126.9766,52.982,4.1,191 km NW of Tobelo Indonesia -2025-04-18T14:47:15.591Z,2.5548,128.2715,193.79,4.3,95 km NNE of Tobelo Indonesia -2025-04-19T07:44:21.540Z,5.6742,126.4816,107.379,4.3,83 km SSE of Pondaguitan Philippines -2025-04-19T16:11:14.518Z,5.8328,124.1463,12,5.9,39 km SW of Malisbeng Philippines -2025-04-19T16:42:04.212Z,5.8937,123.8755,10,4.2,49 km SW of Palimbang Philippines -2025-04-19T16:50:47.031Z,5.8558,124.2299,10,5.1,32 km SSW of Malisbeng Philippines -2025-04-19T17:10:15.869Z,5.7443,124.0477,10,4.3,53 km SW of Malisbeng Philippines -2025-04-19T17:37:11.031Z,5.8269,124.1032,14.473,5.3,42 km SW of Malisbeng Philippines -2025-04-19T18:00:42.000Z,2.7372,128.4032,219.932,4.2,119 km NNE of Tobelo Indonesia -2025-04-19T23:20:14.353Z,5.7423,124.0765,10,4.2,51 km SW of Malisbeng Philippines -2025-04-20T01:09:54.060Z,5.8601,124.1991,10,4.5,33 km SSW of Malisbeng Philippines -2025-04-20T04:51:00.755Z,6.1811,127.2535,35,4.1,120 km E of Pondaguitan Philippines -2025-04-20T21:51:03.306Z,1.346,126.5167,72.153,4.3,114 km WNW of Ternate Indonesia -2025-04-21T05:56:41.130Z,6.7951,126.5319,10,4.5,23 km ESE of Bobon Philippines -2025-04-21T08:26:13.765Z,9.0125,126.7437,35,4.4,49 km ENE of Aras-asan Philippines -2025-04-22T04:09:04.904Z,4.3073,124.7417,314.464,4.3,145 km SSW of Sarangani Philippines -2025-04-22T10:17:11.888Z,4.5538,127.831,104,6.2,271 km SE of Pondaguitan Philippines -2025-04-25T20:47:47.311Z,6.6843,123.8153,38.635,4.6,24 km W of Taguisa Philippines -2025-04-26T10:25:22.723Z,3.211,124.3531,347.298,4.1,198 km NNW of Manado Indonesia -2025-04-26T16:27:41.747Z,3.3479,126.7872,50.398,4.5,224 km NW of Tobelo Indonesia -2025-04-27T10:06:26.015Z,6.1037,125.1822,158.476,4.2,1 km SE of General Santos Philippines -2025-04-27T12:19:09.405Z,2.2623,126.6207,56.657,4.2,165 km WNW of Tobelo Indonesia -2025-04-28T15:21:33.333Z,7.7604,127.825,10,4.2,140 km E of Kinablangan Philippines -2025-04-28T20:32:40.525Z,3.4874,122.652,547.875,4,293 km SSE of Tabiauan Philippines -2025-04-28T20:36:22.537Z,3.4386,122.5849,553.521,4.1,296 km SE of Latung Philippines -2025-04-29T12:54:36.177Z,5.4531,126.1341,123.885,4.2,74 km E of Sarangani Philippines -2025-04-30T05:24:39.157Z,2.6259,126.2617,70.946,4.8,181 km NE of Bitung Indonesia -2025-04-30T10:24:57.357Z,2.5653,127.2114,85.301,4.8,128 km NW of Tobelo Indonesia -2025-04-30T15:53:49.164Z,4.8059,126.3043,10,4.4,114 km SE of Sarangani Philippines -2025-04-30T16:08:01.898Z,4.2668,128.1387,58.155,4.5,281 km N of Tobelo Indonesia -2025-04-30T21:56:09.668Z,4.3577,128.4086,13.166,4.5,294 km N of Tobelo Indonesia -2025-04-30T23:38:27.946Z,4.2718,128.3407,19.533,4.8,283 km N of Tobelo Indonesia -2025-04-30T23:45:37.112Z,4.2045,128.3395,10,4.5,276 km N of Tobelo Indonesia -2025-04-30T23:56:05.370Z,4.3327,128.2079,17.647,4.9,288 km N of Tobelo Indonesia -2025-05-01T14:27:00.582Z,8.7712,122.3606,31.046,4.4,72 km WSW of Cabangahan Philippines -2025-05-01T17:17:28.847Z,3.0181,127.9215,138.598,4.1,142 km N of Tobelo Indonesia -2025-05-01T22:26:44.948Z,5.3918,126.029,95.538,4.9,62 km E of Sarangani Philippines -2025-05-02T17:07:27.202Z,4.2277,128.5346,10,4.3,282 km NNE of Tobelo Indonesia -2025-05-03T04:55:39.353Z,9.5551,123.0001,10,4.5,7 km SSW of Mayapusi Philippines -2025-05-03T09:17:51.268Z,4.8377,123.257,579.824,4.2,183 km SW of Palimbang Philippines -2025-05-03T09:17:55.360Z,5.2502,126.2905,74.238,4.3,93 km E of Sarangani Philippines -2025-05-03T14:20:50.934Z,1.2625,124.4496,235.66,4.4,39 km W of Tomohon Indonesia -2025-05-03T20:39:37.905Z,8.3638,127.1155,10,4.4,78 km ENE of Barcelona Philippines -2025-05-04T08:33:23.581Z,3.6972,127.1466,46.101,4.6,237 km NNW of Tobelo Indonesia -2025-05-04T16:00:03.806Z,2.2424,126.7646,55.252,4.5,149 km WNW of Tobelo Indonesia -2025-05-06T07:49:14.562Z,4.3155,128.4471,10,4.4,290 km N of Tobelo Indonesia -2025-05-06T17:21:42.951Z,4.3473,128.528,10,4.3,295 km NNE of Tobelo Indonesia -2025-05-07T03:48:14.829Z,8.1377,126.552,70.852,4.4,13 km E of Barcelona Philippines -2025-05-07T03:48:42.364Z,7.7672,126.876,82.736,4.8,36 km ENE of Kinablangan Philippines -2025-05-09T20:58:38.082Z,9.3711,127.1373,10,4.2,104 km E of Cortes Philippines -2025-05-10T19:44:05.104Z,4.091,125.8929,155.742,4.1,152 km SSE of Sarangani Philippines -2025-05-11T10:10:38.423Z,1.4435,126.3517,47.856,4.4,135 km WNW of Ternate Indonesia -2025-05-11T21:37:11.127Z,9.3705,127.1473,10,4.5,105 km E of Cortes Philippines -2025-05-12T17:01:41.832Z,2.1092,126.686,55.538,5,153 km WNW of Tobelo Indonesia -2025-05-13T12:30:23.432Z,5.6799,125.8014,145.957,4.4,31 km SE of Caburan Philippines -2025-05-18T03:46:05.264Z,8.6216,123.0774,10,4.8,10 km NNW of Manukan Philippines -2025-05-18T20:25:29.532Z,8.744,126.0078,35,4.2,12 km NNE of Los Arcos Philippines -2025-05-19T03:41:29.696Z,7.4417,125.6982,66.405,4.9,5 km SSE of San Miguel Philippines -2025-05-19T16:20:16.737Z,8.808,126.6066,55.608,4.5,33 km ESE of Aras-asan Philippines -2025-05-19T23:11:21.095Z,8.7007,126.5777,44.182,4.2,33 km ESE of Marihatag Philippines -2025-05-20T03:29:43.747Z,5.1744,123.7663,10,4.4,123 km SSW of Malisbeng Philippines -2025-05-23T05:36:35.718Z,9.9984,125.3254,10,4.3,19 km ESE of San Francisco Philippines -2025-05-23T19:11:56.735Z,2.0968,126.6767,41.21,5,153 km WNW of Tobelo Indonesia -2025-05-25T22:31:50.868Z,9.0733,125.7413,10,4.4,13 km NE of Anticala Philippines -2025-05-26T04:13:20.450Z,6.6378,125.059,14.506,4.2,9 km E of Telafas Philippines -2025-05-26T10:48:08.647Z,5.7863,126.1918,102.636,4.9,61 km ESE of Mangili Philippines -2025-05-26T17:07:13.944Z,6.4718,126.1976,73.23,4.4,8 km E of Nangan Philippines -2025-05-28T04:56:07.911Z,2.1738,126.7535,59.612,4.1,148 km WNW of Tobelo Indonesia -2025-05-28T15:26:50.798Z,6.3761,126.5946,10,4.1,46 km E of Pondaguitan Philippines -2025-05-28T21:36:51.061Z,5.2649,126,92.709,4.2,61 km ESE of Sarangani Philippines -2025-05-29T03:26:31.866Z,5.1276,126.8545,97.64,4.4,155 km SSE of Pondaguitan Philippines -2025-05-29T09:50:21.401Z,3.7982,126.1129,72.496,4.2,191 km SSE of Sarangani Philippines -2025-05-29T22:52:28.375Z,8.482,126.3659,83.261,4.3,12 km NNE of Hinatuan Philippines -2025-05-31T15:48:24.151Z,2.2499,126.7696,44.545,4.5,149 km WNW of Tobelo Indonesia -2025-06-01T02:01:08.414Z,2.8303,125.3162,153.684,4.3,153 km NNE of Laikit Laikit II (Dimembe) Indonesia -2025-06-03T09:11:56.550Z,1.354,126.2001,59.119,4.9,119 km E of Bitung Indonesia -2025-06-04T03:54:12.830Z,4.0214,127.8009,83.117,4.1,254 km N of Tobelo Indonesia -2025-06-04T10:41:19.317Z,2.9943,127.6714,97.541,4.5,144 km NNW of Tobelo Indonesia -2025-06-05T03:39:04.379Z,6.3252,125.8064,130.338,4.2,16 km ENE of Talagutong Philippines -2025-06-05T10:05:08.095Z,4.2738,125.8902,92.607,4.5,133 km SSE of Sarangani Philippines -2025-06-05T14:20:24.261Z,6.626,127.0071,10,4.4,77 km ESE of Lukatan Philippines -2025-06-05T19:37:21.790Z,2.6414,126.6645,35,4.4,180 km NW of Tobelo Indonesia -2025-06-06T00:05:09.508Z,7.4201,126.8239,83.054,4.1,26 km E of Baculin Philippines -2025-06-06T04:30:47.585Z,2.6428,126.6652,50.466,4.3,180 km NW of Tobelo Indonesia -2025-06-06T12:42:11.929Z,4.2511,128.4043,10,4.6,282 km N of Tobelo Indonesia -2025-06-06T14:12:13.500Z,3.9206,126.0371,98.428,4.5,175 km SSE of Sarangani Philippines -2025-06-07T22:03:25.247Z,7.6879,127.2735,10,4.5,79 km E of Baganga Philippines -2025-06-09T18:12:47.450Z,4.9046,126.1883,89.617,4.4,97 km SE of Sarangani Philippines -2025-06-10T10:43:10.264Z,8.3867,127.5392,10,4.6,124 km ENE of Barcelona Philippines -2025-06-11T04:59:25.116Z,7.7792,126.2481,10,4.3,16 km SW of Boston Philippines -2025-06-11T08:53:48.877Z,8.1119,126.2944,10,4.6,11 km SSW of Bislig Philippines -2025-06-11T11:54:17.335Z,1.8386,127.3351,110.16,4.3,76 km W of Tobelo Indonesia -2025-06-12T10:17:13.142Z,5.7139,123.9966,520.692,4.4,58 km SSW of Palimbang Philippines -2025-06-12T14:38:25.628Z,5.2363,125.3653,30.268,5,21 km SSW of Sarangani Philippines -2025-06-12T18:55:07.310Z,5.0719,125.6202,43.832,4.4,40 km SSE of Sarangani Philippines -2025-06-12T19:23:09.238Z,5.096,125.2731,40.915,4.3,40 km SSW of Sarangani Philippines -2025-06-13T08:13:18.068Z,5.2501,125.1041,10,4.9,43 km WSW of Sarangani Philippines -2025-06-13T14:17:03.755Z,8.0071,126.5838,89.75,4.2,15 km E of Santa Maria Philippines -2025-06-15T07:37:55.402Z,5.2339,126.8677,92.61,4.3,146 km SSE of Pondaguitan Philippines -2025-06-15T08:08:33.526Z,9.7081,126.6996,15.868,4.3,64 km E of Union Philippines -2025-06-15T12:31:28.393Z,6.2537,126.4654,87.411,4.4,33 km ESE of Pondaguitan Philippines -2025-06-17T04:33:52.391Z,1.6188,125.9846,73.706,4.4,97 km ENE of Bitung Indonesia -2025-06-17T06:25:34.830Z,2.193,126.583,64.54,5.1,166 km WNW of Tobelo Indonesia -2025-06-17T08:36:25.059Z,8.2198,126.7159,53.724,5.3,31 km ENE of Barcelona Philippines -2025-06-17T19:49:06.629Z,5.8112,125.5447,67.379,4.6,10 km NNE of Kalbay Philippines -2025-06-18T04:18:37.300Z,3.5505,126.7713,49.644,4.5,244 km NW of Tobelo Indonesia -2025-06-20T01:03:23.898Z,7.2986,126.6409,92.329,4,7 km E of Santiago Philippines -2025-06-20T18:21:51.365Z,5.74,126.1967,132.625,4.4,63 km ESE of Mangili Philippines -2025-06-20T21:00:23.197Z,6.7077,126.7647,167.281,4.2,50 km SE of Lukatan Philippines -2025-06-22T08:39:35.299Z,9.1229,126.9743,10,4.3,77 km ENE of Aras-asan Philippines -2025-06-22T22:24:38.497Z,9.2761,126.7381,35,4.4,60 km E of Cortes Philippines -2025-06-22T23:34:27.533Z,6.2483,126.4764,83.347,4.6,35 km ESE of Pondaguitan Philippines -2025-06-24T05:40:01.540Z,2.9959,128.2359,62.029,4.2,142 km N of Tobelo Indonesia -2025-06-24T06:24:33.474Z,4.4147,126.7057,58.242,5,175 km SE of Sarangani Philippines -2025-06-24T13:19:40.727Z,1.7437,126.5864,49.919,4.1,137 km NW of Ternate Indonesia -2025-06-24T21:28:52.166Z,7.9049,126.5621,86.065,4.3,16 km SE of Santa Maria Philippines -2025-06-25T07:31:08.253Z,2.5343,126.1039,63.607,4.4,162 km NE of Bitung Indonesia -2025-06-26T12:50:15.838Z,4.9874,124.3648,10,4.8,112 km SSW of Katubao Philippines -2025-06-26T19:24:09.404Z,6.3683,126.3743,95.618,4.5,21 km E of Pondaguitan Philippines -2025-06-27T23:07:10.371Z,5.2888,126.0425,99.77,6,65 km E of Sarangani Philippines -2025-06-27T23:41:43.694Z,5.4211,126.0271,83.491,4.9,62 km E of Sarangani Philippines -2025-06-28T01:00:40.931Z,5.2202,125.7988,106.609,4.3,42 km ESE of Sarangani Philippines -2025-06-28T08:28:33.675Z,8.8826,126.3296,85.642,4.3,2 km ESE of Aras-asan Philippines -2025-06-28T09:29:26.220Z,5.2421,125.8164,109.727,4.1,42 km ESE of Sarangani Philippines -2025-06-28T11:50:18.313Z,2.4082,127.1374,88.741,4.5,122 km NW of Tobelo Indonesia -2025-06-28T12:40:43.625Z,2.7565,127.3287,53.159,5.3,136 km NNW of Tobelo Indonesia -2025-06-29T04:22:00.260Z,7.6899,127.7952,10,4.4,136 km E of Baculin Philippines -2025-06-30T05:34:23.819Z,2.0506,126.7202,53.748,4.7,147 km WNW of Tobelo Indonesia -2025-07-01T17:22:41.448Z,4.5463,125.8157,165.912,4.3,102 km SSE of Sarangani Philippines -2025-07-02T10:53:18.047Z,2.5161,126.9979,57.908,4.2,142 km NW of Tobelo Indonesia -2025-07-03T23:50:46.164Z,8.5987,126.4932,90.97,4.1,28 km ENE of Gamut Philippines -2025-07-04T02:33:57.625Z,5.2524,126.2661,87.126,4.3,90 km E of Sarangani Philippines -2025-07-04T14:24:26.448Z,5.8593,126.4704,118.35,4.8,64 km SSE of Pondaguitan Philippines -2025-07-05T22:54:32.587Z,2.0474,125.3293,135.403,4,70 km NNE of Bitung Indonesia -2025-07-06T00:52:54.739Z,5.3262,125.9846,100.462,4.3,58 km E of Sarangani Philippines -2025-07-06T13:08:55.204Z,3.507,122.9115,546.35,4.3,Celebes Sea -2025-07-07T01:14:35.426Z,6.0971,126.1802,145.952,4.4,29 km S of Pondaguitan Philippines -2025-07-07T13:32:58.325Z,1.5747,126.5589,35,4.1,126 km NW of Ternate Indonesia -2025-07-08T16:10:07.968Z,6.0067,126.146,150.653,4.4,39 km S of Pondaguitan Philippines -2025-07-09T12:21:01.005Z,2.6308,127.2557,84.922,4.3,130 km NW of Tobelo Indonesia -2025-07-09T22:03:03.989Z,3.444,126.4908,75.033,4.4,244 km SSE of Sarangani Philippines -2025-07-10T12:26:30.150Z,2.6947,128.4941,220.634,4.4,119 km NNE of Tobelo Indonesia -2025-07-11T03:14:35.263Z,9.0119,127.5474,10,4.3,136 km E of Aras-asan Philippines -2025-07-11T12:54:21.340Z,4.937,127.879,10,4.3,245 km SE of Pondaguitan Philippines -2025-07-13T17:08:33.932Z,7.1206,127.3934,31.808,5.1,92 km ESE of Santiago Philippines -2025-07-14T23:23:56.875Z,5.1156,125.3731,181.628,4.3,33 km SSW of Sarangani Philippines -2025-07-15T04:09:19.395Z,4.1895,126.5775,35,4.5,182 km SE of Sarangani Philippines -2025-07-15T23:23:21.500Z,3.1981,127.0838,35,4.4,192 km NNW of Tobelo Indonesia -2025-07-18T03:43:15.066Z,4.5776,125.015,10,4.5,103 km SSW of Sarangani Philippines -2025-07-18T13:10:10.569Z,6.3234,126.8352,114.979,4.4,72 km E of Pondaguitan Philippines -2025-07-18T17:14:05.442Z,2.1265,126.699,50.669,4.7,152 km WNW of Tobelo Indonesia -2025-07-19T16:25:20.575Z,8.1924,127.5937,10,5.4,127 km ENE of Kinablangan Philippines -2025-07-20T00:29:16.550Z,8.2335,127.5108,10,4.7,118 km E of Barcelona Philippines -2025-07-20T09:04:59.478Z,2.1834,126.7417,46.517,4.6,149 km WNW of Tobelo Indonesia -2025-07-20T16:40:57.597Z,9.169,126.2239,67.09,4.8,6 km ESE of Mabahin Philippines -2025-07-22T06:03:22.591Z,2.8461,128.5351,10,4.4,136 km NNE of Tobelo Indonesia -2025-07-22T17:23:57.203Z,7.6469,127.1659,10,4.8,67 km E of Baganga Philippines -2025-07-22T22:49:24.225Z,9.4274,126.5176,35,4.4,39 km ENE of Cortes Philippines -2025-07-23T04:02:19.839Z,8.1346,126.1909,10,4.7,11 km NNE of Santa Maria Philippines -2025-07-23T10:21:33.412Z,6.4428,126.0354,135.093,4.5,8 km WSW of Tiblawan Philippines -2025-07-23T10:53:52.847Z,3.9851,125.0875,8.304,4.5,162 km SSW of Sarangani Philippines -2025-07-25T04:23:54.331Z,5.7949,126.383,104.85,4.4,66 km SSE of Pondaguitan Philippines -2025-07-25T05:56:33.696Z,8.9885,126.2206,69.615,4.8,3 km SSW of Tago Philippines -2025-07-25T21:29:58.920Z,2.0241,126.873,80,5.8,130 km WNW of Tobelo Indonesia -2025-07-25T22:55:41.483Z,2.0269,126.8751,88.157,4.8,130 km WNW of Tobelo Indonesia -2025-07-26T19:27:26.462Z,3.0339,128.068,73.673,4,144 km N of Tobelo Indonesia -2025-07-27T07:02:25.848Z,3.0275,126.9067,10,4.2,188 km NW of Tobelo Indonesia -2025-07-29T21:59:47.098Z,7.4423,126.5296,103.392,4.5,2 km W of San Luis Philippines -2025-07-30T21:06:29.325Z,3.7252,127.3883,47.66,4.2,231 km NNW of Tobelo Indonesia -2025-08-01T15:43:53.460Z,2.9503,126.4907,72.855,4.2,216 km NW of Tobelo Indonesia -2025-08-01T17:50:25.402Z,3.5115,126.6778,43.232,4.5,246 km NW of Tobelo Indonesia -2025-08-02T07:27:11.810Z,9.0513,126.2212,10,4.3,3 km NNW of Tago Philippines -2025-08-02T07:31:40.738Z,9.1689,126.7853,9.868,4.7,60 km ENE of Bacolod Philippines -2025-08-02T07:32:00.739Z,3.2525,126.2225,50.714,4.5,234 km NNE of Bitung Indonesia -2025-08-02T15:20:03.774Z,2.7733,128.3501,237.054,4,121 km NNE of Tobelo Indonesia -2025-08-03T06:28:32.770Z,3.4403,126.5724,52.284,4.1,247 km NW of Tobelo Indonesia -2025-08-03T07:57:54.859Z,4.1014,126.4683,59.115,4.3,182 km SE of Sarangani Philippines -2025-08-07T03:47:04.736Z,4.2141,126.6853,50.309,4.5,188 km SE of Sarangani Philippines -2025-08-08T12:22:13.517Z,1.7903,127.1031,108.684,5,101 km W of Tobelo Indonesia -2025-08-08T18:55:17.341Z,3.45,122.7234,540.502,4.2,299 km SSE of Tabiauan Philippines -2025-08-09T11:33:05.494Z,6.1475,126.6036,97.714,5.1,52 km ESE of Pondaguitan Philippines -2025-08-09T21:18:01.142Z,5.3735,125.2204,59.025,4.4,26 km SW of Balangonan Philippines -2025-08-12T01:23:28.952Z,7.1702,124.7791,10,4.1,4 km SSW of Carmen Philippines -2025-08-12T05:08:31.126Z,5.5785,126.1455,137.859,5.3,67 km SE of Caburan Philippines -2025-08-13T09:24:31.371Z,2.8757,128.5329,240.44,4.2,139 km NNE of Tobelo Indonesia -2025-08-13T15:09:25.174Z,5.1535,126.3407,87.097,4.1,101 km ESE of Sarangani Philippines -2025-08-13T17:05:46.190Z,5.7732,125.7873,106.324,4.4,22 km SE of Caburan Philippines -2025-08-14T08:34:04.212Z,8.9868,123.9738,545.444,4.1,40 km ESE of Lazi Philippines -2025-08-15T14:22:56.975Z,7.8181,127.0853,25.599,4.4,60 km ENE of Kinablangan Philippines -2025-08-17T07:58:32.898Z,2.0049,126.9327,29.138,4.6,123 km WNW of Tobelo Indonesia -2025-08-17T15:03:12.628Z,2.1675,127.1307,20.1,5.5,109 km WNW of Tobelo Indonesia -2025-08-17T15:31:19.979Z,2.0781,127.0014,33.991,5,118 km WNW of Tobelo Indonesia -2025-08-17T23:12:32.990Z,2.4729,126.9288,57.806,4.2,145 km NW of Tobelo Indonesia -2025-08-18T04:44:24.344Z,2.7019,127.1005,81.019,4.5,147 km NW of Tobelo Indonesia -2025-08-18T08:30:49.468Z,3.1627,124.4304,321.44,4.5,191 km NNW of Manado Indonesia -2025-08-20T21:32:01.737Z,5.9983,125.9874,152.424,4.2,33 km ESE of Lamitan Philippines -2025-08-21T00:43:36.116Z,9.1609,122.607,10,4.5,27 km S of Basay Philippines -2025-08-22T02:17:37.283Z,6.131,126.5569,87.865,4.3,49 km ESE of Pondaguitan Philippines -2025-08-22T07:08:20.578Z,7.4498,126.5118,143.421,4.8,4 km WNW of San Luis Philippines -2025-08-23T16:40:03.664Z,7.3262,126.6329,136.737,4.1,7 km E of Caraga Philippines -2025-08-25T19:18:24.036Z,5.3031,127.0477,126.766,4.8,151 km SE of Pondaguitan Philippines -2025-08-26T01:44:50.582Z,2.5185,128.1702,197.71,4.8,89 km NNE of Tobelo Indonesia -2025-08-26T10:11:07.684Z,2.5504,128.1961,136.215,4.7,93 km NNE of Tobelo Indonesia -2025-08-26T19:45:47.012Z,8.6228,126.3529,74.651,4.8,15 km NE of Gamut Philippines -2025-08-28T17:36:43.617Z,5.4512,128.0449,10,4.5,229 km ESE of Pondaguitan Philippines -2025-08-29T13:30:01.377Z,6.5568,126.4848,77.178,4.4,37 km SSE of Tamisan Philippines -2025-08-29T18:42:09.043Z,3.7264,128.5381,60.52,4.5,228 km NNE of Tobelo Indonesia -2025-08-30T21:21:20.668Z,4.1563,126.7115,38.154,4.2,195 km SE of Sarangani Philippines -2025-08-31T00:30:17.300Z,2.0449,126.6728,35,4.6,152 km WNW of Tobelo Indonesia -2025-08-31T02:58:55.463Z,1.3956,126.3696,61.264,4.1,131 km WNW of Ternate Indonesia -2025-08-31T07:18:46.294Z,1.8687,124.6424,215.937,4.1,48 km NNW of Manado Indonesia -2025-08-31T07:49:53.171Z,7.3003,123.4816,10,4.9,17 km SSE of Malim Philippines -2025-09-01T11:56:20.831Z,2.0052,127.1018,49.412,4.4,105 km WNW of Tobelo Indonesia -2025-09-01T21:27:46.739Z,2.3547,127.2403,104.912,4.3,110 km NW of Tobelo Indonesia -2025-09-02T08:41:51.202Z,1.5904,123.9628,298.53,4.2,98 km WNW of Tomohon Indonesia -2025-09-03T19:55:37.603Z,9.9483,125.767,63.711,4.4,11 km ENE of Cagdianao Philippines -2025-09-03T22:45:45.860Z,9.6436,126.3902,35,5,33 km ESE of Union Philippines -2025-09-03T23:04:25.454Z,9.6784,126.2416,32.153,4.5,16 km ESE of Union Philippines -2025-09-04T01:01:49.984Z,2.9189,125.8797,131.199,4.6,183 km NNE of Bitung Indonesia -2025-09-05T11:02:27.891Z,1.8304,122.8927,434.959,4,144 km N of Gorontalo Indonesia -2025-09-07T07:29:07.651Z,9.2452,126.908,10,5.1,76 km ENE of Bacolod Philippines -2025-09-07T15:36:27.893Z,3.5477,126.7457,46.704,4.5,245 km NW of Tobelo Indonesia -2025-09-08T12:51:26.407Z,5.747,125.9377,162.82,4.6,37 km ESE of Caburan Philippines -2025-09-08T18:22:58.267Z,4.8929,123.0324,573.765,4.2,178 km SE of Tabiauan Philippines -2025-09-08T18:52:10.347Z,9.9133,125.5075,143.517,5.3,10 km WSW of Dinagat Philippines -2025-09-08T22:49:07.269Z,4.0528,127.934,69.783,4.6,257 km N of Tobelo Indonesia -2025-09-10T19:22:09.529Z,2.8177,127.1504,45.667,4.4,153 km NW of Tobelo Indonesia -2025-09-13T02:41:59.707Z,5.9005,126.9658,105.097,4.2,101 km ESE of Pondaguitan Philippines -2025-09-13T16:08:26.844Z,5.1756,123.1806,561.143,4.8,159 km SW of Palimbang Philippines -2025-09-16T07:58:02.321Z,3.43,126.0536,69.487,4.4,227 km SSE of Sarangani Philippines -2025-09-17T05:15:16.233Z,3.3885,122.8022,536.715,4.3,Celebes Sea -2025-09-17T08:43:18.203Z,6.8252,127.2307,10,4.3,87 km ESE of Manay Philippines -2025-09-17T18:12:01.901Z,7.805,126.5145,93.398,4.4,6 km ENE of Cateel Philippines -2025-09-17T22:51:38.523Z,5.1722,126.3259,26.556,4,98 km ESE of Sarangani Philippines -2025-09-18T03:47:33.242Z,4.2665,127.6824,129.988,4.7,276 km ESE of Sarangani Philippines -2025-09-18T12:41:03.966Z,6.2524,124.2698,500.392,4.3,10 km ENE of Palimbang Philippines -2025-09-18T12:48:55.449Z,1.6163,126.5285,32.622,4.6,131 km NW of Ternate Indonesia -2025-09-18T15:25:04.596Z,8.0552,126.9205,49.894,4.5,52 km E of Santa Maria Philippines -2025-09-18T17:08:47.760Z,1.6693,126.5186,40.741,4.5,136 km NW of Ternate Indonesia -2025-09-18T19:35:22.098Z,2.624,127.2715,49.74,4.5,128 km NW of Tobelo Indonesia -2025-09-20T02:39:48.066Z,3.7501,126.8317,35.171,4.8,237 km SE of Sarangani Philippines -2025-09-20T05:32:16.552Z,6.3868,126.5214,10,4.3,38 km E of Pondaguitan Philippines -2025-09-20T18:54:34.948Z,4.8731,124.1091,452.335,4.3,135 km SSW of Tambilil Philippines -2025-09-22T02:11:17.539Z,7.7691,122.019,10,4.6,14 km WNW of Siocon Philippines -2025-09-22T03:16:57.278Z,1.5145,124.9711,177.068,4,2 km N of Laikit Laikit II (Dimembe) Indonesia -2025-09-23T15:57:20.574Z,4.8281,127.6918,86.71,4.3,238 km SE of Pondaguitan Philippines -2025-09-23T22:03:50.873Z,3.8907,127.1954,42.911,4.5,254 km SE of Sarangani Philippines -2025-09-23T23:27:46.521Z,2.2862,126.7398,51.257,4.4,154 km WNW of Tobelo Indonesia -2025-09-25T02:27:57.244Z,9.605,126.1838,10,4.7,18 km SSE of Union Philippines -2025-09-26T21:56:37.928Z,6.7129,123.6853,605.561,4.1,38 km WSW of Gadung Philippines -2025-09-26T22:44:15.019Z,1.8281,125.0723,193.777,4.3,39 km NNE of Laikit Laikit II (Dimembe) Indonesia -2025-09-29T03:00:14.931Z,5.936,125.905,120.417,4.6,25 km ESE of Mangili Philippines -2025-10-03T16:24:10.943Z,1.9937,126.618,46.143,4.6,157 km W of Tobelo Indonesia -2025-10-03T23:02:44.336Z,9.2951,126.4547,39.783,4.6,29 km E of Cortes Philippines -2025-10-04T18:01:45.413Z,9.2996,125.3861,10,4.5,15 km WSW of Jabonga Philippines -2025-10-05T10:30:06.652Z,3.5734,127.9185,143.192,4.7,204 km N of Tobelo Indonesia -2025-10-05T17:23:38.742Z,4.6048,125.008,10,4.9,101 km SSW of Sarangani Philippines -2025-10-05T21:50:10.487Z,2.1987,127.078,57.06,4.8,115 km WNW of Tobelo Indonesia -2025-10-06T05:56:01.651Z,6.0445,123.6804,556.761,4.3,59 km WSW of Palimbang Philippines -2025-10-06T23:58:12.151Z,3.3731,127.3749,35.616,4.7,195 km NNW of Tobelo Indonesia -2025-10-07T04:14:03.511Z,5.5018,126.3808,94.639,4.9,93 km ESE of Caburan Philippines -2025-10-08T06:39:03.209Z,5.0984,123.5765,569.866,4.3,140 km SSW of Palimbang Philippines -2025-10-10T01:43:59.585Z,7.2866,126.6902,59.425,7.4,12 km E of Santiago Philippines -2025-10-10T01:49:46.916Z,6.9709,126.7077,81.914,5.3,29 km SE of San Ignacio Philippines -2025-10-10T01:50:38.743Z,7.2686,126.7211,68.117,5.3,16 km E of Santiago Philippines -2025-10-10T01:51:15.525Z,7.0654,126.8348,63.43,5.9,36 km ESE of Manay Philippines -2025-10-10T02:00:51.063Z,7.0236,126.7129,86.703,4.5,26 km ESE of San Ignacio Philippines -2025-10-10T02:09:18.271Z,6.9385,126.922,71.363,4.6,51 km ESE of San Ignacio Philippines -2025-10-10T02:11:27.315Z,7.1728,126.9407,58.939,4.8,42 km ESE of Santiago Philippines -2025-10-10T02:11:45.318Z,7.0145,126.7102,67.847,5.6,27 km ESE of San Ignacio Philippines -2025-10-10T02:15:27.515Z,7.3879,126.8149,71.064,4.9,26 km ESE of Baculin Philippines -2025-10-10T02:27:56.532Z,6.9417,127.0141,33.488,4.3,60 km ESE of Manay Philippines -2025-10-10T02:34:02.306Z,7.088,126.5977,91.061,4.6,12 km ESE of San Ignacio Philippines -2025-10-10T02:42:52.832Z,7.1966,126.6411,96.18,4.4,11 km E of Manay Philippines -2025-10-10T03:10:15.456Z,6.9211,127.1224,35,4.9,72 km ESE of Manay Philippines -2025-10-10T03:17:12.028Z,7.0448,126.811,89.635,4.8,35 km ESE of Manay Philippines -2025-10-10T03:23:06.380Z,7.1713,126.8099,81.491,4.9,29 km ESE of Santiago Philippines -2025-10-10T03:32:16.463Z,7.073,126.8243,72.22,5.5,35 km ESE of Manay Philippines -2025-10-10T03:53:53.436Z,7.3,126.8057,61.538,4.8,25 km E of Santiago Philippines -2025-10-10T04:02:49.507Z,7.1631,127.1404,54.048,4.4,64 km ESE of Santiago Philippines -2025-10-10T04:04:19.431Z,7.1823,127.0935,59.256,4.4,58 km ESE of Santiago Philippines -2025-10-10T04:18:19.764Z,6.6892,126.6242,101.687,4.4,38 km ESE of Bobon Philippines -2025-10-10T04:46:34.300Z,7.0282,126.8129,86.178,4.5,36 km SE of Manay Philippines -2025-10-10T05:01:17.217Z,7.1303,127.2153,10,4.4,73 km ESE of Santiago Philippines -2025-10-10T05:14:35.422Z,7.4839,127.4446,10,4.3,95 km E of Baculin Philippines -2025-10-10T05:26:37.293Z,7.4663,127.078,10,4.2,54 km E of Baculin Philippines -2025-10-10T05:47:45.974Z,6.8257,127.1219,58.864,5.2,77 km ESE of San Ignacio Philippines -2025-10-10T05:48:55.559Z,6.8332,126.9556,73.342,5.1,60 km ESE of San Ignacio Philippines -2025-10-10T06:00:09.046Z,7.1636,127.2666,10,4.3,77 km E of Santiago Philippines -2025-10-10T06:06:23.913Z,7.18,126.9502,66.934,4.9,43 km ESE of Santiago Philippines -2025-10-10T06:32:25.036Z,6.9117,126.7893,72.923,4.9,40 km SE of San Ignacio Philippines -2025-10-10T06:54:26.933Z,7.2411,127.0451,16.617,4.3,52 km E of Santiago Philippines -2025-10-10T07:16:01.490Z,7.1583,127.0591,57.386,4.7,55 km ESE of Santiago Philippines -2025-10-10T07:24:10.705Z,7.0926,126.901,62.976,5.2,42 km ESE of Manay Philippines -2025-10-10T07:31:18.082Z,6.9145,127.3214,10,4.4,92 km ESE of Santiago Philippines -2025-10-10T07:33:50.984Z,7.1976,127.2703,10,4.4,77 km E of Santiago Philippines -2025-10-10T07:38:43.854Z,7.0967,126.9094,69.917,4.8,42 km ESE of Santiago Philippines -2025-10-10T08:37:52.098Z,6.9334,126.7674,70.003,4.3,37 km ESE of San Ignacio Philippines -2025-10-10T08:39:27.267Z,7.2537,126.7561,83.196,4.5,20 km E of Santiago Philippines -2025-10-10T09:06:42.920Z,7.2614,126.9935,77.33,4.9,46 km E of Santiago Philippines -2025-10-10T09:33:22.970Z,7.1034,126.8568,74.471,4.2,37 km ESE of Manay Philippines -2025-10-10T09:37:23.450Z,7.2611,126.8583,85.434,4.3,31 km E of Santiago Philippines -2025-10-10T09:43:31.962Z,7.0462,126.9375,62.913,5.2,47 km ESE of Manay Philippines -2025-10-10T10:01:02.246Z,7.234,127.0011,64.971,5.1,47 km E of Santiago Philippines -2025-10-10T10:16:55.200Z,7.159,126.739,79.427,4.3,22 km ESE of Manay Philippines -2025-10-10T10:20:32.735Z,7.147,126.8402,64.234,5,33 km ESE of Santiago Philippines -2025-10-10T11:00:28.713Z,7.2233,127.4282,10,4.5,94 km E of Santiago Philippines -2025-10-10T11:08:43.812Z,7.4288,127.2696,10,4.5,75 km E of Baculin Philippines -2025-10-10T11:10:02.010Z,7.5619,127.1136,10,4.4,59 km ENE of Baculin Philippines -2025-10-10T11:12:05.407Z,7.2127,126.6578,47,6.7,12 km SE of Santiago Philippines -2025-10-10T11:47:34.926Z,7.3002,127.1685,10,4.8,65 km E of Santiago Philippines -2025-10-10T12:01:09.710Z,7.3513,127.4086,10,4.9,91 km E of Baculin Philippines -2025-10-10T12:36:22.999Z,7.3364,127.0845,10,4.9,56 km E of Santiago Philippines -2025-10-10T12:39:36.293Z,7.1131,126.906,22.612,4.3,41 km ESE of Santiago Philippines -2025-10-10T12:48:38.392Z,7.3014,126.7542,95.82,4.3,20 km E of Santiago Philippines -2025-10-10T12:49:38.214Z,7.0351,127.1939,10,5.1,74 km ESE of Santiago Philippines -2025-10-10T12:53:36.958Z,7.6197,127.1421,10,4.4,64 km ENE of Baculin Philippines -2025-10-10T13:03:58.243Z,7.4316,127.1295,10,4.9,60 km E of Baculin Philippines -2025-10-10T13:13:21.509Z,7.3616,127.4039,10,4.3,91 km E of Baculin Philippines -2025-10-10T13:13:32.530Z,7.3532,127.2542,10,4.9,74 km E of Baculin Philippines -2025-10-10T14:55:19.378Z,7.3415,127.3826,10,4.5,88 km E of Baculin Philippines -2025-10-10T16:10:33.949Z,3.7923,126.6283,52.392,4.5,220 km SE of Sarangani Philippines -2025-10-10T16:30:46.078Z,7.378,126.6698,66.115,4.6,12 km ENE of Caraga Philippines -2025-10-10T17:24:35.132Z,6.8464,127.1456,28.659,4.6,78 km ESE of Manay Philippines -2025-10-10T18:15:21.919Z,7.033,126.8861,59.313,4.7,43 km ESE of Manay Philippines -2025-10-10T18:17:56.821Z,7.0629,126.8262,68.937,4.6,35 km ESE of Manay Philippines -2025-10-10T18:22:23.069Z,7.3345,126.9573,80.329,4.5,42 km E of Santiago Philippines -2025-10-10T18:58:08.125Z,7.2316,127.2814,17.369,4.6,78 km E of Santiago Philippines -2025-10-10T18:59:47.822Z,7.1992,127.0043,37.992,4.4,48 km ESE of Santiago Philippines -2025-10-10T19:06:41.710Z,7.3264,127.3499,15.686,4.5,85 km E of Baculin Philippines -2025-10-10T19:37:02.593Z,6.8808,126.9341,60.081,4.6,55 km ESE of San Ignacio Philippines -2025-10-10T20:40:13.545Z,7.1416,127.2749,12.944,4.8,79 km ESE of Santiago Philippines -2025-10-10T21:11:52.383Z,7.3875,127.4028,10,4.1,90 km E of Baculin Philippines -2025-10-10T22:20:47.659Z,7.3896,127.0323,10,5,49 km E of Baculin Philippines -2025-10-10T22:35:06.397Z,6.5928,127.2854,10,4.5,105 km ESE of Jovellar Philippines -2025-10-10T23:48:59.414Z,6.9068,126.7658,71.956,4.2,38 km ESE of Jovellar Philippines -2025-10-11T00:47:58.962Z,6.8723,127.3013,10,4.1,92 km ESE of Manay Philippines -2025-10-11T01:16:35.152Z,6.9645,126.8824,65.492,4.7,46 km ESE of San Ignacio Philippines -2025-10-11T03:28:17.356Z,7.3415,127.3082,10,4.6,80 km E of Baculin Philippines -2025-10-11T03:32:20.030Z,7.41,127.2551,10,4.3,74 km E of Baculin Philippines -2025-10-11T03:35:24.224Z,7.128,126.8718,35,4.5,37 km ESE of Santiago Philippines -2025-10-11T05:25:22.147Z,7.2402,126.7416,77.805,4.2,19 km ESE of Santiago Philippines -2025-10-11T07:02:34.774Z,7.1153,126.9212,60.928,4.6,42 km ESE of Santiago Philippines -2025-10-11T10:27:20.842Z,7.2849,126.8271,31,5.5,28 km E of Santiago Philippines -2025-10-11T11:51:49.038Z,7.1849,126.7605,82.936,4.3,23 km ESE of Santiago Philippines -2025-10-11T11:54:44.683Z,6.8895,126.5782,104.756,4.1,21 km SE of Lukatan Philippines -2025-10-11T12:15:55.901Z,7.4181,127.2014,12.696,4.2,68 km E of Baculin Philippines -2025-10-11T12:16:16.528Z,7.2137,127.1816,10,4.2,67 km E of Santiago Philippines -2025-10-11T12:41:22.181Z,6.9436,127.1134,10,4.2,70 km ESE of Manay Philippines -2025-10-11T12:47:44.213Z,6.8587,127.0432,56.7,4.5,67 km ESE of San Ignacio Philippines -2025-10-11T14:32:59.312Z,8.9231,126.323,67.657,6,3 km ESE of Bacolod Philippines -2025-10-11T17:02:46.758Z,7.124,127.1868,13.591,4.5,70 km ESE of Santiago Philippines -2025-10-11T19:28:28.625Z,7.6895,126.9736,35,4.9,46 km E of Kinablangan Philippines -2025-10-11T21:03:09.369Z,7.3731,127.2483,10,4.2,73 km E of Baculin Philippines -2025-10-11T21:03:54.803Z,7.371,126.8364,42.3,4.3,29 km ESE of Baculin Philippines -2025-10-11T21:04:46.692Z,7.204,126.7151,73.404,4.5,18 km ESE of Santiago Philippines -2025-10-11T23:04:37.929Z,3.9343,126.68,43.357,4.4,211 km SE of Sarangani Philippines -2025-10-12T01:25:33.732Z,7.1788,127.0606,28.985,4.6,55 km ESE of Santiago Philippines -2025-10-12T06:56:38.400Z,8.8689,127.1454,10,4.7,91 km E of Aras-asan Philippines -2025-10-12T08:27:06.157Z,7.1339,127.3887,10,4.2,91 km E of Santiago Philippines -2025-10-12T09:44:27.016Z,8.4486,126.9203,35,4.4,62 km ENE of Barcelona Philippines -2025-10-12T10:23:59.902Z,1.5579,126.9336,105.685,4.5,98 km NNW of Ternate Indonesia -2025-10-12T11:54:32.988Z,5.6924,124.2808,35,4.3,45 km SSW of Maitum Philippines -2025-10-12T14:43:19.127Z,7.2409,126.7015,74.077,4.6,15 km ESE of Santiago Philippines -2025-10-12T17:37:53.001Z,7.2969,127.3462,10,4.5,85 km E of Santiago Philippines -2025-10-13T12:24:55.630Z,7.0621,126.8812,66.09,4.5,41 km ESE of Manay Philippines -2025-10-13T17:08:17.450Z,7.2329,127.01,10.829,4.2,48 km E of Santiago Philippines -2025-10-13T23:45:01.251Z,7.0685,127.232,10,4,76 km ESE of Santiago Philippines -2025-10-14T02:00:11.014Z,7.3744,127.0611,35,5.5,53 km E of Baculin Philippines -2025-10-14T02:06:17.240Z,7.4132,126.9917,38.697,4.4,45 km E of Baculin Philippines -2025-10-14T02:07:22.867Z,7.6715,127.1779,35,4.4,69 km E of Baganga Philippines -2025-10-14T02:09:53.966Z,7.4907,127.1824,10,4,66 km E of Baculin Philippines -2025-10-14T02:20:01.833Z,7.2661,126.9284,77.954,4.7,39 km E of Santiago Philippines -2025-10-14T02:39:06.158Z,7.3945,126.8399,56.684,4.9,28 km ESE of Baculin Philippines -2025-10-14T02:51:27.381Z,7.2347,126.8781,75.993,4.4,34 km E of Santiago Philippines -2025-10-14T04:06:45.950Z,7.274,127.3608,10,4.3,86 km E of Santiago Philippines -2025-10-14T08:58:36.282Z,7.125,126.912,65.025,4.6,41 km ESE of Santiago Philippines -2025-10-14T10:12:59.926Z,5.7336,126.925,140.346,4.5,107 km SE of Pondaguitan Philippines -2025-10-14T16:01:02.468Z,7.2744,126.6818,91.737,4.5,12 km E of Santiago Philippines -2025-10-14T16:18:15.722Z,7.3146,126.873,50.518,4.5,33 km E of Santiago Philippines -2025-10-14T17:23:56.003Z,7.4914,127.2912,10,4.9,78 km E of Baculin Philippines -2025-10-14T18:17:16.188Z,7.3537,127.0636,48.251,4.8,54 km ESE of Baculin Philippines -2025-10-14T18:18:52.631Z,7.1301,127.4999,56.38,4.1,103 km E of Santiago Philippines -2025-10-14T18:50:16.353Z,7.1993,127.1256,17.436,4.4,61 km E of Santiago Philippines -2025-10-14T19:26:13.650Z,7.5507,127.2877,10,4.8,78 km E of Baculin Philippines -2025-10-15T07:44:54.444Z,7.1771,127.1755,10,4.9,67 km E of Santiago Philippines -2025-10-15T10:58:00.978Z,7.5345,126.8509,52.418,4.4,30 km ENE of Baculin Philippines -2025-10-15T21:32:53.457Z,6.2464,125.6335,156.375,4.2,4 km WSW of Talagutong Philippines -2025-10-15T21:39:49.225Z,3.3517,126.8606,35,4.1,220 km NW of Tobelo Indonesia -2025-10-15T23:32:47.615Z,5.1172,125.3592,46.561,4.8,33 km SSW of Sarangani Philippines -2025-10-15T23:36:13.686Z,7.3874,126.8234,75.105,4.2,27 km ESE of Baculin Philippines -2025-10-15T23:46:33.614Z,6.9034,126.9331,71.575,4.4,54 km ESE of San Ignacio Philippines -2025-10-16T09:31:04.331Z,5.4538,126.0067,93.582,4.7,60 km E of Sarangani Philippines -2025-10-16T22:11:03.168Z,6.8359,127.192,12.258,4.8,83 km ESE of Manay Philippines -2025-10-16T23:03:12.673Z,9.7909,126.1163,32,6,3 km N of Union Philippines -2025-10-16T23:14:15.205Z,9.8202,126.0977,32.396,4.5,4 km S of Pilar Philippines -2025-10-16T23:18:01.858Z,9.7251,126.2551,43.253,4.6,16 km ESE of Union Philippines -2025-10-16T23:20:23.328Z,9.6582,126.1559,17.182,4.5,11 km SSE of Union Philippines -2025-10-16T23:39:16.596Z,9.8057,126.1921,37.473,4.5,10 km ENE of Union Philippines -2025-10-16T23:57:40.023Z,9.7295,126.1711,57.815,4.8,7 km ESE of Union Philippines -2025-10-17T08:46:32.478Z,1.857,127.3892,127.143,4.6,70 km WNW of Tobelo Indonesia -2025-10-17T10:16:52.041Z,7.1737,127.2136,10,4.7,71 km E of Santiago Philippines -2025-10-18T05:26:36.542Z,6.7107,126.8745,85.27,4.7,60 km ESE of Lukatan Philippines -2025-10-18T10:28:29.288Z,7.4211,126.6735,72.946,4.2,10 km ESE of Baculin Philippines -2025-10-18T12:31:31.933Z,8.883,126.4567,55.726,5.4,16 km E of Aras-asan Philippines -2025-10-18T18:34:59.603Z,7.4752,126.9216,10.344,4.6,37 km E of Baculin Philippines -2025-10-19T01:34:50.816Z,6.9889,127.2611,10,5.1,82 km ESE of Santiago Philippines -2025-10-19T07:28:19.118Z,6.4896,126.7054,194.346,5,59 km SE of Bobon Philippines -2025-10-19T07:57:30.680Z,8.4317,126.0015,10,4.5,2 km ENE of Lapinigan Philippines -2025-10-19T15:05:26.592Z,8.8684,126.7666,46.24,4.5,50 km E of Aras-asan Philippines -2025-10-19T15:37:21.112Z,1.2937,125.8387,64.581,4.7,80 km ESE of Bitung Indonesia -2025-10-20T01:38:24.765Z,1.7856,127.0794,74.992,4.6,103 km W of Tobelo Indonesia -2025-10-20T11:35:50.891Z,6.9992,127.3725,10,5.8,93 km ESE of Santiago Philippines -2025-10-20T15:47:46.793Z,6.9321,127.2205,19.781,4.4,81 km ESE of Manay Philippines -2025-10-21T11:27:59.208Z,4.032,122.8975,556.158,4.5,247 km SSE of Tabiauan Philippines -2025-10-21T13:06:16.240Z,1.7217,127.2828,113.135,4.4,80 km W of Tobelo Indonesia -2025-10-22T06:09:59.157Z,3.4593,125.6907,89.265,4.2,216 km S of Sarangani Philippines -2025-10-23T21:02:19.698Z,7.4678,127.198,9.23,4.2,67 km E of Baculin Philippines -2025-10-23T22:14:25.955Z,5.8722,127.1529,30.258,4.7,120 km ESE of Pondaguitan Philippines -2025-10-24T02:55:14.358Z,6.0455,127.1669,89.782,4.7,114 km ESE of Pondaguitan Philippines -2025-10-24T04:20:33.576Z,7.5714,127.3594,10,4.6,86 km E of Baculin Philippines -2025-10-24T04:37:07.056Z,7.3797,126.8108,67.176,4.6,26 km ESE of Baculin Philippines -2025-10-24T06:24:37.258Z,2.3659,126.7741,65.091,4.4,154 km WNW of Tobelo Indonesia -2025-10-24T07:44:59.554Z,7.1332,127.5707,10,4.1,111 km E of Santiago Philippines -2025-10-24T07:53:00.798Z,7.3283,126.698,69.104,4.5,14 km E of Caraga Philippines -2025-10-24T14:51:12.518Z,7.0563,127.4777,10,4.2,103 km ESE of Santiago Philippines -2025-10-24T16:05:39.473Z,7.9787,126.6291,65.066,5,20 km E of Santa Maria Philippines -2025-10-24T20:37:15.402Z,7.0882,127.5859,10,4,114 km ESE of Santiago Philippines -2025-10-26T00:25:55.991Z,7.0726,126.8975,68.326,5,42 km ESE of Manay Philippines -2025-10-26T11:57:25.904Z,2.0495,126.6924,61.506,4.1,150 km WNW of Tobelo Indonesia -2025-10-26T12:22:25.859Z,3.9122,125.921,143.154,4.4,172 km SSE of Sarangani Philippines -2025-10-26T14:05:51.488Z,5.74,126.9419,103.651,4.7,108 km SE of Pondaguitan Philippines -2025-10-26T18:45:51.141Z,4.9429,127.4143,134.928,4.4,208 km SE of Pondaguitan Philippines -2025-10-27T01:08:25.115Z,9.0584,126.4287,46.855,4.5,19 km ENE of La Paz Philippines -2025-10-27T19:16:53.518Z,1.9802,126.5247,54.48,4.3,162 km NW of Ternate Indonesia -2025-10-28T06:30:46.965Z,7.4455,127.2613,10,4.3,74 km E of Baculin Philippines -2025-10-28T23:01:59.498Z,9.0158,126.4141,55.135,4.5,16 km NE of Bacolod Philippines -2025-10-29T00:09:49.141Z,5.764,123.9188,529.228,4.2,57 km SSW of Palimbang Philippines -2025-10-29T10:18:56.654Z,2.7456,128.4849,221.602,4.4,124 km NNE of Tobelo Indonesia -2025-10-29T16:13:22.633Z,2.9239,128.3278,61.183,4.6,136 km NNE of Tobelo Indonesia -2025-10-29T17:52:18.809Z,3.9946,124.0914,425.338,4.8,217 km SW of Sarangani Philippines -2025-10-30T20:11:15.012Z,2.5068,125.8306,128.173,4.2,141 km NNE of Bitung Indonesia -2025-10-31T04:06:28.380Z,4.9352,126.1089,97.282,4.3,88 km SE of Sarangani Philippines -2025-10-31T20:28:27.783Z,6.2295,127.0704,35,4.6,99 km E of Pondaguitan Philippines -2025-10-31T20:44:31.676Z,6.2701,127.3451,10,4.9,129 km E of Pondaguitan Philippines -2025-10-31T20:47:05.977Z,6.2029,126.8673,81.185,4.3,78 km ESE of Pondaguitan Philippines -2025-10-31T21:21:08.242Z,6.1102,127.2399,35,5,120 km ESE of Pondaguitan Philippines -2025-10-31T21:27:48.004Z,7.0627,127.1014,10,5.1,63 km ESE of Santiago Philippines -2025-10-31T21:36:58.628Z,6.4087,127.3969,10,4.1,126 km SE of Tarragona Philippines -2025-10-31T21:39:35.121Z,6.1045,126.9706,83.176,4.5,92 km ESE of Pondaguitan Philippines -2025-10-31T22:02:22.540Z,6.2575,127.4141,10,4.4,137 km E of Pondaguitan Philippines -2025-11-01T00:49:57.274Z,7.5369,126.8287,60.744,4.2,28 km ENE of Baculin Philippines -2025-11-01T04:03:12.500Z,6.3054,127.2913,10,4.3,123 km ESE of Bobon Philippines -2025-11-02T06:21:20.548Z,3.5107,126.9742,42.802,4.3,228 km NNW of Tobelo Indonesia -2025-11-02T09:41:51.494Z,6.3591,127.1905,10,4,110 km ESE of Bobon Philippines -2025-11-02T11:18:48.491Z,1.6371,123.0396,10,4.6,121 km N of Gorontalo Indonesia -2025-11-02T12:04:38.174Z,4.5081,125.5362,146.401,4.2,99 km S of Sarangani Philippines -2025-11-03T04:14:12.537Z,4.9609,125.3608,25.018,4.8,50 km SSW of Sarangani Philippines -2025-11-03T04:21:25.957Z,4.8116,125.3874,26.7,5.3,65 km S of Sarangani Philippines -2025-11-03T04:22:50.570Z,5.11,125.2351,10,5.1,41 km SW of Sarangani Philippines -2025-11-03T06:20:57.627Z,4.7746,125.0585,10,4.6,82 km SSW of Sarangani Philippines -2025-11-03T06:21:38.990Z,5.0679,125.1958,10,4.8,47 km SW of Sarangani Philippines -2025-11-04T09:53:59.123Z,5.1217,125.5639,10,4.3,33 km SSE of Sarangani Philippines -2025-11-04T15:58:26.848Z,1.8189,126.9332,65.997,5.2,120 km W of Tobelo Indonesia -2025-11-05T16:38:45.120Z,5.0021,125.1803,10,4.7,54 km SW of Sarangani Philippines -2025-11-06T07:57:07.544Z,7.3684,126.6791,70.245,4.9,13 km ENE of Caraga Philippines -2025-11-06T12:16:52.725Z,2.4651,126.7563,48.141,4.5,161 km WNW of Tobelo Indonesia -2025-11-07T02:27:45.186Z,6.0141,126.0262,150.76,4.2,36 km ESE of Lamitan Philippines -2025-11-08T01:11:30.896Z,2.188,124.5973,238.48,4.5,82 km NNW of Manado Indonesia -2025-11-09T23:45:50.002Z,8.0041,126.9915,35,4.4,59 km NE of Kinablangan Philippines -2025-11-11T14:37:41.043Z,7.3417,126.9152,40.139,4.5,38 km E of Santiago Philippines -2025-11-12T08:40:32.772Z,7.2614,126.6133,83.566,4.2,5 km SE of Santiago Philippines -2025-11-13T03:31:02.291Z,4.0476,127.8816,122.899,5.1,256 km N of Tobelo Indonesia -2025-11-13T10:42:11.479Z,7.7288,127.1648,35,4.5,68 km E of Kinablangan Philippines -2025-11-14T07:57:27.677Z,5.3311,124.7375,15.643,4.3,62 km SSW of Lumatil Philippines -2025-11-15T05:33:30.479Z,4.0236,126.6366,35,5.3,200 km SE of Sarangani Philippines -2025-11-16T06:35:39.880Z,6.4774,126.1084,84.568,4.5,0 km S of Tiblawan Philippines -2025-11-16T08:40:29.686Z,2.6561,128.3261,196.285,4.1,108 km NNE of Tobelo Indonesia -2025-11-17T03:51:38.405Z,7.1963,127.0669,42.593,4.3,55 km E of Santiago Philippines -2025-11-17T11:37:33.696Z,7.4751,127.2201,10,4.3,70 km E of Baculin Philippines -2025-11-18T04:40:04.282Z,6.8018,127.1295,31.637,4.3,79 km ESE of San Ignacio Philippines -2025-11-18T06:41:03.615Z,3.5889,128.4732,10,4.3,212 km NNE of Tobelo Indonesia -2025-11-18T15:12:09.318Z,9.6343,126.5531,12.436,4.5,50 km ESE of Union Philippines -2025-11-19T00:47:25.482Z,3.9968,125.8645,86.404,4.1,161 km SSE of Sarangani Philippines -2025-11-19T02:01:35.340Z,4.1883,126.6831,46.327,4.2,190 km SE of Sarangani Philippines -2025-11-19T15:13:42.491Z,4.118,126.796,30.662,4.4,205 km SE of Sarangani Philippines -2025-11-19T19:06:07.072Z,1.9862,126.7697,35,4.8,140 km WNW of Tobelo Indonesia -2025-11-21T08:12:06.844Z,2.9164,127.1219,36.612,4.2,164 km NW of Tobelo Indonesia -2025-11-21T11:35:30.499Z,1.5122,124.8959,10,3.8,6 km ENE of Manado Indonesia -2025-11-21T17:07:59.352Z,4.7615,126.568,54.349,4.4,141 km ESE of Sarangani Philippines -2025-11-22T00:00:27.966Z,6.5559,125.4557,213.272,4.6,1 km W of Santa Maria Philippines -2025-11-22T11:00:10.744Z,4.8375,126.4906,58.92,4.7,129 km ESE of Sarangani Philippines -2025-11-22T11:57:10.409Z,5.7142,125.8067,95.208,4.4,29 km SE of Caburan Philippines -2025-11-22T15:17:51.619Z,5.0401,126.6349,9.254,4.4,135 km ESE of Sarangani Philippines -2025-11-22T15:18:46.471Z,5.1687,126.6937,9.873,4.4,138 km E of Sarangani Philippines -2025-11-22T19:07:46.455Z,2.1725,127.7313,186.847,4.2,58 km NNW of Tobelo Indonesia -2025-11-23T08:43:45.668Z,4.5925,125.929,87.44,4.3,103 km SSE of Sarangani Philippines -2025-11-23T10:10:23.976Z,6.1123,127.574,10,4.4,156 km E of Pondaguitan Philippines -2025-11-23T15:37:43.312Z,1.7192,126.4493,48.937,4.8,146 km NW of Ternate Indonesia -2025-11-23T22:18:27.021Z,4.9341,126.4562,51.353,4.4,121 km ESE of Sarangani Philippines -2025-11-24T04:43:12.733Z,7.0271,127.4559,10,4.4,101 km ESE of Santiago Philippines -2025-11-24T13:38:20.193Z,7.0104,126.8277,71.86,4.4,39 km SE of Manay Philippines -2025-11-25T06:39:55.675Z,7.5157,126.9389,20.631,4.4,39 km E of Baculin Philippines -2025-11-25T10:45:18.212Z,6.3406,126.1995,71.508,5.4,3 km SE of Pondaguitan Philippines -2025-11-25T12:06:58.113Z,2.3697,126.6955,59.068,4.6,162 km WNW of Tobelo Indonesia -2025-11-26T06:07:49.620Z,4.3115,127.6385,124.434,4.1,269 km ESE of Sarangani Philippines -2025-11-26T08:24:28.020Z,5.3272,127.1472,129.531,4.8,156 km SE of Pondaguitan Philippines -2025-11-26T14:55:04.938Z,7.3667,126.8047,78.369,4.4,26 km ESE of Baculin Philippines -2025-11-26T23:00:42.628Z,4.2042,122.7437,10,5,222 km SSE of Tabiauan Philippines -2025-11-27T04:41:34.746Z,5.257,125.8825,106.753,4.5,49 km ESE of Sarangani Philippines -2025-11-27T08:45:12.920Z,4.148,126.5326,46.152,4.4,182 km SE of Sarangani Philippines -2025-11-27T09:59:14.336Z,1.7442,126.4587,57.575,4.8,147 km NW of Ternate Indonesia -2025-11-27T12:31:13.201Z,4.0695,126.6845,26.731,4.9,200 km SE of Sarangani Philippines -2025-11-27T17:45:08.855Z,4.2421,126.6452,46.838,4.2,183 km SE of Sarangani Philippines -2025-11-28T05:15:23.455Z,3.9525,126.4004,44.415,4.1,191 km SSE of Sarangani Philippines -2025-11-28T15:28:50.367Z,5.7796,126.2159,151.062,4.4,63 km ESE of Mangili Philippines -2025-12-01T01:41:43.796Z,7.4127,127.0704,35,4.6,53 km E of Baculin Philippines -2025-12-01T15:19:33.629Z,2.7113,128.1721,73.75,4.3,110 km N of Tobelo Indonesia -2025-12-01T18:32:07.963Z,8.9656,126.3025,56.431,4.5,4 km NNE of Bacolod Philippines -2025-12-09T11:06:36.276Z,9.1991,126.085,102.632,4.4,4 km SSE of Lanuza Philippines -2025-12-09T18:02:29.579Z,1.6191,126.4763,44.813,4.7,136 km NW of Ternate Indonesia -2025-12-10T07:41:00.084Z,8.4837,125.9407,10,4.5,5 km E of Borbon Philippines -2025-12-10T14:09:19.257Z,6.0139,127.5901,10,4.5,160 km ESE of Pondaguitan Philippines -2025-12-11T08:56:39.301Z,9.126,126.8851,10,4.4,68 km ENE of Aras-asan Philippines -2025-12-12T06:40:40.754Z,5.9979,126.7703,95.212,4.4,76 km ESE of Pondaguitan Philippines -2025-12-12T11:45:10.288Z,4.9649,126.051,76.493,4.3,81 km SE of Sarangani Philippines -2025-12-12T20:13:55.024Z,8.2613,127.4213,10,4.9,109 km E of Barcelona Philippines -2025-12-13T02:01:57.750Z,7.6037,126.9374,35,4.4,41 km E of Baganga Philippines -2025-12-13T11:44:32.733Z,2.2496,123.9124,355.442,4.3,134 km NW of Manado Indonesia -2025-12-13T16:34:08.704Z,5.6678,126.4752,99.491,4.5,83 km SSE of Pondaguitan Philippines -2025-12-14T12:03:27.070Z,1.9913,126.4277,54.045,5.1,156 km ENE of Bitung Indonesia -2025-12-15T04:30:48.273Z,6.2254,125.8788,125.466,4.4,21 km ENE of Lapuan Philippines -2025-12-15T06:50:34.262Z,6.3466,127.3576,10,4.6,126 km SE of Lukatan Philippines -2025-12-16T22:29:41.121Z,2.0579,127.2379,88.129,4.4,93 km WNW of Tobelo Indonesia -2025-12-18T05:30:17.659Z,1.3857,125.7798,65.736,5,72 km E of Bitung Indonesia -2025-12-18T19:32:57.185Z,5.1478,126.8482,80.331,4.4,153 km SSE of Pondaguitan Philippines -2025-12-18T21:19:36.111Z,6.883,127.2192,10,4.7,83 km ESE of Manay Philippines -2025-12-19T04:02:35.982Z,8.7018,126.9099,35,5.2,68 km E of Marihatag Philippines -2025-12-19T05:25:52.803Z,7.7554,126.7636,64.549,4.9,24 km ENE of Kinablangan Philippines -2025-12-19T14:51:34.187Z,7.603,126.9087,35.051,4.1,38 km E of Baganga Philippines -2025-12-19T16:51:26.700Z,8.6096,126.9329,64.042,4.4,70 km ENE of Hinatuan Philippines -2025-12-21T12:21:45.837Z,1.4457,126.392,44,5.5,132 km WNW of Ternate Indonesia -2025-12-21T17:53:56.743Z,8.3759,127.6817,9,5.6,139 km E of Barcelona Philippines -2025-12-22T01:14:13.055Z,8.448,127.6638,10,4.6,139 km ENE of Barcelona Philippines -2025-12-22T10:05:14.914Z,1.453,126.4287,52.071,4.3,129 km NW of Ternate Indonesia -2025-12-22T15:42:42.002Z,9.2882,123.1783,10,4.2,12 km W of Banilad Philippines -2025-12-24T05:50:52.267Z,8.3133,127.463,10,4.7,114 km E of Barcelona Philippines -2025-12-24T21:05:15.692Z,6.3659,123.9582,529.927,4,12 km SW of Sangay Philippines -2025-12-25T02:48:05.359Z,3.1466,125.7941,138.464,4.3,202 km NNE of Bitung Indonesia -2025-12-27T02:29:23.592Z,5.5943,126.3364,57.556,4.3,84 km ESE of Caburan Philippines -2025-12-27T12:00:26.143Z,5.3874,126.3197,56.09,4.2,94 km E of Sarangani Philippines -2025-12-30T16:45:05.128Z,6.2037,126.8425,80.527,4.5,75 km ESE of Pondaguitan Philippines -2025-12-31T12:18:20.229Z,3.1067,127.6806,114.445,4.4,156 km NNW of Tobelo Indonesia -2025-12-31T16:56:59.040Z,9.6143,126.1051,94.532,4.3,15 km E of Socorro Philippines -2025-12-31T17:30:42.385Z,7.2829,126.7816,69.87,4.6,23 km E of Santiago Philippines -2026-01-01T02:56:20.920Z,4.9101,127.4925,107.314,4.9,216 km SE of Pondaguitan Philippines -2026-01-01T10:46:13.510Z,7.7463,126.7833,57.731,5,26 km ENE of Kinablangan Philippines -2026-01-01T19:35:10.165Z,2.2262,127.4086,106.385,4.4,86 km NW of Tobelo Indonesia -2026-01-03T06:53:49.037Z,9.6401,125.9969,78.578,4.3,3 km ENE of Socorro Philippines -2026-01-03T20:46:55.830Z,4.9406,127.5406,109.278,4.7,217 km SE of Pondaguitan Philippines -2026-01-03T23:13:48.023Z,5.8225,127.148,35,4.8,122 km ESE of Pondaguitan Philippines -2026-01-04T00:04:21.343Z,2.8161,128.5779,241.499,4.6,135 km NNE of Tobelo Indonesia -2026-01-05T19:31:23.012Z,9.808,126.2471,34.865,4.4,16 km ENE of Union Philippines -2026-01-05T22:48:36.392Z,2.2085,126.886,44.609,4.4,135 km WNW of Tobelo Indonesia -2026-01-06T17:57:28.784Z,7.4157,126.7474,60.737,4.4,18 km ESE of Baculin Philippines -2026-01-07T03:02:53.890Z,7.2449,126.8953,22,6.4,35 km E of Santiago Philippines -2026-01-07T03:21:56.867Z,7.4785,127.3996,10,4.5,90 km E of Baculin Philippines -2026-01-07T03:58:27.880Z,7.1784,126.8117,91.198,4.4,29 km ESE of Santiago Philippines -2026-01-07T04:12:58.780Z,7.2517,127.0208,24.869,5.4,49 km E of Santiago Philippines -2026-01-07T04:36:44.744Z,7.3548,127.1396,10,4.9,62 km E of Baculin Philippines -2026-01-07T04:47:00.165Z,7.2524,126.6432,85.929,4.9,8 km ESE of Santiago Philippines -2026-01-07T06:16:19.920Z,7.3384,127.0512,35,4.6,53 km E of Santiago Philippines -2026-01-07T08:11:58.769Z,7.2849,127.2366,10,4.3,73 km E of Santiago Philippines -2026-01-07T10:49:17.940Z,5.762,125.4567,151.699,4.1,6 km NW of Kalbay Philippines -2026-01-07T13:47:59.565Z,7.3431,127.0702,35.533,4.9,55 km ESE of Baculin Philippines -2026-01-07T17:35:57.056Z,7.5417,126.7813,66.222,4.7,23 km ENE of Baculin Philippines -2026-01-08T20:06:33.342Z,8.7657,126.2985,61.328,4.5,4 km S of Marihatag Philippines -2026-01-08T21:47:49.772Z,6.7867,126.6301,175.219,4.1,33 km SE of Lukatan Philippines -2026-01-09T17:38:17.589Z,1.6498,124.5717,244.961,4.3,35 km WNW of Manado Indonesia -2026-01-10T14:29:19.281Z,10.0109,125.9159,118.619,4.4,11 km WNW of San Benito Philippines -2026-01-10T14:58:23.726Z,3.7767,126.9922,31,6.4,247 km SE of Sarangani Philippines -2026-01-10T15:06:51.094Z,3.6285,126.9375,57.236,5.5,241 km NNW of Tobelo Indonesia -2026-01-10T15:15:13.595Z,3.6772,127.0133,45.122,5.2,242 km NNW of Tobelo Indonesia -2026-01-10T19:40:49.243Z,3.6273,127.215,34.857,4.1,227 km NNW of Tobelo Indonesia -2026-01-11T08:45:14.151Z,3.325,126.8378,41.611,4.6,219 km NW of Tobelo Indonesia -2026-01-11T17:28:00.239Z,7.2818,126.3,10,4.7,24 km WSW of San Pedro Philippines -2026-01-11T20:09:49.144Z,2.7565,127.5683,102.001,4.2,123 km NNW of Tobelo Indonesia -2026-01-11T22:09:42.959Z,3.1241,126.3311,51.69,4.4,229 km NE of Bitung Indonesia -2026-01-12T05:41:50.469Z,3.3369,126.5792,56.65,4.4,238 km NW of Tobelo Indonesia -2026-01-12T16:48:24.405Z,9.9764,125.8857,74.17,4.8,13 km W of San Benito Philippines -2026-01-12T21:03:25.290Z,3.376,126.7562,46.379,4.7,229 km NW of Tobelo Indonesia -2026-01-12T21:33:13.803Z,3.6294,126.589,47.652,4.5,232 km SSE of Sarangani Philippines -2026-01-13T01:27:15.997Z,2.8493,126.5209,52.11,5.2,206 km NW of Tobelo Indonesia -2026-01-13T02:03:41.133Z,2.9517,126.8111,47.491,4.5,189 km NW of Tobelo Indonesia -2026-01-13T03:42:01.837Z,3.4644,127.1051,35,4.2,216 km NNW of Tobelo Indonesia -2026-01-13T06:59:47.531Z,3.3115,126.5462,52.71,4.3,239 km NW of Tobelo Indonesia -2026-01-13T17:23:01.870Z,4.8172,124.7389,60.43,4.8,103 km SW of Sarangani Philippines -2026-01-13T18:00:49.257Z,5.4859,127.39,156.383,4.4,165 km SE of Pondaguitan Philippines -2026-01-13T20:31:43.796Z,3.1248,126.9518,53.573,4.6,194 km NW of Tobelo Indonesia -2026-01-14T18:00:27.571Z,1.8921,127.3659,110.494,4.9,73 km WNW of Tobelo Indonesia -2026-01-15T11:40:52.617Z,3.5125,126.8714,10,4.2,234 km NNW of Tobelo Indonesia -2026-01-15T19:50:00.801Z,6.3668,127.5056,10,4.7,139 km ESE of Tarragona Philippines -2026-01-16T06:31:03.092Z,7.4994,126.614,82.965,4.4,6 km NNE of Baculin Philippines -2026-01-16T11:04:47.053Z,6.571,126.7106,10,4.6,53 km SE of Bobon Philippines -2026-01-16T11:54:43.046Z,7.3823,127.0721,27.434,4.6,54 km E of Baculin Philippines -2026-01-17T13:53:06.616Z,4.3982,126.6035,10,4.4,168 km SE of Sarangani Philippines -2026-01-18T03:55:54.021Z,6.4703,123.6854,10,4.4,39 km W of Bantogon Philippines -2026-01-18T15:18:16.831Z,4.3327,126.9428,35,4.5,202 km SE of Sarangani Philippines -2026-01-19T18:53:35.612Z,6.3872,123.6623,10,4.9,42 km W of Sangay Philippines -2026-01-19T19:00:21.982Z,6.3557,123.7166,10,5.4,37 km WSW of Sangay Philippines -2026-01-19T19:38:52.205Z,6.2874,123.8607,10,4.2,26 km SW of Sangay Philippines -2026-01-19T19:49:14.951Z,6.2728,123.6669,10,4.4,45 km WSW of Sangay Philippines -2026-01-19T19:54:01.798Z,6.3365,123.7878,10,4.7,30 km WSW of Sangay Philippines -2026-01-19T21:50:33.235Z,6.509,126.0773,89.017,4.5,2 km WSW of Luzon Philippines -2026-01-19T22:23:31.480Z,6.3936,123.7371,10,4.6,34 km W of Sangay Philippines -2026-01-20T03:46:22.397Z,6.2755,123.6715,9.66,4.3,45 km WSW of Sangay Philippines -2026-01-20T04:38:18.947Z,6.3903,123.8364,10,4.5,23 km WSW of Sangay Philippines -2026-01-20T06:43:46.604Z,9.1147,126.0652,10,4.5,10 km W of Buenavista Philippines -2026-01-20T10:29:55.144Z,6.3987,123.7327,10,4.7,34 km W of Sangay Philippines -2026-01-20T15:25:59.379Z,6.319,123.7375,9.709,4.2,36 km WSW of Sangay Philippines -2026-01-20T20:37:58.268Z,1.586,125.7924,50.902,4.4,75 km ENE of Bitung Indonesia -2026-01-20T23:25:17.102Z,6.374,123.7923,10,4.8,28 km WSW of Sangay Philippines -2026-01-20T23:30:58.963Z,6.3691,123.7064,10,4.5,38 km WSW of Sangay Philippines -2026-01-20T23:40:27.773Z,6.2644,123.8507,46.173,4.3,29 km SW of Sangay Philippines -2026-01-21T00:38:54.316Z,6.3765,123.7404,10,4.4,34 km WSW of Sangay Philippines -2026-01-21T01:09:38.563Z,6.3196,123.7292,10,4.2,37 km WSW of Sangay Philippines -2026-01-21T01:12:24.575Z,6.4193,123.7773,10,4.5,29 km W of Sangay Philippines -2026-01-21T01:26:05.586Z,6.4167,123.7634,10,4.7,31 km W of Sangay Philippines -2026-01-21T01:33:04.854Z,6.2931,123.7256,10,5.4,39 km WSW of Sangay Philippines -2026-01-21T02:30:29.548Z,6.1989,123.6481,10,4.4,51 km WSW of Sangay Philippines -2026-01-21T02:37:52.410Z,6.303,123.6599,10,4.3,45 km WSW of Sangay Philippines -2026-01-21T03:03:55.537Z,1.5908,126.9898,10,4.4,98 km NNW of Ternate Indonesia -2026-01-21T04:10:02.569Z,3.0618,122.8579,498.092,4.7,280 km N of Gorontalo Indonesia -2026-01-21T05:14:27.962Z,6.3491,123.7428,13.013,4.7,35 km WSW of Sangay Philippines -2026-01-21T05:39:23.898Z,6.4248,123.8143,9.959,4.3,25 km W of Sangay Philippines -2026-01-21T08:49:01.924Z,6.3189,123.8223,10,4.5,28 km WSW of Sangay Philippines -2026-01-21T11:55:58.473Z,6.4134,123.7766,10,4.7,29 km W of Sangay Philippines -2026-01-21T12:59:21.127Z,6.5191,123.6137,10,4.7,46 km W of Bantogon Philippines -2026-01-21T22:59:38.347Z,9.2865,126.2722,10,4.3,8 km E of Cortes Philippines -2026-01-21T23:51:55.409Z,3.3097,126.6668,36.429,4,229 km NW of Tobelo Indonesia -2026-01-22T01:50:45.890Z,6.3797,123.6921,10,4.4,39 km W of Sangay Philippines -2026-01-22T20:06:25.617Z,6.327,123.6822,10,4.3,42 km WSW of Sangay Philippines -2026-01-23T06:57:56.301Z,7.7438,126.8698,9.418,4.1,35 km E of Kinablangan Philippines -2026-01-23T23:30:16.958Z,5.4462,125.5011,198.726,4.5,6 km NE of Sarangani Philippines -2026-01-24T00:26:01.704Z,8.8353,126.4487,70.246,4.3,16 km ESE of Aras-asan Philippines -2026-01-24T00:52:31.191Z,5.4252,126.0624,10,4.6,66 km E of Sarangani Philippines -2026-01-24T10:45:54.116Z,5.0658,125.4337,177.088,4.5,37 km S of Sarangani Philippines -2026-01-24T18:26:22.319Z,6.4229,123.6458,17.308,4.1,44 km W of Sangay Philippines -2026-01-25T10:05:40.249Z,7.89,127.1913,10,4.5,74 km ENE of Kinablangan Philippines -2026-01-25T22:48:21.054Z,6.2944,123.6679,10,4.6,44 km WSW of Sangay Philippines -2026-01-26T00:33:44.355Z,6.3994,123.7247,15.644,4.3,35 km W of Sangay Philippines -2026-01-26T10:06:09.938Z,6.3461,123.5895,10,4.4,51 km WSW of Sangay Philippines -2026-01-26T10:25:03.863Z,6.3145,123.865,10,4.3,24 km SW of Sangay Philippines -2026-01-27T00:49:52.464Z,3.2485,127.0067,36.144,4.5,201 km NNW of Tobelo Indonesia -2026-01-27T08:41:00.824Z,6.1464,127.6506,10,4.3,164 km E of Pondaguitan Philippines -2026-01-27T14:39:35.486Z,1.7406,126.9094,72.826,4.2,117 km NNW of Ternate Indonesia -2026-01-27T14:47:38.519Z,6.5909,123.6065,11.799,4.7,47 km W of Bantogon Philippines -2026-01-27T15:26:55.036Z,6.8697,123.4546,10,4.3,62 km S of Panubigan Philippines -2026-01-27T15:48:24.487Z,6.438,123.6959,9.944,4.6,38 km W of Sangay Philippines -2026-01-27T15:50:37.554Z,6.4883,123.7403,10,5.1,32 km W of Bantogon Philippines -2026-01-27T17:05:09.429Z,6.4232,123.801,10,5.2,27 km W of Sangay Philippines -2026-01-27T17:07:38.918Z,6.4551,123.7855,10,5,28 km W of Sangay Philippines -2026-01-27T17:41:03.310Z,6.3572,123.6729,10,4.2,42 km WSW of Sangay Philippines -2026-01-27T17:43:59.859Z,6.3997,123.8091,13.188,4.7,26 km W of Sangay Philippines -2026-01-27T19:46:23.218Z,6.4388,123.7924,10,4.8,27 km W of Sangay Philippines -2026-01-27T19:54:12.979Z,6.5222,123.8098,10,5.1,24 km W of Bantogon Philippines -2026-01-27T23:19:58.461Z,6.5003,123.8567,10,4.6,19 km W of Bantogon Philippines -2026-01-27T23:21:02.275Z,6.3567,123.6353,10,4.4,46 km WSW of Sangay Philippines -2026-01-28T01:41:49.103Z,6.511,123.8484,10,5.4,20 km W of Bantogon Philippines -2026-01-28T02:23:10.078Z,6.2426,123.6868,10,4.4,45 km WSW of Sangay Philippines -2026-01-28T03:23:01.649Z,6.3967,123.7538,10,4.5,32 km W of Sangay Philippines -2026-01-28T03:24:27.814Z,6.5648,123.8961,10,5.1,15 km WNW of Bantogon Philippines -2026-01-28T03:25:20.628Z,6.2357,123.5536,10,4.7,59 km WSW of Sangay Philippines -2026-01-28T03:33:46.755Z,6.2875,123.7948,10,4.9,32 km WSW of Sangay Philippines -2026-01-28T05:08:21.366Z,6.2044,123.8363,10,4.7,35 km SW of Sangay Philippines -2026-01-28T05:38:54.376Z,6.2705,123.7605,10,4.4,36 km WSW of Sangay Philippines -2026-01-28T06:31:19.816Z,6.3936,123.7702,10,5.1,30 km W of Sangay Philippines -2026-01-28T06:47:01.506Z,6.4317,123.741,16,5.9,33 km W of Sangay Philippines -2026-01-28T06:52:04.173Z,6.3774,123.6279,10,4.5,46 km W of Sangay Philippines -2026-01-28T06:52:33.522Z,6.5523,123.5458,10,5,53 km W of Bantogon Philippines -2026-01-28T07:11:15.039Z,6.3413,123.6363,10,4.4,46 km WSW of Sangay Philippines -2026-01-28T07:24:11.665Z,6.2155,123.5824,10,4.3,57 km WSW of Sangay Philippines -2026-01-28T07:43:30.474Z,6.4433,123.6537,10,4.6,43 km WSW of Bantogon Philippines -2026-01-28T07:47:43.934Z,6.3697,123.5329,10,4.4,57 km W of Sangay Philippines -2026-01-28T08:01:04.479Z,6.3195,123.7143,10,4.4,39 km WSW of Sangay Philippines -2026-01-28T08:34:31.956Z,6.5076,123.7366,10,5.4,32 km W of Bantogon Philippines -2026-01-28T08:35:21.867Z,6.3923,123.6213,10,5.3,47 km W of Sangay Philippines -2026-01-28T08:38:47.432Z,6.5064,123.6429,10,5.6,43 km W of Bantogon Philippines -2026-01-28T08:43:45.744Z,6.5456,123.8911,10,5.1,15 km W of Bantogon Philippines -2026-01-28T08:51:51.632Z,6.3102,123.7423,10,4.3,36 km WSW of Sangay Philippines -2026-01-28T09:24:34.694Z,6.5656,123.711,10,4.9,35 km W of Bantogon Philippines -2026-01-28T09:30:28.570Z,6.405,123.6792,10,4.7,40 km W of Sangay Philippines -2026-01-28T10:28:24.047Z,6.2256,123.6943,10,4.4,45 km WSW of Sangay Philippines -2026-01-28T12:20:29.427Z,6.3079,123.6149,10,4.3,49 km WSW of Sangay Philippines -2026-01-28T12:45:48.561Z,6.4504,123.7165,10,4.5,36 km WSW of Bantogon Philippines -2026-01-28T12:55:28.569Z,6.264,123.795,10,4.6,34 km SW of Sangay Philippines -2026-01-28T13:24:03.137Z,6.3756,123.7689,10,4.5,31 km WSW of Sangay Philippines -2026-01-28T13:41:32.432Z,6.4727,123.7507,10,4.7,31 km WSW of Bantogon Philippines -2026-01-28T14:08:55.190Z,6.4451,123.6849,10,4.4,39 km WSW of Bantogon Philippines -2026-01-28T14:20:43.710Z,6.2312,123.5869,10,4.1,55 km WSW of Sangay Philippines -2026-01-28T14:33:12.356Z,6.401,123.8059,10,4.9,26 km W of Sangay Philippines -2026-01-28T14:36:34.177Z,6.3453,123.9032,10,4.4,19 km SW of Sangay Philippines -2026-01-28T14:49:06.044Z,6.6126,123.8127,10,4.6,25 km WNW of Bantogon Philippines -2026-01-28T15:27:39.871Z,6.34,123.6265,10,4.4,47 km WSW of Sangay Philippines -2026-01-28T15:35:29.644Z,6.3833,123.5847,10,4.2,51 km W of Sangay Philippines -2026-01-28T15:58:04.003Z,6.4524,123.6886,10,5,39 km WSW of Bantogon Philippines -2026-01-28T18:52:55.114Z,1.3908,123.5716,45.576,4.7,110 km NNE of Gorontalo Indonesia -2026-01-28T19:45:11.840Z,6.2913,123.8417,10,4.4,28 km SW of Sangay Philippines -2026-01-28T20:07:13.128Z,2.2462,126.7048,35,4.1,156 km WNW of Tobelo Indonesia -2026-01-28T22:07:49.959Z,1.3775,123.5571,35,4.5,107 km NNE of Gorontalo Indonesia -2026-01-28T23:43:56.536Z,6.2973,123.8079,10,5,30 km WSW of Sangay Philippines -2026-01-29T00:08:22.207Z,6.0531,123.6801,10,4.2,58 km WSW of Palimbang Philippines -2026-01-29T00:33:17.880Z,6.2022,123.6384,10,4.5,52 km WSW of Sangay Philippines -2026-01-29T22:31:12.199Z,6.4742,123.8704,10,4.6,19 km WSW of Bantogon Philippines -2026-01-29T23:05:18.609Z,6.5418,123.8182,10,4.9,23 km W of Bantogon Philippines -2026-01-30T00:49:17.041Z,6.4372,123.9181,10,5.1,14 km W of Sangay Philippines -2026-01-30T06:14:52.857Z,6.1301,125.7766,85.947,4.5,8 km E of Kalian Philippines -2026-01-30T11:36:29.364Z,2.9617,128.3582,75.937,4.1,141 km NNE of Tobelo Indonesia -2026-01-30T18:23:08.099Z,5.272,122.1333,10,4.5,87 km SSE of Tabiauan Philippines -2026-01-30T21:19:04.676Z,6.3197,123.7528,10,4.3,35 km WSW of Sangay Philippines -2026-01-30T23:54:05.821Z,5.0369,127.5694,13.656,4.3,212 km SE of Pondaguitan Philippines -2026-01-31T00:36:10.145Z,3.4843,124.2161,346.396,4.8,232 km NNW of Manado Indonesia -2026-01-31T07:23:15.947Z,6.2625,123.6982,10,4.6,43 km WSW of Sangay Philippines -2026-01-31T07:59:32.347Z,6.2,123.8392,10,4.5,35 km SW of Sangay Philippines -2026-01-31T08:21:37.758Z,6.1075,123.7484,10,4.2,49 km SW of Sangay Philippines -2026-01-31T12:10:05.592Z,6.1498,123.7417,10,4.1,46 km SW of Sangay Philippines -2026-01-31T18:34:44.544Z,6.7091,123.597,594.604,4.6,47 km WSW of Gadung Philippines -2026-02-01T02:58:00.241Z,6.2841,123.7506,10,4.5,37 km WSW of Sangay Philippines -2026-02-01T03:00:06.528Z,6.3174,123.683,10,4.4,42 km WSW of Sangay Philippines -2026-02-01T04:06:08.623Z,6.3192,123.6376,10,4.3,47 km WSW of Sangay Philippines -2026-02-01T06:55:19.992Z,6.2475,123.722,10,4.6,41 km WSW of Sangay Philippines -2026-02-02T09:58:22.586Z,6.4015,123.5296,9.876,4.1,57 km W of Sangay Philippines -2026-02-04T07:11:28.517Z,9.3095,126.4767,26.429,5,31 km E of Cortes Philippines -2026-02-04T21:34:24.660Z,6.2825,123.921,10,4.5,22 km SW of Sangay Philippines -2026-02-05T04:19:59.982Z,6.2147,123.904,539.543,4.2,29 km SSW of Sangay Philippines -2026-02-05T18:15:51.506Z,9.9608,125.5946,162.508,5,0 km NNE of Dinagat Philippines -2026-02-05T18:36:41.253Z,7.3371,123.7422,584.029,4.3,32 km W of Litayan Philippines -2026-02-06T05:35:10.159Z,3.2771,126.9192,40.274,4.4,209 km NW of Tobelo Indonesia -2026-02-06T12:47:58.125Z,3.8897,125.8142,141.048,4.4,171 km SSE of Sarangani Philippines -2026-02-07T22:32:50.469Z,5.0478,126.8412,73.82,4.4,157 km ESE of Sarangani Philippines -2026-02-07T22:39:24.283Z,7.4826,127.0231,10.304,4.3,48 km E of Baculin Philippines -2026-02-08T05:58:16.434Z,6.762,126.1917,10,4.3,11 km ENE of Talisay Philippines -2026-02-08T19:18:02.148Z,4.3053,127.7493,103.36,4.4,281 km ESE of Sarangani Philippines -2026-02-09T08:30:51.571Z,2.3512,126.7963,36.888,5,151 km WNW of Tobelo Indonesia -2026-02-10T01:04:02.538Z,6.364,123.721,10,4.3,36 km WSW of Sangay Philippines -2026-02-10T16:54:42.395Z,1.2739,125.8704,27.668,4.2,84 km ESE of Bitung Indonesia -2026-02-11T08:50:46.868Z,4.4403,126.079,10,4.2,126 km SSE of Sarangani Philippines -2026-02-13T10:26:17.590Z,4.2401,128.5272,10,4.5,283 km NNE of Tobelo Indonesia -2026-02-13T10:49:46.727Z,3.8419,127.9318,10,4.5,233 km N of Tobelo Indonesia -2026-02-13T12:50:57.181Z,6.3572,126.9084,115.739,4.6,80 km E of Pondaguitan Philippines -2026-02-13T13:12:18.561Z,4.2415,128.3576,10,4.5,280 km N of Tobelo Indonesia -2026-02-13T14:56:58.771Z,4.1565,128.2524,11,5.6,269 km N of Tobelo Indonesia -2026-02-13T15:09:24.504Z,4.2147,128.1845,10,5.1,275 km N of Tobelo Indonesia -2026-02-13T15:23:20.210Z,4.0929,128.2589,10,4.5,262 km N of Tobelo Indonesia -2026-02-13T15:55:09.529Z,4.1449,128.0337,10,5,267 km N of Tobelo Indonesia -2026-02-13T17:02:02.001Z,4.3592,128.3092,10.185,4.4,292 km N of Tobelo Indonesia -2026-02-13T17:39:08.174Z,4.2371,128.2355,8.65,4.9,278 km N of Tobelo Indonesia -2026-02-13T18:56:48.169Z,4.2188,128.0784,27.69,4.6,275 km N of Tobelo Indonesia -2026-02-13T20:27:47.213Z,4.1197,128.213,10.011,4.8,265 km N of Tobelo Indonesia -2026-02-13T21:17:01.483Z,4.1816,128.395,10,4.4,274 km N of Tobelo Indonesia -2026-02-13T21:49:39.381Z,3.8898,126.398,63.714,4.4,196 km SSE of Sarangani Philippines -2026-02-14T00:35:17.825Z,4.1508,128.2392,10,4.5,269 km N of Tobelo Indonesia -2026-02-14T01:02:18.967Z,4.3029,126.6709,73.987,4.8,180 km SE of Sarangani Philippines -2026-02-14T06:11:11.486Z,3.2043,126.8455,33.069,4.2,208 km NW of Tobelo Indonesia -2026-02-14T17:23:01.930Z,5.6708,127.1406,66.978,5.2,131 km SE of Pondaguitan Philippines -2026-02-14T19:29:16.896Z,4.4032,128.2543,10,4.6,297 km N of Tobelo Indonesia -2026-02-15T01:46:40.270Z,4.4358,128.07,35,4.3,298 km SE of Pondaguitan Philippines -2026-02-15T05:43:07.150Z,4.3519,128.4509,9.876,4.3,294 km N of Tobelo Indonesia -2026-02-15T07:21:05.717Z,4.163,128.2992,10,4.6,271 km N of Tobelo Indonesia -2026-02-15T15:58:18.703Z,4.1779,127.8691,10,4.6,271 km N of Tobelo Indonesia -2026-02-15T17:57:58.349Z,4.3104,128.0246,35,4.1,285 km N of Tobelo Indonesia -2026-02-16T01:22:11.849Z,4.2621,128.5118,10,4.4,285 km NNE of Tobelo Indonesia -2026-02-17T00:34:49.296Z,3.7048,126.8925,35,4.3,245 km SE of Sarangani Philippines -2026-02-17T02:23:04.322Z,4.3362,128.2555,10,4.4,289 km N of Tobelo Indonesia -2026-02-17T03:32:07.569Z,9.3708,126.591,10,4.6,45 km ENE of Cortes Philippines -2026-02-17T14:20:33.427Z,4.4161,128.1524,26.286,4.6,297 km N of Tobelo Indonesia -2026-02-17T22:23:50.643Z,8.7909,127.3224,10,4.4,111 km E of Aras-asan Philippines -2026-02-17T23:48:54.433Z,2.053,127.1916,110.872,4.1,97 km WNW of Tobelo Indonesia -2026-02-19T03:11:50.458Z,3.99,128.1874,10,4.6,250 km N of Tobelo Indonesia -2026-02-19T03:22:33.521Z,3.9978,128.2458,10,4.6,252 km N of Tobelo Indonesia -2026-02-19T04:41:30.505Z,4.2501,128.2797,10,4.6,280 km N of Tobelo Indonesia -2026-02-19T13:13:47.623Z,6.1725,123.6648,10,4.5,51 km SW of Sangay Philippines -2026-02-19T13:44:16.162Z,5.6066,127.1027,114.108,4.7,132 km SE of Pondaguitan Philippines -2026-02-19T14:43:05.692Z,9.7088,126.1089,10,4.7,5 km S of Union Philippines -2026-02-19T17:41:46.258Z,4.0258,128.3114,10,4.3,256 km N of Tobelo Indonesia -2026-02-20T10:22:18.755Z,4.8764,125.8392,97.441,4.3,71 km SE of Sarangani Philippines -2026-02-21T06:56:12.767Z,7.7459,126.8772,41.769,4.1,36 km E of Kinablangan Philippines -2026-02-21T11:25:44.950Z,5.7835,127.3387,10,4.1,143 km ESE of Pondaguitan Philippines -2026-02-21T20:28:47.791Z,4.0084,128.2901,10,4.5,254 km N of Tobelo Indonesia -2026-02-22T10:50:56.140Z,5.1024,124.8301,132.543,4.2,77 km WSW of Sarangani Philippines -2026-02-23T01:32:11.505Z,5.5537,126.349,87.601,4.3,88 km ESE of Caburan Philippines -2026-02-23T14:49:35.480Z,1.8222,127.28,118.744,4.3,81 km W of Tobelo Indonesia -2026-02-24T19:01:08.195Z,5.7664,123.5966,10,4.6,81 km SW of Palimbang Philippines -2026-02-26T08:39:37.352Z,4.2172,125.6958,140.862,4,133 km S of Sarangani Philippines -2026-02-26T16:24:40.776Z,10.0034,125.3014,208.544,4.4,16 km ESE of San Francisco Philippines -2026-02-27T12:00:34.321Z,6.849,126.712,10,4.4,36 km SE of Tarragona Philippines -2026-02-27T13:39:42.931Z,4.0188,126.6748,54.891,4.3,203 km SE of Sarangani Philippines -2026-02-27T16:23:51.202Z,8.9272,126.2256,78.53,4.6,7 km W of Bacolod Philippines -2026-02-27T22:26:33.134Z,2.4258,125.9192,10,4.2,140 km NE of Bitung Indonesia -2026-02-28T04:15:56.350Z,3.5408,124.5421,350.457,4.4,229 km SSW of Sarangani Philippines -2026-02-28T17:22:22.401Z,5.0219,125.9332,101.33,5.3,67 km SE of Sarangani Philippines -2026-03-01T18:33:23.740Z,2.7568,128.2361,143.254,4.8,116 km NNE of Tobelo Indonesia -2026-03-02T23:52:07.100Z,6.5717,126.3447,93.086,4.3,26 km ENE of Nangan Philippines -2026-03-03T11:25:33.827Z,4.6153,126.8285,35.935,4.5,174 km ESE of Sarangani Philippines -2026-03-03T19:24:17.763Z,7.933,126.8094,83.86,4.4,39 km NE of Kinablangan Philippines -2026-03-05T23:25:11.865Z,9.1849,125.9866,10,4.6,5 km SW of Carmen Philippines -2026-03-06T13:41:14.015Z,3.4189,126.1274,93.756,4.2,231 km SSE of Sarangani Philippines -2026-03-07T05:57:58.593Z,7.1582,126.7108,80.703,4.7,19 km ESE of Manay Philippines -2026-03-07T07:08:07.283Z,6.0763,126.0335,145.272,4.3,35 km SSW of Pondaguitan Philippines -2026-03-07T11:57:27.687Z,1.2408,125.8753,35,4.7,86 km ESE of Bitung Indonesia -2026-03-07T19:54:42.756Z,1.6779,126.4313,10,4.2,144 km NW of Ternate Indonesia -2026-03-08T00:57:39.367Z,2.2221,126.586,43.467,4.2,167 km WNW of Tobelo Indonesia -2026-03-08T07:03:24.313Z,5.6062,126.2926,95.459,4,79 km ESE of Caburan Philippines -2026-03-09T03:26:36.762Z,6.7169,127.1365,10,4.5,84 km ESE of San Ignacio Philippines -2026-03-09T16:12:25.126Z,1.5875,127.0133,27.57,4.5,97 km NNW of Ternate Indonesia -2026-03-12T00:06:25.286Z,9.0351,126.6961,10,4.9,45 km ENE of Aras-asan Philippines -2026-03-12T12:05:19.786Z,2.9406,123.233,466.903,4.2,241 km NW of Manado Indonesia -2026-03-12T12:27:16.344Z,1.9951,126.7925,35,4.4,138 km WNW of Tobelo Indonesia -2026-03-14T06:50:49.030Z,4.2435,128.3584,10,4.6,280 km N of Tobelo Indonesia -2026-03-14T23:39:48.106Z,2.3258,127.2596,35,4.2,106 km NW of Tobelo Indonesia -2026-03-16T19:10:00.793Z,8.8759,126.2873,73.241,4.5,2 km WSW of Aras-asan Philippines -2026-03-16T22:53:35.625Z,7.2372,126.5292,92.567,4.4,2 km NNW of Manay Philippines -2026-03-17T08:40:42.276Z,5.4449,126.6601,92.575,4.4,114 km SSE of Pondaguitan Philippines -2026-03-18T00:10:13.280Z,4.383,128.4101,10,4.4,296 km N of Tobelo Indonesia -2026-03-18T03:56:24.244Z,3.3597,126.167,44.603,4.2,239 km SSE of Sarangani Philippines -2026-03-21T17:38:07.815Z,5.2429,126.354,123.408,4.1,100 km E of Sarangani Philippines -2026-03-22T12:30:05.428Z,9.3702,125.987,10,4.5,4 km E of Carrascal Philippines -2026-03-22T22:08:07.398Z,4.2088,126.3034,10,4.3,161 km SE of Sarangani Philippines -2026-03-23T11:25:02.380Z,2.1769,126.8095,94.838,4.6,142 km WNW of Tobelo Indonesia -2026-03-24T05:20:08.877Z,5.7628,125.2783,10,4.3,5 km ENE of Baliton Philippines -2026-03-26T05:29:58.783Z,4.505,127.8944,89.165,4.3,279 km SE of Pondaguitan Philippines -2026-03-26T12:41:44.554Z,2.6527,128.2878,175.034,4.4,106 km NNE of Tobelo Indonesia -2026-03-28T03:33:57.947Z,5.6461,125.5883,205.198,4.6,13 km SE of Kalbay Philippines -2026-03-28T07:09:08.047Z,7.7344,127.3884,10,4.4,92 km E of Kinablangan Philippines -2026-03-29T09:27:08.589Z,1.8532,127.1957,74.505,4.2,91 km W of Tobelo Indonesia -2026-03-30T01:29:07.027Z,2.3378,126.826,35,4.4,147 km WNW of Tobelo Indonesia -2026-03-31T03:37:55.068Z,3.0003,126.4325,50.88,4.7,224 km NW of Tobelo Indonesia -2026-04-01T05:01:39.254Z,5.3145,126.4369,10,4.2,108 km E of Sarangani Philippines -2026-04-01T09:44:12.077Z,3.7109,126.0727,72.517,4.5,198 km SSE of Sarangani Philippines -2026-04-01T23:00:21.315Z,1.2523,126.1332,35,5,113 km E of Bitung Indonesia -2026-04-01T23:15:37.518Z,1.2506,125.8558,35,4.8,83 km ESE of Bitung Indonesia -2026-04-01T23:18:28.491Z,1.2961,126.0699,35,4.9,106 km E of Bitung Indonesia -2026-04-01T23:43:19.003Z,1.2612,126.2202,35,4.6,123 km E of Bitung Indonesia -2026-04-01T23:53:06.623Z,1.405,126.2916,35,4.7,129 km E of Bitung Indonesia -2026-04-02T01:20:05.334Z,1.3042,126.0181,35,4.4,100 km E of Bitung Indonesia -2026-04-02T01:46:04.823Z,1.3672,126.0933,35,4.3,107 km E of Bitung Indonesia -2026-04-02T02:59:23.817Z,1.2931,126.0984,35,4.2,109 km E of Bitung Indonesia -2026-04-02T03:32:21.514Z,1.2154,126.0042,35,4.5,100 km ESE of Bitung Indonesia -2026-04-02T03:49:33.624Z,3.2666,126.8619,35,4.6,212 km NW of Tobelo Indonesia -2026-04-02T04:20:53.102Z,1.2495,126.1449,35,4.5,115 km E of Bitung Indonesia -2026-04-02T04:46:56.949Z,1.4743,126.3484,35,4.3,135 km E of Bitung Indonesia -2026-04-02T06:03:41.246Z,1.3389,126.162,35,4.4,115 km E of Bitung Indonesia -2026-04-02T06:23:58.217Z,1.3416,126.4834,35,4.4,117 km WNW of Ternate Indonesia -2026-04-02T08:52:06.726Z,1.3943,126.4989,35,5,119 km NW of Ternate Indonesia -2026-04-02T10:10:21.905Z,1.3837,126.227,35,4.9,122 km E of Bitung Indonesia -2026-04-02T10:21:30.768Z,1.3983,126.3011,35,4.8,130 km E of Bitung Indonesia -2026-04-02T11:35:34.977Z,1.4173,126.1937,35,5.2,118 km E of Bitung Indonesia -2026-04-02T13:33:26.098Z,1.2467,126.1109,35,4.4,111 km E of Bitung Indonesia -2026-04-02T14:06:08.500Z,1.3295,126.3817,35,4.5,126 km WNW of Ternate Indonesia -2026-04-02T14:13:47.725Z,1.2924,126.3547,21.743,5.9,127 km WNW of Ternate Indonesia -2026-04-02T14:54:34.612Z,1.2779,126.232,35,4.4,124 km E of Bitung Indonesia -2026-04-02T15:34:27.060Z,1.5269,126.3415,35,5.1,135 km E of Bitung Indonesia -2026-04-02T16:10:26.394Z,1.2537,126.1624,35,5.1,116 km E of Bitung Indonesia -2026-04-02T16:16:22.078Z,1.2964,126.3173,35,4.6,131 km WNW of Ternate Indonesia -2026-04-02T17:35:04.487Z,1.2776,126.3106,35,4.3,131 km WNW of Ternate Indonesia -2026-04-02T17:58:44.260Z,1.3673,126.0435,35,4.3,102 km E of Bitung Indonesia -2026-04-02T18:04:18.172Z,1.2563,126.2341,35,4.4,124 km E of Bitung Indonesia -2026-04-02T19:08:02.410Z,1.2498,126.1633,35,4.9,117 km E of Bitung Indonesia -2026-04-02T21:44:54.351Z,1.3717,126.4472,35,4.5,122 km WNW of Ternate Indonesia -2026-04-02T21:53:53.529Z,1.287,126.2665,35,4.4,127 km E of Bitung Indonesia -2026-04-03T00:22:19.887Z,1.3191,126.432,29,5.6,121 km WNW of Ternate Indonesia -2026-04-03T01:13:49.832Z,1.2759,126.0764,35,4.2,107 km E of Bitung Indonesia -2026-04-03T04:42:05.325Z,1.4266,126.0665,35,5.2,104 km E of Bitung Indonesia -2026-04-03T09:24:07.288Z,1.3867,126.3799,35,5,129 km WNW of Ternate Indonesia -2026-04-03T09:29:20.407Z,1.4287,126.4121,58.232,4.5,129 km WNW of Ternate Indonesia -2026-04-03T10:35:05.577Z,1.2818,126.0452,35,4.5,103 km E of Bitung Indonesia -2026-04-03T10:59:07.305Z,1.5227,126.3979,35,5.1,136 km NW of Ternate Indonesia -2026-04-03T21:19:06.118Z,1.4501,126.2796,35,5.1,128 km E of Bitung Indonesia -2026-04-03T21:19:34.878Z,1.2918,126.1889,35,4.9,119 km E of Bitung Indonesia -2026-04-03T22:49:49.592Z,1.4044,126.3543,35,4.7,133 km WNW of Ternate Indonesia -2026-04-04T10:34:28.266Z,4.8733,126.1392,67,6,95 km SE of Sarangani Philippines -2026-04-04T18:59:13.490Z,1.3889,126.4669,25.334,4.7,121 km WNW of Ternate Indonesia -2026-04-04T20:03:55.819Z,1.256,126.2063,35,4.2,121 km E of Bitung Indonesia -2026-04-04T20:11:27.791Z,1.4104,126.4337,35,4.6,126 km WNW of Ternate Indonesia -2026-04-04T20:16:25.260Z,1.4641,126.5106,35,5,122 km NW of Ternate Indonesia -2026-04-04T20:18:21.440Z,1.4533,126.4599,35,4.6,126 km NW of Ternate Indonesia -2026-04-04T20:53:54.811Z,1.3627,126.4307,35,4.3,123 km WNW of Ternate Indonesia -2026-04-04T22:37:50.166Z,1.4473,126.6146,35,4.5,112 km NW of Ternate Indonesia -2026-04-05T14:15:37.276Z,1.2135,125.9644,35,4.3,96 km ESE of Bitung Indonesia -2026-04-05T18:09:27.341Z,5.0257,127.454,132.665,4.2,204 km SE of Pondaguitan Philippines -2026-04-06T01:56:47.310Z,1.4456,126.2128,35,4.8,120 km E of Bitung Indonesia -2026-04-06T05:32:11.683Z,1.4433,126.3798,35,4.9,133 km WNW of Ternate Indonesia -2026-04-06T21:18:00.944Z,3.2352,124.7699,199.184,4.2,194 km N of Manado Indonesia -2026-04-06T21:38:44.126Z,1.4546,126.3604,35,4.4,135 km WNW of Ternate Indonesia -2026-04-07T07:51:56.058Z,6.4284,125.5122,191.747,4.5,5 km SW of Pangian Philippines -2026-04-08T05:56:23.342Z,7.5174,127.0406,19.756,4.5,50 km E of Baculin Philippines -2026-04-09T10:45:37.379Z,8.8944,126.5462,40.212,4.6,25 km E of Aras-asan Philippines -2026-04-09T15:07:31.585Z,6.2348,125.9442,81.949,4.7,28 km SW of Surup Philippines -2026-04-09T20:18:27.782Z,1.2981,126.1819,35,4.4,118 km E of Bitung Indonesia -2026-04-10T17:22:20.093Z,1.2542,126.0727,35,4.1,107 km E of Bitung Indonesia -2026-04-11T06:36:18.295Z,8.2853,126.5348,81.222,4,17 km NE of Barcelona Philippines -2026-04-12T00:52:56.362Z,1.2922,126.1986,35,4.2,120 km E of Bitung Indonesia -2026-04-13T06:59:43.476Z,1.4674,126.3391,39.029,4.9,134 km E of Bitung Indonesia -2026-04-16T00:02:32.084Z,7.9465,126.792,10,4.3,38 km E of Santa Maria Philippines -2026-04-16T07:12:55.577Z,3.4242,126.4646,58.153,4.2,245 km SSE of Sarangani Philippines -2026-04-16T09:56:29.373Z,2.0444,124.3303,343.03,4.1,84 km NW of Manado Indonesia -2026-04-17T06:47:16.905Z,9.6712,125.7062,120.188,4.5,8 km N of Gigaquit Philippines -2026-04-17T14:49:26.486Z,1.8023,127.3648,123.511,4.2,72 km W of Tobelo Indonesia -2026-04-17T23:27:34.807Z,1.3072,126.1854,35,5,118 km E of Bitung Indonesia -2026-04-17T23:29:38.089Z,1.2934,126.2705,35,5.1,128 km E of Bitung Indonesia -2026-04-18T02:14:34.165Z,1.3682,126.1551,35,4.7,114 km E of Bitung Indonesia -2026-04-18T08:45:47.309Z,6.472,125.9238,150.863,4.4,19 km WSW of Luzon Philippines -2026-04-18T12:30:53.299Z,5.6624,125.501,236.71,4.3,4 km E of Sugal Philippines -2026-04-18T22:16:04.020Z,5.621,126.515,112.026,4.2,89 km SSE of Pondaguitan Philippines -2026-04-19T05:41:11.130Z,6.6199,127.284,10,4.6,103 km ESE of San Ignacio Philippines -2026-04-19T18:35:44.601Z,3.479,126.5469,35,4.8,244 km SSE of Sarangani Philippines -2026-04-20T21:16:10.589Z,2.6873,122.9414,487.377,4.4,238 km N of Gorontalo Indonesia -2026-04-21T17:03:19.441Z,8.652,127.1324,9.309,4.4,93 km ENE of Hinatuan Philippines -2026-04-22T01:33:11.478Z,6.0528,127.3627,10,4.2,135 km ESE of Pondaguitan Philippines -2026-04-23T12:13:10.164Z,1.3299,126.3438,35,4.3,130 km WNW of Ternate Indonesia -2026-04-23T20:24:10.925Z,3.0123,128.2634,206.928,4.2,144 km NNE of Tobelo Indonesia -2026-04-24T08:41:39.029Z,1.4495,126.6033,35,4.6,113 km NW of Ternate Indonesia -2026-04-24T23:50:23.047Z,7.0997,127.129,10,4.4,64 km ESE of Santiago Philippines -2026-04-25T04:28:35.083Z,1.2273,126.0586,35,4.6,106 km ESE of Bitung Indonesia -2026-04-25T13:19:54.889Z,8.1581,126.5732,60.302,4.4,15 km E of Barcelona Philippines -2026-04-26T07:20:42.702Z,2.3613,127.0606,51.068,4.6,126 km WNW of Tobelo Indonesia -2026-04-26T10:27:07.008Z,4.9549,127.5383,113.216,4.1,216 km SE of Pondaguitan Philippines -2026-04-26T15:52:35.660Z,3.0165,126.4939,48.217,4.3,220 km NW of Tobelo Indonesia -2026-04-27T00:31:04.069Z,6.6546,127.4369,10,4.4,116 km ESE of San Ignacio Philippines -2026-04-27T11:16:59.477Z,8.7449,126.2026,92.605,4.3,3 km N of Salvacion Philippines -2026-04-28T19:59:06.785Z,2.5138,128.2913,199.944,4.4,92 km NNE of Tobelo Indonesia -2026-04-29T22:04:39.230Z,8.952,126.4816,19.754,5,20 km ENE of Aras-asan Philippines -2026-04-30T10:44:16.049Z,7.1607,126.5694,142.004,4.4,6 km SSE of Manay Philippines -2026-04-30T15:01:35.606Z,7.6078,126.612,70.071,4.5,6 km ENE of Baganga Philippines -2026-05-02T23:05:58.186Z,3.6696,122.2075,601.606,4,250 km SE of Latung Philippines -2026-05-03T03:36:22.650Z,9.0346,126.0569,10,4.2,12 km WNW of Gamut Philippines -2026-05-03T06:57:42.701Z,1.4364,126.2841,35,4.8,128 km E of Bitung Indonesia -2026-05-03T12:21:48.583Z,5.6048,126.9594,10,4.4,120 km SE of Pondaguitan Philippines -2026-05-03T20:55:00.018Z,3.6792,126.8358,51.654,4.5,244 km SE of Sarangani Philippines -2026-05-04T03:37:08.558Z,3.0874,126.507,52.712,4.7,224 km NW of Tobelo Indonesia -2026-05-04T14:04:12.268Z,5.3975,123.5227,556.564,4.3,116 km SW of Palimbang Philippines -2026-05-05T09:13:59.663Z,1.2452,125.8365,35,4.4,81 km ESE of Bitung Indonesia -2026-05-05T23:10:51.756Z,7.9419,126.8754,35,4.6,45 km NE of Kinablangan Philippines -2026-05-06T14:56:41.340Z,2.5039,127.6047,91.49,4.4,96 km NNW of Tobelo Indonesia -2026-05-06T15:35:49.132Z,7.5271,126.7728,29,5.5,22 km ENE of Baculin Philippines -2026-05-07T09:08:45.929Z,7.6824,126.9647,35,4.4,45 km E of Kinablangan Philippines -2026-05-07T20:45:26.834Z,6.1318,127.0146,199.873,4.3,96 km ESE of Pondaguitan Philippines -2026-05-08T05:53:49.329Z,1.5269,126.0296,35,4.4,100 km E of Bitung Indonesia -2026-05-10T01:50:14.495Z,5.6797,126.3366,103.705,4.6,77 km SSE of Pondaguitan Philippines -2026-05-11T07:54:23.721Z,8.1187,126.3586,10,4.6,9 km WSW of Barcelona Philippines -2026-05-11T13:33:12.519Z,2.8018,127.8554,95.42,4,119 km N of Tobelo Indonesia -2026-05-12T08:53:57.637Z,4.7983,127.5163,120.156,5,227 km SE of Pondaguitan Philippines -2026-05-12T18:10:22.433Z,2.9083,127.8786,71.729,4.7,131 km N of Tobelo Indonesia -2026-05-12T23:10:11.464Z,4.7477,126.5495,78.896,4.2,140 km ESE of Sarangani Philippines -2026-05-14T22:04:51.574Z,5.4133,126.1368,123.554,4,74 km E of Sarangani Philippines -2026-05-14T23:33:05.925Z,4.5368,125.5105,168.562,4.2,95 km S of Sarangani Philippines -2026-05-16T11:25:44.044Z,6.8189,124.695,10,5,4 km SW of Badak Philippines -2026-05-16T22:07:43.874Z,1.3663,126.1644,31.75,4.4,115 km E of Bitung Indonesia -2026-05-18T11:51:09.421Z,1.8793,126.582,44.663,4.2,149 km NW of Ternate Indonesia -2026-05-18T18:06:05.372Z,6.0809,126.9702,66.511,4.4,93 km ESE of Pondaguitan Philippines -2026-05-20T02:26:51.312Z,9.97,125.9102,87.668,4.7,10 km W of San Benito Philippines -2026-05-20T02:37:42.179Z,7.5271,126.9379,10,4.3,39 km ENE of Baculin Philippines -2026-05-20T12:48:55.330Z,1.2827,126.2968,37.166,4.6,131 km E of Bitung Indonesia -2026-05-21T01:25:32.929Z,5.1665,127.4492,35,4.2,193 km SE of Pondaguitan Philippines -2026-05-21T16:45:56.957Z,5.6419,126.7834,135.715,4.7,104 km SE of Pondaguitan Philippines -2026-05-22T03:29:35.361Z,3.3458,128.2276,95.106,4.3,180 km N of Tobelo Indonesia -2026-05-22T07:07:46.496Z,6.3077,124.0647,526.843,4,15 km S of Sangay Philippines -2026-05-24T08:24:15.305Z,9.1382,126.5366,9.887,4.6,34 km ENE of La Paz Philippines -2026-05-24T13:19:05.760Z,9.1379,126.5217,53.181,5.1,33 km ENE of La Paz Philippines -2026-05-24T16:48:40.991Z,9.2772,126.2883,34.129,5.5,10 km E of Cortes Philippines -2026-05-25T02:32:38.451Z,8.038,126.9262,35,4.9,53 km E of Santa Maria Philippines -2026-05-25T03:11:36.793Z,5.3333,126.3596,115.083,4,99 km E of Sarangani Philippines -2026-05-26T11:11:05.648Z,1.8043,124.8735,269.072,4.4,35 km N of Manado Indonesia -2026-05-27T03:22:55.704Z,1.2225,125.9748,35,4.2,97 km ESE of Bitung Indonesia -2026-05-28T10:44:43.705Z,8.7897,126.3501,83.192,4.5,6 km ESE of Marihatag Philippines -2026-05-30T05:48:13.661Z,6.1228,126.9009,10,4.5,84 km ESE of Pondaguitan Philippines -2026-05-30T06:08:29.132Z,6.3114,126.8088,48.445,4.2,70 km E of Pondaguitan Philippines -2026-05-30T07:03:03.492Z,6.0722,126.7799,41.144,4.6,73 km ESE of Pondaguitan Philippines -2026-05-30T07:13:46.611Z,6.255,126.6809,51.983,4.4,56 km ESE of Pondaguitan Philippines -2026-05-30T07:16:17.367Z,5.9429,127.352,10,4.4,137 km ESE of Pondaguitan Philippines -2026-05-30T13:15:12.317Z,6.1528,126.5793,27.216,4.6,50 km ESE of Pondaguitan Philippines -2026-05-30T13:18:16.055Z,6.3567,126.9388,9.624,4.5,84 km E of Pondaguitan Philippines -2026-05-30T21:20:38.167Z,6.2825,126.9984,10,4.3,91 km E of Pondaguitan Philippines -2026-05-31T03:13:26.177Z,4.1021,126.7571,64.468,4.3,203 km SE of Sarangani Philippines -2026-05-31T05:57:11.048Z,8.9178,126.5066,56.726,4.5,21 km E of Aras-asan Philippines -2026-05-31T08:01:54.679Z,6.2909,126.8256,8.806,4.2,72 km E of Pondaguitan Philippines -2026-06-01T00:36:36.507Z,1.7257,126.5898,68.592,4.2,136 km NW of Ternate Indonesia -2026-06-01T04:42:22.467Z,6.7345,123.7281,10.115,4.3,33 km WSW of Gadung Philippines -2026-06-01T10:57:15.279Z,6.9146,126.2534,66.238,4.6,6 km SE of Mati Philippines -2026-06-04T19:24:48.723Z,5.8671,125.9866,142.01,4.3,36 km ESE of Mangili Philippines -2026-06-05T14:47:21.456Z,5.3905,125.9273,113.709,4.5,51 km E of Sarangani Philippines -2026-06-05T23:19:15.180Z,5.4504,125.8681,90.648,4.3,45 km E of Sarangani Philippines -2026-06-06T08:56:40.067Z,3.8937,122.7709,566.15,4.1,255 km SSE of Tabiauan Philippines -2026-06-06T12:38:50.726Z,4.79,126.0772,101.818,4.2,96 km SE of Sarangani Philippines -2026-06-06T13:39:33.238Z,1.593,126.233,67.389,4.4,124 km E of Bitung Indonesia diff --git a/experiments/davao_2026/fetch_usgs_raw.sh b/experiments/davao_2026/fetch_usgs_raw.sh deleted file mode 100644 index fa309b9..0000000 --- a/experiments/davao_2026/fetch_usgs_raw.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -RAW_DATA_DIRECTORY="${SCRIPT_DIR}/data/raw" -OUTPUT_FILE="${RAW_DATA_DIRECTORY}/usgs_davao_2021_2026_raw.csv" - -mkdir -p "${RAW_DATA_DIRECTORY}" - -USGS_QUERY_URL="https://earthquake.usgs.gov/fdsnws/event/1/query" - -TARGET_LATITUDE="5.599" -TARGET_LONGITUDE="125.056" - -ANALYSIS_RADIUS_KM="500" - -START_TIME="2021-06-06T23:37:41Z" - -# One second before the target earthquake. -END_TIME="2026-06-07T23:37:40Z" - -MINIMUM_MAGNITUDE="2.5" - -echo "Downloading USGS Davao and southern Mindanao validation catalog..." -echo "Output: ${OUTPUT_FILE}" - -curl \ - --fail \ - --location \ - --silent \ - --show-error \ - --get \ - "${USGS_QUERY_URL}" \ - --data-urlencode "format=csv" \ - --data-urlencode "starttime=${START_TIME}" \ - --data-urlencode "endtime=${END_TIME}" \ - --data-urlencode "latitude=${TARGET_LATITUDE}" \ - --data-urlencode "longitude=${TARGET_LONGITUDE}" \ - --data-urlencode "maxradiuskm=${ANALYSIS_RADIUS_KM}" \ - --data-urlencode "minmagnitude=${MINIMUM_MAGNITUDE}" \ - --data-urlencode "eventtype=earthquake" \ - --data-urlencode "orderby=time-asc" \ - --output "${OUTPUT_FILE}" - -if [[ ! -s "${OUTPUT_FILE}" ]]; then - echo "USGS returned an empty catalog." >&2 - exit 1 -fi - -LINE_COUNT="$( - wc -l < "${OUTPUT_FILE}" -)" - -if (( LINE_COUNT >= 20001 )); then - echo "Catalog may have reached the USGS query limit." >&2 - echo "Rows including header: ${LINE_COUNT}" >&2 - echo "Split the acquisition into shorter intervals." >&2 - exit 1 -fi - -echo "Download complete." -echo "Rows including header: ${LINE_COUNT}" -echo "Raw catalog: ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/davao_2026/normalize_catalog.sh b/experiments/davao_2026/normalize_catalog.sh deleted file mode 100644 index 8013376..0000000 --- a/experiments/davao_2026/normalize_catalog.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -RAW_CATALOG="${SCRIPT_DIR}/data/raw/usgs_davao_2021_2026_raw.csv" - -NORMALIZED_DIRECTORY="${SCRIPT_DIR}/data/normalized" -NORMALIZED_CATALOG="${NORMALIZED_DIRECTORY}/catalog.csv" - -NORMALIZER="${REPOSITORY_ROOT}/build/cameff_catalog_normalizer" - -if [[ ! -x "${NORMALIZER}" ]]; then - echo "Catalog normalizer not found:" >&2 - echo " ${NORMALIZER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${RAW_CATALOG}" ]]; then - echo "Raw Davao catalog not found:" >&2 - echo " ${RAW_CATALOG}" >&2 - echo "Run the acquisition script first." >&2 - exit 1 -fi - -mkdir -p "${NORMALIZED_DIRECTORY}" - -"${NORMALIZER}" \ - "${RAW_CATALOG}" \ - "${NORMALIZED_CATALOG}" - -echo "Normalized catalog created:" -echo " ${NORMALIZED_CATALOG}" \ No newline at end of file diff --git a/experiments/davao_2026/results/davao_frozen_threshold_metrics.csv b/experiments/davao_2026/results/davao_frozen_threshold_metrics.csv deleted file mode 100644 index 31ec4f2..0000000 --- a/experiments/davao_2026/results/davao_frozen_threshold_metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -threshold,tp,fp,tn,fn,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy -0.73,0,0,4,1,0.000000,0.000000,1.000000,0.000000,0.000000,0.500000 diff --git a/experiments/davao_2026/run_hindcast.sh b/experiments/davao_2026/run_hindcast.sh deleted file mode 100644 index 253dd65..0000000 --- a/experiments/davao_2026/run_hindcast.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -REPORT_FILE="${RESULT_DIRECTORY}/davao_2026_hindcast.txt" - -TARGET_TIME="2026-06-07T23:37:41Z" - -# Frozen 24-hour forecasting lead. -CUTOFF_TIME="2026-06-06T23:37:41Z" - -# One-year evidence window ending at the cutoff. -OBSERVATION_START_TIME="2025-06-06T23:37:41Z" - -TARGET_EPOCH="$( - date -u -d "${TARGET_TIME}" +%s -)" - -CUTOFF_EPOCH="$( - date -u -d "${CUTOFF_TIME}" +%s -)" - -OBSERVATION_START_EPOCH="$( - date -u -d "${OBSERVATION_START_TIME}" +%s -)" - -TARGET_LATITUDE="5.599" -TARGET_LONGITUDE="125.056" -TARGET_DEPTH_KM="57.0" -TARGET_MAGNITUDE="7.8" -TARGET_REGION="Southern Mindanao Offshore Sarangani Philippines" - -ANALYSIS_LATITUDE="5.599" -ANALYSIS_LONGITUDE="125.056" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - echo "Run the acquisition and normalization scripts first." >&2 - exit 1 -fi - -mkdir -p "${RESULT_DIRECTORY}" - -"${RUNNER}" \ - "${CATALOG}" \ - "${TARGET_EPOCH}" \ - "${TARGET_LATITUDE}" \ - "${TARGET_LONGITUDE}" \ - "${TARGET_DEPTH_KM}" \ - "${TARGET_MAGNITUDE}" \ - "${TARGET_REGION}" \ - "${OBSERVATION_START_EPOCH}" \ - "${CUTOFF_EPOCH}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - | tee "${REPORT_FILE}" - -HAZARD_EVIDENCE="$( - awk -F= ' - $1 == "hazard_evidence" { - print $2 - exit - } - ' "${REPORT_FILE}" -)" - -if [[ -z "${HAZARD_EVIDENCE}" ]]; then - echo "Unable to extract hazard evidence." >&2 - exit 1 -fi - -CLASSIFICATION="$( - awk \ - -v score="${HAZARD_EVIDENCE}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "warning" - } else { - print "no_warning" - } - }' -)" - -echo "frozen_threshold=${FROZEN_THRESHOLD}" \ - | tee -a "${REPORT_FILE}" - -echo "threshold_classification=${CLASSIFICATION}" \ - | tee -a "${REPORT_FILE}" - -echo -echo "Hindcast report written to:" -echo " ${REPORT_FILE}" \ No newline at end of file diff --git a/experiments/davao_2026/run_threshold_report.sh b/experiments/davao_2026/run_threshold_report.sh deleted file mode 100644 index 6214b5a..0000000 --- a/experiments/davao_2026/run_threshold_report.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -INPUT_FILE="${SCRIPT_DIR}/results/davao_validation_windows.csv" -OUTPUT_FILE="${SCRIPT_DIR}/results/davao_frozen_threshold_metrics.csv" - -if [[ ! -f "${INPUT_FILE}" ]]; then - echo "Davao validation results not found:" >&2 - echo " ${INPUT_FILE}" >&2 - echo "Run the validation suite first." >&2 - exit 1 -fi - -awk -F, ' - NR == 1 { - next - } - - { - label = $2 + 0 - prediction = $3 + 0 - - if (label == 1 && prediction == 1) { - tp++ - } else if (label == 0 && prediction == 1) { - fp++ - } else if (label == 0 && prediction == 0) { - tn++ - } else if (label == 1 && prediction == 0) { - fn++ - } - } - - END { - precision = (tp + fp) ? tp / (tp + fp) : 0 - recall = (tp + fn) ? tp / (tp + fn) : 0 - specificity = (tn + fp) ? tn / (tn + fp) : 0 - fpr = (fp + tn) ? fp / (fp + tn) : 0 - - f1 = (precision + recall) \ - ? 2 * precision * recall / (precision + recall) \ - : 0 - - balanced_accuracy = (recall + specificity) / 2 - - print "threshold,tp,fp,tn,fn,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy" - - printf "0.73,%d,%d,%d,%d,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f\n", \ - tp, fp, tn, fn, \ - precision, recall, specificity, fpr, f1, balanced_accuracy - } -' "${INPUT_FILE}" | tee "${OUTPUT_FILE}" - -echo -echo "Frozen-threshold report written to:" -echo " ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/davao_2026/run_validation_suite.sh b/experiments/davao_2026/run_validation_suite.sh deleted file mode 100644 index 72ad87e..0000000 --- a/experiments/davao_2026/run_validation_suite.sh +++ /dev/null @@ -1,238 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -WINDOW_DIRECTORY="${RESULT_DIRECTORY}/windows" -SUMMARY_FILE="${RESULT_DIRECTORY}/davao_validation_windows.csv" - -ANALYSIS_LATITUDE="5.599" -ANALYSIS_LONGITUDE="125.056" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - exit 1 -fi - -mkdir -p "${WINDOW_DIRECTORY}" - -extract_value() -{ - local key="$1" - local file="$2" - - awk -F= -v requested_key="${key}" ' - $1 == requested_key { - print substr($0, index($0, "=") + 1) - exit - } - ' "${file}" -} - -classify_score() -{ - local score="$1" - - awk \ - -v score="${score}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "1" - } else { - print "0" - } - }' -} - -run_window() -{ - local case_id="$1" - local label="$2" - local observation_start_time="$3" - local cutoff_time="$4" - local target_time="$5" - local target_depth="$6" - local target_magnitude="$7" - local target_region="$8" - - local observation_start_epoch - local cutoff_epoch - local target_epoch - - local report_file - - local experiment_status - local evidence_event_count - local hazard_evidence - local fused_confidence - local dominant_pattern - local dominant_expert - local predicted_label - - observation_start_epoch="$( - date -u -d "${observation_start_time}" +%s - )" - - cutoff_epoch="$( - date -u -d "${cutoff_time}" +%s - )" - - target_epoch="$( - date -u -d "${target_time}" +%s - )" - - report_file="${WINDOW_DIRECTORY}/${case_id}.txt" - - echo "Running ${case_id}..." - - "${RUNNER}" \ - "${CATALOG}" \ - "${target_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${target_depth}" \ - "${target_magnitude}" \ - "${target_region}" \ - "${observation_start_epoch}" \ - "${cutoff_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - > "${report_file}" - - experiment_status="$( - extract_value "experiment_status" "${report_file}" - )" - - if [[ "${experiment_status}" != "ok" ]]; then - echo "Experiment failed for ${case_id}." >&2 - cat "${report_file}" >&2 - exit 1 - fi - - evidence_event_count="$( - extract_value "evidence_event_count" "${report_file}" - )" - - hazard_evidence="$( - extract_value "hazard_evidence" "${report_file}" - )" - - fused_confidence="$( - extract_value "fused_confidence" "${report_file}" - )" - - dominant_pattern="$( - extract_value "dominant_pattern" "${report_file}" - )" - - dominant_expert="$( - extract_value "dominant_expert" "${report_file}" - )" - - predicted_label="$( - classify_score "${hazard_evidence}" - )" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${label}" \ - "${predicted_label}" \ - "${observation_start_time}" \ - "${cutoff_time}" \ - "${evidence_event_count}" \ - "${hazard_evidence}" \ - "${fused_confidence}" \ - "${dominant_pattern}" \ - "${dominant_expert}" \ - >> "${SUMMARY_FILE}" -} - -cat > "${SUMMARY_FILE}" <<'EOF' -case_id,label,predicted_label,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert -EOF - -run_window \ - "davao_2022_control" \ - "0" \ - "2021-06-06T23:37:41Z" \ - "2022-06-06T23:37:41Z" \ - "2022-06-07T23:37:41Z" \ - "0.0" \ - "0.0" \ - "Davao 2022 negative control" - -run_window \ - "davao_2023_control" \ - "0" \ - "2022-06-06T23:37:41Z" \ - "2023-06-06T23:37:41Z" \ - "2023-06-07T23:37:41Z" \ - "0.0" \ - "0.0" \ - "Davao 2023 negative control" - -run_window \ - "davao_2024_control" \ - "0" \ - "2023-06-06T23:37:41Z" \ - "2024-06-06T23:37:41Z" \ - "2024-06-07T23:37:41Z" \ - "0.0" \ - "0.0" \ - "Davao 2024 negative control" - -run_window \ - "davao_2025_control" \ - "0" \ - "2024-06-06T23:37:41Z" \ - "2025-06-06T23:37:41Z" \ - "2025-06-07T23:37:41Z" \ - "0.0" \ - "0.0" \ - "Davao 2025 negative control" - -run_window \ - "davao_2026_positive" \ - "1" \ - "2025-06-06T23:37:41Z" \ - "2026-06-06T23:37:41Z" \ - "2026-06-07T23:37:41Z" \ - "57.0" \ - "7.8" \ - "Southern Mindanao Offshore Sarangani Philippines" - -echo -echo "Validation suite complete." -echo "Frozen threshold: ${FROZEN_THRESHOLD}" -echo "Summary:" -echo " ${SUMMARY_FILE}" \ No newline at end of file diff --git a/experiments/fm_v1_3_wider_usgs_hindcast/dataset_map.csv b/experiments/fm_v1_3_wider_usgs_hindcast/dataset_map.csv deleted file mode 100644 index 344145a..0000000 --- a/experiments/fm_v1_3_wider_usgs_hindcast/dataset_map.csv +++ /dev/null @@ -1,6 +0,0 @@ -catalog_dataset,feature_catalog_path,outcome_catalog_path -japan_2011_pre_event,cameff_data/usgs_hindcast_v1/japan_2011/pre_event/usgs_catalog.csv,cameff_data/usgs_hindcast_v1/japan_2011/outcome/usgs_catalog.csv -japan_2009_control,cameff_data/usgs_hindcast_v1/japan_2011/pre_event/usgs_catalog.csv,cameff_data/usgs_hindcast_v1/japan_2011/pre_event/usgs_catalog.csv -central_chile,cameff_data/usgs_hindcast_v1/research/central_chile/usgs_catalog.csv,cameff_data/usgs_hindcast_v1/research/central_chile/usgs_catalog.csv -sumatra_andaman,cameff_data/usgs_hindcast_v1/research/sumatra_andaman/usgs_catalog.csv,cameff_data/usgs_hindcast_v1/research/sumatra_andaman/usgs_catalog.csv -eastern_turkiye,cameff_data/usgs_hindcast_v1/research/eastern_turkiye/usgs_catalog.csv,cameff_data/usgs_hindcast_v1/research/eastern_turkiye/usgs_catalog.csv diff --git a/experiments/fm_v1_3_wider_usgs_hindcast/results/outcome_labels.csv b/experiments/fm_v1_3_wider_usgs_hindcast/results/outcome_labels.csv deleted file mode 100644 index 60c7075..0000000 --- a/experiments/fm_v1_3_wider_usgs_hindcast/results/outcome_labels.csv +++ /dev/null @@ -1,9 +0,0 @@ -case_id,case_role,decision_time_utc,outcome_end_utc,target_magnitude,radius_km,qualifying_event_count,largest_qualifying_magnitude,first_qualifying_event_id,first_qualifying_event_time,outcome_label -japan_2011_target,known_positive,2011-03-11T05:46:23Z,2011-03-18T05:46:23Z,8.0,600,1,9.100,official20110311054624120_30,2011-03-11T05:46:24.120Z,positive_confirmed -japan_2009_control,deterministic_control,2009-03-11T05:46:23Z,2009-03-18T05:46:23Z,8.0,600,0,,,,control_negative -chile_2010_target,known_positive,2010-02-27T06:34:10Z,2010-03-06T06:34:10Z,8.0,700,1,8.800,official20100227063411530_30,2010-02-27T06:34:11.530Z,positive_confirmed -chile_2008_control,deterministic_control,2008-02-27T06:34:10Z,2008-03-05T06:34:10Z,8.0,700,0,,,,control_negative -sumatra_2004_target,known_positive,2004-12-26T00:58:52Z,2005-01-02T00:58:52Z,8.0,900,1,9.100,official20041226005853450_30,2004-12-26T00:58:53.450Z,positive_confirmed -sumatra_2002_control,deterministic_control,2002-12-26T00:58:52Z,2003-01-02T00:58:52Z,8.0,900,0,,,,control_negative -turkiye_2023_target,known_positive,2023-02-06T01:17:33Z,2023-02-13T01:17:33Z,7.0,650,2,7.800,us6000jllz,2023-02-06T01:17:34.342Z,positive_confirmed -turkiye_2021_control,deterministic_control,2021-02-06T01:17:33Z,2021-02-13T01:17:33Z,7.0,650,0,,,,control_negative diff --git a/experiments/fm_v1_3_wider_usgs_hindcast/results/qualifying_events.csv b/experiments/fm_v1_3_wider_usgs_hindcast/results/qualifying_events.csv deleted file mode 100644 index 7ffca70..0000000 --- a/experiments/fm_v1_3_wider_usgs_hindcast/results/qualifying_events.csv +++ /dev/null @@ -1,6 +0,0 @@ -case_id,event_id,event_time_utc,magnitude,latitude,longitude,distance_km -japan_2011_target,official20110311054624120_30,2011-03-11T05:46:24.120Z,9.100,38.297000,142.373000,0.000 -chile_2010_target,official20100227063411530_30,2010-02-27T06:34:11.530Z,8.800,-36.122000,-72.898000,0.000 -sumatra_2004_target,official20041226005853450_30,2004-12-26T00:58:53.450Z,9.100,3.295000,95.982000,0.000 -turkiye_2023_target,us6000jllz,2023-02-06T01:17:34.342Z,7.800,37.225600,37.014300,0.052 -turkiye_2023_target,us6000jlqa,2023-02-06T10:24:48.811Z,7.500,38.010600,37.196200,88.707 diff --git a/experiments/fm_v1_3_wider_usgs_hindcast/results/raw_catalog_observables.csv b/experiments/fm_v1_3_wider_usgs_hindcast/results/raw_catalog_observables.csv deleted file mode 100644 index dc127d5..0000000 --- a/experiments/fm_v1_3_wider_usgs_hindcast/results/raw_catalog_observables.csv +++ /dev/null @@ -1,9 +0,0 @@ -case_id,total_predecision_count,recent_count,recent_rate_per_day,background_count,background_rate_per_day,rate_ratio,recent_magnitude_count,recent_max_magnitude,previous_magnitude_count,previous_max_magnitude,delta_max_magnitude,recent_mean_distance_km,recent_min_distance_km,migration_event_count,migration_distance_slope_km_per_day,recent_b_event_count,recent_b_mean_magnitude,background_b_event_count,background_b_mean_magnitude,postdecision_catalog_rows_excluded -japan_2011_target,4542,90,3.000000000,202,0.602985075,4.975247525,90,7.300,16,5.100,2.200,125.142360,5.686504,118,-3.772839059,118,4.816949,380,4.471053,0 -japan_2009_control,4044,18,0.600000000,800,2.388059701,0.251250000,18,5.700,22,5.700,0.000,323.710940,69.265335,132,1.586771717,132,4.278788,1186,4.153288,498 -chile_2010_target,12239,5,0.166666667,111,0.331343284,0.503003003,5,5.800,12,5.400,0.400,520.569658,401.350037,21,-0.174547515,21,4.500000,412,4.110437,7846 -chile_2008_control,11805,35,1.166666667,388,1.158208955,1.007302405,35,4.900,20,4.800,0.100,486.692125,97.404530,80,1.126782675,80,4.087500,852,3.925939,8381 -sumatra_2004_target,1429,12,0.400000000,130,0.388059701,1.030769231,12,5.400,14,5.300,0.100,437.377374,155.270850,37,1.404762365,37,4.486486,216,4.587037,12285 -sumatra_2002_control,1176,13,0.433333333,100,0.298507463,1.451666667,13,5.200,25,7.400,-2.200,392.208351,51.359133,44,4.037950832,44,4.788636,159,4.536478,12538 -turkiye_2023_target,3805,8,0.266666667,49,0.146268657,1.823129252,8,4.700,5,4.600,0.100,261.681991,45.624394,18,-3.491038966,18,4.194444,92,4.416304,818 -turkiye_2021_control,3695,5,0.166666667,80,0.238805970,0.697916667,5,5.000,7,5.500,-0.500,335.347402,223.360117,21,-0.871622698,21,4.490476,131,4.397710,928 diff --git a/experiments/fm_v1_3_wider_usgs_hindcast/results/raw_catalog_windows.csv b/experiments/fm_v1_3_wider_usgs_hindcast/results/raw_catalog_windows.csv deleted file mode 100644 index 7f60cfe..0000000 --- a/experiments/fm_v1_3_wider_usgs_hindcast/results/raw_catalog_windows.csv +++ /dev/null @@ -1,9 +0,0 @@ -case_id,lookback_start_utc,decision_time_utc,recent_rate_start_utc,background_rate_start_utc,magnitude_start_utc,previous_magnitude_start_utc,migration_start_utc,recent_b_start_utc,background_b_start_utc,parameter_set_id,estimator_status -japan_2011_target,2001-01-01T00:00:00Z,2011-03-11T05:46:23Z,2011-02-09T05:46:23Z,2010-03-11T05:46:23Z,2011-02-09T05:46:23Z,2011-01-10T05:46:23Z,2010-12-11T05:46:23Z,2010-12-11T05:46:23Z,2009-03-11T05:46:23Z,davao_catalog_v0.1,provisional_not_frozen -japan_2009_control,2001-01-01T00:00:00Z,2009-03-11T05:46:23Z,2009-02-09T05:46:23Z,2008-03-11T05:46:23Z,2009-02-09T05:46:23Z,2009-01-10T05:46:23Z,2008-12-11T05:46:23Z,2008-12-11T05:46:23Z,2007-03-12T05:46:23Z,davao_catalog_v0.1,provisional_not_frozen -chile_2010_target,1990-01-01T00:00:00Z,2010-02-27T06:34:10Z,2010-01-28T06:34:10Z,2009-02-27T06:34:10Z,2010-01-28T06:34:10Z,2009-12-29T06:34:10Z,2009-11-29T06:34:10Z,2009-11-29T06:34:10Z,2008-02-28T06:34:10Z,davao_catalog_v0.1,provisional_not_frozen -chile_2008_control,1990-01-01T00:00:00Z,2008-02-27T06:34:10Z,2008-01-28T06:34:10Z,2007-02-27T06:34:10Z,2008-01-28T06:34:10Z,2007-12-29T06:34:10Z,2007-11-29T06:34:10Z,2007-11-29T06:34:10Z,2006-02-27T06:34:10Z,davao_catalog_v0.1,provisional_not_frozen -sumatra_2004_target,1990-01-01T00:00:00Z,2004-12-26T00:58:52Z,2004-11-26T00:58:52Z,2003-12-27T00:58:52Z,2004-11-26T00:58:52Z,2004-10-27T00:58:52Z,2004-09-27T00:58:52Z,2004-09-27T00:58:52Z,2002-12-27T00:58:52Z,davao_catalog_v0.1,provisional_not_frozen -sumatra_2002_control,1990-01-01T00:00:00Z,2002-12-26T00:58:52Z,2002-11-26T00:58:52Z,2001-12-26T00:58:52Z,2002-11-26T00:58:52Z,2002-10-27T00:58:52Z,2002-09-27T00:58:52Z,2002-09-27T00:58:52Z,2000-12-26T00:58:52Z,davao_catalog_v0.1,provisional_not_frozen -turkiye_2023_target,1990-01-01T00:00:00Z,2023-02-06T01:17:33Z,2023-01-07T01:17:33Z,2022-02-06T01:17:33Z,2023-01-07T01:17:33Z,2022-12-08T01:17:33Z,2022-11-08T01:17:33Z,2022-11-08T01:17:33Z,2021-02-06T01:17:33Z,davao_catalog_v0.1,provisional_not_frozen -turkiye_2021_control,1990-01-01T00:00:00Z,2021-02-06T01:17:33Z,2021-01-07T01:17:33Z,2020-02-07T01:17:33Z,2021-01-07T01:17:33Z,2020-12-08T01:17:33Z,2020-11-08T01:17:33Z,2020-11-08T01:17:33Z,2019-02-07T01:17:33Z,davao_catalog_v0.1,provisional_not_frozen diff --git a/experiments/japan_2011/README.md b/experiments/japan_2011/README.md deleted file mode 100644 index 1066830..0000000 --- a/experiments/japan_2011/README.md +++ /dev/null @@ -1,159 +0,0 @@ -# Japan 2011 Hindcast Experiment - -This experiment evaluates the CAMEFF b1.0.0 hindcast pipeline for the -2011 Great Tohoku earthquake. - -## Target event - -* Time: 2011-03-11 05:46:24 UTC -* Latitude: 38.297 degrees north -* Longitude: 142.373 degrees east -* Depth: 29 km -* Magnitude: M9.1 -* Tectonic setting: subduction - -## Precursor catalog - -The raw catalog is downloaded from the USGS FDSN Event Web Service. - -Acquisition parameters: - -* Start: 2006-03-10 05:46:24 UTC -* End: 2011-03-11 05:46:23 UTC -* Centre: 38.297, 142.373 -* Radius: 500 km -* Minimum magnitude: 2.5 -* Event type: earthquake -* Ordering: ascending origin time - -The end time is one second before the target earthquake. This prevents -the target event from being included in the precursor catalog. - -## Download - -From the repository root: - -```bash -./experiments/japan_2011/fetch_usgs_raw.sh -``` - -The downloaded raw catalog is written to: - -```text -experiments/japan_2011/data/raw/usgs_japan_2006_2011_raw.csv -``` - -## Normalize the USGS catalog - -Build the CAMEFF utilities: - -```bash -cmake --build build -``` - -Normalize the downloaded USGS catalog: - -```bash -./experiments/japan_2011/normalize_catalog.sh -``` - -The normalized catalog is written to: - -```text -experiments/japan_2011/data/normalized/catalog.csv -``` - -The normalized schema is: - -```csv -time,latitude,longitude,depth,mag,region -``` - -The normalizer resolves columns by their USGS header names instead of -assuming fixed column positions. Quoted place names containing commas are -preserved correctly. - -## Validation windows - -The extended catalog supports repeated one-year evidence windows under -the same regional and catalog settings. - -Planned windows: - -| Window | Evidence start | Cutoff | Outcome | -|---|---|---|---| -| Japan 2007 control | 2006-03-10 | 2007-03-10 | Negative control | -| Japan 2008 control | 2007-03-10 | 2008-03-10 | Negative control | -| Japan 2009 control | 2008-03-10 | 2009-03-10 | Negative control | -| Japan 2010 control | 2009-03-10 | 2010-03-10 | Negative control | -| Japan 2011 positive | 2010-03-10 | 2011-03-10 | Positive | - -The positive cutoff is twenty-four hours before the 2011 target -earthquake. - -All windows use: - -- Centre: 38.297 degrees north, 142.373 degrees east -- Radius: 500 km -- Lookback: 365 days -- Minimum magnitude in the source catalog: M2.5 -- Minimum evidence events: 20 - -The negative labels and warning threshold will be frozen before final -performance metrics are reported. - -## Run the hindcast - -Build the project: - -```bash -cmake --build build -``` - -Run the reproducible Japan 2011 experiment: - -```bash -./experiments/japan_2011/run_hindcast.sh -``` - -The generated report is written to: - -```text -experiments/japan_2011/results/japan_2011_hindcast.txt -``` - -The target earthquake is supplied separately from the precursor catalog. - -The precursor catalog ends before the target event. This prevents the -target event record, magnitude, and depth from entering the signal -extraction pipeline as precursor evidence. - -## Data stages - -```text -USGS raw CSV - -> CAMEFF normalized CSV - -> leakage-free hindcast window - -> signal extraction - -> pattern classification - -> expert fusion - -> experiment report -``` - -## Reproducible workflow - -From the repository root: - -```bash -./experiments/japan_2011/fetch_usgs_raw.sh -./experiments/japan_2011/normalize_catalog.sh -./experiments/japan_2011/run_hindcast.sh -``` - -## Interpretation warning - -CAMEFF hazard evidence is an uncalibrated evidence score. - -It must not be interpreted as the probability that an earthquake will -occur. The experiment is a historical hindcast used to evaluate signal -processing, pattern classification, expert routing, and fusion behavior. diff --git a/experiments/japan_2011/data/normalized/catalog.csv b/experiments/japan_2011/data/normalized/catalog.csv deleted file mode 100644 index 7468853..0000000 --- a/experiments/japan_2011/data/normalized/catalog.csv +++ /dev/null @@ -1,1961 +0,0 @@ -time,latitude,longitude,depth,mag,region -2006-03-10T08:55:48.450Z,37.384,141.033,46.9,4.3,11 km SSE of Namie Japan -2006-03-11T11:29:00.600Z,39.353,140.365,6.4,3.6,14 km SW of ?magari Japan -2006-03-11T22:06:39.070Z,40.079,142.364,3.3,5,60 km NE of Miyako Japan -2006-03-12T04:36:51.030Z,37.996,143.205,10,4.3,173 km ESE of Ishinomaki Japan -2006-03-12T11:01:49.430Z,36.062,141.701,33.8,4,86 km ENE of Hasaki Japan -2006-03-12T11:04:54.790Z,36.036,141.645,35,4.2,80 km ENE of Hasaki Japan -2006-03-13T03:00:38.090Z,36.048,141.765,58,4.6,91 km ENE of Hasaki Japan -2006-03-13T03:41:21.470Z,36.235,140.1,55.6,4.2,3 km S of Makabe Japan -2006-03-13T04:06:09.350Z,36.057,141.766,59,5.1,near the east coast of Honshu Japan -2006-03-13T04:15:33.930Z,36.041,141.528,33.9,5,71 km ENE of Hasaki Japan -2006-03-13T06:55:52.420Z,35.981,141.587,31.5,4.7,73 km ENE of Hasaki Japan -2006-03-15T03:25:16.600Z,41.422,142.049,100,4.1,71 km ENE of Mutsu Japan -2006-03-18T12:19:22.340Z,41.486,141.873,100,4.2,59 km ENE of Mutsu Japan -2006-03-19T07:27:46.560Z,38.674,141.686,89,4.1,44 km NE of Ishinomaki Japan -2006-03-19T13:47:19.870Z,39.366,139.612,35,4,47 km NW of Yuza Japan -2006-03-22T11:16:18.200Z,37.709,142.565,30.2,4.2,135 km SE of Ishinomaki Japan -2006-03-22T18:36:33.100Z,41.614,139.314,187.5,4,113 km WSW of Kamiiso Japan -2006-03-22T23:09:37.150Z,42.662,141.777,132.4,4,14 km E of Tomakomai Japan -2006-03-23T14:03:46.640Z,36.059,139.78,89.4,4.4,4 km SSW of Sakai Japan -2006-03-23T22:59:08.580Z,38.866,141.668,69.2,3.9,near the east coast of Honshu Japan -2006-03-24T22:16:02.480Z,42.325,142.983,51,4.8,50 km E of Shizunai-furukawach? Japan -2006-03-25T16:51:55.470Z,36.246,140.578,68,4.1,7 km S of ?arai Japan -2006-03-26T09:47:52.670Z,40.678,142.68,22.9,3.5,101 km E of Hachinohe Japan -2006-03-29T04:08:00.090Z,36.481,141.182,68.5,4.3,49 km ESE of Takahagi Japan -2006-03-29T10:28:40.480Z,37.188,141.468,78.6,4.6,52 km SE of Namie Japan -2006-03-30T21:07:22.450Z,36.881,141.58,59.8,4.3,64 km ESE of Iwaki Japan -2006-04-01T08:28:19.030Z,39.097,142.94,63.2,4.1,94 km ESE of ?tsuchi Japan -2006-04-02T07:22:56.260Z,38.474,141.838,68.5,4.4,47 km E of Ishinomaki Japan -2006-04-02T11:46:48.340Z,36.192,139.689,67.2,4.2,eastern Honshu Japan -2006-04-06T04:53:34.470Z,38.69,140.205,137.4,3.8,11 km SW of Shinj? Japan -2006-04-06T06:40:47.480Z,36.242,140.653,96.5,4,10 km SE of ?arai Japan -2006-04-06T13:30:27.990Z,35.704,140.231,51.2,4.1,1 km S of Sakura Japan -2006-04-06T13:35:11.070Z,35.797,140.209,60.3,3,9 km NNW of Sakura Japan -2006-04-06T23:33:35.080Z,40.005,138.896,35,4,92 km W of Tenn? Japan -2006-04-08T05:53:38.260Z,36.614,140.838,71.2,4,15 km SE of Takahagi Japan -2006-04-09T00:37:10.940Z,41.599,142.839,50.7,4.5,90 km SSE of Shizunai-furukawach? Japan -2006-04-09T19:20:41.770Z,41.803,143.642,29.1,4.4,120 km ESE of Shizunai-furukawach? Japan -2006-04-10T00:21:24.350Z,37.493,141.169,79.6,4.8,14 km E of Namie Japan -2006-04-10T16:55:29.270Z,38.35,143.473,10,4.1,172 km ESE of ?funato Japan -2006-04-11T04:23:31.520Z,36.629,141.369,46,3.3,58 km ESE of Kitaibaraki Japan -2006-04-11T08:46:07.350Z,34.628,140.404,69.8,4.9,58 km S of Katsuura Japan -2006-04-12T16:20:32.260Z,37.661,140.73,106.7,3.9,23 km SE of Hobaramachi Japan -2006-04-13T04:27:22.620Z,41.85,142.707,37.2,5.3,60 km SSE of Shizunai-furukawach? Japan -2006-04-13T10:35:17.650Z,41.697,144.147,38.4,4.3,143 km S of Kushiro Japan -2006-04-13T23:39:23.920Z,34.11,141.546,35,4.2,161 km SE of Katsuura Japan -2006-04-14T07:33:43.880Z,35.795,140.359,39.8,4.4,4 km ENE of Narita Japan -2006-04-14T08:35:47.720Z,35.637,141.269,99.5,3.7,40 km ESE of Hasaki Japan -2006-04-17T03:04:50.470Z,41.571,142.045,66.7,4.5,75 km ENE of Mutsu Japan -2006-04-18T10:38:25.170Z,42.198,144.246,30.3,4.8,86 km S of Kushiro Japan -2006-04-20T03:40:20.860Z,36.222,139.752,68.9,4.2,5 km NE of Koga Japan -2006-04-20T17:50:40.450Z,34.858,139.207,22.6,5.6,16 km SE of It? Japan -2006-04-20T18:20:24.420Z,34.901,139.236,40.5,4.3,15 km ESE of It? Japan -2006-04-20T22:08:16.760Z,35.033,139.211,34.9,4.1,13 km ENE of It? Japan -2006-04-21T02:54:59.300Z,38.172,142.23,10,4.1,85 km ESE of Ishinomaki Japan -2006-04-21T14:17:40.700Z,34.964,139.099,41.1,4.4,1 km ESE of It? Japan -2006-04-21T16:44:23.590Z,35.097,139.597,10,4.2,5 km SSW of Miura Japan -2006-04-21T21:03:22.490Z,34.963,139.245,10,4.1,14 km E of It? Japan -2006-04-22T14:35:58.950Z,38.851,141.712,60.8,4.4,24 km S of ?funato Japan -2006-04-22T18:09:46.020Z,35.725,140.129,71.5,3.9,8 km NNW of Yotsukaid? Japan -2006-04-23T14:50:24.870Z,35.223,140,62,4.2,16 km NNW of Kamogawa Japan -2006-04-23T17:30:10.760Z,41.908,142.352,82.8,3.8,47 km S of Shizunai-furukawach? Japan -2006-04-24T04:28:14.320Z,38.289,139.826,154.1,4.9,27 km NW of Nagai Japan -2006-04-24T14:42:55.210Z,37.202,142.215,35,3.5,112 km ESE of Namie Japan -2006-04-24T23:18:24.860Z,37.188,138.839,38.4,3.8,8 km NE of T?kamachi Japan -2006-04-26T05:56:01.390Z,41.968,142.203,110.8,4.7,42 km SSW of Shizunai-furukawach? Japan -2006-04-26T07:07:34.910Z,36.414,141.691,68.5,3.2,93 km ESE of Takahagi Japan -2006-04-26T14:10:37.710Z,42.064,142.493,66.8,4.8,31 km SSE of Shizunai-furukawach? Japan -2006-04-26T19:53:25.830Z,39.365,141.862,114.5,4,3 km W of ?tsuchi Japan -2006-04-27T02:57:31.800Z,34.466,141.006,44.1,4.3,98 km SE of Katsuura Japan -2006-04-27T16:47:39.860Z,35.752,144.559,30.8,4.3,off the east coast of Honshu Japan -2006-04-30T04:10:36.150Z,34.987,139.271,10,4.2,17 km E of It? Japan -2006-05-01T07:00:43.440Z,36.038,139.653,62.7,4.3,2 km NNW of Shiraoka Japan -2006-05-02T09:24:31.470Z,34.773,139.256,26.1,4.9,26 km SE of It? Japan -2006-05-03T06:48:50.140Z,36.677,139.511,115.5,3.6,12 km SW of Nikk? Japan -2006-05-04T01:17:30.260Z,37.067,137.493,24.2,4.3,14 km N of Ny?zen Japan -2006-05-05T08:39:37.640Z,37.556,142.658,27,4.1,146 km E of Namie Japan -2006-05-06T11:45:43.140Z,38.431,142.183,51.6,4.2,77 km E of Ishinomaki Japan -2006-05-06T21:34:19.780Z,35.343,142.544,35,4,161 km ESE of Hasaki Japan -2006-05-08T01:33:09.690Z,36.077,141.902,42.3,4,104 km ENE of Hasaki Japan -2006-05-08T01:55:42.940Z,36.404,141.67,35,4.4,92 km ESE of Takahagi Japan -2006-05-10T00:52:09.240Z,35.669,141.608,35,3.9,70 km E of Hasaki Japan -2006-05-10T01:23:11.630Z,34.964,139.712,39,4.1,14 km W of Tateyama Japan -2006-05-11T04:14:33.280Z,36.488,140.853,49.5,4.2,22 km SE of Hitachi Japan -2006-05-11T20:15:23.910Z,42.378,143.76,57.6,4.2,75 km SE of Obihiro Japan -2006-05-13T10:17:31.150Z,34.297,142.017,44,3.6,182 km ESE of Katsuura Japan -2006-05-14T07:14:28.530Z,41.692,144.224,32.5,4.2,143 km S of Kushiro Japan -2006-05-14T10:46:53.650Z,38.883,140.361,46.1,4.1,14 km NNE of Shinj? Japan -2006-05-18T08:00:34.140Z,40.765,142.586,28,4.3,near the east coast of Honshu Japan -2006-05-19T13:47:48.890Z,35.934,142.032,10,3.6,110 km ENE of Hasaki Japan -2006-05-19T22:20:15.410Z,35.991,140.159,60.3,3.4,3 km NE of Ushiku Japan -2006-05-20T04:57:52.690Z,35.025,139.986,70.5,4.5,11 km ENE of Tateyama Japan -2006-05-21T07:22:36.930Z,38.667,142.249,49.8,4.5,64 km SE of ?funato Japan -2006-05-21T14:45:00.030Z,42.072,142.639,87.4,3.9,36 km SE of Shizunai-furukawach? Japan -2006-05-22T16:21:16.890Z,34.632,140.768,35,4.1,70 km SE of Katsuura Japan -2006-05-26T01:58:49.410Z,42.769,142.807,144.5,4.1,36 km WSW of Obihiro Japan -2006-05-26T13:58:57.100Z,36.838,141.663,16.7,4.3,73 km ESE of Iwaki Japan -2006-05-26T18:03:04.280Z,35.418,140.994,45,4.2,37 km SSE of Hasaki Japan -2006-05-28T20:18:45.600Z,41.891,144.292,30.3,4.7,120 km S of Kushiro Japan -2006-05-30T07:38:14.470Z,40.378,141.363,92.7,3.5,17 km SW of Hachinohe Japan -2006-05-30T12:17:44.730Z,36.271,139.408,123.6,3.4,4 km SE of ?ta Japan -2006-05-31T15:24:10.960Z,36.228,141.895,35.8,4.3,110 km ENE of Hasaki Japan -2006-06-02T02:31:06.170Z,34.824,139.029,144,4.4,16 km SSW of It? Japan -2006-06-07T03:21:51.150Z,35.594,140.271,56.6,3.2,7 km SSW of Yachimata Japan -2006-06-08T21:07:21.340Z,35.452,140.588,41.6,4.3,22 km SE of Narut? Japan -2006-06-11T07:46:43.080Z,40.798,141.124,113.7,4.2,25 km WNW of Misawa Japan -2006-06-11T23:04:20.020Z,41.467,142.091,76.6,4.4,75 km ENE of Mutsu Japan -2006-06-12T11:03:57.280Z,36.24,142.448,49.2,4.3,156 km ENE of Hasaki Japan -2006-06-12T17:31:11.920Z,42.158,144.105,61,3.9,93 km SSW of Kushiro Japan -2006-06-13T02:40:33.110Z,42.702,143.422,85.5,4.8,29 km SE of Obihiro Japan -2006-06-13T11:03:53.860Z,37.421,141.108,28,4,11 km SE of Namie Japan -2006-06-13T22:11:13.060Z,36.102,140.16,35,3.9,5 km N of Naka Japan -2006-06-14T09:30:29.590Z,42.688,142.903,107.4,4,35 km SW of Obihiro Japan -2006-06-16T07:30:48.900Z,34.727,140.646,56,3.2,55 km SSE of Katsuura Japan -2006-06-16T07:33:21.810Z,34.629,140.46,49.1,4.5,58 km SSE of Katsuura Japan -2006-06-16T10:42:51.770Z,40.316,143.674,28.1,4.8,165 km ENE of Miyako Japan -2006-06-16T13:31:43.790Z,40.346,143.913,10,4.2,185 km ENE of Miyako Japan -2006-06-16T14:21:20.910Z,34.617,140.393,47.5,4.4,59 km S of Katsuura Japan -2006-06-16T17:10:40.300Z,40.349,143.712,30,5.5,170 km ENE of Miyako Japan -2006-06-16T19:04:13.600Z,40.337,143.722,46.7,4.2,170 km ENE of Miyako Japan -2006-06-16T19:14:17.620Z,36.227,141.215,37.6,4.1,57 km E of ?arai Japan -2006-06-16T19:53:36.980Z,40.27,143.684,43.8,4.4,164 km ENE of Miyako Japan -2006-06-16T20:19:21.390Z,40.329,143.612,28.8,5.5,161 km ENE of Miyako Japan -2006-06-17T04:51:35.390Z,40.175,142.513,45.2,4.5,76 km NE of Miyako Japan -2006-06-17T07:38:10.370Z,40.674,141.11,45.6,4.4,23 km W of Misawa Japan -2006-06-17T20:30:09.150Z,40.35,142.08,50,3.7,51 km ESE of Hachinohe Japan -2006-06-19T10:52:06.430Z,35.695,140.698,52.8,3.1,4 km ESE of Asahi Japan -2006-06-19T21:47:12.250Z,35.722,139.994,80.9,4.8,2 km NNE of Honch? Japan -2006-06-24T14:34:49.110Z,41.13,142.795,57.9,4,128 km ENE of Misawa Japan -2006-06-24T19:52:45.530Z,36.132,139.48,131.7,4.3,2 km ESE of Gy?da Japan -2006-06-25T00:07:31.330Z,36.624,137.453,241.9,4.1,11 km SE of Kamiichi Japan -2006-06-26T06:01:38.250Z,41.35,142.134,55.8,4.1,77 km E of Mutsu Japan -2006-06-27T14:21:53.430Z,35.55,139.875,78.8,4.1,13 km S of Urayasu Japan -2006-06-28T00:40:24.670Z,35.805,139.743,124.2,4.2,2 km E of Kawaguchi Japan -2006-06-29T03:19:17.160Z,36.268,138.695,143.2,3.8,18 km W of Tomioka Japan -2006-06-29T11:09:04.400Z,35.669,140.126,66.9,3.7,4 km WNW of Yotsukaid? Japan -2006-06-30T20:44:50.480Z,40.902,142.989,78.1,3.8,133 km ENE of Hachinohe Japan -2006-06-30T23:28:13.230Z,38.47,142.156,40,5.2,74 km E of Ishinomaki Japan -2006-07-03T22:44:57.710Z,37.778,142.691,35,4,141 km ESE of Ishinomaki Japan -2006-07-05T17:08:41.050Z,40.171,142.318,46.4,5.3,66 km NNE of Miyako Japan -2006-07-05T21:11:49.350Z,38.379,140.649,44.9,4.4,20 km W of Tomiya Japan -2006-07-06T06:17:28.150Z,36.139,140.032,50.4,4.4,6 km ENE of Ishige Japan -2006-07-06T13:57:40.510Z,34.054,141.51,19.9,4.3,163 km SE of Katsuura Japan -2006-07-06T23:07:13.070Z,39.925,142.52,101.1,4.1,58 km ENE of Miyako Japan -2006-07-07T19:17:57.020Z,40.164,142.619,68.5,4.3,81 km NE of Miyako Japan -2006-07-08T05:02:45.210Z,41.597,142.07,63.9,4.2,79 km ENE of Mutsu Japan -2006-07-09T00:06:19.560Z,35.515,139.947,24.1,4.7,12 km W of Ichihara Japan -2006-07-09T08:48:17.560Z,35.274,139.103,53.2,4.7,5 km WNW of Odawara Japan -2006-07-10T02:49:13.980Z,34.064,140.732,45,3.9,125 km SSE of Katsuura Japan -2006-07-11T06:47:06.500Z,40.653,142.461,57.6,4.4,83 km ENE of Hachinohe Japan -2006-07-14T19:00:10.020Z,38.102,145.096,10,4.4,off the east coast of Honshu Japan -2006-07-16T20:01:33.110Z,42.675,143.488,89.4,4.3,35 km SE of Obihiro Japan -2006-07-16T23:25:07.650Z,37.459,141.325,38.5,4.4,28 km E of Namie Japan -2006-07-20T01:20:28.660Z,42.526,143.664,100.4,4.4,57 km SE of Obihiro Japan -2006-07-20T13:40:14.500Z,39.401,141.219,119.8,4.5,9 km ENE of Hanamaki Japan -2006-07-25T02:34:12.450Z,42.042,144.23,47.4,4.4,104 km S of Kushiro Japan -2006-07-26T20:55:30.120Z,37.074,141.686,10,4.3,71 km E of Iwaki Japan -2006-07-27T22:35:06.060Z,41.941,140.051,188.1,4.1,51 km WNW of Kamiiso Japan -2006-07-29T17:19:22.280Z,36.262,140.213,57.8,4.1,9 km NNW of Ishioka Japan -2006-07-31T22:13:34.090Z,39.632,142.375,71.5,4,37 km E of Miyako Japan -2006-08-01T13:11:42.710Z,36.373,140.891,48.3,4.1,28 km ENE of ?arai Japan -2006-08-04T23:20:54.060Z,40.809,140.84,111.7,3.5,9 km E of Aomori Japan -2006-08-06T15:46:32.060Z,39.71,142.341,63.5,4.1,35 km ENE of Miyako Japan -2006-08-12T11:11:33.200Z,36.993,141.646,50,4.2,68 km E of Iwaki Japan -2006-08-13T14:52:44.220Z,38.237,144.972,10,4.3,293 km ESE of Kamaishi Japan -2006-08-13T21:00:56.460Z,42.189,144.014,48.2,4.3,92 km SSW of Kushiro Japan -2006-08-14T05:42:01.620Z,35.167,140.249,72.1,3.6,6 km WNW of Katsuura Japan -2006-08-16T19:55:15.040Z,39.105,142.624,10,4,68 km ESE of Kamaishi Japan -2006-08-17T03:45:22.750Z,38.815,141.472,99.6,4.3,31 km ESE of Ichinoseki Japan -2006-08-18T18:20:11.700Z,41.7,142.292,75.3,4,70 km S of Shizunai-furukawach? Japan -2006-08-19T11:43:26.780Z,35.681,140.733,47.8,4,8 km ESE of Asahi Japan -2006-08-20T01:58:19.510Z,39.667,143.542,36.4,5.1,137 km E of Miyako Japan -2006-08-23T01:33:32.490Z,36.191,141.972,62,3.5,114 km ENE of Hasaki Japan -2006-08-24T11:33:02.730Z,41.036,142.046,69.5,4.1,67 km NE of Misawa Japan -2006-08-26T21:04:10.230Z,40.796,141.799,101.7,4.2,36 km ENE of Misawa Japan -2006-08-27T18:02:54.200Z,35.778,141.773,5.6,4.1,85 km E of Hasaki Japan -2006-08-27T18:20:42.200Z,35.879,141.685,12.6,4.3,78 km ENE of Hasaki Japan -2006-08-27T22:49:41.740Z,37.122,138.831,16.8,3.9,5 km ESE of T?kamachi Japan -2006-08-28T07:45:05.620Z,36.106,141.208,32.7,4.3,53 km ENE of Kashima-shi Japan -2006-08-29T10:55:22.830Z,40.255,142.495,34.4,4,82 km NE of Miyako Japan -2006-08-29T23:38:02.050Z,34.07,141.42,40.2,4.1,156 km SE of Katsuura Japan -2006-08-30T04:47:11.170Z,39.72,143.52,58.9,3.9,135 km E of Miyako Japan -2006-08-31T08:18:21.480Z,35.527,139.882,90.5,4.8,14 km E of Kawasaki Japan -2006-08-31T09:23:59.300Z,42.651,142.99,101.4,3.5,34 km SSW of Obihiro Japan -2006-09-01T12:17:10.690Z,34.453,141.363,45,4.9,122 km SE of Katsuura Japan -2006-09-01T18:40:22.280Z,42.423,141.89,143.5,3.8,33 km SE of Tomakomai Japan -2006-09-04T22:09:33.250Z,39.08,142.321,41.2,4.2,44 km ESE of Kamaishi Japan -2006-09-04T23:43:42.420Z,39.092,142.849,35,4.1,87 km ESE of Kamaishi Japan -2006-09-05T22:42:28.140Z,36.759,142.141,35,3.8,116 km ESE of Iwaki Japan -2006-09-06T18:06:33.630Z,35.48,140.837,49.7,5.1,28 km S of Hasaki Japan -2006-09-07T01:57:39.790Z,35.591,140.134,66,4.8,1 km ESE of Chiba Japan -2006-09-07T03:45:45.740Z,35.091,140.904,47.7,4.2,49 km ESE of ?hara Japan -2006-09-07T12:58:36.060Z,42.456,140.569,153.7,4.3,24 km W of Date Japan -2006-09-07T22:50:50.810Z,35.656,140.011,86.4,4.3,5 km SSE of Honch? Japan -2006-09-08T16:48:16.770Z,42.035,142.476,77,4.1,34 km SSE of Shizunai-furukawach? Japan -2006-09-09T10:36:03.920Z,38.297,142.018,66.3,4.6,64 km ESE of Ishinomaki Japan -2006-09-10T10:43:34.910Z,39.625,143.683,17,4,149 km E of Miyako Japan -2006-09-10T10:58:14.690Z,36.107,141.224,48.5,3.9,near the east coast of Honshu Japan -2006-09-10T20:53:42.780Z,38.946,144.218,35,3.9,204 km ESE of Yamada Japan -2006-09-10T21:41:23.380Z,39.119,142.871,92.1,4.4,88 km ESE of ?tsuchi Japan -2006-09-12T19:31:25.110Z,36.51,141.13,61.5,4,43 km ESE of Takahagi Japan -2006-09-13T15:06:46.050Z,35.969,141.503,2.8,4.2,65 km ENE of Hasaki Japan -2006-09-14T03:32:09.600Z,40.047,141.352,83.4,3.5,19 km SSE of Ichinohe Japan -2006-09-14T06:02:31.690Z,41.881,142.215,65,4.4,51 km SSW of Shizunai-furukawach? Japan -2006-09-14T14:56:17.860Z,42.237,143.109,72.3,4.2,62 km E of Shizunai-furukawach? Japan -2006-09-14T22:52:22.940Z,42.202,142.758,35,3.9,35 km ESE of Shizunai-furukawach? Japan -2006-09-17T04:45:22.320Z,38.228,144.926,28.3,4.6,290 km ESE of Kamaishi Japan -2006-09-20T01:20:06.800Z,41.845,141.322,137.6,4,49 km E of Hakodate Japan -2006-09-21T17:31:59.310Z,36.413,141.475,15.3,4.3,75 km ESE of Takahagi Japan -2006-09-22T12:59:47.460Z,42.136,142.155,10,3.5,28 km SW of Shizunai-furukawach? Japan -2006-09-22T13:52:28.430Z,42.656,142.091,127.4,4.1,40 km E of Tomakomai Japan -2006-09-22T21:33:30.060Z,36.444,141.543,37.2,4.3,79 km ESE of Takahagi Japan -2006-09-26T05:24:29.350Z,38.235,144.667,56,4.3,269 km ESE of Kamaishi Japan -2006-09-27T07:32:40.830Z,40.794,139.582,185.7,3.1,66 km W of Shimokizukuri Japan -2006-09-29T02:26:10.050Z,37.817,140.467,136.5,3.9,7 km W of Hobaramachi Japan -2006-10-01T10:07:34.340Z,40.991,141.503,79.2,3.7,35 km NNE of Misawa Japan -2006-10-01T17:07:24.990Z,38.508,142.721,67.9,5.1,107 km SE of ?funato Japan -2006-10-01T18:47:37.430Z,41.765,144.261,31.6,4.2,134 km S of Kushiro Japan -2006-10-04T00:37:48.980Z,38.138,144.977,34.5,4.2,298 km ESE of Kamaishi Japan -2006-10-05T16:48:11.690Z,41.289,141.565,35,4.2,29 km E of Mutsu Japan -2006-10-10T23:58:04.000Z,37.197,142.664,9,6,150 km ESE of Namie Japan -2006-10-12T03:23:10.940Z,40.963,142.125,78.9,4.1,69 km ENE of Misawa Japan -2006-10-12T16:17:41.800Z,41.695,142.169,80.1,3.9,72 km SSW of Shizunai-furukawach? Japan -2006-10-12T23:11:41.320Z,42.361,143.113,59.6,4.3,Hokkaido Japan region -2006-10-13T01:18:46.660Z,37.346,142.828,10,4.9,162 km E of Namie Japan -2006-10-13T21:38:02.600Z,34.814,140.134,63.7,4.9,30 km SE of Tateyama Japan -2006-10-14T11:35:42.000Z,36.876,141.661,53,3.8,71 km ESE of Iwaki Japan -2006-10-14T11:37:27.770Z,36.881,141.661,50.5,4.3,71 km ESE of Iwaki Japan -2006-10-14T11:43:42.480Z,36.887,141.668,51.1,3.8,72 km ESE of Iwaki Japan -2006-10-15T10:58:36.740Z,35.988,140.081,62.6,3.5,5 km WNW of Ushiku Japan -2006-10-16T02:51:23.510Z,41.021,142.411,34.7,4.3,93 km ENE of Misawa Japan -2006-10-16T23:15:22.560Z,37.247,143.081,32.4,4,186 km E of Namie Japan -2006-10-17T15:58:52.970Z,41.067,143.366,30.4,4.4,163 km SSE of Shizunai-furukawach? Japan -2006-10-17T19:19:10.670Z,37.514,142.86,24.6,4.8,off the east coast of Honshu Japan -2006-10-17T22:53:25.640Z,35.742,140.021,47.1,4.2,5 km NE of Honch? Japan -2006-10-19T08:34:01.870Z,39.075,143.69,11.2,4.2,156 km ESE of Yamada Japan -2006-10-23T00:58:15.350Z,40.19,142.328,48.2,4.2,68 km NNE of Miyako Japan -2006-10-24T07:42:38.950Z,40.606,143.444,29.6,4.3,165 km E of Hachinohe Japan -2006-10-24T23:59:34.900Z,42.408,141.379,137.1,4.4,15 km S of Shiraoi Japan -2006-10-25T22:57:58.960Z,36.999,141.493,42,4.2,54 km E of Iwaki Japan -2006-10-26T08:46:08.840Z,37.71,141.806,39.1,3.9,75 km ENE of Namie Japan -2006-10-27T08:37:51.110Z,35.083,140.21,61.1,4.1,10 km E of Kamogawa Japan -2006-10-27T22:37:32.620Z,35.184,141.94,59.2,3.4,117 km ESE of Hasaki Japan -2006-10-28T06:47:21.370Z,40.908,142.13,50.3,3.7,67 km ENE of Misawa Japan -2006-10-28T07:07:14.880Z,35.705,140.755,48.2,3.1,7 km WSW of Hasaki Japan -2006-10-28T12:47:53.140Z,37.055,143.355,35,4.4,214 km ESE of Namie Japan -2006-10-29T20:24:37.580Z,40.165,142.659,65.4,3.7,84 km NE of Miyako Japan -2006-10-30T02:31:08.330Z,34.614,141.353,46.4,3.9,111 km ESE of Katsuura Japan -2006-10-31T17:39:40.440Z,42.412,143.037,61,4.6,55 km E of Shizunai-furukawach? Japan -2006-11-01T01:11:46.880Z,41.623,141.531,127.6,4.1,45 km NE of Mutsu Japan -2006-11-01T14:21:36.720Z,42.349,143.029,58.8,4.9,54 km E of Shizunai-furukawach? Japan -2006-11-05T21:57:17.820Z,40.05,142.245,65.3,4.2,51 km NNE of Miyako Japan -2006-11-06T22:28:42.300Z,40.591,146.031,35,4,298 km SSE of Kushiro Japan -2006-11-07T23:14:04.270Z,40.481,142.753,35.5,3.5,106 km E of Hachinohe Japan -2006-11-12T07:22:11.380Z,33.971,141.48,38.7,4.1,168 km SE of Katsuura Japan -2006-11-14T06:38:05.340Z,42.405,143.721,88.7,4,70 km SE of Obihiro Japan -2006-11-14T12:33:00.510Z,39.217,142.292,81,3.7,near the east coast of Honshu Japan -2006-11-15T08:39:08.870Z,36.523,140.566,57.7,3.9,6 km N of Funaishikawa Japan -2006-11-18T13:31:21.750Z,41.183,142.613,54.3,4.1,116 km ENE of Misawa Japan -2006-11-18T16:04:52.270Z,41.954,142.329,72,4.1,42 km S of Shizunai-furukawach? Japan -2006-11-20T10:24:06.230Z,40.678,143.998,10.9,4.3,209 km ENE of Miyako Japan -2006-11-22T17:04:48.990Z,40.012,142.947,52.7,4.4,95 km ENE of Miyako Japan -2006-11-22T18:07:03.710Z,40.138,142.464,59,4.3,70 km NE of Miyako Japan -2006-11-22T23:53:06.380Z,35.331,140.559,10,3.7,17 km ENE of ?hara Japan -2006-11-23T18:35:02.730Z,35.005,139.109,10,4.1,4 km NNE of It? Japan -2006-11-25T10:32:52.690Z,39.872,143.993,30,3.5,177 km E of Miyako Japan -2006-11-25T14:07:08.710Z,39.67,141.992,67.8,4.4,5 km ENE of Miyako Japan -2006-11-26T13:30:27.690Z,40.133,143.068,43.1,4.2,110 km ENE of Miyako Japan -2006-11-28T14:11:24.980Z,41.899,142.44,73.5,3.4,48 km S of Shizunai-furukawach? Japan -2006-11-30T02:59:21.100Z,37.304,139.456,49.3,4.1,45 km ESE of Tochio-honch? Japan -2006-12-01T01:35:15.060Z,39.157,143.267,20.8,4.2,118 km ESE of Yamada Japan -2006-12-02T00:30:35.880Z,36.459,142.562,59,3.8,163 km ESE of Iwaki Japan -2006-12-02T00:49:19.670Z,36.437,142.57,34.5,4.6,165 km ESE of Iwaki Japan -2006-12-02T20:26:02.750Z,41.473,142.019,61.6,3.5,70 km ENE of Mutsu Japan -2006-12-03T09:12:38.350Z,37.069,141.193,50.8,4,27 km E of Iwaki Japan -2006-12-03T09:31:37.040Z,39.218,143.367,6.3,4.4,125 km ESE of Yamada Japan -2006-12-03T13:54:56.220Z,42.353,144.605,45.3,4.4,71 km SSE of Kushiro Japan -2006-12-03T21:08:37.310Z,35.639,140.491,62.9,4.6,8 km ENE of Narut? Japan -2006-12-04T10:43:36.030Z,42.592,142.699,53.3,3.7,39 km NE of Shizunai-furukawach? Japan -2006-12-06T08:49:43.350Z,41.429,142.168,57.6,3.6,81 km E of Mutsu Japan -2006-12-06T14:04:50.390Z,42.195,144.725,34.8,5.1,91 km SSE of Kushiro Japan -2006-12-06T23:27:48.630Z,41.589,142.596,25.7,4.2,84 km SSE of Shizunai-furukawach? Japan -2006-12-08T07:14:28.090Z,37.905,139.263,156,3.7,7 km NNE of Suibara Japan -2006-12-09T03:10:52.450Z,35.69,139.941,80,4,4 km WSW of Honch? Japan -2006-12-09T03:29:21.170Z,35.699,140.001,70.4,4.4,1 km E of Honch? Japan -2006-12-09T20:47:06.710Z,35.462,140.934,35,3.8,31 km SSE of Hasaki Japan -2006-12-10T14:48:53.260Z,36.036,141.373,35,3.6,59 km NE of Hasaki Japan -2006-12-12T21:36:21.940Z,40.647,143.676,40,3.4,184 km NE of Miyako Japan -2006-12-14T10:13:47.380Z,35.976,140.103,72.5,4.4,2 km WNW of Ushiku Japan -2006-12-15T06:16:42.970Z,42.239,144.848,28.9,4.1,90 km SSE of Kushiro Japan -2006-12-16T10:00:07.860Z,35.102,138.706,10,4,7 km SSE of Fuji Japan -2006-12-16T11:34:31.390Z,36.218,141.653,35.1,4,91 km NE of Hasaki Japan -2006-12-18T19:53:22.650Z,35.939,141.554,26.8,3.4,68 km ENE of Hasaki Japan -2006-12-19T18:20:39.300Z,38.485,143.16,38,4.2,141 km ESE of ?funato Japan -2006-12-20T02:46:35.450Z,41.662,142.151,76.3,4.4,76 km SSW of Shizunai-furukawach? Japan -2006-12-20T02:56:37.050Z,40.292,141.677,116.9,3.8,27 km SSE of Hachinohe Japan -2006-12-21T01:51:49.560Z,35.789,138.286,35,3.5,11 km WSW of Hokuto Japan -2006-12-23T10:09:41.100Z,42.126,142.658,49,3.9,33 km SE of Shizunai-furukawach? Japan -2006-12-24T02:25:29.360Z,36.209,140.894,35,3.8,30 km ESE of ?arai Japan -2006-12-24T03:53:14.420Z,41.403,142.221,50.5,4.1,84 km E of Mutsu Japan -2006-12-25T20:17:18.350Z,37.791,138.162,37.3,4.5,40 km SW of Ry?tsu-minato Japan -2006-12-26T10:55:35.690Z,37.763,141.829,39.8,4.3,79 km ENE of Namie Japan -2006-12-26T12:20:50.750Z,41.563,142.09,64.6,3.5,79 km ENE of Mutsu Japan -2006-12-27T03:17:32.980Z,40.103,142.439,67.6,4,66 km NE of Miyako Japan -2006-12-28T00:24:59.340Z,38.861,141.512,81,4.3,29 km SW of ?funato Japan -2006-12-29T01:57:43.020Z,37.786,138.909,193.9,3.6,4 km NNE of Maki Japan -2006-12-30T09:07:56.300Z,42.184,143.275,37.5,3.5,76 km ESE of Shizunai-furukawach? Japan -2006-12-30T22:49:49.550Z,34.805,140.57,41.7,4.3,44 km SSE of Katsuura Japan -2006-12-30T23:30:04.150Z,34.768,140.368,35,4.9,42 km S of Katsuura Japan -2007-01-02T14:17:48.240Z,42.333,142.977,64.7,4.2,50 km E of Shizunai-furukawach? Japan -2007-01-03T15:40:04.630Z,36.431,140.686,52.8,4.3,11 km ESE of Funaishikawa Japan -2007-01-03T23:47:49.360Z,35.1,139.678,98.7,4.2,6 km SE of Miura Japan -2007-01-04T21:40:59.890Z,36.481,139.754,107,4.4,7 km SSE of Kanuma Japan -2007-01-05T21:59:03.880Z,35.601,140.199,70.9,3.8,6 km SSE of Yotsukaid? Japan -2007-01-07T12:47:54.460Z,38.278,141.916,45.4,3.7,56 km ESE of Ishinomaki Japan -2007-01-08T09:12:59.500Z,38.275,141.608,53.9,4.1,31 km ESE of Ishinomaki Japan -2007-01-08T09:59:39.540Z,37.169,138.815,46.2,4.5,6 km NE of Tōkamachi Japan -2007-01-09T04:18:03.760Z,36.05,139.798,78.6,4.3,5 km S of Sakai Japan -2007-01-10T08:49:33.190Z,36.444,141.185,35,3.2,50 km ESE of Hitachi Japan -2007-01-10T10:19:13.660Z,36.554,141.239,45.6,4.1,50 km ESE of Takahagi Japan -2007-01-10T11:02:48.190Z,40.746,139.133,21,4.4,96 km NW of Noshiro Japan -2007-01-12T09:29:41.370Z,37.399,142.038,34.9,3.8,92 km E of Namie Japan -2007-01-16T12:52:36.960Z,41.182,142.714,29.9,5,124 km ENE of Misawa Japan -2007-01-17T04:11:38.070Z,38.276,142.38,63.4,4.2,95 km E of Ishinomaki Japan -2007-01-18T00:12:26.490Z,34.45,140.277,67.3,4.2,70 km SSE of Tateyama Japan -2007-01-19T14:43:13.480Z,36.942,141.537,55.3,4.3,59 km ESE of Iwaki Japan -2007-01-23T04:07:29.470Z,39.823,141.078,100.4,4.6,14 km NNW of Morioka Japan -2007-01-23T17:54:35.760Z,36.109,141.096,10,3.8,43 km ENE of Kashima-shi Japan -2007-01-24T01:30:02.960Z,35.984,139.757,62,3.9,0 km E of Kasukabe Japan -2007-01-25T07:55:22.310Z,36.956,141.007,85.5,4.4,15 km SE of Iwaki Japan -2007-01-26T06:55:33.140Z,37.597,143.827,45,3.5,239 km ESE of Ishinomaki Japan -2007-01-26T07:46:04.520Z,34.41,141.425,54.1,4.9,130 km SE of Katsuura Japan -2007-01-26T08:09:25.830Z,34.068,141.705,19.5,3.8,174 km SE of Katsuura Japan -2007-01-26T20:16:56.730Z,37.744,141.365,62,4.1,43 km NE of Namie Japan -2007-01-27T07:11:57.950Z,35.946,139.479,126.7,4.4,4 km N of Kawagoe Japan -2007-01-27T21:25:33.760Z,39.001,139.478,7.6,3.9,33 km WNW of Sakata Japan -2007-01-28T16:47:57.980Z,34.164,141.619,10,4.2,161 km SE of Katsuura Japan -2007-01-29T18:13:38.440Z,40.898,145.633,20.2,4.1,253 km SSE of Kushiro Japan -2007-01-30T07:05:43.610Z,39.355,140.171,140.8,4.4,28 km WSW of ?magari Japan -2007-01-30T17:07:16.800Z,34.068,141.528,38,4.4,163 km SE of Katsuura Japan -2007-01-30T17:56:01.610Z,36.302,141.87,27.8,4.3,112 km ENE of Hasaki Japan -2007-02-01T06:40:24.350Z,37.276,140.993,86.7,4,23 km S of Namie Japan -2007-02-04T11:59:17.010Z,35.517,140.078,61.8,4.4,0 km W of Ichihara Japan -2007-02-05T04:29:36.680Z,41.283,142.887,35,3.7,124 km SSE of Shizunai-furukawach? Japan -2007-02-05T17:44:21.050Z,42.2,143.364,45,4.4,80 km S of Obihiro Japan -2007-02-06T14:15:53.760Z,37.273,142.097,29.1,4.2,99 km ESE of Namie Japan -2007-02-09T08:58:39.130Z,41.734,143.697,30.3,4.7,128 km ESE of Shizunai-furukawach? Japan -2007-02-14T08:10:09.320Z,33.835,142.346,38.5,4.9,236 km SE of Katsuura Japan -2007-02-15T20:54:14.070Z,35.719,138.806,162.8,4.2,6 km ENE of Enzan Japan -2007-02-17T00:02:56.760Z,41.794,143.553,31,6,115 km ESE of Shizunai-furukawach? Japan -2007-02-17T00:22:27.490Z,41.771,143.602,35,5.3,119 km ESE of Shizunai-furukawach? Japan -2007-02-17T08:11:40.020Z,41.898,143.556,44.3,4.3,109 km ESE of Shizunai-furukawach? Japan -2007-02-18T02:37:40.220Z,42.521,144.352,67.5,3.6,50 km S of Kushiro Japan -2007-02-18T14:07:14.620Z,34.94,139.794,54.6,3.3,8 km SW of Tateyama Japan -2007-02-19T21:24:01.620Z,40.434,142.058,79.9,4.4,47 km E of Hachinohe Japan -2007-02-21T19:28:40.970Z,42.151,142.762,71.1,4,38 km ESE of Shizunai-furukawach? Japan -2007-02-22T06:33:43.640Z,37.039,141.979,44,4.4,97 km E of Iwaki Japan -2007-02-22T17:45:50.650Z,38.294,142.768,39.2,4.4,125 km SE of ?funato Japan -2007-02-24T01:37:30.370Z,39.654,139.616,181.8,3.1,40 km SW of Tenn? Japan -2007-02-25T02:36:58.360Z,36.478,141.325,55.2,4.2,60 km ESE of Takahagi Japan -2007-02-26T15:41:21.150Z,41.842,139.72,196.5,4.5,76 km W of Kamiiso Japan -2007-02-26T17:02:20.130Z,42.099,143.683,96.2,3.8,99 km SSE of Obihiro Japan -2007-03-01T19:17:18.230Z,42.354,142.906,29.1,3.9,44 km E of Shizunai-furukawach? Japan -2007-03-01T22:11:44.250Z,38.817,143.649,35,4.3,162 km ESE of Kamaishi Japan -2007-03-02T20:14:08.100Z,41.345,142.724,43.4,4.9,113 km SSE of Shizunai-furukawach? Japan -2007-03-03T09:06:57.520Z,35.681,140.723,46.9,3,7 km ESE of Asahi Japan -2007-03-03T09:26:13.610Z,35.684,140.732,47.8,4.2,8 km ESE of Asahi Japan -2007-03-03T20:01:29.510Z,39.125,143.289,30,4.5,121 km ESE of Yamada Japan -2007-03-06T02:00:10.760Z,42.305,142.576,7.3,3.1,17 km E of Shizunai-furukawach? Japan -2007-03-07T12:59:30.950Z,40.085,140.106,47,4,15 km SSE of Noshiro Japan -2007-03-07T18:19:37.230Z,41.284,140.402,162,4.3,52 km N of Shimokizukuri Japan -2007-03-08T01:25:39.170Z,41.684,143.261,42.4,4.3,103 km SE of Shizunai-furukawach? Japan -2007-03-08T09:32:18.340Z,41.476,142.631,35.9,3.5,97 km SSE of Shizunai-furukawach? Japan -2007-03-08T14:29:44.890Z,35.531,140.906,61.5,4.2,23 km SSE of Hasaki Japan -2007-03-09T15:47:07.650Z,37.086,138.524,16.9,3.8,22 km WSW of T?kamachi Japan -2007-03-11T22:19:33.980Z,35.917,140.37,96.1,3.1,6 km SE of Edosaki Japan -2007-03-12T11:32:09.140Z,42.746,141.577,144.2,4.7,10 km SW of Chitose Japan -2007-03-14T13:39:47.490Z,35.706,140.71,52.4,4.6,5 km ESE of Asahi Japan -2007-03-15T05:43:11.320Z,41.956,141.215,125,4.7,43 km E of Honch? Japan -2007-03-15T06:09:25.220Z,37.004,141.782,49,3.6,80 km E of Iwaki Japan -2007-03-17T11:40:24.810Z,41.015,141.948,78.4,4.1,59 km NE of Misawa Japan -2007-03-18T01:25:24.110Z,42.159,144.004,35,5.5,95 km SSW of Kushiro Japan -2007-03-19T01:04:40.990Z,38.128,144.883,35,3.9,291 km ESE of Kamaishi Japan -2007-03-21T00:19:18.850Z,41.666,141.342,133.1,4.3,43 km NNE of Mutsu Japan -2007-03-22T01:28:54.100Z,35.953,139.882,76.6,4.4,1 km ENE of Noda Japan -2007-03-23T06:38:49.050Z,42.16,142.463,55.5,4.4,20 km SSE of Shizunai-furukawach? Japan -2007-03-24T22:51:23.930Z,42.273,142.521,71.6,3.9,14 km ESE of Shizunai-furukawach? Japan -2007-03-25T02:19:02.310Z,37.276,136.828,10,4.5,27 km NNW of Nanao Japan -2007-03-25T03:40:42.410Z,37.454,136.862,10,3.4,45 km NNW of Nanao Japan -2007-03-25T06:43:31.160Z,37.255,136.839,12.4,4,25 km NNW of Nanao Japan -2007-03-25T19:03:24.940Z,37.305,136.849,10,3.5,30 km NNW of Nanao Japan -2007-03-26T16:59:17.370Z,37.16,136.956,17.5,3.9,12 km N of Nanao Japan -2007-03-29T20:21:27.460Z,42.21,143.129,56.8,4.6,64 km ESE of Shizunai-furukawach? Japan -2007-03-31T13:32:08.330Z,38.859,141.42,74.5,4.9,25 km ESE of Ichinoseki Japan -2007-04-01T04:32:13.850Z,42.414,143.776,50.3,4.2,72 km SE of Obihiro Japan -2007-04-02T20:58:09.240Z,35.515,140.888,10,4.1,24 km SSE of Hasaki Japan -2007-04-03T00:32:02.800Z,36.793,140.238,125.7,4.6,10 km WNW of Daigo Japan -2007-04-03T00:54:46.450Z,35.63,140.617,57.6,4.4,9 km SE of Y?kaichiba Japan -2007-04-03T10:28:48.280Z,35.563,141.024,37.5,4.1,25 km SE of Hasaki Japan -2007-04-04T19:14:39.910Z,36.281,141.922,10,4.4,115 km ENE of Hasaki Japan -2007-04-05T04:41:41.360Z,35.476,141.685,40.6,4.3,82 km ESE of Hasaki Japan -2007-04-05T11:39:46.230Z,38.224,141.054,53,4.4,10 km S of Shiogama Japan -2007-04-06T14:19:56.920Z,35.914,141.43,35,4.2,57 km ENE of Hasaki Japan -2007-04-07T19:11:20.040Z,36.106,141.317,29.8,4.2,60 km NE of Hasaki Japan -2007-04-09T13:02:31.950Z,36.964,141.737,49.4,3.7,76 km E of Iwaki Japan -2007-04-10T01:22:20.170Z,37.574,141.756,108.8,3.9,67 km E of Namie Japan -2007-04-10T01:23:48.710Z,38.929,141.483,106.8,4,25 km SW of ?funato Japan -2007-04-11T02:18:27.370Z,34.304,140.337,87.2,3.9,86 km SSE of Tateyama Japan -2007-04-11T08:42:43.490Z,37.025,141.103,87.4,3.8,19 km E of Iwaki Japan -2007-04-12T04:40:39.800Z,42.376,144.059,100.8,3.9,71 km SSW of Kushiro Japan -2007-04-12T13:00:01.010Z,41.358,142.578,61.1,4.1,109 km S of Shizunai-furukawach? Japan -2007-04-12T13:50:30.820Z,38.198,141.095,49.4,4.1,14 km SSE of Shiogama Japan -2007-04-13T20:42:24.560Z,36.645,141.222,37.4,4.5,45 km ESE of Kitaibaraki Japan -2007-04-14T15:50:13.320Z,35.595,142.011,47.3,5,107 km E of Hasaki Japan -2007-04-18T15:07:31.600Z,42.658,141.861,119.7,5.5,21 km E of Tomakomai Japan -2007-04-19T21:06:32.070Z,36.217,141.553,10,3.4,84 km NE of Hasaki Japan -2007-04-20T12:34:52.810Z,34.665,139.083,10,3.3,12 km E of Shimoda Japan -2007-04-25T23:12:27.750Z,35.698,140.764,49.4,4.1,7 km WSW of Hasaki Japan -2007-04-26T05:29:56.770Z,40.503,138.203,35,3.7,158 km WNW of Noshiro Japan -2007-04-26T16:37:57.690Z,42.44,143.558,56.1,5.3,60 km SSE of Obihiro Japan -2007-04-26T20:04:16.490Z,36.369,140.211,125.2,3.8,5 km WSW of Kasama Japan -2007-04-27T09:08:16.230Z,41.053,143.066,44,4.3,145 km ENE of Hachinohe Japan -2007-04-27T22:44:11.090Z,42.004,142.298,71.8,4.3,37 km S of Shizunai-furukawach? Japan -2007-04-28T22:32:53.050Z,35.65,140.116,68.5,4.4,4 km W of Yotsukaid? Japan -2007-04-29T02:54:46.800Z,35.947,140.844,59.2,4.4,18 km E of Kashima-shi Japan -2007-04-30T06:43:21.720Z,38.085,142.768,31.7,4.3,133 km ESE of Ishinomaki Japan -2007-04-30T07:21:24.880Z,41.695,143.861,46.5,4.2,142 km ESE of Shizunai-furukawach? Japan -2007-04-30T14:17:55.120Z,39.105,142.2,43.4,4.3,34 km ESE of Kamaishi Japan -2007-04-30T18:49:11.560Z,35.76,140.13,73.6,4.6,near the east coast of Honshu Japan -2007-05-01T11:12:33.450Z,34.041,140.962,84.1,4.4,136 km SSE of Katsuura Japan -2007-05-03T00:10:11.390Z,36.662,141.182,44.4,3.3,41 km ESE of Kitaibaraki Japan -2007-05-03T08:34:53.090Z,37.337,141.594,45,3.6,near the east coast of Honshu Japan -2007-05-03T18:37:46.060Z,41.971,143.128,48.5,4,74 km ESE of Shizunai-furukawach? Japan -2007-05-05T08:09:29.860Z,36.942,138.178,0.1,3.3,7 km SSW of Arai Japan -2007-05-06T01:09:41.690Z,36.968,141.545,53.9,4.3,59 km E of Iwaki Japan -2007-05-06T19:28:50.520Z,36.547,139.56,112.4,3.4,15 km W of Kanuma Japan -2007-05-07T14:09:38.510Z,41.936,142.528,65.6,4.4,46 km SSE of Shizunai-furukawach? Japan -2007-05-08T12:01:34.830Z,36.06,139.89,46.3,4.3,1 km NW of Iwai Japan -2007-05-08T14:08:24.570Z,41.117,141.362,123.1,3.6,22 km SSE of Mutsu Japan -2007-05-08T17:08:46.220Z,36.523,140.691,54.5,3.9,9 km SSE of Hitachi Japan -2007-05-08T23:52:03.030Z,35.798,139.243,5.4,4.1,1 km N of ?me Japan -2007-05-11T22:21:42.190Z,39.204,144.548,35,3.8,225 km E of Yamada Japan -2007-05-12T23:54:44.520Z,41.484,142.034,61.6,3,71 km ENE of Mutsu Japan -2007-05-13T05:41:02.640Z,35.91,140.83,39.6,3.6,17 km ESE of Kashima-shi Japan -2007-05-13T08:48:43.740Z,36.11,142.124,10,4.3,123 km ENE of Hasaki Japan -2007-05-13T21:59:43.390Z,36.251,140.724,69.3,4,14 km ESE of ?arai Japan -2007-05-15T20:21:02.810Z,41.486,142.124,53.3,4.4,78 km ENE of Mutsu Japan -2007-05-16T01:52:08.790Z,37.757,143.204,35.8,4.2,182 km ESE of Ishinomaki Japan -2007-05-16T05:33:48.580Z,34.107,142.353,35,3.7,219 km ESE of Katsuura Japan -2007-05-18T08:02:17.930Z,36.381,140.612,67.8,4,7 km E of Katsuta Japan -2007-05-18T15:59:58.530Z,41.597,141.991,58.3,5.5,73 km ENE of Mutsu Japan -2007-05-18T22:39:05.540Z,37.765,141.82,40.1,3.6,78 km ENE of Namie Japan -2007-05-20T18:17:26.750Z,41.042,141.396,86,3.9,31 km SSE of Mutsu Japan -2007-05-25T23:54:37.640Z,42.343,142.997,55.4,3.9,51 km E of Shizunai-furukawach? Japan -2007-05-26T15:06:41.080Z,37.69,141.362,88.4,4.3,39 km NE of Namie Japan -2007-05-26T15:14:21.490Z,42.49,141.944,129.7,4,32 km ESE of Tomakomai Japan -2007-05-26T16:51:41.610Z,39.14,143.3,10,4.1,121 km ESE of Yamada Japan -2007-05-28T22:36:11.090Z,39.591,142.184,73.4,4.1,21 km ESE of Miyako Japan -2007-05-29T07:03:33.250Z,38.412,141.116,12.8,4.2,6 km NE of Matsushima Japan -2007-05-30T01:15:56.500Z,42.034,142.601,66.7,4.3,38 km SSE of Shizunai-furukawach? Japan -2007-05-31T22:28:58.410Z,36.109,139.579,64.4,4.4,1 km NNW of Kisai Japan -2007-06-02T05:43:16.820Z,36.135,139.832,69.7,4.5,4 km NE of Sakai Japan -2007-06-02T06:03:31.920Z,39.882,140.239,40.5,4,21 km NNE of Akita Japan -2007-06-02T07:51:29.060Z,42.245,143.957,76.2,4.1,88 km SSW of Kushiro Japan -2007-06-02T10:43:08.020Z,42.446,142.344,97.4,3.7,12 km N of Shizunai-furukawach? Japan -2007-06-04T04:33:55.020Z,36.09,139.864,47.6,4.3,5 km NW of Iwai Japan -2007-06-04T14:49:17.910Z,34.905,140.935,15,4.3,62 km SE of ?hara Japan -2007-06-05T04:59:11.460Z,34.889,140.329,65.7,4.1,28 km S of Katsuura Japan -2007-06-07T07:17:12.220Z,37.913,141.484,81.5,3.6,57 km ESE of Watari Japan -2007-06-07T18:45:08.110Z,38.241,141.692,51.1,3.7,39 km ESE of Ishinomaki Japan -2007-06-08T13:24:41.600Z,41.743,145.079,18.1,4.7,148 km SSE of Kushiro Japan -2007-06-09T04:14:00.460Z,42.093,142.576,70.4,4.3,31 km SSE of Shizunai-furukawach? Japan -2007-06-09T10:33:15.420Z,37.845,140.811,86.1,3.5,8 km SSE of Marumori Japan -2007-06-09T11:28:33.770Z,36.103,139.756,69,4.3,3 km W of Sakai Japan -2007-06-10T16:53:52.380Z,41.012,142.161,83.5,4.1,74 km ENE of Misawa Japan -2007-06-10T21:27:29.430Z,37.722,136.938,45.9,3.8,74 km N of Nanao Japan -2007-06-12T05:08:04.790Z,42.241,142.909,53.1,4.1,45 km ESE of Shizunai-furukawach? Japan -2007-06-13T01:49:35.500Z,38.375,141.992,71.6,4.4,60 km E of Ishinomaki Japan -2007-06-15T14:03:49.590Z,36.067,140.811,47.6,3.1,18 km NE of Kashima-shi Japan -2007-06-15T20:29:00.600Z,38.836,142.277,44.5,4.2,55 km ESE of ?funato Japan -2007-06-17T03:15:57.540Z,36.706,142.395,21.3,4.4,140 km ESE of Iwaki Japan -2007-06-19T06:27:50.860Z,38.796,140.332,117.1,4.5,4 km NNE of Shinj? Japan -2007-06-19T22:44:24.230Z,38.55,136.934,384.4,3.9,141 km WNW of Ry?tsu-minato Japan -2007-06-20T04:31:11.560Z,35.14,141.13,59.5,4.3,68 km E of ?hara Japan -2007-06-20T12:56:03.300Z,36.714,142.159,14.6,4.2,119 km ESE of Iwaki Japan -2007-06-20T14:00:27.780Z,35.193,141.134,39.4,5.1,65 km SSE of Hasaki Japan -2007-06-20T14:04:15.710Z,35.417,141.66,35,4.6,82 km ESE of Hasaki Japan -2007-06-20T14:13:22.290Z,35.215,141.274,35,4.5,70 km SE of Hasaki Japan -2007-06-20T14:54:03.460Z,35.226,141.283,35,4.6,69 km SE of Hasaki Japan -2007-06-20T14:57:03.960Z,35.368,141.761,35,4.1,93 km ESE of Hasaki Japan -2007-06-20T15:45:57.630Z,35.223,141.344,35,4.1,near the east coast of Honshu Japan -2007-06-20T16:59:39.980Z,35.286,141.482,40.6,4.8,76 km SE of Hasaki Japan -2007-06-20T17:00:20.890Z,35.24,141.121,40,4.7,60 km SSE of Hasaki Japan -2007-06-20T17:01:57.710Z,35.207,141.163,69.7,4.6,65 km SSE of Hasaki Japan -2007-06-20T18:00:52.920Z,35.384,141.718,35,4.4,89 km ESE of Hasaki Japan -2007-06-20T18:12:30.040Z,35.211,141.336,5.6,4.8,73 km SE of Hasaki Japan -2007-06-22T22:20:04.280Z,42.539,142.185,125.4,5,27 km NNW of Shizunai-furukawach? Japan -2007-06-22T22:49:15.360Z,38.098,141.896,32.3,3.9,63 km SE of Ishinomaki Japan -2007-06-23T05:57:54.750Z,34.541,140.259,68.5,4.4,60 km SE of Tateyama Japan -2007-06-23T07:15:30.820Z,41.919,141.248,129.6,4.7,45 km ENE of Hakodate Japan -2007-06-23T14:52:57.730Z,36.594,140.807,54.5,4.4,14 km E of Hitachi Japan -2007-06-23T16:32:06.240Z,35.531,140.974,27.5,4.1,25 km SSE of Hasaki Japan -2007-06-25T02:45:31.580Z,36.199,140.863,71.4,3.4,28 km ESE of ?arai Japan -2007-06-26T02:30:42.270Z,36.7,141.206,45.2,4.2,41 km ESE of Kitaibaraki Japan -2007-06-26T12:08:02.460Z,41.258,139.039,29.1,4.4,122 km WNW of Shimokizukuri Japan -2007-06-27T07:06:28.170Z,36.725,137.583,0,4.1,18 km ESE of Uozu Japan -2007-06-28T04:37:53.580Z,41.515,142.083,71.9,4.2,76 km ENE of Mutsu Japan -2007-06-28T09:26:26.000Z,35.812,139.187,15.4,4.4,5 km WNW of ?me Japan -2007-06-28T13:55:22.270Z,36.057,139.698,106.3,3.9,2 km ESE of Kukich?? Japan -2007-06-29T13:56:38.100Z,34.495,140.395,72.2,4.2,72 km SSE of Kamogawa Japan -2007-06-30T02:48:56.800Z,37.139,142.062,65.2,4.4,101 km ESE of Namie Japan -2007-06-30T16:33:26.730Z,36.032,142.263,44.5,4.3,off the east coast of Honshu Japan -2007-06-30T17:43:54.940Z,35.124,140.589,67,4.3,22 km SE of ?hara Japan -2007-06-30T20:55:04.470Z,35.165,140.794,77.5,4.2,37 km ESE of ?hara Japan -2007-07-01T02:53:55.770Z,41.219,140.341,195.8,3.9,44 km N of Shimokizukuri Japan -2007-07-03T14:31:15.810Z,35.773,140.521,64.2,4.5,8 km NNW of Y?kaichiba Japan -2007-07-04T12:43:13.350Z,41.147,140.284,166.5,3.1,37 km NNW of Shimokizukuri Japan -2007-07-05T15:32:30.570Z,40.371,142.101,34.8,4.4,52 km ESE of Hachinohe Japan -2007-07-05T20:58:51.210Z,41.491,139.309,196.6,3.2,116 km NW of Shimokizukuri Japan -2007-07-08T11:16:00.990Z,34.625,141.572,58.6,4.5,127 km ESE of ?hara Japan -2007-07-09T15:53:23.110Z,37.642,141.861,46.2,4,78 km ENE of Namie Japan -2007-07-09T20:16:31.250Z,34.69,141.599,8.4,4.7,126 km ESE of ?hara Japan -2007-07-10T04:15:25.710Z,41.859,139.485,15.3,4.2,96 km W of Kamiiso Japan -2007-07-10T09:52:50.030Z,34.709,141.577,49.5,3.6,123 km ESE of ?hara Japan -2007-07-11T17:10:18.200Z,37.097,137.519,251.1,4.4,17 km N of Ny?zen Japan -2007-07-11T20:29:25.970Z,35.45,139.166,19.5,4.3,10 km NNW of Hadano Japan -2007-07-12T08:43:37.970Z,42.108,142.246,77.7,3.8,27 km SSW of Shizunai-furukawach? Japan -2007-07-16T01:13:22.370Z,37.535,138.446,12,6.6,20 km NNW of Kashiwazaki Japan -2007-07-16T01:34:28.930Z,37.528,138.558,18.9,4.3,17 km N of Kashiwazaki Japan -2007-07-16T01:52:14.580Z,37.497,138.596,16.8,4.2,15 km NNE of Kashiwazaki Japan -2007-07-16T02:05:36.010Z,37.498,138.486,23.1,4.3,15 km NNW of Kashiwazaki Japan -2007-07-16T06:37:40.430Z,37.502,138.467,15.1,5.7,16 km NNW of Kashiwazaki Japan -2007-07-16T07:00:28.040Z,37.521,138.658,21.9,3.8,18 km WNW of Nagaoka Japan -2007-07-16T07:54:44.780Z,37.505,138.629,21.3,3.7,16 km NNE of Kashiwazaki Japan -2007-07-16T08:13:11.410Z,37.465,138.629,21.6,3.8,12 km NNE of Kashiwazaki Japan -2007-07-16T09:19:49.820Z,37.243,138.317,35,4,12 km NE of J?etsu Japan -2007-07-16T12:08:02.120Z,37.509,138.63,20.4,4.4,17 km NNE of Kashiwazaki Japan -2007-07-16T12:15:44.320Z,37.52,138.689,27.4,3.9,16 km WNW of Nagaoka Japan -2007-07-17T19:39:39.350Z,37.149,138.55,10,3.9,19 km W of T?kamachi Japan -2007-07-18T07:53:06.590Z,37.349,138.383,28.6,4.3,14 km W of Kashiwazaki Japan -2007-07-18T11:02:55.910Z,37.472,138.493,20.7,3.7,12 km NNW of Kashiwazaki Japan -2007-07-18T22:03:40.850Z,36.906,141.907,58.5,4.1,92 km E of Iwaki Japan -2007-07-20T04:50:01.620Z,35.939,141.332,35,3.6,50 km ENE of Hasaki Japan -2007-07-20T08:15:22.830Z,34.728,139.314,3.9,4.3,33 km SE of It? Japan -2007-07-20T08:17:27.380Z,34.745,139.303,0,3.4,31 km SE of It? Japan -2007-07-21T00:52:39.990Z,38.602,141.418,67.9,3.7,23 km NNE of Ishinomaki Japan -2007-07-21T07:36:09.260Z,36.544,140.867,51.1,4.3,20 km ESE of Hitachi Japan -2007-07-23T05:38:04.640Z,35.139,141.375,10,3.2,82 km SE of Hasaki Japan -2007-07-24T02:38:43.220Z,35.302,139.067,13.7,4.1,9 km WNW of Odawara Japan -2007-07-24T06:54:22.410Z,41.956,139.273,14,4.1,114 km W of Kamiiso Japan -2007-07-24T19:55:09.520Z,35.026,142.574,10,3.7,176 km ESE of Hasaki Japan -2007-07-24T21:52:07.830Z,37.482,138.541,47.5,4.9,12 km N of Kashiwazaki Japan -2007-07-25T00:40:57.290Z,41.942,142.592,88.4,4.4,47 km SSE of Shizunai-furukawach? Japan -2007-07-27T23:51:34.520Z,38.144,140.896,87.5,4.1,5 km NE of Iwanuma Japan -2007-07-29T06:28:33.120Z,35.587,140.048,54.4,3.4,6 km WSW of Chiba Japan -2007-07-29T20:43:11.730Z,34.298,142.034,46.1,4.1,183 km ESE of Katsuura Japan -2007-08-03T02:01:16.750Z,37.318,138.333,18.2,4.3,19 km WSW of Kashiwazaki Japan -2007-08-03T17:13:04.530Z,36.893,141.219,48.6,4.3,34 km ESE of Iwaki Japan -2007-08-03T17:23:45.580Z,36.916,141.183,48.6,4.1,30 km ESE of Iwaki Japan -2007-08-04T00:22:26.830Z,35.87,140.862,37.4,4.3,15 km N of Hasaki Japan -2007-08-04T08:03:29.190Z,39.007,141.709,61.3,4,7 km S of ?funato Japan -2007-08-05T12:20:51.730Z,35.76,140.245,63.3,3.4,4 km NNE of Sakura Japan -2007-08-06T11:14:54.500Z,35.501,138.789,125.6,3.3,6 km N of Fujiyoshida Japan -2007-08-06T12:06:41.800Z,37.362,140.957,95.5,3.4,13 km SSW of Namie Japan -2007-08-08T12:27:21.030Z,37.652,140.812,77,3.7,25 km NW of Namie Japan -2007-08-09T06:39:40.220Z,36.715,141.238,43.4,3.4,44 km E of Kitaibaraki Japan -2007-08-09T07:34:15.790Z,39.981,144.945,35,4.4,259 km E of Miyako Japan -2007-08-11T03:15:25.050Z,37.529,137.485,17.6,3.9,63 km NNW of Itoigawa Japan -2007-08-12T00:56:46.160Z,37.556,141.676,44.9,3.6,60 km E of Namie Japan -2007-08-12T12:23:57.700Z,38.939,141.958,75.1,4.3,25 km SE of ?funato Japan -2007-08-15T00:23:28.110Z,41.4,142.114,99.6,3.7,76 km E of Mutsu Japan -2007-08-15T02:07:52.120Z,38.735,141.557,100,4.3,39 km SSW of ?funato Japan -2007-08-15T10:34:49.140Z,39.759,141.836,58.4,4.4,15 km NW of Miyako Japan -2007-08-15T11:34:24.460Z,35.248,140.664,21.6,3.5,24 km E of ?hara Japan -2007-08-15T19:15:10.270Z,35.378,140.269,48.7,5.2,5 km SSW of Mobara Japan -2007-08-15T20:04:13.250Z,35.412,140.554,27.9,3.9,22 km SE of T?gane Japan -2007-08-15T22:41:10.660Z,35.929,141.827,35,4.4,92 km ENE of Hasaki Japan -2007-08-15T22:47:45.970Z,35.27,140.323,42.9,4.4,6 km WNW of ?hara Japan -2007-08-15T23:20:35.320Z,35.29,140.286,44,4.9,10 km WNW of ?hara Japan -2007-08-15T23:32:34.030Z,35.184,140.438,37.9,4.3,8 km SSE of ?hara Japan -2007-08-16T00:22:09.900Z,35.296,140.507,11.9,5,11 km ENE of ?hara Japan -2007-08-16T15:22:08.410Z,34.881,139.017,44,4.3,11 km SSW of It? Japan -2007-08-17T19:14:44.510Z,35.36,140.18,26.9,5,12 km SW of Mobara Japan -2007-08-18T04:36:38.940Z,35.296,140.18,35.2,4.5,17 km SW of Mobara Japan -2007-08-18T07:55:10.080Z,35.248,140.088,33.3,5.2,16 km N of Kamogawa Japan -2007-08-18T08:07:01.490Z,35.29,139.986,53.3,4.4,11 km SSE of Kisarazu Japan -2007-08-18T14:16:00.680Z,35.405,140.314,25.9,3.9,2 km SE of Mobara Japan -2007-08-18T17:17:52.050Z,40.389,142.042,65.1,4.1,47 km ESE of Hachinohe Japan -2007-08-22T07:26:24.100Z,42.02,140.638,123.6,5.6,14 km NNW of Honch? Japan -2007-08-23T01:15:35.850Z,35.55,140.17,68.5,4.1,7 km SE of Chiba Japan -2007-08-24T04:20:03.130Z,41.807,143.277,14.8,5,95 km SE of Shizunai-furukawach? Japan -2007-08-25T12:57:10.500Z,40.106,141.255,109.2,4.3,12 km SSW of Ichinohe Japan -2007-08-27T04:48:31.990Z,34.325,139.827,103.5,4.4,73 km S of Tateyama Japan -2007-08-28T11:04:58.030Z,35.859,141.421,10,4.2,54 km ENE of Hasaki Japan -2007-08-29T13:38:35.330Z,35.838,141.011,1,3.8,19 km NE of Hasaki Japan -2007-09-01T06:42:43.540Z,42.052,142.396,85.2,4,31 km S of Shizunai-furukawach? Japan -2007-09-02T20:24:55.990Z,39.772,141.968,67.5,4.4,14 km N of Miyako Japan -2007-09-09T05:01:53.610Z,39.559,142.608,81.1,3.8,57 km E of Yamada Japan -2007-09-09T05:45:25.160Z,42.352,142.478,87.9,4,9 km ENE of Shizunai-furukawach? Japan -2007-09-10T04:40:52.790Z,41.678,141.467,113.7,4,47 km NNE of Mutsu Japan -2007-09-10T05:29:00.040Z,41.99,142.567,62.7,4.5,41 km SSE of Shizunai-furukawach? Japan -2007-09-10T14:58:40.400Z,40.372,143.701,21.8,3.9,170 km ENE of Miyako Japan -2007-09-10T16:31:13.330Z,39.749,142.33,96,4.2,35 km ENE of Miyako Japan -2007-09-16T03:07:58.400Z,38.629,140.144,140.6,3.2,19 km SW of Shinj? Japan -2007-09-20T22:54:31.480Z,35.185,140.832,44.8,5,40 km E of ?hara Japan -2007-09-21T00:25:58.840Z,35.066,140.405,78.9,4.5,12 km SE of Katsuura Japan -2007-09-21T13:40:32.390Z,35.068,141.134,19.3,4.7,70 km ESE of ?hara Japan -2007-09-21T13:42:31.260Z,35.239,141.2,40.8,3.4,64 km SSE of Hasaki Japan -2007-09-21T14:09:19.030Z,35.264,141.202,39,3.3,61 km SSE of Hasaki Japan -2007-09-21T14:47:05.610Z,35.239,141.253,40.7,4.4,66 km SE of Hasaki Japan -2007-09-21T17:37:31.050Z,35.366,141.568,10,4.1,78 km ESE of Hasaki Japan -2007-09-23T07:32:29.680Z,36.5,142.701,75,3.7,173 km ESE of Iwaki Japan -2007-09-23T08:12:32.570Z,36.518,142.655,86,3.5,168 km ESE of Iwaki Japan -2007-09-23T19:10:29.530Z,36.494,142.721,48,4.2,175 km ESE of Iwaki Japan -2007-09-25T16:17:44.170Z,36.401,142.731,12.1,4.4,180 km ESE of Iwaki Japan -2007-09-25T17:14:38.100Z,41.354,142.202,70.9,4.1,82 km E of Mutsu Japan -2007-09-25T22:35:01.380Z,41.444,143.62,48.2,4.3,143 km SE of Shizunai-furukawach? Japan -2007-09-26T03:26:17.910Z,41.401,144.401,46.1,4.2,174 km S of Kushiro Japan -2007-09-28T23:56:32.250Z,40.743,142.983,16.5,4,128 km ENE of Hachinohe Japan -2007-09-29T05:53:39.930Z,41.476,142.012,63.6,3.8,69 km ENE of Mutsu Japan -2007-09-29T21:58:33.030Z,35.9,141.524,34.2,3.6,65 km ENE of Hasaki Japan -2007-09-29T22:49:33.350Z,36.678,141.323,48.3,3.8,52 km ESE of Kitaibaraki Japan -2007-09-30T17:21:16.530Z,35.183,138.994,32.9,4.7,3 km WSW of Hakone Japan -2007-10-05T16:47:16.650Z,36.359,140.963,45.1,4,34 km E of ?arai Japan -2007-10-05T18:46:07.250Z,35.251,139.185,45.1,4,2 km ESE of Odawara Japan -2007-10-05T22:57:27.670Z,41.093,143.244,46,3.3,155 km SSE of Shizunai-furukawach? Japan -2007-10-06T07:55:21.120Z,41.556,142.061,66,3.7,76 km ENE of Mutsu Japan -2007-10-06T23:12:27.140Z,36.451,141.196,45.2,3.4,51 km ESE of Hitachi Japan -2007-10-07T13:36:06.150Z,35.567,140.505,57.9,5,8 km ESE of Narut? Japan -2007-10-08T09:58:27.580Z,41.578,143.711,41.8,4.2,139 km SE of Shizunai-furukawach? Japan -2007-10-08T14:35:21.650Z,41.633,139.911,165.9,4.4,64 km WSW of Kamiiso Japan -2007-10-09T15:51:25.760Z,41.942,143.667,35,4.5,114 km SSE of Obihiro Japan -2007-10-10T09:08:45.600Z,40.463,139.784,165.9,4.4,35 km NW of Noshiro Japan -2007-10-10T14:43:58.550Z,35.612,139.676,78.2,4.3,8 km S of Tokyo Japan -2007-10-10T22:45:20.120Z,35.632,141.056,35,4.4,23 km ESE of Hasaki Japan -2007-10-11T16:19:55.370Z,37.953,142.098,50.5,3.9,86 km SE of Ishinomaki Japan -2007-10-13T13:34:19.390Z,36.563,140.916,49.3,3.8,24 km E of Hitachi Japan -2007-10-15T21:27:43.710Z,36.922,142.273,35,4,124 km E of Iwaki Japan -2007-10-17T13:33:18.440Z,36.125,139.825,60,4,3 km NE of Sakai Japan -2007-10-17T14:08:37.840Z,36.746,141.252,47,4.4,45 km E of Kitaibaraki Japan -2007-10-18T21:42:28.600Z,35.623,138.753,167.3,3.5,8 km SSE of Enzan Japan -2007-10-20T00:06:21.300Z,37.855,142.397,38.5,4.3,114 km ESE of Ishinomaki Japan -2007-10-20T03:14:53.390Z,41.423,142.492,49.5,4.5,101 km S of Shizunai-furukawach? Japan -2007-10-20T08:36:36.390Z,37.176,141.457,47.7,4,52 km ENE of Iwaki Japan -2007-10-20T10:05:54.420Z,40.149,142.476,68.3,4.3,72 km NE of Miyako Japan -2007-10-20T10:10:31.210Z,40.275,142.358,56.4,4.2,77 km ESE of Hachinohe Japan -2007-10-21T02:15:32.650Z,34.002,141.227,46.6,3.9,152 km SSE of Katsuura Japan -2007-10-22T05:08:59.390Z,42.177,142.957,75.5,4.1,51 km ESE of Shizunai-furukawach? Japan -2007-10-23T01:22:56.750Z,37.682,141.692,42.2,4.5,64 km ENE of Namie Japan -2007-10-23T07:16:34.390Z,42.314,143.046,49.4,3.8,56 km E of Shizunai-furukawach? Japan -2007-10-27T05:45:02.500Z,42.31,144.381,58.4,4.1,73 km S of Kushiro Japan -2007-10-28T14:37:07.530Z,35.994,140.056,79.3,4,7 km ESE of Mitsukaid? Japan -2007-10-31T14:21:00.350Z,36.764,141.881,35,4.3,94 km ESE of Iwaki Japan -2007-11-07T11:05:41.720Z,38.358,141.611,61.3,4.5,27 km ESE of Ishinomaki Japan -2007-11-09T07:34:06.600Z,35.481,139.716,98,3.8,4 km S of Kawasaki Japan -2007-11-11T10:48:54.720Z,36.043,139.866,59.6,4.3,3 km WSW of Iwai Japan -2007-11-12T00:20:42.410Z,36.774,140.916,56.7,4.3,14 km E of Kitaibaraki Japan -2007-11-13T03:08:52.860Z,34.722,139.856,93.7,3.1,29 km S of Tateyama Japan -2007-11-17T05:56:28.360Z,42.021,142.271,70.8,4.4,35 km SSW of Shizunai-furukawach? Japan -2007-11-19T06:00:24.280Z,38.86,141.494,104.1,4.2,30 km SW of ?funato Japan -2007-11-25T21:42:10.660Z,37.938,141.458,91.8,4.6,54 km ESE of Watari Japan -2007-11-25T21:57:27.730Z,35.175,141.106,42.3,4.3,65 km E of ?hara Japan -2007-11-26T13:51:39.800Z,37.392,141.586,42.4,5.9,52 km E of Namie Japan -2007-11-26T23:05:56.980Z,35.668,140.261,40.9,4,5 km WNW of Yachimata Japan -2007-11-27T10:22:04.210Z,42.017,142.178,74.1,4.6,38 km SSW of Shizunai-furukawach? Japan -2007-11-27T10:41:01.470Z,39.017,142.5,36,4.1,61 km ESE of Kamaishi Japan -2007-11-28T16:46:20.390Z,37.273,142.489,35,4.2,133 km E of Namie Japan -2007-11-29T22:27:23.680Z,35.505,141.16,37.2,4.7,38 km SE of Hasaki Japan -2007-11-29T22:42:35.190Z,41.833,143.665,28.9,3.6,120 km ESE of Shizunai-furukawach? Japan -2007-11-30T00:07:52.500Z,41.885,143.45,35.3,4,102 km ESE of Shizunai-furukawach? Japan -2007-11-30T09:36:58.080Z,36.427,140.696,52.9,4.6,12 km ESE of Funaishikawa Japan -2007-12-01T16:28:10.230Z,42.333,143.006,52.2,3.4,52 km E of Shizunai-furukawach? Japan -2007-12-02T00:24:40.100Z,36.201,139.81,67.5,3.9,8 km ENE of Koga Japan -2007-12-05T12:27:27.100Z,39.12,142.525,26.6,4.1,59 km ESE of Kamaishi Japan -2007-12-08T12:26:20.820Z,38.865,143.507,10,3.5,149 km ESE of Kamaishi Japan -2007-12-09T04:09:54.760Z,40.689,143.302,3.9,4.4,153 km E of Hachinohe Japan -2007-12-10T09:31:29.120Z,35.231,141.322,26.9,3,71 km SE of Hasaki Japan -2007-12-11T13:24:50.980Z,35.251,141.571,22.9,4.2,85 km SE of Hasaki Japan -2007-12-15T04:18:16.410Z,39.637,142.103,47.9,3.7,13 km E of Miyako Japan -2007-12-15T05:09:34.130Z,37.696,142.307,31.9,4,117 km E of Namie Japan -2007-12-15T13:28:50.710Z,41.509,140.355,142.2,3.5,42 km SW of Kamiiso Japan -2007-12-15T17:26:11.080Z,42.13,142.62,67.1,4,30 km SE of Shizunai-furukawach? Japan -2007-12-16T03:04:30.280Z,41.84,141.24,96.4,4.2,42 km E of Hakodate Japan -2007-12-16T05:15:47.260Z,40.134,144.819,42.4,4.3,252 km ENE of Miyako Japan -2007-12-17T05:26:37.030Z,38.568,140.149,124.6,3.8,22 km W of Obanazawa Japan -2007-12-18T21:19:30.010Z,36.221,142.382,11.6,3.9,149 km ENE of Hasaki Japan -2007-12-19T11:31:25.340Z,37.022,142.065,45,4,105 km E of Iwaki Japan -2007-12-19T15:16:40.360Z,37.817,142.427,43.5,3.5,119 km SE of Ishinomaki Japan -2007-12-20T11:52:54.140Z,34.323,142.104,15.8,3.6,187 km ESE of ?hara Japan -2007-12-20T12:24:28.800Z,34.694,141.549,19.8,3.3,122 km ESE of ?hara Japan -2007-12-21T00:14:57.520Z,34.743,141.519,45.6,3.3,117 km ESE of ?hara Japan -2007-12-21T09:02:47.230Z,35.499,141.111,34.3,3.6,36 km SE of Hasaki Japan -2007-12-21T13:54:13.000Z,34.532,141.926,37.3,3.2,161 km ESE of ?hara Japan -2007-12-22T08:51:43.720Z,34.579,140.244,101.1,4.5,56 km SE of Tateyama Japan -2007-12-22T10:39:13.970Z,37.231,139.292,5.3,4.4,37 km SE of Tochio-honch? Japan -2007-12-23T09:53:11.190Z,41.602,142.036,58.8,4.9,76 km ENE of Mutsu Japan -2007-12-25T14:04:34.730Z,38.503,142.026,48.4,6.1,64 km E of Ishinomaki Japan -2007-12-25T23:38:54.020Z,38.366,142.312,31.5,4.4,88 km E of Ishinomaki Japan -2007-12-27T09:56:12.770Z,36.575,141.343,47.2,3.7,58 km ESE of Kitaibaraki Japan -2007-12-27T10:12:37.040Z,40.566,143.781,29.8,4.2,187 km ENE of Miyako Japan -2007-12-27T21:01:37.110Z,35.926,141.417,35,3.3,56 km ENE of Hasaki Japan -2007-12-28T01:51:38.790Z,42.152,142.517,46.2,4.3,23 km SSE of Shizunai-furukawach? Japan -2008-01-01T11:12:08.530Z,39.019,142.341,40,4.2,near the east coast of Honshu Japan -2008-01-01T16:20:06.970Z,42.408,143.057,55.9,4.2,57 km E of Shizunai-furukawach? Japan -2008-01-02T10:56:56.800Z,37.536,142.175,31.7,3.9,104 km E of Namie Japan -2008-01-03T19:29:37.240Z,39.93,142.548,35,4.1,60 km ENE of Miyako Japan -2008-01-04T09:36:00.830Z,35.644,140.082,70.8,4.4,5 km NNW of Chiba Japan -2008-01-06T00:34:53.670Z,37.83,140.019,7,4.1,12 km SW of Yonezawa Japan -2008-01-07T13:49:55.470Z,40.765,141.356,15,3.9,9 km NNW of Misawa Japan -2008-01-08T21:24:11.120Z,36.687,141.453,35,3.9,63 km E of Kitaibaraki Japan -2008-01-09T20:46:35.190Z,38.363,142.014,81.2,3.8,62 km E of Ishinomaki Japan -2008-01-09T22:15:27.840Z,36.056,141.375,33.5,4.3,60 km NE of Hasaki Japan -2008-01-10T23:00:31.670Z,39.374,141.953,46.5,4.6,4 km E of ?tsuchi Japan -2008-01-13T14:00:07.480Z,39.274,143.112,35,4,102 km ESE of Yamada Japan -2008-01-13T21:07:10.150Z,38.869,142.058,66.4,4.3,near the east coast of Honshu Japan -2008-01-14T17:21:26.960Z,42.168,142.845,58.7,3.8,43 km ESE of Shizunai-furukawach? Japan -2008-01-15T17:55:41.670Z,36.546,141.123,42.1,4.7,40 km ESE of Takahagi Japan -2008-01-17T10:53:46.350Z,41.636,142.35,66,3.6,77 km S of Shizunai-furukawach? Japan -2008-01-18T09:17:09.440Z,40.879,143.189,22,4.1,148 km ENE of Hachinohe Japan -2008-01-19T09:53:21.170Z,37.11,141.103,52.5,4.4,20 km ENE of Iwaki Japan -2008-01-19T19:02:18.690Z,41.902,144.437,18.5,4,119 km S of Kushiro Japan -2008-01-19T22:05:33.470Z,36.277,141.982,35,3.5,119 km ENE of Hasaki Japan -2008-01-21T03:12:22.640Z,41.201,142.064,70.9,4.7,71 km E of Mutsu Japan -2008-01-22T10:08:20.200Z,35.817,141.39,10,4.4,51 km E of Hasaki Japan -2008-01-22T19:34:47.940Z,42.283,142.969,84.2,4.9,49 km E of Shizunai-furukawach? Japan -2008-01-23T10:51:24.090Z,34.982,141.643,1.1,4.3,111 km SE of Hasaki Japan -2008-01-23T12:56:35.620Z,34.931,141.355,47.1,3.2,94 km ESE of ?hara Japan -2008-01-24T14:27:08.170Z,37.55,142.954,35,4.4,172 km E of Namie Japan -2008-01-24T16:07:03.280Z,37.415,142.897,41.1,4.2,168 km E of Namie Japan -2008-01-25T15:56:23.970Z,38.739,142.32,37.5,3.8,near the east coast of Honshu Japan -2008-01-26T10:12:15.940Z,41.614,142.961,31,3.3,93 km SSE of Shizunai-furukawach? Japan -2008-01-30T16:19:41.000Z,40.274,142.665,65.9,4.1,93 km NE of Miyako Japan -2008-01-31T04:08:42.510Z,37.262,143.152,35,4,192 km E of Namie Japan -2008-01-31T14:55:51.660Z,37.438,143.098,59,4.3,185 km E of Namie Japan -2008-02-02T04:07:22.390Z,36.158,141.035,41.6,4.2,41 km ENE of Kashima-shi Japan -2008-02-03T05:25:16.600Z,37.459,143.155,50,3.5,190 km E of Namie Japan -2008-02-03T05:36:21.140Z,35.45,141.154,33.9,3.2,42 km SE of Hasaki Japan -2008-02-03T18:59:23.190Z,37.066,137.177,267.9,4.3,near the west coast of Honshu Japan -2008-02-06T00:20:17.200Z,34.93,140.138,101.8,4.1,18 km S of Kamogawa Japan -2008-02-07T01:32:02.110Z,38.809,141.923,84.6,3.1,34 km SSE of ?funato Japan -2008-02-08T03:37:32.690Z,35.396,141.062,43.7,3.1,42 km SSE of Hasaki Japan -2008-02-08T22:07:06.590Z,36.719,141.149,46.1,4.9,36 km ESE of Kitaibaraki Japan -2008-02-10T00:37:16.410Z,34.724,140.036,95.3,5,32 km SSE of Tateyama Japan -2008-02-10T08:04:43.170Z,39.478,141.083,123.9,4.2,10 km NNW of Hanamaki Japan -2008-02-10T14:57:46.480Z,35.226,140.4,10,4.2,2 km SSE of ?hara Japan -2008-02-10T16:49:33.940Z,35.28,140.694,10,4.1,27 km E of ?hara Japan -2008-02-10T18:46:10.020Z,35.992,139.619,54.3,3.7,2 km NNE of Ageoshimo Japan -2008-02-11T07:30:26.460Z,35.543,140.14,64,3.7,5 km ENE of Ichihara Japan -2008-02-11T09:31:39.310Z,37.457,142.78,39,4,157 km E of Namie Japan -2008-02-11T14:45:00.600Z,40.533,143.31,45.2,3.7,152 km NE of Miyako Japan -2008-02-11T15:43:55.110Z,37.276,140.602,86.1,3.9,19 km S of Funehikimachi-funehiki Japan -2008-02-12T23:35:50.260Z,38.84,141.525,83.8,4,30 km SSW of ?funato Japan -2008-02-14T05:29:12.860Z,40.827,142.682,52.5,4.2,106 km ENE of Hachinohe Japan -2008-02-14T15:45:07.070Z,36.051,141.05,35,4.4,37 km ENE of Kashima-shi Japan -2008-02-16T18:15:49.650Z,36.269,141.11,36.1,4.4,47 km E of ?arai Japan -2008-02-18T08:24:18.630Z,36.373,141.966,10,3.6,118 km ESE of Takahagi Japan -2008-02-19T23:40:23.840Z,36.586,141.563,69.9,4.1,76 km ESE of Kitaibaraki Japan -2008-02-20T03:40:25.830Z,36.661,143.628,35,4,248 km E of Iwaki Japan -2008-02-21T23:42:15.740Z,33.857,141.69,45,3.4,off the east coast of Honshu Japan -2008-02-22T11:27:00.010Z,36.941,141.154,49.5,4.4,26 km ESE of Iwaki Japan -2008-02-24T20:25:00.430Z,35.425,141.307,30.2,4.3,54 km SE of Hasaki Japan -2008-02-25T13:52:21.640Z,36.725,141.235,70.7,3.9,43 km E of Kitaibaraki Japan -2008-02-26T18:28:48.010Z,36.114,139.45,126.1,3.6,1 km N of Fukiage-fujimi Japan -2008-02-28T02:37:38.880Z,34.099,140.794,51.6,3.9,124 km SSE of Katsuura Japan -2008-02-28T23:53:09.100Z,35.285,143.014,10,3.4,203 km ESE of Hasaki Japan -2008-03-01T03:45:04.920Z,39.575,142.186,94.7,4.1,22 km ESE of Miyako Japan -2008-03-02T09:29:11.200Z,41.259,142.531,35.6,4,110 km E of Mutsu Japan -2008-03-02T09:33:31.720Z,36.614,140.432,83.3,4.1,7 km N of ?miya Japan -2008-03-03T08:57:53.590Z,36.676,141.336,45.4,4.4,53 km ESE of Kitaibaraki Japan -2008-03-03T09:45:18.660Z,36.391,141.132,45.8,4.8,near the east coast of Honshu Japan -2008-03-04T02:34:29.900Z,38.032,141.856,43.5,3.4,64 km SE of Ishinomaki Japan -2008-03-07T16:54:57.170Z,36.453,140.612,57,5.2,4 km ESE of Funaishikawa Japan -2008-03-08T21:13:44.850Z,36.057,139.949,47.1,4.3,4 km E of Iwai Japan -2008-03-10T01:56:35.250Z,42.52,143.438,69.9,3.6,48 km SSE of Obihiro Japan -2008-03-10T17:27:48.680Z,37.128,141.121,85.7,4.1,22 km ENE of Iwaki Japan -2008-03-12T08:59:58.920Z,37.448,138.57,19.9,4.3,9 km N of Kashiwazaki Japan -2008-03-13T12:56:46.930Z,34.744,139.398,135,3.5,37 km SE of It? Japan -2008-03-14T07:16:54.750Z,39.509,139.511,35,4,56 km WSW of Akita Japan -2008-03-15T01:47:24.220Z,36.129,141.75,45.2,4.3,93 km ENE of Hasaki Japan -2008-03-15T03:33:41.330Z,36.159,141.802,28.8,4.3,near the east coast of Honshu Japan -2008-03-15T05:45:05.860Z,37.347,142.244,35,4.3,111 km E of Namie Japan -2008-03-15T14:00:45.680Z,36.211,141.902,73,4.6,109 km ENE of Hasaki Japan -2008-03-17T06:49:15.340Z,36.584,141.359,45.4,3.8,58 km ESE of Kitaibaraki Japan -2008-03-17T07:40:12.810Z,36.016,141.61,26.1,4.3,76 km ENE of Hasaki Japan -2008-03-19T14:18:34.220Z,37.047,140.963,65.1,4,7 km E of Iwaki Japan -2008-03-19T16:36:37.090Z,36.052,139.813,60.1,4.1,5 km SSE of Sakai Japan -2008-03-20T03:24:24.010Z,35.715,140.178,71.5,3.9,5 km W of Sakura Japan -2008-03-21T09:16:23.390Z,41.709,144.295,25,4.6,140 km S of Kushiro Japan -2008-03-21T09:22:33.820Z,41.707,144.289,25.4,4.1,141 km S of Kushiro Japan -2008-03-23T06:54:13.580Z,40.128,142.733,42.9,4.2,86 km NE of Miyako Japan -2008-03-23T19:11:17.950Z,39.95,143.188,23,4.3,112 km ENE of Miyako Japan -2008-03-24T02:01:58.850Z,36.062,139.952,47.3,3.5,4 km ENE of Iwai Japan -2008-03-24T02:18:00.770Z,36.745,141.631,52.5,3.4,74 km ESE of Iwaki Japan -2008-03-24T03:40:12.140Z,37.137,141.292,41.8,5.2,37 km ENE of Iwaki Japan -2008-03-24T07:46:48.030Z,36.452,142.605,35,4.3,167 km ESE of Iwaki Japan -2008-03-24T13:29:47.850Z,37.304,141.17,67.1,4.3,24 km SE of Namie Japan -2008-03-24T15:54:54.770Z,36.046,139.768,118.7,4.1,4 km ENE of Sugito Japan -2008-03-26T21:30:44.900Z,42.451,142.949,105.8,4.3,49 km ENE of Shizunai-furukawach? Japan -2008-03-27T08:13:42.950Z,39.806,140.319,162.3,3.2,19 km ENE of Akita Japan -2008-03-28T23:03:22.370Z,39.51,142.064,72.1,4.8,10 km ENE of Yamada Japan -2008-03-30T01:49:07.460Z,35.706,140.05,71.3,4,5 km E of Honch? Japan -2008-04-01T05:48:50.330Z,35.534,139.598,85.8,4.4,10 km W of Kawasaki Japan -2008-04-01T14:29:07.460Z,34.881,140.412,89.7,4.7,30 km SSE of Katsuura Japan -2008-04-02T17:15:16.750Z,36.773,141.739,10,4.2,82 km ESE of Iwaki Japan -2008-04-04T10:01:52.350Z,36.062,139.592,63,4.9,0 km SW of Sh?bu Japan -2008-04-04T22:33:41.770Z,36.606,141.389,46.2,4.4,60 km ESE of Kitaibaraki Japan -2008-04-06T10:09:06.030Z,38.907,141.562,69.6,4.2,22 km SW of ?funato Japan -2008-04-06T12:55:44.390Z,35.931,140.185,54.6,4.4,3 km N of Ry?gasaki Japan -2008-04-07T13:06:45.290Z,36.214,141.072,21.4,3.7,45 km ESE of ?arai Japan -2008-04-10T00:54:01.370Z,35.754,140.134,67.3,4.2,7 km SE of Shiroi Japan -2008-04-10T20:32:54.700Z,38.888,142.152,48.3,4.2,42 km ESE of ?funato Japan -2008-04-16T19:19:36.270Z,39.028,140.005,166,5.8,6 km ENE of Yuza Japan -2008-04-17T01:34:06.220Z,37.391,137.935,22.3,3.7,37 km NW of J?etsu Japan -2008-04-18T09:48:53.140Z,38.928,141.448,35,3.8,27 km E of Ichinoseki Japan -2008-04-18T21:36:30.600Z,37.06,141.944,35.7,3.8,94 km E of Iwaki Japan -2008-04-19T09:44:07.730Z,36.683,142.055,21.5,4.1,112 km ESE of Iwaki Japan -2008-04-21T15:32:14.740Z,41.168,142.834,36.2,4.2,132 km ENE of Misawa Japan -2008-04-25T09:52:47.770Z,35.62,140.46,46.4,5.1,4 km ENE of Narut? Japan -2008-04-25T10:27:06.360Z,35.675,140.725,47.1,3.2,8 km SE of Asahi Japan -2008-04-25T18:16:11.550Z,36.173,141.846,42.1,4,103 km ENE of Hasaki Japan -2008-04-25T20:49:30.870Z,40.862,141.363,93.5,3.6,19 km N of Misawa Japan -2008-04-27T22:31:35.090Z,35.567,140.094,70.2,4.3,4 km SSW of Chiba Japan -2008-04-28T12:50:54.320Z,42.347,143.146,50.2,4,63 km S of Obihiro Japan -2008-04-29T05:26:04.680Z,41.452,142.03,46.7,5.8,70 km ENE of Mutsu Japan -2008-04-30T22:34:11.870Z,36.041,140.244,56.3,4.4,4 km ENE of Ami Japan -2008-05-01T21:58:52.290Z,37.077,141.465,42.6,4.9,51 km E of Iwaki Japan -2008-05-02T05:41:26.290Z,37.278,141.539,37.7,4.9,52 km ESE of Namie Japan -2008-05-02T14:51:50.380Z,35.339,140.303,41.3,4.3,9 km S of Mobara Japan -2008-05-02T16:29:52.810Z,40.527,139.919,173.9,4.4,36 km NNW of Noshiro Japan -2008-05-03T12:06:19.870Z,39.635,142.106,47.6,3.7,14 km E of Miyako Japan -2008-05-05T00:26:56.030Z,36.203,141.695,10,4.9,93 km ENE of Hasaki Japan -2008-05-05T01:45:19.310Z,36.297,141.897,59.9,3.6,114 km ENE of Hasaki Japan -2008-05-07T05:10:30.340Z,36.145,141.797,35,4.4,98 km ENE of Hasaki Japan -2008-05-07T05:35:39.920Z,36.141,141.886,36.7,4.2,105 km ENE of Hasaki Japan -2008-05-07T09:36:57.180Z,36.262,141.882,36,3.8,111 km ENE of Hasaki Japan -2008-05-07T09:58:17.600Z,36.172,141.775,36.3,4.8,97 km ENE of Hasaki Japan -2008-05-07T09:59:04.330Z,36.141,141.704,35,4.9,90 km ENE of Hasaki Japan -2008-05-07T10:49:58.730Z,36.26,141.722,37.4,4.6,99 km NE of Hasaki Japan -2008-05-07T11:09:04.670Z,36.23,141.741,34,4.5,98 km ENE of Hasaki Japan -2008-05-07T15:25:15.370Z,36.156,141.83,35,4.5,101 km ENE of Hasaki Japan -2008-05-07T15:37:24.050Z,36.185,141.959,35,4.3,113 km ENE of Hasaki Japan -2008-05-07T16:02:02.600Z,36.178,141.545,19,6.2,80 km NE of Hasaki Japan -2008-05-07T16:03:40.430Z,36.226,141.766,35,5.4,100 km ENE of Hasaki Japan -2008-05-07T16:09:04.080Z,36.232,141.907,6.1,5.3,111 km ENE of Hasaki Japan -2008-05-07T16:11:39.690Z,36.222,141.835,35.8,4.9,105 km ENE of Hasaki Japan -2008-05-07T16:12:27.630Z,36.228,141.7,38.5,5.1,95 km NE of Hasaki Japan -2008-05-07T16:16:20.640Z,36.138,141.851,13.8,4.7,102 km ENE of Hasaki Japan -2008-05-07T16:16:36.190Z,36.156,141.756,23.3,6.1,95 km ENE of Hasaki Japan -2008-05-07T16:24:10.220Z,36.125,141.842,29.4,5,100 km ENE of Hasaki Japan -2008-05-07T16:26:24.530Z,36.318,141.803,37.2,4.8,106 km ESE of Takahagi Japan -2008-05-07T16:27:40.130Z,36.38,141.758,35,5,100 km ESE of Takahagi Japan -2008-05-07T16:45:18.700Z,36.164,141.526,27,6.9,78 km NE of Hasaki Japan -2008-05-07T16:50:59.150Z,36.504,141.588,35,4.6,81 km ESE of Kitaibaraki Japan -2008-05-07T16:55:53.240Z,36.314,141.41,35,4.1,74 km E of ?arai Japan -2008-05-07T17:02:34.970Z,36.202,141.373,35,4.1,70 km ENE of Kashima-shi Japan -2008-05-07T17:04:22.800Z,36.314,141.663,35,3.9,95 km ESE of Takahagi Japan -2008-05-07T17:07:37.300Z,36.111,141.639,24.9,4.3,83 km ENE of Hasaki Japan -2008-05-07T17:17:21.560Z,36.179,141.81,35,4,101 km ENE of Hasaki Japan -2008-05-07T17:18:56.930Z,36.273,141.753,28.2,4.3,102 km NE of Hasaki Japan -2008-05-07T17:21:05.210Z,36.188,141.472,41.4,4.5,76 km NE of Hasaki Japan -2008-05-07T17:28:56.140Z,36.165,141.77,24.8,4.6,97 km ENE of Hasaki Japan -2008-05-07T17:31:18.990Z,36.248,141.584,37.9,5.4,88 km NE of Hasaki Japan -2008-05-07T17:40:56.910Z,36.204,141.833,36.9,4.4,104 km ENE of Hasaki Japan -2008-05-07T18:00:48.230Z,36.04,141.802,43.3,4.1,93 km ENE of Hasaki Japan -2008-05-07T18:11:39.840Z,36.696,141.509,35,4.2,68 km SE of Iwaki Japan -2008-05-07T18:19:56.660Z,36.148,141.501,15.8,5,75 km NE of Hasaki Japan -2008-05-07T18:39:34.550Z,36.121,141.909,15.3,4.6,106 km ENE of Hasaki Japan -2008-05-07T18:51:29.990Z,36.143,141.778,43.7,4.4,96 km ENE of Hasaki Japan -2008-05-07T18:58:49.400Z,36.196,141.532,43.3,4.3,81 km NE of Hasaki Japan -2008-05-07T19:19:06.960Z,35.202,141.923,35,4,115 km ESE of Hasaki Japan -2008-05-07T19:20:23.040Z,36.178,141.46,39.9,4.7,75 km NE of Hasaki Japan -2008-05-07T20:19:22.930Z,36.094,142.05,35,4.3,116 km ENE of Hasaki Japan -2008-05-07T20:34:20.980Z,36.266,141.373,40.4,4.3,71 km E of ?arai Japan -2008-05-07T20:37:49.000Z,36.075,141.802,43.6,4.1,95 km ENE of Hasaki Japan -2008-05-07T20:58:00.210Z,36.206,141.832,35,4.2,104 km ENE of Hasaki Japan -2008-05-07T21:07:33.040Z,35.974,141.897,41.5,4.1,99 km ENE of Hasaki Japan -2008-05-07T21:26:57.870Z,36.378,141.41,42.5,4.3,72 km ESE of Hitachi Japan -2008-05-07T22:12:40.790Z,36.307,141.81,35,4,107 km ESE of Takahagi Japan -2008-05-07T22:24:43.190Z,36.102,142.117,35,4.1,122 km ENE of Hasaki Japan -2008-05-07T22:50:14.460Z,36.055,141.726,35,4.3,88 km ENE of Hasaki Japan -2008-05-08T01:19:28.530Z,36.527,141.755,35,3.4,94 km ESE of Kitaibaraki Japan -2008-05-08T05:26:31.790Z,35.994,141.921,35,4.5,102 km ENE of Hasaki Japan -2008-05-08T06:29:11.120Z,36.161,141.81,35,4.2,100 km ENE of Hasaki Japan -2008-05-08T06:49:53.350Z,35.964,142.01,35,4.1,off the east coast of Honshu Japan -2008-05-08T09:40:36.570Z,36.09,141.931,19.4,5,106 km ENE of Hasaki Japan -2008-05-08T09:48:40.840Z,35.963,142.096,14.2,4.5,off the east coast of Honshu Japan -2008-05-08T10:49:12.610Z,36.14,142.203,69,3.2,off the east coast of Honshu Japan -2008-05-08T11:18:03.410Z,35.986,141.732,35,3,85 km ENE of Hasaki Japan -2008-05-08T11:37:14.690Z,35.98,142.161,35,4.5,123 km ENE of Hasaki Japan -2008-05-08T11:54:48.970Z,36.024,141.847,35,3.3,97 km ENE of Hasaki Japan -2008-05-08T11:58:54.040Z,36.121,141.849,35,4.4,101 km ENE of Hasaki Japan -2008-05-08T12:30:38.380Z,35.586,141.646,35,3.3,75 km ESE of Hasaki Japan -2008-05-08T17:37:59.180Z,36.125,141.934,40.3,4.2,108 km ENE of Hasaki Japan -2008-05-08T20:11:47.050Z,36.074,141.504,26.1,4.5,71 km ENE of Hasaki Japan -2008-05-08T21:12:21.700Z,36.344,142.024,35,4.2,124 km ESE of Takahagi Japan -2008-05-08T21:18:43.350Z,36.275,142.029,31.8,5,123 km ENE of Hasaki Japan -2008-05-08T22:43:08.120Z,35.596,139.981,66.8,4.7,11 km S of Honch? Japan -2008-05-08T22:48:01.610Z,35.625,140.104,67.1,4,3 km NNW of Chiba Japan -2008-05-08T23:01:56.940Z,35.784,140.509,42.8,4.3,10 km NNW of Y?kaichiba Japan -2008-05-08T23:21:06.960Z,36.108,141.683,17,5.6,87 km ENE of Hasaki Japan -2008-05-08T23:48:58.600Z,36.043,141.911,35,4.3,103 km ENE of Hasaki Japan -2008-05-08T23:58:29.940Z,36.547,140.985,35,4.4,30 km SE of Takahagi Japan -2008-05-09T00:24:23.590Z,36.081,141.856,35,3.9,near the east coast of Honshu Japan -2008-05-09T02:09:28.490Z,36.078,141.891,40.7,4.3,102 km ENE of Hasaki Japan -2008-05-09T02:14:48.930Z,35.994,142.288,35,3.7,134 km ENE of Hasaki Japan -2008-05-09T03:44:51.720Z,36.287,142.009,12.4,4.3,122 km ENE of Hasaki Japan -2008-05-09T09:14:51.800Z,35.941,141.955,10,4.4,103 km ENE of Hasaki Japan -2008-05-09T10:02:46.000Z,36.143,141.769,41.4,4.4,95 km ENE of Hasaki Japan -2008-05-09T17:40:55.450Z,35.701,142.006,35,4.2,106 km E of Hasaki Japan -2008-05-09T22:59:21.090Z,35.103,141.896,35,4.1,119 km SE of Hasaki Japan -2008-05-10T00:00:55.490Z,41.463,141.983,67.6,4.9,66 km ENE of Mutsu Japan -2008-05-10T00:31:50.850Z,39.054,142.092,35,3.9,31 km SE of Kamaishi Japan -2008-05-10T04:27:33.850Z,36.053,141.763,40.1,4.2,91 km ENE of Hasaki Japan -2008-05-10T16:20:27.640Z,40.35,142.075,50.3,3.9,51 km ESE of Hachinohe Japan -2008-05-10T21:22:57.410Z,36.152,141.999,35,4,114 km ENE of Hasaki Japan -2008-05-11T04:43:50.030Z,36.082,141.617,43.4,4.5,80 km ENE of Hasaki Japan -2008-05-11T13:08:25.680Z,36.081,141.419,14.3,4.2,65 km NE of Hasaki Japan -2008-05-11T17:17:36.990Z,36.613,142.02,12.1,4.3,112 km ESE of Iwaki Japan -2008-05-11T17:23:40.630Z,36.634,141.879,23,3.2,100 km ESE of Iwaki Japan -2008-05-11T17:29:00.490Z,35.958,141.99,35,3.6,107 km ENE of Hasaki Japan -2008-05-13T00:48:16.370Z,36.165,141.627,42.8,3.7,86 km ENE of Hasaki Japan -2008-05-13T18:00:13.450Z,41.454,142.059,70.1,4.3,72 km ENE of Mutsu Japan -2008-05-13T21:33:12.390Z,36.066,141.362,35,4.2,60 km NE of Hasaki Japan -2008-05-13T23:20:44.210Z,36.708,140.963,35,4,21 km ESE of Kitaibaraki Japan -2008-05-14T00:52:10.880Z,37.015,141.985,35,4.1,98 km E of Iwaki Japan -2008-05-14T09:45:35.100Z,41.95,141.813,35,3.3,62 km SW of Shizunai-furukawach? Japan -2008-05-14T10:31:46.040Z,35.974,141.969,35,3.3,106 km ENE of Hasaki Japan -2008-05-14T17:53:13.560Z,37.083,142.392,35,4.2,131 km ESE of Namie Japan -2008-05-15T16:31:23.620Z,39.579,144.949,53.4,4.2,258 km E of Yamada Japan -2008-05-16T19:55:03.770Z,36.297,141.895,35,4.2,114 km ENE of Hasaki Japan -2008-05-16T23:48:21.480Z,36.401,141.413,25,4.3,71 km ESE of Takahagi Japan -2008-05-17T10:22:19.100Z,35.418,140.458,54.5,3.1,14 km E of Mobara Japan -2008-05-17T15:06:13.420Z,37.227,139.871,122.6,3.3,32 km NNW of Kuroiso Japan -2008-05-18T01:31:19.340Z,40.838,142.577,50.7,4.1,98 km ENE of Hachinohe Japan -2008-05-20T01:49:08.080Z,36.534,142.306,35,3.6,139 km ESE of Iwaki Japan -2008-05-20T09:00:20.290Z,35.927,141.13,35.9,3.9,34 km NE of Hasaki Japan -2008-05-20T18:07:56.680Z,34.683,141.779,60.8,4.4,141 km ESE of ?hara Japan -2008-05-22T17:40:02.750Z,41.608,142.069,68,4.7,79 km ENE of Mutsu Japan -2008-05-23T10:56:27.760Z,41.827,142.277,92.6,4.1,56 km S of Shizunai-furukawach? Japan -2008-05-24T10:12:16.960Z,36.245,142.063,69,3.4,124 km ENE of Hasaki Japan -2008-05-25T19:41:27.990Z,35.721,139.976,52.7,3.7,2 km NNW of Honch? Japan -2008-05-27T08:54:51.060Z,36.308,141.879,62.2,4.4,113 km ESE of Takahagi Japan -2008-05-28T01:07:24.110Z,41.892,142.034,54.1,4.2,56 km SSW of Shizunai-furukawach? Japan -2008-05-28T16:41:59.290Z,39.086,140.512,4.1,4.5,9 km S of Yuzawa Japan -2008-05-28T20:43:32.560Z,38.582,143.209,35,4.1,139 km SE of Kamaishi Japan -2008-05-29T00:19:40.810Z,38.189,140.457,35,4,9 km ESE of Yamagata Japan -2008-05-31T05:03:33.350Z,36.425,141.688,39.1,4.9,92 km ESE of Takahagi Japan -2008-05-31T07:44:20.170Z,36.783,141.602,35,4.4,70 km ESE of Iwaki Japan -2008-05-31T07:55:49.790Z,36.368,141.694,31.5,4.7,95 km ESE of Takahagi Japan -2008-05-31T14:28:35.100Z,39.983,142.604,33.5,5,67 km ENE of Miyako Japan -2008-06-01T15:58:29.490Z,38.368,141.835,48.4,4.7,47 km E of Ishinomaki Japan -2008-06-02T10:53:21.020Z,42.565,144.166,61.2,3.6,48 km SSW of Kushiro Japan -2008-06-03T16:41:40.280Z,35.966,142.211,35,4.6,127 km ENE of Hasaki Japan -2008-06-04T13:12:34.550Z,38.517,140.078,10,4.1,23 km NW of Sagae Japan -2008-06-04T14:33:41.730Z,36.054,140.1,74.5,4.4,6 km W of Naka Japan -2008-06-04T17:03:06.660Z,41.538,139.058,205,5.7,135 km WSW of Kamiiso Japan -2008-06-05T01:45:29.830Z,41.974,144.852,39.4,4.4,117 km SSE of Kushiro Japan -2008-06-05T11:37:18.710Z,36.139,140.102,66,3.6,6 km S of Tsukuba Japan -2008-06-06T02:49:15.620Z,36.413,141.691,57.3,4.1,93 km ESE of Takahagi Japan -2008-06-10T00:03:15.860Z,36.324,141.736,34.9,4.3,101 km ESE of Takahagi Japan -2008-06-10T19:02:04.040Z,36.839,143.054,35,4.2,194 km E of Iwaki Japan -2008-06-10T20:39:15.620Z,41.675,142.311,81.6,4.2,73 km S of Shizunai-furukawach? Japan -2008-06-11T17:25:09.380Z,36.142,139.829,51.5,3.7,5 km NNE of Sakai Japan -2008-06-13T00:03:15.090Z,42.296,140.105,161,4.2,65 km WSW of Date Japan -2008-06-13T02:21:32.630Z,35.911,137.703,12.7,4.3,24 km WNW of Ina Japan -2008-06-13T18:06:00.720Z,36.877,139.139,140.3,4.1,eastern Honshu Japan -2008-06-13T23:43:45.360Z,39.03,140.881,7.8,6.9,24 km WSW of Mizusawa Japan -2008-06-13T23:49:05.680Z,39.114,140.942,11.5,5.1,16 km W of Mizusawa Japan -2008-06-13T23:53:10.770Z,39.09,140.971,10.3,4.5,14 km WSW of Mizusawa Japan -2008-06-13T23:56:45.220Z,39.113,140.97,12.1,4.9,14 km W of Mizusawa Japan -2008-06-14T00:00:04.790Z,38.773,140.743,5.7,4.4,29 km NW of Furukawa Japan -2008-06-14T00:00:35.310Z,39.133,140.919,11.4,4.7,18 km W of Mizusawa Japan -2008-06-14T00:01:43.290Z,38.909,140.877,7.7,4.5,22 km W of Ichinoseki Japan -2008-06-14T00:06:22.580Z,39.016,140.855,10.9,4.5,26 km WNW of Ichinoseki Japan -2008-06-14T00:07:20.820Z,39.117,140.89,11.3,4.8,21 km W of Mizusawa Japan -2008-06-14T00:08:01.900Z,38.832,140.808,5,4.5,29 km WSW of Ichinoseki Japan -2008-06-14T00:14:33.520Z,38.77,140.714,3.8,3.5,30 km NW of Furukawa Japan -2008-06-14T00:18:13.280Z,39.141,140.928,10.8,4.7,17 km W of Mizusawa Japan -2008-06-14T00:20:11.950Z,38.882,140.678,6.4,5.5,35 km SSE of Yuzawa Japan -2008-06-14T00:20:47.670Z,39.027,140.852,10.2,5.4,27 km WSW of Mizusawa Japan -2008-06-14T00:29:28.370Z,39.126,140.915,11.3,4.1,18 km W of Mizusawa Japan -2008-06-14T00:30:48.650Z,38.911,140.734,6.9,4.5,34 km W of Ichinoseki Japan -2008-06-14T00:40:14.040Z,39.133,140.971,9.2,4.4,14 km W of Mizusawa Japan -2008-06-14T00:49:03.400Z,39.092,140.907,10.8,4.1,20 km WSW of Mizusawa Japan -2008-06-14T00:52:42.340Z,39.09,140.906,12.9,4.8,20 km WSW of Mizusawa Japan -2008-06-14T00:58:16.740Z,39.115,140.953,9.8,4.1,15 km W of Mizusawa Japan -2008-06-14T01:00:16.110Z,39.036,140.905,12.2,4.7,22 km WSW of Mizusawa Japan -2008-06-14T01:11:01.670Z,38.914,140.869,7.9,4.2,22 km W of Ichinoseki Japan -2008-06-14T01:16:37.050Z,39.076,140.943,11.2,3.9,17 km WSW of Mizusawa Japan -2008-06-14T01:39:47.660Z,39.076,140.956,11.8,4.8,16 km WSW of Mizusawa Japan -2008-06-14T01:49:42.070Z,39.094,140.88,9.8,4.4,22 km WSW of Mizusawa Japan -2008-06-14T01:56:28.410Z,39.086,140.978,8.2,4.4,14 km WSW of Mizusawa Japan -2008-06-14T02:19:31.160Z,39.111,140.865,10.1,4,23 km W of Mizusawa Japan -2008-06-14T02:22:43.580Z,39.12,140.92,11,3.9,18 km W of Mizusawa Japan -2008-06-14T02:35:16.860Z,39.023,140.889,9.6,4.6,24 km WNW of Ichinoseki Japan -2008-06-14T02:40:41.840Z,38.878,140.846,8.9,4.1,25 km W of Ichinoseki Japan -2008-06-14T02:48:20.700Z,39.102,140.926,11.7,4.2,18 km W of Mizusawa Japan -2008-06-14T02:55:39.410Z,38.945,140.885,9.2,4.2,21 km W of Ichinoseki Japan -2008-06-14T02:58:23.270Z,39.111,140.934,12,4.2,17 km W of Mizusawa Japan -2008-06-14T03:09:20.260Z,38.878,140.864,9,4.4,23 km W of Ichinoseki Japan -2008-06-14T03:10:07.350Z,38.881,140.863,8.9,4.3,23 km W of Ichinoseki Japan -2008-06-14T03:10:31.870Z,39.094,140.863,8.8,4.7,23 km W of Mizusawa Japan -2008-06-14T03:14:04.390Z,39.09,140.862,11.1,4.4,23 km WSW of Mizusawa Japan -2008-06-14T03:27:32.820Z,39.143,140.943,10.8,4.9,16 km W of Mizusawa Japan -2008-06-14T03:55:22.420Z,39.011,140.89,9.3,4.1,eastern Honshu Japan -2008-06-14T04:10:47.330Z,39.099,140.864,10.4,4.3,23 km W of Mizusawa Japan -2008-06-14T04:30:50.540Z,39.057,140.864,10.3,4.4,24 km WSW of Mizusawa Japan -2008-06-14T04:35:52.460Z,38.898,140.674,6.6,3.9,33 km SSE of Yuzawa Japan -2008-06-14T05:09:35.070Z,39.173,140.956,8.6,3.9,15 km WNW of Mizusawa Japan -2008-06-14T05:12:51.000Z,39.114,140.937,11.2,4,17 km W of Mizusawa Japan -2008-06-14T05:39:06.550Z,39.115,140.932,11.3,4.2,17 km W of Mizusawa Japan -2008-06-14T05:39:17.560Z,39.142,140.891,10,4.7,eastern Honshu Japan -2008-06-14T07:02:17.710Z,38.974,140.893,8,3.7,21 km WNW of Ichinoseki Japan -2008-06-14T07:31:57.470Z,39.118,140.942,10.7,3.8,16 km W of Mizusawa Japan -2008-06-14T08:11:19.490Z,39.163,140.951,9.2,3.2,16 km WNW of Mizusawa Japan -2008-06-14T08:13:55.880Z,39.035,140.894,12.1,3.7,23 km WSW of Mizusawa Japan -2008-06-14T08:34:08.760Z,39.147,140.925,11.2,4.2,18 km W of Mizusawa Japan -2008-06-14T09:38:57.860Z,38.99,140.829,7,3.4,27 km WNW of Ichinoseki Japan -2008-06-14T09:43:12.350Z,39.038,140.858,11.1,3.4,26 km WSW of Mizusawa Japan -2008-06-14T09:59:12.860Z,38.879,140.794,3.4,3,29 km W of Ichinoseki Japan -2008-06-14T10:11:56.440Z,38.867,140.86,8.9,3.9,24 km WSW of Ichinoseki Japan -2008-06-14T11:21:14.780Z,38.88,140.757,7.3,3.8,32 km W of Ichinoseki Japan -2008-06-14T11:42:22.970Z,39.042,140.874,9.4,3.8,24 km WSW of Mizusawa Japan -2008-06-14T12:10:21.280Z,39.126,140.902,11.1,4,20 km W of Mizusawa Japan -2008-06-14T12:48:28.090Z,39.133,140.906,11.5,4.6,19 km W of Mizusawa Japan -2008-06-14T14:04:24.960Z,38.908,140.755,6.6,4,32 km W of Ichinoseki Japan -2008-06-14T14:22:27.010Z,39.153,140.924,10.8,4.1,18 km W of Mizusawa Japan -2008-06-14T14:42:32.420Z,38.995,140.89,10,4.8,22 km WNW of Ichinoseki Japan -2008-06-14T17:25:29.030Z,39.011,140.939,11.6,4.2,19 km WNW of Ichinoseki Japan -2008-06-14T17:29:27.040Z,39.09,140.973,10.9,4.4,14 km WSW of Mizusawa Japan -2008-06-14T17:31:37.310Z,38.884,140.764,7.8,4.4,32 km W of Ichinoseki Japan -2008-06-14T17:40:13.570Z,39.049,140.807,9.5,3.3,29 km ESE of Yuzawa Japan -2008-06-14T18:29:20.760Z,39.165,140.86,10.3,4.3,23 km W of Mizusawa Japan -2008-06-14T18:47:36.410Z,39.154,140.946,9.4,4.2,16 km W of Mizusawa Japan -2008-06-14T19:23:24.730Z,38.792,140.787,2.1,4.2,28 km NNW of Furukawa Japan -2008-06-14T21:02:30.000Z,38.767,140.778,3.6,4,26 km NW of Furukawa Japan -2008-06-14T21:52:21.270Z,39.114,140.939,11,3.4,16 km W of Mizusawa Japan -2008-06-15T01:35:52.760Z,39.131,140.906,11.1,4.1,19 km W of Mizusawa Japan -2008-06-15T01:56:37.310Z,39.146,140.931,11.1,4,17 km W of Mizusawa Japan -2008-06-15T03:30:01.840Z,39.168,140.96,9.3,4.2,15 km WNW of Mizusawa Japan -2008-06-15T05:00:58.940Z,39.039,140.857,9.7,3.6,26 km WSW of Mizusawa Japan -2008-06-15T05:22:47.460Z,38.925,140.885,9.7,3.4,21 km W of Ichinoseki Japan -2008-06-15T06:25:39.020Z,39.106,140.928,11.4,3.4,18 km W of Mizusawa Japan -2008-06-15T10:11:00.340Z,39.137,140.968,10.5,3.1,14 km W of Mizusawa Japan -2008-06-15T17:36:19.460Z,39.144,140.932,10.5,4.2,17 km W of Mizusawa Japan -2008-06-16T00:53:26.010Z,39,140.932,7.5,3.9,19 km WNW of Ichinoseki Japan -2008-06-16T04:35:01.060Z,39.104,140.925,12.2,4.2,18 km W of Mizusawa Japan -2008-06-16T04:56:51.970Z,39.007,140.793,10.4,3.9,30 km SE of Yuzawa Japan -2008-06-16T05:38:10.770Z,39.133,140.937,11.6,4.3,16 km W of Mizusawa Japan -2008-06-16T06:08:58.150Z,37.864,139.868,8.6,4,22 km WSW of Yonezawa Japan -2008-06-16T08:08:21.870Z,39.164,140.953,9.2,3.9,15 km WNW of Mizusawa Japan -2008-06-16T09:31:47.450Z,39.093,140.949,10.3,3.3,16 km WSW of Mizusawa Japan -2008-06-16T11:35:01.410Z,39.188,140.952,8.3,4.1,16 km WNW of Mizusawa Japan -2008-06-16T14:14:38.410Z,38.997,140.841,10.8,5.1,26 km WNW of Ichinoseki Japan -2008-06-16T15:03:20.930Z,38.915,140.856,9.4,3.6,24 km W of Ichinoseki Japan -2008-06-16T15:59:50.160Z,39.06,140.77,11.8,4.1,26 km ESE of Yuzawa Japan -2008-06-16T18:23:01.660Z,39.092,140.933,11.1,4.1,17 km WSW of Mizusawa Japan -2008-06-16T18:48:52.020Z,38.997,140.836,10.1,3.2,27 km WNW of Ichinoseki Japan -2008-06-16T19:05:03.290Z,39.136,140.942,11,4.5,16 km W of Mizusawa Japan -2008-06-16T19:56:19.560Z,39.15,140.937,10.8,4,17 km W of Mizusawa Japan -2008-06-16T21:39:23.550Z,38.787,140.801,3,4,27 km NNW of Furukawa Japan -2008-06-17T00:19:25.730Z,38.926,140.385,27.6,4,eastern Honshu Japan -2008-06-17T03:42:52.700Z,38.845,140.823,7.7,3.8,28 km WSW of Ichinoseki Japan -2008-06-17T11:09:13.170Z,38.943,140.912,9.5,3.1,eastern Honshu Japan -2008-06-17T12:30:57.880Z,39.108,140.941,11,4.1,eastern Honshu Japan -2008-06-17T15:54:42.190Z,39.148,140.887,50,4,21 km W of Mizusawa Japan -2008-06-18T04:30:29.920Z,37.506,141.499,10,4,44 km E of Namie Japan -2008-06-18T07:55:01.120Z,39.039,140.864,12.3,4.4,25 km WSW of Mizusawa Japan -2008-06-18T09:04:33.470Z,39.101,140.93,11.5,4.3,17 km WSW of Mizusawa Japan -2008-06-18T14:55:08.760Z,39.047,140.756,29.7,4.3,25 km ESE of Yuzawa Japan -2008-06-19T02:34:13.330Z,39.195,140.988,4.6,4.4,14 km WNW of Mizusawa Japan -2008-06-19T10:05:56.360Z,38.926,140.871,10.1,3.2,22 km W of Ichinoseki Japan -2008-06-19T15:17:41.350Z,36.018,141.204,43.2,4.2,46 km NE of Hasaki Japan -2008-06-19T17:32:11.080Z,39.177,140.804,38.8,4.4,26 km E of Yuzawa Japan -2008-06-20T12:40:00.040Z,39.089,140.9,10.4,3.3,20 km WSW of Mizusawa Japan -2008-06-20T16:55:30.050Z,39.173,140.958,10.3,3.8,15 km WNW of Mizusawa Japan -2008-06-22T01:28:39.010Z,36.62,140.94,53.2,4,22 km ESE of Takahagi Japan -2008-06-22T02:08:10.350Z,38.989,140.806,10,4.4,29 km WNW of Ichinoseki Japan -2008-06-22T03:48:36.020Z,35.593,139.965,70.6,4.4,near the south coast of Honshu Japan -2008-06-22T18:23:52.150Z,42.793,142.55,103.2,3.3,53 km NNE of Shizunai-furukawach? Japan -2008-06-22T22:58:47.510Z,39.154,141.173,35,4.2,4 km NE of Mizusawa Japan -2008-06-23T23:44:15.610Z,39.026,140.764,43,4.1,27 km SE of Yuzawa Japan -2008-06-24T09:16:21.390Z,37.812,139.812,126.7,3.3,18 km NNW of Kitakata Japan -2008-06-25T02:06:19.550Z,36.525,141.554,10,4.2,77 km ESE of Kitaibaraki Japan -2008-06-25T18:57:47.730Z,38.87,140.833,35,3.8,26 km WSW of Ichinoseki Japan -2008-06-25T23:37:11.960Z,41.937,142.486,55.6,5.5,45 km SSE of Shizunai-furukawach? Japan -2008-06-26T01:14:36.240Z,41.52,143.31,37.8,3.9,119 km SE of Shizunai-furukawach? Japan -2008-06-26T03:20:02.160Z,39.041,140.894,10.9,3.5,23 km WSW of Mizusawa Japan -2008-06-26T06:51:11.140Z,39.082,140.97,6.9,4.4,15 km WSW of Mizusawa Japan -2008-06-26T14:34:04.540Z,38.742,140.604,35,4.5,23 km NE of Obanazawa Japan -2008-06-27T07:23:47.020Z,38.75,140.768,2.6,4.1,25 km NW of Furukawa Japan -2008-06-27T13:57:26.320Z,38.753,140.765,3.2,4.4,26 km NW of Furukawa Japan -2008-06-28T00:50:01.560Z,38.753,140.777,2.7,4.2,25 km NW of Furukawa Japan -2008-06-29T01:05:52.730Z,34.025,141.337,35,3.9,155 km SE of Katsuura Japan -2008-06-29T06:53:24.240Z,38.885,140.734,7.4,4.1,34 km W of Ichinoseki Japan -2008-06-30T22:55:53.520Z,35.756,139.658,93.6,3.7,4 km SE of Wako Japan -2008-07-01T02:36:56.920Z,39.156,140.953,10.2,3.9,15 km W of Mizusawa Japan -2008-07-01T11:17:52.690Z,38.977,140.489,17.9,4.1,eastern Honshu Japan -2008-07-01T11:50:35.980Z,36.603,141.234,45.8,3.3,near the east coast of Honshu Japan -2008-07-03T01:00:06.640Z,42.329,143.011,51,4.2,53 km E of Shizunai-furukawach? Japan -2008-07-03T19:12:02.280Z,35.465,140.718,34.6,4.4,28 km SSE of Asahi Japan -2008-07-04T01:54:22.090Z,42.005,142.216,148.8,3.8,38 km SSW of Shizunai-furukawach? Japan -2008-07-05T04:14:40.140Z,39.132,140.916,35.7,4.1,18 km W of Mizusawa Japan -2008-07-05T05:21:45.970Z,39.066,140.949,9.2,4.3,17 km WSW of Mizusawa Japan -2008-07-05T07:49:02.560Z,36.643,140.952,49.7,5.1,22 km ESE of Takahagi Japan -2008-07-05T11:13:30.160Z,36.398,141.73,65.5,3.3,97 km ESE of Takahagi Japan -2008-07-05T22:05:44.710Z,36.092,142.297,18.1,4.7,137 km ENE of Hasaki Japan -2008-07-06T07:30:24.550Z,35.629,139.511,70.1,3.1,4 km SW of Ch?fu Japan -2008-07-07T06:14:17.050Z,39.036,140.887,10.1,4.2,23 km WSW of Mizusawa Japan -2008-07-07T12:18:28.060Z,42.504,140.751,136.5,3.4,10 km WNW of Date Japan -2008-07-07T20:22:28.710Z,38.977,140.997,10,4.1,13 km WNW of Ichinoseki Japan -2008-07-09T12:27:28.680Z,35.951,138.966,135.3,4.2,10 km WSW of Chichibu Japan -2008-07-10T10:29:04.860Z,35.895,141.574,31.2,4,69 km ENE of Hasaki Japan -2008-07-11T23:06:03.680Z,39.173,140.843,8.1,4.4,25 km W of Mizusawa Japan -2008-07-12T03:03:17.380Z,36.374,141.406,28.6,4.3,72 km ESE of Hitachi Japan -2008-07-12T03:04:39.510Z,36.482,141.486,10,4.4,73 km ESE of Takahagi Japan -2008-07-12T09:24:30.120Z,41.392,142.868,35,4.4,112 km SSE of Shizunai-furukawach? Japan -2008-07-12T18:17:04.320Z,42.462,143.275,64.5,4.1,50 km S of Obihiro Japan -2008-07-12T19:54:22.820Z,36.69,142.234,35,4,126 km ESE of Iwaki Japan -2008-07-14T10:41:10.440Z,35.817,140.943,27.6,3.6,13 km NE of Hasaki Japan -2008-07-14T14:56:40.270Z,39.134,140.9,10.7,4.1,20 km W of Mizusawa Japan -2008-07-15T12:37:14.950Z,35.527,138.984,21,4.3,10 km S of ?tsuki Japan -2008-07-15T13:23:06.620Z,35.488,138.946,23.3,4.1,14 km ENE of Fujiyoshida Japan -2008-07-17T14:53:40.990Z,35.662,141.223,50.4,4.2,36 km ESE of Hasaki Japan -2008-07-17T18:24:16.350Z,36.677,141.42,49.4,3.3,61 km ESE of Kitaibaraki Japan -2008-07-17T19:05:01.620Z,35.506,138.734,142.7,3.9,4 km ENE of Fujikawaguchiko Japan -2008-07-19T02:39:28.700Z,37.552,142.214,22,7,107 km E of Namie Japan -2008-07-19T02:47:29.440Z,37.562,142.402,31.4,5.3,124 km E of Namie Japan -2008-07-19T04:09:32.920Z,39.21,140.826,10,4.3,26 km WSW of Kitakami Japan -2008-07-19T12:31:16.260Z,37.539,142.638,20.4,3.7,144 km E of Namie Japan -2008-07-19T13:01:24.890Z,37.282,142.77,1.3,4.4,158 km E of Namie Japan -2008-07-19T14:24:01.460Z,41.604,142.043,64.7,3.8,77 km ENE of Mutsu Japan -2008-07-19T18:04:00.290Z,37.288,143.014,10,4.2,179 km E of Namie Japan -2008-07-19T21:36:28.720Z,38.584,144.483,35,3.6,239 km ESE of Kamaishi Japan -2008-07-20T01:36:26.740Z,37.21,143.168,10,4.1,194 km E of Namie Japan -2008-07-20T02:22:53.870Z,37.561,142.871,10,4.6,165 km E of Namie Japan -2008-07-20T02:36:37.560Z,37.578,143.033,10,4.4,178 km ESE of Ishinomaki Japan -2008-07-20T05:29:17.180Z,41.717,144.232,31.1,3.7,140 km S of Kushiro Japan -2008-07-20T05:33:14.750Z,41.713,144.228,31.2,4.7,140 km S of Kushiro Japan -2008-07-20T14:16:22.400Z,36.18,141.854,9.7,4.3,104 km ENE of Hasaki Japan -2008-07-20T20:48:10.000Z,37.475,142.914,30.9,4.5,169 km E of Namie Japan -2008-07-20T22:41:00.930Z,37.242,143.063,10,4.3,off the east coast of Honshu Japan -2008-07-20T23:02:03.300Z,37.278,142.876,10,4.3,167 km E of Namie Japan -2008-07-21T04:50:13.190Z,37.354,141.791,35,4.4,71 km ESE of Namie Japan -2008-07-21T06:16:38.180Z,36.211,141.984,10,4.3,116 km ENE of Hasaki Japan -2008-07-21T07:26:32.410Z,36.176,142.022,35.9,4.3,117 km ENE of Hasaki Japan -2008-07-21T09:01:04.640Z,37.816,142.559,10,5,128 km ESE of Ishinomaki Japan -2008-07-21T11:30:29.280Z,37.186,142.051,22,6,98 km ESE of Namie Japan -2008-07-21T17:22:59.340Z,37.299,142.146,25.6,4.2,103 km ESE of Namie Japan -2008-07-21T20:31:54.040Z,36.128,141.74,40.5,4.3,92 km ENE of Hasaki Japan -2008-07-21T23:29:01.430Z,37.109,142.356,39.4,4.2,127 km ESE of Namie Japan -2008-07-22T08:46:47.850Z,37.728,142.31,10,5.4,117 km SE of Ishinomaki Japan -2008-07-22T14:58:44.330Z,36.943,142.899,10,3.4,178 km ESE of Namie Japan -2008-07-22T16:08:41.440Z,37.514,143.231,10,4,197 km ESE of Ishinomaki Japan -2008-07-22T16:28:07.190Z,37.444,143.049,12.6,4.4,181 km E of Namie Japan -2008-07-22T19:17:00.500Z,34.335,140.018,37.1,4.3,73 km S of Tateyama Japan -2008-07-22T20:15:31.000Z,37.485,142.613,10,3.7,142 km E of Namie Japan -2008-07-23T01:49:45.200Z,37.533,143.123,10,4.1,187 km E of Namie Japan -2008-07-23T03:54:24.350Z,38.996,140.86,9.5,4.3,25 km WNW of Ichinoseki Japan -2008-07-23T05:07:29.030Z,41.271,140.498,130.9,3.3,51 km NNE of Shimokizukuri Japan -2008-07-23T15:26:19.950Z,39.802,141.464,108,6.8,29 km ENE of Morioka Japan -2008-07-23T18:04:44.540Z,41.615,142.102,62.8,4.3,82 km ENE of Mutsu Japan -2008-07-23T22:10:51.730Z,37.435,143.464,35,3.7,218 km E of Namie Japan -2008-07-24T02:27:53.960Z,39.62,141.522,111.9,5.2,33 km ESE of Morioka Japan -2008-07-24T20:48:05.540Z,38.888,140.796,47.4,4,29 km W of Ichinoseki Japan -2008-07-25T00:34:05.640Z,37.59,142.761,10,4.3,156 km E of Namie Japan -2008-07-25T00:39:23.290Z,37.568,142.644,29.4,4.5,145 km E of Namie Japan -2008-07-25T07:00:38.740Z,37.43,143.072,27.7,4.3,183 km E of Namie Japan -2008-07-25T08:59:24.930Z,39.634,142.11,48,3.9,14 km E of Miyako Japan -2008-07-26T01:07:42.380Z,37.617,141.888,44.3,4.1,79 km E of Namie Japan -2008-07-27T02:05:37.740Z,39.36,140.294,133,3,19 km WSW of ?magari Japan -2008-07-28T15:55:19.550Z,38.958,140.848,41.3,4,25 km W of Ichinoseki Japan -2008-07-29T07:27:32.970Z,39.062,140.861,9.7,4,24 km WSW of Mizusawa Japan -2008-07-29T07:35:53.070Z,39.062,140.863,9.7,4.4,24 km WSW of Mizusawa Japan -2008-07-29T23:15:55.180Z,39.101,140.814,21.3,4.1,27 km W of Mizusawa Japan -2008-07-30T01:15:02.010Z,38.83,140.826,5.1,4.2,28 km WSW of Ichinoseki Japan -2008-07-30T01:34:36.520Z,34.406,140.441,74.6,4.2,82 km SSE of Kamogawa Japan -2008-07-30T06:01:47.560Z,36.209,141.783,58,3.5,100 km ENE of Hasaki Japan -2008-07-31T04:54:39.830Z,38.513,142.402,31,4.2,85 km SE of ?funato Japan -2008-07-31T05:31:52.750Z,39.167,142.382,31,3.8,46 km ESE of Kamaishi Japan -2008-08-02T15:50:37.150Z,35.325,140.916,47.2,4.2,45 km S of Hasaki Japan -2008-08-04T10:57:26.140Z,42.329,144.69,36.6,4.1,76 km SSE of Kushiro Japan -2008-08-05T08:10:49.890Z,42.274,144.899,28.2,4.2,88 km SSE of Kushiro Japan -2008-08-05T14:38:14.360Z,37.482,143.233,35,4.3,197 km E of Namie Japan -2008-08-06T13:16:43.120Z,39.207,140.524,10,4,4 km NNE of Yuzawa Japan -2008-08-06T21:12:53.280Z,35.487,140.903,36.3,4.4,28 km SSE of Hasaki Japan -2008-08-06T22:38:52.730Z,35.624,141.647,55.7,4.3,74 km E of Hasaki Japan -2008-08-07T03:03:04.670Z,42.006,142.596,61.5,3.3,41 km SSE of Shizunai-furukawach? Japan -2008-08-07T08:59:47.570Z,35.525,141.003,40,3.2,27 km SSE of Hasaki Japan -2008-08-07T12:29:28.860Z,37.45,143.189,50,3.6,193 km E of Namie Japan -2008-08-08T03:57:15.080Z,36.021,139.347,68.3,4.4,8 km NNW of Sakado Japan -2008-08-08T15:53:09.940Z,41.171,142.189,39,5.4,82 km E of Mutsu Japan -2008-08-09T00:54:36.130Z,42.116,142.414,54.8,4.4,24 km S of Shizunai-furukawach? Japan -2008-08-09T14:21:18.570Z,41.43,142.401,78.6,3.6,100 km E of Mutsu Japan -2008-08-13T01:45:11.280Z,36.419,140.64,60.9,4.2,8 km SE of Funaishikawa Japan -2008-08-13T12:18:57.760Z,38.778,141.613,73.2,4.5,33 km SSW of ?funato Japan -2008-08-14T05:34:17.170Z,40.034,144.099,33,3.8,189 km ENE of Miyako Japan -2008-08-14T09:04:42.120Z,41.107,141.108,120.5,4.2,22 km SSW of Mutsu Japan -2008-08-15T15:04:42.620Z,35.827,141.101,33.1,4.4,26 km ENE of Hasaki Japan -2008-08-16T08:20:31.320Z,40.504,141.439,89.3,4.2,5 km W of Hachinohe Japan -2008-08-19T09:38:04.880Z,36.77,141.726,50.2,3.9,81 km ESE of Iwaki Japan -2008-08-20T05:28:03.430Z,38.947,142.528,29.6,4.2,67 km ESE of Kamaishi Japan -2008-08-20T06:13:29.220Z,36.067,139.737,52.1,4.4,1 km ESE of Satte Japan -2008-08-20T18:27:43.870Z,39.39,140.912,102.5,3.4,17 km W of Hanamaki Japan -2008-08-20T23:56:44.780Z,37.783,141.933,49.9,4.1,88 km ENE of Namie Japan -2008-08-22T00:25:47.180Z,34.898,139.962,7.9,4.3,12 km SE of Tateyama Japan -2008-08-22T05:09:10.730Z,37.61,143.171,10,4.4,187 km ESE of Ishinomaki Japan -2008-08-22T06:02:39.700Z,39.135,140.933,9.7,4,17 km W of Mizusawa Japan -2008-08-22T10:59:50.120Z,36.463,140.401,51.5,5.2,9 km S of ?miya Japan -2008-08-24T16:32:35.270Z,41.862,141.134,117.6,3.7,34 km ENE of Hakodate Japan -2008-08-25T08:53:06.550Z,36.387,138.033,188.5,4.4,14 km ENE of Hotaka Japan -2008-08-25T10:35:00.030Z,39.146,140.928,9.6,3.2,17 km W of Mizusawa Japan -2008-08-25T11:57:43.430Z,39.146,140.929,9.8,3.9,17 km W of Mizusawa Japan -2008-08-25T23:39:38.320Z,35.576,140.072,75.6,4.3,4 km WSW of Chiba Japan -2008-08-26T06:16:06.650Z,36.982,140.476,108.7,4,18 km S of Ishikawa Japan -2008-08-27T00:14:01.430Z,41.543,142.054,70.5,4.3,75 km ENE of Mutsu Japan -2008-08-28T02:38:01.080Z,36.925,141.775,38.2,3.5,80 km E of Iwaki Japan -2008-08-28T08:31:42.660Z,36.077,141.224,35,4.4,51 km NE of Hasaki Japan -2008-08-28T11:58:52.670Z,39.041,140.898,7.2,3.2,22 km WSW of Mizusawa Japan -2008-08-29T16:06:21.430Z,38.263,141.611,35,3.2,32 km ESE of Ishinomaki Japan -2008-08-29T19:54:46.340Z,37.798,142.537,10,4.2,128 km ESE of Ishinomaki Japan -2008-08-29T19:55:38.950Z,37.673,142.336,33.3,4.3,119 km E of Namie Japan -2008-08-29T20:04:47.570Z,37.766,142.332,30.5,4.4,115 km SE of Ishinomaki Japan -2008-08-29T20:13:25.910Z,37.917,142.625,35,4.4,128 km ESE of Ishinomaki Japan -2008-08-30T20:15:42.240Z,36.28,138.736,131.9,4.3,14 km W of Tomioka Japan -2008-08-31T05:04:21.600Z,39.136,142.897,26.1,3.7,89 km ESE of Yamada Japan -2008-09-01T04:43:01.470Z,37.97,142.553,35,4.1,off the east coast of Honshu Japan -2008-09-01T05:41:16.690Z,42.598,141.708,128.1,4.4,9 km ESE of Tomakomai Japan -2008-09-01T10:46:15.290Z,41.768,144.044,47.9,4.4,136 km SSW of Kushiro Japan -2008-09-02T08:17:00.870Z,42.78,142.681,93.9,4.3,45 km WSW of Obihiro Japan -2008-09-02T09:35:15.730Z,39.074,140.827,30.8,4.2,27 km WSW of Mizusawa Japan -2008-09-04T12:43:44.700Z,36.978,141.652,50,4.2,68 km E of Iwaki Japan -2008-09-06T06:20:43.160Z,41.774,141.703,77.2,4.2,67 km NE of Mutsu Japan -2008-09-06T07:05:05.520Z,42.569,141.292,121.1,4.3,5 km WNW of Shiraoi Japan -2008-09-06T07:29:14.370Z,35.337,140.963,10,4.6,45 km SSE of Hasaki Japan -2008-09-07T10:03:39.390Z,42.305,143.018,49.1,4,53 km E of Shizunai-furukawach? Japan -2008-09-08T00:25:49.390Z,36.406,140.96,58.2,4.1,35 km SE of Hitachi Japan -2008-09-09T23:57:18.690Z,40.24,141.959,87.1,4.3,48 km SE of Hachinohe Japan -2008-09-10T00:24:15.010Z,37.767,142.266,39.9,3.9,111 km SE of Ishinomaki Japan -2008-09-10T02:28:20.270Z,37.88,142.75,35,3.7,140 km ESE of Ishinomaki Japan -2008-09-10T23:38:30.130Z,38.605,141.796,38.4,3.9,48 km ENE of Ishinomaki Japan -2008-09-11T00:20:50.920Z,41.892,143.754,25,6.8,122 km SSE of Obihiro Japan -2008-09-11T00:32:48.360Z,41.753,143.882,35.3,5.3,140 km SSE of Obihiro Japan -2008-09-11T01:08:10.130Z,41.678,144.079,29.6,5,146 km S of Kushiro Japan -2008-09-11T01:24:49.180Z,41.707,144.272,26.3,4.5,141 km S of Kushiro Japan -2008-09-11T01:31:59.630Z,41.649,144.157,35,3.5,148 km S of Kushiro Japan -2008-09-11T03:14:01.700Z,36.467,141.075,38.4,4.6,40 km ESE of Hitachi Japan -2008-09-11T04:00:59.560Z,41.794,144.132,23.9,4.8,132 km S of Kushiro Japan -2008-09-11T04:57:02.330Z,41.722,144.159,25.7,4.7,140 km S of Kushiro Japan -2008-09-11T05:03:13.500Z,41.809,144.044,34.3,4,132 km SSW of Kushiro Japan -2008-09-11T05:29:48.760Z,41.7,144.351,25.2,3.6,141 km S of Kushiro Japan -2008-09-11T05:44:09.100Z,41.726,144.227,30.6,3.9,139 km S of Kushiro Japan -2008-09-11T06:36:50.570Z,41.691,144.302,26.8,3.6,Hokkaido Japan region -2008-09-11T08:51:05.200Z,41.649,144.274,29.4,3.5,147 km S of Kushiro Japan -2008-09-11T10:07:47.590Z,41.754,144.278,33.6,3.9,Hokkaido Japan region -2008-09-11T10:53:23.350Z,41.766,144.272,33.1,3.9,134 km S of Kushiro Japan -2008-09-11T16:03:49.620Z,40.687,142.934,64.1,4.2,123 km E of Hachinohe Japan -2008-09-11T22:34:45.680Z,42.42,144.549,41.2,5,63 km SSE of Kushiro Japan -2008-09-12T00:39:57.130Z,42.371,144.649,48.9,4.1,70 km SSE of Kushiro Japan -2008-09-12T08:09:00.020Z,36.39,140.167,103.7,4.1,7 km NE of Iwase Japan -2008-09-12T21:05:18.630Z,34.716,141.031,53.3,4.3,80 km SE of Katsuura Japan -2008-09-14T16:05:55.190Z,38.896,140.794,49.2,4.3,29 km W of Ichinoseki Japan -2008-09-14T16:25:12.900Z,41.752,144.513,12.3,3.8,136 km S of Kushiro Japan -2008-09-15T07:53:01.640Z,41.715,144.069,29.9,4.9,142 km S of Kushiro Japan -2008-09-15T08:02:47.170Z,41.664,144.138,36.7,4.4,146 km S of Kushiro Japan -2008-09-15T23:07:48.630Z,38.039,142.494,37.6,4.3,112 km ESE of Ishinomaki Japan -2008-09-16T16:20:02.700Z,42.563,143.629,51.3,3.8,52 km SE of Obihiro Japan -2008-09-16T18:38:34.330Z,41.834,145.539,28.9,4,158 km SE of Kushiro Japan -2008-09-17T01:47:19.930Z,41.76,143.927,36.2,4.1,139 km SSW of Kushiro Japan -2008-09-18T13:53:35.570Z,41.722,144.218,21.1,4.2,139 km S of Kushiro Japan -2008-09-19T00:58:24.930Z,41.801,144.442,35,3.7,130 km S of Kushiro Japan -2008-09-19T21:19:13.940Z,41.803,142.985,48.6,3.9,78 km SE of Shizunai-furukawach? Japan -2008-09-20T09:33:21.280Z,41.74,144.201,27,3.6,137 km S of Kushiro Japan -2008-09-20T22:17:11.350Z,35.616,140.062,70.8,4.7,5 km WNW of Chiba Japan -2008-09-21T05:15:29.450Z,37.14,141.626,43.1,3.8,66 km E of Iwaki Japan -2008-09-22T07:31:59.170Z,41.578,140.45,149,5.6,31 km SSW of Kamiiso Japan -2008-09-22T20:43:37.640Z,36.687,141.414,35,4.4,60 km E of Kitaibaraki Japan -2008-09-23T13:26:53.210Z,38.727,142.237,42.4,4.3,59 km SE of ?funato Japan -2008-09-23T23:43:49.050Z,39.037,141.535,71.9,4.3,16 km WSW of ?funato Japan -2008-09-25T00:36:24.310Z,41.913,143.924,35,3.8,123 km SSW of Kushiro Japan -2008-09-25T01:36:44.150Z,36.456,140.595,55.4,4,2 km ESE of Funaishikawa Japan -2008-09-25T03:31:23.580Z,40.022,144.07,35,4.3,186 km ENE of Miyako Japan -2008-09-25T06:04:57.600Z,38.875,140.861,5.5,4.2,24 km W of Ichinoseki Japan -2008-09-25T15:06:42.350Z,36.77,142.183,13.5,4.8,119 km ESE of Iwaki Japan -2008-09-25T16:38:18.280Z,36.712,142.304,16.2,4.2,132 km ESE of Iwaki Japan -2008-09-26T16:53:26.860Z,40.492,142.799,39.3,5,110 km E of Hachinohe Japan -2008-09-27T23:42:33.880Z,36.342,141.08,54,3.7,44 km E of ?arai Japan -2008-09-28T02:20:45.970Z,39.038,141.211,10,3.5,12 km SSE of Mizusawa Japan -2008-09-28T16:24:42.150Z,41.887,144.05,35.7,3.9,123 km SSW of Kushiro Japan -2008-09-28T16:36:57.030Z,36.706,142.338,27.6,4.1,135 km ESE of Iwaki Japan -2008-09-28T19:33:43.790Z,40.712,145.294,46.1,4.3,262 km SSE of Kushiro Japan -2008-09-30T03:25:44.370Z,37.468,145.559,33.3,4,off the east coast of Honshu Japan -2008-10-02T01:41:17.500Z,41.449,142.299,72.6,3.4,92 km E of Mutsu Japan -2008-10-02T21:07:35.630Z,37.705,142.722,12.1,4,147 km ESE of Ishinomaki Japan -2008-10-03T19:22:58.280Z,41.973,142.374,73.5,4.3,40 km S of Shizunai-furukawach? Japan -2008-10-05T01:54:07.080Z,42.009,142.248,56.9,4.1,37 km SSW of Shizunai-furukawach? Japan -2008-10-05T05:19:49.150Z,34.323,140.331,77,3.1,84 km SSE of Tateyama Japan -2008-10-06T19:54:17.600Z,41.188,142.227,63.3,4.3,85 km E of Mutsu Japan -2008-10-07T06:22:32.870Z,39.509,141.323,119.3,3.6,22 km NE of Hanamaki Japan -2008-10-08T06:07:48.520Z,35.499,140.073,43.6,4.9,2 km SSW of Ichihara Japan -2008-10-08T09:07:21.560Z,39.067,140.921,8.2,3.5,19 km WSW of Mizusawa Japan -2008-10-08T17:52:45.120Z,41.151,142.285,57.9,4.5,90 km E of Mutsu Japan -2008-10-09T05:58:25.090Z,37.225,142.711,17,3.7,154 km E of Namie Japan -2008-10-09T14:32:41.600Z,40.027,144.152,7.4,4.4,193 km ENE of Miyako Japan -2008-10-10T19:27:34.300Z,41.473,141.93,67.4,4.5,63 km ENE of Mutsu Japan -2008-10-11T09:32:16.350Z,34.316,141.766,32.1,3.3,161 km SE of Katsuura Japan -2008-10-12T01:04:42.020Z,35.43,140.421,29.7,4,11 km E of Mobara Japan -2008-10-12T22:14:00.750Z,37.294,141.829,35,4.3,76 km ESE of Namie Japan -2008-10-14T03:37:46.160Z,35.399,140.329,26.9,4.2,4 km SE of Mobara Japan -2008-10-16T00:23:18.680Z,35.428,140.272,30.4,4.4,2 km W of Mobara Japan -2008-10-16T11:49:29.800Z,42.617,142.669,110.2,4.2,40 km NE of Shizunai-furukawach? Japan -2008-10-17T00:50:39.400Z,36.395,141.332,65.8,4.2,65 km ESE of Hitachi Japan -2008-10-17T05:34:30.590Z,42.681,143.139,105.7,4.4,26 km SSW of Obihiro Japan -2008-10-18T03:49:37.690Z,39.404,143.5,16,4.1,133 km E of Yamada Japan -2008-10-18T10:38:26.400Z,37.915,141.3,80.7,3.8,41 km ESE of Watari Japan -2008-10-19T22:29:19.870Z,39.43,143.627,49.7,4.1,144 km E of Yamada Japan -2008-10-20T00:29:24.880Z,39.223,143.389,35,4.3,off the east coast of Honshu Japan -2008-10-20T01:34:12.730Z,39.322,143.403,36.3,4.6,126 km E of Yamada Japan -2008-10-20T03:33:20.980Z,39.407,143.404,35.1,4.4,125 km E of Yamada Japan -2008-10-20T04:18:09.350Z,39.351,143.46,42.2,4.3,130 km E of Yamada Japan -2008-10-20T04:49:11.430Z,39.383,143.313,52.9,4.2,117 km E of Yamada Japan -2008-10-20T21:57:25.580Z,36.688,141.337,41.9,4.1,53 km ESE of Kitaibaraki Japan -2008-10-22T11:06:14.290Z,36.911,141.234,51.7,3.8,34 km ESE of Iwaki Japan -2008-10-22T22:47:04.850Z,42.296,141.188,134.7,3.9,16 km E of Muroran Japan -2008-10-23T01:20:04.940Z,41.631,143.722,35,4,136 km SE of Shizunai-furukawach? Japan -2008-10-23T17:12:58.140Z,35.744,140.729,45,4.2,near the east coast of Honshu Japan -2008-10-23T19:10:48.580Z,37.469,141.615,52.1,4.3,54 km E of Namie Japan -2008-10-24T10:27:32.170Z,36.672,141.328,46.9,3.4,53 km ESE of Kitaibaraki Japan -2008-10-24T19:56:11.030Z,35.964,141.586,35.5,4.5,72 km ENE of Hasaki Japan -2008-10-24T23:05:04.520Z,42.744,142.73,126.3,3.9,43 km WSW of Obihiro Japan -2008-10-25T02:16:41.610Z,36.228,141.067,35,4,44 km ESE of ?arai Japan -2008-10-25T03:09:25.270Z,35.859,141.572,28.3,3.7,68 km ENE of Hasaki Japan -2008-10-25T06:01:37.700Z,35.953,141.624,24.7,5,75 km ENE of Hasaki Japan -2008-10-25T15:29:53.270Z,38.705,140.694,21.1,4.2,27 km WNW of Furukawa Japan -2008-10-25T21:35:35.940Z,38.62,141.903,47.3,3.5,52 km SSE of ?funato Japan -2008-10-26T21:55:44.800Z,39.378,143.371,50.1,4.3,122 km E of Yamada Japan -2008-10-27T10:48:44.410Z,41.914,144.814,25,4.4,123 km SSE of Kushiro Japan -2008-10-27T12:12:04.800Z,42.034,142.604,61.6,3.4,Hokkaido Japan region -2008-10-27T22:53:13.530Z,39.107,140.86,10.7,3.7,23 km W of Mizusawa Japan -2008-10-27T23:59:31.880Z,35.73,140.217,65.1,4,2 km NW of Sakura Japan -2008-10-28T16:52:00.970Z,35.839,140.202,62.6,4,6 km SSE of Ry?gasaki Japan -2008-10-29T15:48:40.400Z,38.09,141.638,83.5,5.1,46 km SE of Ishinomaki Japan -2008-10-30T19:18:36.850Z,42.425,144.507,24.8,4.3,62 km S of Kushiro Japan -2008-10-30T19:35:23.860Z,42.279,144.574,32.8,4,79 km SSE of Kushiro Japan -2008-10-31T14:06:07.160Z,38.816,141.592,73.9,3.2,30 km SSW of ?funato Japan -2008-11-01T00:43:36.040Z,41.875,140.132,177,3.9,43 km W of Kamiiso Japan -2008-11-01T00:57:07.250Z,35.672,141.168,37.7,4,31 km ESE of Hasaki Japan -2008-11-01T06:22:31.420Z,34.33,140.652,55.8,4.4,near the east coast of Honshu Japan -2008-11-01T21:46:30.120Z,36.636,141.648,20.9,4.3,82 km ESE of Kitaibaraki Japan -2008-11-03T19:06:39.860Z,39.063,140.818,40.2,4.7,eastern Honshu Japan -2008-11-04T08:32:31.370Z,35.258,141.269,27.2,4.2,65 km SE of Hasaki Japan -2008-11-04T08:40:12.470Z,35.247,141.24,44.5,4.5,65 km SE of Hasaki Japan -2008-11-05T04:10:32.250Z,36.014,140.033,76.7,3.5,4 km E of Mitsukaid? Japan -2008-11-07T04:28:24.600Z,37.169,142.418,37.5,3.8,130 km ESE of Namie Japan -2008-11-08T10:22:29.720Z,38.867,140.724,6,3.8,35 km W of Ichinoseki Japan -2008-11-09T13:49:48.980Z,38.703,140.884,42.5,3.4,15 km NNW of Furukawa Japan -2008-11-09T15:49:32.140Z,38.825,141.726,84.6,3.9,27 km S of ?funato Japan -2008-11-09T16:45:00.190Z,36.696,141.401,43.2,3.9,59 km E of Kitaibaraki Japan -2008-11-12T04:39:53.000Z,38.88,140.604,48.3,4.5,29 km ENE of Shinj? Japan -2008-11-14T19:14:54.580Z,42.445,143.123,49,4.2,52 km S of Obihiro Japan -2008-11-16T01:49:53.350Z,41.488,143.353,50.8,4.3,124 km SE of Shizunai-furukawach? Japan -2008-11-16T05:11:30.340Z,38.978,142.305,53.2,3.6,50 km SE of Kamaishi Japan -2008-11-17T01:56:24.830Z,37.645,142.568,35,3.9,139 km E of Namie Japan -2008-11-17T04:03:07.090Z,36.452,142.37,10.6,4,148 km ESE of Iwaki Japan -2008-11-17T04:23:39.120Z,39.89,143.555,32.8,3.9,140 km E of Miyako Japan -2008-11-17T04:55:15.620Z,36.364,142.17,35,3.1,135 km ESE of Kitaibaraki Japan -2008-11-17T08:26:58.040Z,38.007,142.668,30,4.1,128 km ESE of Ishinomaki Japan -2008-11-17T10:09:54.220Z,40.844,142.377,79.5,4.4,83 km ENE of Hachinohe Japan -2008-11-17T16:54:14.220Z,41.654,144.176,47.8,4.3,147 km S of Kushiro Japan -2008-11-18T00:01:14.090Z,36.21,137.447,245.6,3.7,19 km ENE of Takayama Japan -2008-11-19T18:44:49.960Z,36.039,141.617,35.1,4.1,78 km ENE of Hasaki Japan -2008-11-19T19:25:42.690Z,35.972,141.567,34.8,5,71 km ENE of Hasaki Japan -2008-11-20T05:17:07.750Z,34.894,140.173,45.6,3.2,23 km SSE of Kamogawa Japan -2008-11-20T06:00:21.460Z,42.664,142.796,92.2,3.2,43 km SW of Obihiro Japan -2008-11-20T11:58:30.230Z,35.976,141.62,35.1,4.3,75 km ENE of Hasaki Japan -2008-11-21T10:10:19.340Z,36.25,140.48,51.8,4.1,6 km ESE of Okunoya Japan -2008-11-21T21:27:14.090Z,38.651,138.042,40.6,4,72 km NNW of Ry?tsu-minato Japan -2008-11-22T12:13:32.340Z,35.983,140.226,41.2,4.2,6 km SSE of Ami Japan -2008-11-24T22:59:58.450Z,35.849,141.485,28.8,4.2,60 km ENE of Hasaki Japan -2008-11-28T01:13:35.330Z,37.947,141.843,56.7,4.2,70 km SE of Ishinomaki Japan -2008-11-28T20:18:32.390Z,41.81,143.965,10,4.3,133 km SSW of Kushiro Japan -2008-12-01T03:47:07.060Z,36.368,143.393,36.8,4.2,236 km ESE of Iwaki Japan -2008-12-03T08:52:09.740Z,39.537,144.97,10,4,259 km E of Yamada Japan -2008-12-03T21:03:04.240Z,41.679,142.963,40.8,4,87 km SE of Shizunai-furukawach? Japan -2008-12-03T23:16:54.870Z,38.589,142.878,14,5.8,114 km ESE of ?funato Japan -2008-12-04T01:42:24.080Z,38.559,143.288,35.8,4.2,146 km ESE of Kamaishi Japan -2008-12-04T03:10:55.000Z,38.567,142.89,16,5.3,116 km ESE of ?funato Japan -2008-12-04T08:29:38.830Z,37.545,141.37,48.5,4.2,33 km ENE of Namie Japan -2008-12-04T10:13:45.430Z,38.463,142.157,31.7,3.8,74 km E of Ishinomaki Japan -2008-12-04T18:42:02.270Z,38.557,143.093,10,4.1,132 km ESE of Ōfunato Japan -2008-12-05T20:03:11.110Z,38.529,143.003,34.3,5.5,126 km ESE of ?funato Japan -2008-12-05T20:20:30.480Z,38.543,143.205,30.6,4.2,141 km SE of Kamaishi Japan -2008-12-06T03:28:27.590Z,38.269,143.52,10,3.7,180 km ESE of ?funato Japan -2008-12-06T03:31:16.370Z,41.248,142.546,53.8,4,111 km E of Mutsu Japan -2008-12-06T17:21:28.040Z,41.847,140.571,126,3.9,7 km WNW of Kamiiso Japan -2008-12-06T20:09:03.620Z,38.756,143.33,10,4,139 km ESE of Kamaishi Japan -2008-12-06T21:02:46.630Z,36.743,141.424,35.8,4.2,59 km SE of Iwaki Japan -2008-12-06T21:38:04.320Z,38.046,140.996,35,4.1,12 km E of Watari Japan -2008-12-06T22:31:58.070Z,38.465,141.173,39.8,4,5 km NW of Yamoto Japan -2008-12-06T23:28:41.390Z,36.668,141.611,46.8,4.1,77 km ESE of Iwaki Japan -2008-12-07T20:39:35.910Z,38.588,143.114,37.4,4.2,132 km SE of Kamaishi Japan -2008-12-07T21:50:24.200Z,40.883,142.196,78.2,4.1,71 km ENE of Misawa Japan -2008-12-08T07:43:39.800Z,38.548,143.169,8.9,4.2,138 km SE of Kamaishi Japan -2008-12-08T21:16:52.640Z,36.861,139.915,108.5,3.9,6 km NNW of Yaita Japan -2008-12-09T09:35:41.560Z,36.385,141.033,47.1,3.4,41 km E of ?arai Japan -2008-12-09T10:09:09.480Z,38.753,140.786,4,3.3,24 km NW of Furukawa Japan -2008-12-11T06:22:36.930Z,38.632,143.246,40,4,139 km ESE of Kamaishi Japan -2008-12-12T03:33:19.440Z,41.696,144.161,36.7,4.3,143 km S of Kushiro Japan -2008-12-12T05:21:07.750Z,42.358,141.149,122.7,4.7,14 km ENE of Muroran Japan -2008-12-13T07:20:51.270Z,38.473,143.166,37.2,4.7,142 km ESE of ?funato Japan -2008-12-13T08:23:41.760Z,42.648,142.121,137.5,4.5,40 km NNW of Shizunai-furukawach? Japan -2008-12-13T15:04:01.320Z,34.068,141.764,29.6,3.2,178 km SE of Katsuura Japan -2008-12-14T10:25:41.040Z,36.378,141.049,44.9,4.6,42 km E of ?arai Japan -2008-12-14T14:34:32.750Z,37.179,142.248,24.7,4,115 km ESE of Namie Japan -2008-12-14T19:24:04.640Z,37.115,142.152,15.3,4,110 km ESE of Namie Japan -2008-12-14T20:29:31.650Z,39.082,144.504,33.2,5.2,224 km ESE of Yamada Japan -2008-12-15T09:24:21.390Z,38.943,140.899,7.8,3.4,20 km W of Ichinoseki Japan -2008-12-15T12:14:48.590Z,37.848,139.681,0,4.3,27 km NW of Kitakata Japan -2008-12-17T13:10:43.680Z,40.126,142.466,61.7,4,69 km NE of Miyako Japan -2008-12-17T14:29:15.050Z,37.187,142.341,36.7,4.3,123 km ESE of Namie Japan -2008-12-17T19:10:04.490Z,41.327,141.876,81.3,3.9,Hokkaido Japan region -2008-12-17T20:43:37.050Z,39.272,143.022,8.3,4.3,94 km ESE of Yamada Japan -2008-12-18T06:47:13.620Z,38.429,143.002,34.9,5.3,132 km ESE of ?funato Japan -2008-12-19T06:53:01.370Z,40.987,142.014,77.1,4.3,62 km ENE of Misawa Japan -2008-12-20T04:41:38.900Z,40.895,142.188,74.9,4.4,71 km ENE of Misawa Japan -2008-12-20T10:29:23.100Z,36.541,142.425,19,6.3,148 km ESE of Iwaki Japan -2008-12-20T10:35:08.090Z,36.634,142.5,15,4.8,151 km ESE of Iwaki Japan -2008-12-20T10:40:00.200Z,36.584,142.5,25,3.8,153 km ESE of Iwaki Japan -2008-12-20T10:48:23.650Z,36.561,142.461,10,5.2,150 km ESE of Iwaki Japan -2008-12-20T10:55:21.320Z,36.561,142.505,66,4,154 km ESE of Iwaki Japan -2008-12-20T10:55:34.700Z,38.811,140.807,4,3.9,29 km NNW of Furukawa Japan -2008-12-20T11:15:00.730Z,36.569,142.607,21,3.2,162 km ESE of Iwaki Japan -2008-12-20T11:29:35.830Z,36.546,142.572,2,3.4,160 km ESE of Iwaki Japan -2008-12-20T12:22:01.830Z,36.52,142.485,10,4.9,154 km ESE of Iwaki Japan -2008-12-20T12:31:25.520Z,36.583,142.528,25,3.6,155 km ESE of Iwaki Japan -2008-12-20T12:34:30.130Z,36.523,142.501,10,3.3,155 km ESE of Iwaki Japan -2008-12-20T14:43:32.020Z,36.577,142.494,19,3.5,153 km ESE of Iwaki Japan -2008-12-20T14:51:07.920Z,36.204,141.502,15,4.3,79 km NE of Hasaki Japan -2008-12-20T17:37:16.360Z,36.612,142.204,10,5.1,127 km ESE of Iwaki Japan -2008-12-20T18:04:58.270Z,37.004,141.626,45.5,4.4,66 km E of Iwaki Japan -2008-12-20T19:11:30.830Z,36.706,142.379,10,4.2,138 km ESE of Iwaki Japan -2008-12-20T19:13:38.420Z,36.671,142.045,10,5.4,111 km ESE of Iwaki Japan -2008-12-20T19:40:39.630Z,37.213,141.191,54.3,4.2,32 km ENE of Iwaki Japan -2008-12-21T00:24:18.320Z,36.506,142.563,10,4.2,161 km ESE of Iwaki Japan -2008-12-21T07:35:51.280Z,36.596,142.589,24,3.3,160 km ESE of Iwaki Japan -2008-12-21T08:20:05.010Z,36.776,140.634,80.6,3.4,9 km NW of Takahagi Japan -2008-12-21T09:16:44.740Z,36.541,142.317,13,5.9,139 km ESE of Iwaki Japan -2008-12-21T09:55:00.480Z,36.522,142.444,14.1,4.6,151 km ESE of Iwaki Japan -2008-12-21T10:23:41.490Z,36.703,142.376,10,4.8,138 km ESE of Iwaki Japan -2008-12-21T10:36:13.620Z,36.607,142.414,10,4.2,145 km ESE of Iwaki Japan -2008-12-21T10:55:48.280Z,42.058,141.589,85.2,3.2,57 km ESE of Muroran Japan -2008-12-21T12:19:21.260Z,36.597,142.335,10,4.6,138 km ESE of Iwaki Japan -2008-12-21T16:41:55.180Z,36.447,142.608,10,4.1,167 km ESE of Iwaki Japan -2008-12-21T22:30:17.330Z,37.07,141.811,35,4,82 km E of Iwaki Japan -2008-12-22T14:28:16.100Z,34.71,142.098,35,3.3,161 km SE of Hasaki Japan -2008-12-23T01:12:28.440Z,36.619,142.59,10,3.8,159 km ESE of Iwaki Japan -2008-12-23T08:23:23.870Z,36.437,142.506,10,4.2,160 km ESE of Iwaki Japan -2008-12-23T10:05:25.250Z,36.568,142.541,29,4,157 km ESE of Iwaki Japan -2008-12-23T13:44:35.390Z,36.682,142.332,10,3.9,135 km ESE of Iwaki Japan -2008-12-23T16:46:16.250Z,36.926,142.17,10,3.2,115 km E of Iwaki Japan -2008-12-23T18:37:15.490Z,39.054,140.976,30.2,3.6,16 km WSW of Mizusawa Japan -2008-12-23T19:45:33.630Z,36.483,142.456,13.1,4.4,153 km ESE of Iwaki Japan -2008-12-23T19:56:29.170Z,35.697,139.123,125.1,4,8 km N of Uenohara Japan -2008-12-23T20:25:45.800Z,36.496,142.516,15.9,4.3,158 km ESE of Iwaki Japan -2008-12-23T20:57:20.160Z,36.462,142.399,8.2,5.4,150 km ESE of Iwaki Japan -2008-12-24T01:24:28.330Z,37.042,141.783,35,3.1,80 km E of Iwaki Japan -2008-12-24T03:40:51.190Z,41.62,143.234,29.9,4.3,107 km SE of Shizunai-furukawach? Japan -2008-12-24T11:07:20.160Z,36.485,142.537,73,3.2,160 km ESE of Iwaki Japan -2008-12-24T15:11:30.730Z,36.466,142.449,10,4.4,154 km ESE of Iwaki Japan -2008-12-24T20:32:08.490Z,42.343,144.529,46.9,4.9,71 km S of Kushiro Japan -2008-12-25T09:08:14.410Z,36.436,142.677,41,3.4,174 km ESE of Iwaki Japan -2008-12-25T09:27:14.920Z,36.573,142.408,24,3.8,145 km ESE of Iwaki Japan -2008-12-25T10:43:12.830Z,36.397,142.36,22.2,5.3,off the east coast of Honshu Japan -2008-12-25T12:39:32.130Z,41.875,144.391,32.1,4.4,122 km S of Kushiro Japan -2008-12-25T13:15:32.390Z,36.496,142.472,11,3.3,154 km ESE of Iwaki Japan -2008-12-25T13:30:41.650Z,36.275,142.558,4.3,3.7,166 km ENE of Hasaki Japan -2008-12-25T19:42:39.830Z,36.385,142.466,0.6,4.4,159 km ESE of Iwaki Japan -2008-12-27T07:05:45.600Z,41.77,143.326,41.1,4.2,101 km SE of Shizunai-furukawach? Japan -2008-12-28T05:56:24.420Z,38.705,142.248,37.4,4,61 km SE of ?funato Japan -2008-12-28T07:09:01.580Z,36.618,142.428,20,3.7,145 km ESE of Iwaki Japan -2008-12-28T08:27:29.100Z,36.41,142.751,10,4.2,181 km ESE of Iwaki Japan -2008-12-30T14:25:13.860Z,37.293,138.471,28.8,3.9,10 km SW of Kashiwazaki Japan -2008-12-30T14:52:17.250Z,42.391,143.882,88.3,4,76 km SSW of Kushiro Japan -2008-12-30T15:48:33.080Z,35.398,140.706,40.8,4.6,32 km ENE of ?hara Japan -2008-12-31T13:54:21.460Z,37.09,137.491,244.9,4.4,16 km N of Ny?zen Japan -2008-12-31T23:49:58.700Z,42.164,142.602,80.6,4.2,27 km SE of Shizunai-furukawach? Japan -2009-01-03T03:01:14.490Z,38.846,140.659,138.6,4.1,32 km ENE of Shinj? Japan -2009-01-03T04:46:48.400Z,34.709,141.608,38.3,4.6,126 km ESE of ?hara Japan -2009-01-03T07:13:05.100Z,37.127,141.056,57.6,4.6,17 km ENE of Iwaki Japan -2009-01-03T12:39:28.880Z,42.04,142.56,63.3,4.3,36 km SSE of Shizunai-furukawach? Japan -2009-01-05T01:36:29.130Z,36.884,141.88,38.7,4.5,90 km ESE of Iwaki Japan -2009-01-05T21:19:28.340Z,34.083,141.437,8.8,4.5,156 km SE of Katsuura Japan -2009-01-05T23:52:56.020Z,37.643,142.844,28.5,4.9,160 km ESE of Ishinomaki Japan -2009-01-06T21:44:38.120Z,36.968,141.728,43.8,4.1,75 km E of Iwaki Japan -2009-01-07T09:30:56.110Z,41.7,142.602,38.4,3.8,73 km SSE of Shizunai-furukawach? Japan -2009-01-10T11:17:57.820Z,41.656,143.922,33.5,4.4,149 km ESE of Shizunai-furukawach? Japan -2009-01-10T11:39:42.670Z,41.655,143.958,35.8,4.2,150 km SSW of Kushiro Japan -2009-01-11T05:57:11.780Z,42.673,143.419,71,4.6,32 km SSE of Obihiro Japan -2009-01-19T11:13:59.740Z,34.613,141.634,40.4,5.1,133 km ESE of ?hara Japan -2009-01-19T19:04:28.630Z,34.618,141.704,30.9,4.1,138 km ESE of ?hara Japan -2009-01-21T07:09:30.050Z,37.766,142.054,48.3,4,97 km SE of Ishinomaki Japan -2009-01-22T00:09:34.400Z,40.926,139.88,162.4,4.7,43 km WNW of Shimokizukuri Japan -2009-01-24T09:32:06.960Z,38.231,140.553,138.2,3.9,16 km E of Yamagata Japan -2009-01-25T10:45:39.910Z,40.441,144.937,35,4.1,270 km ENE of Miyako Japan -2009-01-25T17:07:56.550Z,34.547,141.681,39,3.9,141 km SE of ?hara Japan -2009-01-26T08:54:22.070Z,36.493,139.47,140.9,4.4,16 km NE of Kiry? Japan -2009-01-28T23:56:05.720Z,35.485,140.539,42.8,4.7,16 km SE of Narut? Japan -2009-01-29T00:05:49.050Z,35.564,140.641,47.5,4.2,16 km S of Asahi Japan -2009-01-30T19:07:24.850Z,42.383,143.641,57.5,4.4,69 km SSE of Obihiro Japan -2009-01-30T21:03:57.710Z,35.569,140.306,59.7,3.9,5 km N of ?ami Japan -2009-01-31T21:51:52.180Z,36.719,141.148,34,5.7,36 km ESE of Kitaibaraki Japan -2009-02-01T09:32:48.680Z,37.884,142.403,37.9,5.1,113 km ESE of Ishinomaki Japan -2009-02-01T10:19:16.640Z,42.276,144.547,41.5,4,78 km S of Kushiro Japan -2009-02-01T10:23:55.470Z,37.869,142.591,48.1,4.1,128 km ESE of Ishinomaki Japan -2009-02-02T03:02:45.770Z,40.318,143.877,16.4,4.3,181 km ENE of Miyako Japan -2009-02-11T10:07:18.580Z,37.211,141.121,50.1,4.1,27 km NE of Iwaki Japan -2009-02-14T17:11:17.540Z,36.277,142.587,35,4.4,169 km ENE of Hasaki Japan -2009-02-15T09:24:31.700Z,40.239,142.236,33,5.7,68 km ESE of Hachinohe Japan -2009-02-15T12:54:13.120Z,37.702,142.139,33,3.9,103 km ENE of Namie Japan -2009-02-16T19:54:25.900Z,35.141,140.003,17.6,4.5,10 km WNW of Kamogawa Japan -2009-02-17T00:12:57.780Z,37.525,141.248,53.7,4.9,22 km ENE of Namie Japan -2009-02-19T19:00:42.540Z,40.421,143.718,9.8,4.8,174 km ENE of Miyako Japan -2009-02-20T09:17:20.180Z,35.905,140.18,69.7,4.1,0 km NNW of Ry?gasaki Japan -2009-02-21T04:30:37.020Z,41.176,142.039,72.1,4.1,70 km E of Mutsu Japan -2009-02-22T14:24:11.660Z,41.749,144.02,33.4,5.4,139 km SSW of Kushiro Japan -2009-02-26T11:44:05.080Z,41.638,144.727,38.3,4.4,151 km S of Kushiro Japan -2009-02-28T00:35:56.700Z,42.61,142.104,105,5.5,37 km NW of Shizunai-furukawach? Japan -2009-03-01T13:56:28.440Z,38.676,143.269,38.7,4.2,138 km ESE of Kamaishi Japan -2009-03-04T10:04:31.300Z,35.811,140.9,35,4.5,10 km NE of Hasaki Japan -2009-03-07T14:33:04.910Z,41.796,143.693,32.7,5.3,124 km ESE of Shizunai-furukawach? Japan -2009-03-10T01:41:05.450Z,42.408,143.066,59.3,4.2,57 km SSW of Obihiro Japan -2009-03-13T12:21:53.560Z,35.156,139.898,93.4,3.9,18 km SSE of Futtsu Japan -2009-03-17T00:40:05.270Z,38.005,142.566,32.7,4.4,119 km ESE of Ishinomaki Japan -2009-03-18T00:30:35.650Z,36.75,141.954,38.1,4.3,101 km ESE of Iwaki Japan -2009-03-23T19:53:39.420Z,37.145,142.013,31.7,4.2,97 km ESE of Namie Japan -2009-03-25T01:23:15.670Z,38.283,141.876,55.7,4.3,52 km ESE of Ishinomaki Japan -2009-03-25T06:26:06.220Z,36.032,140.764,10,4.3,13 km NE of Kashima-shi Japan -2009-03-27T09:48:55.890Z,35.613,143.098,25.6,4.2,205 km E of Hasaki Japan -2009-03-27T16:23:16.980Z,36.657,139.369,135.5,4.1,24 km WSW of Nikk? Japan -2009-04-01T01:50:44.090Z,35.502,143.078,28.7,4,204 km E of Hasaki Japan -2009-04-02T19:11:34.680Z,35.584,143.117,21.2,4.1,207 km E of Hasaki Japan -2009-04-05T01:29:16.780Z,40.261,144.467,34.1,4.4,226 km ENE of Miyako Japan -2009-04-05T08:00:26.100Z,42.365,142.843,65.1,4.9,39 km E of Shizunai-furukawach? Japan -2009-04-06T02:31:19.930Z,39.194,142.388,33.4,4.5,45 km ESE of Kamaishi Japan -2009-04-08T04:28:51.270Z,36.17,141.82,24,4.3,101 km ENE of Hasaki Japan -2009-04-09T13:12:09.020Z,35.479,143.083,37,4.3,205 km E of Hasaki Japan -2009-04-13T16:58:51.610Z,35.593,140.768,32.2,4.4,16 km SSW of Hasaki Japan -2009-04-15T08:34:42.930Z,41.734,144.314,26.6,4.3,137 km S of Kushiro Japan -2009-04-20T22:54:27.360Z,35.796,140.658,63.2,4.7,7 km SSE of Omigawa Japan -2009-04-21T09:57:50.540Z,37.365,141.399,43.2,5.3,near the east coast of Honshu Japan -2009-04-23T14:24:42.380Z,36.073,143.118,42.4,4.4,209 km E of Hasaki Japan -2009-04-25T13:54:31.590Z,40.244,142.245,56,4.8,69 km ESE of Hachinohe Japan -2009-04-26T03:56:42.710Z,35.889,143.121,34.4,4.4,207 km E of Hasaki Japan -2009-04-27T15:09:26.920Z,37.573,142.93,29.5,4.5,170 km E of Namie Japan -2009-04-27T21:37:36.880Z,36.364,140.954,52.8,5.2,33 km E of ?arai Japan -2009-04-28T23:00:06.990Z,41.816,144.307,39,4.3,128 km S of Kushiro Japan -2009-04-30T10:40:51.170Z,42.06,142.48,65.9,4.4,31 km SSE of Shizunai-furukawach? Japan -2009-05-09T19:34:33.220Z,36.542,142.635,26.6,5.1,166 km ESE of Iwaki Japan -2009-05-10T02:30:08.680Z,42.477,142.329,91,4.5,16 km N of Shizunai-furukawach? Japan -2009-05-10T04:28:33.130Z,36.769,142.88,4.3,4.3,180 km E of Iwaki Japan -2009-05-12T10:40:18.860Z,36.976,138.36,24.3,4.6,12 km ESE of Arai Japan -2009-05-15T06:19:56.880Z,36.882,142.021,35.3,4.2,103 km E of Iwaki Japan -2009-05-24T10:03:11.310Z,40.272,143.903,15.8,4.1,181 km ENE of Miyako Japan -2009-05-26T10:31:21.420Z,42.023,142.213,66.4,4.9,36 km SSW of Shizunai-furukawach? Japan -2009-05-26T21:40:43.410Z,39.556,141.903,49.4,4.3,10 km SSW of Miyako Japan -2009-05-29T16:54:00.540Z,37.76,143.193,35.4,4.3,181 km ESE of Ishinomaki Japan -2009-05-31T15:33:04.250Z,37.819,141.547,61.3,5,60 km NE of Namie Japan -2009-06-02T12:34:40.900Z,36.883,141.749,35,4.1,79 km ESE of Iwaki Japan -2009-06-05T03:30:33.060Z,41.824,143.445,29,6.4,105 km ESE of Shizunai-furukawach? Japan -2009-06-06T03:49:23.190Z,35.546,141.182,29.9,4.4,37 km ESE of Hasaki Japan -2009-06-06T05:52:43.300Z,35.483,140.914,34,5.8,28 km SSE of Hasaki Japan -2009-06-06T19:38:26.920Z,36.622,141.592,35.1,4.3,77 km ESE of Kitaibaraki Japan -2009-06-09T02:07:38.040Z,40.138,142.512,60,4.6,73 km NE of Miyako Japan -2009-06-10T04:06:34.760Z,35.577,141.113,35,4.4,30 km SE of Hasaki Japan -2009-06-11T02:50:17.700Z,35.523,141.063,39.2,4.4,31 km SE of Hasaki Japan -2009-06-13T19:20:48.280Z,35.542,143.13,10,4.1,209 km E of Hasaki Japan -2009-06-14T18:32:21.890Z,40.856,141.911,93.3,4.2,47 km ENE of Misawa Japan -2009-06-16T22:35:17.890Z,35.549,141.115,35,4.4,32 km SE of Hasaki Japan -2009-06-17T17:01:28.990Z,42.444,142.85,110.2,4.1,41 km ENE of Shizunai-furukawach? Japan -2009-06-19T05:32:49.530Z,35.532,141.233,21.3,4.4,42 km ESE of Hasaki Japan -2009-06-19T23:50:56.090Z,39.103,143.49,28.5,4.5,138 km ESE of Yamada Japan -2009-06-19T23:52:07.580Z,39.084,143.273,35,4.6,121 km ESE of Yamada Japan -2009-06-20T02:52:57.430Z,39.087,143.199,21.6,5.3,off the east coast of Honshu Japan -2009-06-21T10:24:24.690Z,39.184,143.382,37.8,4.1,127 km ESE of Yamada Japan -2009-06-21T16:09:54.080Z,41.009,138.929,25.9,3.8,123 km W of Shimokizukuri Japan -2009-06-23T01:06:37.600Z,37.206,142.285,13.2,4.4,117 km ESE of Namie Japan -2009-06-23T07:24:13.380Z,39.203,143.463,28,5.1,133 km ESE of Yamada Japan -2009-06-23T07:37:17.570Z,38.85,142.389,37,5.6,63 km ESE of ?funato Japan -2009-06-24T04:05:00.930Z,35.546,143.147,10,4.1,210 km E of Hasaki Japan -2009-06-24T05:35:58.920Z,35.457,143.122,7.9,4.1,209 km E of Hasaki Japan -2009-06-27T11:42:15.990Z,39.164,140.925,43.5,4.4,18 km W of Mizusawa Japan -2009-07-02T02:26:22.190Z,36.642,141.8,43.3,4.1,93 km ESE of Iwaki Japan -2009-07-02T03:50:20.390Z,37.901,141.95,52.2,4.3,80 km SE of Ishinomaki Japan -2009-07-10T15:01:36.420Z,42.609,141.295,127.7,4.9,7 km NW of Shiraoi Japan -2009-07-19T01:47:59.910Z,37.35,141.745,41.3,4.4,67 km ESE of Namie Japan -2009-07-21T18:56:39.880Z,36.57,140.563,93.7,4.2,8 km WSW of Hitachi Japan -2009-07-22T22:36:05.990Z,37.446,141.996,41.9,4,88 km E of Namie Japan -2009-07-28T08:11:49.140Z,36.011,141.482,12.7,4.3,66 km ENE of Hasaki Japan -2009-07-28T11:52:55.290Z,41.368,140.166,32,4.1,63 km NNW of Shimokizukuri Japan -2009-07-31T02:30:04.720Z,42.75,141.858,111.9,4.2,18 km ESE of Chitose Japan -2009-08-01T09:45:50.760Z,37.576,141.789,47.4,5,70 km E of Namie Japan -2009-08-01T15:57:04.130Z,38.277,138.631,37.8,4.7,27 km NE of Ry?tsu-minato Japan -2009-08-01T17:54:33.880Z,38.28,138.615,35.3,4.4,27 km NE of Ry?tsu-minato Japan -2009-08-01T17:59:48.450Z,40.214,140.896,100.5,4.3,9 km ENE of Hanawa Japan -2009-08-03T07:19:31.230Z,37.236,141.43,44.3,4.4,46 km SE of Namie Japan -2009-08-06T05:39:47.800Z,37.182,142.107,31.7,4.5,103 km ESE of Namie Japan -2009-08-07T22:30:35.180Z,37.239,142.186,38.1,4.3,108 km ESE of Namie Japan -2009-08-09T11:47:15.310Z,36.101,138.717,142.2,4.2,23 km SW of Tomioka Japan -2009-08-15T20:30:06.370Z,36.049,141.844,10,4.2,97 km ENE of Hasaki Japan -2009-08-16T17:21:10.010Z,35.749,140.642,62.8,4.4,3 km NNW of Asahi Japan -2009-08-17T21:58:55.830Z,36.995,139.951,86.2,4.4,9 km WNW of Kuroiso Japan -2009-08-20T23:51:16.570Z,35.663,140.074,60.7,4.2,7 km NNW of Chiba Japan -2009-08-22T14:48:18.380Z,38.039,142.443,34.3,4.2,108 km ESE of Ishinomaki Japan -2009-08-24T05:26:17.100Z,41.016,140.065,175.8,5.3,34 km NW of Shimokizukuri Japan -2009-08-24T17:22:50.750Z,42.135,142.752,49.7,4.5,38 km SE of Shizunai-furukawach? Japan -2009-08-24T21:37:04.790Z,35.399,141.129,29.5,4.4,45 km SE of Hasaki Japan -2009-08-25T11:19:27.090Z,35.298,140.229,35,4.2,15 km SSW of Mobara Japan -2009-08-28T22:24:45.780Z,42.407,143.902,50,4.3,74 km SSW of Kushiro Japan -2009-08-30T15:45:54.580Z,37.055,141.509,40.8,4.6,55 km E of Iwaki Japan -2009-08-31T06:16:01.260Z,41.083,144.372,10,4.1,210 km S of Kushiro Japan -2009-09-01T12:02:17.890Z,35.508,140.938,10,4.7,26 km SSE of Hasaki Japan -2009-09-03T09:32:41.750Z,37.9,142.771,42.7,4,141 km ESE of Ishinomaki Japan -2009-09-04T01:18:16.870Z,34.237,140.674,45.1,4.3,106 km SSE of Katsuura Japan -2009-09-04T02:30:30.390Z,35.655,139.978,49.1,4.8,5 km S of Honch? Japan -2009-09-05T01:59:35.170Z,37.108,139.977,98.5,4.3,16 km NNW of Kuroiso Japan -2009-09-07T04:42:37.200Z,38.504,143.151,28,4.4,139 km ESE of ?funato Japan -2009-09-07T16:24:26.400Z,42.196,142.863,59.3,4.8,43 km ESE of Shizunai-furukawach? Japan -2009-09-08T13:33:53.890Z,37.765,141.795,64.9,4.2,76 km ENE of Namie Japan -2009-09-09T15:39:41.030Z,41.2,142.252,60.9,4,87 km E of Mutsu Japan -2009-09-13T08:37:10.730Z,41.3,142.725,11.5,4.3,118 km SSE of Shizunai-furukawach? Japan -2009-09-18T06:36:29.060Z,41.649,142.123,76.2,4.6,78 km SSW of Shizunai-furukawach? Japan -2009-09-22T11:40:43.560Z,37.559,141.683,67.2,4.5,60 km E of Namie Japan -2009-09-26T06:07:41.390Z,34.559,140.522,51.8,4.2,67 km SSE of Katsuura Japan -2009-09-29T17:21:44.230Z,41.544,142.05,62.9,4.5,75 km ENE of Mutsu Japan -2009-10-01T10:43:02.170Z,36.382,140.718,44,4.1,14 km ENE of ?arai Japan -2009-10-02T00:43:59.750Z,36.691,141.589,5.7,4.2,74 km ESE of Iwaki Japan -2009-10-02T01:43:58.680Z,41.763,143.648,40.5,4.8,123 km ESE of Shizunai-furukawach? Japan -2009-10-03T13:57:25.920Z,40.785,141.142,55.2,4,23 km WNW of Misawa Japan -2009-10-05T00:35:12.680Z,42.491,141.599,22.8,4.6,16 km S of Tomakomai Japan -2009-10-08T15:47:17.760Z,37.439,142.998,35,4.1,176 km E of Namie Japan -2009-10-09T06:11:15.350Z,35.789,141.163,35,4.3,30 km ENE of Hasaki Japan -2009-10-10T08:42:51.030Z,41.808,142.084,99.8,5.1,62 km SSW of Shizunai-furukawach? Japan -2009-10-11T06:01:52.880Z,36.324,139.425,150.3,4.4,2 km WSW of Ashikaga Japan -2009-10-12T09:42:20.320Z,37.467,139.695,10,4.7,25 km SW of Kitakata Japan -2009-10-14T13:09:59.320Z,38.295,142.414,41.7,4.3,98 km E of Ishinomaki Japan -2009-10-18T14:13:03.280Z,40.185,141.169,97,4.3,10 km WSW of Ichinohe Japan -2009-10-21T02:58:38.570Z,38.886,140.747,50.4,4.4,eastern Honshu Japan -2009-10-23T01:28:29.330Z,36.578,141.065,55.1,4.9,34 km ESE of Takahagi Japan -2009-10-28T05:25:29.080Z,37.438,141.64,27,4.4,near the east coast of Honshu Japan -2009-10-30T17:42:11.600Z,41.184,142.697,44,4.5,123 km ENE of Misawa Japan -2009-11-04T08:56:23.260Z,37.165,141.835,50.3,4.3,82 km ESE of Namie Japan -2009-11-06T19:22:29.310Z,36.655,141.356,26.1,4.3,56 km ESE of Kitaibaraki Japan -2009-11-07T09:39:38.090Z,41.233,139.705,10,4.4,72 km NW of Shimokizukuri Japan -2009-11-08T23:17:00.370Z,39.94,142.675,35,4.1,near the east coast of Honshu Japan -2009-11-09T18:01:52.320Z,41.961,142.244,66.4,4.6,42 km SSW of Shizunai-furukawach? Japan -2009-11-10T10:31:48.970Z,36.135,141.771,36.4,4.1,95 km ENE of Hasaki Japan -2009-11-13T01:00:42.050Z,41.745,145.087,46.8,4.3,148 km SSE of Kushiro Japan -2009-11-13T12:09:06.650Z,37.199,142.078,37.7,4.2,100 km ESE of Namie Japan -2009-11-13T19:23:35.630Z,35.336,139.613,35,4.2,5 km NE of Zushi Japan -2009-11-20T16:55:02.310Z,42.331,142.945,65,4.1,47 km E of Shizunai-furukawach? Japan -2009-11-21T06:39:44.700Z,37.021,139.811,47.1,4.4,22 km WNW of Kuroiso Japan -2009-11-26T11:03:30.270Z,39.907,144.862,35,4.3,251 km E of Miyako Japan -2009-12-02T06:14:29.590Z,37.223,141.362,59.7,5.1,43 km SE of Namie Japan -2009-12-03T23:41:29.070Z,37.211,142.124,53.1,4.4,104 km ESE of Namie Japan -2009-12-10T21:22:20.650Z,37.252,142.971,11.6,4.7,176 km E of Namie Japan -2009-12-11T07:55:44.720Z,40.224,142.475,55.4,4.1,78 km NE of Miyako Japan -2009-12-16T19:04:01.390Z,41.181,141.519,94.7,4.1,28 km ESE of Mutsu Japan -2009-12-17T10:57:49.720Z,40.771,142.608,56.5,4.4,98 km ENE of Hachinohe Japan -2009-12-17T14:45:24.880Z,34.934,139.179,13.6,4.9,9 km ESE of It? Japan -2009-12-17T20:41:30.700Z,36.37,139.481,91.7,5.1,4 km NE of Ashikaga Japan -2009-12-17T23:45:36.410Z,34.921,139.261,6.8,5,17 km ESE of It? Japan -2009-12-18T15:53:15.130Z,34.946,139.172,18.9,4.3,8 km ESE of It? Japan -2009-12-18T19:30:51.000Z,38.036,141.83,37.4,4.5,62 km SE of Ishinomaki Japan -2009-12-20T11:52:32.820Z,35.769,140.986,21.2,4.3,14 km ENE of Hasaki Japan -2009-12-20T14:30:28.150Z,41.08,143.056,40.7,4.6,146 km ENE of Hachinohe Japan -2009-12-20T14:48:33.760Z,41.036,143.175,39.3,3.8,153 km ENE of Hachinohe Japan -2009-12-23T21:01:30.810Z,35.124,140.212,25.3,4.2,9 km WSW of Katsuura Japan -2009-12-23T22:22:31.180Z,35.137,140.174,29.1,4.4,8 km ENE of Kamogawa Japan -2009-12-29T19:23:05.410Z,41.93,142.075,72.5,4.9,50 km SSW of Shizunai-furukawach? Japan -2010-01-06T20:39:40.130Z,42.017,142.291,70.2,4.3,35 km S of Shizunai-furukawach? Japan -2010-01-07T01:36:07.380Z,36.294,141.775,37.5,4.4,105 km NE of Hasaki Japan -2010-01-07T13:24:11.130Z,36.235,141.746,37.6,4.2,99 km NE of Hasaki Japan -2010-01-13T08:54:37.940Z,36.575,141.453,10,4,67 km ESE of Kitaibaraki Japan -2010-01-14T18:46:25.100Z,42.338,142.991,60.1,5,51 km E of Shizunai-furukawach? Japan -2010-01-17T06:04:36.520Z,37.938,143.599,7,5.6,206 km SE of ?funato Japan -2010-01-17T13:09:41.640Z,36.067,141.882,17,4.5,101 km ENE of Hasaki Japan -2010-01-19T19:26:49.200Z,39.686,143.381,29.7,4.3,123 km E of Miyako Japan -2010-01-20T17:59:23.180Z,34.922,139.157,17.4,4.1,8 km SE of It? Japan -2010-01-21T09:49:01.480Z,38.162,140.132,116.5,4.5,10 km NE of Nagai Japan -2010-01-22T17:32:25.990Z,37.781,142.121,40.7,4.5,100 km SE of Ishinomaki Japan -2010-01-22T19:05:04.870Z,42.321,140.651,130.1,4.3,24 km SW of Date Japan -2010-01-24T07:19:10.590Z,41.238,141.46,47.5,4.2,21 km ESE of Mutsu Japan -2010-01-27T16:04:13.300Z,42.035,142.657,73.6,4.4,40 km SE of Shizunai-furukawach? Japan -2010-01-28T15:25:08.930Z,38.67,142.21,63.7,4.4,61 km SE of ?funato Japan -2010-01-28T15:29:23.020Z,38.771,142.215,44.6,4.3,54 km SE of ?funato Japan -2010-01-30T21:26:50.300Z,40.981,143.16,46.2,4.2,150 km ENE of Hachinohe Japan -2010-02-04T12:24:14.660Z,39.755,140.478,144.6,4.7,19 km NNW of Kakunodatemachi Japan -2010-02-14T02:57:39.280Z,37.147,141.415,57.3,4.3,48 km ENE of Iwaki Japan -2010-02-16T01:57:16.440Z,40.332,143.651,15.8,5.3,164 km ENE of Miyako Japan -2010-02-16T03:27:44.530Z,40.306,143.85,10,4.2,178 km ENE of Miyako Japan -2010-02-16T03:31:56.960Z,40.278,143.867,5.5,4.3,178 km ENE of Miyako Japan -2010-02-16T03:44:58.520Z,40.32,143.852,7.4,4.2,179 km ENE of Miyako Japan -2010-02-16T05:30:59.340Z,40.371,143.797,18.1,4.2,177 km ENE of Miyako Japan -2010-02-16T08:29:01.890Z,37.299,143.893,35,4.3,256 km E of Namie Japan -2010-02-16T19:59:30.630Z,34.89,139.894,76,4.7,10 km SSE of Tateyama Japan -2010-02-21T00:56:57.140Z,37.427,141.495,50.4,4.8,44 km E of Namie Japan -2010-02-22T09:52:53.360Z,36.486,140.539,65.1,4.2,3 km NW of Funaishikawa Japan -2010-02-28T08:15:57.670Z,34.809,141.917,10,4.4,142 km SE of Hasaki Japan -2010-02-28T08:17:44.340Z,34.832,141.468,10,5.6,108 km ESE of ?hara Japan -2010-02-28T13:51:55.360Z,34.741,141.812,10,4.2,141 km ESE of ?hara Japan -2010-02-28T22:07:47.110Z,39.482,140.44,121.8,5.1,5 km NW of ?magari Japan -2010-03-05T07:53:15.700Z,36.316,141.304,35.4,4.3,64 km E of ?arai Japan -2010-03-10T12:50:02.560Z,42.106,141.217,105.5,4.1,Hokkaido Japan region -2010-03-12T07:08:36.880Z,35.991,139.953,45.2,4,3 km SW of Mitsukaid? Japan -2010-03-12T17:32:08.340Z,34.898,141.595,15.3,5.2,115 km SE of Hasaki Japan -2010-03-13T12:46:26.380Z,37.594,141.299,76.7,5.6,29 km ENE of Namie Japan -2010-03-14T01:59:19.650Z,42.019,141.203,102.9,4.4,37 km SSE of Muroran Japan -2010-03-14T08:08:03.960Z,37.745,141.59,32,6.5,59 km ENE of Namie Japan -2010-03-14T09:58:36.220Z,35.781,141.309,25.4,4.4,43 km E of Hasaki Japan -2010-03-15T22:30:01.920Z,35.606,140.359,54.6,4.2,5 km W of Narut? Japan -2010-03-15T22:30:32.050Z,35.549,140.144,63.5,4.5,6 km SSE of Chiba Japan -2010-03-19T10:27:32.270Z,36.736,140.397,78,4.2,5 km SE of Daigo Japan -2010-03-29T01:29:26.750Z,35.999,139.823,56.2,4.2,6 km ENE of Kasukabe Japan -2010-03-30T21:18:34.900Z,36.463,140.605,53.9,4.4,3 km E of Funaishikawa Japan -2010-04-02T18:32:56.470Z,37.968,142.611,41.7,4.3,125 km ESE of Ishinomaki Japan -2010-04-04T12:07:48.950Z,41.781,144.657,25.2,4.1,134 km S of Kushiro Japan -2010-04-05T09:36:33.000Z,36.855,142.039,10,4.4,105 km ESE of Iwaki Japan -2010-04-16T07:38:18.460Z,37.985,139.298,43.9,4.4,4 km NW of Shibata Japan -2010-04-16T12:32:07.310Z,36.48,141.35,44.8,4,62 km ESE of Takahagi Japan -2010-04-18T07:33:46.540Z,37.337,141.767,34.7,4,69 km ESE of Namie Japan -2010-04-20T03:05:38.510Z,34.918,140.968,5.3,4.3,63 km SE of ?hara Japan -2010-04-25T21:22:47.500Z,37.949,142.423,68.2,4.8,111 km ESE of Ishinomaki Japan -2010-04-28T22:21:47.190Z,36.435,140.844,37.3,4.4,25 km E of Funaishikawa Japan -2010-04-29T08:01:02.570Z,36.919,141.214,35,4.5,32 km ESE of Iwaki Japan -2010-05-01T09:20:40.900Z,37.547,138.961,43.7,4.6,2 km ENE of Mitsuke Japan -2010-05-01T23:59:14.710Z,36.646,141.439,39.8,4.2,63 km ESE of Kitaibaraki Japan -2010-05-06T19:38:24.810Z,36.901,140.644,43.9,4,15 km NW of Kitaibaraki Japan -2010-05-14T02:52:58.490Z,35.411,141.742,28.8,4.4,89 km ESE of Hasaki Japan -2010-05-16T08:52:24.810Z,35.146,141.193,35,4.1,72 km SSE of Hasaki Japan -2010-06-01T04:49:24.070Z,37.529,141.365,59.2,4.7,32 km E of Namie Japan -2010-06-02T22:39:30.200Z,38.978,140.751,51.1,4.3,30 km SE of Yuzawa Japan -2010-06-03T23:25:17.810Z,38.432,139.892,145,4.5,32 km S of Tsuruoka Japan -2010-06-05T22:19:29.970Z,35.696,140.17,63.2,4.3,5 km N of Yotsukaid? Japan -2010-06-07T05:01:41.300Z,39.076,140.858,47.9,4.1,eastern Honshu Japan -2010-06-08T09:26:02.770Z,42.065,140.691,127.3,4,18 km N of Honch? Japan -2010-06-08T10:47:55.350Z,42.342,143.701,51.7,4.3,75 km SSE of Obihiro Japan -2010-06-10T16:29:02.840Z,40.124,145.395,35,4.2,off the east coast of Honshu Japan -2010-06-13T03:32:57.240Z,37.372,141.625,27,5.9,near the east coast of Honshu Japan -2010-06-14T03:40:46.170Z,34.475,141.624,16.3,4.3,141 km ESE of Katsuura Japan -2010-06-19T10:00:50.020Z,41.42,142.453,34.3,5,101 km S of Shizunai-furukawach? Japan -2010-06-24T17:55:52.080Z,34.064,142.062,10,4.4,200 km SE of Katsuura Japan -2010-06-27T21:03:27.220Z,41.662,141.657,67.6,5.3,55 km NE of Mutsu Japan -2010-06-28T22:24:09.270Z,39.188,141.381,114.7,4.3,19 km SW of T?no Japan -2010-07-02T12:30:07.600Z,42.012,142.48,64.5,4.5,36 km SSE of Shizunai-furukawach? Japan -2010-07-03T19:33:14.680Z,39.058,140.715,24.9,5.1,eastern Honshu Japan -2010-07-04T06:03:04.060Z,35.925,140.364,80.1,4.6,5 km SE of Inashiki Japan -2010-07-04T21:55:51.980Z,39.697,142.369,27,6.3,37 km E of Miyako Japan -2010-07-06T12:22:48.210Z,39.353,141.228,10,4.3,10 km ESE of Hanamaki Japan -2010-07-08T17:50:13.730Z,35.21,141.347,9.5,4.5,74 km SE of Hasaki Japan -2010-07-11T02:00:04.270Z,36.357,141.124,37,4.3,48 km E of ?arai Japan -2010-07-22T21:06:34.200Z,35.839,140.413,47,5.1,9 km WSW of Sawara Japan -2010-07-26T23:31:04.710Z,38.933,142.156,19.5,5,41 km ESE of ?funato Japan -2010-07-27T23:06:45.620Z,42.332,143.738,52.4,4.5,78 km SE of Obihiro Japan -2010-07-30T04:52:00.350Z,40.945,142.091,73.3,4.4,65 km ENE of Misawa Japan -2010-07-31T09:20:44.400Z,34.093,140.877,54.1,3.9,127 km SSE of Katsuura Japan -2010-08-01T11:47:01.910Z,36.297,141.957,36.4,4.3,119 km ENE of Hasaki Japan -2010-08-01T11:52:20.060Z,36.282,141.997,11.9,4.3,121 km ENE of Hasaki Japan -2010-08-02T22:30:48.040Z,36.803,140.098,84.5,4.8,9 km SE of ?tawara Japan -2010-08-03T14:39:53.490Z,36.886,141.8,26.6,4.4,83 km ESE of Iwaki Japan -2010-08-03T21:43:41.400Z,39.719,141.057,35,4.2,6 km ENE of Shizukuishi Japan -2010-08-04T14:11:29.540Z,36.768,141.238,46.3,4.3,43 km E of Kitaibaraki Japan -2010-08-04T23:53:46.180Z,37.826,141.179,78.9,4.5,37 km SE of Watari Japan -2010-08-05T17:30:26.570Z,34.262,141.116,47.8,4.5,122 km SE of Katsuura Japan -2010-08-07T16:03:24.540Z,37.749,142.161,33.2,4.6,105 km SE of Ishinomaki Japan -2010-08-08T16:18:15.360Z,37.63,141.97,43.5,4.2,87 km E of Namie Japan -2010-08-10T05:50:37.540Z,39.406,143.148,22.4,5.9,103 km E of Yamada Japan -2010-08-10T06:04:12.300Z,39.398,143.277,38.3,4.4,114 km E of Yamada Japan -2010-08-10T16:00:38.250Z,39.369,143.358,10,4.5,121 km E of Yamada Japan -2010-08-10T20:00:23.610Z,39.47,143.292,37,4.1,115 km E of Yamada Japan -2010-08-12T01:09:10.810Z,39.46,143.288,22.6,4.4,115 km E of Yamada Japan -2010-08-13T08:32:39.850Z,39.682,143.123,24.5,4.4,101 km E of Miyako Japan -2010-08-15T02:19:05.150Z,41.463,142.192,67.2,4.6,83 km ENE of Mutsu Japan -2010-08-15T15:07:53.070Z,39.431,143.688,17.1,4,149 km E of Yamada Japan -2010-08-15T15:30:24.150Z,36.296,141.805,12.9,4.5,107 km NE of Hasaki Japan -2010-08-21T14:26:00.900Z,37.306,141.702,37,4.5,65 km ESE of Namie Japan -2010-08-25T09:26:13.540Z,39.349,144.295,10,4.4,202 km E of Yamada Japan -2010-08-28T00:19:14.100Z,38.32,142.543,36.4,4.3,109 km E of Ishinomaki Japan -2010-08-28T15:14:37.880Z,35.266,141.037,9.2,4.3,55 km SSE of Hasaki Japan -2010-08-31T02:30:36.080Z,40.403,139.13,47.6,4.7,79 km WNW of Noshiro Japan -2010-08-31T18:27:31.520Z,36.582,141.37,48,4.4,59 km ESE of Kitaibaraki Japan -2010-09-01T07:32:53.660Z,37.925,141.788,44.4,5.2,69 km SE of Ishinomaki Japan -2010-09-10T23:28:16.150Z,38.474,142.134,53.8,4.4,73 km E of Ishinomaki Japan -2010-09-13T05:47:47.290Z,41.497,141.986,45,5.8,68 km ENE of Mutsu Japan -2010-09-21T20:15:10.430Z,40.639,139.421,182.8,4.7,70 km NW of Noshiro Japan -2010-09-21T20:31:52.590Z,35.733,140.386,27.4,4.4,8 km SE of Narita Japan -2010-09-26T07:11:29.220Z,42.691,141.858,119.6,4.2,21 km ENE of Tomakomai Japan -2010-09-26T17:54:58.730Z,35.603,140.049,49.9,4.6,6 km W of Chiba Japan -2010-09-28T01:44:01.340Z,42.095,142.533,66.8,4.3,29 km SSE of Shizunai-furukawach? Japan -2010-09-28T18:35:47.810Z,39.728,141.977,79,4.1,9 km NNE of Miyako Japan -2010-09-29T03:02:01.990Z,37.268,139.949,42.1,4.7,34 km NNW of Kuroiso Japan -2010-09-29T08:00:00.500Z,37.257,139.883,33.3,5.5,35 km NNW of Kuroiso Japan -2010-09-29T16:23:44.810Z,37.211,139.99,36.6,4.2,27 km N of Kuroiso Japan -2010-09-30T12:47:08.400Z,37.102,140.954,35,5,8 km NE of Iwaki Japan -2010-09-30T23:24:05.950Z,37.253,139.931,43.1,4.3,33 km NNW of Kuroiso Japan -2010-10-02T01:23:44.760Z,36.01,141.123,35,4.3,40 km NE of Hasaki Japan -2010-10-02T03:35:12.800Z,37.002,138.286,39.2,4.1,5 km E of Arai Japan -2010-10-02T21:37:54.130Z,37.095,138.206,24.2,4.3,6 km SSW of J?etsu Japan -2010-10-02T21:52:44.000Z,37.174,138.402,14.3,4.4,14 km E of J?etsu Japan -2010-10-03T00:26:54.320Z,37.078,138.182,28.4,4.6,9 km SSW of J?etsu Japan -2010-10-04T11:32:22.560Z,36.375,141.126,48.9,4.1,49 km E of ?arai Japan -2010-10-05T22:35:59.310Z,41.484,142.037,74.2,4.3,71 km ENE of Mutsu Japan -2010-10-08T06:53:35.070Z,38.605,140.54,42,4.4,12 km E of Obanazawa Japan -2010-10-08T12:16:35.260Z,39.013,140.746,47.4,4.3,27 km SE of Yuzawa Japan -2010-10-09T06:12:23.170Z,35.812,140.444,29.1,4.4,9 km SSW of Sawara Japan -2010-10-09T19:07:41.530Z,41.305,144.665,35,4.1,Hokkaido Japan region -2010-10-10T01:04:59.780Z,35.969,140.486,35,4,7 km NW of Itako Japan -2010-10-10T14:47:10.170Z,35.589,140.855,4.5,4.4,near the east coast of Honshu Japan -2010-10-11T14:10:33.620Z,41.126,141.262,107.8,4.2,18 km SSE of Mutsu Japan -2010-10-12T09:58:22.910Z,38.352,143.657,10,4.3,186 km SE of Kamaishi Japan -2010-10-14T13:58:55.590Z,42.311,142.871,59,5.6,41 km E of Shizunai-furukawach? Japan -2010-10-15T21:14:28.670Z,40.19,142.268,48.4,4.5,66 km NNE of Miyako Japan -2010-10-17T08:19:43.830Z,36.393,141.182,42.2,4.2,52 km ESE of Hitachi Japan -2010-10-18T22:30:19.190Z,42.019,142.821,68.4,4.2,51 km SE of Shizunai-furukawach? Japan -2010-10-19T21:50:25.700Z,36.332,142.26,16.9,4.3,144 km ESE of Kitaibaraki Japan -2010-10-24T04:50:43.770Z,36.087,139.747,62.9,4.3,2 km NE of Satte Japan -2010-10-24T21:10:00.660Z,39.774,141.797,77,4.3,18 km NW of Miyako Japan -2010-10-27T10:30:50.700Z,41.681,143.783,39.1,4.1,137 km ESE of Shizunai-furukawach? Japan -2010-10-30T19:06:17.880Z,34.321,141.267,26.3,5.2,126 km SE of Katsuura Japan -2010-11-01T05:22:40.890Z,33.963,141.794,15.9,4.2,188 km SE of Katsuura Japan -2010-11-01T12:20:59.900Z,37.449,143.044,34,4.3,180 km E of Namie Japan -2010-11-02T22:55:30.310Z,37.486,143.108,12,4.3,186 km E of Namie Japan -2010-11-03T20:33:48.530Z,42.239,142.418,36.7,4.3,11 km SSE of Shizunai-furukawach? Japan -2010-11-04T22:30:51.800Z,36.71,141.212,39.5,4.8,42 km ESE of Kitaibaraki Japan -2010-11-05T10:14:04.400Z,36.021,139.656,64,4.5,0 km NW of Shiraoka Japan -2010-11-07T00:15:46.540Z,33.972,141.612,15.1,4.4,176 km SE of Katsuura Japan -2010-11-14T06:10:29.350Z,34.036,141.373,26.8,5,156 km SE of Katsuura Japan -2010-11-16T11:41:46.430Z,37.154,143.051,16.8,4.3,185 km ESE of Namie Japan -2010-11-17T00:16:06.920Z,42.163,142.637,72.8,4.2,29 km SE of Shizunai-furukawach? Japan -2010-11-18T19:08:10.050Z,39.667,142.068,65,4,11 km ENE of Miyako Japan -2010-11-19T20:49:19.550Z,35.566,140.2,67,4.3,8 km ESE of Chiba Japan -2010-11-24T11:09:11.650Z,36.202,140.804,38.8,5,23 km ESE of ?arai Japan -2010-11-24T20:04:48.960Z,38.727,141.321,78.6,4.2,25 km NE of Wakuya Japan -2010-11-24T23:56:00.420Z,40.089,142.405,72.4,4.1,63 km NE of Miyako Japan -2010-12-05T18:20:02.810Z,35.534,140.104,66,4.2,2 km NE of Ichihara Japan -2010-12-06T07:30:32.710Z,40.904,142.967,22,5.7,131 km ENE of Hachinohe Japan -2010-12-06T07:39:49.050Z,40.875,143.161,16.3,4.3,146 km ENE of Hachinohe Japan -2010-12-06T07:45:35.080Z,40.791,143.263,10,4.5,152 km ENE of Hachinohe Japan -2010-12-09T16:21:07.160Z,39.128,143.346,10.9,4.9,126 km ESE of Yamada Japan -2010-12-10T21:33:26.240Z,35.743,140.299,64.3,4.2,4 km NE of Shisui Japan -2010-12-14T23:53:39.130Z,36.683,141.38,42.6,4.4,57 km ESE of Kitaibaraki Japan -2010-12-15T05:43:48.190Z,41.963,144.407,38.8,4.7,112 km S of Kushiro Japan -2010-12-15T07:37:23.600Z,41.191,142.592,47.3,4.9,115 km ENE of Misawa Japan -2010-12-26T20:58:39.390Z,37.347,141.775,46.6,4.1,70 km ESE of Namie Japan -2010-12-31T23:01:03.440Z,36.678,140.789,52.1,4.6,7 km ESE of Takahagi Japan -2011-01-01T15:34:34.490Z,37.802,138.918,173,4.5,6 km NNE of Maki Japan -2011-01-02T19:10:23.540Z,36.769,141.321,39.2,4.5,49 km SE of Iwaki Japan -2011-01-03T04:45:15.280Z,38.567,139.099,39,4.8,49 km NW of Murakami Japan -2011-01-07T17:45:14.240Z,35.122,141.351,10,4.4,82 km SE of Hasaki Japan -2011-01-08T07:47:48.300Z,41.986,141.401,116.3,4.8,50 km SE of Muroran Japan -2011-01-08T18:21:52.030Z,42.594,142.162,124.4,4.7,33 km NNW of Shizunai-furukawach? Japan -2011-01-09T12:42:31.080Z,42.399,144.382,21.6,5.1,63 km S of Kushiro Japan -2011-01-11T05:11:42.130Z,42.699,142.108,113.6,4.7,39 km ESE of Chitose Japan -2011-01-12T03:43:06.230Z,39.1,143.102,35,4.2,107 km ESE of Yamada Japan -2011-01-13T23:34:37.720Z,34.96,141.315,17.7,4.6,89 km ESE of ?hara Japan -2011-01-16T11:14:12.340Z,34.451,141.643,46.2,5,143 km ESE of Katsuura Japan -2011-01-17T07:13:51.250Z,36.595,141.051,50.2,4.3,32 km ESE of Takahagi Japan -2011-01-17T19:22:29.900Z,38.153,143.238,10,4.2,167 km SE of ?funato Japan -2011-01-19T10:26:43.790Z,36.06,142.479,35,4.7,152 km ENE of Hasaki Japan -2011-01-22T05:49:02.450Z,42.36,142.895,62.1,5.1,43 km E of Shizunai-furukawach? Japan -2011-01-23T02:59:37.660Z,37.63,144.496,36.3,4.3,290 km SE of ?funato Japan -2011-01-25T05:24:40.110Z,35.127,141.117,14,5.1,67 km ESE of ?hara Japan -2011-01-28T09:24:02.110Z,34.455,141.886,19.4,4.6,162 km ESE of ?hara Japan -2011-01-29T09:31:33.030Z,35.063,141.31,35,4.7,86 km ESE of ?hara Japan -2011-02-03T13:51:57.850Z,39.934,143.235,14.6,4.5,115 km ENE of Miyako Japan -2011-02-04T20:22:14.320Z,38.823,144.496,30,4.4,231 km ESE of Yamada Japan -2011-02-05T01:56:13.890Z,34.77,140.352,65.3,5.1,41 km S of Katsuura Japan -2011-02-10T04:20:16.700Z,36.59,141.473,27.5,4.4,68 km ESE of Kitaibaraki Japan -2011-02-10T13:03:02.650Z,37.151,141.279,33,5.3,36 km ENE of Iwaki Japan -2011-02-12T16:28:30.340Z,38.402,143.274,31.2,4.5,154 km ESE of ?funato Japan -2011-02-15T19:01:03.400Z,38.321,143.162,26.2,5.5,150 km SE of ?funato Japan -2011-02-15T19:06:51.390Z,38.387,142.796,10,5.1,120 km SE of ?funato Japan -2011-02-15T22:12:33.160Z,38.393,143.336,23.1,4.8,159 km ESE of ?funato Japan -2011-02-16T01:30:17.100Z,35.646,140.801,43.8,4.5,10 km SSW of Hasaki Japan -2011-02-17T23:26:35.060Z,36.736,141.172,44.4,4.6,38 km E of Kitaibaraki Japan -2011-02-19T23:18:59.440Z,37.238,141.418,35,4.1,45 km SE of Namie Japan -2011-02-21T11:34:06.480Z,37.997,140.934,99.6,4.5,8 km ESE of Watari Japan -2011-02-21T13:24:02.280Z,38.253,143.321,7.7,4.9,166 km ESE of ?funato Japan -2011-02-22T03:00:20.770Z,38.183,143.519,16.4,4.3,185 km ESE of ?funato Japan -2011-02-22T09:53:39.320Z,38.229,143.166,31.7,5.1,157 km SE of ?funato Japan -2011-02-25T19:12:31.230Z,34.333,140.235,66.8,5.3,79 km SSE of Tateyama Japan -2011-02-26T07:34:50.620Z,37.061,141.57,54.7,4.5,61 km E of Iwaki Japan -2011-02-26T09:57:47.830Z,37.155,141.536,44.5,4.1,59 km E of Iwaki Japan -2011-02-26T14:40:57.020Z,38.194,143.158,22,5,158 km SE of ?funato Japan -2011-02-26T15:38:43.790Z,37.36,141.652,27.1,5.1,59 km ESE of Namie Japan -2011-02-26T17:18:59.690Z,36.13,137.486,6.6,4.9,21 km E of Takayama Japan -2011-02-26T17:20:04.650Z,38.092,143.474,7.4,4.8,187 km SE of ?funato Japan -2011-02-28T09:55:23.480Z,35.64,143.749,10,4.6,264 km E of Hasaki Japan -2011-03-04T09:48:57.940Z,42.631,141.392,119.6,4.5,9 km NNE of Shiraoi Japan -2011-03-09T02:45:20.330Z,38.435,142.842,32,7.3,120 km SE of ?funato Japan -2011-03-09T02:55:12.640Z,38.465,143.235,19.8,5.1,148 km ESE of ?funato Japan -2011-03-09T02:57:16.670Z,38.361,142.91,23.2,5.7,130 km SE of ?funato Japan -2011-03-09T02:58:14.080Z,38.246,143.102,35,5.7,151 km SE of ?funato Japan -2011-03-09T03:02:05.980Z,38.45,143.204,42,4.7,146 km ESE of ?funato Japan -2011-03-09T03:05:52.240Z,38.277,142.842,41.9,4.6,131 km SE of ?funato Japan -2011-03-09T03:08:35.770Z,38.311,143.169,29.3,5.3,151 km SE of ?funato Japan -2011-03-09T03:18:59.710Z,38.713,143.065,22.6,5,121 km ESE of Kamaishi Japan -2011-03-09T03:54:05.910Z,38.5,143.101,42.1,4.4,135 km ESE of ?funato Japan -2011-03-09T04:05:00.250Z,38.628,143.078,23.9,4.9,127 km SE of Kamaishi Japan -2011-03-09T04:05:54.980Z,38.655,142.753,35,5.2,101 km ESE of ?funato Japan -2011-03-09T04:09:19.500Z,38.661,143.266,39.1,4.3,139 km ESE of Kamaishi Japan -2011-03-09T04:15:40.530Z,38.689,142.968,39.2,4.8,115 km SE of Kamaishi Japan -2011-03-09T04:32:09.690Z,38.672,143.031,35.2,5.1,121 km SE of Kamaishi Japan -2011-03-09T04:33:30.970Z,38.51,143.053,35,4.8,131 km ESE of ?funato Japan -2011-03-09T04:37:04.990Z,38.665,142.991,37.8,5.6,118 km SE of Kamaishi Japan -2011-03-09T04:45:55.170Z,38.466,142.702,40.7,5.3,108 km SE of ?funato Japan -2011-03-09T04:47:39.560Z,38.22,143.252,35,4.9,163 km SE of ?funato Japan -2011-03-09T05:27:22.810Z,38.536,143.273,40,4.6,147 km SE of Kamaishi Japan -2011-03-09T05:32:11.060Z,38.317,143.594,11,4.5,183 km ESE of ?funato Japan -2011-03-09T06:12:12.780Z,38.626,143.13,10,5,131 km SE of Kamaishi Japan -2011-03-09T06:13:46.470Z,38.23,143.132,38.8,5.1,154 km SE of ?funato Japan -2011-03-09T06:25:14.570Z,38.273,143.054,26.9,5,146 km SE of ?funato Japan -2011-03-09T06:29:32.320Z,38.422,143.317,21.7,4.2,156 km ESE of ?funato Japan -2011-03-09T07:13:50.090Z,38.212,143.162,23.5,5,157 km SE of ?funato Japan -2011-03-09T07:56:32.220Z,38.803,142.879,46.4,5.1,102 km ESE of Kamaishi Japan -2011-03-09T08:02:38.390Z,38.613,143.08,30.4,5.2,128 km SE of Kamaishi Japan -2011-03-09T08:55:40.770Z,38.62,143.057,35.5,4.8,126 km SE of Kamaishi Japan -2011-03-09T10:13:40.610Z,38.699,143.119,38,4.7,125 km ESE of Kamaishi Japan -2011-03-09T11:27:52.300Z,38.537,143.036,33.9,5.2,129 km ESE of ?funato Japan -2011-03-09T12:03:18.020Z,38.348,143.14,16.5,4.7,147 km ESE of ?funato Japan -2011-03-09T13:49:48.720Z,38.445,143.248,38.4,4.6,150 km ESE of ?funato Japan -2011-03-09T14:24:07.000Z,38.569,143.203,18.8,4.8,139 km SE of Kamaishi Japan -2011-03-09T16:59:25.760Z,38.53,143.111,33.7,4.6,135 km ESE of ?funato Japan -2011-03-09T18:16:16.440Z,38.315,142.434,22,6,99 km E of Ishinomaki Japan -2011-03-09T18:44:38.500Z,38.503,143.166,23.8,5.9,140 km ESE of ?funato Japan -2011-03-09T19:16:28.640Z,38.681,143.414,10,4.1,149 km ESE of Kamaishi Japan -2011-03-09T19:19:47.560Z,38.601,143.359,10,4.4,149 km ESE of Kamaishi Japan -2011-03-09T21:00:59.110Z,38.266,142.739,41.8,4.9,126 km SE of ?funato Japan -2011-03-09T21:22:17.580Z,38.345,142.648,23,6,114 km SE of ?funato Japan -2011-03-09T21:24:01.680Z,38.296,142.808,15,6.5,128 km SE of ?funato Japan -2011-03-09T22:42:49.720Z,38.08,142.95,45.1,4.2,149 km ESE of Ishinomaki Japan -2011-03-09T23:36:58.680Z,38.398,143.167,19.9,5.4,146 km ESE of ?funato Japan -2011-03-09T23:43:53.600Z,38.181,143.144,33.3,4.7,158 km SE of ?funato Japan -2011-03-09T23:57:41.530Z,38.243,143.292,20.4,4.9,165 km SE of ?funato Japan -2011-03-10T00:46:39.710Z,38.304,143.34,35.9,4.8,164 km ESE of ?funato Japan -2011-03-10T01:20:23.210Z,38.375,143.105,26.8,4.9,143 km ESE of ?funato Japan -2011-03-10T03:54:57.220Z,38.314,143.43,33.6,4.6,171 km ESE of ?funato Japan -2011-03-10T04:13:59.930Z,38.399,143.353,22,4.5,160 km ESE of ?funato Japan -2011-03-10T07:33:04.780Z,38.91,142.446,26.7,4.8,64 km SE of Kamaishi Japan -2011-03-10T08:08:20.560Z,38.603,143.27,17.4,5.6,142 km ESE of Kamaishi Japan -2011-03-10T08:59:19.820Z,38.558,143.353,25.3,4.9,151 km ESE of Kamaishi Japan -2011-03-10T09:02:23.960Z,38.616,143.122,38.5,5.3,131 km SE of Kamaishi Japan -2011-03-10T09:26:35.010Z,38.568,143.406,21.6,4.5,154 km ESE of Kamaishi Japan -2011-03-10T11:21:09.150Z,38.586,143.038,24.8,5.1,126 km ESE of ?funato Japan -2011-03-10T11:29:38.720Z,38.25,143.239,20.8,4.7,160 km SE of ?funato Japan -2011-03-10T14:45:31.940Z,39.213,143.378,29.7,4.4,126 km ESE of Yamada Japan -2011-03-10T16:54:45.020Z,38.046,143.296,3.7,5,178 km SE of ?funato Japan -2011-03-10T21:49:47.920Z,38.491,143.112,40.6,4.7,137 km ESE of ?funato Japan -2011-03-10T22:44:25.400Z,38.778,143.051,33.6,4.9,116 km ESE of Kamaishi Japan -2011-03-10T22:45:09.090Z,38.654,143.392,35,4.4,149 km ESE of Kamaishi Japan -2011-03-11T01:41:26.930Z,38.517,143.381,10.9,4.2,156 km ESE of Kamaishi Japan -2011-03-11T04:12:32.680Z,38.191,143.154,32.2,4.2,159 km SE of Ōfunato Japan diff --git a/experiments/japan_2011/fetch_usgs_raw.sh b/experiments/japan_2011/fetch_usgs_raw.sh deleted file mode 100644 index 7138dce..0000000 --- a/experiments/japan_2011/fetch_usgs_raw.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -RAW_DATA_DIR="${SCRIPT_DIR}/data/raw" -OUTPUT_FILE="${RAW_DATA_DIR}/usgs_japan_2006_2011_raw.csv" - -mkdir -p "${RAW_DATA_DIR}" - -USGS_QUERY_URL="https://earthquake.usgs.gov/fdsnws/event/1/query" - -TARGET_LATITUDE="38.297" -TARGET_LONGITUDE="142.373" -ANALYSIS_RADIUS_KM="500" - -START_TIME="2006-03-10T05:46:24Z" - -# One second before the target earthquake prevents the target -# from entering the downloaded precursor catalog. -END_TIME="2011-03-11T05:46:23Z" - -MINIMUM_MAGNITUDE="2.5" - -echo "Downloading USGS Japan precursor catalog..." -echo "Output: ${OUTPUT_FILE}" - -curl \ - --fail \ - --location \ - --silent \ - --show-error \ - --get \ - "${USGS_QUERY_URL}" \ - --data-urlencode "format=csv" \ - --data-urlencode "starttime=${START_TIME}" \ - --data-urlencode "endtime=${END_TIME}" \ - --data-urlencode "latitude=${TARGET_LATITUDE}" \ - --data-urlencode "longitude=${TARGET_LONGITUDE}" \ - --data-urlencode "maxradiuskm=${ANALYSIS_RADIUS_KM}" \ - --data-urlencode "minmagnitude=${MINIMUM_MAGNITUDE}" \ - --data-urlencode "eventtype=earthquake" \ - --data-urlencode "orderby=time-asc" \ - --output "${OUTPUT_FILE}" - -if [[ ! -s "${OUTPUT_FILE}" ]]; then - echo "USGS returned an empty catalog." >&2 - exit 1 -fi - -LINE_COUNT="$(wc -l < "${OUTPUT_FILE}")" - -echo "Download complete." -echo "Rows including header: ${LINE_COUNT}" -echo "Raw catalog: ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/japan_2011/normalize_catalog.sh b/experiments/japan_2011/normalize_catalog.sh deleted file mode 100644 index fa53492..0000000 --- a/experiments/japan_2011/normalize_catalog.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -RAW_CATALOG="${SCRIPT_DIR}/data/raw/usgs_japan_2006_2011_raw.csv" -NORMALIZED_DIRECTORY="${SCRIPT_DIR}/data/normalized" -NORMALIZED_CATALOG="${NORMALIZED_DIRECTORY}/catalog.csv" -NORMALIZER="${REPOSITORY_ROOT}/build/cameff_catalog_normalizer" - -if [[ ! -x "${NORMALIZER}" ]]; then - echo "Normalizer executable not found: ${NORMALIZER}" >&2 - echo "Build the project first using:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${RAW_CATALOG}" ]]; then - echo "Raw USGS catalog not found: ${RAW_CATALOG}" >&2 - echo "Run the acquisition script first:" >&2 - echo " ./experiments/japan_2011/fetch_usgs_raw.sh" >&2 - exit 1 -fi - -mkdir -p "${NORMALIZED_DIRECTORY}" - -"${NORMALIZER}" \ - "${RAW_CATALOG}" \ - "${NORMALIZED_CATALOG}" - -echo "Normalized catalog created:" -echo " ${NORMALIZED_CATALOG}" \ No newline at end of file diff --git a/experiments/japan_2011/results/japan_2011_hindcast.txt b/experiments/japan_2011/results/japan_2011_hindcast.txt deleted file mode 100644 index eaf126a..0000000 --- a/experiments/japan_2011/results/japan_2011_hindcast.txt +++ /dev/null @@ -1,52 +0,0 @@ -experiment_status=ok -experiment_status_code=0 -target_region=Near the east coast of Honshu, Japan -target_timestamp=1299822384 -target_latitude=38.297000 -target_longitude=142.373000 -target_depth_km=29.000000 -target_magnitude=9.100000 -observation_start=1268286384 -cutoff=1299822384 -analysis_center_latitude=38.297000 -analysis_center_longitude=142.373000 -analysis_radius_km=500.000000 -lookback_days=365 -minimum_events=20 -evidence_event_count=248 -hazard_evidence=0.791863 -fused_confidence=0.953926 -dominant_pattern=SUBDUCTION_PREPARATION -dominant_expert=baseline -signal.activity_rate.value=1.000000 -signal.activity_rate.confidence=1.000000 -signal.activity_rate.supporting_events=248 -signal.activity_rate.available=1 -signal.temporal_acceleration.value=0.870968 -signal.temporal_acceleration.confidence=1.000000 -signal.temporal_acceleration.supporting_events=248 -signal.temporal_acceleration.available=1 -signal.spatial_concentration.value=0.568845 -signal.spatial_concentration.confidence=1.000000 -signal.spatial_concentration.supporting_events=248 -signal.spatial_concentration.available=1 -signal.magnitude_trend.value=0.650000 -signal.magnitude_trend.confidence=1.000000 -signal.magnitude_trend.supporting_events=248 -signal.magnitude_trend.available=1 -signal.depth_migration.value=0.579540 -signal.depth_migration.confidence=1.000000 -signal.depth_migration.supporting_events=248 -signal.depth_migration.available=1 -signal.b_value_anomaly.value=0.822098 -signal.b_value_anomaly.confidence=1.000000 -signal.b_value_anomaly.supporting_events=248 -signal.b_value_anomaly.available=1 -signal.catalog_completeness.value=1.000000 -signal.catalog_completeness.confidence=1.000000 -signal.catalog_completeness.supporting_events=248 -signal.catalog_completeness.available=1 -signal.fault_map_confidence.value=0.500000 -signal.fault_map_confidence.confidence=1.000000 -signal.fault_map_confidence.supporting_events=0 -signal.fault_map_confidence.available=1 diff --git a/experiments/japan_2011/run_hindcast.sh b/experiments/japan_2011/run_hindcast.sh deleted file mode 100644 index 36fc9c7..0000000 --- a/experiments/japan_2011/run_hindcast.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" -REPORT_DIRECTORY="${SCRIPT_DIR}/results" -REPORT_FILE="${REPORT_DIRECTORY}/japan_2011_hindcast.txt" - -TARGET_TIME="2011-03-11T05:46:24Z" -OBSERVATION_START_TIME="2010-03-10T05:46:24Z" -CUTOFF_TIME="2011-03-10T05:46:24Z" - -TARGET_EPOCH="$( - date -u -d "${TARGET_TIME}" +%s -)" - -OBSERVATION_START_EPOCH="$( - date -u -d "${OBSERVATION_START_TIME}" +%s -)" - -CUTOFF_EPOCH="$( - date -u -d "${CUTOFF_TIME}" +%s -)" - -TARGET_LATITUDE="38.297" -TARGET_LONGITUDE="142.373" -TARGET_DEPTH_KM="29.0" -TARGET_MAGNITUDE="9.1" -TARGET_REGION="Near the east coast of Honshu, Japan" - -ANALYSIS_LATITUDE="38.297" -ANALYSIS_LONGITUDE="142.373" -ANALYSIS_RADIUS_KM="500" -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found: ${RUNNER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found: ${CATALOG}" >&2 - echo "Run these commands first:" >&2 - echo " ./experiments/japan_2011/fetch_usgs_raw.sh" >&2 - echo " ./experiments/japan_2011/normalize_catalog.sh" >&2 - exit 1 -fi - -mkdir -p "${REPORT_DIRECTORY}" - -"${RUNNER}" \ - "${CATALOG}" \ - "${TARGET_EPOCH}" \ - "${TARGET_LATITUDE}" \ - "${TARGET_LONGITUDE}" \ - "${TARGET_DEPTH_KM}" \ - "${TARGET_MAGNITUDE}" \ - "${TARGET_REGION}" \ - "${OBSERVATION_START_EPOCH}" \ - "${CUTOFF_EPOCH}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - | tee "${REPORT_FILE}" - -echo -echo "Hindcast report written to:" -echo " ${REPORT_FILE}" \ No newline at end of file diff --git a/experiments/japan_2011/run_threshold_sweep.sh b/experiments/japan_2011/run_threshold_sweep.sh deleted file mode 100644 index 43b3f35..0000000 --- a/experiments/japan_2011/run_threshold_sweep.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -VALIDATION_FILE="${SCRIPT_DIR}/results/japan_validation_windows.csv" -OUTPUT_FILE="${SCRIPT_DIR}/results/japan_threshold_sweep.csv" -SWEEP_EXECUTABLE="${REPOSITORY_ROOT}/build/cameff_threshold_sweep" - -if [[ ! -x "${SWEEP_EXECUTABLE}" ]]; then - echo "Threshold sweep executable not found:" >&2 - echo " ${SWEEP_EXECUTABLE}" >&2 - exit 1 -fi - -if [[ ! -f "${VALIDATION_FILE}" ]]; then - echo "Validation results not found:" >&2 - echo " ${VALIDATION_FILE}" >&2 - echo "Run the validation suite first." >&2 - exit 1 -fi - -"${SWEEP_EXECUTABLE}" \ - "${VALIDATION_FILE}" \ - | tee "${OUTPUT_FILE}" - -echo -echo "Threshold sweep written to:" -echo " ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/japan_2011/run_validation_suite.sh b/experiments/japan_2011/run_validation_suite.sh deleted file mode 100644 index 80fcc09..0000000 --- a/experiments/japan_2011/run_validation_suite.sh +++ /dev/null @@ -1,219 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -DETAIL_DIRECTORY="${RESULT_DIRECTORY}/windows" -SUMMARY_FILE="${RESULT_DIRECTORY}/japan_validation_windows.csv" - -ANALYSIS_LATITUDE="38.297" -ANALYSIS_LONGITUDE="142.373" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -mkdir -p "${DETAIL_DIRECTORY}" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found: ${RUNNER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found: ${CATALOG}" >&2 - echo "Run the acquisition and normalization scripts first." >&2 - exit 1 -fi - -extract_value() -{ - local key="$1" - local file="$2" - - awk -F= -v requested_key="${key}" ' - $1 == requested_key { - print substr($0, index($0, "=") + 1) - exit - } - ' "${file}" -} - -run_window() -{ - local case_id="$1" - local label="$2" - local observation_start_time="$3" - local cutoff_time="$4" - - local target_time="$5" - local target_depth="$6" - local target_magnitude="$7" - local target_region="$8" - - local observation_start_epoch - local cutoff_epoch - local target_epoch - - local report_file - - local experiment_status - local evidence_event_count - local hazard_evidence - local fused_confidence - local dominant_pattern - local dominant_expert - - observation_start_epoch="$( - date -u -d "${observation_start_time}" +%s - )" - - cutoff_epoch="$( - date -u -d "${cutoff_time}" +%s - )" - - target_epoch="$( - date -u -d "${target_time}" +%s - )" - - report_file="${DETAIL_DIRECTORY}/${case_id}.txt" - - echo "Running ${case_id}..." - - "${RUNNER}" \ - "${CATALOG}" \ - "${target_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${target_depth}" \ - "${target_magnitude}" \ - "${target_region}" \ - "${observation_start_epoch}" \ - "${cutoff_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - > "${report_file}" - - experiment_status="$( - extract_value "experiment_status" "${report_file}" - )" - - if [[ "${experiment_status}" != "ok" ]]; then - echo "Experiment failed for ${case_id}." >&2 - cat "${report_file}" >&2 - exit 1 - fi - - evidence_event_count="$( - extract_value "evidence_event_count" "${report_file}" - )" - - hazard_evidence="$( - extract_value "hazard_evidence" "${report_file}" - )" - - fused_confidence="$( - extract_value "fused_confidence" "${report_file}" - )" - - dominant_pattern="$( - extract_value "dominant_pattern" "${report_file}" - )" - - dominant_expert="$( - extract_value "dominant_expert" "${report_file}" - )" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${label}" \ - "${observation_start_time}" \ - "${cutoff_time}" \ - "${evidence_event_count}" \ - "${hazard_evidence}" \ - "${fused_confidence}" \ - "${dominant_pattern}" \ - "${dominant_expert}" \ - >> "${SUMMARY_FILE}" -} - -cat > "${SUMMARY_FILE}" <<'EOF' -case_id,label,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert -EOF - -# -# Negative controls use a reporting anchor 24 hours after the cutoff. -# The target fields are not passed into the CAMEFF signal evaluator. -# -run_window \ - "japan_2007_control" \ - "0" \ - "2006-03-10T05:46:24Z" \ - "2007-03-10T05:46:24Z" \ - "2007-03-11T05:46:24Z" \ - "0.0" \ - "0.0" \ - "Japan 2007 negative control" - -run_window \ - "japan_2008_control" \ - "0" \ - "2007-03-10T05:46:24Z" \ - "2008-03-10T05:46:24Z" \ - "2008-03-11T05:46:24Z" \ - "0.0" \ - "0.0" \ - "Japan 2008 negative control" - -run_window \ - "japan_2009_control" \ - "0" \ - "2008-03-10T05:46:24Z" \ - "2009-03-10T05:46:24Z" \ - "2009-03-11T05:46:24Z" \ - "0.0" \ - "0.0" \ - "Japan 2009 negative control" - -run_window \ - "japan_2010_control" \ - "0" \ - "2009-03-10T05:46:24Z" \ - "2010-03-10T05:46:24Z" \ - "2010-03-11T05:46:24Z" \ - "0.0" \ - "0.0" \ - "Japan 2010 negative control" - -run_window \ - "japan_2011_positive" \ - "1" \ - "2010-03-10T05:46:24Z" \ - "2011-03-10T05:46:24Z" \ - "2011-03-11T05:46:24Z" \ - "29.0" \ - "9.1" \ - "Near the east coast of Honshu Japan" - -echo -echo "Validation suite complete." -echo "Summary:" -echo " ${SUMMARY_FILE}" \ No newline at end of file diff --git a/experiments/milestone_3/results/cameff_b1_milestone_3_cases.csv b/experiments/milestone_3/results/cameff_b1_milestone_3_cases.csv deleted file mode 100644 index a1eabde..0000000 --- a/experiments/milestone_3/results/cameff_b1_milestone_3_cases.csv +++ /dev/null @@ -1,6 +0,0 @@ -case_id,region,label,predicted_label,evaluable,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert,outcome -japan_2011_positive,Japan,1,1,1,235,0.780870,0.953963,SUBDUCTION_PREPARATION,baseline,HIT -russia_2025_positive,Russia,1,1,1,626,0.850781,0.910297,SUBDUCTION_PREPARATION,baseline,HIT -cebu_2025_positive,Cebu,1,0,1,236,0.602291,0.841350,SUBDUCTION_PREPARATION,baseline,MISS -davao_2026_positive,Davao,1,0,1,906,0.685162,0.872197,SUBDUCTION_PREPARATION,baseline,MISS -venezuela_2026_positive,Venezuela,1,0,1,33,0.514422,0.954718,SUBDUCTION_PREPARATION,baseline,MISS diff --git a/experiments/milestone_3/results/cameff_b1_milestone_3_metrics.csv b/experiments/milestone_3/results/cameff_b1_milestone_3_metrics.csv deleted file mode 100644 index 950484f..0000000 --- a/experiments/milestone_3/results/cameff_b1_milestone_3_metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -threshold,tp,fp,tn,fn,not_evaluable,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy -0.73,2,0,16,3,4,1.000000,0.400000,1.000000,0.000000,0.571429,0.700000 diff --git a/experiments/milestone_3/results/cameff_b1_milestone_3_windows.csv b/experiments/milestone_3/results/cameff_b1_milestone_3_windows.csv deleted file mode 100644 index ceb4aab..0000000 --- a/experiments/milestone_3/results/cameff_b1_milestone_3_windows.csv +++ /dev/null @@ -1,26 +0,0 @@ -case_id,region,label,predicted_label,evaluable,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert,outcome -japan_2007_control,Japan,0,0,1,2006-03-10T05:46:24Z,2007-03-10T05:46:24Z,374,0.675643,0.921227,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -japan_2008_control,Japan,0,0,1,2007-03-10T05:46:24Z,2008-03-10T05:46:24Z,398,0.674909,0.952159,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -japan_2009_control,Japan,0,0,1,2008-03-10T05:46:24Z,2009-03-10T05:46:24Z,756,0.657043,0.955290,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -japan_2010_control,Japan,0,0,1,2009-03-10T05:46:24Z,2010-03-10T05:46:24Z,181,0.646327,0.878799,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -japan_2011_positive,Japan,1,1,1,2010-03-10T05:46:24Z,2011-03-10T05:46:24Z,235,0.780870,0.953963,SUBDUCTION_PREPARATION,baseline,HIT -russia_2021_control,Russia,0,0,1,2020-07-28T23:24:52Z,2021-07-28T23:24:52Z,199,0.693084,0.869401,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -russia_2022_control,Russia,0,0,1,2021-07-28T23:24:52Z,2022-07-28T23:24:52Z,139,0.624656,0.841027,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -russia_2023_control,Russia,0,0,1,2022-07-28T23:24:52Z,2023-07-28T23:24:52Z,214,0.652018,0.879407,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -russia_2024_control,Russia,0,0,1,2023-07-28T23:24:52Z,2024-07-28T23:24:52Z,155,0.610152,0.880167,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -russia_2025_positive,Russia,1,1,1,2024-07-28T23:24:52Z,2025-07-28T23:24:52Z,626,0.850781,0.910297,SUBDUCTION_PREPARATION,baseline,HIT -cebu_2021_control,Cebu,0,0,1,2020-09-29T13:59:43Z,2021-09-29T13:59:43Z,285,0.620113,0.872143,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -cebu_2022_control,Cebu,0,0,1,2021-09-29T13:59:43Z,2022-09-29T13:59:43Z,249,0.673822,0.847420,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -cebu_2023_control,Cebu,0,0,1,2022-09-29T13:59:43Z,2023-09-29T13:59:43Z,269,0.623293,0.861208,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -cebu_2024_control,Cebu,0,0,1,2023-09-29T13:59:43Z,2024-09-29T13:59:43Z,1184,0.535493,0.874117,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -cebu_2025_positive,Cebu,1,0,1,2024-09-29T13:59:43Z,2025-09-29T13:59:43Z,236,0.602291,0.841350,SUBDUCTION_PREPARATION,baseline,MISS -davao_2022_control,Davao,0,0,1,2021-06-06T23:37:41Z,2022-06-06T23:37:41Z,726,0.673393,0.867521,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -davao_2023_control,Davao,0,0,1,2022-06-06T23:37:41Z,2023-06-06T23:37:41Z,734,0.722294,0.861616,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -davao_2024_control,Davao,0,0,1,2023-06-06T23:37:41Z,2024-06-06T23:37:41Z,1391,0.614436,0.876635,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -davao_2025_control,Davao,0,0,1,2024-06-06T23:37:41Z,2025-06-06T23:37:41Z,597,0.628926,0.866145,SUBDUCTION_PREPARATION,baseline,TRUE_NEGATIVE -davao_2026_positive,Davao,1,0,1,2025-06-06T23:37:41Z,2026-06-06T23:37:41Z,906,0.685162,0.872197,SUBDUCTION_PREPARATION,baseline,MISS -venezuela_2022_control,Venezuela,0,NA,0,2021-06-23T22:05:11Z,2022-06-23T22:05:11Z,8,NA,NA,NOT_EVALUATED,NOT_EVALUATED,NOT_EVALUATED -venezuela_2023_control,Venezuela,0,NA,0,2022-06-23T22:05:11Z,2023-06-23T22:05:11Z,10,NA,NA,NOT_EVALUATED,NOT_EVALUATED,NOT_EVALUATED -venezuela_2024_control,Venezuela,0,NA,0,2023-06-23T22:05:11Z,2024-06-23T22:05:11Z,14,NA,NA,NOT_EVALUATED,NOT_EVALUATED,NOT_EVALUATED -venezuela_2025_control,Venezuela,0,NA,0,2024-06-23T22:05:11Z,2025-06-23T22:05:11Z,8,NA,NA,NOT_EVALUATED,NOT_EVALUATED,NOT_EVALUATED -venezuela_2026_positive,Venezuela,1,0,1,2025-06-23T22:05:11Z,2026-06-23T22:05:11Z,33,0.514422,0.954718,SUBDUCTION_PREPARATION,baseline,MISS diff --git a/experiments/milestone_3/run_aggregate_report.sh b/experiments/milestone_3/run_aggregate_report.sh deleted file mode 100644 index 069e89e..0000000 --- a/experiments/milestone_3/run_aggregate_report.sh +++ /dev/null @@ -1,385 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" - -NORMALIZED_WINDOWS_FILE="${RESULT_DIRECTORY}/cameff_b1_milestone_3_windows.csv" -CASE_SUMMARY_FILE="${RESULT_DIRECTORY}/cameff_b1_milestone_3_cases.csv" -METRICS_FILE="${RESULT_DIRECTORY}/cameff_b1_milestone_3_metrics.csv" -REPORT_FILE="${RESULT_DIRECTORY}/cameff_b1_milestone_3_report.txt" - -JAPAN_FILE="${REPOSITORY_ROOT}/experiments/japan_2011/results/japan_validation_windows.csv" -RUSSIA_FILE="${REPOSITORY_ROOT}/experiments/russia_2025/results/russia_validation_windows.csv" -CEBU_FILE="${REPOSITORY_ROOT}/experiments/cebu_2025/results/cebu_validation_windows.csv" -DAVAO_FILE="${REPOSITORY_ROOT}/experiments/davao_2026/results/davao_validation_windows.csv" -VENEZUELA_FILE="${REPOSITORY_ROOT}/experiments/venezuela_2026/results/venezuela_validation_windows.csv" - -FROZEN_THRESHOLD="0.73" -FORECAST_LEAD_HOURS="24" -EVIDENCE_WINDOW_DAYS="365" -ANALYSIS_RADIUS_KM="500" -MINIMUM_MAGNITUDE="2.5" -MINIMUM_EVENTS="20" - -mkdir -p "${RESULT_DIRECTORY}" - -require_file() -{ - local file="$1" - - if [[ ! -f "${file}" ]]; then - echo "Required validation file not found:" >&2 - echo " ${file}" >&2 - exit 1 - fi - - if [[ ! -s "${file}" ]]; then - echo "Required validation file is empty:" >&2 - echo " ${file}" >&2 - exit 1 - fi -} - -require_file "${JAPAN_FILE}" -require_file "${RUSSIA_FILE}" -require_file "${CEBU_FILE}" -require_file "${DAVAO_FILE}" -require_file "${VENEZUELA_FILE}" - -cat > "${NORMALIZED_WINDOWS_FILE}" <<'EOF' -case_id,region,label,predicted_label,evaluable,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert,outcome -EOF - -append_validation_file() -{ - local source_file="$1" - local region="$2" - - awk \ - -F, \ - -v OFS=',' \ - -v region="${region}" \ - -v threshold="${FROZEN_THRESHOLD}" ' - - FNR == 1 { - delete column - delete required_columns - - for (i = 1; i <= NF; i++) { - column[$i] = i - } - - required_columns[1] = "case_id" - required_columns[2] = "label" - required_columns[3] = "evidence_event_count" - required_columns[4] = "hazard_evidence" - required_columns[5] = "fused_confidence" - required_columns[6] = "dominant_pattern" - required_columns[7] = "dominant_expert" - - for (i = 1; i <= 7; i++) { - name = required_columns[i] - - if (!(name in column)) { - printf "Missing required column %s in %s\n", \ - name, FILENAME > "/dev/stderr" - exit 2 - } - } - - next - } - - { - case_id = $(column["case_id"]) - label = $(column["label"]) - event_count = $(column["evidence_event_count"]) - hazard = $(column["hazard_evidence"]) - confidence = $(column["fused_confidence"]) - pattern = $(column["dominant_pattern"]) - expert = $(column["dominant_expert"]) - - observation_start = \ - ("observation_start" in column) \ - ? $(column["observation_start"]) \ - : "NA" - - cutoff = \ - ("cutoff" in column) \ - ? $(column["cutoff"]) \ - : "NA" - - if ("predicted_label" in column) { - prediction = $(column["predicted_label"]) - } else if (hazard == "NA" || hazard == "") { - prediction = "NA" - } else if ((hazard + 0.0) >= (threshold + 0.0)) { - prediction = "1" - } else { - prediction = "0" - } - - evaluable = (prediction == "NA") ? "0" : "1" - - if (prediction == "NA") { - outcome = "NOT_EVALUATED" - } else if (label == "1" && prediction == "1") { - outcome = "HIT" - } else if (label == "1" && prediction == "0") { - outcome = "MISS" - } else if (label == "0" && prediction == "1") { - outcome = "FALSE_POSITIVE" - } else { - outcome = "TRUE_NEGATIVE" - } - - print \ - case_id, \ - region, \ - label, \ - prediction, \ - evaluable, \ - observation_start, \ - cutoff, \ - event_count, \ - hazard, \ - confidence, \ - pattern, \ - expert, \ - outcome - } - ' "${source_file}" >> "${NORMALIZED_WINDOWS_FILE}" -} - -append_validation_file "${JAPAN_FILE}" "Japan" -append_validation_file "${RUSSIA_FILE}" "Russia" -append_validation_file "${CEBU_FILE}" "Cebu" -append_validation_file "${DAVAO_FILE}" "Davao" -append_validation_file "${VENEZUELA_FILE}" "Venezuela" - -cat > "${CASE_SUMMARY_FILE}" <<'EOF' -case_id,region,label,predicted_label,evaluable,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert,outcome -EOF - -awk -F, -v OFS=',' ' - NR == 1 { - next - } - - $3 == "1" { - print \ - $1, \ - $2, \ - $3, \ - $4, \ - $5, \ - $8, \ - $9, \ - $10, \ - $11, \ - $12, \ - $13 - } -' "${NORMALIZED_WINDOWS_FILE}" >> "${CASE_SUMMARY_FILE}" - -awk \ - -F, \ - -v threshold="${FROZEN_THRESHOLD}" ' - NR == 1 { - next - } - - { - label = $3 - prediction = $4 - - if (prediction == "NA") { - not_evaluable++ - next - } - - if (label == "1" && prediction == "1") { - tp++ - } else if (label == "0" && prediction == "1") { - fp++ - } else if (label == "0" && prediction == "0") { - tn++ - } else if (label == "1" && prediction == "0") { - fn++ - } - } - - END { - if ((tp + fp) > 0) { - precision = sprintf("%.6f", tp / (tp + fp)) - } else { - precision = "NA" - } - - if ((tp + fn) > 0) { - recall = sprintf("%.6f", tp / (tp + fn)) - } else { - recall = "NA" - } - - if ((tn + fp) > 0) { - specificity = sprintf("%.6f", tn / (tn + fp)) - false_positive_rate = sprintf("%.6f", fp / (fp + tn)) - } else { - specificity = "NA" - false_positive_rate = "NA" - } - - if (precision != "NA" && recall != "NA") { - precision_value = precision + 0.0 - recall_value = recall + 0.0 - - if ((precision_value + recall_value) > 0.0) { - f1 = sprintf("%.6f", 2.0 * precision_value * recall_value / (precision_value + recall_value)) - } else { - f1 = "0.000000" - } - } else { - f1 = "NA" - } - - if (recall != "NA" && specificity != "NA") { - balanced_accuracy = sprintf("%.6f", ((recall + 0.0) + (specificity + 0.0)) / 2.0) - } else { - balanced_accuracy = "NA" - } - - print "threshold,tp,fp,tn,fn,not_evaluable,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy" - - printf "%s,%d,%d,%d,%d,%d,%s,%s,%s,%s,%s,%s\n", \ - threshold, tp, fp, tn, fn, not_evaluable, \ - precision, recall, specificity, false_positive_rate, \ - f1, balanced_accuracy - } -' "${NORMALIZED_WINDOWS_FILE}" > "${METRICS_FILE}" - -METRICS_ROW="$( - awk -F, ' - NR == 2 { - print - exit - } - ' "${METRICS_FILE}" -)" - -if [[ -z "${METRICS_ROW}" ]]; then - echo "Aggregate metrics row was not generated." >&2 - exit 1 -fi - -IFS=',' read -r \ - METRIC_THRESHOLD \ - METRIC_TP \ - METRIC_FP \ - METRIC_TN \ - METRIC_FN \ - METRIC_NOT_EVALUABLE \ - METRIC_PRECISION \ - METRIC_RECALL \ - METRIC_SPECIFICITY \ - METRIC_FALSE_POSITIVE_RATE \ - METRIC_F1 \ - METRIC_BALANCED_ACCURACY \ - <<< "${METRICS_ROW}" - -{ - echo "CAMEFF b1.0.0 Milestone 3 Consolidated Validation Report" - echo "=======================================================" - echo - echo "Frozen validation configuration" - echo "-------------------------------" - echo "Warning threshold: ${FROZEN_THRESHOLD}" - echo "Forecast lead time: ${FORECAST_LEAD_HOURS} hours" - echo "Evidence window: ${EVIDENCE_WINDOW_DAYS} days" - echo "Analysis radius: ${ANALYSIS_RADIUS_KM} km" - echo "Minimum catalog magnitude: M${MINIMUM_MAGNITUDE}" - echo "Minimum evidence events: ${MINIMUM_EVENTS}" - echo - echo "Positive-case outcomes" - echo "----------------------" - - awk -F, ' - NR == 1 { - next - } - - { - printf "%-26s region=%-11s score=%-10s confidence=%-10s outcome=%s\n", \ - $1, $2, $7, $8, $11 - } - ' "${CASE_SUMMARY_FILE}" - - echo - echo "Aggregate confusion counts" - echo "--------------------------" - echo "True positives: ${METRIC_TP}" - echo "False positives: ${METRIC_FP}" - echo "True negatives: ${METRIC_TN}" - echo "False negatives: ${METRIC_FN}" - echo "Not-evaluable windows: ${METRIC_NOT_EVALUABLE}" - echo - echo "Aggregate performance metrics" - echo "-----------------------------" - echo "Precision: ${METRIC_PRECISION}" - echo "Recall: ${METRIC_RECALL}" - echo "Specificity: ${METRIC_SPECIFICITY}" - echo "False-positive rate: ${METRIC_FALSE_POSITIVE_RATE}" - echo "F1 score: ${METRIC_F1}" - echo "Balanced accuracy: ${METRIC_BALANCED_ACCURACY}" - echo - echo "Scientific interpretation" - echo "-------------------------" - echo "CAMEFF detected the Japan 2011 and Russia 2025 positive cases." - echo "CAMEFF missed the Cebu 2025, Davao 2026, and Venezuela 2026" - echo "positive cases under the frozen threshold." - echo - echo "No false positives occurred among the sixteen evaluable" - echo "negative-control windows." - echo - echo "Four Venezuela control windows were not evaluable because" - echo "their evidence-event counts were below the frozen minimum" - echo "of ${MINIMUM_EVENTS} events." - echo - echo "All five positive cases selected SUBDUCTION_PREPARATION as" - echo "the dominant pattern and baseline as the dominant expert." - echo "This indicates insufficient tectonic-regime discrimination" - echo "and insufficient expert specialization in the current baseline." - echo - echo "The hazard-evidence value is an uncalibrated evidence score." - echo "It must not be interpreted as an earthquake-occurrence" - echo "probability." - echo - echo "Milestone 3 preserves these results as the frozen CAMEFF" - echo "b1.0.0 validation baseline. Architectural changes intended" - echo "to address the misses belong to Milestone 4." -} > "${REPORT_FILE}" - -echo "Milestone 3 aggregate report complete." -echo -echo "Normalized validation windows:" -echo " ${NORMALIZED_WINDOWS_FILE}" -echo -echo "Case summary:" -echo " ${CASE_SUMMARY_FILE}" -echo -echo "Aggregate metrics:" -echo " ${METRICS_FILE}" -echo -echo "Human-readable report:" -echo " ${REPORT_FILE}" \ No newline at end of file diff --git a/experiments/russia_2025/README.md b/experiments/russia_2025/README.md deleted file mode 100644 index d3b1d70..0000000 --- a/experiments/russia_2025/README.md +++ /dev/null @@ -1,161 +0,0 @@ -# Russia 2025 Kamchatka Hindcast Experiment - -This experiment evaluates the frozen CAMEFF b1.0.0 hindcast pipeline -against the 2025 Kamchatka Peninsula earthquake. - -## Target event - -* Time: 2025-07-29 23:24:52 UTC -* Latitude: 52.495 degrees north -* Longitude: 160.240 degrees east -* Depth: 35.0 km -* Magnitude: M8.8 -* Tectonic setting: subduction megathrust -* USGS event identifier: us6000qw60 - -## Frozen validation rules - -The rules inherited from the Japan validation are frozen before this -experiment is evaluated: - -* Warning threshold: 0.73 -* Forecast lead time: 24 hours -* Evidence window: 365 days -* Analysis radius: 500 km -* Minimum catalog magnitude: M2.5 -* Minimum evidence events: 20 - -The warning threshold must not be adjusted to fit the Russia result. - -## Validation catalog - -The extended catalog covers approximately five years and supports four -annual control windows followed by the positive 2025 window. - -Acquisition parameters: - -* Start: 2020-07-28 23:24:52 UTC -* End: 2025-07-29 23:24:51 UTC -* Centre: 52.495, 160.240 -* Radius: 500 km -* Minimum magnitude: M2.5 -* Event type: earthquake -* Ordering: ascending origin time - -The raw catalog ends one second before the target earthquake, preventing -the target event from entering the evidence data. - -## Download - -From the repository root: - -```bash -./experiments/russia_2025/fetch_usgs_raw.sh -``` - -The raw catalog is written to: - -```text -experiments/russia_2025/data/raw/usgs_kamchatka_2020_2025_raw.csv -``` - -## Normalize - -Build the utilities: - -```bash -cmake --build build -``` - -Normalize the catalog: - -```bash -./experiments/russia_2025/normalize_catalog.sh -``` - -The normalized catalog is written to: - -```text -experiments/russia_2025/data/normalized/catalog.csv -``` - -## Planned positive window - -* Evidence start: 2024-07-28 23:24:52 UTC -* Cutoff: 2025-07-28 23:24:52 UTC -* Target: 2025-07-29 23:24:52 UTC -* Lead time: 24 hours -* Expected label: positive - -## Planned controls - -* 2021 annual control -* 2022 annual control -* 2023 annual control -* 2024 annual control - -The control labels must be verified against the catalog before computing -final metrics. - -## Interpretation - -CAMEFF hazard evidence remains an uncalibrated evidence score. The Russia -case is an untouched generalization test of the threshold derived from -the Japan experiment. - -## Run the positive hindcast - -From the repository root: - -```bash -./experiments/russia_2025/run_hindcast.sh -``` - -The positive window uses a cutoff exactly twenty-four hours before the -M8.8 target earthquake. - -The report is written to: - -```text -experiments/russia_2025/results/russia_2025_hindcast.txt -``` - -## Run the validation suite - -Run four annual controls followed by the positive window: - -```bash -./experiments/russia_2025/run_validation_suite.sh -``` - -Inspect the results: - -```bash -column -s, -t \ - experiments/russia_2025/results/russia_validation_windows.csv -``` - -The `predicted_label` column is calculated using the frozen Japan-derived -threshold of 0.73. - -A value of `1` means CAMEFF issued a warning. A value of `0` means the -hazard score remained below the warning threshold. - -## Frozen-threshold metrics - -Generate the Russia metrics without tuning the threshold: - -```bash -./experiments/russia_2025/run_threshold_report.sh -``` - -Inspect the result: - -```bash -column -s, -t \ - experiments/russia_2025/results/russia_frozen_threshold_metrics.csv -``` - -The Russia experiment is an untouched generalization test. The threshold -must remain 0.73 regardless of whether the result is a hit, miss, false -positive, or true negative. diff --git a/experiments/russia_2025/data/normalized/catalog.csv b/experiments/russia_2025/data/normalized/catalog.csv deleted file mode 100644 index 3afc17d..0000000 --- a/experiments/russia_2025/data/normalized/catalog.csv +++ /dev/null @@ -1,1338 +0,0 @@ -time,latitude,longitude,depth,mag,region -2020-08-07T03:41:13.613Z,52.4192,159.0138,79.28,4.9,70 km SE of Vilyuchinsk Russia -2020-08-08T04:24:18.813Z,50.7806,156.9727,108.13,4.4,60 km E of Severo-Kuril’sk Russia -2020-08-09T22:40:07.467Z,51.0455,156.4928,115.24,4.5,48 km NNE of Severo-Kuril’sk Russia -2020-08-10T20:26:54.708Z,48.9648,157.9677,10,4.4,231 km SE of Severo-Kuril’sk Russia -2020-08-18T08:41:18.845Z,54.9121,162.2109,35.81,4.4,147 km S of Ust’-Kamchatsk Staryy Russia -2020-08-22T20:57:41.667Z,53.1547,160.1788,52.39,4.3,103 km E of Petropavlovsk-Kamchatsky Russia -2020-08-23T14:46:45.679Z,49.627,156.4855,35,4.3,119 km SSE of Severo-Kuril’sk Russia -2020-08-25T21:53:48.760Z,53.0322,159.8438,68.58,4.7,80 km E of Petropavlovsk-Kamchatsky Russia -2020-08-26T07:21:11.419Z,54.2648,160.5106,111.87,4.1,131 km ESE of Mil’kovo Russia -2020-08-28T15:15:58.286Z,55.445,162.7198,17.37,4.6,88 km S of Ust’-Kamchatsk Staryy Russia -2020-09-02T07:26:42.122Z,52.3395,157.4655,143.28,4.3,87 km SW of Paratunka Russia -2020-09-04T21:10:17.081Z,52.1823,160.305,35,4.7,147 km SE of Petropavlovsk-Kamchatsky Russia -2020-09-04T21:14:26.087Z,52.2126,160.1111,35,4.7,135 km SE of Petropavlovsk-Kamchatsky Russia -2020-09-04T21:50:20.209Z,52.4642,159.8857,35,4.4,105 km SE of Petropavlovsk-Kamchatsky Russia -2020-09-04T23:01:46.198Z,51.7968,160.1386,10,4.2,171 km SE of Petropavlovsk-Kamchatsky Russia -2020-09-05T00:21:26.360Z,52.3217,160.0393,35,4.7,123 km SE of Petropavlovsk-Kamchatsky Russia -2020-09-07T19:12:42.335Z,51.6975,160.2798,10,4.3,186 km SE of Petropavlovsk-Kamchatsky Russia -2020-09-09T22:11:29.562Z,50.9339,156.7518,90.49,4.4,52 km ENE of Severo-Kuril’sk Russia -2020-09-13T12:13:04.963Z,55.3467,163.0518,8.8,4.4,104 km SSE of Ust’-Kamchatsk Staryy Russia -2020-09-14T01:15:26.281Z,55.1185,164.8494,10,4.4,193 km SE of Ust’-Kamchatsk Staryy Russia -2020-09-14T07:43:30.445Z,55.559,160.7678,162.41,4.4,71 km E of Atlasovo Russia -2020-09-14T10:08:40.643Z,51.0578,157.1267,81.22,4.5,65 km SE of Ozernovskiy Russia -2020-09-15T03:41:28.036Z,55.9733,158.3783,344,6.4,21 km WNW of Esso Russia -2020-09-17T03:59:32.742Z,51.0481,157.7829,61.96,4.3,102 km ESE of Ozernovskiy Russia -2020-09-18T04:09:03.078Z,55.7134,161.3939,85.96,4.6,75 km SSE of Klyuchi Russia -2020-09-20T22:45:46.468Z,49.721,155.618,66.46,4.2,112 km SSW of Severo-Kuril’sk Russia -2020-09-25T21:41:25.305Z,49.1778,158.4838,10,4.5,237 km SE of Severo-Kuril’sk Russia -2020-09-26T22:58:41.252Z,54.4138,164.1174,10,4.5,227 km SSE of Ust’-Kamchatsk Staryy Russia -2020-09-27T14:55:51.591Z,49.4525,156.1905,35,4.4,136 km S of Severo-Kuril’sk Russia -2020-09-28T17:58:24.950Z,54.35,165.6807,10,4.3,291 km SE of Ust’-Kamchatsk Staryy Russia -2020-09-30T10:44:45.705Z,55.9581,161.5086,65.42,4.1,57 km SE of Klyuchi Russia -2020-10-01T14:57:32.858Z,55.0008,164.5571,10,4.5,189 km SE of Ust’-Kamchatsk Staryy Russia -2020-10-05T09:04:32.105Z,52.3137,158.8396,108.35,4.5,74 km SSE of Vilyuchinsk Russia -2020-10-09T13:09:59.380Z,50.9471,156.2853,118.92,4.4,32 km NNE of Severo-Kuril’sk Russia -2020-10-12T11:58:24.032Z,54.8798,164.6633,10,4.2,203 km SE of Ust’-Kamchatsk Staryy Russia -2020-10-17T15:51:02.135Z,55.9594,160.1372,151.31,4.2,19 km ESE of Kozyrëvsk Russia -2020-10-17T23:23:53.844Z,53.6779,161.4285,35,4.4,197 km ENE of Petropavlovsk-Kamchatsky Russia -2020-10-18T07:35:00.542Z,50.8618,156.1481,115.52,4.1,20 km N of Severo-Kuril’sk Russia -2020-10-21T00:26:14.008Z,53.4822,160.2604,61.75,4.3,117 km ENE of Petropavlovsk-Kamchatsky Russia -2020-10-22T17:39:48.783Z,48.8823,157.8827,10,4.5,236 km SSE of Severo-Kuril’sk Russia -2020-10-27T01:52:13.477Z,55.231,162.614,10,4.2,111 km S of Ust’-Kamchatsk Staryy Russia -2020-10-27T01:53:30.105Z,55.0334,162.8409,10,4.4,134 km S of Ust’-Kamchatsk Staryy Russia -2020-10-27T06:47:55.195Z,49.3704,156.1335,41.81,4.6,Kuril Islands -2020-10-27T07:05:52.284Z,49.3039,156.2941,45.21,4.2,153 km S of Severo-Kuril’sk Russia -2020-10-27T20:14:21.438Z,51.6608,158.7959,53.69,4,143 km S of Vilyuchinsk Russia -2020-11-08T02:20:43.134Z,55.9693,163.1105,10,4.3,48 km SE of Ust’-Kamchatsk Staryy Russia -2020-11-09T20:26:07.070Z,55.6829,161.6813,79.45,4.1,78 km SW of Ust’-Kamchatsk Staryy Russia -2020-11-11T02:53:49.935Z,51.6017,156.6214,138.31,4.3,14 km NE of Ozernovskiy Russia -2020-11-13T05:09:53.495Z,55.7695,161.6413,75.5,4.4,72 km SW of Ust’-Kamchatsk Staryy Russia -2020-11-13T22:18:15.481Z,50.7149,157.0441,69.26,4.3,64 km E of Severo-Kuril’sk Russia -2020-11-19T08:11:36.626Z,50.2392,155.7922,129.53,4.2,54 km SSW of Severo-Kuril’sk Russia -2020-11-22T08:52:58.529Z,55.5031,161.8338,88.2,4.5,90 km SSW of Ust’-Kamchatsk Staryy Russia -2020-11-23T15:40:21.279Z,56.1017,164.498,10,4.5,126 km E of Ust’-Kamchatsk Staryy Russia -2020-11-24T14:48:18.259Z,54.7846,162.4411,10,4.3,160 km S of Ust’-Kamchatsk Staryy Russia -2020-11-27T18:45:10.215Z,49.997,156.371,52.26,5.3,77 km SSE of Severo-Kuril’sk Russia -2020-11-27T22:57:16.291Z,52.1488,159.7571,35,4.5,124 km SE of Petropavlovsk-Kamchatsky Russia -2020-11-28T02:54:04.757Z,52.2729,159.763,43.21,4.5,114 km SE of Petropavlovsk-Kamchatsky Russia -2020-11-30T14:46:24.453Z,53.9734,158.4556,167.35,4.5,81 km S of Mil’kovo Russia -2020-12-09T13:08:50.915Z,55.944,160.1521,232.23,4.3,21 km ESE of Kozyrëvsk Russia -2020-12-09T16:37:34.686Z,49.4305,156.0736,57.19,4.4,138 km S of Severo-Kuril’sk Russia -2020-12-10T12:32:22.930Z,51.0125,156.3027,148.56,4.1,39 km NNE of Severo-Kuril’sk Russia -2020-12-11T08:09:14.743Z,54.2298,161.8479,10,4,208 km SE of Atlasovo Russia -2020-12-14T04:09:45.628Z,56.0332,163.6169,10,4.3,74 km ESE of Ust’-Kamchatsk Staryy Russia -2020-12-14T04:16:05.153Z,55.9833,163.7701,10,4.6,84 km ESE of Ust’-Kamchatsk Staryy Russia -2020-12-20T23:27:04.924Z,49.2568,155.8718,42.66,4.5,158 km S of Severo-Kuril’sk Russia -2020-12-22T12:08:58.675Z,53.1786,159.7354,74.69,4.2,74 km E of Petropavlovsk-Kamchatsky Russia -2021-01-05T14:34:20.766Z,50.2279,155.1981,159.67,4.1,82 km SW of Severo-Kuril’sk Russia -2021-01-05T23:59:38.822Z,54.8592,164.7188,10,4.1,207 km SE of Ust’-Kamchatsk Staryy Russia -2021-01-11T12:56:43.448Z,52.7477,158.7786,78.4,4.5,32 km SE of Vilyuchinsk Russia -2021-01-14T09:09:30.926Z,54.6664,161.0428,68.18,4.2,137 km SE of Atlasovo Russia -2021-01-15T17:32:54.767Z,56.0568,164.6155,10,4.7,Komandorskiye Ostrova Russia region -2021-01-17T08:31:53.235Z,54.0443,161.9609,10,5.1,228 km ESE of Mil’kovo Russia -2021-01-24T13:49:14.954Z,55.5573,160.4599,10,4.4,51 km E of Atlasovo Russia -2021-02-03T10:20:20.196Z,55.0269,165.6441,10,4.9,240 km SE of Ust’-Kamchatsk Staryy Russia -2021-02-11T21:09:48.778Z,53.8241,160.5972,46.07,4.6,155 km ENE of Petropavlovsk-Kamchatsky Russia -2021-02-12T22:28:38.952Z,55.3377,162.5708,35,4.2,99 km S of Ust’-Kamchatsk Staryy Russia -2021-02-15T09:02:24.484Z,53.95,158.5141,162.77,4,83 km S of Mil’kovo Russia -2021-02-15T22:24:31.407Z,54.7917,161.1203,48.34,4.1,130 km SE of Atlasovo Russia -2021-02-16T09:55:31.937Z,52.0567,157.0055,147.35,4.9,71 km NNE of Ozernovskiy Russia -2021-02-17T00:44:18.106Z,49.8426,156.1707,32.22,4.1,92 km S of Severo-Kuril’sk Russia -2021-02-20T03:38:46.254Z,53.9796,158.5575,161.61,4,79 km S of Mil’kovo Russia -2021-02-21T00:59:33.957Z,54.9955,160.9379,10,4.5,106 km SE of Atlasovo Russia -2021-03-02T15:20:08.892Z,53.5254,161.2018,35,4.5,178 km ENE of Petropavlovsk-Kamchatsky Russia -2021-03-04T07:52:37.341Z,54.7108,159.2684,133.2,4.2,41 km E of Mil’kovo Russia -2021-03-06T05:58:01.593Z,50.8612,157.5675,62.86,5.1,102 km SE of Ozernovskiy Russia -2021-03-06T15:25:45.321Z,50.0587,155.5273,99.73,4.6,80 km SSW of Severo-Kuril’sk Russia -2021-03-08T14:11:40.092Z,52.3692,160.789,10,4.4,162 km ESE of Petropavlovsk-Kamchatsky Russia -2021-03-13T05:40:04.031Z,54.8361,164.5361,10,5,202 km SE of Ust’-Kamchatsk Staryy Russia -2021-03-13T12:07:51.008Z,49.3957,157.3427,10,4.4,166 km SSE of Severo-Kuril’sk Russia -2021-03-16T18:38:21.233Z,54.7368,163.1803,13.23,6.6,171 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-16T19:22:19.596Z,54.9987,163.0697,10,5,141 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-16T19:27:46.315Z,54.7095,163.2488,10,4.6,175 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-16T19:50:26.336Z,54.878,163.1718,10,4.3,156 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-16T19:51:28.132Z,54.7196,163.025,17.91,5.4,171 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-16T20:40:04.987Z,54.8299,163.2234,10,4.4,162 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-16T22:52:24.730Z,55.1422,162.8284,10,4.1,122 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T00:01:28.256Z,54.8559,162.9044,10,4.4,155 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T00:14:52.043Z,55.1705,162.8503,13.33,4.3,120 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T00:54:33.773Z,54.9356,162.9796,10,4.2,147 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-17T03:16:35.052Z,54.9791,163.2529,10,4.4,147 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-17T08:14:40.835Z,55.0281,163.0968,10,4.2,139 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-17T09:49:28.134Z,54.9421,162.7549,10,4.6,144 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T10:24:59.745Z,54.6541,162.8481,10,4.6,176 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T12:32:16.483Z,54.5818,163.0547,10,4.8,186 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T12:32:42.270Z,54.6432,163.1002,10,4.8,180 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-17T12:49:53.661Z,54.6786,163.1311,10,4.7,177 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-17T20:06:34.605Z,55.006,163.2598,10,4.2,off the east coast of the Kamchatka Peninsula Russia -2021-03-17T23:14:19.534Z,55.0536,162.8206,10,4.4,132 km S of Ust’-Kamchatsk Staryy Russia -2021-03-17T23:49:03.873Z,54.7438,163.067,10,4.4,169 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T00:09:35.590Z,54.7005,163.5077,10,5.3,182 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T02:21:57.393Z,54.8741,163.221,10,5.1,157 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T02:38:12.197Z,54.8051,163.3009,10,4.8,166 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T02:48:29.746Z,54.8635,163.3884,10,5.1,162 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T02:54:25.886Z,54.7649,163.4268,10,4,173 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T02:59:05.271Z,54.9757,162.7401,10,4.9,140 km S of Ust’-Kamchatsk Staryy Russia -2021-03-18T09:35:55.465Z,55.0518,163.2549,10,4.1,139 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-18T19:46:50.750Z,54.9063,162.9642,10,4.1,150 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-19T03:16:32.454Z,55.2993,160.3733,10,5.3,57 km SE of Atlasovo Russia -2021-03-19T09:00:21.443Z,54.8078,163.3198,10,4.7,166 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-19T20:28:10.556Z,54.7639,163.4817,10,4.3,174 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-19T22:40:03.776Z,54.9093,162.5489,10,4.5,146 km S of Ust’-Kamchatsk Staryy Russia -2021-03-20T02:33:14.314Z,55.272,160.4132,10,4.5,61 km SE of Atlasovo Russia -2021-03-20T06:56:21.227Z,54.8597,163.2043,10,4.1,159 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-20T11:12:41.027Z,49.4673,155.7635,49,4,136 km S of Severo-Kuril’sk Russia -2021-03-20T11:49:19.637Z,49.1192,156.1623,36.66,4.9,173 km S of Severo-Kuril’sk Russia -2021-03-20T15:26:41.381Z,49.0702,156.2384,10,5.2,178 km S of Severo-Kuril’sk Russia -2021-03-20T18:02:46.649Z,54.6894,163.2251,10,4.5,177 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-20T20:22:21.566Z,55.2209,163.1969,10,4.1,120 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-21T02:27:12.133Z,55.2744,162.8733,10,4.1,109 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-21T20:58:16.708Z,49.2188,156.0157,35,4.4,162 km S of Severo-Kuril’sk Russia -2021-03-21T21:13:12.913Z,54.869,163.304,10,5,160 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-22T12:19:06.320Z,54.949,163.1205,10,4.2,148 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-22T22:24:51.548Z,50.3744,155.0999,140.44,4.8,80 km WSW of Severo-Kuril’sk Russia -2021-03-23T01:41:18.674Z,54.4776,163.5105,10,4.2,205 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-23T19:30:27.122Z,51.6025,156.8894,138.04,4,29 km ENE of Ozernovskiy Russia -2021-03-23T19:42:48.999Z,51.3725,159.6371,10,4.1,192 km SSE of Vilyuchinsk Russia -2021-03-25T11:09:38.219Z,54.9225,163.267,10,4.1,153 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-25T13:36:27.342Z,54.8184,163.2226,10,4.3,163 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-25T23:27:05.873Z,55.1072,163.3094,10,4.3,135 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-26T03:50:25.733Z,55.9201,162.7815,61.61,4.4,39 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-26T18:23:40.919Z,55.8476,163.567,34.82,4.6,80 km ESE of Ust’-Kamchatsk Staryy Russia -2021-03-26T20:29:33.550Z,55.92,162.7845,51.58,4.3,39 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-28T18:38:17.424Z,54.7682,162.2722,41.19,4.6,163 km S of Ust’-Kamchatsk Staryy Russia -2021-03-29T19:41:46.872Z,54.7239,163.0938,10,4.8,171 km SSE of Ust’-Kamchatsk Staryy Russia -2021-03-30T16:24:31.868Z,54.5363,163.3397,10,4.4,196 km SSE of Ust’-Kamchatsk Staryy Russia -2021-04-05T13:43:08.815Z,54.8121,163.3614,31.45,4.9,167 km SSE of Ust’-Kamchatsk Staryy Russia -2021-04-08T04:17:18.936Z,54.9016,162.9117,10,4.4,150 km S of Ust’-Kamchatsk Staryy Russia -2021-04-11T13:48:53.894Z,52.3436,158.4724,81.93,4.6,65 km S of Vilyuchinsk Russia -2021-04-14T00:50:59.902Z,53.6851,160.98,41.19,4.5,170 km ENE of Petropavlovsk-Kamchatsky Russia -2021-04-17T15:45:23.002Z,54.2392,160.3819,83.15,5,near the east coast of the Kamchatka Peninsula Russia -2021-04-18T00:34:25.190Z,50.2867,155.6802,126.12,4.6,53 km SW of Severo-Kuril’sk Russia -2021-04-20T06:16:29.690Z,49.6871,155.7409,84.34,4.1,113 km SSW of Severo-Kuril’sk Russia -2021-04-23T08:49:04.416Z,55.2229,163.1853,10,4.2,120 km SSE of Ust’-Kamchatsk Staryy Russia -2021-04-27T22:07:08.414Z,54.6737,161.2684,63.67,4.2,146 km SE of Atlasovo Russia -2021-04-27T23:35:45.127Z,54.7739,160.2695,115.43,4.1,100 km SSE of Atlasovo Russia -2021-05-03T15:19:57.804Z,53.8018,160.3851,71.99,4.5,142 km NE of Petropavlovsk-Kamchatsky Russia -2021-05-05T14:08:47.310Z,52.2075,158.8133,87.71,4.5,85 km SSE of Vilyuchinsk Russia -2021-05-06T19:53:20.236Z,53.6358,161.411,42.84,4.6,195 km ENE of Petropavlovsk-Kamchatsky Russia -2021-05-07T08:08:26.086Z,49.5341,155.6756,59.54,4.6,130 km SSW of Severo-Kuril’sk Russia -2021-05-08T00:38:15.985Z,50.6088,154.5886,190.5,4.5,109 km W of Severo-Kuril’sk Russia -2021-05-09T16:23:46.044Z,49.4005,155.8201,68.78,4.8,143 km S of Severo-Kuril’sk Russia -2021-05-10T08:10:08.559Z,53.8393,163.3878,10,4.7,272 km SSE of Ust’-Kamchatsk Staryy Russia -2021-05-10T16:53:26.063Z,54.7538,158.9569,205.88,4.6,22 km ENE of Mil’kovo Russia -2021-05-15T05:57:51.508Z,54.7814,164.5431,10,4.1,207 km SE of Ust’-Kamchatsk Staryy Russia -2021-05-18T18:43:35.531Z,49.1541,156.0033,42.69,4.3,169 km S of Severo-Kuril’sk Russia -2021-05-19T23:06:48.983Z,52.2903,160.4501,35,4.2,147 km SE of Petropavlovsk-Kamchatsky Russia -2021-05-26T12:55:55.729Z,56.1001,163.2989,10,4,52 km ESE of Ust’-Kamchatsk Staryy Russia -2021-05-27T01:39:58.556Z,55.0564,158.4642,275.98,4.1,41 km NNW of Mil’kovo Russia -2021-05-28T12:02:06.763Z,51.2794,158.3217,51.4,4.3,129 km ESE of Ozernovskiy Russia -2021-05-31T03:25:51.977Z,53.6981,161.6373,10,4.4,211 km ENE of Petropavlovsk-Kamchatsky Russia -2021-06-01T05:55:10.170Z,52.3765,159.5348,55.75,4.5,95 km SE of Petropavlovsk-Kamchatsky Russia -2021-06-01T08:08:53.510Z,50.9904,156.345,147.99,4.6,38 km NNE of Severo-Kuril’sk Russia -2021-06-01T13:14:38.639Z,53.4649,160.3093,52.44,4,120 km ENE of Petropavlovsk-Kamchatsky Russia -2021-06-02T09:38:15.393Z,51.1574,156.8287,94.69,4.2,44 km SSE of Ozernovskiy Russia -2021-06-03T04:31:02.082Z,52.9829,160.5673,35,4.5,128 km E of Petropavlovsk-Kamchatsky Russia -2021-06-06T16:01:41.439Z,50.2748,157.2415,57.42,5.1,90 km ESE of Severo-Kuril’sk Russia -2021-06-10T01:45:11.017Z,53.1231,159.8587,74.45,4.1,81 km E of Petropavlovsk-Kamchatsky Russia -2021-06-10T10:24:48.031Z,55.5817,160.4631,54.62,4.1,51 km E of Atlasovo Russia -2021-06-14T15:17:14.324Z,55.0566,164.7029,10,4.4,191 km SE of Ust’-Kamchatsk Staryy Russia -2021-06-14T23:15:26.229Z,55.0657,160.285,118.96,4.5,72 km SE of Atlasovo Russia -2021-06-19T17:05:03.104Z,55.5394,160.2656,182.75,4,39 km E of Atlasovo Russia -2021-06-23T18:08:16.705Z,53.7799,161.5456,32.22,4.1,209 km ENE of Petropavlovsk-Kamchatsky Russia -2021-07-02T13:35:22.113Z,52.442,153.2017,445.88,4.3,249 km WNW of Ozernovskiy Russia -2021-07-10T03:14:28.286Z,49.2822,155.2763,56.24,4.6,166 km SSW of Severo-Kuril’sk Russia -2021-07-12T11:41:27.964Z,55.97,164.4555,10,4.7,126 km ESE of Ust’-Kamchatsk Staryy Russia -2021-07-12T23:06:10.813Z,52.6155,160.4571,10,4.7,off the east coast of the Kamchatka Peninsula Russia -2021-07-13T02:28:55.227Z,52.4951,160.5061,14.55,5.2,141 km ESE of Petropavlovsk-Kamchatsky Russia -2021-07-14T02:42:56.010Z,52.3872,160.623,10,4.9,154 km ESE of Petropavlovsk-Kamchatsky Russia -2021-07-14T03:34:33.436Z,52.3876,160.6757,10,4.8,157 km ESE of Petropavlovsk-Kamchatsky Russia -2021-07-14T23:05:47.838Z,51.9306,156.0863,219.99,4.5,56 km NNW of Ozernovskiy Russia -2021-07-16T02:32:07.584Z,51.6981,158.8934,56.22,4.3,141 km SSE of Vilyuchinsk Russia -2021-07-16T14:07:39.464Z,56.1621,164.1189,10,4.3,102 km E of Ust’-Kamchatsk Staryy Russia -2021-07-18T22:21:02.878Z,49.1242,155.5578,35,4.4,177 km SSW of Severo-Kuril’sk Russia -2021-07-22T11:44:06.815Z,55.5433,162.0649,57.12,4.5,80 km SSW of Ust’-Kamchatsk Staryy Russia -2021-07-22T16:02:50.985Z,53.9704,158.4894,163.08,4.1,81 km S of Mil’kovo Russia -2021-07-26T16:11:23.172Z,53.1195,158.6161,139.3,5,6 km N of Petropavlovsk-Kamchatsky Russia -2021-07-27T12:42:57.273Z,52.1057,157.5446,133.47,4.1,98 km NE of Ozernovskiy Russia -2021-07-28T15:25:10.288Z,52.7845,160.7164,10,4.4,143 km ESE of Petropavlovsk-Kamchatsky Russia -2021-07-28T20:36:40.395Z,54.723,162.8814,10,4.3,169 km S of Ust’-Kamchatsk Staryy Russia -2021-07-29T07:05:15.455Z,51.0497,155.6778,172.86,4.2,52 km NW of Severo-Kuril’sk Russia -2021-08-03T23:38:27.094Z,53.3017,159.8916,61.1,4.2,88 km ENE of Petropavlovsk-Kamchatsky Russia -2021-08-05T13:41:09.705Z,52.4914,158.9595,46.08,4.2,61 km SE of Vilyuchinsk Russia -2021-08-06T01:57:19.294Z,53.4726,160.2934,59.35,4,120 km ENE of Petropavlovsk-Kamchatsky Russia -2021-08-07T19:29:25.832Z,54.5214,160.6358,89.79,4.3,131 km E of Mil’kovo Russia -2021-08-13T19:10:19.903Z,52.0718,158.5013,67.06,4.2,95 km S of Vilyuchinsk Russia -2021-08-16T03:39:06.507Z,54.5868,157.5995,265.58,4,67 km W of Mil’kovo Russia -2021-08-24T13:27:13.298Z,49.8837,156.1065,97.2,4.4,88 km S of Severo-Kuril’sk Russia -2021-08-27T03:19:29.568Z,55.3196,165.3167,10,4.7,204 km ESE of Ust’-Kamchatsk Staryy Russia -2021-08-27T19:09:35.246Z,53.7019,160.6547,56.86,4.1,152 km ENE of Petropavlovsk-Kamchatsky Russia -2021-09-01T11:36:05.556Z,51.8464,157.4999,117.89,4,79 km ENE of Ozernovskiy Russia -2021-09-09T22:44:08.160Z,54.3588,159.1038,136.01,4.1,48 km SE of Mil’kovo Russia -2021-09-10T08:39:54.835Z,53.9237,160.3119,74.09,4.3,139 km SE of Mil’kovo Russia -2021-09-14T19:57:31.559Z,53.8821,161.0762,45.9,4.9,183 km ESE of Mil’kovo Russia -2021-09-15T04:51:02.750Z,54.3982,162.7388,10,4.4,204 km S of Ust’-Kamchatsk Staryy Russia -2021-09-15T17:00:36.046Z,53.8527,161.0018,44.85,4.3,180 km ENE of Petropavlovsk-Kamchatsky Russia -2021-09-16T19:57:27.025Z,53.9206,160.193,78.2,4.1,133 km SE of Mil’kovo Russia -2021-09-18T11:17:19.587Z,50.4507,159.2762,10,4.5,224 km E of Severo-Kuril’sk Russia -2021-09-21T16:32:04.880Z,53.3796,159.5193,73.32,4.4,69 km ENE of Petropavlovsk-Kamchatsky Russia -2021-09-25T03:40:11.745Z,54.7744,161.5022,35,4.3,150 km SE of Atlasovo Russia -2021-09-25T13:36:13.201Z,55.3335,161.0889,97.79,4.4,96 km ESE of Atlasovo Russia -2021-09-28T18:28:09.949Z,54.7677,163.3348,10,4.2,171 km SSE of Ust’-Kamchatsk Staryy Russia -2021-10-01T22:03:08.925Z,55.7995,163.3993,10,4.5,74 km SE of Ust’-Kamchatsk Staryy Russia -2021-10-05T02:10:33.964Z,56.6023,163.2708,10,4.3,64 km NE of Ust’-Kamchatsk Staryy Russia -2021-10-06T13:06:12.774Z,49.6424,155.713,83.34,4.6,118 km SSW of Severo-Kuril’sk Russia -2021-10-06T14:30:38.896Z,52.7487,159.5665,60.48,4.3,72 km ESE of Petropavlovsk-Kamchatsky Russia -2021-10-12T04:33:02.237Z,52.8075,158.7053,118.22,4.1,24 km SE of Vilyuchinsk Russia -2021-10-12T14:12:29.498Z,51.8606,156.9662,129.79,4.5,51 km NE of Ozernovskiy Russia -2021-10-13T20:02:02.160Z,55.4864,161.6234,99.7,4,98 km SSW of Ust’-Kamchatsk Staryy Russia -2021-10-16T11:55:49.736Z,53.1984,162.3902,10,4.1,252 km E of Petropavlovsk-Kamchatsky Russia -2021-10-17T12:05:16.961Z,49.2442,155.9686,43.57,5,159 km S of Severo-Kuril’sk Russia -2021-10-17T15:17:05.894Z,49.2852,155.9014,54.56,4.5,155 km S of Severo-Kuril’sk Russia -2021-10-17T16:47:57.932Z,49.3056,155.8794,58.7,4.4,153 km S of Severo-Kuril’sk Russia -2021-10-17T17:39:14.595Z,49.1472,155.9331,35,5.1,Kuril Islands -2021-10-18T08:24:31.602Z,53.9814,158.6338,172.88,5.3,79 km S of Mil’kovo Russia -2021-10-25T09:05:53.100Z,53.2243,163.398,39.43,4.2,off the east coast of the Kamchatka Peninsula Russia -2021-10-25T23:39:22.236Z,49.834,155.7368,72.25,4.8,97 km SSW of Severo-Kuril’sk Russia -2021-10-26T13:07:53.849Z,52.6549,159.2897,64.27,4.5,63 km SE of Petropavlovsk-Kamchatsky Russia -2021-10-31T12:18:06.397Z,55.0093,165.7245,38.85,4.4,245 km SE of Ust’-Kamchatsk Staryy Russia -2021-11-01T01:14:21.909Z,52.7264,159.6091,51.87,4.3,75 km ESE of Petropavlovsk-Kamchatsky Russia -2021-11-01T02:18:57.312Z,54.5739,162.7327,10,4.3,184 km S of Ust’-Kamchatsk Staryy Russia -2021-11-02T01:25:54.875Z,54.4839,161.2282,61.7,4.4,160 km SE of Atlasovo Russia -2021-11-05T06:59:20.278Z,54.8814,164.6439,10,4.2,202 km SE of Ust’-Kamchatsk Staryy Russia -2021-11-05T12:12:14.302Z,52.7909,160.6865,38.88,4.5,141 km ESE of Petropavlovsk-Kamchatsky Russia -2021-11-05T12:44:34.204Z,52.7356,161.0545,7.2,4.5,167 km ESE of Petropavlovsk-Kamchatsky Russia -2021-11-05T15:27:14.262Z,50.0788,156.8498,80.39,4.8,83 km SE of Severo-Kuril’sk Russia -2021-11-06T09:37:22.731Z,53.6533,162.3484,10,4.5,256 km ENE of Petropavlovsk-Kamchatsky Russia -2021-11-07T17:28:03.099Z,52.8118,162.5548,10,4.3,265 km E of Petropavlovsk-Kamchatsky Russia -2021-11-11T02:25:05.947Z,53.9666,160.7391,52.18,4.6,159 km ESE of Mil’kovo Russia -2021-11-23T06:43:00.092Z,53.4922,160.4172,49.86,4.1,128 km ENE of Petropavlovsk-Kamchatsky Russia -2021-11-23T16:12:37.273Z,52.3871,157.2359,146.76,4.8,94 km SW of Paratunka Russia -2021-11-25T08:46:45.141Z,53.484,160.4673,46.15,4.3,131 km ENE of Petropavlovsk-Kamchatsky Russia -2021-11-26T04:48:07.826Z,49.9605,156.024,75.57,4.1,79 km S of Severo-Kuril’sk Russia -2021-12-07T17:31:58.619Z,55.2088,162.5504,60.63,4.3,113 km S of Ust’-Kamchatsk Staryy Russia -2021-12-08T21:07:11.905Z,55.7982,160.907,110.6,4.3,58 km S of Klyuchi Russia -2021-12-08T23:03:12.166Z,53.4128,159.8793,68.13,4.6,92 km ENE of Petropavlovsk-Kamchatsky Russia -2021-12-12T01:43:23.426Z,55.7001,162.2181,54.84,4.2,60 km SSW of Ust’-Kamchatsk Staryy Russia -2021-12-12T18:20:26.736Z,50.2584,156.9535,93.02,4.5,74 km SE of Severo-Kuril’sk Russia -2021-12-12T23:50:03.335Z,53.3714,153.1855,539.76,4.4,Sea of Okhotsk -2021-12-18T19:19:17.685Z,51.4028,156.9272,140.82,4,31 km ESE of Ozernovskiy Russia -2021-12-27T00:09:03.313Z,55.1045,162.7953,22.28,4,126 km S of Ust’-Kamchatsk Staryy Russia -2021-12-30T19:39:33.744Z,50.7238,156.4988,104.22,4.2,26 km ENE of Severo-Kuril’sk Russia -2021-12-31T07:54:01.653Z,55.3103,163.3125,10,4.2,114 km SSE of Ust’-Kamchatsk Staryy Russia -2022-01-01T03:34:34.373Z,51.1975,157.8335,68.2,4.6,98 km ESE of Ozernovskiy Russia -2022-01-05T05:45:20.264Z,56.0916,164.8598,10,4.6,148 km E of Ust’-Kamchatsk Staryy Russia -2022-01-05T07:22:26.524Z,56.0178,164.9692,9.2,5.2,156 km E of Ust’-Kamchatsk Staryy Russia -2022-01-08T17:29:28.183Z,49.0709,158.3723,10,4.4,240 km SE of Severo-Kuril’sk Russia -2022-01-11T03:34:10.016Z,52.7328,159.8049,66.46,4.6,87 km ESE of Petropavlovsk-Kamchatsky Russia -2022-01-12T00:37:03.855Z,54.016,160.388,10,4.2,near the east coast of the Kamchatka Peninsula Russia -2022-01-13T11:55:16.051Z,52.3064,159.5465,65.99,4.3,103 km SE of Vilyuchinsk Russia -2022-01-13T19:26:58.586Z,54.8627,164.6721,10,4.2,Komandorskiye Ostrova Russia region -2022-01-18T22:55:01.100Z,56.2367,162.7074,10,4.1,14 km E of Ust’-Kamchatsk Staryy Russia -2022-01-19T01:51:21.483Z,53.7743,160.7754,58.45,4.4,163 km ENE of Petropavlovsk-Kamchatsky Russia -2022-01-21T22:49:01.477Z,54.2719,158.5455,165.58,4.4,47 km S of Mil’kovo Russia -2022-01-23T13:01:43.436Z,49.3115,158.5493,10,4.3,230 km SE of Severo-Kuril’sk Russia -2022-01-24T16:27:21.570Z,54.9925,164.6122,10,4.3,192 km SE of Ust’-Kamchatsk Staryy Russia -2022-01-30T10:14:38.004Z,53.736,161.1118,44.13,4.7,181 km ENE of Petropavlovsk-Kamchatsky Russia -2022-02-03T07:01:29.412Z,53.5712,160.3904,47.21,4.4,130 km ENE of Petropavlovsk-Kamchatsky Russia -2022-02-08T00:58:42.807Z,54.8778,156.5205,10,4.8,136 km W of Mil’kovo Russia -2022-02-11T11:46:23.579Z,49.4892,155.0619,98.31,4.8,152 km SSW of Severo-Kuril’sk Russia -2022-02-21T03:40:12.658Z,52.9834,158.6783,108.13,4.5,9 km SSE of Petropavlovsk-Kamchatsky Russia -2022-02-25T13:48:42.963Z,55.0024,165.8986,27.77,5.3,255 km ESE of Ust’-Kamchatsk Staryy Russia -2022-02-26T03:13:57.954Z,49.7009,156.5043,70.9,4.3,111 km SSE of Severo-Kuril’sk Russia -2022-02-27T21:12:12.289Z,55.9684,165.0169,10,4.1,160 km ESE of Ust’-Kamchatsk Staryy Russia -2022-03-02T17:02:35.235Z,49.4744,155.7967,64.95,4.9,135 km S of Severo-Kuril’sk Russia -2022-03-03T04:23:19.503Z,53.3519,160.4784,35,4.7,127 km ENE of Petropavlovsk-Kamchatsky Russia -2022-03-09T00:58:20.160Z,53.8395,160.2634,70.09,4.5,near the east coast of the Kamchatka Peninsula Russia -2022-03-10T05:57:39.807Z,55.1497,162.2417,35,4.7,120 km S of Ust’-Kamchatsk Staryy Russia -2022-03-12T11:52:34.495Z,55.8895,163.0294,35,5,50 km SE of Ust’-Kamchatsk Staryy Russia -2022-03-14T11:27:43.014Z,50.9587,158.1552,40.25,4.8,130 km ESE of Ozernovskiy Russia -2022-03-14T11:50:10.639Z,51.0728,158.0917,49.88,4.5,120 km ESE of Ozernovskiy Russia -2022-03-16T23:02:08.261Z,51.072,158.0468,59.5,4.4,117 km ESE of Ozernovskiy Russia -2022-03-18T05:36:24.434Z,52.8677,156.3393,274.16,4.5,Kamchatka Peninsula Russia -2022-03-19T14:54:16.336Z,55.2596,161.8562,67.59,4.2,114 km SSW of Ust’-Kamchatsk Staryy Russia -2022-03-22T15:08:33.843Z,54.2224,159.7526,125.33,4,90 km SE of Mil’kovo Russia -2022-03-25T14:33:00.983Z,55.9973,164.9357,10,4.1,155 km E of Ust’-Kamchatsk Staryy Russia -2022-03-29T07:19:58.296Z,54.3241,161.1423,73.53,4,168 km ESE of Mil’kovo Russia -2022-03-29T10:02:24.149Z,52.9346,162.8742,10,4.1,285 km E of Petropavlovsk-Kamchatsky Russia -2022-04-02T11:22:01.912Z,55.6178,164.8562,35.25,4.6,163 km ESE of Ust’-Kamchatsk Staryy Russia -2022-04-03T14:46:41.774Z,53.1632,156.4878,264.46,4.1,120 km W of Paratunka Russia -2022-04-03T17:31:33.504Z,49.9807,155.774,87.68,4.4,81 km SSW of Severo-Kuril’sk Russia -2022-04-05T01:02:26.131Z,56.197,161.9365,10,4,33 km W of Ust’-Kamchatsk Staryy Russia -2022-04-06T05:40:31.359Z,55.1459,165.4093,10,4.3,220 km SE of Ust’-Kamchatsk Staryy Russia -2022-04-08T18:06:14.740Z,49.2678,156.1608,40.8,4.2,156 km S of Severo-Kuril’sk Russia -2022-04-09T18:26:32.551Z,54.572,161.499,55.78,4.2,165 km SE of Atlasovo Russia -2022-04-21T02:49:53.260Z,55.4934,162.3374,44.74,4,82 km S of Ust’-Kamchatsk Staryy Russia -2022-04-29T17:37:20.520Z,54.8939,163.1206,10,4.1,off the east coast of the Kamchatka Peninsula Russia -2022-04-29T19:47:03.760Z,55.7843,160.1035,192.2,4.2,32 km SSE of Kozyrëvsk Russia -2022-05-02T23:22:00.269Z,52.665,159.4115,61.59,4.3,68 km SE of Petropavlovsk-Kamchatsky Russia -2022-05-03T16:18:14.692Z,49.1135,158.3863,10,4.4,237 km SE of Severo-Kuril’sk Russia -2022-05-07T17:19:44.674Z,52.3632,160.9448,10,4.2,174 km ESE of Petropavlovsk-Kamchatsky Russia -2022-05-07T18:13:27.464Z,54.1305,163.2361,10,5.1,238 km SSE of Ust’-Kamchatsk Staryy Russia -2022-05-15T14:49:24.526Z,54.9019,161.8524,35,4.1,152 km SSW of Ust’-Kamchatsk Staryy Russia -2022-05-16T05:25:54.314Z,50.6505,156.1912,93.79,5.4,5 km ESE of Severo-Kuril’sk Russia -2022-05-16T05:32:20.778Z,50.3821,156.7739,79.66,4.5,56 km SE of Severo-Kuril’sk Russia -2022-05-23T20:47:57.863Z,54.1228,159.415,111.86,4.1,82 km SE of Mil’kovo Russia -2022-05-24T23:57:20.796Z,50.0669,154.9683,120.12,4.5,106 km SW of Severo-Kuril’sk Russia -2022-05-28T04:39:47.940Z,56.0015,162.8031,39.18,4.1,32 km SE of Ust’-Kamchatsk Staryy Russia -2022-06-03T00:57:03.520Z,56.0939,164.2632,10,4.2,111 km E of Ust’-Kamchatsk Staryy Russia -2022-06-09T10:30:35.190Z,54.7727,164.7231,10,4.1,215 km SE of Ust’-Kamchatsk Staryy Russia -2022-06-11T03:01:06.257Z,54.9936,160.3904,130.88,4.2,83 km SE of Atlasovo Russia -2022-06-12T20:09:07.280Z,56.2907,162.0551,13.347,4,27 km WNW of Ust’-Kamchatsk Staryy Russia -2022-06-12T21:59:50.635Z,54.5487,162.0747,35,4.2,188 km S of Ust’-Kamchatsk Staryy Russia -2022-06-17T22:22:59.317Z,52.9498,159.8038,65.25,4.7,79 km E of Petropavlovsk-Kamchatsky Russia -2022-06-18T19:39:24.119Z,53.4727,160.4036,52.42,4.6,126 km ENE of Petropavlovsk-Kamchatsky Russia -2022-06-23T01:45:16.505Z,50.6151,157.1732,30.5,5.1,74 km E of Severo-Kuril’sk Russia -2022-07-01T17:16:08.453Z,49.6639,155.4332,84.32,4,122 km SSW of Severo-Kuril’sk Russia -2022-07-02T10:45:39.889Z,54.4556,161.5268,52.03,4,near the east coast of the Kamchatka Peninsula Russia -2022-07-04T21:51:18.206Z,56.2674,162.0263,10,4.1,28 km W of Ust’-Kamchatsk Staryy Russia -2022-07-04T22:21:28.888Z,56.2734,162.1506,10,4.6,20 km WNW of Ust’-Kamchatsk Staryy Russia -2022-07-11T19:01:02.377Z,54.9024,160.4893,136.757,4,95 km SE of Atlasovo Russia -2022-07-21T06:51:57.325Z,55.8436,163.4325,10,4.7,73 km SE of Ust’-Kamchatsk Staryy Russia -2022-07-21T12:19:43.341Z,56.0651,163.4033,10,4.3,60 km ESE of Ust’-Kamchatsk Staryy Russia -2022-07-22T19:07:17.954Z,55.9198,164.2972,10,4.2,118 km ESE of Ust’-Kamchatsk Staryy Russia -2022-07-23T09:29:26.988Z,55.7767,164.3335,10,4.2,126 km ESE of Ust’-Kamchatsk Staryy Russia -2022-07-27T11:05:19.095Z,51.4452,157.0662,147.039,4.2,39 km E of Ozernovskiy Russia -2022-07-27T12:16:42.534Z,53.439,160.5087,45.041,4.5,132 km ENE of Petropavlovsk-Kamchatsky Russia -2022-07-27T12:27:54.363Z,53.5826,160.2987,54.67,4,125 km ENE of Petropavlovsk-Kamchatsky Russia -2022-07-28T00:26:53.997Z,49.5065,155.5395,65.681,4.3,136 km SSW of Severo-Kuril?sk Russia -2022-07-29T23:05:42.964Z,51.1629,160.9755,7,5.6,264 km SE of Vilyuchinsk Russia -2022-07-30T00:05:25.933Z,51.1555,160.9504,10,4.9,263 km SE of Vilyuchinsk Russia -2022-07-30T00:06:22.567Z,51.1589,160.8833,10,4.9,260 km SE of Vilyuchinsk Russia -2022-07-30T22:13:52.895Z,51.2498,160.9202,10,4.3,254 km SE of Vilyuchinsk Russia -2022-07-31T18:57:59.454Z,51.2677,161.0481,10,4.3,258 km SE of Vilyuchinsk Russia -2022-08-05T00:26:02.815Z,53.6265,161.7033,10,4.1,off the east coast of the Kamchatka Peninsula Russia -2022-08-05T12:35:59.888Z,51.2149,161.0887,10,4.4,265 km SE of Vilyuchinsk Russia -2022-08-06T11:48:01.619Z,51.1594,160.9103,10,5,261 km SE of Vilyuchinsk Russia -2022-08-06T21:11:39.149Z,55.7287,162.0648,90.337,4.4,61 km SSW of Ust’-Kamchatsk Staryy Russia -2022-08-15T07:09:18.485Z,52.1067,159.1256,51.408,4.8,103 km SSE of Vilyuchinsk Russia -2022-08-19T02:35:22.747Z,52.7003,158.0982,121.784,4.5,31 km SSW of Paratunka Russia -2022-08-21T23:15:57.625Z,55.3175,162.1838,53.594,4.9,103 km S of Ust’-Kamchatsk Staryy Russia -2022-08-25T08:36:05.800Z,55.5684,162.8587,57.378,4,77 km SSE of Ust’-Kamchatsk Staryy Russia -2022-08-26T10:20:47.959Z,52.4354,159.343,96.355,4.1,off the east coast of the Kamchatka Peninsula Russia -2022-08-27T09:20:23.740Z,51.8749,159.3562,35,4.6,134 km SSE of Vilyuchinsk Russia -2022-08-27T13:06:02.610Z,49.6608,156.0466,62.977,4.7,112 km S of Severo-Kuril’sk Russia -2022-08-27T23:47:15.498Z,51.7063,160.1017,10,4.7,178 km SE of Vilyuchinsk Russia -2022-08-28T12:10:42.456Z,51.6895,160.1218,10,4.2,181 km SE of Vilyuchinsk Russia -2022-08-28T12:19:08.809Z,51.7942,160.1661,10,4.8,174 km SE of Vilyuchinsk Russia -2022-09-02T05:22:32.121Z,55.5628,162.1435,65.073,4.3,near the east coast of the Kamchatka Peninsula Russia -2022-09-11T21:24:15.351Z,51.5401,157.34,130.821,4.8,58 km E of Ozernovskiy Russia -2022-09-12T13:27:21.297Z,51.8763,158.6489,80.408,4.3,118 km S of Vilyuchinsk Russia -2022-09-13T09:20:56.344Z,54.9191,157.8265,320.45,4,56 km WNW of Mil’kovo Russia -2022-09-15T11:17:22.882Z,56.4368,162.0907,9.814,4.1,33 km NW of Ust’-Kamchatsk Staryy Russia -2022-09-15T15:53:49.911Z,52.1069,159.1186,64.129,4.4,103 km SSE of Vilyuchinsk Russia -2022-09-17T20:18:01.170Z,55.8002,162.1713,55.082,4.4,51 km SSW of Ust’-Kamchatsk Staryy Russia -2022-09-20T21:44:40.137Z,51.133,157.8149,86.565,4.5,near the east coast of the Kamchatka Peninsula Russia -2022-09-21T09:22:21.193Z,54.879,159.8139,130.722,4.3,79 km ENE of Mil’kovo Russia -2022-09-23T07:08:59.001Z,49.7432,155.7637,59.477,4.5,106 km SSW of Severo-Kuril’sk Russia -2022-09-26T18:02:21.269Z,55.6688,160.0073,184.825,4.8,23 km ENE of Atlasovo Russia -2022-09-28T23:09:33.175Z,55.5421,160.5738,148.811,4.5,59 km E of Atlasovo Russia -2022-09-30T19:39:39.814Z,51.781,160.2577,10,4.5,off the east coast of the Kamchatka Peninsula Russia -2022-10-05T14:03:12.936Z,51.4214,159.8434,10,4.6,194 km SSE of Vilyuchinsk Russia -2022-10-09T01:53:09.028Z,53.156,161.6803,10,4.6,204 km E of Petropavlovsk-Kamchatsky Russia -2022-10-12T09:10:38.719Z,49.0467,157.9626,10,5,224 km SE of Severo-Kuril’sk Russia -2022-10-16T00:55:48.713Z,54.8858,162.9926,10,4.4,152 km SSE of Ust’-Kamchatsk Staryy Russia -2022-10-18T22:20:39.128Z,52.5675,160.3574,37.238,4.5,129 km ESE of Petropavlovsk-Kamchatsky Russia -2022-10-20T02:18:11.965Z,49.1774,158.4282,10,4.8,234 km SE of Severo-Kuril’sk Russia -2022-10-22T09:40:38.008Z,53.4525,161.7494,10,4.9,212 km E of Petropavlovsk-Kamchatsky Russia -2022-10-23T00:24:26.888Z,54.7062,161.5213,56.3,4.4,156 km SE of Atlasovo Russia -2022-10-27T02:26:49.699Z,55.826,160.98,149.762,4.5,55 km S of Klyuchi Russia -2022-10-28T11:26:42.309Z,55.5503,158.3764,319.6,4.3,Kamchatka Peninsula Russia -2022-11-01T04:33:30.236Z,49.2715,156.3764,35,4.3,157 km S of Severo-Kuril’sk Russia -2022-11-06T11:26:27.304Z,50.5668,154.5202,196.018,4.1,114 km W of Severo-Kuril’sk Russia -2022-11-07T07:20:15.839Z,52.1026,159.5449,42.473,4.9,120 km SE of Vilyuchinsk Russia -2022-11-07T10:56:29.626Z,52.2119,159.6515,47.307,5,116 km SE of Vilyuchinsk Russia -2022-11-09T12:51:38.637Z,49.3432,156.039,49.582,4.4,148 km S of Severo-Kuril’sk Russia -2022-11-10T15:05:44.004Z,55.7491,162.3068,35.229,4.3,54 km SSW of Ust’-Kamchatsk Staryy Russia -2022-11-15T06:21:01.712Z,54.514,164.3581,10,4.6,224 km SSE of Ust’-Kamchatsk Staryy Russia -2022-11-15T19:28:32.201Z,53.8698,157.6239,224.459,4.2,90 km NW of Yelizovo Russia -2022-11-18T08:33:28.440Z,53.1665,159.7119,67.524,4.9,near the east coast of the Kamchatka Peninsula Russia -2022-11-19T14:23:33.842Z,55.6887,162.5706,17.67,5,60 km S of Ust’-Kamchatsk Staryy Russia -2022-11-19T22:40:39.834Z,55.6778,162.5444,26.754,4.4,61 km S of Ust’-Kamchatsk Staryy Russia -2022-11-20T04:02:21.314Z,55.6832,162.4456,42.837,4.3,60 km S of Ust’-Kamchatsk Staryy Russia -2022-11-21T21:06:06.811Z,55.7948,162.3042,46.38,4.1,49 km SSW of Ust’-Kamchatsk Staryy Russia -2022-11-21T21:45:48.846Z,55.5111,162.8576,20.262,5.2,83 km SSE of Ust’-Kamchatsk Staryy Russia -2022-11-21T22:25:45.381Z,55.5485,162.6418,35.707,5.1,76 km S of Ust’-Kamchatsk Staryy Russia -2022-11-22T20:49:33.625Z,55.6035,162.576,44.122,4.5,near the east coast of the Kamchatka Peninsula Russia -2022-11-24T18:19:07.846Z,55.3015,162.5836,35,4.4,103 km S of Ust’-Kamchatsk Staryy Russia -2022-11-24T21:32:35.335Z,55.6792,162.4859,39.484,4.6,61 km S of Ust’-Kamchatsk Staryy Russia -2022-11-25T02:52:55.620Z,55.3775,162.4901,35,4.2,94 km S of Ust’-Kamchatsk Staryy Russia -2022-11-25T03:32:00.448Z,55.3639,162.5349,35,4.2,96 km S of Ust’-Kamchatsk Staryy Russia -2022-11-25T11:28:34.512Z,55.6603,162.566,35,4.5,near the east coast of the Kamchatka Peninsula Russia -2022-11-25T23:37:48.416Z,55.3407,162.5429,35,4.9,98 km S of Ust’-Kamchatsk Staryy Russia -2022-11-26T00:41:36.516Z,55.327,162.4035,31.438,4.2,100 km S of Ust’-Kamchatsk Staryy Russia -2022-11-26T00:42:28.563Z,55.3921,162.5773,36.647,4.4,93 km S of Ust’-Kamchatsk Staryy Russia -2022-11-26T03:32:13.464Z,55.3196,162.5848,35,4.1,near the east coast of the Kamchatka Peninsula Russia -2022-11-26T08:28:15.124Z,55.433,162.4686,45.575,4.3,88 km S of Ust’-Kamchatsk Staryy Russia -2022-11-26T09:23:12.476Z,55.3787,162.6024,37.426,4.1,94 km S of Ust’-Kamchatsk Staryy Russia -2022-11-26T18:44:06.319Z,49.3717,155.6283,65.577,5,149 km SSW of Severo-Kuril’sk Russia -2022-11-27T04:59:55.226Z,49.5075,155.4162,80.998,5.4,Kuril Islands -2022-11-27T10:53:31.199Z,55.6431,162.6371,40.948,4.7,65 km S of Ust’-Kamchatsk Staryy Russia -2022-11-28T17:10:39.902Z,48.7562,157.8273,10,4.3,246 km SSE of Severo-Kuril?sk Russia -2022-12-02T00:29:47.681Z,49.7468,155.8383,70.353,4.9,Kuril Islands -2022-12-04T04:08:05.312Z,54.6616,161.4113,53.621,4.4,154 km SE of Atlasovo Russia -2022-12-04T05:55:25.319Z,55.5246,162.1097,61.613,4,81 km SSW of Ust?-Kamchatsk Staryy Russia -2022-12-08T19:41:07.610Z,53.9738,159.8506,115.292,4.1,113 km SE of Mil’kovo Russia -2022-12-23T17:23:17.910Z,54.8507,160.0349,120.693,4.9,87 km SSE of Atlasovo Russia -2022-12-25T02:17:44.199Z,56.1109,160.9667,118.335,4.9,Kamchatka Peninsula Russia -2022-12-26T22:19:21.816Z,55.7075,160.239,186.798,4.4,39 km ENE of Atlasovo Russia -2022-12-26T22:34:59.993Z,52.7102,159.3624,110.935,4.1,63 km SE of Petropavlovsk-Kamchatsky Russia -2022-12-30T22:42:08.690Z,52.4068,160.3568,10,4.7,137 km ESE of Petropavlovsk-Kamchatsky Russia -2023-01-02T22:14:18.048Z,55.5136,162.0419,64.876,4.4,84 km SSW of Ust’-Kamchatsk Staryy Russia -2023-01-03T23:10:37.505Z,54.8918,160.494,128.728,4.4,96 km SE of Atlasovo Russia -2023-01-06T20:39:28.533Z,53.4499,160.7164,41.139,4.1,145 km ENE of Petropavlovsk-Kamchatsky Russia -2023-01-07T05:26:55.119Z,50.4949,156.4062,85.336,4.2,28 km SE of Severo-Kuril’sk Russia -2023-01-07T20:59:34.945Z,50.5111,155.2432,142.623,4.6,65 km WSW of Severo-Kuril’sk Russia -2023-01-08T14:09:02.278Z,55.9674,162.7364,41.863,4.6,near the east coast of the Kamchatka Peninsula Russia -2023-01-10T02:54:40.876Z,52.2201,159.8177,35,4.4,123 km SE of Petropavlovsk-Kamchatsky Russia -2023-01-12T05:15:57.219Z,56.1604,160.8794,134.189,4,17 km S of Klyuchi Russia -2023-01-14T19:54:29.985Z,55.18,162.8932,10,4.1,119 km SSE of Ust’-Kamchatsk Staryy Russia -2023-01-19T15:20:19.506Z,52.8221,152.9171,509.445,4.4,286 km WNW of Ozernovskiy Russia -2023-01-23T08:53:19.980Z,52.8405,159.9078,98.743,4.3,89 km ESE of Petropavlovsk-Kamchatsky Russia -2023-01-24T11:57:52.224Z,52.5155,160.2644,35,4.3,126 km ESE of Petropavlovsk-Kamchatsky Russia -2023-01-26T21:41:29.580Z,52.978,159.5062,56.333,4.2,59 km E of Petropavlovsk-Kamchatsky Russia -2023-01-27T20:43:54.996Z,50.0931,156.343,70.716,4.4,Kuril Islands -2023-01-28T17:35:55.472Z,52.2921,157.306,145.852,4.6,98 km SW of Paratunka Russia -2023-02-05T01:14:22.715Z,55.9057,162.6616,53.625,4.9,37 km SSE of Ust’-Kamchatsk Staryy Russia -2023-02-05T12:58:22.757Z,48.9265,157.3333,48.066,4.5,213 km SSE of Severo-Kuril’sk Russia -2023-02-07T06:45:42.149Z,49.1578,155.9024,23.552,5.3,169 km S of Severo-Kuril’sk Russia -2023-02-09T18:41:58.896Z,49.2042,155.9481,42.655,4.3,164 km S of Severo-Kuril’sk Russia -2023-02-10T05:52:50.362Z,55.6197,162.6046,53.373,4,68 km S of Ust’-Kamchatsk Staryy Russia -2023-02-14T23:34:29.660Z,55.084,162.0819,67.844,4.3,129 km S of Ust’-Kamchatsk Staryy Russia -2023-02-15T03:09:21.827Z,56.3529,162.9965,40.572,4.9,35 km ENE of Ust’-Kamchatsk Staryy Russia -2023-02-15T08:07:01.341Z,54.7177,161.4539,35,4.2,near the east coast of the Kamchatka Peninsula Russia -2023-02-17T21:29:52.822Z,53.1996,160.1056,35,4,100 km E of Petropavlovsk-Kamchatsky Russia -2023-02-18T07:22:19.546Z,53.6401,160.4061,85.673,4.3,near the east coast of the Kamchatka Peninsula Russia -2023-02-19T21:28:20.153Z,53.032,160.603,59.416,4.1,132 km E of Petropavlovsk-Kamchatsky Russia -2023-02-21T02:33:09.418Z,52.844,155.9942,273.332,4.4,152 km W of Paratunka Russia -2023-02-22T13:50:54.727Z,53.5021,159.9652,70.4,4.5,101 km ENE of Petropavlovsk-Kamchatsky Russia -2023-02-25T06:25:21.714Z,51.621,158.5476,65.236,4.9,142 km E of Ozernovskiy Russia -2023-02-26T13:49:15.572Z,54.5174,155.6276,435.126,4.1,194 km W of Mil’kovo Russia -2023-03-05T01:32:00.045Z,51.1216,159.6651,10,4.4,219 km SSE of Vilyuchinsk Russia -2023-03-05T06:08:12.699Z,55.8741,164.2253,42.289,4.2,115 km ESE of Ust’-Kamchatsk Staryy Russia -2023-03-08T04:38:14.593Z,49.9149,157.3424,35,4.2,121 km SE of Severo-Kuril’sk Russia -2023-03-08T06:03:36.276Z,50.0891,157.4709,39,5.6,115 km SE of Severo-Kuril’sk Russia -2023-03-08T16:10:50.651Z,51.4801,159.8688,16.869,4.9,189 km SSE of Vilyuchinsk Russia -2023-03-08T22:24:09.371Z,51.338,159.4903,10,4.1,off the east coast of the Kamchatka Peninsula Russia -2023-03-09T01:17:19.137Z,51.1129,159.6825,10,4.3,220 km SSE of Vilyuchinsk Russia -2023-03-09T02:06:51.030Z,51.468,159.845,10,4.9,190 km SSE of Vilyuchinsk Russia -2023-03-09T05:08:26.845Z,51.2662,159.7965,10,4.2,208 km SSE of Vilyuchinsk Russia -2023-03-09T05:40:12.038Z,51.4205,159.8541,10,4.5,195 km SSE of Vilyuchinsk Russia -2023-03-09T09:49:09.818Z,51.5836,159.8319,10,4.1,off the east coast of the Kamchatka Peninsula Russia -2023-03-09T10:31:40.057Z,51.5374,159.8042,10,4.5,182 km SSE of Vilyuchinsk Russia -2023-03-09T11:04:48.302Z,51.5572,159.8514,10,4.2,182 km SSE of Vilyuchinsk Russia -2023-03-10T10:20:50.860Z,51.2151,160.1594,10,4.3,225 km SSE of Vilyuchinsk Russia -2023-03-11T11:50:15.731Z,51.3475,159.4444,10,4.2,190 km SSE of Vilyuchinsk Russia -2023-03-14T10:01:14.443Z,51.6189,159.6598,10,4.9,169 km SSE of Vilyuchinsk Russia -2023-03-14T21:31:00.385Z,51.313,160.0092,10,4.1,210 km SSE of Vilyuchinsk Russia -2023-03-21T05:02:22.445Z,53.1491,159.9086,58.904,4.2,86 km E of Petropavlovsk-Kamchatsky Russia -2023-03-22T12:37:49.240Z,51.4978,159.5752,10,4.3,178 km SSE of Vilyuchinsk Russia -2023-03-23T10:38:45.166Z,51.6685,159.4444,49.401,4.2,off the east coast of the Kamchatka Peninsula Russia -2023-04-01T09:58:40.967Z,54.2953,159.86,110.901,4.2,91 km ESE of Mil’kovo Russia -2023-04-03T03:06:57.235Z,52.7227,158.4935,101,6.5,23 km SSE of Vilyuchinsk Russia -2023-04-06T01:42:49.126Z,53.2073,153.488,499.172,4,279 km NW of Ozernovskiy Russia -2023-04-07T02:22:40.894Z,49.8919,155.2524,85,5.8,107 km SW of Severo-Kuril’sk Russia -2023-04-07T14:41:49.379Z,49.8895,155.2029,112.446,4.6,109 km SW of Severo-Kuril’sk Russia -2023-04-09T01:24:05.595Z,50.7262,156.8459,111.586,4.3,Kuril Islands -2023-04-10T21:53:42.954Z,52.7196,158.6248,108.023,4,27 km SSE of Vilyuchinsk Russia -2023-04-11T11:39:19.331Z,52.7915,158.276,114.206,4.9,17 km SSW of Vilyuchinsk Russia -2023-04-15T11:35:42.857Z,52.833,158.2064,107.17,4.2,14 km SSW of Paratunka Russia -2023-04-15T12:43:12.918Z,55.693,160.8062,144.194,4.2,69 km S of Klyuchi Russia -2023-04-17T06:42:08.193Z,51.453,159.1743,31.368,4.3,172 km SSE of Vilyuchinsk Russia -2023-04-18T02:40:52.743Z,54.165,159.8676,108,5.6,100 km SE of Mil’kovo Russia -2023-04-19T19:16:04.984Z,51.5116,159.7468,10,5.1,off the east coast of the Kamchatka Peninsula Russia -2023-04-21T15:22:45.784Z,52.8586,158.1425,107.538,4.2,13 km SW of Paratunka Russia -2023-04-21T17:14:06.287Z,51.5531,159.4781,36.763,4.2,169 km SSE of Vilyuchinsk Russia -2023-04-21T22:07:29.478Z,51.6131,159.8978,10,4.1,178 km SE of Vilyuchinsk Russia -2023-04-22T12:47:55.549Z,54.5554,161.5388,35,4.1,near the east coast of the Kamchatka Peninsula Russia -2023-04-23T07:27:12.826Z,51.3716,159.7704,10,4.3,197 km SSE of Vilyuchinsk Russia -2023-04-26T18:56:06.360Z,49.3647,155.5921,67.767,4.6,150 km SSW of Severo-Kuril’sk Russia -2023-04-26T20:51:39.443Z,52.3637,159.3916,65.944,4.4,91 km SE of Vilyuchinsk Russia -2023-04-28T04:24:45.963Z,52.2836,159.6577,42.64,4.6,111 km SE of Petropavlovsk-Kamchatsky Russia -2023-04-30T01:14:17.319Z,56.5754,161.3613,10,4.3,42 km NE of Klyuchi Russia -2023-04-30T14:50:58.659Z,56.5889,161.0674,10,4.6,32 km NNE of Klyuchi Russia -2023-04-30T22:13:32.594Z,51.6617,156.7778,150.568,4.1,26 km NE of Ozernovskiy Russia -2023-05-01T01:45:33.989Z,56.6377,161.2751,10.28,4.3,44 km NE of Klyuchi Russia -2023-05-02T09:59:15.043Z,55.5019,162.8595,22.121,4.3,84 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-02T21:20:30.862Z,55.8101,160.7567,157.278,4,57 km S of Klyuchi Russia -2023-05-03T19:06:16.861Z,52.2951,159.5037,54.532,4.9,102 km SE of Vilyuchinsk Russia -2023-05-03T19:08:25.969Z,52.3087,159.5915,54.654,4.3,106 km SE of Vilyuchinsk Russia -2023-05-04T12:59:31.060Z,55.7829,162.8011,60.794,4.2,53 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-06T15:58:32.197Z,52.247,159.53,53.498,5.1,off the east coast of the Kamchatka Peninsula Russia -2023-05-06T18:48:18.240Z,50.7591,156.4747,112.162,4.1,26 km ENE of Severo-Kuril’sk Russia -2023-05-06T23:19:46.279Z,55.8609,161.7579,69.308,4.1,60 km SW of Ust’-Kamchatsk Staryy Russia -2023-05-07T23:54:35.896Z,52.1564,159.6891,35,4.1,122 km SE of Vilyuchinsk Russia -2023-05-08T21:54:49.965Z,55.5891,162.5146,47.059,4.2,71 km S of Ust’-Kamchatsk Staryy Russia -2023-05-09T08:35:32.541Z,55.4422,163.1735,10,4.6,97 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-09T14:09:05.407Z,51.2655,157.2224,143.429,4.5,56 km ESE of Ozernovskiy Russia -2023-05-11T04:00:02.551Z,54.4676,159.6,143.293,4,68 km ESE of Mil’kovo Russia -2023-05-11T04:48:50.377Z,55.2984,163.0971,10,4.8,110 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-11T12:03:17.739Z,55.361,163.0409,22.452,5,102 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-11T16:26:29.151Z,55.3898,163.0613,10,4.7,100 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-13T23:26:08.012Z,55.4361,162.8927,52.376,4.4,91 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-14T05:57:34.813Z,55.5815,161.4367,86.919,4.7,90 km SSE of Klyuchi Russia -2023-05-17T15:33:13.760Z,55.3064,163.097,33.937,4.2,109 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-18T09:45:48.481Z,55.4013,162.954,10,4.6,96 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-18T11:36:47.190Z,55.3713,162.9713,10,4.1,100 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-19T18:08:48.500Z,55.724,162.2132,49.966,4.2,58 km SSW of Ust’-Kamchatsk Staryy Russia -2023-05-20T18:00:00.413Z,54.3863,160.1961,102.016,4,107 km ESE of Mil’kovo Russia -2023-05-22T13:28:36.896Z,52.4844,160.1092,43.483,4.4,118 km ESE of Petropavlovsk-Kamchatsky Russia -2023-05-22T18:06:39.451Z,53.2156,153.3621,501.674,4.3,286 km NW of Ozernovskiy Russia -2023-05-27T06:48:11.754Z,54.3578,163.8456,10,4,225 km SSE of Ust’-Kamchatsk Staryy Russia -2023-05-28T01:17:42.334Z,54.3779,161.4794,55.777,4.5,near the east coast of the Kamchatka Peninsula Russia -2023-05-29T01:33:14.894Z,52.7641,159.2036,78.542,4.1,51 km SE of Petropavlovsk-Kamchatsky Russia -2023-05-30T20:00:56.160Z,52.8456,159.7977,51.478,4.3,82 km ESE of Petropavlovsk-Kamchatsky Russia -2023-05-31T08:14:25.515Z,53.0553,160.0508,50.537,4.4,95 km E of Petropavlovsk-Kamchatsky Russia -2023-05-31T14:01:45.334Z,55.3206,163.0997,10,5.5,108 km SSE of Ust’-Kamchatsk Staryy Russia -2023-06-01T22:15:02.600Z,51.2284,156.8797,110.206,4.4,39 km SE of Ozernovskiy Russia -2023-06-02T21:25:25.998Z,55.335,163.1707,10,4.3,108 km SSE of Ust’-Kamchatsk Staryy Russia -2023-06-06T16:25:56.907Z,49.681,155.6305,85.508,4.4,Kuril Islands -2023-06-08T21:18:21.676Z,55.3229,163.0302,10,4.8,106 km SSE of Ust’-Kamchatsk Staryy Russia -2023-06-09T01:04:53.365Z,55.3836,162.9908,44.35,4.5,near the east coast of the Kamchatka Peninsula Russia -2023-06-10T09:07:02.016Z,53.4697,160.4233,47.998,4.4,128 km ENE of Petropavlovsk-Kamchatsky Russia -2023-06-11T04:47:46.380Z,55.6213,160.9389,132.146,4.2,78 km S of Klyuchi Russia -2023-06-11T18:18:20.335Z,50.7381,155.5906,140.049,4.2,38 km W of Severo-Kuril’sk Russia -2023-06-12T21:06:55.227Z,55.3939,162.032,71.809,4.3,96 km SSW of Ust’-Kamchatsk Staryy Russia -2023-06-14T19:07:14.964Z,52.7173,157.2128,191.932,4.2,75 km WSW of Paratunka Russia -2023-06-15T07:50:48.760Z,52.7222,158.62,107.034,4.2,27 km SSE of Vilyuchinsk Russia -2023-06-16T01:57:08.875Z,55.6398,162.7385,35,4.2,67 km SSE of Ust’-Kamchatsk Staryy Russia -2023-06-17T11:01:28.769Z,49.4021,157.8014,10,4.2,185 km SE of Severo-Kuril’sk Russia -2023-06-19T01:27:04.997Z,56.727,161.2141,15.849,4.2,50 km NNE of Klyuchi Russia -2023-06-20T18:25:28.123Z,55.2618,163.0572,32.693,4.2,113 km SSE of Ust’-Kamchatsk Staryy Russia -2023-06-22T09:36:29.388Z,52.4172,160.1546,50.022,4.3,125 km SE of Petropavlovsk-Kamchatsky Russia -2023-06-23T22:46:47.532Z,54.7003,163.9301,10,4.2,193 km SSE of Ust’-Kamchatsk Staryy Russia -2023-06-28T07:41:04.160Z,55.6066,163.0748,45.817,4,78 km SSE of Ust’-Kamchatsk Staryy Russia -2023-07-01T09:15:01.085Z,49.8759,155.0264,132.655,5.3,118 km SW of Severo-Kuril’sk Russia -2023-07-02T22:04:01.529Z,53.6108,160.9479,46.478,4.1,166 km ENE of Petropavlovsk-Kamchatsky Russia -2023-07-04T02:48:26.766Z,56.2293,162.8382,51.225,4,22 km E of Ust’-Kamchatsk Staryy Russia -2023-07-07T02:51:24.562Z,52.4911,159.668,49.712,4.4,94 km SE of Petropavlovsk-Kamchatsky Russia -2023-07-08T12:02:37.472Z,53.6831,158.8171,136.364,4.3,near the east coast of the Kamchatka Peninsula Russia -2023-07-13T12:16:54.374Z,53.0943,156.5431,268.819,4.2,115 km W of Paratunka Russia -2023-07-18T04:25:45.830Z,53.9372,161.2796,35,4,off the east coast of the Kamchatka Peninsula Russia -2023-07-26T14:48:03.125Z,54.6413,160.6506,119.298,4,125 km SSE of Atlasovo Russia -2023-08-10T15:50:28.384Z,55.0727,163.1358,39.878,4.4,135 km SSE of Ust’-Kamchatsk Staryy Russia -2023-08-12T12:24:48.414Z,50.1105,157.3063,36.028,4.3,104 km SE of Severo-Kuril’sk Russia -2023-08-14T05:06:05.405Z,51.9708,157.5913,147.145,4.5,91 km NE of Ozernovskiy Russia -2023-08-15T13:05:51.526Z,49.1922,155.928,42.704,4.4,165 km S of Severo-Kuril’sk Russia -2023-08-15T15:00:43.545Z,49.2125,155.9804,38.014,4.6,163 km S of Severo-Kuril’sk Russia -2023-08-16T07:34:35.852Z,49.1942,156.1167,41.881,4.7,164 km S of Severo-Kuril’sk Russia -2023-08-16T11:14:32.342Z,51.0954,157.9657,61.039,4.1,111 km ESE of Ozernovskiy Russia -2023-08-16T15:02:40.455Z,49.3209,156.0464,20.597,5.3,150 km S of Severo-Kuril?sk Russia -2023-08-16T15:08:46.534Z,49.19,156.055,43.463,4.3,165 km S of Severo-Kuril’sk Russia -2023-08-16T15:11:51.605Z,49.2065,155.9953,38.943,4.7,163 km S of Severo-Kuril’sk Russia -2023-08-16T18:43:47.165Z,49.1492,156.2261,30.768,4.8,169 km S of Severo-Kuril’sk Russia -2023-08-22T03:32:36.703Z,53.6059,160.7555,35,4.1,154 km ENE of Petropavlovsk-Kamchatsky Russia -2023-08-27T08:48:26.949Z,50.1737,156.0058,106.937,4.3,56 km S of Severo-Kuril’sk Russia -2023-08-30T00:04:56.836Z,54.471,161.7712,40.27,4,185 km SE of Atlasovo Russia -2023-08-30T04:38:14.781Z,55.4374,162.654,35,4.8,88 km S of Ust’-Kamchatsk Staryy Russia -2023-08-30T08:02:13.337Z,52.9161,160.6281,32.932,4,135 km E of Petropavlovsk-Kamchatsky Russia -2023-08-31T15:19:14.403Z,49.9156,155.9794,84.535,4.4,85 km S of Severo-Kuril’sk Russia -2023-09-01T20:49:54.440Z,50.6792,156.313,137,6.1,13 km E of Severo-Kuril’sk Russia -2023-09-03T06:28:04.548Z,55.4244,162.4459,52.328,4.2,89 km S of Ust’-Kamchatsk Staryy Russia -2023-09-04T08:18:26.739Z,54.4432,160.3747,92.013,4.4,116 km ESE of Mil’kovo Russia -2023-09-06T12:11:31.818Z,55.2627,161.9582,59.575,4.1,112 km SSW of Ust’-Kamchatsk Staryy Russia -2023-09-07T16:27:27.142Z,55.1405,165.9893,10,4.5,251 km ESE of Ust’-Kamchatsk Staryy Russia -2023-09-07T23:02:17.320Z,56.2176,163.9087,10,4.8,88 km E of Ust’-Kamchatsk Staryy Russia -2023-09-07T23:07:47.867Z,56.2361,163.8025,10,4.8,82 km E of Ust’-Kamchatsk Staryy Russia -2023-09-13T09:16:08.273Z,48.8833,156.1449,29.599,4.6,199 km S of Severo-Kuril’sk Russia -2023-09-13T13:23:12.484Z,52.1419,158.8659,103.769,4.2,93 km SSE of Vilyuchinsk Russia -2023-09-15T15:54:23.580Z,56.241,163.4682,29.352,4.2,61 km E of Ust’-Kamchatsk Staryy Russia -2023-09-16T15:56:48.624Z,55.6374,160.012,186.721,4.3,23 km E of Atlasovo Russia -2023-09-17T23:18:47.818Z,55.9324,164.555,10,4.5,Komandorskiye Ostrova Russia region -2023-09-18T13:37:40.683Z,54.041,159.6407,107.657,4.6,98 km SE of Mil’kovo Russia -2023-09-21T12:54:58.466Z,49.5278,155.7624,69.396,4.5,130 km SSW of Severo-Kuril’sk Russia -2023-09-23T01:49:15.032Z,50.5456,156.5533,109.744,4.5,33 km ESE of Severo-Kuril’sk Russia -2023-09-25T02:44:15.528Z,53.2706,159.6706,73.43,4.2,73 km ENE of Petropavlovsk-Kamchatsky Russia -2023-09-30T08:57:48.081Z,54.8293,163.0468,10,4,159 km SSE of Ust’-Kamchatsk Staryy Russia -2023-10-08T22:22:57.063Z,53.4504,159.4038,114.708,4.3,67 km NE of Petropavlovsk-Kamchatsky Russia -2023-10-09T19:48:06.098Z,56.1716,162.88,10,4.3,25 km ESE of Ust’-Kamchatsk Staryy Russia -2023-10-09T22:32:11.063Z,52.7749,159.2742,77.257,4.3,54 km SE of Petropavlovsk-Kamchatsky Russia -2023-10-10T10:53:58.942Z,49.8483,155.7395,75.102,4.3,96 km SSW of Severo-Kuril’sk Russia -2023-10-12T04:15:43.570Z,54.6684,159.9163,112.845,4.2,83 km E of Mil’kovo Russia -2023-10-16T02:54:51.335Z,50.1301,154.646,160.243,4.2,121 km WSW of Severo-Kuril’sk Russia -2023-10-16T06:48:35.890Z,53.4531,160.2061,62.371,5.2,113 km ENE of Petropavlovsk-Kamchatsky Russia -2023-10-16T08:28:29.652Z,53.4665,160.0219,75.886,4.2,103 km ENE of Petropavlovsk-Kamchatsky Russia -2023-10-20T09:54:42.267Z,56.5411,163.1071,10,4.4,52 km NE of Ust’-Kamchatsk Staryy Russia -2023-10-24T04:45:25.440Z,53.6599,162.6796,10,4.2,277 km ENE of Petropavlovsk-Kamchatsky Russia -2023-10-24T15:34:49.097Z,54.4804,162.3156,10,4.8,194 km S of Ust’-Kamchatsk Staryy Russia -2023-10-26T16:05:12.882Z,56.0868,164.7796,10,5.9,143 km E of Ust’-Kamchatsk Staryy Russia -2023-10-27T08:53:13.563Z,52.2543,157.3015,138.238,4.9,100 km NNE of Ozernovskiy Russia -2023-10-27T13:34:20.505Z,51.1429,160.8875,10,4.3,261 km SE of Vilyuchinsk Russia -2023-10-28T19:11:02.281Z,53.6822,160.116,63.598,4.2,120 km NE of Petropavlovsk-Kamchatsky Russia -2023-10-30T05:02:31.219Z,55.8163,164.4847,10,4.8,133 km ESE of Ust’-Kamchatsk Staryy Russia -2023-11-03T18:32:14.876Z,50.0317,156.3754,65.215,5,73 km SSE of Severo-Kuril’sk Russia -2023-11-07T13:03:57.619Z,56.0022,163.3694,36.414,4.2,60 km ESE of Ust’-Kamchatsk Staryy Russia -2023-11-10T11:52:36.621Z,56.2722,162.4093,62.032,4.6,6 km NW of Ust’-Kamchatsk Staryy Russia -2023-11-10T17:10:23.728Z,50.876,155.5011,150.221,4.8,49 km WNW of Severo-Kuril’sk Russia -2023-11-13T21:49:12.574Z,52.6726,159.1301,62.995,4.5,55 km SE of Petropavlovsk-Kamchatsky Russia -2023-11-14T01:21:08.840Z,51.2382,157.5802,77.782,4.2,80 km ESE of Ozernovskiy Russia -2023-11-14T09:34:07.248Z,49.7787,155.9637,69.202,4.4,100 km S of Severo-Kuril’sk Russia -2023-11-15T06:46:56.483Z,52.7541,159.368,53.61,4.1,60 km SE of Petropavlovsk-Kamchatsky Russia -2023-11-16T15:19:05.645Z,53.3266,158.5943,127.471,4.4,20 km NE of Yelizovo Russia -2023-11-18T14:17:22.874Z,55.707,162.408,61.514,4.1,58 km S of Ust’-Kamchatsk Staryy Russia -2023-11-20T07:56:52.108Z,53.1051,159.3264,73.964,4.2,47 km E of Petropavlovsk-Kamchatsky Russia -2023-11-28T01:31:17.174Z,49.5649,155.9861,72.882,4.3,123 km S of Severo-Kuril’sk Russia -2023-12-02T17:22:35.546Z,51.5294,160.1572,21.126,4.5,196 km SE of Vilyuchinsk Russia -2023-12-10T08:51:37.000Z,51.228,156.532,154.336,4.6,29 km S of Ozernovskiy Russia -2023-12-10T18:40:41.959Z,52.9276,160.0507,55.511,4.2,96 km E of Petropavlovsk-Kamchatsky Russia -2023-12-11T18:32:40.355Z,49.6922,156.3109,61.976,4.1,110 km S of Severo-Kuril’sk Russia -2023-12-11T21:50:57.922Z,55.978,162.6598,59.729,4.5,30 km SSE of Ust’-Kamchatsk Staryy Russia -2023-12-17T17:49:07.807Z,54.6327,161.549,75.893,4.4,162 km SE of Atlasovo Russia -2023-12-22T11:26:03.235Z,51.6646,158.354,63.048,4.7,129 km E of Ozernovskiy Russia -2023-12-23T17:48:05.248Z,51.9532,158.955,41.862,5.8,115 km SSE of Vilyuchinsk Russia -2023-12-24T18:42:43.920Z,52.85,160.8894,25.692,5,153 km E of Petropavlovsk-Kamchatsky Russia -2023-12-27T18:52:52.803Z,53.4551,160.209,61.978,4.2,114 km ENE of Petropavlovsk-Kamchatsky Russia -2023-12-29T04:43:40.059Z,53.9755,157.3953,261.057,4,109 km NW of Yelizovo Russia -2023-12-30T15:16:40.757Z,52.8913,160.9044,32.669,4.2,154 km E of Petropavlovsk-Kamchatsky Russia -2023-12-31T12:04:00.157Z,52.8939,159.4924,71.322,4.3,61 km ESE of Petropavlovsk-Kamchatsky Russia -2024-01-05T02:55:05.727Z,54.2891,160.8493,56.37,4.1,151 km ESE of Mil’kovo Russia -2024-01-05T03:32:44.947Z,55.6494,162.4567,58.052,4.4,64 km S of Ust’-Kamchatsk Staryy Russia -2024-01-09T03:08:18.623Z,52.8033,161.0256,10,4.4,163 km E of Petropavlovsk-Kamchatsky Russia -2024-01-10T20:21:35.620Z,53.3867,160.1173,86.188,4.2,105 km ENE of Petropavlovsk-Kamchatsky Russia -2024-01-12T03:34:57.126Z,54.8693,160.4765,111.11,4.3,97 km SSE of Atlasovo Russia -2024-01-13T01:34:09.489Z,52.3781,160.8182,10,4.3,166 km ESE of Petropavlovsk-Kamchatsky Russia -2024-01-21T05:50:36.943Z,53.0914,160.264,58.186,4.9,109 km E of Petropavlovsk-Kamchatsky Russia -2024-01-23T20:42:30.108Z,53.5719,160.7313,46.298,4.2,151 km ENE of Petropavlovsk-Kamchatsky Russia -2024-01-24T04:56:25.023Z,53.4965,160.3844,55.748,4.6,126 km ENE of Petropavlovsk-Kamchatsky Russia -2024-01-27T15:22:22.032Z,55.9547,162.6991,53.991,4.2,33 km SSE of Ust’-Kamchatsk Staryy Russia -2024-01-31T03:35:26.063Z,50.0318,157.9431,10,4.1,147 km ESE of Severo-Kuril’sk Russia -2024-02-03T16:42:00.333Z,52.2444,160.1306,26.919,4.5,136 km SE of Petropavlovsk-Kamchatsky Russia -2024-02-06T17:58:47.594Z,55.6761,160.9063,164.054,4.1,71 km S of Klyuchi Russia -2024-02-07T10:38:52.239Z,55.0366,165.3235,10,4,222 km SE of Ust’-Kamchatsk Staryy Russia -2024-02-07T12:27:31.904Z,55.0862,165.2971,10,4.2,218 km SE of Ust’-Kamchatsk Staryy Russia -2024-02-09T18:26:51.167Z,55.1834,165.4284,10,4.6,218 km ESE of Ust’-Kamchatsk Staryy Russia -2024-02-10T20:29:05.243Z,53.4942,160.2256,60.759,4.1,116 km ENE of Petropavlovsk-Kamchatsky Russia -2024-02-14T20:34:59.760Z,52.3598,159.5246,50.877,4.3,98 km SE of Vilyuchinsk Russia -2024-02-14T20:45:46.685Z,52.2013,159.8183,43.556,4.5,125 km SE of Petropavlovsk-Kamchatsky Russia -2024-02-15T00:09:37.093Z,53.0539,160.4323,57.509,4,121 km E of Petropavlovsk-Kamchatsky Russia -2024-02-15T00:10:25.667Z,55.3292,164.4456,10,5.1,158 km SE of Ust’-Kamchatsk Staryy Russia -2024-02-15T03:09:34.304Z,52.4193,159.5275,60.345,4.1,94 km SE of Petropavlovsk-Kamchatsky Russia -2024-02-15T17:55:13.921Z,52.3729,159.5752,61.574,4.9,100 km SE of Petropavlovsk-Kamchatsky Russia -2024-02-16T19:13:35.556Z,54.8464,162.0964,54.402,4.2,155 km S of Ust’-Kamchatsk Staryy Russia -2024-02-17T06:51:18.808Z,50.6401,156.5649,90.868,4.2,31 km E of Severo-Kuril’sk Russia -2024-02-23T03:10:20.422Z,53.0507,159.4191,74.173,4.2,53 km E of Petropavlovsk-Kamchatsky Russia -2024-02-27T11:01:29.941Z,53.8656,160.4344,65.92,4.4,149 km NE of Petropavlovsk-Kamchatsky Russia -2024-03-10T17:03:34.779Z,52.2498,159.3971,69.824,4.3,101 km SE of Vilyuchinsk Russia -2024-03-12T02:32:03.278Z,51.1919,155.4693,179.063,4.2,73 km NW of Severo-Kuril’sk Russia -2024-03-17T23:31:19.600Z,49.8661,155.5609,113.651,4.1,98 km SSW of Severo-Kuril’sk Russia -2024-03-22T02:06:47.063Z,52.7458,153.2894,459.548,4.1,260 km WNW of Ozernovskiy Russia -2024-03-25T02:36:41.521Z,52.4275,163.5655,10,5.2,off the east coast of the Kamchatka Peninsula Russia -2024-03-26T10:34:26.351Z,55.7295,159.9521,199.373,4.7,23 km NE of Atlasovo Russia -2024-03-27T12:03:16.645Z,56.2151,162.8423,50.108,4,22 km E of Ust’-Kamchatsk Staryy Russia -2024-03-27T12:26:06.522Z,56.1723,162.9963,40.592,4.4,32 km E of Ust’-Kamchatsk Staryy Russia -2024-04-02T05:33:18.383Z,54.766,161.9459,45.745,4,166 km SSW of Ust’-Kamchatsk Staryy Russia -2024-04-07T21:31:03.881Z,50.5562,156.8962,64.634,4.2,56 km ESE of Severo-Kuril’sk Russia -2024-04-16T10:37:12.924Z,55.8402,164.6916,20.332,4.8,144 km ESE of Ust’-Kamchatsk Staryy Russia -2024-04-21T06:53:28.486Z,54.9736,160.8142,100.371,4.3,102 km SE of Atlasovo Russia -2024-04-27T03:29:57.064Z,53.4687,160.2798,57.883,4.1,119 km ENE of Petropavlovsk-Kamchatsky Russia -2024-04-27T23:04:44.091Z,50.9781,156.9188,87.994,4.1,64 km SSE of Ozernovskiy Russia -2024-04-29T20:08:57.849Z,51.3551,159.8129,10,4.2,200 km SSE of Vilyuchinsk Russia -2024-04-29T20:19:32.094Z,51.2626,159.4995,10,4.2,200 km SSE of Vilyuchinsk Russia -2024-04-29T20:22:04.993Z,51.2893,159.6762,10,4.8,202 km SSE of Vilyuchinsk Russia -2024-05-06T16:25:46.161Z,55.073,164.9525,10,4.4,201 km SE of Ust’-Kamchatsk Staryy Russia -2024-05-07T06:54:54.685Z,55.4189,164.8631,10,4.2,174 km ESE of Ust’-Kamchatsk Staryy Russia -2024-05-11T03:37:34.199Z,52.6532,158.92,81.146,4.5,46 km SE of Vilyuchinsk Russia -2024-05-12T11:02:26.478Z,56.1345,160.8277,144.194,4.8,20 km S of Klyuchi Russia -2024-05-12T20:11:14.892Z,56.2801,164.0972,10,4.4,100 km E of Ust’-Kamchatsk Staryy Russia -2024-05-14T15:02:22.389Z,52.627,158.7722,113.366,4.4,41 km SE of Vilyuchinsk Russia -2024-05-14T17:42:31.161Z,56.3107,161.5481,97.961,4.2,43 km E of Klyuchi Russia -2024-05-17T13:55:46.579Z,52.9949,159.1647,61.12,4.2,36 km ESE of Petropavlovsk-Kamchatsky Russia -2024-05-25T08:08:58.450Z,56.1888,163.5596,29.395,5.1,67 km E of Ust’-Kamchatsk Staryy Russia -2024-05-25T22:34:31.801Z,51.3066,156.8959,135.264,4.2,34 km SE of Ozernovskiy Russia -2024-05-27T00:47:30.659Z,52.3248,157.6272,125.315,5.2,82 km SSW of Paratunka Russia -2024-05-27T04:45:29.036Z,52.8806,159.4348,60.305,4.3,57 km ESE of Petropavlovsk-Kamchatsky Russia -2024-05-31T15:11:48.707Z,53.6615,161.3737,30.564,4.1,194 km ENE of Petropavlovsk-Kamchatsky Russia -2024-06-01T01:08:00.803Z,56.1812,160.6341,172.684,4.4,20 km SW of Klyuchi Russia -2024-06-02T21:57:55.095Z,55.2325,162.2767,71.365,4.2,111 km S of Ust’-Kamchatsk Staryy Russia -2024-06-08T09:12:57.657Z,53.8356,166.7335,10,4.3,Komandorskiye Ostrova Russia region -2024-06-13T05:30:07.633Z,55.5601,162.6666,49.606,4.9,75 km S of Ust’-Kamchatsk Staryy Russia -2024-06-16T16:24:06.627Z,53.8877,166.763,10,4.8,Komandorskiye Ostrova Russia region -2024-06-16T16:42:49.540Z,53.7285,166.8128,10,4.1,Komandorskiye Ostrova Russia region -2024-06-21T14:01:03.338Z,52.7324,159.1437,112.505,4.1,50 km SE of Petropavlovsk-Kamchatsky Russia -2024-06-23T07:45:39.587Z,53.5035,158.754,125.034,5.2,42 km NE of Yelizovo Russia -2024-06-23T18:39:06.606Z,55.4495,163.2248,10,4.2,98 km SSE of Ust’-Kamchatsk Staryy Russia -2024-06-27T11:12:02.388Z,49.2259,156.2518,44.581,4.5,161 km S of Severo-Kuril’sk Russia -2024-06-28T19:41:44.605Z,53.1538,158.6079,116.259,4.1,10 km N of Petropavlovsk-Kamchatsky Russia -2024-06-29T05:22:35.517Z,55.7126,164.5675,10,4.7,142 km ESE of Ust’-Kamchatsk Staryy Russia -2024-07-04T11:01:37.002Z,55.5907,162.5722,62.228,4.1,71 km S of Ust’-Kamchatsk Staryy Russia -2024-07-05T20:48:40.029Z,53.9906,161.8261,10,4.3,222 km ESE of Mil’kovo Russia -2024-07-07T11:55:34.116Z,55.5772,162.1534,53,5.5,75 km SSW of Ust’-Kamchatsk Staryy Russia -2024-07-07T20:15:49.810Z,55.6433,162.0058,74.037,5.5,71 km SSW of Ust’-Kamchatsk Staryy Russia -2024-07-08T13:33:50.848Z,55.6765,161.9319,71.576,4,70 km SSW of Ust’-Kamchatsk Staryy Russia -2024-07-13T05:26:42.856Z,49.313,155.2366,69.948,4.5,164 km SSW of Severo-Kuril’sk Russia -2024-07-14T04:41:27.608Z,55.5878,160.9249,157.976,4.3,80 km E of Atlasovo Russia -2024-07-18T20:00:47.525Z,54.7237,162.0059,32.865,4.2,170 km S of Ust’-Kamchatsk Staryy Russia -2024-07-20T18:02:45.133Z,52.9777,160.0231,47.925,4.1,94 km E of Petropavlovsk-Kamchatsky Russia -2024-07-20T23:22:37.023Z,51.6784,159.103,50.108,4.2,147 km SSE of Vilyuchinsk Russia -2024-07-26T20:48:05.874Z,53.2603,160.1915,62.2,4.2,106 km E of Petropavlovsk-Kamchatsky Russia -2024-08-09T21:17:56.633Z,55.1712,161.9324,60.325,4,122 km SSW of Ust’-Kamchatsk Staryy Russia -2024-08-15T23:19:00.304Z,53.6698,159.2847,132.87,4,80 km NNE of Petropavlovsk-Kamchatsky Russia -2024-08-17T02:00:54.987Z,53.5699,158.1563,173.13,5.2,44 km NNW of Yelizovo Russia -2024-08-17T19:10:26.820Z,52.9308,160.1331,29,7,102 km E of Petropavlovsk-Kamchatsky Russia -2024-08-17T19:21:39.065Z,52.8657,160.1627,35,5,105 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-17T19:37:41.398Z,53.104,160.0319,36.024,4.6,94 km E of Petropavlovsk-Kamchatsky Russia -2024-08-17T19:40:01.999Z,53.0144,160.0188,57.075,5.1,93 km E of Petropavlovsk-Kamchatsky Russia -2024-08-17T22:27:08.408Z,52.8622,160.1796,35,5.2,106 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-17T22:47:37.058Z,52.8549,160.0718,43.058,4.2,99 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-17T23:33:16.104Z,53.0925,160.1418,35,4.4,101 km E of Petropavlovsk-Kamchatsky Russia -2024-08-18T00:16:26.113Z,53.0001,159.7752,61.232,4.6,77 km E of Petropavlovsk-Kamchatsky Russia -2024-08-18T00:25:14.157Z,53.0304,159.6428,53.261,4.3,68 km E of Petropavlovsk-Kamchatsky Russia -2024-08-18T03:21:05.239Z,53.0768,159.5293,69.414,4.4,60 km E of Petropavlovsk-Kamchatsky Russia -2024-08-18T10:28:58.422Z,52.9577,159.9445,52.853,4.4,89 km E of Petropavlovsk-Kamchatsky Russia -2024-08-18T11:34:08.063Z,53.0948,159.8046,62.808,4.4,78 km E of Petropavlovsk-Kamchatsky Russia -2024-08-19T03:14:42.645Z,53.4152,159.9615,71.709,4.4,97 km ENE of Petropavlovsk-Kamchatsky Russia -2024-08-19T05:51:26.441Z,52.7581,160.6975,26.705,4.5,143 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-19T06:15:57.397Z,52.5146,160.5963,26.501,4.9,146 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-19T07:24:15.243Z,52.6734,160.3747,42.341,4.6,125 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-19T07:30:24.714Z,52.7213,160.8965,24.601,4.4,157 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-19T08:32:42.662Z,52.7572,160.2811,54.5,4.4,116 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-19T17:26:57.771Z,52.7874,160.4892,37.303,4.5,128 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-19T22:23:07.852Z,52.7914,160.8003,29.951,4.5,149 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-20T04:20:28.775Z,53.0954,159.8107,60.358,4.2,79 km E of Petropavlovsk-Kamchatsky Russia -2024-08-20T15:00:44.442Z,52.7676,161.0878,30.489,4.4,168 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-20T23:12:05.001Z,52.4702,160.8905,33.207,4.2,166 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-21T04:00:42.680Z,52.6288,160.6342,30.966,4.6,143 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-21T06:51:02.317Z,52.7603,161.0924,26.261,4.3,169 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-21T08:25:16.401Z,52.7361,160.9233,22.274,4.7,158 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-21T08:43:33.084Z,52.8355,161.112,27.806,4.3,168 km E of Petropavlovsk-Kamchatsky Russia -2024-08-21T14:17:21.109Z,54.2776,161.7883,36.696,4.3,201 km SE of Atlasovo Russia -2024-08-21T17:45:38.542Z,51.2829,157.921,67.455,4.4,101 km ESE of Ozernovskiy Russia -2024-08-21T21:47:44.997Z,52.8146,160.8938,48.692,4.3,154 km E of Petropavlovsk-Kamchatsky Russia -2024-08-21T23:30:34.769Z,52.8825,160.1271,30,5.5,102 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-23T05:06:51.283Z,52.7945,161.0424,30.242,5.3,165 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-23T05:39:11.976Z,52.4865,161.0993,37.448,4.4,178 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-23T07:09:38.554Z,52.807,160.8245,29.994,4.8,150 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-23T19:19:03.372Z,52.9204,160.9622,24.957,4.8,157 km E of Petropavlovsk-Kamchatsky Russia -2024-08-23T19:28:49.744Z,52.9488,160.7857,20.819,4.4,145 km E of Petropavlovsk-Kamchatsky Russia -2024-08-23T21:37:46.450Z,52.8334,160.8943,35,4.9,154 km E of Petropavlovsk-Kamchatsky Russia -2024-08-23T23:57:54.237Z,52.7736,160.8294,30.761,4.7,151 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-24T13:07:25.850Z,52.2497,160.8643,38.032,4.1,176 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-24T14:53:12.512Z,52.8552,160.88,19.156,4.5,153 km E of Petropavlovsk-Kamchatsky Russia -2024-08-25T11:07:31.408Z,52.8568,161.0943,10,2.9,167 km E of Petropavlovsk-Kamchatsky Russia -2024-08-26T01:32:03.147Z,52.9308,159.5193,67.36,4.9,61 km ESE of Petropavlovsk-Kamchatsky Russia -2024-08-26T06:24:30.261Z,55.688,164.4094,41.347,4.4,134 km ESE of Ust’-Kamchatsk Staryy Russia -2024-08-30T04:24:22.983Z,53.0016,160.3787,26,6,117 km E of Petropavlovsk-Kamchatsky Russia -2024-08-30T04:31:47.163Z,53.1284,160.5807,35,4.5,131 km E of Petropavlovsk-Kamchatsky Russia -2024-09-01T20:36:24.994Z,53.0462,160.2533,35,4.6,109 km E of Petropavlovsk-Kamchatsky Russia -2024-09-02T09:37:17.949Z,53.0594,159.9435,62.884,4.1,88 km E of Petropavlovsk-Kamchatsky Russia -2024-09-03T09:18:26.736Z,52.8816,160.292,35,4.7,113 km E of Petropavlovsk-Kamchatsky Russia -2024-09-04T07:53:58.104Z,53.0817,159.6751,73.214,4.3,70 km E of Petropavlovsk-Kamchatsky Russia -2024-09-08T10:17:12.356Z,54.3135,161.7581,54.035,4.9,197 km SE of Atlasovo Russia -2024-09-09T11:42:38.320Z,54.6558,164.1586,10,4.1,204 km SSE of Ust’-Kamchatsk Staryy Russia -2024-09-11T02:59:59.248Z,55.3599,160.3657,10,4.3,53 km ESE of Atlasovo Russia -2024-09-16T11:18:07.111Z,51.8344,160.4856,33,4.3,186 km SE of Petropavlovsk-Kamchatsky Russia -2024-09-17T11:56:26.514Z,55.7336,161.3056,99.014,4.8,71 km SSE of Klyuchi Russia -2024-09-20T06:15:55.668Z,52.7673,160.4681,47.424,4.7,128 km ESE of Petropavlovsk-Kamchatsky Russia -2024-09-21T18:23:38.587Z,53.1676,159.5593,75.219,4.1,63 km E of Petropavlovsk-Kamchatsky Russia -2024-09-22T05:50:15.017Z,53.1031,159.7415,65.793,4.2,74 km E of Petropavlovsk-Kamchatsky Russia -2024-09-24T00:22:22.865Z,51.7563,160.5295,10,4.2,194 km SE of Petropavlovsk-Kamchatsky Russia -2024-09-25T18:01:48.431Z,55.4405,163.7706,10,4.1,119 km SE of Ust’-Kamchatsk Staryy Russia -2024-09-27T04:19:41.879Z,52.737,160.3409,55.571,4.2,120 km ESE of Petropavlovsk-Kamchatsky Russia -2024-09-27T08:42:35.164Z,54.9844,162.784,10,4.5,139 km S of Ust’-Kamchatsk Staryy Russia -2024-09-27T22:22:50.828Z,53.9944,158.7924,145.775,4.6,78 km S of Mil’kovo Russia -2024-09-30T06:33:08.888Z,52.7284,154.4883,403.596,4,194 km NW of Ozernovskiy Russia -2024-09-30T12:21:58.340Z,53.0161,160.2468,30,5.9,108 km E of Petropavlovsk-Kamchatsky Russia -2024-09-30T15:19:29.087Z,52.7855,160.0792,61.892,4.4,102 km ESE of Petropavlovsk-Kamchatsky Russia -2024-09-30T23:38:49.797Z,52.7959,160.2562,41.733,4.4,113 km ESE of Petropavlovsk-Kamchatsky Russia -2024-10-01T10:11:49.130Z,52.7741,160.5177,25.218,4.9,131 km ESE of Petropavlovsk-Kamchatsky Russia -2024-10-01T10:38:35.449Z,52.9624,160.5625,43.319,4.2,130 km E of Petropavlovsk-Kamchatsky Russia -2024-10-04T17:20:23.634Z,55.1184,163.0499,10,4.3,128 km SSE of Ust’-Kamchatsk Staryy Russia -2024-10-06T11:05:16.659Z,52.9143,153.5908,443.569,4.1,253 km NW of Ozernovskiy Russia -2024-10-09T17:22:39.573Z,53.2163,159.748,69.123,4.5,76 km ENE of Petropavlovsk-Kamchatsky Russia -2024-10-11T12:54:16.246Z,55.2657,163.0803,24.308,4.5,113 km SSE of Ust’-Kamchatsk Staryy Russia -2024-10-12T00:18:24.243Z,55.3135,163.0251,10,4.8,107 km SSE of Ust’-Kamchatsk Staryy Russia -2024-10-12T03:50:37.992Z,55.3379,163.1218,10,5.3,106 km SSE of Ust’-Kamchatsk Staryy Russia -2024-10-12T03:58:24.883Z,55.3848,163.0711,10,4.5,100 km SSE of Ust’-Kamchatsk Staryy Russia -2024-10-14T15:52:02.322Z,52.6265,161.2256,10,4.4,181 km ESE of Petropavlovsk-Kamchatsky Russia -2024-10-16T03:27:50.657Z,49.2485,157.578,10,4.5,189 km SSE of Severo-Kuril’sk Russia -2024-10-19T03:31:50.807Z,52.0731,157.5026,130.692,4.3,94 km NE of Ozernovskiy Russia -2024-10-19T11:13:14.083Z,52.9277,160.1777,46.181,4.1,105 km E of Petropavlovsk-Kamchatsky Russia -2024-10-19T13:14:09.705Z,56.1715,160.7657,172.859,4.3,17 km SSW of Klyuchi Russia -2024-10-20T21:34:38.225Z,52.0046,158.9627,52.195,4.4,109 km SSE of Vilyuchinsk Russia -2024-10-21T05:32:14.064Z,54.7126,161.5926,46.338,4.4,159 km SE of Atlasovo Russia -2024-10-21T11:59:14.461Z,54.1641,159.4316,122.317,4.3,79 km SE of Mil’kovo Russia -2024-10-23T14:38:04.614Z,49.394,155.6369,40,6.2,146 km SSW of Severo-Kuril’sk Russia -2024-10-25T00:18:01.385Z,53.3336,159.674,58.675,4.4,76 km ENE of Petropavlovsk-Kamchatsky Russia -2024-10-26T16:19:58.921Z,54.1176,163.3783,10,4.2,241 km SSE of Ust’-Kamchatsk Staryy Russia -2024-10-27T04:49:49.007Z,54.6412,160.5356,90.891,5.2,121 km SSE of Atlasovo Russia -2024-10-29T00:46:55.068Z,52.1682,158.9505,71.722,4.1,92 km SSE of Vilyuchinsk Russia -2024-10-29T12:13:58.000Z,51.8725,157.8398,86.557,4.9,101 km ENE of Ozernovskiy Russia -2024-10-29T20:23:09.142Z,53.1514,159.6904,66.187,4.1,71 km E of Petropavlovsk-Kamchatsky Russia -2024-10-31T05:15:53.105Z,52.2764,159.6143,53.472,4.6,109 km SE of Vilyuchinsk Russia -2024-11-08T15:40:31.976Z,53.2388,159.5766,68.314,4.6,66 km ENE of Petropavlovsk-Kamchatsky Russia -2024-11-08T19:58:44.230Z,52.8872,160.6101,35,4.6,134 km E of Petropavlovsk-Kamchatsky Russia -2024-11-09T16:47:52.423Z,52.5977,160.6182,38.143,4.1,143 km ESE of Petropavlovsk-Kamchatsky Russia -2024-11-09T19:44:59.767Z,52.8021,160.6631,35.091,4,139 km ESE of Petropavlovsk-Kamchatsky Russia -2024-11-09T22:32:04.084Z,55.6256,165.2866,10,4.2,187 km ESE of Ust’-Kamchatsk Staryy Russia -2024-11-13T00:07:36.727Z,53.0708,159.3582,75.302,4.4,48 km E of Petropavlovsk-Kamchatsky Russia -2024-11-16T10:15:09.280Z,50.4642,154.0284,218.066,4.2,150 km W of Severo-Kuril’sk Russia -2024-11-16T13:47:35.807Z,53.1113,159.8822,56.37,5,84 km E of Petropavlovsk-Kamchatsky Russia -2024-11-17T03:59:31.713Z,56.5416,162.3929,10,4.1,35 km N of Ust’-Kamchatsk Staryy Russia -2024-11-18T03:07:41.731Z,53.0723,159.9681,59.337,4,89 km E of Petropavlovsk-Kamchatsky Russia -2024-11-20T10:24:03.574Z,53.1576,159.9079,60.656,4.2,86 km E of Petropavlovsk-Kamchatsky Russia -2024-11-23T21:03:58.732Z,52.8434,160.6579,44.828,4.3,138 km E of Petropavlovsk-Kamchatsky Russia -2024-11-26T03:11:02.578Z,55.395,162.6406,35,4,93 km S of Ust’-Kamchatsk Staryy Russia -2024-11-26T21:01:48.220Z,49.307,155.4628,51.585,5.4,159 km SSW of Severo-Kuril’sk Russia -2024-11-29T14:28:12.843Z,52.6309,159.6513,66.434,4.2,84 km SE of Petropavlovsk-Kamchatsky Russia -2024-11-29T22:29:18.476Z,53.2923,159.4806,108.317,4.3,62 km ENE of Petropavlovsk-Kamchatsky Russia -2024-11-29T22:46:17.689Z,50.3221,156.5221,66.238,4.3,48 km SE of Severo-Kuril’sk Russia -2024-12-01T22:59:03.125Z,53.8491,160.4747,72.902,4.7,150 km NE of Petropavlovsk-Kamchatsky Russia -2024-12-03T16:57:07.550Z,53.9198,160.4762,65.559,5,148 km SE of Mil’kovo Russia -2024-12-08T00:20:16.050Z,52.7008,159.9033,63.194,4.5,94 km ESE of Petropavlovsk-Kamchatsky Russia -2024-12-08T17:33:35.069Z,55.1037,161.5182,53.942,4.1,131 km ESE of Atlasovo Russia -2024-12-12T16:30:55.617Z,54.1609,158.4679,200.281,4.4,60 km S of Mil’kovo Russia -2024-12-13T11:09:38.881Z,50.0691,154.7876,149.483,4.2,116 km SW of Severo-Kuril’sk Russia -2024-12-14T16:41:16.981Z,51.2777,159.7429,10,4.3,205 km SSE of Vilyuchinsk Russia -2024-12-14T20:15:59.169Z,54.5924,160.2168,119.756,4.5,103 km E of Mil’kovo Russia -2024-12-15T21:42:38.965Z,52.864,160.2654,39.447,5.1,112 km ESE of Petropavlovsk-Kamchatsky Russia -2024-12-20T19:33:34.028Z,54.8464,161.7386,44.48,4.2,157 km ESE of Atlasovo Russia -2024-12-21T17:08:35.077Z,52.9145,159.5846,74.054,4,66 km ESE of Petropavlovsk-Kamchatsky Russia -2024-12-22T06:30:33.150Z,49.9101,157.6276,23.508,4,136 km SE of Severo-Kuril’sk Russia -2024-12-23T21:08:34.402Z,50.3876,155.3804,140.818,4.1,61 km WSW of Severo-Kuril’sk Russia -2024-12-26T04:43:14.576Z,53.7975,158.8514,144.516,4.1,74 km NNE of Yelizovo Russia -2024-12-27T18:12:58.838Z,53.1836,159.873,57.75,4,84 km E of Petropavlovsk-Kamchatsky Russia -2024-12-28T10:36:31.646Z,54.3968,163.0478,10,4.3,207 km S of Ust’-Kamchatsk Staryy Russia -2024-12-30T11:32:21.325Z,52.3358,160.7185,10,4.4,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-01-08T12:45:59.040Z,54.8175,159.8573,130.62,4.7,80 km E of Mil’kovo Russia -2025-01-08T20:28:10.480Z,55.6774,160.9238,111.948,3.9,71 km S of Klyuchi Russia -2025-01-11T13:45:49.458Z,50.5552,158.2921,26.769,4.1,153 km E of Severo-Kuril’sk Russia -2025-01-15T08:37:17.049Z,55.8505,162.2038,72.983,4,45 km SSW of Ust’-Kamchatsk Staryy Russia -2025-01-16T02:41:47.379Z,53.1169,159.8767,51.157,4.1,83 km E of Petropavlovsk-Kamchatsky Russia -2025-01-18T04:43:20.745Z,52.072,160.6323,10,4.6,175 km SE of Petropavlovsk-Kamchatsky Russia -2025-01-23T15:04:48.944Z,53.0878,159.717,66.886,4.7,73 km E of Petropavlovsk-Kamchatsky Russia -2025-01-24T23:00:51.963Z,52.8515,159.8501,72.424,4.1,85 km ESE of Petropavlovsk-Kamchatsky Russia -2025-01-26T13:37:31.811Z,53.1558,160.054,56.129,5.1,96 km E of Petropavlovsk-Kamchatsky Russia -2025-02-02T04:33:50.134Z,54.9989,161.8467,62.568,4.4,142 km SSW of Ust’-Kamchatsk Staryy Russia -2025-02-03T07:56:37.037Z,53.7124,161.6768,10,4.5,215 km ENE of Petropavlovsk-Kamchatsky Russia -2025-02-03T19:06:49.307Z,49.3227,156.2321,66.161,4.1,150 km S of Severo-Kuril’sk Russia -2025-02-04T22:51:33.354Z,55.2059,160.2092,128.053,4,57 km SE of Atlasovo Russia -2025-02-05T14:04:41.240Z,50.905,157.3543,57.084,4.3,88 km SE of Ozernovskiy Russia -2025-02-06T03:23:05.090Z,53.6479,161.2612,51.402,4.1,187 km ENE of Petropavlovsk-Kamchatsky Russia -2025-02-07T23:04:55.457Z,53.0866,160.0402,59.876,4.2,94 km E of Petropavlovsk-Kamchatsky Russia -2025-02-09T22:06:18.040Z,52.8576,159.7866,51.633,4,81 km ESE of Petropavlovsk-Kamchatsky Russia -2025-02-11T02:14:32.962Z,56.4193,162.5891,10,4.2,22 km NNE of Ust’-Kamchatsk Staryy Russia -2025-02-12T09:43:30.528Z,55.282,162.2161,61.761,4.1,106 km S of Ust’-Kamchatsk Staryy Russia -2025-02-13T15:39:31.520Z,52.6916,160.7535,10,4,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-02-20T15:42:53.322Z,50.1125,155.2148,129.109,4.6,90 km SW of Severo-Kuril’sk Russia -2025-02-21T03:59:43.297Z,51.9006,158.3289,118.649,4.1,114 km S of Vilyuchinsk Russia -2025-02-26T16:15:29.941Z,55.4821,164.5402,8.142,5.8,153 km ESE of Ust’-Kamchatsk Staryy Russia -2025-02-26T18:07:43.090Z,55.5816,164.4883,10,4.6,144 km ESE of Ust’-Kamchatsk Staryy Russia -2025-02-28T10:36:06.113Z,49.9603,155.6426,87.408,4.3,86 km SSW of Severo-Kuril’sk Russia -2025-03-03T05:35:36.093Z,52.1692,159.5504,35,4.3,115 km SE of Vilyuchinsk Russia -2025-03-05T02:12:31.574Z,51.9241,160.7356,10,4.2,191 km SE of Petropavlovsk-Kamchatsky Russia -2025-03-14T04:11:11.698Z,52.8423,159.2677,66.758,4.8,49 km ESE of Petropavlovsk-Kamchatsky Russia -2025-03-14T19:11:44.197Z,52.9511,160.1395,48.853,4.1,102 km E of Petropavlovsk-Kamchatsky Russia -2025-03-21T04:15:49.406Z,52.7695,160.8964,10,4.6,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-03-22T11:42:12.707Z,53.2096,159.8346,67.578,4,82 km E of Petropavlovsk-Kamchatsky Russia -2025-04-05T08:22:39.304Z,49.1846,155.5554,48.56,4.5,170 km SSW of Severo-Kuril’sk Russia -2025-04-07T02:59:30.867Z,49.321,155.5222,59.051,5.3,156 km SSW of Severo-Kuril’sk Russia -2025-04-08T19:39:41.768Z,52.1288,160.7653,10,4.1,178 km SE of Petropavlovsk-Kamchatsky Russia -2025-04-13T09:40:08.051Z,52.6895,158.7824,87.439,4.6,37 km SE of Vilyuchinsk Russia -2025-04-18T18:40:01.603Z,55.5284,164.3227,10,4.8,139 km SE of Ust’-Kamchatsk Staryy Russia -2025-04-18T18:41:43.324Z,55.3765,164.4654,10,5.4,156 km SE of Ust’-Kamchatsk Staryy Russia -2025-04-23T21:02:18.998Z,50.7572,156.9368,67.042,4.3,57 km E of Severo-Kuril’sk Russia -2025-04-24T11:57:10.477Z,48.628,157.6197,10,5,251 km SSE of Severo-Kuril’sk Russia -2025-04-26T04:31:19.049Z,53.1251,159.412,83.91,4.3,52 km E of Petropavlovsk-Kamchatsky Russia -2025-05-06T22:33:18.506Z,49.1253,158.0587,10,4.1,221 km SE of Severo-Kuril’sk Russia -2025-05-08T00:16:54.601Z,52.9092,159.3582,73.93,4.7,52 km ESE of Petropavlovsk-Kamchatsky Russia -2025-05-08T00:25:24.285Z,52.9756,159.4859,63.864,4.2,58 km E of Petropavlovsk-Kamchatsky Russia -2025-05-09T17:44:52.640Z,53.4022,158.7845,123.012,4.9,35 km NE of Yelizovo Russia -2025-05-10T04:18:20.815Z,52.2021,160.6757,23.574,4.2,168 km SE of Petropavlovsk-Kamchatsky Russia -2025-05-10T04:35:00.905Z,52.1473,160.5472,10,4.3,165 km SE of Petropavlovsk-Kamchatsky Russia -2025-05-11T05:00:49.396Z,50.9339,156.2353,141.685,4.8,29 km NNE of Severo-Kuril’sk Russia -2025-05-12T02:10:52.001Z,54.6224,161.0326,52.833,4.3,140 km SE of Atlasovo Russia -2025-05-12T17:17:15.130Z,53.0985,159.3084,88.054,4.5,45 km E of Petropavlovsk-Kamchatsky Russia -2025-05-14T05:50:25.816Z,49.9008,155.8886,76.286,4.2,87 km S of Severo-Kuril’sk Russia -2025-05-24T07:16:55.860Z,51.8646,155.998,200.867,4.1,53 km NW of Ozernovskiy Russia -2025-05-28T18:46:42.381Z,52.6958,160.4507,35,4.8,129 km ESE of Petropavlovsk-Kamchatsky Russia -2025-06-02T13:48:15.462Z,50.3031,156.7174,73.27,4.4,58 km SE of Severo-Kuril’sk Russia -2025-06-04T08:24:19.977Z,49.4716,155.5842,78.223,4.3,139 km SSW of Severo-Kuril’sk Russia -2025-06-04T14:39:36.400Z,53.0537,159.6058,72.24,4.7,65 km E of Petropavlovsk-Kamchatsky Russia -2025-06-05T15:43:53.725Z,54.2915,158.8893,170.685,4.2,48 km SSE of Mil’kovo Russia -2025-06-05T19:56:07.117Z,51.9303,156.1036,207.607,4.1,55 km NNW of Ozernovskiy Russia -2025-06-09T20:26:39.642Z,53.8723,159.3999,117.89,4.4,101 km NE of Yelizovo Russia -2025-06-10T05:44:38.731Z,49.8847,159.2155,10,4.3,237 km ESE of Severo-Kuril’sk Russia -2025-06-13T12:09:23.273Z,54.4532,161.4173,45.267,4,171 km SE of Atlasovo Russia -2025-06-17T08:13:20.115Z,50.6854,156.7445,99.345,4.7,43 km E of Severo-Kuril’sk Russia -2025-06-17T22:40:50.822Z,51.3112,160.9169,10,4.2,249 km SE of Vilyuchinsk Russia -2025-06-19T15:11:32.243Z,52.5176,160.7506,27.845,4.1,155 km ESE of Petropavlovsk-Kamchatsky Russia -2025-06-24T11:41:03.689Z,52.7629,160.91,32.003,4,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-02T02:49:50.108Z,52.9322,158.8783,100.073,4.8,22 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-02T03:00:28.936Z,50.8644,156.5251,138.441,4,35 km NE of Severo-Kuril’sk Russia -2025-07-05T06:11:35.740Z,54.6496,160.6447,89.559,4.7,124 km SSE of Atlasovo Russia -2025-07-09T06:07:15.158Z,53.0892,160.3148,10,4.3,113 km E of Petropavlovsk-Kamchatsky Russia -2025-07-09T06:10:33.081Z,53.179,160.2709,10,4.2,110 km E of Petropavlovsk-Kamchatsky Russia -2025-07-10T13:54:16.430Z,52.511,160.0678,69.31,4.6,115 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-10T19:01:44.643Z,52.817,159.7294,62.698,4,79 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-14T06:28:13.570Z,55.6669,164.9884,10,5,168 km ESE of Ust?-Kamchatsk Staryy Russia -2025-07-20T06:02:51.862Z,52.9166,160.7435,19.179,5,143 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:28:17.860Z,52.9286,160.6233,23,6.6,134 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:31:28.528Z,52.846,160.9248,10,5.2,156 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:37:33.429Z,53.0009,160.6658,35,4.6,136 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:39:20.529Z,52.8563,160.7139,10,4.6,142 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:44:37.105Z,52.7983,160.5959,10,4.7,135 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:49:04.327Z,52.8301,160.6816,34,7.4,2025 Eastern Kamchatka Russia Earthquake -2025-07-20T06:56:03.710Z,52.6641,160.7552,10,5.6,150 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T06:57:59.956Z,52.5592,160.812,10,5.3,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:02:09.059Z,52.8616,160.7938,10,5.2,147 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:03:17.905Z,52.8032,160.7971,10,4.8,148 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:04:27.093Z,52.7286,160.5232,10,4.8,132 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:05:46.243Z,52.8221,160.7552,10,4.6,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:06:22.946Z,52.6878,160.4527,10,5.2,129 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:07:42.573Z,52.6981,160.8332,10,6.6,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:09:47.134Z,52.8415,161.0175,10,5.6,162 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:12:58.030Z,52.7333,160.9824,10,5.7,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:18:55.094Z,52.8847,160.7586,10,5.3,144 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:20:07.212Z,52.4701,160.8263,35,4.8,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:23:02.065Z,52.8915,160.7461,34.991,6.5,143 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:26:17.432Z,52.9657,161.0597,10,5.9,163 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:32:39.121Z,52.6408,160.6954,10,4.7,147 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:32:58.120Z,52.6221,161.0414,10,4.8,169 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:35:58.493Z,52.9454,160.7222,38.568,4.6,141 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:36:16.060Z,52.6312,160.6671,30.242,4.5,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:36:27.534Z,52.9122,161.0131,10,4.8,161 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:37:17.162Z,52.4512,160.7626,10,4.7,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:37:34.760Z,52.8614,160.8778,29.485,4.6,152 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:37:50.620Z,52.583,159.8435,35,4.6,97 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:40:07.904Z,52.6742,160.6953,10,4.7,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:42:13.318Z,52.7787,160.924,10,4.6,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:44:57.812Z,52.0033,160.6563,10,4.1,181 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:45:24.520Z,51.4212,161.2622,10,4.2,256 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:48:10.558Z,52.5319,161.1206,10,4.3,178 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:48:38.494Z,52.8618,160.2283,29.095,4,109 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:51:11.805Z,52.6012,160.941,10,4.3,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:53:24.391Z,52.8795,160.7762,10,5,145 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:56:59.537Z,52.8692,160.7137,10,4.7,141 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T07:57:45.330Z,52.6396,160.7409,10,4.4,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:01:30.836Z,52.6215,160.791,10,4.7,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:02:08.785Z,52.9883,160.5348,10,4.8,128 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:07:17.692Z,52.8481,160.7097,10,4.2,141 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:14:09.072Z,52.8687,160.6724,37.555,4.1,139 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:16:16.668Z,52.7614,160.9525,10,4.4,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:19:56.426Z,52.8182,160.7089,35,4.2,142 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:24:12.409Z,52.8952,160.5992,28.802,4,133 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:27:27.206Z,52.7186,160.7976,10,4.2,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:30:21.887Z,53.0455,160.5656,35.871,4.3,129 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:38:58.586Z,52.7644,160.489,35,4.1,129 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:43:10.836Z,52.8555,160.7567,10,4.5,144 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T08:44:31.267Z,52.2901,160.6074,10,4.3,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:10:28.180Z,52.7109,160.4741,10,4.2,130 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:11:38.211Z,52.4811,160.8098,10,4.3,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:18:51.374Z,52.4946,160.8156,10,4.2,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:21:59.713Z,52.7755,160.9359,10,4.4,158 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:23:50.306Z,52.4983,160.6494,10,4.4,150 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:29:03.112Z,52.847,160.457,10,4.5,125 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:29:48.376Z,52.9507,160.6176,35.806,4.3,134 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:30:53.694Z,52.653,160.6257,10,5.1,142 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:34:46.276Z,52.9141,160.666,10,4.7,137 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:47:33.842Z,52.5646,160.8915,10,4.4,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:49:20.165Z,53.0676,160.2664,35,4.3,109 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T09:51:30.045Z,52.8784,160.3235,35,4.3,115 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:02:07.596Z,52.8163,160.4631,36.527,4.1,126 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:03:40.371Z,52.8893,160.8106,10,5.2,147 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:15:52.779Z,52.8085,160.8139,10,4.3,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:18:54.941Z,52.6679,160.536,35,4.2,135 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:19:43.061Z,52.8793,160.1896,35,4.2,106 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:24:46.870Z,52.6537,160.9446,10,4.5,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:34:03.043Z,52.3884,160.6799,10,4.2,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:40:15.008Z,52.7905,160.529,10,4.2,131 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:43:58.984Z,52.2757,160.5521,10,4.3,156 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:45:42.002Z,52.6596,160.7951,28.257,4.3,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T10:52:46.729Z,52.4997,160.6456,35,4.2,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:00:33.681Z,52.9843,161.1643,10,4.1,170 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:15:03.914Z,52.7943,160.4277,10,4.2,124 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:15:56.392Z,52.7118,160.9134,10,4.4,158 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:17:02.473Z,52.8071,160.5994,38.482,4.2,135 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:20:48.122Z,52.544,160.7502,10,4.5,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:33:04.696Z,52.605,160.8248,10,4.3,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:36:40.297Z,53.0853,160.8313,33.238,4.2,147 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:37:31.648Z,52.8983,160.6814,10,4.3,139 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:40:16.664Z,52.4642,160.713,10,4.1,155 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:41:46.830Z,52.5692,160.3292,10,4.2,127 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:45:21.785Z,52.9258,160.7153,35,4.3,141 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:51:05.679Z,52.5367,161.0945,10,4.3,176 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T11:55:40.229Z,52.7353,160.6301,35,4.3,139 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:04:27.046Z,52.6898,160.7912,10,4.3,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:12:09.672Z,52.5492,160.6448,10,4.1,147 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:13:16.802Z,52.8858,160.9343,35,4.2,156 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:34:39.128Z,52.6761,160.5156,10,4.3,134 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:38:36.361Z,52.5234,160.4481,35,4,136 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:42:57.103Z,52.6878,160.7325,28.431,4.3,147 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:44:44.315Z,52.7411,160.8139,35,4.1,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:45:44.315Z,52.8426,160.628,10,4.3,136 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:54:08.236Z,52.2414,160.5389,10,4.4,158 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:58:54.505Z,52.5708,160.764,10,4.3,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T12:59:32.791Z,52.8794,160.8061,10,4.5,147 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T13:04:12.575Z,52.5839,160.5147,35,4.4,137 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T13:07:06.189Z,52.2116,160.7926,10,4.3,174 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T13:27:26.159Z,52.4967,160.8433,10,4.4,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T13:54:31.995Z,52.5213,160.7646,10,4.7,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:01:12.711Z,52.5616,160.7597,10,4.5,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:03:16.248Z,52.5771,160.9314,10,4.3,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:04:48.503Z,52.8741,160.8404,29.932,4,150 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:07:24.641Z,52.478,160.8769,10,4.2,165 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:31:29.927Z,52.5494,160.9169,25.765,4,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:35:48.925Z,52.7211,160.2515,34.908,4,115 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:48:25.074Z,52.761,160.6984,10,4.2,143 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:49:46.382Z,52.3215,160.4911,10,4.7,150 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T14:59:16.094Z,52.7837,161.2096,10,4.5,176 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:03:50.321Z,52.611,160.5691,10,5,140 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:16:44.043Z,52.8886,160.7292,10,4.6,142 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:32:26.370Z,52.404,160.49,10,5.2,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:43:17.208Z,52.7306,160.6623,10,5.1,141 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:44:32.940Z,52.2923,160.6074,10,5.2,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:53:40.168Z,52.5972,161.0003,35,4.1,168 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T15:58:18.577Z,52.9581,161.1012,10,4.4,166 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:05:49.791Z,52.2893,160.5716,10,4.3,157 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:13:57.986Z,52.4136,160.5695,10,5.2,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:19:14.966Z,52.3675,161.2903,10,4.1,195 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:24:09.118Z,52.9406,160.7209,10,4.9,141 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:26:36.912Z,52.7985,160.6553,10,4.5,139 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:27:45.640Z,52.4526,160.726,10,4.2,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T16:44:02.978Z,52.5535,160.9023,10,4.5,163 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T17:09:44.595Z,52.7654,160.6993,10,5.1,143 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T17:10:20.329Z,52.8429,160.5055,10,5.5,128 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T17:17:00.903Z,52.9424,161.0077,10,4.1,160 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T17:22:55.545Z,52.3284,160.6169,10,4.5,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T17:34:52.911Z,52.8743,160.899,10,4.6,154 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T17:37:05.071Z,52.3119,160.7523,7.749,5.3,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T18:00:26.874Z,52.3476,160.5712,27.555,4.8,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T18:20:33.723Z,52.9365,161.177,10,4.6,171 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T18:24:13.573Z,52.7938,160.8617,10,4.3,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T18:31:45.959Z,52.6046,161.1152,10,4.2,175 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T18:45:33.968Z,52.1241,161.0182,10,4.3,192 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T18:55:21.444Z,52.9636,161.0608,10,4.2,163 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T19:13:48.766Z,52.9004,160.8399,10,4.1,149 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T19:40:57.507Z,52.7354,161.0394,10,4.2,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T19:51:08.674Z,52.9609,160.7587,10,4.9,143 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T20:02:12.911Z,52.2573,160.3981,10,4.4,149 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T20:23:51.008Z,52.1947,160.4111,10,4.3,154 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T20:31:26.551Z,52.472,160.4989,26.558,5.1,142 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T20:49:55.971Z,53.1494,160.6917,10,4.7,138 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T21:01:29.723Z,52.5886,160.8802,10,4.1,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T21:19:06.209Z,52.5892,160.78,10,4.6,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T21:29:33.019Z,52.9211,160.9548,10,4.2,157 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T21:36:07.588Z,52.9044,160.8382,10,4.2,149 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T21:59:33.857Z,52.6784,160.8552,10,4.1,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T22:01:03.002Z,52.6161,160.8295,10,4.4,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T22:03:49.015Z,52.9217,161.1007,10,4.3,166 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T22:08:30.940Z,52.0262,160.4057,10,4.3,166 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T22:41:35.795Z,52.8644,160.3704,35,4.3,119 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T22:42:33.722Z,51.6042,159.9212,10,4,180 km SE of Vilyuchinsk Russia -2025-07-20T22:45:32.676Z,52.5842,160.9213,10,4.4,163 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:10:08.625Z,52.8666,161.03,10,5.1,162 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:14:12.977Z,52.2293,160.432,35,4.2,153 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:16:35.061Z,53.015,161.1316,10,4.1,168 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:37:12.832Z,51.5426,160.0946,10,4.4,192 km SE of Vilyuchinsk Russia -2025-07-20T23:44:10.216Z,52.6734,160.4363,10,4,129 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:44:29.772Z,52.382,160.1014,10,4.7,125 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:53:14.171Z,52.9902,161.0303,10,4.5,161 km E of Petropavlovsk-Kamchatsky Russia -2025-07-20T23:58:15.699Z,53.2618,160.9282,35,4.2,155 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T00:00:23.726Z,52.2721,160.5301,10,4.4,155 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T00:01:35.995Z,52.9096,160.3364,35,4.4,116 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T00:10:28.754Z,51.6259,160.4499,10,4.3,201 km SE of Vilyuchinsk Russia -2025-07-21T00:11:18.167Z,52.8006,161.064,10,4.5,166 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T00:32:41.985Z,52.6333,160.856,10,4.3,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T00:34:25.423Z,52.9126,160.6553,35,4.1,137 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T00:55:31.435Z,52.5327,160.8379,10,4.2,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T01:13:32.954Z,52.2281,160.8165,34.499,4.2,174 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T01:15:54.936Z,53.139,160.6926,31.171,4.2,138 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T01:34:11.792Z,52.3892,160.8127,10,4.2,165 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T01:41:39.751Z,53.3666,161.2353,10,4.3,177 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T01:48:14.019Z,52.7063,160.7391,29.44,4.2,147 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T02:12:20.033Z,53.112,161.0612,27.877,4.2,163 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T02:56:56.353Z,52.7834,160.6207,21.723,4.1,137 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T02:58:36.699Z,53.0413,161.201,10,4.1,172 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T03:13:34.059Z,52.2389,160.3916,10,4.3,150 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T03:42:02.963Z,52.4437,160.8731,10,4.1,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T03:50:19.792Z,52.1579,160.5211,10,4.2,163 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T03:51:56.761Z,52.3973,160.7279,10,4.2,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T03:57:56.633Z,52.4628,160.6428,10,4.3,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T04:16:54.490Z,53.063,161.0883,10,4.2,164 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T04:24:25.063Z,52.1463,160.24,31.385,4.1,149 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T04:27:01.973Z,52.6854,160.265,39.38,4.2,118 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T04:45:56.997Z,53.3328,160.5713,21.146,4.2,133 km ENE of Petropavlovsk-Kamchatsky Russia -2025-07-21T05:47:51.225Z,52.7396,160.9397,10,4,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T05:49:18.600Z,52.5145,160.8117,8.71,4.6,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T06:11:33.728Z,52.2858,160.5623,11.31,4.8,156 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T06:33:17.394Z,53.1419,160.5207,32.874,4,127 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T06:49:34.211Z,52.6742,160.2915,15.627,4.2,120 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T07:08:13.143Z,52.3541,160.9316,10,5,174 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T07:12:27.936Z,52.6161,160.9052,10,4.3,161 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T07:58:41.651Z,52.7901,160.9724,10,4.2,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:17:19.926Z,52.7541,160.9642,10,4.1,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:17:53.903Z,52.2503,160.4393,36.48,4.3,152 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:26:32.881Z,52.9244,161.1829,10,4.3,172 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:40:23.993Z,51.9328,160.4582,10,4.4,176 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:42:35.018Z,52.1837,160.4573,25.466,4.9,157 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:45:08.008Z,52.1426,160.4155,10,4.6,158 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T08:47:27.930Z,52.2369,159.5656,35,4.2,110 km SE of Vilyuchinsk Russia -2025-07-21T08:49:59.488Z,52.031,160.4215,10,4.3,167 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T09:00:57.632Z,52.2324,160.5178,28.062,4.2,157 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T09:16:07.498Z,52.3064,160.0833,10,4.2,129 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T09:51:21.722Z,52.1522,160.744,26.096,4.2,175 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T09:59:37.241Z,52.022,160.3219,10,4.1,163 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:18:00.628Z,52.2399,160.4176,10,4.8,151 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:25:14.191Z,52.5046,160.5912,37.794,5.2,146 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:35:09.363Z,52.299,160.5772,10,4.9,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:36:30.171Z,52.2504,160.3168,10,5.2,145 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:40:16.449Z,53.0053,160.5836,35,4.1,131 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:42:05.071Z,52.1912,160.7387,10,4.3,172 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:45:36.739Z,52.1414,160.3646,10,4.4,156 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:47:34.839Z,52.6806,160.6612,10,4.4,143 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:49:33.949Z,52.23,160.4298,10,4.3,153 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:50:29.047Z,52.1222,160.3216,27.84,4.3,155 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:56:56.747Z,52.4441,160.7128,10,4,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:57:56.987Z,51.9658,160.6815,10,4.1,185 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T10:59:33.773Z,51.6429,160.2175,10,4.2,189 km SE of Vilyuchinsk Russia -2025-07-21T11:00:13.878Z,51.8739,160.7053,10,4.2,193 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:02:17.288Z,52.6072,160.4617,35,4.6,133 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:11:25.942Z,52.4484,160.8817,10,4.4,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:13:45.237Z,52.0936,160.6397,10,4.3,173 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:17:09.199Z,52.6585,160.7935,35,4.5,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:19:55.322Z,53.1383,161.0665,35,4.3,163 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:21:26.505Z,52.2697,160.473,10,4.7,152 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:25:58.792Z,52.5726,160.2884,34.87,4.5,124 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:27:36.264Z,52.9218,160.7749,10,4.5,145 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T11:28:01.122Z,52.1117,160.3842,10,4.4,159 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T12:17:47.523Z,52.5285,160.6027,10,4.5,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T12:23:15.478Z,52.1887,160.7792,10,4.5,175 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T12:36:23.906Z,53.0129,161.0528,10,4.4,162 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T12:43:59.333Z,52.2595,160.4218,34.082,4.9,150 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T12:55:40.398Z,52.441,160.4984,10,4.3,144 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T13:16:07.328Z,52.7504,160.516,29.234,4.5,131 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T13:22:42.705Z,52.2469,160.4026,33.178,4.1,150 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T13:46:56.828Z,52.319,160.5494,29.898,4.5,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T13:47:00.850Z,51.6158,160.3107,10,4.5,195 km SE of Vilyuchinsk Russia -2025-07-21T13:47:54.595Z,52.144,160.281,35,4.4,151 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T14:33:44.991Z,52.8633,160.876,10,5,152 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T14:37:19.732Z,52.2589,160.7648,10,5,170 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T15:14:20.671Z,52.4567,160.6495,17.555,5.2,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T15:17:18.542Z,52.5778,160.9712,10,4.4,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T15:20:06.323Z,52.4871,160.0617,57.62,4.3,116 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T15:29:09.143Z,52.3702,160.811,6.954,4.9,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T15:38:24.342Z,52.8199,160.5122,11.1,4.3,129 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T16:20:15.431Z,52.7939,160.5948,10,5.1,135 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T16:23:57.804Z,52.1008,160.2641,10,4.9,154 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T16:32:34.254Z,52.2517,160.6461,31.476,4.3,163 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T16:50:42.669Z,52.1396,160.3689,26.619,5,156 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T16:56:26.769Z,52.2207,160.4644,10,4.8,155 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T17:05:54.993Z,52.8952,161.3822,10,4.8,185 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T17:13:46.086Z,52.4339,160.2523,37.376,4.9,130 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T17:56:21.400Z,52.3314,160.7951,10,4.2,167 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T18:03:32.885Z,52.4839,160.8309,10,4.2,162 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T18:21:57.311Z,52.3014,160.3121,10,4.7,142 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T18:58:56.771Z,52.4463,160.4617,10,4.5,141 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T20:29:12.554Z,52.3921,160.8318,10,4.1,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T20:43:21.184Z,53.0726,160.707,30.099,4.3,139 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T20:52:48.939Z,52.8738,160.414,10,4.2,121 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T21:16:59.634Z,51.8197,160.4602,35,4.2,186 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-21T22:00:30.919Z,52.7393,160.2365,35,4,114 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T22:01:27.098Z,52.425,160.8157,10,4.3,163 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T22:06:29.896Z,52.2239,160.8208,10,4.3,175 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-21T22:07:56.268Z,53.1151,160.9712,10,4.3,157 km E of Petropavlovsk-Kamchatsky Russia -2025-07-21T22:13:25.010Z,51.7751,160.3369,10,4,184 km SE of Vilyuchinsk Russia -2025-07-21T23:00:47.036Z,52.7737,161.1913,10,4.3,175 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T00:40:40.547Z,52.0683,160.3595,10,4,161 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T01:41:54.228Z,52.8417,160.7858,10,4,147 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T01:58:57.357Z,52.5395,160.7864,10,5.3,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T01:59:28.404Z,52.4133,160.6453,12.308,6,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:04:45.321Z,52.598,161.0609,10,4.7,171 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:05:45.809Z,52.2902,160.5002,10,4.9,153 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:07:37.582Z,52.429,160.7348,10,5.3,158 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:10:07.884Z,52.5234,160.7272,10,4.7,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:14:05.164Z,52.5047,160.5991,24.004,4.6,146 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:16:36.985Z,52.7616,160.911,10,4.3,157 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:20:07.752Z,52.2803,160.8851,10,4.4,175 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:20:47.947Z,52.5336,160.5765,29.249,4.6,144 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:22:21.382Z,51.4861,160.287,10,4.1,205 km SE of Vilyuchinsk Russia -2025-07-22T02:23:58.554Z,52.919,160.6041,35,4.3,133 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:24:42.628Z,52.0868,160.4013,10,4.3,162 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:26:04.766Z,51.9237,160.4546,10,4.2,177 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:34:06.787Z,52.6315,160.625,10,5,142 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:37:40.796Z,51.6968,160.3565,10,4.3,191 km SE of Vilyuchinsk Russia -2025-07-22T02:39:31.341Z,52.5535,160.6703,10,4.8,148 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:47:58.577Z,52.5398,160.7671,10,4.5,155 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:49:59.643Z,52.5869,160.6429,10,4.9,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T02:58:36.784Z,52.517,160.6831,10,4.4,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:01:32.946Z,52.7207,160.7473,10,4.2,147 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:03:56.392Z,52.3426,160.747,10,4.1,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:06:36.289Z,52.4435,160.7698,10,4.3,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:07:54.915Z,52.7315,160.8354,10,4.2,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:15:14.341Z,52.7596,160.6849,10,4.1,142 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:15:44.709Z,52.7641,160.7261,10,4.2,145 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:17:04.019Z,52.7224,161.0234,10,4.1,165 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T03:48:25.605Z,52.5883,160.7176,10,4.2,150 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T04:13:25.106Z,52.5123,160.629,10,4.2,148 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T04:24:55.444Z,52.2749,160.9115,10,4.2,177 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T04:38:13.142Z,52.5653,160.8644,10,4.1,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T04:42:05.198Z,51.8807,160.314,10,4.4,174 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T05:06:58.309Z,52.3429,160.6467,10,4.4,158 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T05:09:28.534Z,52.9016,160.8517,10,5,150 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T05:23:30.955Z,51.7688,160.4012,10,4.6,187 km SE of Vilyuchinsk Russia -2025-07-22T05:38:43.942Z,52.5503,160.7051,10,4.4,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T06:05:05.949Z,52.5774,160.7184,29.329,4.4,150 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T06:05:19.579Z,52.5131,160.8858,10,4.4,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T06:23:12.009Z,52.6455,160.7598,10,4.3,150 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T06:29:48.727Z,52.4513,160.8208,10,4.4,163 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T06:33:36.491Z,52.7441,160.782,10,4.3,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T08:04:42.136Z,52.2398,160.6702,10,4.1,165 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T08:13:38.926Z,53.101,160.7831,29.886,4.1,144 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T08:18:14.707Z,52.4684,160.47,10,5,140 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T08:25:40.742Z,52.5445,160.4283,35,4.5,134 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T09:02:14.148Z,52.5294,160.7131,35.786,4.2,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T09:25:27.951Z,53.0355,160.7442,26.86,4.1,141 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T10:09:05.962Z,52.5134,160.7669,28.866,4.2,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T10:25:16.245Z,52.2263,160.477,30.846,4.8,156 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T10:35:09.765Z,51.7423,160.6156,10,4.1,199 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:03:36.607Z,52.622,160.711,39.84,4.1,148 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:05:12.535Z,51.4749,160.078,10,4.5,198 km SE of Vilyuchinsk Russia -2025-07-22T11:14:25.756Z,52.3501,160.4936,36.263,4.7,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:15:12.813Z,52.2027,160.2982,33.387,4.9,148 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:24:45.281Z,52.4341,160.8231,29.902,4.2,163 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:27:31.318Z,51.9391,160.3837,35,4.2,172 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:30:06.642Z,52.3334,160.7508,10,4.2,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:41:17.895Z,51.6777,160.4766,35,4.4,198 km SE of Vilyuchinsk Russia -2025-07-22T11:47:17.439Z,52.2071,160.475,27.885,4.9,157 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T11:51:00.302Z,52.3028,160.4482,45.228,4.7,149 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T12:21:01.947Z,52.3861,160.8244,10,5,166 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T13:00:10.213Z,52.4597,160.7178,10,4.3,156 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T13:18:03.258Z,52.5738,160.755,10,4.2,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T13:43:27.481Z,52.5533,160.7338,28.052,4.9,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T13:47:41.695Z,52.1648,160.5199,26.845,4.4,162 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T13:52:54.126Z,52.6587,160.8824,10,4.2,158 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T14:23:23.160Z,52.0062,160.2984,24.575,4.1,163 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T16:54:55.151Z,53.1959,160.5831,46.725,4.2,131 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T16:57:36.117Z,52.4658,161.0192,10,4.4,174 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T17:04:09.922Z,52.4882,160.6529,26.59,4.1,150 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T18:56:51.322Z,52.7127,160.8119,10,4.1,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T19:29:37.537Z,52.1821,160.8102,10,4.2,177 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T20:12:54.022Z,52.3404,160.6815,10,4.3,160 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T21:01:16.298Z,52.9781,160.5487,35,4.1,129 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T21:34:33.839Z,52.4984,160.5854,10,4.6,146 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-22T22:04:19.390Z,52.8593,160.6252,10,4.2,136 km E of Petropavlovsk-Kamchatsky Russia -2025-07-22T22:22:49.612Z,52.2253,160.7007,10,4.5,168 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-22T23:58:28.346Z,52.8406,160.816,28,5.4,149 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T03:05:14.795Z,52.371,160.8023,10,4.1,165 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-23T04:18:38.730Z,52.8052,160.0663,35,4.2,100 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-23T08:05:05.222Z,52.5732,160.7526,10,4.5,153 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-23T09:37:33.444Z,53.1746,161.1326,36.105,4.3,168 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T12:13:27.667Z,52.3125,160.5144,11.481,4.6,152 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-23T12:38:44.329Z,52.9133,160.8431,10,4.4,149 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T13:49:33.940Z,52.0084,160.3053,35,4.6,163 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-23T14:20:17.239Z,52.8077,160.0515,47.331,4.4,99 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-23T14:28:04.015Z,52.8924,161.2734,10,4.8,178 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T14:46:49.416Z,52.957,160.5551,35,4.1,129 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T16:40:21.615Z,52.5181,160.1833,35,4,121 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-23T16:46:02.291Z,51.6393,159.7321,10,4.2,169 km SSE of Vilyuchinsk Russia -2025-07-23T17:58:21.220Z,52.915,160.6201,35,4.3,134 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T18:05:30.814Z,52.0852,160.5072,10,4.6,167 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-23T19:17:49.982Z,52.3837,160.7363,10,4.3,161 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-23T19:25:26.976Z,53.282,160.9343,35,4.1,156 km E of Petropavlovsk-Kamchatsky Russia -2025-07-23T19:29:57.718Z,52.2371,160.42,10,4.3,152 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-23T19:30:44.637Z,52.1893,160.4547,10,4.5,157 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-23T20:01:31.303Z,52.4804,160.0866,35.446,5.1,117 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-23T21:13:34.206Z,52.6936,159.7926,72.232,4.4,88 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T01:11:25.082Z,52.5518,160.4883,35,4.1,137 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T04:02:12.778Z,52.6923,160.9851,10,4.2,164 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T04:03:18.757Z,52.911,161.0062,33.15,4.2,160 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T05:09:11.729Z,52.6665,160.7739,35,4.5,151 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T05:10:32.011Z,52.474,160.6684,26.903,4.3,152 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T05:23:19.138Z,52.7766,160.952,26.021,4.3,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T08:33:39.764Z,52.2457,160.2142,35,4.5,140 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-24T08:34:36.949Z,52.2582,160.3396,10,5,146 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-24T08:37:11.722Z,51.1389,159.7792,10,4.3,220 km SSE of Vilyuchinsk Russia -2025-07-24T08:55:21.809Z,51.6119,160.1743,10,4,190 km SE of Vilyuchinsk Russia -2025-07-24T09:35:17.210Z,51.8666,160.1905,34.132,4.1,169 km SE of Vilyuchinsk Russia -2025-07-24T10:47:37.060Z,52.4876,160.7329,10,4.1,155 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T11:08:52.807Z,52.5018,160.6432,10,4.2,149 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T11:39:18.276Z,52.1296,160.3639,10,4.7,157 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-24T19:09:46.285Z,52.7532,160.5753,35,4.5,135 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T20:36:32.389Z,51.7528,159.8686,10,4.1,164 km SE of Vilyuchinsk Russia -2025-07-24T22:37:27.147Z,53.0151,161.0626,14,6,163 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T22:39:24.305Z,52.9584,161.0863,10,5.8,165 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T22:44:46.805Z,52.9914,161.2738,12.541,4.7,177 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T22:51:55.179Z,52.766,161.2899,10,4,182 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:06:21.133Z,52.2003,161.1264,55.145,4.1,194 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:08:40.538Z,52.8626,161.297,36.601,4.3,180 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:20:31.192Z,52.6973,161.3613,10,4.1,188 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:27:39.733Z,53.0705,161.261,10,4.9,176 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:33:34.397Z,53.0106,160.9939,28.799,4.4,158 km E of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:38:47.651Z,52.7497,160.9455,45.257,4.2,159 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-24T23:42:48.261Z,53.0393,161.2426,10,4.1,175 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T00:20:57.032Z,52.8196,161.163,10,4.4,172 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T00:22:59.697Z,53.027,161.1634,25.995,4.7,170 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T00:37:14.383Z,52.6491,161.1977,20.044,4.1,179 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-25T00:52:27.136Z,53.0157,160.7567,35,4,142 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T01:24:46.111Z,52.9672,161.0749,32.558,4,164 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T02:58:44.421Z,53.0767,161.0744,30.492,4.6,164 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T03:03:17.545Z,53.2463,160.8246,35,4.2,148 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T05:05:18.595Z,52.9891,161.1981,10,4.1,172 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T05:41:33.585Z,52.762,160.1217,41.532,4.1,105 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-25T07:18:00.848Z,53.0062,161.3204,10,4.2,180 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T11:13:01.067Z,52.6158,160.694,10,5,147 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-25T13:32:06.609Z,53.0078,161.1149,10,4.3,166 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T17:13:30.754Z,52.9794,161.2571,10,4.2,176 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T22:06:58.552Z,53.0606,161.3161,10,4.3,180 km E of Petropavlovsk-Kamchatsky Russia -2025-07-25T23:15:08.826Z,52.6512,160.3204,10,5,122 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-26T05:27:25.282Z,53.2985,161.1212,10,4.3,168 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T05:50:35.910Z,52.4376,160.9047,23.423,5,168 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-26T09:10:56.718Z,52.3105,160.8878,10,4.4,174 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-26T11:37:52.541Z,53.1568,161.0584,10,4.2,163 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T12:13:10.016Z,52.4048,160.6361,11.326,4.5,154 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-26T13:16:07.816Z,52.9886,161.1133,10,4.3,166 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T15:18:58.828Z,53.177,161.0048,10,4.1,159 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T16:32:05.277Z,52.9529,161.2282,9.54,4.5,174 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T18:49:12.898Z,53.0284,161.3239,22.407,4,180 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T18:54:23.644Z,52.3235,160.747,10,5,165 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-26T19:25:16.764Z,52.9578,161.2303,10,4.4,175 km E of Petropavlovsk-Kamchatsky Russia -2025-07-26T21:35:23.289Z,53.2505,161.1095,35,4,167 km E of Petropavlovsk-Kamchatsky Russia -2025-07-28T03:13:59.438Z,53.0958,159.8413,60.141,4.9,81 km E of Petropavlovsk-Kamchatsky Russia -2025-07-28T11:45:03.459Z,52.811,160.611,10,5.1,136 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-28T12:21:44.461Z,52.7405,161.1469,10,4.1,173 km ESE of Petropavlovsk-Kamchatsky Russia -2025-07-28T20:51:49.604Z,52.8882,161.1933,10,4.2,173 km E of Petropavlovsk-Kamchatsky Russia -2025-07-29T00:22:32.289Z,52.2113,160.5807,10,4.4,162 km SE of Petropavlovsk-Kamchatsky Russia -2025-07-29T02:41:51.840Z,53.8437,160.997,37.762,4.7,179 km ENE of Petropavlovsk-Kamchatsky Russia -2025-07-29T14:59:04.139Z,53.5437,161.963,10,4.8,228 km ENE of Petropavlovsk-Kamchatsky Russia -2025-07-29T16:28:52.863Z,53.4351,161.5246,10,4.1,197 km E of Petropavlovsk-Kamchatsky Russia diff --git a/experiments/russia_2025/fetch_usgs_raw.sh b/experiments/russia_2025/fetch_usgs_raw.sh deleted file mode 100644 index 2036e72..0000000 --- a/experiments/russia_2025/fetch_usgs_raw.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -RAW_DATA_DIR="${SCRIPT_DIR}/data/raw" -OUTPUT_FILE="${RAW_DATA_DIR}/usgs_kamchatka_2020_2025_raw.csv" - -mkdir -p "${RAW_DATA_DIR}" - -USGS_QUERY_URL="https://earthquake.usgs.gov/fdsnws/event/1/query" - -TARGET_LATITUDE="52.495" -TARGET_LONGITUDE="160.240" -ANALYSIS_RADIUS_KM="500" - -START_TIME="2020-07-28T23:24:52Z" - -# One second before the target earthquake. -END_TIME="2025-07-29T23:24:51Z" - -MINIMUM_MAGNITUDE="2.5" - -echo "Downloading USGS Kamchatka validation catalog..." -echo "Output: ${OUTPUT_FILE}" - -curl \ - --fail \ - --location \ - --silent \ - --show-error \ - --get \ - "${USGS_QUERY_URL}" \ - --data-urlencode "format=csv" \ - --data-urlencode "starttime=${START_TIME}" \ - --data-urlencode "endtime=${END_TIME}" \ - --data-urlencode "latitude=${TARGET_LATITUDE}" \ - --data-urlencode "longitude=${TARGET_LONGITUDE}" \ - --data-urlencode "maxradiuskm=${ANALYSIS_RADIUS_KM}" \ - --data-urlencode "minmagnitude=${MINIMUM_MAGNITUDE}" \ - --data-urlencode "eventtype=earthquake" \ - --data-urlencode "orderby=time-asc" \ - --output "${OUTPUT_FILE}" - -if [[ ! -s "${OUTPUT_FILE}" ]]; then - echo "USGS returned an empty catalog." >&2 - exit 1 -fi - -LINE_COUNT="$( - wc -l < "${OUTPUT_FILE}" -)" - -if (( LINE_COUNT >= 20001 )); then - echo "Catalog may have reached the USGS query limit." >&2 - echo "Rows including header: ${LINE_COUNT}" >&2 - echo "The acquisition must be split into yearly queries." >&2 - exit 1 -fi - -echo "Download complete." -echo "Rows including header: ${LINE_COUNT}" -echo "Raw catalog: ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/russia_2025/normalize_catalog.sh b/experiments/russia_2025/normalize_catalog.sh deleted file mode 100644 index 6d96cd6..0000000 --- a/experiments/russia_2025/normalize_catalog.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -RAW_CATALOG="${SCRIPT_DIR}/data/raw/usgs_kamchatka_2020_2025_raw.csv" -NORMALIZED_DIRECTORY="${SCRIPT_DIR}/data/normalized" -NORMALIZED_CATALOG="${NORMALIZED_DIRECTORY}/catalog.csv" - -NORMALIZER="${REPOSITORY_ROOT}/build/cameff_catalog_normalizer" - -if [[ ! -x "${NORMALIZER}" ]]; then - echo "Normalizer executable not found:" >&2 - echo " ${NORMALIZER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${RAW_CATALOG}" ]]; then - echo "Raw USGS catalog not found:" >&2 - echo " ${RAW_CATALOG}" >&2 - echo "Run the acquisition script first." >&2 - exit 1 -fi - -mkdir -p "${NORMALIZED_DIRECTORY}" - -"${NORMALIZER}" \ - "${RAW_CATALOG}" \ - "${NORMALIZED_CATALOG}" - -echo "Normalized catalog created:" -echo " ${NORMALIZED_CATALOG}" \ No newline at end of file diff --git a/experiments/russia_2025/results/russia_frozen_threshold_metrics.csv b/experiments/russia_2025/results/russia_frozen_threshold_metrics.csv deleted file mode 100644 index 2efad3d..0000000 --- a/experiments/russia_2025/results/russia_frozen_threshold_metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -threshold,tp,fp,tn,fn,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy -0.73,1,0,4,0,1.000000,1.000000,1.000000,0.000000,1.000000,1.000000 diff --git a/experiments/russia_2025/run_hindcast.sh b/experiments/russia_2025/run_hindcast.sh deleted file mode 100644 index 9cd87a3..0000000 --- a/experiments/russia_2025/run_hindcast.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -REPORT_FILE="${RESULT_DIRECTORY}/russia_2025_hindcast.txt" - -TARGET_TIME="2025-07-29T23:24:52Z" - -# Frozen 24-hour forecasting lead. -CUTOFF_TIME="2025-07-28T23:24:52Z" - -# One-year evidence window ending at the cutoff. -OBSERVATION_START_TIME="2024-07-28T23:24:52Z" - -TARGET_EPOCH="$( - date -u -d "${TARGET_TIME}" +%s -)" - -CUTOFF_EPOCH="$( - date -u -d "${CUTOFF_TIME}" +%s -)" - -OBSERVATION_START_EPOCH="$( - date -u -d "${OBSERVATION_START_TIME}" +%s -)" - -TARGET_LATITUDE="52.495" -TARGET_LONGITUDE="160.240" -TARGET_DEPTH_KM="35.0" -TARGET_MAGNITUDE="8.8" -TARGET_REGION="Off the east coast of the Kamchatka Peninsula Russia" - -ANALYSIS_LATITUDE="52.495" -ANALYSIS_LONGITUDE="160.240" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - echo "Run the acquisition and normalization scripts first." >&2 - exit 1 -fi - -mkdir -p "${RESULT_DIRECTORY}" - -"${RUNNER}" \ - "${CATALOG}" \ - "${TARGET_EPOCH}" \ - "${TARGET_LATITUDE}" \ - "${TARGET_LONGITUDE}" \ - "${TARGET_DEPTH_KM}" \ - "${TARGET_MAGNITUDE}" \ - "${TARGET_REGION}" \ - "${OBSERVATION_START_EPOCH}" \ - "${CUTOFF_EPOCH}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - | tee "${REPORT_FILE}" - -HAZARD_EVIDENCE="$( - awk -F= ' - $1 == "hazard_evidence" { - print $2 - exit - } - ' "${REPORT_FILE}" -)" - -if [[ -z "${HAZARD_EVIDENCE}" ]]; then - echo "Unable to extract hazard evidence." >&2 - exit 1 -fi - -CLASSIFICATION="$( - awk \ - -v score="${HAZARD_EVIDENCE}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "warning" - } else { - print "no_warning" - } - }' -)" - -echo "frozen_threshold=${FROZEN_THRESHOLD}" \ - | tee -a "${REPORT_FILE}" - -echo "threshold_classification=${CLASSIFICATION}" \ - | tee -a "${REPORT_FILE}" - -echo -echo "Hindcast report written to:" -echo " ${REPORT_FILE}" \ No newline at end of file diff --git a/experiments/russia_2025/run_threshold_report.sh b/experiments/russia_2025/run_threshold_report.sh deleted file mode 100644 index 2e8c7c2..0000000 --- a/experiments/russia_2025/run_threshold_report.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -INPUT_FILE="${SCRIPT_DIR}/results/russia_validation_windows.csv" -OUTPUT_FILE="${SCRIPT_DIR}/results/russia_frozen_threshold_metrics.csv" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -f "${INPUT_FILE}" ]]; then - echo "Russia validation results not found:" >&2 - echo " ${INPUT_FILE}" >&2 - echo "Run the validation suite first." >&2 - exit 1 -fi - -awk -F, ' - NR == 1 { - next - } - - { - label = $2 + 0 - prediction = $3 + 0 - - if (label == 1 && prediction == 1) { - tp++ - } else if (label == 0 && prediction == 1) { - fp++ - } else if (label == 0 && prediction == 0) { - tn++ - } else if (label == 1 && prediction == 0) { - fn++ - } - } - - END { - precision = (tp + fp) ? tp / (tp + fp) : 0 - recall = (tp + fn) ? tp / (tp + fn) : 0 - specificity = (tn + fp) ? tn / (tn + fp) : 0 - fpr = (fp + tn) ? fp / (fp + tn) : 0 - - f1 = (precision + recall) \ - ? 2 * precision * recall / (precision + recall) \ - : 0 - - balanced_accuracy = (recall + specificity) / 2 - - print "threshold,tp,fp,tn,fn,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy" - - printf "0.73,%d,%d,%d,%d,%.6f,%.6f,%.6f,%.6f,%.6f,%.6f\n", \ - tp, fp, tn, fn, \ - precision, recall, specificity, fpr, f1, balanced_accuracy - } -' "${INPUT_FILE}" | tee "${OUTPUT_FILE}" - -echo -echo "Frozen-threshold report written to:" -echo " ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/russia_2025/run_validation_suite.sh b/experiments/russia_2025/run_validation_suite.sh deleted file mode 100644 index dc3949a..0000000 --- a/experiments/russia_2025/run_validation_suite.sh +++ /dev/null @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -WINDOW_DIRECTORY="${RESULT_DIRECTORY}/windows" - -SUMMARY_FILE="${RESULT_DIRECTORY}/russia_validation_windows.csv" - -ANALYSIS_LATITUDE="52.495" -ANALYSIS_LONGITUDE="160.240" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - exit 1 -fi - -mkdir -p "${WINDOW_DIRECTORY}" - -extract_value() -{ - local key="$1" - local file="$2" - - awk -F= -v requested_key="${key}" ' - $1 == requested_key { - print substr($0, index($0, "=") + 1) - exit - } - ' "${file}" -} - -classify_score() -{ - local score="$1" - - awk \ - -v score="${score}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "1" - } else { - print "0" - } - }' -} - -run_window() -{ - local case_id="$1" - local label="$2" - local observation_start_time="$3" - local cutoff_time="$4" - local target_time="$5" - local target_depth="$6" - local target_magnitude="$7" - local target_region="$8" - - local observation_start_epoch - local cutoff_epoch - local target_epoch - - local report_file - - local experiment_status - local evidence_event_count - local hazard_evidence - local fused_confidence - local dominant_pattern - local dominant_expert - local predicted_label - - observation_start_epoch="$( - date -u -d "${observation_start_time}" +%s - )" - - cutoff_epoch="$( - date -u -d "${cutoff_time}" +%s - )" - - target_epoch="$( - date -u -d "${target_time}" +%s - )" - - report_file="${WINDOW_DIRECTORY}/${case_id}.txt" - - echo "Running ${case_id}..." - - "${RUNNER}" \ - "${CATALOG}" \ - "${target_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${target_depth}" \ - "${target_magnitude}" \ - "${target_region}" \ - "${observation_start_epoch}" \ - "${cutoff_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - > "${report_file}" - - experiment_status="$( - extract_value "experiment_status" "${report_file}" - )" - - if [[ "${experiment_status}" != "ok" ]]; then - echo "Experiment failed for ${case_id}." >&2 - cat "${report_file}" >&2 - exit 1 - fi - - evidence_event_count="$( - extract_value "evidence_event_count" "${report_file}" - )" - - hazard_evidence="$( - extract_value "hazard_evidence" "${report_file}" - )" - - fused_confidence="$( - extract_value "fused_confidence" "${report_file}" - )" - - dominant_pattern="$( - extract_value "dominant_pattern" "${report_file}" - )" - - dominant_expert="$( - extract_value "dominant_expert" "${report_file}" - )" - - predicted_label="$( - classify_score "${hazard_evidence}" - )" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${label}" \ - "${predicted_label}" \ - "${observation_start_time}" \ - "${cutoff_time}" \ - "${evidence_event_count}" \ - "${hazard_evidence}" \ - "${fused_confidence}" \ - "${dominant_pattern}" \ - "${dominant_expert}" \ - >> "${SUMMARY_FILE}" -} - -cat > "${SUMMARY_FILE}" <<'EOF' -case_id,label,predicted_label,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert -EOF - -run_window \ - "russia_2021_control" \ - "0" \ - "2020-07-28T23:24:52Z" \ - "2021-07-28T23:24:52Z" \ - "2021-07-29T23:24:52Z" \ - "0.0" \ - "0.0" \ - "Kamchatka 2021 negative control" - -run_window \ - "russia_2022_control" \ - "0" \ - "2021-07-28T23:24:52Z" \ - "2022-07-28T23:24:52Z" \ - "2022-07-29T23:24:52Z" \ - "0.0" \ - "0.0" \ - "Kamchatka 2022 negative control" - -run_window \ - "russia_2023_control" \ - "0" \ - "2022-07-28T23:24:52Z" \ - "2023-07-28T23:24:52Z" \ - "2023-07-29T23:24:52Z" \ - "0.0" \ - "0.0" \ - "Kamchatka 2023 negative control" - -run_window \ - "russia_2024_control" \ - "0" \ - "2023-07-28T23:24:52Z" \ - "2024-07-28T23:24:52Z" \ - "2024-07-29T23:24:52Z" \ - "0.0" \ - "0.0" \ - "Kamchatka 2024 negative control" - -run_window \ - "russia_2025_positive" \ - "1" \ - "2024-07-28T23:24:52Z" \ - "2025-07-28T23:24:52Z" \ - "2025-07-29T23:24:52Z" \ - "35.0" \ - "8.8" \ - "Off the east coast of the Kamchatka Peninsula Russia" - -echo -echo "Validation suite complete." -echo "Frozen threshold: ${FROZEN_THRESHOLD}" -echo "Summary:" -echo " ${SUMMARY_FILE}" \ No newline at end of file diff --git a/experiments/venezuela_2026/README.md b/experiments/venezuela_2026/README.md deleted file mode 100644 index eb1cd1f..0000000 --- a/experiments/venezuela_2026/README.md +++ /dev/null @@ -1,188 +0,0 @@ -# Venezuela 2026 Hindcast Experiment - -This experiment evaluates the frozen CAMEFF b1.0.0 validation pipeline -against the larger earthquake in the 24 June 2026 northern Venezuela -earthquake doublet. - -## Target event - -* Time: 2026-06-24 22:05:11 UTC -* Latitude: 10.401 degrees north -* Longitude: 68.321 degrees west -* Depth: 10.0 km -* Magnitude: M7.5 -* USGS event identifier: us6000t7zp -* Regional setting: northern Venezuela -* Tectonic setting: shallow strike-slip faulting near a plate boundary - -## Doublet handling - -A separate M7.1 earthquake occurred approximately thirty-nine seconds -before the M7.5 target. - -The frozen CAMEFF forecast cutoff is twenty-four hours before the target: - -```text -2026-06-23 22:05:11 UTC -``` - -Consequently, neither the M7.1 event nor the M7.5 target can enter the -evidence window. - -The raw acquisition may contain the earlier M7.1 event because the raw -catalog ends one second before the M7.5 target. The hindcast filter must -remove every event at or after the frozen cutoff before signal extraction. - -## Frozen validation rules - -The following rules were fixed before evaluating Venezuela: - -* Warning threshold: 0.73 -* Forecast lead time: 24 hours -* Evidence window: 365 days -* Analysis radius: 500 km -* Minimum catalog magnitude: M2.5 -* Minimum evidence events: 20 - -Neither the threshold nor the CAMEFF core mathematics may be modified to -fit the Venezuela outcome. - -## Why this case matters - -Japan and Kamchatka were major subduction-zone hits. - -Cebu and Davao were misses under the frozen threshold. - -Venezuela is a shallow strike-slip doublet in a different tectonic -environment. It is therefore an important final untouched test of the -current CAMEFF architecture. - -A positive score below 0.73 must be recorded as a miss. - -## Validation catalog - -The catalog covers approximately five years before the target event. - -Acquisition parameters: - -* Start: 2021-06-23 22:05:11 UTC -* End: 2026-06-24 22:05:10 UTC -* Centre: 10.401, -68.321 -* Radius: 500 km -* Minimum magnitude: M2.5 -* Event type: earthquake -* Ordering: ascending origin time - -## Download - -From the repository root: - -```bash -./experiments/venezuela_2026/fetch_usgs_raw.sh -``` - -The raw catalog is written to: - -```text -experiments/venezuela_2026/data/raw/usgs_venezuela_2021_2026_raw.csv -``` - -## Normalize - -Build the CAMEFF utilities: - -```bash -cmake --build build -``` - -Normalize the catalog: - -```bash -./experiments/venezuela_2026/normalize_catalog.sh -``` - -The normalized catalog is written to: - -```text -experiments/venezuela_2026/data/normalized/catalog.csv -``` - -## Planned positive window - -* Evidence start: 2025-06-23 22:05:11 UTC -* Cutoff: 2026-06-23 22:05:11 UTC -* Target: 2026-06-24 22:05:11 UTC -* Forecast lead time: 24 hours -* Expected label: positive - -## Planned controls - -* Venezuela 2022 annual control -* Venezuela 2023 annual control -* Venezuela 2024 annual control -* Venezuela 2025 annual control - -Every window will be classified using the frozen warning threshold of -0.73. - -## Interpretation - -CAMEFF hazard evidence is an uncalibrated evidence score and not an -earthquake-occurrence probability. - -This is an untouched retrospective generalization test. - -## Run the positive hindcast - -From the repository root: - -```bash -./experiments/venezuela_2026/run_hindcast.sh -``` - -The positive experiment uses a cutoff exactly twenty-four hours before -the M7.5 target event. - -The generated report is written to: - -```text -experiments/venezuela_2026/results/venezuela_2026_hindcast.txt -``` - -## Run the validation suite - -Run four annual controls followed by the positive target window: - -```bash -./experiments/venezuela_2026/run_validation_suite.sh -``` - -Inspect the results: - -```bash -column -s, -t \ - experiments/venezuela_2026/results/venezuela_validation_windows.csv -``` - -The `predicted_label` field uses the frozen warning threshold of 0.73: - -* `1` means CAMEFF issued a warning. -* `0` means the hazard score remained below the threshold. - -## Frozen-threshold metrics - -Generate the Venezuela metrics: - -```bash -./experiments/venezuela_2026/run_threshold_report.sh -``` - -Inspect the metrics: - -```bash -column -s, -t \ - experiments/venezuela_2026/results/venezuela_frozen_threshold_metrics.csv -``` - -The threshold remains fixed at 0.73. A positive score below this value -must be recorded as a miss. diff --git a/experiments/venezuela_2026/data/normalized/catalog.csv b/experiments/venezuela_2026/data/normalized/catalog.csv deleted file mode 100644 index 44423bf..0000000 --- a/experiments/venezuela_2026/data/normalized/catalog.csv +++ /dev/null @@ -1,75 +0,0 @@ -time,latitude,longitude,depth,mag,region -2021-07-16T09:26:16.536Z,8.8365,-70.5486,16.68,4.4,17 km WNW of Barinitas Venezuela -2021-08-26T01:40:50.614Z,9.588,-69.2393,10,4.8,0 km N of Araure Venezuela -2021-09-25T16:39:45.080Z,10.243,-69.6961,19.94,4.6,35 km NNW of Quíbor Venezuela -2022-03-01T07:59:12.702Z,9.0401,-71.1107,10,4.2,50 km N of Mérida Venezuela -2022-03-01T17:28:48.418Z,8.9759,-71.0695,23.02,4.4,43 km NNE of Mérida Venezuela -2022-03-15T17:06:47.299Z,9.1959,-66.6151,10,4.5,66 km W of Valle de La Pascua Venezuela -2022-04-29T10:11:59.279Z,9.6447,-69.457,10,4.2,24 km WNW of Araure Venezuela -2022-06-08T04:39:19.425Z,8.6017,-71.4059,10,4.5,Merida Venezuela -2022-07-07T02:34:33.050Z,10.0669,-70.7265,10,4.3,58 km E of Lagunillas Venezuela -2022-08-13T07:10:07.001Z,8.6338,-71.524,10,4.4,14 km E of El Vigía Venezuela -2022-09-13T14:14:01.239Z,10.4844,-65.2776,6.358,4.7,75 km WNW of Barcelona Venezuela -2022-09-18T02:11:43.003Z,9.1934,-69.994,10,4.3,32 km WNW of Guanare Venezuela -2022-10-10T17:08:24.729Z,11.0168,-71.1066,46.589,4.3,67 km NE of Maracaibo Venezuela -2023-01-02T18:08:00.212Z,9.7528,-69.6309,10,4.5,18 km ESE of El Tocuyo Venezuela -2023-03-03T20:10:19.597Z,8.2866,-72.2121,13.978,4.6,8 km NNE of La Fría Venezuela -2023-03-19T17:42:00.076Z,11.6448,-72.3136,65.712,4.3,9 km SW of Uribia Colombia -2023-03-28T17:13:40.874Z,12.6167,-70.9912,47.638,4.5,near the coast of Venezuela -2023-04-30T04:59:17.552Z,9.3074,-69.804,10,4.6,Lara - Portuguesa region Venezuela -2023-06-30T04:23:10.650Z,12.9502,-70.6809,27.654,4.5,132 km NNW of Santa Cruz de los Taques Venezuela -2023-11-09T02:01:27.144Z,11.6278,-70.305,21.831,4.1,10 km WSW of Punta Cardón Venezuela -2023-12-07T15:23:35.807Z,10.6659,-65.0829,10,4.6,67 km N of Puerto Píritu Venezuela -2023-12-26T16:11:31.567Z,10.915,-70.5127,25.954,4.5,21 km ESE of Dabajuro Venezuela -2023-12-28T06:51:58.594Z,10.9242,-70.49,17.868,4.4,23 km ESE of Dabajuro Venezuela -2024-01-25T09:41:10.327Z,9.3386,-70.3853,10,4.4,6 km ESE of Trujillo Venezuela -2024-02-21T03:40:15.949Z,9.3413,-70.0616,10,4.1,22 km ENE of Boconó Venezuela -2024-03-28T23:23:45.752Z,9.6383,-69.977,10.208,4.9,26 km SW of El Tocuyo Venezuela -2024-03-29T03:02:29.967Z,9.5397,-69.904,13.324,4.3,29 km SSW of El Tocuyo Venezuela -2024-04-07T08:03:44.436Z,10.47,-65.0787,10,4.5,45 km N of Puerto Píritu Venezuela -2024-05-03T12:04:36.516Z,9.6863,-72.7936,12.168,4.6,49 km SSW of Machiques Venezuela -2024-05-19T18:31:00.300Z,10.711,-65.6449,10,4.6,55 km ENE of Higuerote Venezuela -2024-05-25T18:01:41.794Z,11.8202,-69.0665,10,4.4,48 km NE of Puerto Cumarebo Venezuela -2024-06-05T03:31:25.902Z,8.8767,-71.219,17.142,4.6,11 km SSE of Tucaní Venezuela -2024-07-25T03:09:54.655Z,10.6476,-64.5527,10,4.4,33 km WNW of Araya Venezuela -2024-07-25T14:11:06.526Z,9.897,-70.7223,18.897,4.7,23 km ENE of Mene Grande Venezuela -2024-08-09T11:22:19.099Z,10.7573,-69.1997,10,4.6,48 km NW of Aroa Venezuela -2024-08-29T14:19:02.277Z,9.8803,-70.8093,17.254,4.5,13 km ENE of Mene Grande Venezuela -2024-09-01T07:47:45.808Z,9.9218,-70.5465,10.616,4.4,42 km ENE of Mene Grande Venezuela -2024-10-31T23:39:21.246Z,12.3764,-68.991,10,4.4,73 km WNW of Dorp Rincon Bonaire Saint Eustatius and Saba -2024-11-13T01:42:58.771Z,11.035,-72.3377,10,4.1,31 km ESE of Albania Colombia -2024-12-24T09:11:50.544Z,10.7353,-68.7586,10,4.6,17 km NNW of Yumare Venezuela -2025-06-28T05:35:18.025Z,11.0653,-69.1312,10,4.2,52 km SSE of Puerto Cumarebo Venezuela -2025-08-27T20:10:10.376Z,8.8122,-71.2831,14.52,4.4,17 km S of Tucaní Venezuela -2025-09-24T21:50:34.896Z,9.9384,-70.7343,10,4.2,23 km ENE of Mene Grande Venezuela -2025-09-24T22:21:55.716Z,9.8668,-70.8781,9,6.2,5 km ENE of Mene Grande Venezuela -2025-09-24T22:33:10.557Z,9.9192,-70.6755,10,4.9,28 km ENE of Mene Grande Venezuela -2025-09-24T22:52:14.775Z,9.9265,-70.8178,10,4.6,14 km NE of Mene Grande Venezuela -2025-09-25T00:01:19.944Z,9.8027,-70.6325,13.602,4.4,32 km E of Mene Grande Venezuela -2025-09-25T01:18:41.190Z,9.8774,-70.8406,10,4.3,10 km ENE of Mene Grande Venezuela -2025-09-25T02:42:37.878Z,9.7941,-70.7163,10,4.9,23 km ESE of Mene Grande Venezuela -2025-09-25T03:51:39.565Z,9.9355,-70.7081,14,6.3,25 km ENE of Mene Grande Venezuela -2025-09-25T04:11:37.056Z,9.7922,-70.8698,10,4.4,8 km SE of Mene Grande Venezuela -2025-09-25T04:24:14.330Z,9.825,-70.7393,10,4.5,20 km E of Mene Grande Venezuela -2025-09-25T06:42:53.539Z,9.7939,-70.7598,10,4.4,19 km ESE of Mene Grande Venezuela -2025-09-25T06:55:38.881Z,9.8621,-70.7516,12.195,5.3,19 km E of Mene Grande Venezuela -2025-09-25T11:28:22.661Z,9.9307,-70.7656,20.305,4.5,19 km ENE of Mene Grande Venezuela -2025-09-30T11:06:21.244Z,9.8894,-70.9702,10,4.5,6 km NW of Mene Grande Venezuela -2025-10-08T18:27:24.778Z,11.8935,-70.6363,76.14,4.4,42 km W of Santa Cruz de los Taques Venezuela -2025-10-13T16:54:33.656Z,8.9324,-66.8932,8.446,4.3,53 km SSE of El Sombrero Venezuela -2025-10-15T09:30:26.633Z,9.8723,-70.7667,10,4.4,17 km E of Mene Grande Venezuela -2025-10-15T10:12:04.411Z,9.9182,-70.7624,10,4.5,19 km ENE of Mene Grande Venezuela -2025-10-21T07:32:31.903Z,12.2142,-64.7835,10,4.5,153 km NW of Juan Griego Venezuela -2025-10-24T21:30:52.388Z,11.3798,-71.8215,96.556,4.7,45 km E of Maicao Colombia -2025-10-31T05:13:02.660Z,9.7865,-70.7547,10,4.1,19 km ESE of Mene Grande Venezuela -2025-12-02T04:48:24.805Z,9.9404,-70.8134,10,4.6,16 km NE of Mene Grande Venezuela -2025-12-08T02:27:14.174Z,12.0222,-69.6299,10,4.5,32 km ENE of Pueblo Nuevo Venezuela -2026-01-01T12:37:06.282Z,10.4676,-72.1167,25.47,4.6,26 km NE of La Villa del Rosario Venezuela -2026-01-05T11:32:18.064Z,10.7686,-70.0154,10,4.3,66 km N of Carora Venezuela -2026-02-08T17:20:51.188Z,9.9117,-70.585,31.523,4.3,38 km E of Mene Grande Venezuela -2026-05-15T23:21:36.848Z,10.5399,-72.4762,10,4.4,29 km NW of La Villa del Rosario Venezuela -2026-05-17T01:46:07.010Z,10.6158,-66.5378,10,3.8,15 km N of Guatire Venezuela -2026-06-04T23:41:15.280Z,9.6411,-70.0077,10,4.8,28 km SW of El Tocuyo Venezuela -2026-06-14T00:39:48.528Z,9.2573,-69.677,27.145,4.3,24 km W of Ospino Venezuela -2026-06-18T01:23:29.204Z,9.2935,-69.93,10,4.7,34 km NW of Guanare Venezuela -2026-06-24T22:04:34.363Z,10.4085,-68.5571,27.588,7.2,21 km ENE of San Felipe Venezuela diff --git a/experiments/venezuela_2026/fetch_usgs_raw.sh b/experiments/venezuela_2026/fetch_usgs_raw.sh deleted file mode 100644 index f313639..0000000 --- a/experiments/venezuela_2026/fetch_usgs_raw.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -RAW_DATA_DIRECTORY="${SCRIPT_DIR}/data/raw" -OUTPUT_FILE="${RAW_DATA_DIRECTORY}/usgs_venezuela_2021_2026_raw.csv" - -mkdir -p "${RAW_DATA_DIRECTORY}" - -USGS_QUERY_URL="https://earthquake.usgs.gov/fdsnws/event/1/query" - -TARGET_LATITUDE="10.401" -TARGET_LONGITUDE="-68.321" - -ANALYSIS_RADIUS_KM="500" - -START_TIME="2021-06-23T22:05:11Z" - -# One second before the M7.5 target earthquake. -END_TIME="2026-06-24T22:05:10Z" - -MINIMUM_MAGNITUDE="2.5" - -echo "Downloading USGS northern Venezuela validation catalog..." -echo "Output: ${OUTPUT_FILE}" - -curl \ - --fail \ - --location \ - --silent \ - --show-error \ - --get \ - "${USGS_QUERY_URL}" \ - --data-urlencode "format=csv" \ - --data-urlencode "starttime=${START_TIME}" \ - --data-urlencode "endtime=${END_TIME}" \ - --data-urlencode "latitude=${TARGET_LATITUDE}" \ - --data-urlencode "longitude=${TARGET_LONGITUDE}" \ - --data-urlencode "maxradiuskm=${ANALYSIS_RADIUS_KM}" \ - --data-urlencode "minmagnitude=${MINIMUM_MAGNITUDE}" \ - --data-urlencode "eventtype=earthquake" \ - --data-urlencode "orderby=time-asc" \ - --output "${OUTPUT_FILE}" - -if [[ ! -s "${OUTPUT_FILE}" ]]; then - echo "USGS returned an empty catalog." >&2 - exit 1 -fi - -LINE_COUNT="$( - wc -l < "${OUTPUT_FILE}" -)" - -if (( LINE_COUNT >= 20001 )); then - echo "Catalog may have reached the USGS query limit." >&2 - echo "Rows including header: ${LINE_COUNT}" >&2 - echo "Split the acquisition into shorter intervals." >&2 - exit 1 -fi - -echo "Download complete." -echo "Rows including header: ${LINE_COUNT}" -echo "Raw catalog: ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/venezuela_2026/normalize_catalog.sh b/experiments/venezuela_2026/normalize_catalog.sh deleted file mode 100644 index 33647a2..0000000 --- a/experiments/venezuela_2026/normalize_catalog.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -RAW_CATALOG="${SCRIPT_DIR}/data/raw/usgs_venezuela_2021_2026_raw.csv" - -NORMALIZED_DIRECTORY="${SCRIPT_DIR}/data/normalized" -NORMALIZED_CATALOG="${NORMALIZED_DIRECTORY}/catalog.csv" - -NORMALIZER="${REPOSITORY_ROOT}/build/cameff_catalog_normalizer" - -if [[ ! -x "${NORMALIZER}" ]]; then - echo "Catalog normalizer not found:" >&2 - echo " ${NORMALIZER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${RAW_CATALOG}" ]]; then - echo "Raw Venezuela catalog not found:" >&2 - echo " ${RAW_CATALOG}" >&2 - echo "Run the acquisition script first." >&2 - exit 1 -fi - -mkdir -p "${NORMALIZED_DIRECTORY}" - -"${NORMALIZER}" \ - "${RAW_CATALOG}" \ - "${NORMALIZED_CATALOG}" - -echo "Normalized catalog created:" -echo " ${NORMALIZED_CATALOG}" \ No newline at end of file diff --git a/experiments/venezuela_2026/results/venezuela_frozen_threshold_metrics.csv b/experiments/venezuela_2026/results/venezuela_frozen_threshold_metrics.csv deleted file mode 100644 index 69b92d2..0000000 --- a/experiments/venezuela_2026/results/venezuela_frozen_threshold_metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -threshold,tp,fp,tn,fn,not_evaluable,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy -0.73,0,0,0,1,4,NA,0.000000,NA,NA,NA,NA diff --git a/experiments/venezuela_2026/run_hindcast.sh b/experiments/venezuela_2026/run_hindcast.sh deleted file mode 100644 index 38ec952..0000000 --- a/experiments/venezuela_2026/run_hindcast.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -REPORT_FILE="${RESULT_DIRECTORY}/venezuela_2026_hindcast.txt" - -TARGET_TIME="2026-06-24T22:05:11Z" - -# Frozen 24-hour forecasting lead. -CUTOFF_TIME="2026-06-23T22:05:11Z" - -# One-year evidence window ending at the cutoff. -OBSERVATION_START_TIME="2025-06-23T22:05:11Z" - -TARGET_EPOCH="$( - date -u -d "${TARGET_TIME}" +%s -)" - -CUTOFF_EPOCH="$( - date -u -d "${CUTOFF_TIME}" +%s -)" - -OBSERVATION_START_EPOCH="$( - date -u -d "${OBSERVATION_START_TIME}" +%s -)" - -TARGET_LATITUDE="10.401" -TARGET_LONGITUDE="-68.321" -TARGET_DEPTH_KM="10.0" -TARGET_MAGNITUDE="7.5" -TARGET_REGION="Northern Venezuela" - -ANALYSIS_LATITUDE="10.401" -ANALYSIS_LONGITUDE="-68.321" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - echo "Build the project first:" >&2 - echo " cmake --build build" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - echo "Run the acquisition and normalization scripts first." >&2 - exit 1 -fi - -mkdir -p "${RESULT_DIRECTORY}" - -"${RUNNER}" \ - "${CATALOG}" \ - "${TARGET_EPOCH}" \ - "${TARGET_LATITUDE}" \ - "${TARGET_LONGITUDE}" \ - "${TARGET_DEPTH_KM}" \ - "${TARGET_MAGNITUDE}" \ - "${TARGET_REGION}" \ - "${OBSERVATION_START_EPOCH}" \ - "${CUTOFF_EPOCH}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - | tee "${REPORT_FILE}" - -HAZARD_EVIDENCE="$( - awk -F= ' - $1 == "hazard_evidence" { - print $2 - exit - } - ' "${REPORT_FILE}" -)" - -if [[ -z "${HAZARD_EVIDENCE}" ]]; then - echo "Unable to extract hazard evidence." >&2 - exit 1 -fi - -CLASSIFICATION="$( - awk \ - -v score="${HAZARD_EVIDENCE}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "warning" - } else { - print "no_warning" - } - }' -)" - -echo "frozen_threshold=${FROZEN_THRESHOLD}" \ - | tee -a "${REPORT_FILE}" - -echo "threshold_classification=${CLASSIFICATION}" \ - | tee -a "${REPORT_FILE}" - -echo -echo "Hindcast report written to:" -echo " ${REPORT_FILE}" \ No newline at end of file diff --git a/experiments/venezuela_2026/run_threshold_report.sh b/experiments/venezuela_2026/run_threshold_report.sh deleted file mode 100644 index e2f701b..0000000 --- a/experiments/venezuela_2026/run_threshold_report.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -INPUT_FILE="${SCRIPT_DIR}/results/venezuela_validation_windows.csv" -OUTPUT_FILE="${SCRIPT_DIR}/results/venezuela_frozen_threshold_metrics.csv" - -if [[ ! -f "${INPUT_FILE}" ]]; then - echo "Venezuela validation results not found:" >&2 - echo " ${INPUT_FILE}" >&2 - echo "Run the validation suite first." >&2 - exit 1 -fi - -awk -F, ' - NR == 1 { - next - } - - { - if ($3 == "NA") { - not_evaluable++ - next - } - - label = $2 + 0 - prediction = $3 + 0 - - if (label == 1 && prediction == 1) { - tp++ - } else if (label == 0 && prediction == 1) { - fp++ - } else if (label == 0 && prediction == 0) { - tn++ - } else if (label == 1 && prediction == 0) { - fn++ - } - } - - END { - precision = (tp + fp) ? sprintf("%.6f", tp / (tp + fp)) : "NA" - recall = (tp + fn) ? sprintf("%.6f", tp / (tp + fn)) : "NA" - specificity = (tn + fp) ? sprintf("%.6f", tn / (tn + fp)) : "NA" - fpr = (fp + tn) ? sprintf("%.6f", fp / (fp + tn)) : "NA" - - if (precision != "NA" && recall != "NA" && - ((precision + 0.0) + (recall + 0.0)) > 0.0) { - f1 = sprintf("%.6f", 2.0 * (precision + 0.0) * (recall + 0.0) / ((precision + 0.0) + (recall + 0.0))) - } else if (precision != "NA" && recall != "NA") { - f1 = "0.000000" - } else { - f1 = "NA" - } - - if (recall != "NA" && specificity != "NA") { - balanced_accuracy = sprintf("%.6f", ((recall + 0.0) + (specificity + 0.0)) / 2.0) - } else { - balanced_accuracy = "NA" - } - - print "threshold,tp,fp,tn,fn,not_evaluable,precision,recall,specificity,false_positive_rate,f1,balanced_accuracy" - - printf "0.73,%d,%d,%d,%d,%d,%s,%s,%s,%s,%s,%s\n", \ - tp, fp, tn, fn, not_evaluable, \ - precision, recall, specificity, fpr, f1, balanced_accuracy - } -' "${INPUT_FILE}" | tee "${OUTPUT_FILE}" - -echo -echo "Frozen-threshold report written to:" -echo " ${OUTPUT_FILE}" \ No newline at end of file diff --git a/experiments/venezuela_2026/run_validation_suite.sh b/experiments/venezuela_2026/run_validation_suite.sh deleted file mode 100644 index bae74ce..0000000 --- a/experiments/venezuela_2026/run_validation_suite.sh +++ /dev/null @@ -1,264 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$( - cd "$(dirname "${BASH_SOURCE[0]}")" - pwd -)" - -REPOSITORY_ROOT="$( - cd "${SCRIPT_DIR}/../.." - pwd -)" - -CATALOG="${SCRIPT_DIR}/data/normalized/catalog.csv" -RUNNER="${REPOSITORY_ROOT}/build/cameff_hindcast_runner" - -RESULT_DIRECTORY="${SCRIPT_DIR}/results" -WINDOW_DIRECTORY="${RESULT_DIRECTORY}/windows" -SUMMARY_FILE="${RESULT_DIRECTORY}/venezuela_validation_windows.csv" - -ANALYSIS_LATITUDE="10.401" -ANALYSIS_LONGITUDE="-68.321" -ANALYSIS_RADIUS_KM="500" - -LOOKBACK_DAYS="365" -MINIMUM_EVENTS="20" - -FROZEN_THRESHOLD="0.73" - -if [[ ! -x "${RUNNER}" ]]; then - echo "Hindcast runner not found:" >&2 - echo " ${RUNNER}" >&2 - exit 1 -fi - -if [[ ! -f "${CATALOG}" ]]; then - echo "Normalized catalog not found:" >&2 - echo " ${CATALOG}" >&2 - exit 1 -fi - -mkdir -p "${WINDOW_DIRECTORY}" - -extract_value() -{ - local key="$1" - local file="$2" - - awk -F= -v requested_key="${key}" ' - $1 == requested_key { - print substr($0, index($0, "=") + 1) - exit - } - ' "${file}" -} - -classify_score() -{ - local score="$1" - - awk \ - -v score="${score}" \ - -v threshold="${FROZEN_THRESHOLD}" \ - 'BEGIN { - if ((score + 0.0) >= (threshold + 0.0)) { - print "1" - } else { - print "0" - } - }' -} - -run_window() -{ - local case_id="$1" - local label="$2" - local observation_start_time="$3" - local cutoff_time="$4" - local target_time="$5" - local target_depth="$6" - local target_magnitude="$7" - local target_region="$8" - - local observation_start_epoch - local cutoff_epoch - local target_epoch - - local report_file - - local experiment_status - local evidence_event_count - local hazard_evidence - local fused_confidence - local dominant_pattern - local dominant_expert - local predicted_label - - observation_start_epoch="$( - date -u -d "${observation_start_time}" +%s - )" - - cutoff_epoch="$( - date -u -d "${cutoff_time}" +%s - )" - - target_epoch="$( - date -u -d "${target_time}" +%s - )" - - report_file="${WINDOW_DIRECTORY}/${case_id}.txt" - - echo "Running ${case_id}..." - - if ! "${RUNNER}" \ - "${CATALOG}" \ - "${target_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${target_depth}" \ - "${target_magnitude}" \ - "${target_region}" \ - "${observation_start_epoch}" \ - "${cutoff_epoch}" \ - "${ANALYSIS_LATITUDE}" \ - "${ANALYSIS_LONGITUDE}" \ - "${ANALYSIS_RADIUS_KM}" \ - "${LOOKBACK_DAYS}" \ - "${MINIMUM_EVENTS}" \ - > "${report_file}" - then - experiment_status="$( - extract_value "experiment_status" "${report_file}" - )" - - evidence_event_count="$( - extract_value "evidence_event_count" "${report_file}" - )" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${label}" \ - "NA" \ - "${observation_start_time}" \ - "${cutoff_time}" \ - "${evidence_event_count:-0}" \ - "NA" \ - "NA" \ - "NOT_EVALUATED" \ - "NOT_EVALUATED" \ - >> "${SUMMARY_FILE}" - - echo "${case_id}: not evaluable (${experiment_status:-runner_failure})" - - return 0 - fi - - experiment_status="$( - extract_value "experiment_status" "${report_file}" - )" - - if [[ "${experiment_status}" != "ok" ]]; then - echo "Experiment failed for ${case_id}." >&2 - cat "${report_file}" >&2 - exit 1 - fi - - evidence_event_count="$( - extract_value "evidence_event_count" "${report_file}" - )" - - hazard_evidence="$( - extract_value "hazard_evidence" "${report_file}" - )" - - fused_confidence="$( - extract_value "fused_confidence" "${report_file}" - )" - - dominant_pattern="$( - extract_value "dominant_pattern" "${report_file}" - )" - - dominant_expert="$( - extract_value "dominant_expert" "${report_file}" - )" - - predicted_label="$( - classify_score "${hazard_evidence}" - )" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${label}" \ - "${predicted_label}" \ - "${observation_start_time}" \ - "${cutoff_time}" \ - "${evidence_event_count}" \ - "${hazard_evidence}" \ - "${fused_confidence}" \ - "${dominant_pattern}" \ - "${dominant_expert}" \ - >> "${SUMMARY_FILE}" -} - -cat > "${SUMMARY_FILE}" <<'EOF' -case_id,label,predicted_label,observation_start,cutoff,evidence_event_count,hazard_evidence,fused_confidence,dominant_pattern,dominant_expert -EOF - -run_window \ - "venezuela_2022_control" \ - "0" \ - "2021-06-23T22:05:11Z" \ - "2022-06-23T22:05:11Z" \ - "2022-06-24T22:05:11Z" \ - "0.0" \ - "0.0" \ - "Venezuela 2022 negative control" - -run_window \ - "venezuela_2023_control" \ - "0" \ - "2022-06-23T22:05:11Z" \ - "2023-06-23T22:05:11Z" \ - "2023-06-24T22:05:11Z" \ - "0.0" \ - "0.0" \ - "Venezuela 2023 negative control" - -run_window \ - "venezuela_2024_control" \ - "0" \ - "2023-06-23T22:05:11Z" \ - "2024-06-23T22:05:11Z" \ - "2024-06-24T22:05:11Z" \ - "0.0" \ - "0.0" \ - "Venezuela 2024 negative control" - -run_window \ - "venezuela_2025_control" \ - "0" \ - "2024-06-23T22:05:11Z" \ - "2025-06-23T22:05:11Z" \ - "2025-06-24T22:05:11Z" \ - "0.0" \ - "0.0" \ - "Venezuela 2025 negative control" - -run_window \ - "venezuela_2026_positive" \ - "1" \ - "2025-06-23T22:05:11Z" \ - "2026-06-23T22:05:11Z" \ - "2026-06-24T22:05:11Z" \ - "10.0" \ - "7.5" \ - "Northern Venezuela" - -echo -echo "Validation suite complete." -echo "Frozen threshold: ${FROZEN_THRESHOLD}" -echo "Summary:" -echo " ${SUMMARY_FILE}" \ No newline at end of file diff --git a/include/cameff.h b/include/cameff.h new file mode 100644 index 0000000..16d9b5d --- /dev/null +++ b/include/cameff.h @@ -0,0 +1,4 @@ +#ifndef CAMEFF_COMPAT_H +#define CAMEFF_COMPAT_H +#include "cameff/cameff.h" +#endif diff --git a/include/cameff/baseline_expert.h b/include/cameff/baseline_expert.h deleted file mode 100644 index d8045a9..0000000 --- a/include/cameff/baseline_expert.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CAMEFF_BASELINE_EXPERT_H -#define CAMEFF_BASELINE_EXPERT_H - -#include "cameff/expert.h" - -const cameff_expert_t *cameff_baseline_expert(void); - -#endif diff --git a/include/cameff/cameff.h b/include/cameff/cameff.h index a8efafb..77fee45 100644 --- a/include/cameff/cameff.h +++ b/include/cameff/cameff.h @@ -1,21 +1,175 @@ -#ifndef CAMEFF_CAMEFF_H -#define CAMEFF_CAMEFF_H - -#include "cameff/baseline_expert.h" -#include "cameff/catalog.h" -#include "cameff/config.h" -#include "cameff/expert_registry.h" -#include "cameff/framework.h" -#include "cameff/geo.h" -#include "cameff/expert.h" -#include "cameff/pattern.h" -#include "cameff/region.h" -#include "cameff/signals.h" -#include "cameff/types.h" -#include "cameff/cascade_expert.h" -#include "cameff/crustal_fault_expert.h" -#include "cameff/evaluation.h" -#include "cameff/subduction_expert.h" -#include "cameff/fusion.h" +#ifndef CAMEFF_H +#define CAMEFF_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define CAMEFF_MAX_EXPERTS 15 +#define CAMEFF_MAX_SIGNALS 64 +#define CAMEFF_MAX_NAME 64 +#define CAMEFF_EPS 1e-12 + +typedef enum { + CAMEFF_AVAILABLE = 0, + CAMEFF_UNAVAILABLE_PARAMETER = 1, + CAMEFF_INSUFFICIENT_EVIDENCE = 2, + CAMEFF_INELIGIBLE_TEMPORAL_MODE = 3, + CAMEFF_UNKNOWN_PATTERN = 4 +} cameff_availability_t; + +typedef enum { + CAMEFF_MODE_A_GENERAL_MOE = 0, + CAMEFF_MODE_B_CATALOG_MULTISIGNAL = 1, + CAMEFF_MODE_C_LONG_TERM_IMMINENCE = 2, + CAMEFF_MODE_D_POST_TRIGGER = 3 +} cameff_processing_mode_t; + +typedef struct { + double time_days; + double magnitude; +} cameff_event_t; + +typedef struct { + const char *name; + double value; + double reliability; + int available; +} cameff_signal_t; + +typedef struct { + const char *expert_id; + cameff_availability_t status; + double compatibility; + double routing_weight; + double output; + double reliability; + double effective_weight; + double contribution; +} cameff_expert_result_t; + +typedef struct { + cameff_availability_t status; + double mc; + double b_value; + double alpha; + double c; + double p; + double mu; + double k; + double loglik; + double branching_proxy; + size_t events_total; + size_t events_above_mc; +} cameff_etas_fit_t; + +typedef struct { + cameff_availability_t status; + size_t training_rows; + size_t training_positives; + double training_prevalence; + double intercept; + double coef_log_p; + double coef_neg_log_1mp; +} cameff_calibration_t; + +typedef struct { + cameff_availability_t status; + double raw_probability; + double calibrated_probability; + cameff_etas_fit_t fit; + cameff_calibration_t calibration; +} cameff_forecast_t; + +/* Core numerical utilities */ +double cameff_sigmoid(double x); +double cameff_probability_logit(double p); +double cameff_clip01(double x); + +/* FM-v1.4 reference architecture utilities */ +double cameff_signal_effective(const cameff_signal_t *signal); +double cameff_weighted_quality( + const cameff_signal_t *signals, + const double *weights, + size_t count, + int *available +); +void cameff_normalize_supports( + const double *raw, + size_t count, + double temperature, + double *out +); +double cameff_unknown_support( + double max_known, + double quality, + double nearest_domain_distance, + int has_distance, + double lambda_max, + double lambda_quality, + double lambda_distance, + double distance_scale +); +cameff_availability_t cameff_fuse( + cameff_expert_result_t *results, + size_t count, + double agreement_beta, + double coherence_beta, + double contradiction_beta, + double quality_beta, + double agreement, + double coherence, + double contradiction, + double quality, + double *score_out +); + +/* Validated operational branch: temporal ETAS + P29K */ +cameff_availability_t cameff_estimate_mc( + const cameff_event_t *events, + size_t count, + double decision_time_days, + double *mc_out +); +cameff_availability_t cameff_estimate_b_value( + const cameff_event_t *events, + size_t count, + double decision_time_days, + double mc, + double *b_out, + size_t *events_above_mc_out +); +cameff_availability_t cameff_fit_temporal_etas( + const cameff_event_t *events, + size_t count, + double decision_time_days, + cameff_etas_fit_t *fit_out +); +cameff_availability_t cameff_seven_day_m6_probability( + const cameff_event_t *events, + size_t count, + double decision_time_days, + const cameff_etas_fit_t *fit, + double *probability_out +); + +double cameff_beta_probability( + double raw_probability, + const cameff_calibration_t *calibration +); +cameff_availability_t cameff_apply_p29k_calibration( + double raw_probability, + const cameff_calibration_t *calibration, + double *calibrated_out +); + +const char *cameff_availability_name(cameff_availability_t status); + +#ifdef __cplusplus +} +#endif #endif diff --git a/include/cameff/cascade_expert.h b/include/cameff/cascade_expert.h deleted file mode 100644 index bd34304..0000000 --- a/include/cameff/cascade_expert.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CAMEFF_CASCADE_EXPERT_H -#define CAMEFF_CASCADE_EXPERT_H - -#include "cameff/expert.h" - -const cameff_expert_t *cameff_cascade_expert(void); - -#endif \ No newline at end of file diff --git a/include/cameff/catalog.h b/include/cameff/catalog.h deleted file mode 100644 index c888137..0000000 --- a/include/cameff/catalog.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef CAMEFF_CATALOG_H -#define CAMEFF_CATALOG_H - -#include "cameff/types.h" - -void cameff_catalog_init(cameff_catalog_t *catalog); -void cameff_catalog_free(cameff_catalog_t *catalog); -cameff_status_t cameff_catalog_append(cameff_catalog_t *catalog, const cameff_event_t *event); -cameff_status_t cameff_catalog_load_csv(const char *path, cameff_catalog_t *catalog, - char *error_message, size_t error_message_size); -cameff_status_t cameff_parse_iso8601_utc(const char *text, int64_t *epoch_seconds); - -#endif diff --git a/include/cameff/config.h b/include/cameff/config.h deleted file mode 100644 index d08591e..0000000 --- a/include/cameff/config.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CAMEFF_CONFIG_H -#define CAMEFF_CONFIG_H - -#include "cameff/types.h" - -void cameff_config_default(cameff_config_t *config); -cameff_status_t cameff_config_load(const char *path, cameff_config_t *config, - char *error_message, size_t error_message_size); - -#endif diff --git a/include/cameff/crustal_fault_expert.h b/include/cameff/crustal_fault_expert.h deleted file mode 100644 index 5e608e8..0000000 --- a/include/cameff/crustal_fault_expert.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CAMEFF_CRUSTAL_FAULT_EXPERT_H -#define CAMEFF_CRUSTAL_FAULT_EXPERT_H - -#include "cameff/expert.h" - -const cameff_expert_t *cameff_crustal_fault_expert(void); - -#endif \ No newline at end of file diff --git a/include/cameff/evaluation.h b/include/cameff/evaluation.h deleted file mode 100644 index ad72d1e..0000000 --- a/include/cameff/evaluation.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef CAMEFF_EVALUATION_H -#define CAMEFF_EVALUATION_H - -#include - -#include "cameff/config.h" -#include "cameff/expert.h" -#include "cameff/pattern.h" -#include "cameff/region.h" -#include "cameff/types.h" - -typedef struct { - double routing_threshold; - double minimum_fused_confidence; - double watch_threshold; - double elevated_threshold; -} cameff_evaluation_options_t; - -typedef struct { - cameff_pattern_result_t patterns; - cameff_multi_expert_result_t fusion; -} cameff_evaluation_result_t; - -void cameff_evaluation_options_default( - cameff_evaluation_options_t *options -); - -cameff_status_t cameff_evaluate_experts( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_evaluation_options_t *options, - cameff_evaluation_result_t *result -); - -cameff_status_t cameff_format_evaluation( - const cameff_evaluation_result_t *result, - char *buffer, - size_t buffer_capacity -); - -#endif \ No newline at end of file diff --git a/include/cameff/expert.h b/include/cameff/expert.h deleted file mode 100644 index f4bd507..0000000 --- a/include/cameff/expert.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef CAMEFF_EXPERT_H -#define CAMEFF_EXPERT_H - -#include - -#include "cameff/config.h" -#include "cameff/pattern.h" -#include "cameff/region.h" -#include "cameff/types.h" - -#define CAMEFF_MAX_EXPERTS 8U -#define CAMEFF_MAX_EXPERT_NAME 48U -#define CAMEFF_MAX_EXPLANATION 256U - -typedef enum { - CAMEFF_EXPERT_OK = 0, - CAMEFF_EXPERT_ABSTAIN = 1, - CAMEFF_EXPERT_INSUFFICIENT_DATA = 2, - CAMEFF_EXPERT_ERROR = 3 -} cameff_expert_status_t; - -typedef struct { - char expert_name[CAMEFF_MAX_EXPERT_NAME]; - - double hazard_evidence; - double preparation_evidence; - double cascade_evidence; - - double confidence; - double applicability; - double routing_strength; - - cameff_decision_level_t decision; - cameff_expert_status_t status; - char explanation[CAMEFF_MAX_EXPLANATION]; -} cameff_expert_result_t; - -typedef double (*cameff_expert_applicability_fn)( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -); - -typedef cameff_status_t (*cameff_expert_evaluate_fn)( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -); - -typedef struct { - const char *name; - cameff_pattern_id_t primary_pattern; - cameff_expert_applicability_fn applicability; - cameff_expert_evaluate_fn evaluate; -} cameff_expert_t; - -typedef struct { - double hazard_evidence; - double preparation_evidence; - double cascade_evidence; - - double fused_confidence; - double expert_coverage; - - cameff_pattern_id_t dominant_pattern; - cameff_decision_level_t decision; - - cameff_expert_result_t expert_results[CAMEFF_MAX_EXPERTS]; - size_t expert_result_count; -} cameff_multi_expert_result_t; - -#endif diff --git a/include/cameff/expert_registry.h b/include/cameff/expert_registry.h deleted file mode 100644 index cac5315..0000000 --- a/include/cameff/expert_registry.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef CAMEFF_EXPERT_REGISTRY_H -#define CAMEFF_EXPERT_REGISTRY_H - -#include - -#include "cameff/expert.h" - -typedef struct { - const cameff_expert_t *experts[CAMEFF_MAX_EXPERTS]; - size_t count; -} cameff_expert_registry_t; - -void cameff_expert_registry_init( - cameff_expert_registry_t *registry -); - -cameff_status_t cameff_expert_registry_register( - cameff_expert_registry_t *registry, - const cameff_expert_t *expert -); - -size_t cameff_expert_registry_count( - const cameff_expert_registry_t *registry -); - -const cameff_expert_t *cameff_expert_registry_get( - const cameff_expert_registry_t *registry, - size_t index -); - -double cameff_expert_routing_strength( - const cameff_expert_t *expert, - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -); - -cameff_status_t cameff_expert_registry_evaluate( - const cameff_expert_registry_t *registry, - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - double routing_threshold, - cameff_expert_result_t *results, - size_t result_capacity, - size_t *result_count -); - -#endif \ No newline at end of file diff --git a/include/cameff/framework.h b/include/cameff/framework.h deleted file mode 100644 index 48eb781..0000000 --- a/include/cameff/framework.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CAMEFF_FRAMEWORK_H -#define CAMEFF_FRAMEWORK_H - -#include "cameff/types.h" - -cameff_assessment_t cameff_assess(const cameff_signal_frame_t *frame, - const cameff_config_t *config); -const char *cameff_decision_level_name(cameff_decision_level_t level); - -#endif diff --git a/include/cameff/fusion.h b/include/cameff/fusion.h deleted file mode 100644 index c88a161..0000000 --- a/include/cameff/fusion.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef CAMEFF_FUSION_H -#define CAMEFF_FUSION_H - -#include - -#include "cameff/expert.h" -#include "cameff/pattern.h" - -cameff_status_t cameff_fuse_expert_results( - const cameff_expert_result_t *expert_results, - size_t expert_result_count, - const cameff_pattern_result_t *patterns, - double minimum_confidence, - double watch_threshold, - double elevated_threshold, - cameff_multi_expert_result_t *result -); - -#endif \ No newline at end of file diff --git a/include/cameff/geo.h b/include/cameff/geo.h deleted file mode 100644 index 8328102..0000000 --- a/include/cameff/geo.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef CAMEFF_GEO_H -#define CAMEFF_GEO_H - -double cameff_haversine_km(double latitude1_deg, double longitude1_deg, - double latitude2_deg, double longitude2_deg); - -#endif diff --git a/include/cameff/pattern.h b/include/cameff/pattern.h deleted file mode 100644 index 46aaed1..0000000 --- a/include/cameff/pattern.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef CAMEFF_PATTERN_H -#define CAMEFF_PATTERN_H - -#include - -#include "cameff/region.h" -#include "cameff/types.h" - -#define CAMEFF_PATTERN_COUNT 7U - -typedef enum { - CAMEFF_PATTERN_BACKGROUND = 0, - CAMEFF_PATTERN_SUBDUCTION_PREPARATION = 1, - CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION = 2, - CAMEFF_PATTERN_SEISMIC_CASCADE = 3, - CAMEFF_PATTERN_VOLCANIC_UNREST = 4, - CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY = 5, - CAMEFF_PATTERN_UNKNOWN = 6 -} cameff_pattern_id_t; - -typedef struct { - cameff_pattern_id_t pattern_id; - double membership; - double confidence; -} cameff_pattern_score_t; - -typedef struct { - cameff_pattern_score_t scores[CAMEFF_PATTERN_COUNT]; - size_t count; - - double classification_confidence; - cameff_pattern_id_t dominant_pattern; -} cameff_pattern_result_t; - -/* - * Produces deterministic compatibility memberships for the currently - * supported process-pattern families. - * - * Memberships are normalized and sum to approximately 1.0. - * They are not calibrated earthquake probabilities. - */ -cameff_status_t cameff_classify_patterns( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - cameff_pattern_result_t *result -); - -const char *cameff_pattern_name(cameff_pattern_id_t pattern_id); - -#endif // CAMEFF_PATTERN_H \ No newline at end of file diff --git a/include/cameff/region.h b/include/cameff/region.h deleted file mode 100644 index 59d1d21..0000000 --- a/include/cameff/region.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef CAMEFF_REGION_H -#define CAMEFF_REGION_H - -#define CAMEFF_MAX_REGION_ID 64U - -typedef enum { - CAMEFF_TECTONIC_UNKNOWN = 0, - CAMEFF_TECTONIC_SUBDUCTION = 1, - CAMEFF_TECTONIC_CRUSTAL = 2, - CAMEFF_TECTONIC_TRANSFORM = 3, - CAMEFF_TECTONIC_VOLCANIC = 4, - CAMEFF_TECTONIC_MIXED = 5 -} cameff_tectonic_setting_t; - -typedef struct { - char region_id[CAMEFF_MAX_REGION_ID]; - cameff_tectonic_setting_t tectonic_setting; - - double subduction_affinity; - double crustal_fault_affinity; - double transform_affinity; - double volcanic_affinity; - - double fault_map_confidence; - double catalog_completeness; - double station_coverage; - double regional_prior_confidence; -} cameff_region_profile_t; - -#endif diff --git a/include/cameff/signals.h b/include/cameff/signals.h deleted file mode 100644 index a14bcbd..0000000 --- a/include/cameff/signals.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef CAMEFF_SIGNALS_H -#define CAMEFF_SIGNALS_H - -#include "cameff/types.h" - -const char *cameff_signal_name(cameff_signal_id_t signal_id); -cameff_status_t cameff_extract_signal_frame(const cameff_catalog_t *catalog, - const cameff_analysis_window_t *window, - const cameff_config_t *config, - cameff_signal_frame_t *frame); - -#endif diff --git a/include/cameff/subduction_expert.h b/include/cameff/subduction_expert.h deleted file mode 100644 index b023f98..0000000 --- a/include/cameff/subduction_expert.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CAMEFF_SUBDUCTION_EXPERT_H -#define CAMEFF_SUBDUCTION_EXPERT_H - -#include "cameff/expert.h" - -const cameff_expert_t *cameff_subduction_expert(void); - -#endif \ No newline at end of file diff --git a/include/cameff/types.h b/include/cameff/types.h deleted file mode 100644 index 566a86e..0000000 --- a/include/cameff/types.h +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef CAMEFF_TYPES_H -#define CAMEFF_TYPES_H - -#include -#include - -#define CAMEFF_SIGNAL_COUNT 8U -#define CAMEFF_MAX_EVENT_ID 64U -#define CAMEFF_MAX_SOURCE 32U - -typedef enum { - CAMEFF_STATUS_OK = 0, - CAMEFF_STATUS_INVALID_ARGUMENT = 1, - CAMEFF_STATUS_IO_ERROR = 2, - CAMEFF_STATUS_PARSE_ERROR = 3, - CAMEFF_STATUS_OUT_OF_MEMORY = 4, - CAMEFF_STATUS_INSUFFICIENT_DATA = 5 -} cameff_status_t; - -typedef enum { - CAMEFF_SIGNAL_ACTIVITY_RATE = 0, - CAMEFF_SIGNAL_TEMPORAL_ACCELERATION = 1, - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION = 2, - CAMEFF_SIGNAL_MAGNITUDE_TREND = 3, - CAMEFF_SIGNAL_DEPTH_MIGRATION = 4, - CAMEFF_SIGNAL_B_VALUE_ANOMALY = 5, - CAMEFF_SIGNAL_CATALOG_COMPLETENESS = 6, - CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE = 7 -} cameff_signal_id_t; - -typedef struct { - char id[CAMEFF_MAX_EVENT_ID]; - char source[CAMEFF_MAX_SOURCE]; - int64_t epoch_seconds; - double latitude_deg; - double longitude_deg; - double depth_km; - double magnitude; -} cameff_event_t; - -typedef struct { - cameff_event_t *items; - size_t count; - size_t capacity; -} cameff_catalog_t; - -typedef struct { - double center_latitude_deg; - double center_longitude_deg; - double radius_km; - unsigned lookback_days; - int64_t cutoff_epoch_seconds; -} cameff_analysis_window_t; - -typedef struct { - double value; - double confidence; - size_t supporting_events; - int available; -} cameff_signal_t; - -typedef struct { - cameff_signal_t signals[CAMEFF_SIGNAL_COUNT]; - size_t selected_event_count; - double data_confidence; -} cameff_signal_frame_t; - -typedef enum { - CAMEFF_DECISION_INSUFFICIENT_DATA = 0, - CAMEFF_DECISION_BACKGROUND = 1, - CAMEFF_DECISION_WATCH = 2, - CAMEFF_DECISION_ELEVATED = 3 -} cameff_decision_level_t; - -typedef struct { - double evidence_score; - double confidence; - cameff_decision_level_t level; - unsigned available_signal_count; - unsigned contradictory_signal_count; -} cameff_assessment_t; - -typedef struct { - size_t minimum_events; - double watch_threshold; - double elevated_threshold; - double minimum_data_confidence; - double fault_map_confidence; - double weights[CAMEFF_SIGNAL_COUNT]; -} cameff_config_t; - -#endif diff --git a/sample_output.txt b/sample_output.txt deleted file mode 100644 index a00ca74..0000000 --- a/sample_output.txt +++ /dev/null @@ -1,14 +0,0 @@ -CAMEFF b1.0.0 Milestone 1 -selected_events=8 -status=0 -signal.activity_rate=0.500000 confidence=1.000000 available=1 -signal.temporal_acceleration=0.750000 confidence=0.666667 available=1 -signal.spatial_concentration=0.980584 confidence=1.000000 available=1 -signal.magnitude_trend=0.700000 confidence=0.666667 available=1 -signal.depth_migration=0.645000 confidence=0.666667 available=1 -signal.b_value_anomaly=0.142830 confidence=0.084000 available=0 -signal.catalog_completeness=0.500000 confidence=1.000000 available=1 -signal.fault_map_confidence=0.500000 confidence=1.000000 available=1 -evidence_score=0.676245 -confidence=0.857143 -decision=WATCH diff --git a/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.awk b/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.awk deleted file mode 100644 index 2e8be07..0000000 --- a/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.awk +++ /dev/null @@ -1,313 +0,0 @@ -BEGIN { - FS = "," - OFS = "," - - pi = atan2(0, -1) - earth_radius_km = 6371.0088 - - total_count = 0 - - recent_count = 0 - background_count = 0 - - recent_mag_count = 0 - previous_mag_count = 0 - - migration_count = 0 - - b_recent_count = 0 - b_background_count = 0 - - recent_max_mag = "" - previous_max_mag = "" - - recent_distance_sum = 0.0 - recent_min_distance = "" - - migration_sum_x = 0.0 - migration_sum_y = 0.0 - migration_sum_xx = 0.0 - migration_sum_xy = 0.0 - - b_recent_mag_sum = 0.0 - b_background_mag_sum = 0.0 - - leakage_count = 0 -} - -function clean(value) { - sub(/\r$/, "", value) - sub(/^"/, "", value) - sub(/"$/, "", value) - - return value -} - -function iso_epoch(value, pieces, date_part, time_part) { - value = clean(value) - - sub(/\.[0-9]+Z$/, "", value) - sub(/Z$/, "", value) - - split(value, pieces, "T") - - date_part = pieces[1] - time_part = pieces[2] - - gsub(/-/, " ", date_part) - gsub(/:/, " ", time_part) - - return mktime(date_part " " time_part, 1) -} - -function radians(degrees) { - return degrees * pi / 180.0 -} - -function haversine(lat1, lon1, lat2, lon2, rlat1, rlon1, rlat2, rlon2, dlat, dlon, a, c) { - rlat1 = radians(lat1) - rlon1 = radians(lon1) - rlat2 = radians(lat2) - rlon2 = radians(lon2) - - dlat = rlat2 - rlat1 - dlon = rlon2 - rlon1 - - a = sin(dlat / 2.0) ^ 2 + cos(rlat1) * cos(rlat2) * sin(dlon / 2.0) ^ 2 - - if (a > 1.0) { - a = 1.0 - } - - if (a < 0.0) { - a = 0.0 - } - - c = 2.0 * atan2(sqrt(a), sqrt(1.0 - a)) - - return earth_radius_km * c -} - -NR == 1 { - for (i = 1; i <= NF; i++) { - header[clean($i)] = i - } - - required[1] = "time" - required[2] = "latitude" - required[3] = "longitude" - required[4] = "mag" - required[5] = "id" - - for (i = 1; i <= 5; i++) { - if (!(required[i] in header)) { - print "ERROR: Missing USGS column: " required[i] > "/dev/stderr" - exit 2 - } - } - - next -} - -{ - event_time = clean($(header["time"])) - event_epoch = iso_epoch(event_time) - - if (event_epoch >= decision_epoch) { - leakage_count++ - next - } - - if (event_epoch < lookback_start_epoch) { - next - } - - latitude = clean($(header["latitude"])) + 0.0 - longitude = clean($(header["longitude"])) + 0.0 - magnitude = clean($(header["mag"])) + 0.0 - - if (magnitude < catalog_min_magnitude) { - next - } - - distance_km = haversine(center_lat, center_lon, latitude, longitude) - - if (distance_km > radius_km) { - next - } - - total_count++ - - if (event_epoch >= recent_start_epoch) { - recent_count++ - recent_distance_sum += distance_km - - if (recent_min_distance == "" || distance_km < recent_min_distance) { - recent_min_distance = distance_km - } - } - - if (event_epoch >= background_start_epoch && event_epoch < recent_start_epoch) { - background_count++ - } - - if (event_epoch >= magnitude_start_epoch) { - recent_mag_count++ - - if (recent_max_mag == "" || magnitude > recent_max_mag) { - recent_max_mag = magnitude - } - } - - if (event_epoch >= previous_magnitude_start_epoch && event_epoch < magnitude_start_epoch) { - previous_mag_count++ - - if (previous_max_mag == "" || magnitude > previous_max_mag) { - previous_max_mag = magnitude - } - } - - if (event_epoch >= migration_start_epoch) { - x_days = (event_epoch - migration_start_epoch) / 86400.0 - y_distance = distance_km - - migration_count++ - migration_sum_x += x_days - migration_sum_y += y_distance - migration_sum_xx += x_days * x_days - migration_sum_xy += x_days * y_distance - } - - if (event_epoch >= recent_b_start_epoch) { - b_recent_count++ - b_recent_mag_sum += magnitude - } - - if (event_epoch >= background_b_start_epoch && event_epoch < recent_b_start_epoch) { - b_background_count++ - b_background_mag_sum += magnitude - } -} - -END { - recent_days = recent_window_days + 0.0 - background_days = background_window_days - recent_window_days - - if (recent_days > 0.0) { - recent_rate = recent_count / recent_days - } else { - recent_rate = 0.0 - } - - if (background_days > 0.0) { - background_rate = background_count / background_days - } else { - background_rate = 0.0 - } - - if (background_rate > 0.0) { - rate_ratio = recent_rate / background_rate - } else { - rate_ratio = "" - } - - if (recent_count > 0) { - recent_mean_distance = recent_distance_sum / recent_count - } else { - recent_mean_distance = "" - } - - if (recent_max_mag != "" && previous_max_mag != "") { - delta_max_magnitude = recent_max_mag - previous_max_mag - } else { - delta_max_magnitude = "" - } - - denominator = migration_count * migration_sum_xx - migration_sum_x * migration_sum_x - - if (migration_count >= 2 && denominator != 0.0) { - migration_slope = (migration_count * migration_sum_xy - migration_sum_x * migration_sum_y) / denominator - } else { - migration_slope = "" - } - - if (b_recent_count > 0) { - b_recent_mean_mag = b_recent_mag_sum / b_recent_count - } else { - b_recent_mean_mag = "" - } - - if (b_background_count > 0) { - b_background_mean_mag = b_background_mag_sum / b_background_count - } else { - b_background_mean_mag = "" - } - - printf "%s,%d,%d,%.9f,%d,%.9f,", case_id, total_count, recent_count, recent_rate, background_count, background_rate - - if (rate_ratio == "") { - printf "," - } else { - printf "%.9f,", rate_ratio - } - - printf "%d,", recent_mag_count - - if (recent_max_mag == "") { - printf "," - } else { - printf "%.3f,", recent_max_mag - } - - printf "%d,", previous_mag_count - - if (previous_max_mag == "") { - printf "," - } else { - printf "%.3f,", previous_max_mag - } - - if (delta_max_magnitude == "") { - printf "," - } else { - printf "%.3f,", delta_max_magnitude - } - - if (recent_mean_distance == "") { - printf "," - } else { - printf "%.6f,", recent_mean_distance - } - - if (recent_min_distance == "") { - printf "," - } else { - printf "%.6f,", recent_min_distance - } - - printf "%d,", migration_count - - if (migration_slope == "") { - printf "," - } else { - printf "%.9f,", migration_slope - } - - printf "%d,", b_recent_count - - if (b_recent_mean_mag == "") { - printf "," - } else { - printf "%.6f,", b_recent_mean_mag - } - - printf "%d,", b_background_count - - if (b_background_mean_mag == "") { - printf "," - } else { - printf "%.6f,", b_background_mean_mag - } - - printf "%d\n", leakage_count -} diff --git a/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.sh b/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.sh deleted file mode 100644 index 82f18b6..0000000 --- a/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.sh +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -PROJECT_ROOT="$( - cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && - pwd -)" - -EXPERIMENT_ROOT="${PROJECT_ROOT}/experiments/fm_v1_3_wider_usgs_hindcast" -REGISTRY_FILE="${EXPERIMENT_ROOT}/experiment_registry.csv" -DATASET_MAP_FILE="${EXPERIMENT_ROOT}/dataset_map.csv" -PARAMETER_FILE="${EXPERIMENT_ROOT}/protocol/davao_catalog_parameter_registry.csv" -RESULTS_DIRECTORY="${EXPERIMENT_ROOT}/results" - -AWK_PROGRAM="${PROJECT_ROOT}/scripts/experiments/fm_v1_3_usgs/extract_raw_observables.awk" - -OUTPUT_FILE="${RESULTS_DIRECTORY}/raw_catalog_observables.csv" -WINDOW_FILE="${RESULTS_DIRECTORY}/raw_catalog_windows.csv" - -: "${CAMEFF_CATALOG_REPO:?Set CAMEFF_CATALOG_REPO to the catalog repository path}" - -for command_name in gawk date mkdir; do - command -v "${command_name}" >/dev/null 2>&1 || { - printf 'ERROR: Required command not found: %s\n' \ - "${command_name}" >&2 - exit 1 - } -done - -for required_file in \ - "${REGISTRY_FILE}" \ - "${DATASET_MAP_FILE}" \ - "${PARAMETER_FILE}" \ - "${AWK_PROGRAM}" -do - [[ -f "${required_file}" ]] || { - printf 'ERROR: Required file not found:\n %s\n' \ - "${required_file}" >&2 - exit 1 - } -done - -parameter_value() { - local parameter_name="$1" - - gawk -F',' \ - -v requested_parameter="${parameter_name}" \ - 'NR > 1 && $1 == requested_parameter { print $2; exit }' \ - "${PARAMETER_FILE}" -} - -recent_rate_window_days="$(parameter_value recent_rate_window_days)" -background_rate_window_days="$(parameter_value background_rate_window_days)" -magnitude_window_days="$(parameter_value magnitude_window_days)" -migration_window_days="$(parameter_value migration_window_days)" -recent_b_window_days="$(parameter_value recent_b_window_days)" -background_b_window_days="$(parameter_value background_b_window_days)" - -for parameter_name in \ - recent_rate_window_days \ - background_rate_window_days \ - magnitude_window_days \ - migration_window_days \ - recent_b_window_days \ - background_b_window_days -do - parameter_value_result="$(parameter_value "${parameter_name}")" - - [[ -n "${parameter_value_result}" ]] || { - printf 'ERROR: Missing parameter value: %s\n' \ - "${parameter_name}" >&2 - exit 1 - } -done - -mkdir -p "${RESULTS_DIRECTORY}" - -declare -A FEATURE_PATHS - -while IFS=',' read -r \ - dataset_id \ - feature_relative_path \ - outcome_relative_path -do - dataset_id="${dataset_id%$'\r'}" - feature_relative_path="${feature_relative_path%$'\r'}" - - [[ "${dataset_id}" == "catalog_dataset" ]] && continue - [[ -z "${dataset_id}" ]] && continue - - FEATURE_PATHS["${dataset_id}"]="${feature_relative_path}" -done < "${DATASET_MAP_FILE}" - -printf '%s\n' \ -'case_id,total_predecision_count,recent_count,recent_rate_per_day,background_count,background_rate_per_day,rate_ratio,recent_magnitude_count,recent_max_magnitude,previous_magnitude_count,previous_max_magnitude,delta_max_magnitude,recent_mean_distance_km,recent_min_distance_km,migration_event_count,migration_distance_slope_km_per_day,recent_b_event_count,recent_b_mean_magnitude,background_b_event_count,background_b_mean_magnitude,postdecision_catalog_rows_excluded' \ -> "${OUTPUT_FILE}" - -printf '%s\n' \ -'case_id,lookback_start_utc,decision_time_utc,recent_rate_start_utc,background_rate_start_utc,magnitude_start_utc,previous_magnitude_start_utc,migration_start_utc,recent_b_start_utc,background_b_start_utc,parameter_set_id,estimator_status' \ -> "${WINDOW_FILE}" - -while IFS=',' read -r \ - case_id \ - case_role \ - region_name \ - tectonic_regime \ - catalog_dataset \ - target_event_id \ - target_time_utc \ - decision_time_utc \ - lookback_start_utc \ - center_latitude \ - center_longitude \ - radius_km \ - minimum_catalog_magnitude \ - target_magnitude \ - forecast_horizon_days \ - analysis_stage \ - declared_math_path \ - existing_outcome_label \ - case_status -do - case_id="${case_id%$'\r'}" - catalog_dataset="${catalog_dataset%$'\r'}" - decision_time_utc="${decision_time_utc%$'\r'}" - lookback_start_utc="${lookback_start_utc%$'\r'}" - center_latitude="${center_latitude%$'\r'}" - center_longitude="${center_longitude%$'\r'}" - radius_km="${radius_km%$'\r'}" - minimum_catalog_magnitude="${minimum_catalog_magnitude%$'\r'}" - - [[ "${case_id}" == "case_id" ]] && continue - [[ -z "${case_id}" ]] && continue - - feature_relative_path="${FEATURE_PATHS[${catalog_dataset}]:-}" - - [[ -n "${feature_relative_path}" ]] || { - printf 'ERROR: No feature path for dataset: %s\n' \ - "${catalog_dataset}" >&2 - exit 1 - } - - feature_catalog="${CAMEFF_CATALOG_REPO}/${feature_relative_path}" - - [[ -f "${feature_catalog}" ]] || { - printf 'ERROR: Feature catalog missing:\n %s\n' \ - "${feature_catalog}" >&2 - exit 1 - } - - decision_epoch="$(date -u --date="${decision_time_utc}" +%s)" - lookback_start_epoch="$(date -u --date="${lookback_start_utc}" +%s)" - - recent_start_epoch=$((decision_epoch - recent_rate_window_days * 86400)) - background_start_epoch=$((decision_epoch - background_rate_window_days * 86400)) - - magnitude_start_epoch=$((decision_epoch - magnitude_window_days * 86400)) - previous_magnitude_start_epoch=$((decision_epoch - 2 * magnitude_window_days * 86400)) - - migration_start_epoch=$((decision_epoch - migration_window_days * 86400)) - - recent_b_start_epoch=$((decision_epoch - recent_b_window_days * 86400)) - background_b_start_epoch=$((decision_epoch - background_b_window_days * 86400)) - - recent_start_utc="$( - date -u --date="@${recent_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - background_start_utc="$( - date -u --date="@${background_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - magnitude_start_utc="$( - date -u --date="@${magnitude_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - previous_magnitude_start_utc="$( - date -u --date="@${previous_magnitude_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - migration_start_utc="$( - date -u --date="@${migration_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - recent_b_start_utc="$( - date -u --date="@${recent_b_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - background_b_start_utc="$( - date -u --date="@${background_b_start_epoch}" '+%Y-%m-%dT%H:%M:%SZ' - )" - - TZ=UTC gawk \ - -v case_id="${case_id}" \ - -v decision_epoch="${decision_epoch}" \ - -v lookback_start_epoch="${lookback_start_epoch}" \ - -v recent_start_epoch="${recent_start_epoch}" \ - -v background_start_epoch="${background_start_epoch}" \ - -v magnitude_start_epoch="${magnitude_start_epoch}" \ - -v previous_magnitude_start_epoch="${previous_magnitude_start_epoch}" \ - -v migration_start_epoch="${migration_start_epoch}" \ - -v recent_b_start_epoch="${recent_b_start_epoch}" \ - -v background_b_start_epoch="${background_b_start_epoch}" \ - -v recent_window_days="${recent_rate_window_days}" \ - -v background_window_days="${background_rate_window_days}" \ - -v center_lat="${center_latitude}" \ - -v center_lon="${center_longitude}" \ - -v radius_km="${radius_km}" \ - -v catalog_min_magnitude="${minimum_catalog_magnitude}" \ - -f "${AWK_PROGRAM}" \ - "${feature_catalog}" \ - >> "${OUTPUT_FILE}" - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${lookback_start_utc}" \ - "${decision_time_utc}" \ - "${recent_start_utc}" \ - "${background_start_utc}" \ - "${magnitude_start_utc}" \ - "${previous_magnitude_start_utc}" \ - "${migration_start_utc}" \ - "${recent_b_start_utc}" \ - "${background_b_start_utc}" \ - "davao_catalog_v0.1" \ - "provisional_not_frozen" \ - >> "${WINDOW_FILE}" - - printf 'Extracted raw observables: %s\n' "${case_id}" - -done < "${REGISTRY_FILE}" - -printf '\nRaw observable extraction complete.\n' -printf 'Observables: %s\n' "${OUTPUT_FILE}" -printf 'Windows: %s\n' "${WINDOW_FILE}" diff --git a/scripts/experiments/fm_v1_3_usgs/label_outcomes.awk b/scripts/experiments/fm_v1_3_usgs/label_outcomes.awk deleted file mode 100644 index 2747fe3..0000000 --- a/scripts/experiments/fm_v1_3_usgs/label_outcomes.awk +++ /dev/null @@ -1,109 +0,0 @@ -BEGIN { - FS = "," - OFS = "," - - pi = atan2(0, -1) - earth_radius_km = 6371.0088 -} - -function clean(value) { - sub(/\r$/, "", value) - sub(/^"/, "", value) - sub(/"$/, "", value) - - return value -} - -function iso_epoch(value, pieces, date_part, time_part) { - value = clean(value) - - sub(/\.[0-9]+Z$/, "", value) - sub(/Z$/, "", value) - - split(value, pieces, "T") - - date_part = pieces[1] - time_part = pieces[2] - - gsub(/-/, " ", date_part) - gsub(/:/, " ", time_part) - - return mktime(date_part " " time_part, 1) -} - -function radians(degrees) { - return degrees * pi / 180.0 -} - -function haversine(lat1, lon1, lat2, lon2, dlat, dlon, a, c) { - lat1 = radians(lat1) - lon1 = radians(lon1) - lat2 = radians(lat2) - lon2 = radians(lon2) - - dlat = lat2 - lat1 - dlon = lon2 - lon1 - - a = sin(dlat / 2.0) ^ 2 + cos(lat1) * cos(lat2) * sin(dlon / 2.0) ^ 2 - - if (a > 1.0) { - a = 1.0 - } - - if (a < 0.0) { - a = 0.0 - } - - c = 2.0 * atan2(sqrt(a), sqrt(1.0 - a)) - - return earth_radius_km * c -} - -NR == 1 { - for (i = 1; i <= NF; i++) { - header[clean($i)] = i - } - - required[1] = "time" - required[2] = "latitude" - required[3] = "longitude" - required[4] = "mag" - required[5] = "id" - - for (i = 1; i <= 5; i++) { - if (!(required[i] in header)) { - print "ERROR: Missing USGS CSV column: " required[i] > "/dev/stderr" - exit 2 - } - } - - next -} - -{ - event_time = clean($(header["time"])) - event_epoch = iso_epoch(event_time) - - if (event_epoch <= decision_epoch || event_epoch > outcome_end_epoch) { - next - } - - magnitude = clean($(header["mag"])) + 0.0 - - if (magnitude < target_mag) { - next - } - - latitude = clean($(header["latitude"])) + 0.0 - longitude = clean($(header["longitude"])) + 0.0 - - distance = haversine(center_lat, center_lon, latitude, longitude) - - if (distance > radius_km) { - next - } - - event_id = clean($(header["id"])) - - printf "%s,%s,%s,%.3f,%.6f,%.6f,%.3f\n", case_id, event_id, event_time, magnitude, latitude, longitude, distance -} diff --git a/scripts/experiments/fm_v1_3_usgs/label_outcomes.sh b/scripts/experiments/fm_v1_3_usgs/label_outcomes.sh deleted file mode 100644 index 9030aef..0000000 --- a/scripts/experiments/fm_v1_3_usgs/label_outcomes.sh +++ /dev/null @@ -1,227 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -PROJECT_ROOT="$( - cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && - pwd -)" - -EXPERIMENT_ROOT="${PROJECT_ROOT}/experiments/fm_v1_3_wider_usgs_hindcast" -REGISTRY_FILE="${EXPERIMENT_ROOT}/experiment_registry.csv" -DATASET_MAP_FILE="${EXPERIMENT_ROOT}/dataset_map.csv" -RESULTS_DIRECTORY="${EXPERIMENT_ROOT}/results" - -AWK_PROGRAM="${PROJECT_ROOT}/scripts/experiments/fm_v1_3_usgs/label_outcomes.awk" -OUTPUT_FILE="${RESULTS_DIRECTORY}/outcome_labels.csv" -DETAIL_FILE="${RESULTS_DIRECTORY}/qualifying_events.csv" - -: "${CAMEFF_CATALOG_REPO:?Set CAMEFF_CATALOG_REPO to the catalog repository path}" - -for command_name in gawk date sort head cut wc mktemp; do - command -v "${command_name}" >/dev/null 2>&1 || { - printf 'ERROR: Required command not found: %s\n' \ - "${command_name}" >&2 - exit 1 - } -done - -for required_file in \ - "${REGISTRY_FILE}" \ - "${DATASET_MAP_FILE}" \ - "${AWK_PROGRAM}" -do - [[ -f "${required_file}" ]] || { - printf 'ERROR: Required file not found:\n %s\n' \ - "${required_file}" >&2 - exit 1 - } -done - -mkdir -p "${RESULTS_DIRECTORY}" - -declare -A OUTCOME_PATHS - -while IFS=',' read -r \ - dataset_id \ - feature_relative_path \ - outcome_relative_path -do - dataset_id="${dataset_id%$'\r'}" - outcome_relative_path="${outcome_relative_path%$'\r'}" - - [[ "${dataset_id}" == "catalog_dataset" ]] && continue - [[ -z "${dataset_id}" ]] && continue - - OUTCOME_PATHS["${dataset_id}"]="${outcome_relative_path}" -done < "${DATASET_MAP_FILE}" - -printf '%s\n' \ -'case_id,case_role,decision_time_utc,outcome_end_utc,target_magnitude,radius_km,qualifying_event_count,largest_qualifying_magnitude,first_qualifying_event_id,first_qualifying_event_time,outcome_label' \ -> "${OUTPUT_FILE}" - -printf '%s\n' \ -'case_id,event_id,event_time_utc,magnitude,latitude,longitude,distance_km' \ -> "${DETAIL_FILE}" - -temporary_directory="$(mktemp -d)" - -cleanup() { - rm -rf "${temporary_directory}" -} - -trap cleanup EXIT - -while IFS=',' read -r \ - case_id \ - case_role \ - region_name \ - tectonic_regime \ - catalog_dataset \ - target_event_id \ - target_time_utc \ - decision_time_utc \ - lookback_start_utc \ - center_latitude \ - center_longitude \ - radius_km \ - min_catalog_magnitude \ - target_magnitude \ - forecast_horizon_days \ - analysis_stage \ - declared_math_path \ - existing_outcome_label \ - case_status -do - case_id="${case_id%$'\r'}" - case_role="${case_role%$'\r'}" - catalog_dataset="${catalog_dataset%$'\r'}" - decision_time_utc="${decision_time_utc%$'\r'}" - center_latitude="${center_latitude%$'\r'}" - center_longitude="${center_longitude%$'\r'}" - radius_km="${radius_km%$'\r'}" - target_magnitude="${target_magnitude%$'\r'}" - forecast_horizon_days="${forecast_horizon_days%$'\r'}" - - [[ "${case_id}" == "case_id" ]] && continue - [[ -z "${case_id}" ]] && continue - - outcome_relative_path="${OUTCOME_PATHS[${catalog_dataset}]:-}" - - [[ -n "${outcome_relative_path}" ]] || { - printf 'ERROR: No outcome path for dataset: %s\n' \ - "${catalog_dataset}" >&2 - exit 1 - } - - outcome_catalog="${CAMEFF_CATALOG_REPO}/${outcome_relative_path}" - - [[ -f "${outcome_catalog}" ]] || { - printf 'ERROR: Outcome catalog missing:\n %s\n' \ - "${outcome_catalog}" >&2 - exit 1 - } - - decision_epoch="$(date -u --date="${decision_time_utc}" +%s)" - - outcome_end_epoch="$( - date -u \ - --date="${decision_time_utc} +${forecast_horizon_days} days" \ - +%s - )" - - outcome_end_utc="$( - date -u \ - --date="@${outcome_end_epoch}" \ - '+%Y-%m-%dT%H:%M:%SZ' - )" - - case_detail_file="${temporary_directory}/${case_id}.csv" - - TZ=UTC gawk \ - -v case_id="${case_id}" \ - -v decision_epoch="${decision_epoch}" \ - -v outcome_end_epoch="${outcome_end_epoch}" \ - -v center_lat="${center_latitude}" \ - -v center_lon="${center_longitude}" \ - -v radius_km="${radius_km}" \ - -v target_mag="${target_magnitude}" \ - -f "${AWK_PROGRAM}" \ - "${outcome_catalog}" \ - > "${case_detail_file}" - - qualifying_count="$(wc -l < "${case_detail_file}")" - - largest_magnitude="" - first_event_id="" - first_event_time="" - - if (( qualifying_count > 0 )); then - sort -t',' -k3,3 "${case_detail_file}" \ - >> "${DETAIL_FILE}" - - first_event_id="$( - sort -t',' -k3,3 "${case_detail_file}" | - head -n 1 | - cut -d',' -f2 - )" - - first_event_time="$( - sort -t',' -k3,3 "${case_detail_file}" | - head -n 1 | - cut -d',' -f3 - )" - - largest_magnitude="$( - sort -t',' -k4,4nr "${case_detail_file}" | - head -n 1 | - cut -d',' -f4 - )" - fi - - case "${case_role}" in - known_positive) - if (( qualifying_count > 0 )); then - outcome_label="positive_confirmed" - else - outcome_label="positive_target_not_found" - fi - ;; - - deterministic_control) - if (( qualifying_count > 0 )); then - outcome_label="control_positive" - else - outcome_label="control_negative" - fi - ;; - - *) - outcome_label="unknown_role" - ;; - esac - - printf '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' \ - "${case_id}" \ - "${case_role}" \ - "${decision_time_utc}" \ - "${outcome_end_utc}" \ - "${target_magnitude}" \ - "${radius_km}" \ - "${qualifying_count}" \ - "${largest_magnitude}" \ - "${first_event_id}" \ - "${first_event_time}" \ - "${outcome_label}" \ - >> "${OUTPUT_FILE}" - - printf '%-25s %-26s qualifying=%s\n' \ - "${case_id}" \ - "${outcome_label}" \ - "${qualifying_count}" - -done < "${REGISTRY_FILE}" - -printf '\nOutcome labeling complete.\n' -printf 'Summary: %s\n' "${OUTPUT_FILE}" -printf 'Events: %s\n' "${DETAIL_FILE}" diff --git a/scripts/experiments/fm_v1_3_usgs/validate_catalog_access.sh b/scripts/experiments/fm_v1_3_usgs/validate_catalog_access.sh deleted file mode 100644 index 72b1a1f..0000000 --- a/scripts/experiments/fm_v1_3_usgs/validate_catalog_access.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -PROJECT_ROOT="$( - cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && - pwd -)" - -EXPERIMENT_ROOT="${PROJECT_ROOT}/experiments/fm_v1_3_wider_usgs_hindcast" -REGISTRY_FILE="${EXPERIMENT_ROOT}/experiment_registry.csv" -DATASET_MAP_FILE="${EXPERIMENT_ROOT}/dataset_map.csv" - -: "${CAMEFF_CATALOG_REPO:?Set CAMEFF_CATALOG_REPO to the catalog repository path}" - -[[ -f "${REGISTRY_FILE}" ]] || { - printf 'ERROR: Registry not found:\n %s\n' \ - "${REGISTRY_FILE}" >&2 - exit 1 -} - -[[ -f "${DATASET_MAP_FILE}" ]] || { - printf 'ERROR: Dataset map not found:\n %s\n' \ - "${DATASET_MAP_FILE}" >&2 - exit 1 -} - -[[ -d "${CAMEFF_CATALOG_REPO}" ]] || { - printf 'ERROR: Catalog repository not found:\n %s\n' \ - "${CAMEFF_CATALOG_REPO}" >&2 - exit 1 -} - -declare -A FEATURE_PATHS -declare -A OUTCOME_PATHS - -while IFS=',' read -r \ - dataset_id \ - feature_relative_path \ - outcome_relative_path -do - dataset_id="${dataset_id%$'\r'}" - feature_relative_path="${feature_relative_path%$'\r'}" - outcome_relative_path="${outcome_relative_path%$'\r'}" - - [[ "${dataset_id}" == "catalog_dataset" ]] && continue - [[ -z "${dataset_id}" ]] && continue - - FEATURE_PATHS["${dataset_id}"]="${feature_relative_path}" - OUTCOME_PATHS["${dataset_id}"]="${outcome_relative_path}" -done < "${DATASET_MAP_FILE}" - -errors=0 - -printf 'Validating registry datasets...\n\n' - -while IFS=',' read -r \ - case_id \ - case_role \ - region_name \ - tectonic_regime \ - catalog_dataset \ - remaining_fields -do - case_id="${case_id%$'\r'}" - catalog_dataset="${catalog_dataset%$'\r'}" - - [[ "${case_id}" == "case_id" ]] && continue - [[ -z "${case_id}" ]] && continue - - if [[ -z "${FEATURE_PATHS[${catalog_dataset}]+x}" ]]; then - printf 'ERROR: %-25s no dataset-map entry for %s\n' \ - "${case_id}" \ - "${catalog_dataset}" >&2 - errors=$((errors + 1)) - continue - fi - - feature_file="${CAMEFF_CATALOG_REPO}/${FEATURE_PATHS[${catalog_dataset}]}" - outcome_file="${CAMEFF_CATALOG_REPO}/${OUTCOME_PATHS[${catalog_dataset}]}" - - case_errors=0 - - if [[ ! -f "${feature_file}" ]]; then - printf 'ERROR: Feature catalog missing for %s:\n %s\n' \ - "${case_id}" \ - "${feature_file}" >&2 - errors=$((errors + 1)) - case_errors=$((case_errors + 1)) - fi - - if [[ ! -f "${outcome_file}" ]]; then - printf 'ERROR: Outcome catalog missing for %s:\n %s\n' \ - "${case_id}" \ - "${outcome_file}" >&2 - errors=$((errors + 1)) - case_errors=$((case_errors + 1)) - fi - - if (( case_errors == 0 )); then - printf 'OK: %-25s dataset=%s\n' \ - "${case_id}" \ - "${catalog_dataset}" - fi -done < "${REGISTRY_FILE}" - -printf '\n' - -if (( errors > 0 )); then - printf 'Catalog validation failed with %d error(s).\n' \ - "${errors}" >&2 - exit 1 -fi - -printf 'Catalog validation: OK\n' diff --git a/src/cameff.c b/src/cameff.c new file mode 100644 index 0000000..8cb03ec --- /dev/null +++ b/src/cameff.c @@ -0,0 +1,638 @@ +#include "cameff.h" +#include "lbfgsb_standalone.h" + +#include +#include +#include +#include +#include + +#define CAMEFF_TRIGGER_MEMORY_DAYS 365 +#define CAMEFF_MIN_EVENTS_FOR_MC 200 +#define CAMEFF_MIN_EVENTS_ABOVE_MC 100 + +static const double CAMEFF_ALPHA_GRID[] = {0.5, 1.0, 1.5, 2.0}; +static const double CAMEFF_C_GRID[] = {0.05, 0.10, 0.50}; +static const double CAMEFF_P_GRID[] = {1.0, 1.2, 1.5}; + +double cameff_clip01(double x) { + if (x < 0.0) return 0.0; + if (x > 1.0) return 1.0; + return x; +} + +double cameff_sigmoid(double x) { + if (x >= 0.0) { + double z = exp(-x); + return 1.0 / (1.0 + z); + } + { + double z = exp(x); + return z / (1.0 + z); + } +} + +double cameff_probability_logit(double p) { + if (p < CAMEFF_EPS) p = CAMEFF_EPS; + if (p > 1.0 - CAMEFF_EPS) p = 1.0 - CAMEFF_EPS; + return log(p / (1.0 - p)); +} + +double cameff_signal_effective(const cameff_signal_t *signal) { + if (signal == NULL || !signal->available) return 0.0; + return cameff_clip01(signal->value) * cameff_clip01(signal->reliability); +} + +double cameff_weighted_quality( + const cameff_signal_t *signals, + const double *weights, + size_t count, + int *available +) { + double numerator = 0.0; + double denominator = 0.0; + size_t i; + + if (available != NULL) *available = 0; + if (signals == NULL || weights == NULL) return 0.0; + + for (i = 0; i < count; ++i) { + if (weights[i] < 0.0) return 0.0; + if (!signals[i].available) continue; + numerator += weights[i] * cameff_clip01(signals[i].reliability); + denominator += weights[i]; + } + + if (denominator <= 0.0) return 0.0; + if (available != NULL) *available = 1; + return cameff_clip01(numerator / denominator); +} + +void cameff_normalize_supports( + const double *raw, + size_t count, + double temperature, + double *out +) { + size_t i; + double max_value = -DBL_MAX; + double sum = 0.0; + + if (raw == NULL || out == NULL || count == 0 || temperature <= 0.0) return; + + for (i = 0; i < count; ++i) { + double scaled = raw[i] / temperature; + if (scaled > max_value) max_value = scaled; + } + for (i = 0; i < count; ++i) { + out[i] = exp(raw[i] / temperature - max_value); + sum += out[i]; + } + if (sum <= 0.0) { + for (i = 0; i < count; ++i) out[i] = 0.0; + return; + } + for (i = 0; i < count; ++i) out[i] /= sum; +} + +double cameff_unknown_support( + double max_known, + double quality, + double nearest_domain_distance, + int has_distance, + double lambda_max, + double lambda_quality, + double lambda_distance, + double distance_scale +) { + double distance_term = 0.0; + double value; + + if (has_distance && lambda_distance != 0.0) { + double distance = nearest_domain_distance < 0.0 ? 0.0 : nearest_domain_distance; + double scale = distance_scale > CAMEFF_EPS ? distance_scale : CAMEFF_EPS; + distance_term = 1.0 - exp(-distance / scale); + } + + value = lambda_max * (1.0 - cameff_clip01(max_known)) + + lambda_quality * (1.0 - cameff_clip01(quality)) + + lambda_distance * distance_term; + return cameff_clip01(value); +} + +cameff_availability_t cameff_fuse( + cameff_expert_result_t *results, + size_t count, + double agreement_beta, + double coherence_beta, + double contradiction_beta, + double quality_beta, + double agreement, + double coherence, + double contradiction, + double quality, + double *score_out +) { + double numerator = 0.0; + double denominator = 0.0; + double score; + size_t i; + + if (score_out != NULL) *score_out = 0.0; + if (results == NULL || score_out == NULL) return CAMEFF_INSUFFICIENT_EVIDENCE; + + for (i = 0; i < count; ++i) { + cameff_expert_result_t *r = &results[i]; + if (r->status != CAMEFF_AVAILABLE) continue; + if (r->effective_weight <= 0.0) continue; + numerator += r->effective_weight * cameff_clip01(r->output); + denominator += r->effective_weight; + } + + if (denominator <= 0.0) return CAMEFF_INSUFFICIENT_EVIDENCE; + + score = numerator / denominator; + score += agreement_beta * (agreement - 0.5); + score += coherence_beta * (coherence - 0.5); + score -= fabs(contradiction_beta) * contradiction; + score *= fmax(0.0, 1.0 - quality_beta * (1.0 - quality)); + + *score_out = cameff_clip01(score); + return CAMEFF_AVAILABLE; +} + +static int compare_double(const void *a, const void *b) { + double x = *(const double *)a; + double y = *(const double *)b; + return (x > y) - (x < y); +} + +cameff_availability_t cameff_estimate_mc( + const cameff_event_t *events, + size_t count, + double decision_time_days, + double *mc_out +) { + double *magnitudes; + size_t n = 0, i; + double min_mag, max_mag, bin_start; + size_t bins, *hist, max_index = 0; + + if (mc_out != NULL) *mc_out = 0.0; + if (events == NULL || mc_out == NULL) return CAMEFF_INSUFFICIENT_EVIDENCE; + + magnitudes = (double *)malloc(count * sizeof(double)); + if (magnitudes == NULL) return CAMEFF_INSUFFICIENT_EVIDENCE; + + for (i = 0; i < count; ++i) { + if (events[i].time_days >= decision_time_days) continue; + if (!isfinite(events[i].magnitude)) continue; + magnitudes[n++] = events[i].magnitude; + } + + if (n < CAMEFF_MIN_EVENTS_FOR_MC) { + free(magnitudes); + return CAMEFF_INSUFFICIENT_EVIDENCE; + } + + qsort(magnitudes, n, sizeof(double), compare_double); + min_mag = floor(magnitudes[0] * 10.0) / 10.0; + max_mag = ceil(magnitudes[n - 1] * 10.0) / 10.0; + bin_start = min_mag; + bins = (size_t)ceil((max_mag - min_mag) / 0.1) + 2; + + hist = (size_t *)calloc(bins, sizeof(size_t)); + if (hist == NULL) { + free(magnitudes); + return CAMEFF_INSUFFICIENT_EVIDENCE; + } + + for (i = 0; i < n; ++i) { + long index = (long)floor((magnitudes[i] - bin_start) / 0.1 + 1e-9); + if (index < 0) index = 0; + if ((size_t)index >= bins) index = (long)bins - 1; + hist[index]++; + } + + for (i = 1; i < bins; ++i) { + if (hist[i] > hist[max_index]) max_index = i; + } + + *mc_out = bin_start + (double)max_index * 0.1 + 0.2; + *mc_out = round(*mc_out * 100.0) / 100.0; + if (*mc_out < 1.0) *mc_out = 1.0; + if (*mc_out > 5.0) *mc_out = 5.0; + + free(hist); + free(magnitudes); + return CAMEFF_AVAILABLE; +} + +cameff_availability_t cameff_estimate_b_value( + const cameff_event_t *events, + size_t count, + double decision_time_days, + double mc, + double *b_out, + size_t *events_above_mc_out +) { + size_t i, n = 0; + double sum = 0.0; + double mean, denominator; + + if (b_out != NULL) *b_out = 0.0; + if (events_above_mc_out != NULL) *events_above_mc_out = 0; + if (events == NULL || b_out == NULL) return CAMEFF_INSUFFICIENT_EVIDENCE; + + for (i = 0; i < count; ++i) { + if (events[i].time_days >= decision_time_days) continue; + if (!isfinite(events[i].magnitude)) continue; + if (events[i].magnitude < mc) continue; + sum += events[i].magnitude; + n++; + } + + if (events_above_mc_out != NULL) *events_above_mc_out = n; + if (n < CAMEFF_MIN_EVENTS_ABOVE_MC) return CAMEFF_INSUFFICIENT_EVIDENCE; + + mean = sum / (double)n; + denominator = mean - (mc - 0.05); + if (denominator <= 0.0) return CAMEFF_INSUFFICIENT_EVIDENCE; + + *b_out = log10(exp(1.0)) / denominator; + return CAMEFF_AVAILABLE; +} + + + +static double neg_loglik_z( + const double *y, + const double *g_history, + size_t n, + const double z[2], + double grad[2] +) { + double mu = exp(z[0]); + double k = exp(z[1]); + double value = 0.0; + double d_mu = 0.0; + double d_k = 0.0; + size_t i; + + for (i = 0; i < n; ++i) { + double lambda = mu + k * g_history[i]; + double residual; + if (lambda < 1e-12) lambda = 1e-12; + value += lambda - y[i] * log(lambda); + residual = 1.0 - y[i] / lambda; + d_mu += residual * mu; + d_k += residual * k * g_history[i]; + } + + grad[0] = d_mu; + grad[1] = d_k; + return value; +} + +static void optimize_mu_k( + const double *y, + const double *g_history, + size_t n, + double *mu_out, + double *k_out, + double *ll_out +) { + const int dimension = 2; + const int memory = 10; + const int max_iterations = 2000; + const int max_line_search = 20; + const double ftol = 1e-12; + const double machine_epsilon = 2.220446049250313080847263336181640625e-16; + const double factr = ftol / machine_epsilon; + const double pgtol = 1e-8; + + double mean_y = 0.0; + double mean_g = 0.0; + double x[2]; + double lower[2] = {-15.0, -20.0}; + double upper[2] = {5.0, 5.0}; + int nbd[2] = {2, 2}; + double f = 0.0; + double gradient[2] = {0.0, 0.0}; + int task[2] = {0, 0}; + int ln_task[2] = {0, 0}; + int lsave[4] = {0, 0, 0, 0}; + int isave[44] = {0}; + double dsave[29] = {0.0}; + int iterations = 0; + size_t workspace_size; + double *wa; + int *iwa; + size_t i; + + for (i = 0; i < n; ++i) { + mean_y += y[i]; + mean_g += g_history[i]; + } + mean_y /= (double)n; + mean_g /= (double)n; + + x[0] = log(fmax(mean_y * 0.5, 1e-5)); + x[1] = log(fmax(mean_y / (mean_g + 1e-9) * 0.5, 1e-8)); + + workspace_size = (size_t)(2 * memory * dimension + + 5 * dimension + 11 * memory * memory + 8 * memory); + wa = (double *)calloc(workspace_size, sizeof(double)); + iwa = (int *)calloc((size_t)(3 * dimension), sizeof(int)); + if (wa == NULL || iwa == NULL) { + free(wa); + free(iwa); + *mu_out = exp(x[0]); + *k_out = exp(x[1]); + *ll_out = -INFINITY; + return; + } + + while (1) { + cameff_lbfgsb_setulb( + dimension, memory, x, lower, upper, nbd, &f, gradient, + factr, pgtol, wa, iwa, task, lsave, isave, dsave, + max_line_search, ln_task + ); + + if (task[0] == 3) { + f = neg_loglik_z(y, g_history, n, x, gradient); + } else if (task[0] == 1) { + iterations++; + if (iterations >= max_iterations) { + task[0] = 5; + task[1] = 504; + } + } else { + break; + } + } + + *mu_out = exp(x[0]); + *k_out = exp(x[1]); + *ll_out = -f; + + free(wa); + free(iwa); +} + +cameff_availability_t cameff_fit_temporal_etas( + const cameff_event_t *events, + size_t count, + double decision_time_days, + cameff_etas_fit_t *fit_out +) { + double mc, b_value; + size_t above_count = 0, total_count = 0, i; + long start_day, end_day; + size_t days; + double *y = NULL, *marks = NULL, *g = NULL; + cameff_etas_fit_t best; + int have_best = 0; + + if (fit_out == NULL || events == NULL) return CAMEFF_INSUFFICIENT_EVIDENCE; + memset(fit_out, 0, sizeof(*fit_out)); + fit_out->status = CAMEFF_INSUFFICIENT_EVIDENCE; + + if (cameff_estimate_mc(events, count, decision_time_days, &mc) != CAMEFF_AVAILABLE) + return CAMEFF_INSUFFICIENT_EVIDENCE; + if (cameff_estimate_b_value(events, count, decision_time_days, mc, &b_value, &above_count) + != CAMEFF_AVAILABLE) + return CAMEFF_INSUFFICIENT_EVIDENCE; + + start_day = LONG_MAX; + end_day = (long)floor(decision_time_days - 1e-12); + for (i = 0; i < count; ++i) { + if (events[i].time_days >= decision_time_days) continue; + if (!isfinite(events[i].magnitude)) continue; + { + long day = (long)floor(events[i].time_days); + if (day < start_day) start_day = day; + } + total_count++; + } + if (start_day == LONG_MAX || end_day < start_day) + return CAMEFF_INSUFFICIENT_EVIDENCE; + + days = (size_t)(end_day - start_day + 1); + y = (double *)calloc(days, sizeof(double)); + marks = (double *)calloc(days, sizeof(double)); + g = (double *)calloc(days, sizeof(double)); + if (y == NULL || marks == NULL || g == NULL) goto cleanup; + + for (i = 0; i < count; ++i) { + long index; + if (events[i].time_days >= decision_time_days) continue; + if (events[i].magnitude < mc) continue; + index = (long)floor(events[i].time_days) - start_day; + if (index < 0 || (size_t)index >= days) continue; + y[index] += 1.0; + } + + memset(&best, 0, sizeof(best)); + best.loglik = -DBL_MAX; + + { + size_t ai, ci, pi; + for (ai = 0; ai < sizeof(CAMEFF_ALPHA_GRID)/sizeof(CAMEFF_ALPHA_GRID[0]); ++ai) { + double alpha = CAMEFF_ALPHA_GRID[ai]; + memset(marks, 0, days * sizeof(double)); + + for (i = 0; i < count; ++i) { + long index; + if (events[i].time_days >= decision_time_days) continue; + if (events[i].magnitude < mc) continue; + index = (long)floor(events[i].time_days) - start_day; + if (index < 0 || (size_t)index >= days) continue; + marks[index] += exp(alpha * (events[i].magnitude - mc)); + } + + for (ci = 0; ci < sizeof(CAMEFF_C_GRID)/sizeof(CAMEFF_C_GRID[0]); ++ci) { + for (pi = 0; pi < sizeof(CAMEFF_P_GRID)/sizeof(CAMEFF_P_GRID[0]); ++pi) { + double c = CAMEFF_C_GRID[ci]; + double p = CAMEFF_P_GRID[pi]; + double mu, k, ll; + double kernel_sum = 0.0; + double mark_sum = 0.0; + size_t mark_n = 0; + size_t t, lag; + + memset(g, 0, days * sizeof(double)); + for (lag = 1; lag <= CAMEFF_TRIGGER_MEMORY_DAYS; ++lag) { + kernel_sum += pow((double)lag + c, -p); + } + + for (t = 0; t < days; ++t) { + size_t max_lag = t < CAMEFF_TRIGGER_MEMORY_DAYS ? t : CAMEFF_TRIGGER_MEMORY_DAYS; + double total = 0.0; + for (lag = 1; lag <= max_lag; ++lag) { + total += marks[t - lag] * pow((double)lag + c, -p); + } + g[t] = total; + } + + for (i = 0; i < count; ++i) { + if (events[i].time_days >= decision_time_days) continue; + if (events[i].magnitude < mc) continue; + mark_sum += exp(alpha * (events[i].magnitude - mc)); + mark_n++; + } + + optimize_mu_k(y, g, days, &mu, &k, &ll); + { + double mean_mark = mark_n > 0 ? mark_sum / (double)mark_n : 0.0; + double branching = k * kernel_sum * mean_mark; + if (branching < 1.0 && ll > best.loglik) { + best.status = CAMEFF_AVAILABLE; + best.mc = mc; + best.b_value = b_value; + best.alpha = alpha; + best.c = c; + best.p = p; + best.mu = mu; + best.k = k; + best.loglik = ll; + best.branching_proxy = branching; + best.events_total = total_count; + best.events_above_mc = above_count; + have_best = 1; + } + } + } + } + } + } + +cleanup: + free(y); + free(marks); + free(g); + + if (!have_best) return CAMEFF_UNKNOWN_PATTERN; + *fit_out = best; + return CAMEFF_AVAILABLE; +} + +cameff_availability_t cameff_seven_day_m6_probability( + const cameff_event_t *events, + size_t count, + double decision_time_days, + const cameff_etas_fit_t *fit, + double *probability_out +) { + long start_day, decision_day; + size_t days, i, t, lag; + double *marks = NULL, *g = NULL; + double daily_rate, m6_tail, probability; + + if (probability_out != NULL) *probability_out = 0.0; + if (events == NULL || fit == NULL || probability_out == NULL) + return CAMEFF_INSUFFICIENT_EVIDENCE; + if (fit->status != CAMEFF_AVAILABLE) + return CAMEFF_INSUFFICIENT_EVIDENCE; + + start_day = LONG_MAX; + decision_day = (long)floor(decision_time_days); + for (i = 0; i < count; ++i) { + if (events[i].time_days >= decision_time_days) continue; + if ((long)floor(events[i].time_days) < start_day) + start_day = (long)floor(events[i].time_days); + } + if (start_day == LONG_MAX || decision_day < start_day) + return CAMEFF_INSUFFICIENT_EVIDENCE; + + days = (size_t)(decision_day - start_day + 1); + marks = (double *)calloc(days, sizeof(double)); + g = (double *)calloc(days, sizeof(double)); + if (marks == NULL || g == NULL) goto fail; + + for (i = 0; i < count; ++i) { + long index; + if (events[i].time_days >= decision_time_days) continue; + if (events[i].magnitude < fit->mc) continue; + index = (long)floor(events[i].time_days) - start_day; + if (index < 0 || (size_t)index >= days) continue; + marks[index] += exp(fit->alpha * (events[i].magnitude - fit->mc)); + } + + for (t = 0; t < days; ++t) { + size_t max_lag = t < CAMEFF_TRIGGER_MEMORY_DAYS ? t : CAMEFF_TRIGGER_MEMORY_DAYS; + double total = 0.0; + for (lag = 1; lag <= max_lag; ++lag) { + total += marks[t - lag] * pow((double)lag + fit->c, -fit->p); + } + g[t] = total; + } + + daily_rate = fmax(fit->mu + fit->k * g[days - 1], 1e-12); + m6_tail = pow(10.0, -fit->b_value * (6.0 - fit->mc)); + if (m6_tail > 1.0) m6_tail = 1.0; + probability = 1.0 - exp(-7.0 * daily_rate * m6_tail); + if (probability < 1e-9) probability = 1e-9; + if (probability > 1.0 - 1e-9) probability = 1.0 - 1e-9; + + free(marks); + free(g); + *probability_out = probability; + return CAMEFF_AVAILABLE; + +fail: + free(marks); + free(g); + return CAMEFF_INSUFFICIENT_EVIDENCE; +} + +double cameff_beta_probability( + double raw_probability, + const cameff_calibration_t *calibration +) { + double p, z; + if (calibration == NULL || calibration->status != CAMEFF_AVAILABLE) return NAN; + p = raw_probability; + if (p < 1e-9) p = 1e-9; + if (p > 1.0 - 1e-9) p = 1.0 - 1e-9; + z = calibration->intercept + + calibration->coef_log_p * log(p) + + calibration->coef_neg_log_1mp * (-log(1.0 - p)); + return cameff_sigmoid(z); +} + +cameff_availability_t cameff_apply_p29k_calibration( + double raw_probability, + const cameff_calibration_t *calibration, + double *calibrated_out +) { + double beta, final_probability; + if (calibrated_out != NULL) *calibrated_out = 0.0; + if (calibration == NULL || calibrated_out == NULL) + return CAMEFF_INSUFFICIENT_EVIDENCE; + if (calibration->status != CAMEFF_AVAILABLE) + return calibration->status; + if (calibration->training_rows < 500 || calibration->training_positives < 10) + return CAMEFF_INSUFFICIENT_EVIDENCE; + + beta = cameff_beta_probability(raw_probability, calibration); + if (!isfinite(beta)) return CAMEFF_INSUFFICIENT_EVIDENCE; + + final_probability = 0.5 * beta + 0.5 * calibration->training_prevalence; + if (final_probability < 1e-9) final_probability = 1e-9; + if (final_probability > 1.0 - 1e-9) final_probability = 1.0 - 1e-9; + *calibrated_out = final_probability; + return CAMEFF_AVAILABLE; +} + +const char *cameff_availability_name(cameff_availability_t status) { + switch (status) { + case CAMEFF_AVAILABLE: return "AVAILABLE"; + case CAMEFF_UNAVAILABLE_PARAMETER: return "UNAVAILABLE_PARAMETER"; + case CAMEFF_INSUFFICIENT_EVIDENCE: return "INSUFFICIENT_EVIDENCE"; + case CAMEFF_INELIGIBLE_TEMPORAL_MODE: return "INELIGIBLE_TEMPORAL_MODE"; + case CAMEFF_UNKNOWN_PATTERN: return "UNKNOWN_PATTERN"; + default: return "UNKNOWN_STATUS"; + } +} diff --git a/src/catalog.c b/src/catalog.c deleted file mode 100644 index 74edd8b..0000000 --- a/src/catalog.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "cameff/catalog.h" - -#include -#include -#include -#include -#include - -static void set_error(char *buffer, size_t size, const char *message) { - if ((buffer != NULL) && (size > 0U)) { - (void)snprintf(buffer, size, "%s", message); - } -} - -void cameff_catalog_init(cameff_catalog_t *catalog) { - if (catalog != NULL) { - catalog->items = NULL; - catalog->count = 0U; - catalog->capacity = 0U; - } -} - -void cameff_catalog_free(cameff_catalog_t *catalog) { - if (catalog != NULL) { - free(catalog->items); - cameff_catalog_init(catalog); - } -} - -cameff_status_t cameff_catalog_append(cameff_catalog_t *catalog, const cameff_event_t *event) { - if ((catalog == NULL) || (event == NULL)) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - if (catalog->count == catalog->capacity) { - const size_t next_capacity = (catalog->capacity == 0U) ? 64U : catalog->capacity * 2U; - cameff_event_t *next_items = realloc(catalog->items, next_capacity * sizeof(*next_items)); - if (next_items == NULL) { - return CAMEFF_STATUS_OUT_OF_MEMORY; - } - catalog->items = next_items; - catalog->capacity = next_capacity; - } - catalog->items[catalog->count] = *event; - catalog->count++; - return CAMEFF_STATUS_OK; -} - -cameff_status_t cameff_parse_iso8601_utc(const char *text, int64_t *epoch_seconds) { - int year = 0; - int month = 0; - int day = 0; - int hour = 0; - int minute = 0; - int second = 0; - struct tm value; - time_t timestamp; - - if ((text == NULL) || (epoch_seconds == NULL)) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - if (sscanf(text, "%d-%d-%dT%d:%d:%d", &year, &month, &day, &hour, &minute, &second) != 6) { - return CAMEFF_STATUS_PARSE_ERROR; - } - (void)memset(&value, 0, sizeof(value)); - value.tm_year = year - 1900; - value.tm_mon = month - 1; - value.tm_mday = day; - value.tm_hour = hour; - value.tm_min = minute; - value.tm_sec = second; -#ifdef _WIN32 - timestamp = _mkgmtime(&value); -#else - timestamp = timegm(&value); -#endif - if (timestamp == (time_t)-1) { - return CAMEFF_STATUS_PARSE_ERROR; - } - *epoch_seconds = (int64_t)timestamp; - return CAMEFF_STATUS_OK; -} - -static int parse_double(const char *text, double *value) { - char *end = NULL; - errno = 0; - *value = strtod(text, &end); - return (errno == 0) && (end != text) && (*end == '\0'); -} - -cameff_status_t cameff_catalog_load_csv(const char *path, cameff_catalog_t *catalog, - char *error_message, size_t error_message_size) { - FILE *file; - char line[1024]; - size_t line_number = 0U; - - if ((path == NULL) || (catalog == NULL)) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - file = fopen(path, "r"); - if (file == NULL) { - set_error(error_message, error_message_size, "cannot open catalog file"); - return CAMEFF_STATUS_IO_ERROR; - } - - while (fgets(line, (int)sizeof(line), file) != NULL) { - char *fields[7]; - size_t field_count = 0U; - char *token; - cameff_event_t event; - cameff_status_t status; - line_number++; - - line[strcspn(line, "\r\n")] = '\0'; - if ((line[0] == '\0') || (line[0] == '#')) { - continue; - } - if ((line_number == 1U) && (strstr(line, "time") != NULL)) { - continue; - } - token = strtok(line, ","); - while ((token != NULL) && (field_count < 7U)) { - fields[field_count++] = token; - token = strtok(NULL, ","); - } - if (field_count != 7U) { - (void)snprintf(error_message, error_message_size, "line %zu: expected 7 columns", line_number); - (void)fclose(file); - return CAMEFF_STATUS_PARSE_ERROR; - } - - (void)memset(&event, 0, sizeof(event)); - (void)snprintf(event.id, sizeof(event.id), "%s", fields[0]); - (void)snprintf(event.source, sizeof(event.source), "%s", fields[1]); - status = cameff_parse_iso8601_utc(fields[2], &event.epoch_seconds); - if ((status != CAMEFF_STATUS_OK) || !parse_double(fields[3], &event.latitude_deg) || - !parse_double(fields[4], &event.longitude_deg) || !parse_double(fields[5], &event.depth_km) || - !parse_double(fields[6], &event.magnitude)) { - (void)snprintf(error_message, error_message_size, "line %zu: invalid event value", line_number); - (void)fclose(file); - return CAMEFF_STATUS_PARSE_ERROR; - } - status = cameff_catalog_append(catalog, &event); - if (status != CAMEFF_STATUS_OK) { - set_error(error_message, error_message_size, "out of memory while loading catalog"); - (void)fclose(file); - return status; - } - } - if (ferror(file) != 0) { - set_error(error_message, error_message_size, "error while reading catalog file"); - (void)fclose(file); - return CAMEFF_STATUS_IO_ERROR; - } - (void)fclose(file); - return CAMEFF_STATUS_OK; -} diff --git a/src/config.c b/src/config.c deleted file mode 100644 index f6441eb..0000000 --- a/src/config.c +++ /dev/null @@ -1,115 +0,0 @@ -#include "cameff/config.h" -#include "cameff/signals.h" - -#include -#include -#include -#include - -void cameff_config_default(cameff_config_t *config) { - static const double default_weights[CAMEFF_SIGNAL_COUNT] = { - 0.17, 0.18, 0.15, 0.14, 0.10, 0.12, 0.08, 0.06 - }; - if (config == NULL) { - return; - } - config->minimum_events = 8U; - config->watch_threshold = 0.45; - config->elevated_threshold = 0.68; - config->minimum_data_confidence = 0.35; - config->fault_map_confidence = 0.50; - (void)memcpy(config->weights, default_weights, sizeof(default_weights)); -} - -static void trim(char *text) { - char *start = text; - char *end; - while ((*start == ' ') || (*start == '\t')) { - start++; - } - if (start != text) { - (void)memmove(text, start, strlen(start) + 1U); - } - end = text + strlen(text); - while ((end > text) && ((end[-1] == ' ') || (end[-1] == '\t') || (end[-1] == '\r') || (end[-1] == '\n'))) { - end--; - } - *end = '\0'; -} - -static int parse_number(const char *text, double *value) { - char *end = NULL; - errno = 0; - *value = strtod(text, &end); - return (errno == 0) && (end != text) && (*end == '\0'); -} - -cameff_status_t cameff_config_load(const char *path, cameff_config_t *config, - char *error_message, size_t error_message_size) { - FILE *file; - char line[256]; - size_t line_number = 0U; - - if ((path == NULL) || (config == NULL)) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - file = fopen(path, "r"); - if (file == NULL) { - (void)snprintf(error_message, error_message_size, "cannot open configuration file"); - return CAMEFF_STATUS_IO_ERROR; - } - while (fgets(line, (int)sizeof(line), file) != NULL) { - char *separator; - char *key; - char *value_text; - double value; - line_number++; - trim(line); - if ((line[0] == '\0') || (line[0] == '#')) { - continue; - } - separator = strchr(line, '='); - if (separator == NULL) { - (void)snprintf(error_message, error_message_size, "line %zu: expected key=value", line_number); - (void)fclose(file); - return CAMEFF_STATUS_PARSE_ERROR; - } - *separator = '\0'; - key = line; - value_text = separator + 1; - trim(key); - trim(value_text); - if (!parse_number(value_text, &value)) { - (void)snprintf(error_message, error_message_size, "line %zu: invalid number", line_number); - (void)fclose(file); - return CAMEFF_STATUS_PARSE_ERROR; - } - if (strcmp(key, "minimum_events") == 0) config->minimum_events = (size_t)value; - else if (strcmp(key, "watch_threshold") == 0) config->watch_threshold = value; - else if (strcmp(key, "elevated_threshold") == 0) config->elevated_threshold = value; - else if (strcmp(key, "minimum_data_confidence") == 0) config->minimum_data_confidence = value; - else if (strcmp(key, "fault_map_confidence") == 0) config->fault_map_confidence = value; - else if (strncmp(key, "weight.", 7U) == 0) { - size_t i; - int found = 0; - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; i++) { - if (strcmp(key + 7, cameff_signal_name((cameff_signal_id_t)i)) == 0) { - config->weights[i] = value; - found = 1; - break; - } - } - if (!found) { - (void)snprintf(error_message, error_message_size, "line %zu: unknown signal weight", line_number); - (void)fclose(file); - return CAMEFF_STATUS_PARSE_ERROR; - } - } else { - (void)snprintf(error_message, error_message_size, "line %zu: unknown configuration key", line_number); - (void)fclose(file); - return CAMEFF_STATUS_PARSE_ERROR; - } - } - (void)fclose(file); - return CAMEFF_STATUS_OK; -} diff --git a/src/data/earthquake_catalog.c b/src/data/earthquake_catalog.c deleted file mode 100644 index fdc29e1..0000000 --- a/src/data/earthquake_catalog.c +++ /dev/null @@ -1,490 +0,0 @@ -#include "earthquake_catalog.h" - -#include -#include -#include -#include -#include - -#define CAMEFF_CATALOG_LINE_LENGTH 1024 -#define CAMEFF_EXPECTED_HEADER \ - "time,latitude,longitude,depth,mag,region" - -static void trim_line_ending(char *text) -{ - size_t length; - - if (text == NULL) - { - return; - } - - length = strlen(text); - - while (length > 0 && - (text[length - 1] == '\n' || - text[length - 1] == '\r')) - { - text[length - 1] = '\0'; - length--; - } -} - -static char *trim_whitespace(char *text) -{ - char *end; - - if (text == NULL) - { - return NULL; - } - - while (isspace((unsigned char)*text)) - { - text++; - } - - if (*text == '\0') - { - return text; - } - - end = text + strlen(text) - 1; - - while (end > text && - isspace((unsigned char)*end)) - { - *end = '\0'; - end--; - } - - return text; -} - -static char *remove_optional_quotes( - char *text -) -{ - size_t length; - - if (text == NULL) - { - return NULL; - } - - length = strlen(text); - - if (length >= 2U && - text[0] == '"' && - text[length - 1U] == '"') - { - text[length - 1U] = '\0'; - text++; - } - - return text; -} - -static int parse_double_field( - const char *text, - double *value -) -{ - char *end; - double parsed; - - if (text == NULL || value == NULL) - { - return 0; - } - - errno = 0; - end = NULL; - - parsed = strtod(text, &end); - - if (errno != 0 || end == text) - { - return 0; - } - - while (isspace((unsigned char)*end)) - { - end++; - } - - if (*end != '\0') - { - return 0; - } - - *value = parsed; - - return 1; -} - -/* - * Converts a civil UTC date to Unix epoch days. - * - * Based on the Gregorian civil-calendar conversion algorithm. - * This avoids relying on the non-standard timegm() function. - */ -static long long days_from_civil( - int year, - unsigned month, - unsigned day -) -{ - int era; - unsigned year_of_era; - unsigned day_of_year; - unsigned day_of_era; - - year -= month <= 2; - - era = year >= 0 - ? year / 400 - : (year - 399) / 400; - - year_of_era = - (unsigned)(year - era * 400); - - day_of_year = - (153U * (month + (month > 2 ? -3 : 9)) + 2U) / - 5U + - day - - 1U; - - day_of_era = - year_of_era * 365U + - year_of_era / 4U - - year_of_era / 100U + - day_of_year; - - return - (long long)era * 146097LL + - (long long)day_of_era - - 719468LL; -} - -static int parse_utc_timestamp( - const char *text, - time_t *timestamp -) -{ - int year; - unsigned month; - unsigned day; - unsigned hour; - unsigned minute; - unsigned second; - - int consumed; - const char *suffix; - - long long days; - long long seconds; - - if (text == NULL || timestamp == NULL) - { - return 0; - } - - consumed = 0; - - if (sscanf( - text, - "%d-%u-%uT%u:%u:%u%n", - &year, - &month, - &day, - &hour, - &minute, - &second, - &consumed - ) != 6) - { - return 0; - } - - suffix = text + consumed; - - /* - * Accept either: - * - * YYYY-MM-DDTHH:MM:SSZ - * - * or: - * - * YYYY-MM-DDTHH:MM:SS.sssZ - */ - if (*suffix == '.') - { - suffix++; - - if (!isdigit((unsigned char)*suffix)) - { - return 0; - } - - while (isdigit((unsigned char)*suffix)) - { - suffix++; - } - } - - if (suffix[0] != 'Z' || - suffix[1] != '\0') - { - return 0; - } - - if (month < 1U || month > 12U || - day < 1U || day > 31U || - hour > 23U || - minute > 59U || - second > 60U) - { - return 0; - } - - days = days_from_civil( - year, - month, - day - ); - - seconds = - days * 86400LL + - (long long)hour * 3600LL + - (long long)minute * 60LL + - (long long)second; - - *timestamp = (time_t)seconds; - - return 1; -} - -static int parse_catalog_row( - char *line, - EarthquakeEvent *event -) -{ - char *fields[6]; - char *cursor; - char *separator; - size_t index; - - if (line == NULL || event == NULL) - { - return 0; - } - - /* - * Split only the first five commas. - * - * The sixth field, region, may itself contain commas. - */ - cursor = line; - - for (index = 0; index < 5; index++) - { - fields[index] = cursor; - - separator = strchr(cursor, ','); - - if (separator == NULL) - { - return 0; - } - - *separator = '\0'; - cursor = separator + 1; - } - - fields[5] = cursor; - - for (index = 0U; index < 6U; index++) - { - fields[index] = - trim_whitespace(fields[index]); - - fields[index] = - remove_optional_quotes(fields[index]); - - if (fields[index] == NULL || - fields[index][0] == '\0') - { - return 0; - } - } - - initialize_earthquake_event(event); - - if (!parse_utc_timestamp( - fields[0], - &event->timestamp)) - { - return 0; - } - - if (!parse_double_field( - fields[1], - &event->latitude)) - { - return 0; - } - - if (!parse_double_field( - fields[2], - &event->longitude)) - { - return 0; - } - - if (!parse_double_field( - fields[3], - &event->depth_km)) - { - return 0; - } - - if (!parse_double_field( - fields[4], - &event->magnitude)) - { - return 0; - } - - if (event->latitude < -90.0 || - event->latitude > 90.0) - { - return 0; - } - - if (event->longitude < -180.0 || - event->longitude > 180.0) - { - return 0; - } - - if (event->depth_km < 0.0) - { - return 0; - } - - if (event->magnitude < -2.0 || - event->magnitude > 10.5) - { - return 0; - } - - if (strlen(fields[5]) >= sizeof(event->region)) - { - return 0; - } - - memcpy( - event->region, - fields[5], - strlen(fields[5]) + 1 - ); - - return 1; -} - -void catalog_initialize( - EarthquakeCatalog *catalog -) -{ - if (catalog == NULL) - { - return; - } - - catalog->count = 0; -} - -int catalog_load_csv( - const char *filename, - EarthquakeCatalog *catalog -) -{ - FILE *file; - char line[CAMEFF_CATALOG_LINE_LENGTH]; - - if (filename == NULL || catalog == NULL) - { - return CAMEFF_CATALOG_INVALID_ARGUMENT; - } - - catalog_initialize(catalog); - - file = fopen(filename, "r"); - - if (file == NULL) - { - return CAMEFF_CATALOG_OPEN_FAILED; - } - - if (fgets(line, sizeof(line), file) == NULL) - { - fclose(file); - return CAMEFF_CATALOG_EMPTY_FILE; - } - - trim_line_ending(line); - - if (strcmp(line, CAMEFF_EXPECTED_HEADER) != 0) - { - fclose(file); - return CAMEFF_CATALOG_INVALID_HEADER; - } - - while (fgets(line, sizeof(line), file) != NULL) - { - EarthquakeEvent event; - char *trimmed; - - trim_line_ending(line); - trimmed = trim_whitespace(line); - - /* - * Empty lines are harmless and are skipped. - */ - if (trimmed[0] == '\0') - { - continue; - } - - if (catalog->count >= - CAMEFF_CATALOG_MAX_EVENTS) - { - fclose(file); - return CAMEFF_CATALOG_CAPACITY_EXCEEDED; - } - - if (!parse_catalog_row(trimmed, &event)) - { - fclose(file); - catalog_initialize(catalog); - - return CAMEFF_CATALOG_INVALID_ROW; - } - - catalog->events[catalog->count] = event; - catalog->count++; - } - - if (ferror(file)) - { - fclose(file); - catalog_initialize(catalog); - - return CAMEFF_CATALOG_INVALID_ROW; - } - - fclose(file); - - return CAMEFF_CATALOG_OK; -} \ No newline at end of file diff --git a/src/data/earthquake_catalog.h b/src/data/earthquake_catalog.h deleted file mode 100644 index 702591b..0000000 --- a/src/data/earthquake_catalog.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef EARTHQUAKE_CATALOG_H -#define EARTHQUAKE_CATALOG_H - -#include "earthquake_event.h" - -#include - -#define CAMEFF_CATALOG_MAX_EVENTS 10000 - -typedef enum -{ - CAMEFF_CATALOG_OK = 0, - CAMEFF_CATALOG_INVALID_ARGUMENT = -1, - CAMEFF_CATALOG_OPEN_FAILED = -2, - CAMEFF_CATALOG_EMPTY_FILE = -3, - CAMEFF_CATALOG_INVALID_HEADER = -4, - CAMEFF_CATALOG_INVALID_ROW = -5, - CAMEFF_CATALOG_CAPACITY_EXCEEDED = -6 -} CameffCatalogStatus; - -typedef struct -{ - EarthquakeEvent events[CAMEFF_CATALOG_MAX_EVENTS]; - size_t count; -} EarthquakeCatalog; - -void catalog_initialize(EarthquakeCatalog *catalog); - -int catalog_load_csv( - const char *filename, - EarthquakeCatalog *catalog -); - -#endif \ No newline at end of file diff --git a/src/data/earthquake_catalog_filter.c b/src/data/earthquake_catalog_filter.c deleted file mode 100644 index 31e5f4b..0000000 --- a/src/data/earthquake_catalog_filter.c +++ /dev/null @@ -1,316 +0,0 @@ -#include "earthquake_catalog_filter.h" - -#include -#include - -#define CAMEFF_EARTH_MEAN_RADIUS_KM 6371.0088 -#define CAMEFF_PI 3.14159265358979323846 - -static int coordinates_are_valid( - double latitude, - double longitude -) -{ - return - latitude >= -90.0 && - latitude <= 90.0 && - longitude >= -180.0 && - longitude <= 180.0; -} - -static double degrees_to_radians( - double degrees -) -{ - return degrees * CAMEFF_PI / 180.0; -} - -static int append_event( - EarthquakeCatalog *catalog, - const EarthquakeEvent *event -) -{ - if (catalog == NULL || event == NULL) - { - return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT; - } - - if (catalog->count >= CAMEFF_CATALOG_MAX_EVENTS) - { - return CAMEFF_CATALOG_FILTER_CAPACITY_EXCEEDED; - } - - catalog->events[catalog->count] = *event; - catalog->count++; - - return CAMEFF_CATALOG_FILTER_OK; -} - -double earthquake_surface_distance_km( - double latitude_a, - double longitude_a, - double latitude_b, - double longitude_b -) -{ - double latitude_a_rad; - double latitude_b_rad; - double latitude_delta; - double longitude_delta; - double haversine; - double angular_distance; - - if (!coordinates_are_valid( - latitude_a, - longitude_a) || - !coordinates_are_valid( - latitude_b, - longitude_b)) - { - return -1.0; - } - - latitude_a_rad = - degrees_to_radians(latitude_a); - - latitude_b_rad = - degrees_to_radians(latitude_b); - - latitude_delta = - latitude_b_rad - latitude_a_rad; - - longitude_delta = - degrees_to_radians( - longitude_b - longitude_a - ); - - haversine = - sin(latitude_delta / 2.0) * - sin(latitude_delta / 2.0) + - cos(latitude_a_rad) * - cos(latitude_b_rad) * - sin(longitude_delta / 2.0) * - sin(longitude_delta / 2.0); - - /* - * Protect against small floating-point drift outside [0, 1]. - */ - if (haversine < 0.0) - { - haversine = 0.0; - } - else if (haversine > 1.0) - { - haversine = 1.0; - } - - angular_distance = - 2.0 * - atan2( - sqrt(haversine), - sqrt(1.0 - haversine) - ); - - return - CAMEFF_EARTH_MEAN_RADIUS_KM * - angular_distance; -} - -int catalog_filter_time_range( - const EarthquakeCatalog *source, - time_t start_time, - time_t end_time, - EarthquakeCatalog *result -) -{ - size_t index; - - if (source == NULL || result == NULL) - { - return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT; - } - - if (start_time >= end_time) - { - return CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE; - } - - catalog_initialize(result); - - for (index = 0; index < source->count; index++) - { - const EarthquakeEvent *event; - int status; - - event = &source->events[index]; - - if (event->timestamp < start_time || - event->timestamp >= end_time) - { - continue; - } - - status = append_event(result, event); - - if (status != CAMEFF_CATALOG_FILTER_OK) - { - catalog_initialize(result); - return status; - } - } - - return CAMEFF_CATALOG_FILTER_OK; -} - -int catalog_filter_radius( - const EarthquakeCatalog *source, - double center_latitude, - double center_longitude, - double radius_km, - EarthquakeCatalog *result -) -{ - size_t index; - - if (source == NULL || result == NULL) - { - return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT; - } - - if (!coordinates_are_valid( - center_latitude, - center_longitude)) - { - return CAMEFF_CATALOG_FILTER_INVALID_COORDINATES; - } - - if (radius_km < 0.0) - { - return CAMEFF_CATALOG_FILTER_INVALID_RADIUS; - } - - catalog_initialize(result); - - for (index = 0; index < source->count; index++) - { - const EarthquakeEvent *event; - double distance_km; - int status; - - event = &source->events[index]; - - distance_km = - earthquake_surface_distance_km( - center_latitude, - center_longitude, - event->latitude, - event->longitude - ); - - if (distance_km < 0.0) - { - catalog_initialize(result); - - return - CAMEFF_CATALOG_FILTER_INVALID_COORDINATES; - } - - if (distance_km > radius_km) - { - continue; - } - - status = append_event(result, event); - - if (status != CAMEFF_CATALOG_FILTER_OK) - { - catalog_initialize(result); - return status; - } - } - - return CAMEFF_CATALOG_FILTER_OK; -} - -int catalog_filter_hindcast_window( - const EarthquakeCatalog *source, - time_t start_time, - time_t cutoff_time, - double center_latitude, - double center_longitude, - double radius_km, - EarthquakeCatalog *result -) -{ - size_t index; - - if (source == NULL || result == NULL) - { - return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT; - } - - if (start_time >= cutoff_time) - { - return CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE; - } - - if (!coordinates_are_valid( - center_latitude, - center_longitude)) - { - return CAMEFF_CATALOG_FILTER_INVALID_COORDINATES; - } - - if (radius_km < 0.0) - { - return CAMEFF_CATALOG_FILTER_INVALID_RADIUS; - } - - catalog_initialize(result); - - for (index = 0; index < source->count; index++) - { - const EarthquakeEvent *event; - double distance_km; - int status; - - event = &source->events[index]; - - if (event->timestamp < start_time || - event->timestamp >= cutoff_time) - { - continue; - } - - distance_km = - earthquake_surface_distance_km( - center_latitude, - center_longitude, - event->latitude, - event->longitude - ); - - if (distance_km < 0.0) - { - catalog_initialize(result); - - return - CAMEFF_CATALOG_FILTER_INVALID_COORDINATES; - } - - if (distance_km > radius_km) - { - continue; - } - - status = append_event(result, event); - - if (status != CAMEFF_CATALOG_FILTER_OK) - { - catalog_initialize(result); - return status; - } - } - - return CAMEFF_CATALOG_FILTER_OK; -} \ No newline at end of file diff --git a/src/data/earthquake_catalog_filter.h b/src/data/earthquake_catalog_filter.h deleted file mode 100644 index 445fa69..0000000 --- a/src/data/earthquake_catalog_filter.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef EARTHQUAKE_CATALOG_FILTER_H -#define EARTHQUAKE_CATALOG_FILTER_H - -#include "earthquake_catalog.h" - -#include - -typedef enum -{ - CAMEFF_CATALOG_FILTER_OK = 0, - CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT = -1, - CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE = -2, - CAMEFF_CATALOG_FILTER_INVALID_COORDINATES = -3, - CAMEFF_CATALOG_FILTER_INVALID_RADIUS = -4, - CAMEFF_CATALOG_FILTER_CAPACITY_EXCEEDED = -5 -} CameffCatalogFilterStatus; - -/* - * Selects events in: - * - * start_time <= event.timestamp < end_time - */ -int catalog_filter_time_range( - const EarthquakeCatalog *source, - time_t start_time, - time_t end_time, - EarthquakeCatalog *result -); - -/* - * Selects events whose epicentres are within radius_km - * of the supplied centre. - */ -int catalog_filter_radius( - const EarthquakeCatalog *source, - double center_latitude, - double center_longitude, - double radius_km, - EarthquakeCatalog *result -); - -/* - * Applies both temporal and spatial filtering in one pass. - */ -int catalog_filter_hindcast_window( - const EarthquakeCatalog *source, - time_t start_time, - time_t cutoff_time, - double center_latitude, - double center_longitude, - double radius_km, - EarthquakeCatalog *result -); - -double earthquake_surface_distance_km( - double latitude_a, - double longitude_a, - double latitude_b, - double longitude_b -); - -#endif \ No newline at end of file diff --git a/src/data/earthquake_event.c b/src/data/earthquake_event.c deleted file mode 100644 index 558a788..0000000 --- a/src/data/earthquake_event.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "earthquake_event.h" - - -void initialize_earthquake_event( - EarthquakeEvent *event -) -{ - if(event == NULL) - return; - - - event->region[0] = '\0'; - - event->latitude = 0.0; - event->longitude = 0.0; - - event->depth_km = 0.0; - - event->magnitude = 0.0; - - event->timestamp = 0; -} \ No newline at end of file diff --git a/src/data/earthquake_event.h b/src/data/earthquake_event.h deleted file mode 100644 index c8cec61..0000000 --- a/src/data/earthquake_event.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef EARTHQUAKE_EVENT_H -#define EARTHQUAKE_EVENT_H - -#define CAMEFF_EARTHQUAKE_REGION_CAPACITY 64U - -#include - - -typedef struct -{ - char region[ - CAMEFF_EARTHQUAKE_REGION_CAPACITY - ]; - - double latitude; - double longitude; - double depth_km; - double magnitude; - - time_t timestamp; -} EarthquakeEvent; - - - -void initialize_earthquake_event( - EarthquakeEvent *event -); - - -#endif \ No newline at end of file diff --git a/src/evaluation.c b/src/evaluation.c deleted file mode 100644 index eb3b05c..0000000 --- a/src/evaluation.c +++ /dev/null @@ -1,414 +0,0 @@ -#include "cameff/evaluation.h" - -#include -#include -#include -#include - -#include "cameff/baseline_expert.h" -#include "cameff/cascade_expert.h" -#include "cameff/crustal_fault_expert.h" -#include "cameff/expert_registry.h" -#include "cameff/fusion.h" -#include "cameff/subduction_expert.h" - -static int valid_unit_interval(double value) { - return isfinite(value) && - value >= 0.0 && - value <= 1.0; -} - -static int valid_options( - const cameff_evaluation_options_t *options -) { - if (options == NULL) { - return 0; - } - - if (!valid_unit_interval(options->routing_threshold) || - !valid_unit_interval(options->minimum_fused_confidence) || - !valid_unit_interval(options->watch_threshold) || - !valid_unit_interval(options->elevated_threshold)) { - return 0; - } - - if (options->watch_threshold > - options->elevated_threshold) { - return 0; - } - - return 1; -} - -static const char *expert_status_name( - cameff_expert_status_t status -) { - switch (status) { - case CAMEFF_EXPERT_OK: - return "OK"; - - case CAMEFF_EXPERT_ABSTAIN: - return "ABSTAIN"; - - case CAMEFF_EXPERT_INSUFFICIENT_DATA: - return "INSUFFICIENT_DATA"; - - case CAMEFF_EXPERT_ERROR: - return "ERROR"; - - default: - return "INVALID_STATUS"; - } -} - -static const char *decision_name( - cameff_decision_level_t decision -) { - switch (decision) { - case CAMEFF_DECISION_BACKGROUND: - return "BACKGROUND"; - - case CAMEFF_DECISION_WATCH: - return "WATCH"; - - case CAMEFF_DECISION_ELEVATED: - return "ELEVATED"; - - case CAMEFF_DECISION_INSUFFICIENT_DATA: - return "INSUFFICIENT_DATA"; - - default: - return "INVALID_DECISION"; - } -} - -static void append_text( - char *buffer, - size_t capacity, - size_t *offset, - const char *format, - ... -) { - va_list arguments; - int written; - size_t remaining; - - if (buffer == NULL || - offset == NULL || - format == NULL || - capacity == 0U || - *offset >= capacity) { - return; - } - - remaining = capacity - *offset; - - va_start(arguments, format); - - written = vsnprintf( - buffer + *offset, - remaining, - format, - arguments - ); - - va_end(arguments); - - if (written < 0) { - return; - } - - if ((size_t)written >= remaining) { - *offset = capacity - 1U; - buffer[*offset] = '\0'; - return; - } - - *offset += (size_t)written; -} - -void cameff_evaluation_options_default( - cameff_evaluation_options_t *options -) { - if (options == NULL) { - return; - } - - options->routing_threshold = 0.20; - options->minimum_fused_confidence = 0.25; - options->watch_threshold = 0.45; - options->elevated_threshold = 0.70; -} - -cameff_status_t cameff_evaluate_experts( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_evaluation_options_t *options, - cameff_evaluation_result_t *result -) { - cameff_expert_registry_t registry; - cameff_expert_result_t expert_results[CAMEFF_MAX_EXPERTS]; - size_t expert_result_count; - cameff_status_t status; - - if (frame == NULL || - config == NULL || - region == NULL || - options == NULL || - result == NULL || - !valid_options(options)) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - (void)memset(expert_results, 0, sizeof(expert_results)); - - status = cameff_classify_patterns( - frame, - region, - &result->patterns - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - cameff_expert_registry_init(®istry); - - status = cameff_expert_registry_register( - ®istry, - cameff_baseline_expert() - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - status = cameff_expert_registry_register( - ®istry, - cameff_subduction_expert() - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - status = cameff_expert_registry_register( - ®istry, - cameff_crustal_fault_expert() - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - status = cameff_expert_registry_register( - ®istry, - cameff_cascade_expert() - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - status = cameff_expert_registry_evaluate( - ®istry, - frame, - config, - region, - &result->patterns, - options->routing_threshold, - expert_results, - CAMEFF_MAX_EXPERTS, - &expert_result_count - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - return cameff_fuse_expert_results( - expert_results, - expert_result_count, - &result->patterns, - options->minimum_fused_confidence, - options->watch_threshold, - options->elevated_threshold, - &result->fusion - ); -} - -cameff_status_t cameff_format_evaluation( - const cameff_evaluation_result_t *result, - char *buffer, - size_t buffer_capacity -) { - size_t offset; - size_t i; - - if (result == NULL || - buffer == NULL || - buffer_capacity == 0U) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - buffer[0] = '\0'; - offset = 0U; - - append_text( - buffer, - buffer_capacity, - &offset, - "dominant_pattern=%s\n", - cameff_pattern_name( - result->patterns.dominant_pattern - ) - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "classification_confidence=%.6f\n", - result->patterns.classification_confidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "fused_hazard_evidence=%.6f\n", - result->fusion.hazard_evidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "fused_preparation_evidence=%.6f\n", - result->fusion.preparation_evidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "fused_cascade_evidence=%.6f\n", - result->fusion.cascade_evidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "fused_confidence=%.6f\n", - result->fusion.fused_confidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "expert_coverage=%.6f\n", - result->fusion.expert_coverage - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "decision=%s\n", - decision_name(result->fusion.decision) - ); - - for (i = 0U; - i < result->fusion.expert_result_count; - ++i) { - const cameff_expert_result_t *expert; - - expert = &result->fusion.expert_results[i]; - - append_text( - buffer, - buffer_capacity, - &offset, - "\nexpert=%s\n", - expert->expert_name - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "status=%s\n", - expert_status_name(expert->status) - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "applicability=%.6f\n", - expert->applicability - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "routing_strength=%.6f\n", - expert->routing_strength - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "confidence=%.6f\n", - expert->confidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "hazard_evidence=%.6f\n", - expert->hazard_evidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "preparation_evidence=%.6f\n", - expert->preparation_evidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "cascade_evidence=%.6f\n", - expert->cascade_evidence - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "expert_decision=%s\n", - decision_name(expert->decision) - ); - - append_text( - buffer, - buffer_capacity, - &offset, - "explanation=%s\n", - expert->explanation - ); - } - - return CAMEFF_STATUS_OK; -} \ No newline at end of file diff --git a/src/expert_registry.c b/src/expert_registry.c deleted file mode 100644 index 1538841..0000000 --- a/src/expert_registry.c +++ /dev/null @@ -1,268 +0,0 @@ -#include "cameff/expert_registry.h" - -#include -#include -#include - -static double clamp01(double value) { - if (!isfinite(value)) { - return 0.0; - } - - if (value < 0.0) { - return 0.0; - } - - if (value > 1.0) { - return 1.0; - } - - return value; -} - -static double pattern_membership( - const cameff_pattern_result_t *patterns, - cameff_pattern_id_t pattern_id -) { - size_t i; - - /* - * UNKNOWN is used by process-neutral experts such as the - * Milestone 1 baseline expert. Such experts are globally routed. - */ - if (pattern_id == CAMEFF_PATTERN_UNKNOWN) { - return 1.0; - } - - if (patterns == NULL) { - return 0.0; - } - - for (i = 0U; i < patterns->count; ++i) { - if (patterns->scores[i].pattern_id == pattern_id) { - return clamp01(patterns->scores[i].membership); - } - } - - return 0.0; -} - -static void initialize_abstention( - const cameff_expert_t *expert, - double applicability, - double routing_strength, - cameff_expert_result_t *result -) { - (void)memset(result, 0, sizeof(*result)); - - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - expert->name - ); - - result->applicability = applicability; - result->routing_strength = routing_strength; - result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA; - result->status = CAMEFF_EXPERT_ABSTAIN; - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "Expert routing strength %.6f is below the activation threshold.", - routing_strength - ); -} - -void cameff_expert_registry_init( - cameff_expert_registry_t *registry -) { - if (registry == NULL) { - return; - } - - (void)memset(registry, 0, sizeof(*registry)); -} - -cameff_status_t cameff_expert_registry_register( - cameff_expert_registry_t *registry, - const cameff_expert_t *expert -) { - size_t i; - - if (registry == NULL || - expert == NULL || - expert->name == NULL || - expert->applicability == NULL || - expert->evaluate == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - if (registry->count >= CAMEFF_MAX_EXPERTS) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - for (i = 0U; i < registry->count; ++i) { - if (strcmp( - registry->experts[i]->name, - expert->name - ) == 0) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - } - - registry->experts[registry->count] = expert; - ++registry->count; - - return CAMEFF_STATUS_OK; -} - -size_t cameff_expert_registry_count( - const cameff_expert_registry_t *registry -) { - if (registry == NULL) { - return 0U; - } - - return registry->count; -} - -const cameff_expert_t *cameff_expert_registry_get( - const cameff_expert_registry_t *registry, - size_t index -) { - if (registry == NULL || index >= registry->count) { - return NULL; - } - - return registry->experts[index]; -} - -double cameff_expert_routing_strength( - const cameff_expert_t *expert, - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - double applicability; - double membership; - - if (expert == NULL || - frame == NULL || - expert->applicability == NULL) { - return 0.0; - } - - applicability = clamp01( - expert->applicability( - frame, - region, - patterns - ) - ); - - membership = pattern_membership( - patterns, - expert->primary_pattern - ); - - return clamp01(applicability * membership); -} - -cameff_status_t cameff_expert_registry_evaluate( - const cameff_expert_registry_t *registry, - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - double routing_threshold, - cameff_expert_result_t *results, - size_t result_capacity, - size_t *result_count -) { - size_t i; - - if (registry == NULL || - frame == NULL || - config == NULL || - results == NULL || - result_count == NULL || - !isfinite(routing_threshold) || - routing_threshold < 0.0 || - routing_threshold > 1.0 || - result_capacity < registry->count) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - *result_count = 0U; - - for (i = 0U; i < registry->count; ++i) { - const cameff_expert_t *expert; - cameff_expert_result_t *result; - cameff_status_t status; - double applicability; - double routing_strength; - - expert = registry->experts[i]; - result = &results[i]; - - applicability = clamp01( - expert->applicability( - frame, - region, - patterns - ) - ); - - routing_strength = - cameff_expert_routing_strength( - expert, - frame, - region, - patterns - ); - - if (routing_strength < routing_threshold) { - initialize_abstention( - expert, - applicability, - routing_strength, - result - ); - - ++(*result_count); - continue; - } - - (void)memset(result, 0, sizeof(*result)); - - status = expert->evaluate( - frame, - config, - region, - patterns, - result - ); - - if (status != CAMEFF_STATUS_OK) { - return status; - } - - result->applicability = applicability; - result->routing_strength = routing_strength; - - if (result->expert_name[0] == '\0') { - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - expert->name - ); - } - - ++(*result_count); - } - - return CAMEFF_STATUS_OK; -} \ No newline at end of file diff --git a/src/experts/baseline_expert.c b/src/experts/baseline_expert.c deleted file mode 100644 index 9228903..0000000 --- a/src/experts/baseline_expert.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "cameff/baseline_expert.h" - -#include - -#include "cameff/framework.h" - -static double baseline_applicability( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - (void)region; - (void)patterns; - - if (frame == NULL) { - return 0.0; - } - - return 1.0; -} - -static cameff_status_t baseline_evaluate( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -) { - cameff_assessment_t assessment; - - (void)region; - (void)patterns; - - if (frame == NULL || config == NULL || result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - - assessment = cameff_assess(frame, config); - - (void)strncpy( - result->expert_name, - "baseline", - CAMEFF_MAX_EXPERT_NAME - 1U - ); - - result->hazard_evidence = assessment.evidence_score; - - /* - * Milestone 1 produced a generic evidence score. It did not distinguish - * preparation from cascade processes. - */ - result->preparation_evidence = 0.0; - result->cascade_evidence = 0.0; - - result->confidence = assessment.confidence; - result->applicability = 1.0; - result->decision = assessment.level; - - if (assessment.level == CAMEFF_DECISION_INSUFFICIENT_DATA) { - result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA; - - (void)strncpy( - result->explanation, - "Milestone 1 baseline assessment reported insufficient data.", - CAMEFF_MAX_EXPLANATION - 1U - ); - } else { - result->status = CAMEFF_EXPERT_OK; - - (void)strncpy( - result->explanation, - "Generic Milestone 1 weighted evidence assessment.", - CAMEFF_MAX_EXPLANATION - 1U - ); - } - - return CAMEFF_STATUS_OK; -} - -const cameff_expert_t *cameff_baseline_expert(void) { - static const cameff_expert_t expert = { - "baseline", - CAMEFF_PATTERN_UNKNOWN, - baseline_applicability, - baseline_evaluate - }; - - return &expert; -} \ No newline at end of file diff --git a/src/experts/cascade_expert.c b/src/experts/cascade_expert.c deleted file mode 100644 index 3c66880..0000000 --- a/src/experts/cascade_expert.c +++ /dev/null @@ -1,207 +0,0 @@ -#include "cameff/cascade_expert.h" - -#include -#include -#include - -static double clamp01(double value) { - if (!isfinite(value)) { - return 0.0; - } - - if (value < 0.0) { - return 0.0; - } - - if (value > 1.0) { - return 1.0; - } - - return value; -} - -static double effective_signal( - const cameff_signal_frame_t *frame, - cameff_signal_id_t signal_id -) { - const cameff_signal_t *signal; - - signal = &frame->signals[(size_t)signal_id]; - - if (!signal->available) { - return 0.0; - } - - return clamp01(signal->value) * - clamp01(signal->confidence); -} - -static double cascade_applicability( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - double activity; - double concentration; - - (void)region; - (void)patterns; - - if (frame == NULL) { - return 0.0; - } - - activity = effective_signal( - frame, - CAMEFF_SIGNAL_ACTIVITY_RATE - ); - - concentration = effective_signal( - frame, - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ); - - return clamp01( - (0.55 * activity) + - (0.45 * concentration) - ); -} - -static cameff_status_t cascade_evaluate( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -) { - double activity; - double acceleration; - double concentration; - double magnitude; - double completeness; - double cascade; - double preparation; - double hazard; - double confidence; - - (void)config; - (void)patterns; - - if (frame == NULL || region == NULL || result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - - activity = effective_signal( - frame, - CAMEFF_SIGNAL_ACTIVITY_RATE - ); - - acceleration = effective_signal( - frame, - CAMEFF_SIGNAL_TEMPORAL_ACCELERATION - ); - - concentration = effective_signal( - frame, - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ); - - magnitude = effective_signal( - frame, - CAMEFF_SIGNAL_MAGNITUDE_TREND - ); - - completeness = effective_signal( - frame, - CAMEFF_SIGNAL_CATALOG_COMPLETENESS - ); - - cascade = - (0.35 * activity) + - (0.20 * acceleration) + - (0.30 * concentration) + - (0.05 * magnitude) + - (0.10 * completeness); - - /* - * A cascade interpretation competes with preparation. - * High cascade compatibility reduces preparation evidence. - */ - preparation = - clamp01( - (0.40 * acceleration) + - (0.35 * magnitude) + - (0.25 * concentration) - - (0.45 * cascade) - ); - - hazard = - clamp01( - (0.65 * cascade) + - (0.25 * activity) + - (0.10 * magnitude) - ); - - confidence = - clamp01( - (0.65 * frame->data_confidence) + - (0.20 * region->catalog_completeness) + - (0.15 * region->station_coverage) - ); - - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - "seismic-cascade" - ); - - result->hazard_evidence = hazard; - result->preparation_evidence = preparation; - result->cascade_evidence = clamp01(cascade); - result->confidence = confidence; - - if (confidence < 0.25) { - result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA; - result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA; - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "%s", - "Cascade interpretation limited by low catalog confidence." - ); - } else { - result->status = CAMEFF_EXPERT_OK; - - if (result->hazard_evidence >= 0.70) { - result->decision = CAMEFF_DECISION_ELEVATED; - } else if (result->hazard_evidence >= 0.45) { - result->decision = CAMEFF_DECISION_WATCH; - } else { - result->decision = CAMEFF_DECISION_BACKGROUND; - } - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "%s", - "Cascade evidence emphasizes elevated activity and spatial clustering while suppressing unsupported preparation evidence." - ); - } - - return CAMEFF_STATUS_OK; -} - -const cameff_expert_t *cameff_cascade_expert(void) { - static const cameff_expert_t expert = { - "seismic-cascade", - CAMEFF_PATTERN_SEISMIC_CASCADE, - cascade_applicability, - cascade_evaluate - }; - - return &expert; -} \ No newline at end of file diff --git a/src/experts/crustal_fault_expert.c b/src/experts/crustal_fault_expert.c deleted file mode 100644 index cf9ef4c..0000000 --- a/src/experts/crustal_fault_expert.c +++ /dev/null @@ -1,212 +0,0 @@ -#include "cameff/crustal_fault_expert.h" - -#include -#include -#include - -static double clamp01(double value) { - if (!isfinite(value)) { - return 0.0; - } - - if (value < 0.0) { - return 0.0; - } - - if (value > 1.0) { - return 1.0; - } - - return value; -} - -static double effective_signal( - const cameff_signal_frame_t *frame, - cameff_signal_id_t signal_id -) { - const cameff_signal_t *signal; - - signal = &frame->signals[(size_t)signal_id]; - - if (!signal->available) { - return 0.0; - } - - return clamp01(signal->value) * - clamp01(signal->confidence); -} - -static double crustal_applicability( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - double mapped_affinity; - double uncertainty_support; - - (void)frame; - (void)patterns; - - if (region == NULL) { - return 0.0; - } - - mapped_affinity = - clamp01(region->crustal_fault_affinity); - - uncertainty_support = - 1.0 - clamp01(region->fault_map_confidence); - - return clamp01( - (0.75 * mapped_affinity) + - (0.25 * uncertainty_support) - ); -} - -static cameff_status_t crustal_evaluate( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -) { - double activity; - double acceleration; - double concentration; - double magnitude; - double b_value; - double fault_confidence; - double uncertainty; - double observational_support; - double uncertainty_modifier; - double preparation; - double hazard; - double confidence; - - (void)config; - (void)patterns; - - if (frame == NULL || region == NULL || result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - - activity = effective_signal( - frame, - CAMEFF_SIGNAL_ACTIVITY_RATE - ); - - acceleration = effective_signal( - frame, - CAMEFF_SIGNAL_TEMPORAL_ACCELERATION - ); - - concentration = effective_signal( - frame, - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ); - - magnitude = effective_signal( - frame, - CAMEFF_SIGNAL_MAGNITUDE_TREND - ); - - b_value = effective_signal( - frame, - CAMEFF_SIGNAL_B_VALUE_ANOMALY - ); - - fault_confidence = effective_signal( - frame, - CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE - ); - - uncertainty = - 1.0 - clamp01(region->fault_map_confidence); - - observational_support = - (0.30 * activity) + - (0.25 * acceleration) + - (0.25 * concentration) + - (0.12 * magnitude) + - (0.08 * b_value); - - /* - * Fault-map uncertainty can increase compatibility only when - * observed activity and spatial concentration are present. - */ - uncertainty_modifier = - uncertainty * activity * concentration; - - preparation = - observational_support + - (0.15 * uncertainty_modifier); - - hazard = - (0.75 * preparation) + - (0.15 * clamp01(region->crustal_fault_affinity)) + - (0.10 * fault_confidence); - - confidence = - clamp01( - (0.60 * frame->data_confidence) + - (0.20 * region->catalog_completeness) + - (0.15 * region->station_coverage) + - (0.05 * region->regional_prior_confidence) - ); - - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - "crustal-fault" - ); - - result->hazard_evidence = clamp01(hazard); - result->preparation_evidence = clamp01(preparation); - result->cascade_evidence = 0.0; - result->confidence = confidence; - - if (confidence < 0.25) { - result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA; - result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA; - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "%s", - "Crustal-fault interpretation limited by low catalog or station confidence." - ); - } else { - result->status = CAMEFF_EXPERT_OK; - - if (result->hazard_evidence >= 0.70) { - result->decision = CAMEFF_DECISION_ELEVATED; - } else if (result->hazard_evidence >= 0.45) { - result->decision = CAMEFF_DECISION_WATCH; - } else { - result->decision = CAMEFF_DECISION_BACKGROUND; - } - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "%s", - "Crustal-fault evidence uses activity, acceleration, concentration and guarded fault-map uncertainty." - ); - } - - return CAMEFF_STATUS_OK; -} - -const cameff_expert_t *cameff_crustal_fault_expert(void) { - static const cameff_expert_t expert = { - "crustal-fault", - CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION, - crustal_applicability, - crustal_evaluate - }; - - return &expert; -} \ No newline at end of file diff --git a/src/experts/subduction_expert.c b/src/experts/subduction_expert.c deleted file mode 100644 index 28e0564..0000000 --- a/src/experts/subduction_expert.c +++ /dev/null @@ -1,191 +0,0 @@ -#include "cameff/subduction_expert.h" - -#include -#include -#include - -static double clamp01(double value) { - if (!isfinite(value)) { - return 0.0; - } - - if (value < 0.0) { - return 0.0; - } - - if (value > 1.0) { - return 1.0; - } - - return value; -} - -static double effective_signal( - const cameff_signal_frame_t *frame, - cameff_signal_id_t signal_id -) { - const cameff_signal_t *signal; - - signal = &frame->signals[(size_t)signal_id]; - - if (!signal->available) { - return 0.0; - } - - return clamp01(signal->value) * - clamp01(signal->confidence); -} - -static double subduction_applicability( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - (void)frame; - (void)patterns; - - if (region == NULL) { - return 0.0; - } - - return clamp01(region->subduction_affinity) * - clamp01(region->regional_prior_confidence); -} - -static cameff_status_t subduction_evaluate( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -) { - double activity; - double acceleration; - double concentration; - double magnitude; - double depth; - double b_value; - double completeness; - double preparation; - double hazard; - double confidence; - - (void)config; - (void)patterns; - - if (frame == NULL || region == NULL || result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - - activity = effective_signal( - frame, - CAMEFF_SIGNAL_ACTIVITY_RATE - ); - - acceleration = effective_signal( - frame, - CAMEFF_SIGNAL_TEMPORAL_ACCELERATION - ); - - concentration = effective_signal( - frame, - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ); - - magnitude = effective_signal( - frame, - CAMEFF_SIGNAL_MAGNITUDE_TREND - ); - - depth = effective_signal( - frame, - CAMEFF_SIGNAL_DEPTH_MIGRATION - ); - - b_value = effective_signal( - frame, - CAMEFF_SIGNAL_B_VALUE_ANOMALY - ); - - completeness = effective_signal( - frame, - CAMEFF_SIGNAL_CATALOG_COMPLETENESS - ); - - preparation = - (0.18 * activity) + - (0.22 * acceleration) + - (0.15 * concentration) + - (0.18 * magnitude) + - (0.15 * depth) + - (0.12 * b_value); - - hazard = - (0.70 * preparation) + - (0.20 * completeness) + - (0.10 * clamp01(region->subduction_affinity)); - - confidence = - clamp01( - (0.55 * frame->data_confidence) + - (0.20 * region->catalog_completeness) + - (0.15 * region->station_coverage) + - (0.10 * region->regional_prior_confidence) - ); - - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - "subduction" - ); - - result->hazard_evidence = clamp01(hazard); - result->preparation_evidence = clamp01(preparation); - result->cascade_evidence = 0.0; - result->confidence = confidence; - - if (confidence < 0.25) { - result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA; - result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA; - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "%s", - "Subduction interpretation limited by low data confidence." - ); - } else { - result->status = CAMEFF_EXPERT_OK; - - if (result->hazard_evidence >= 0.70) { - result->decision = CAMEFF_DECISION_ELEVATED; - } else if (result->hazard_evidence >= 0.45) { - result->decision = CAMEFF_DECISION_WATCH; - } else { - result->decision = CAMEFF_DECISION_BACKGROUND; - } - - (void)snprintf( - result->explanation, - sizeof(result->explanation), - "%s", - "Subduction preparation evidence derived from activity, acceleration, concentration, magnitude, depth and b-value channels." - ); - } - - return CAMEFF_STATUS_OK; -} - -const cameff_expert_t *cameff_subduction_expert(void) { - static const cameff_expert_t expert = { - "subduction", - CAMEFF_PATTERN_SUBDUCTION_PREPARATION, - subduction_applicability, - subduction_evaluate - }; - - return &expert; -} \ No newline at end of file diff --git a/src/framework.c b/src/framework.c deleted file mode 100644 index 2e79442..0000000 --- a/src/framework.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "cameff/framework.h" - -#include - -cameff_assessment_t cameff_assess(const cameff_signal_frame_t *frame, - const cameff_config_t *config) { - cameff_assessment_t result = {0.0, 0.0, CAMEFF_DECISION_INSUFFICIENT_DATA, 0U, 0U}; - double weighted_sum = 0.0; - double used_weight = 0.0; - unsigned i; - - if ((frame == NULL) || (config == NULL)) return result; - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; i++) { - const cameff_signal_t *signal = &frame->signals[i]; - if (signal->available != 0) { - const double effective_weight = config->weights[i] * signal->confidence; - weighted_sum += effective_weight * signal->value; - used_weight += effective_weight; - result.available_signal_count++; - if (signal->value < 0.30) result.contradictory_signal_count++; - } - } - result.evidence_score = used_weight > 0.0 ? weighted_sum / used_weight : 0.0; - result.confidence = fmin(1.0, fmax(0.0, frame->data_confidence)); - if ((frame->selected_event_count < config->minimum_events) || - (result.confidence < config->minimum_data_confidence)) { - result.level = CAMEFF_DECISION_INSUFFICIENT_DATA; - } else if (result.evidence_score >= config->elevated_threshold) { - result.level = CAMEFF_DECISION_ELEVATED; - } else if (result.evidence_score >= config->watch_threshold) { - result.level = CAMEFF_DECISION_WATCH; - } else { - result.level = CAMEFF_DECISION_BACKGROUND; - } - return result; -} - -const char *cameff_decision_level_name(cameff_decision_level_t level) { - switch (level) { - case CAMEFF_DECISION_BACKGROUND: return "BACKGROUND"; - case CAMEFF_DECISION_WATCH: return "WATCH"; - case CAMEFF_DECISION_ELEVATED: return "ELEVATED"; - case CAMEFF_DECISION_INSUFFICIENT_DATA: - default: return "INSUFFICIENT_DATA"; - } -} diff --git a/src/fusion.c b/src/fusion.c deleted file mode 100644 index 71b963f..0000000 --- a/src/fusion.c +++ /dev/null @@ -1,234 +0,0 @@ -#include "cameff/fusion.h" - -#include -#include - -#define CAMEFF_FUSION_EPSILON 1e-12 - -static double clamp01(double value) { - if (!isfinite(value)) { - return 0.0; - } - - if (value < 0.0) { - return 0.0; - } - - if (value > 1.0) { - return 1.0; - } - - return value; -} - -static int valid_thresholds( - double minimum_confidence, - double watch_threshold, - double elevated_threshold -) { - if (!isfinite(minimum_confidence) || - !isfinite(watch_threshold) || - !isfinite(elevated_threshold)) { - return 0; - } - - if (minimum_confidence < 0.0 || - minimum_confidence > 1.0) { - return 0; - } - - if (watch_threshold < 0.0 || - watch_threshold > 1.0) { - return 0; - } - - if (elevated_threshold < 0.0 || - elevated_threshold > 1.0) { - return 0; - } - - if (watch_threshold > elevated_threshold) { - return 0; - } - - return 1; -} - -static cameff_decision_level_t fused_decision( - double hazard_evidence, - double fused_confidence, - double minimum_confidence, - double watch_threshold, - double elevated_threshold, - size_t active_expert_count -) { - if (active_expert_count == 0U || - fused_confidence < minimum_confidence) { - return CAMEFF_DECISION_INSUFFICIENT_DATA; - } - - if (hazard_evidence >= elevated_threshold) { - return CAMEFF_DECISION_ELEVATED; - } - - if (hazard_evidence >= watch_threshold) { - return CAMEFF_DECISION_WATCH; - } - - return CAMEFF_DECISION_BACKGROUND; -} - -cameff_status_t cameff_fuse_expert_results( - const cameff_expert_result_t *expert_results, - size_t expert_result_count, - const cameff_pattern_result_t *patterns, - double minimum_confidence, - double watch_threshold, - double elevated_threshold, - cameff_multi_expert_result_t *result -) { - double weighted_hazard; - double weighted_preparation; - double weighted_cascade; - double total_effective_weight; - double total_active_routing; - double confidence_numerator; - double classification_confidence; - size_t active_expert_count; - size_t i; - - if (expert_results == NULL || - result == NULL || - expert_result_count > CAMEFF_MAX_EXPERTS || - !valid_thresholds( - minimum_confidence, - watch_threshold, - elevated_threshold - )) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - - result->expert_result_count = expert_result_count; - result->dominant_pattern = CAMEFF_PATTERN_UNKNOWN; - - if (patterns != NULL) { - result->dominant_pattern = - patterns->dominant_pattern; - } - - weighted_hazard = 0.0; - weighted_preparation = 0.0; - weighted_cascade = 0.0; - total_effective_weight = 0.0; - total_active_routing = 0.0; - confidence_numerator = 0.0; - active_expert_count = 0U; - - for (i = 0U; i < expert_result_count; ++i) { - double routing_strength; - double confidence; - double effective_weight; - - result->expert_results[i] = expert_results[i]; - - if (expert_results[i].status != CAMEFF_EXPERT_OK) { - continue; - } - - routing_strength = - clamp01(expert_results[i].routing_strength); - - confidence = - clamp01(expert_results[i].confidence); - - effective_weight = - routing_strength * confidence; - - if (effective_weight <= CAMEFF_FUSION_EPSILON) { - continue; - } - - weighted_hazard += - effective_weight * - clamp01(expert_results[i].hazard_evidence); - - weighted_preparation += - effective_weight * - clamp01(expert_results[i].preparation_evidence); - - weighted_cascade += - effective_weight * - clamp01(expert_results[i].cascade_evidence); - - confidence_numerator += - routing_strength * confidence; - - total_effective_weight += effective_weight; - total_active_routing += routing_strength; - ++active_expert_count; - } - - if (expert_result_count > 0U) { - result->expert_coverage = - clamp01( - total_active_routing / - (double)expert_result_count - ); - } - - if (total_effective_weight > - CAMEFF_FUSION_EPSILON) { - result->hazard_evidence = - clamp01( - weighted_hazard / - total_effective_weight - ); - - result->preparation_evidence = - clamp01( - weighted_preparation / - total_effective_weight - ); - - result->cascade_evidence = - clamp01( - weighted_cascade / - total_effective_weight - ); - } - - classification_confidence = 1.0; - - if (patterns != NULL) { - classification_confidence = - clamp01( - patterns->classification_confidence - ); - } - - if (total_active_routing > - CAMEFF_FUSION_EPSILON) { - result->fused_confidence = - clamp01( - ( - confidence_numerator / - total_active_routing - ) * - classification_confidence - ); - } - - result->decision = - fused_decision( - result->hazard_evidence, - result->fused_confidence, - minimum_confidence, - watch_threshold, - elevated_threshold, - active_expert_count - ); - - return CAMEFF_STATUS_OK; -} \ No newline at end of file diff --git a/src/geo.c b/src/geo.c deleted file mode 100644 index 934c693..0000000 --- a/src/geo.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "cameff/geo.h" - -#include - -static double degrees_to_radians(double degrees) { - return degrees * (3.14159265358979323846 / 180.0); -} - -double cameff_haversine_km(double latitude1_deg, double longitude1_deg, - double latitude2_deg, double longitude2_deg) { - const double earth_radius_km = 6371.0088; - const double latitude1 = degrees_to_radians(latitude1_deg); - const double latitude2 = degrees_to_radians(latitude2_deg); - const double delta_latitude = latitude2 - latitude1; - const double delta_longitude = degrees_to_radians(longitude2_deg - longitude1_deg); - const double sin_latitude = sin(delta_latitude / 2.0); - const double sin_longitude = sin(delta_longitude / 2.0); - const double a = (sin_latitude * sin_latitude) + - (cos(latitude1) * cos(latitude2) * sin_longitude * sin_longitude); - const double bounded_a = fmin(1.0, fmax(0.0, a)); - return 2.0 * earth_radius_km * asin(sqrt(bounded_a)); -} diff --git a/src/pattern.c b/src/pattern.c deleted file mode 100644 index 0714d67..0000000 --- a/src/pattern.c +++ /dev/null @@ -1,404 +0,0 @@ -#include "cameff/pattern.h" - -#include -#include -#include - -#define CAMEFF_CLASSIFIER_EPSILON 1e-12 - -static double clamp01(double value) { - if (!isfinite(value)) { - return 0.0; - } - - if (value < 0.0) { - return 0.0; - } - - if (value > 1.0) { - return 1.0; - } - - return value; -} - -static double signal_value( - const cameff_signal_frame_t *frame, - cameff_signal_id_t signal_id -) { - const cameff_signal_t *signal; - - signal = &frame->signals[(size_t)signal_id]; - - if (!signal->available) { - return 0.0; - } - - return clamp01(signal->value); -} - -static double signal_confidence( - const cameff_signal_frame_t *frame, - cameff_signal_id_t signal_id -) { - const cameff_signal_t *signal; - - signal = &frame->signals[(size_t)signal_id]; - - if (!signal->available) { - return 0.0; - } - - return clamp01(signal->confidence); -} - -static double effective_signal( - const cameff_signal_frame_t *frame, - cameff_signal_id_t signal_id -) { - return signal_value(frame, signal_id) * - signal_confidence(frame, signal_id); -} - -static double mean_available_signal_confidence( - const cameff_signal_frame_t *frame -) { - double total; - size_t available_count; - size_t i; - - total = 0.0; - available_count = 0U; - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - if (frame->signals[i].available) { - total += clamp01(frame->signals[i].confidence); - ++available_count; - } - } - - if (available_count == 0U) { - return 0.0; - } - - return total / (double)available_count; -} - -static double region_profile_confidence( - const cameff_region_profile_t *region -) { - double total; - - total = - clamp01(region->catalog_completeness) + - clamp01(region->station_coverage) + - clamp01(region->regional_prior_confidence); - - return total / 3.0; -} - -static void initialize_pattern_result( - cameff_pattern_result_t *result -) { - size_t i; - - (void)memset(result, 0, sizeof(*result)); - - result->count = CAMEFF_PATTERN_COUNT; - result->dominant_pattern = CAMEFF_PATTERN_UNKNOWN; - - for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) { - result->scores[i].pattern_id = (cameff_pattern_id_t)i; - } -} - -static void calculate_raw_scores( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - double scores[CAMEFF_PATTERN_COUNT] -) { - double activity; - double acceleration; - double concentration; - double magnitude; - double depth; - double b_value; - double completeness; - double fault_confidence; - - double subduction; - double crustal; - double transform; - double volcanic; - double fault_uncertainty; - double data_confidence; - double quietness; - - activity = effective_signal( - frame, - CAMEFF_SIGNAL_ACTIVITY_RATE - ); - - acceleration = effective_signal( - frame, - CAMEFF_SIGNAL_TEMPORAL_ACCELERATION - ); - - concentration = effective_signal( - frame, - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ); - - magnitude = effective_signal( - frame, - CAMEFF_SIGNAL_MAGNITUDE_TREND - ); - - depth = effective_signal( - frame, - CAMEFF_SIGNAL_DEPTH_MIGRATION - ); - - b_value = effective_signal( - frame, - CAMEFF_SIGNAL_B_VALUE_ANOMALY - ); - - completeness = effective_signal( - frame, - CAMEFF_SIGNAL_CATALOG_COMPLETENESS - ); - - fault_confidence = effective_signal( - frame, - CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE - ); - - subduction = clamp01(region->subduction_affinity); - crustal = clamp01(region->crustal_fault_affinity); - transform = clamp01(region->transform_affinity); - volcanic = clamp01(region->volcanic_affinity); - - fault_uncertainty = - 1.0 - clamp01(region->fault_map_confidence); - - data_confidence = - clamp01(frame->data_confidence); - - quietness = - 1.0 - - ( - activity + - acceleration + - concentration + - magnitude + - depth + - b_value - ) / 6.0; - - /* - * Background compatibility rises when anomaly channels are quiet - * and the input data are reasonably trustworthy. - */ - scores[CAMEFF_PATTERN_BACKGROUND] = - 0.20 + - (1.80 * quietness) + - (0.40 * completeness) + - (0.30 * data_confidence); - - /* - * Subduction preparation emphasizes temporal acceleration, - * magnitude behavior, spatial concentration and depth behavior, - * conditioned on subduction-region applicability. - */ - scores[CAMEFF_PATTERN_SUBDUCTION_PREPARATION] = - -0.30 + - (1.30 * subduction) + - (0.75 * activity) + - (1.00 * acceleration) + - (0.65 * concentration) + - (0.85 * magnitude) + - (0.65 * depth) + - (0.50 * b_value) + - (0.25 * completeness); - - /* - * Crustal-fault activation uses concentrated shallow-style - * catalog evidence and permits fault-map uncertainty to increase - * applicability. Uncertainty alone is insufficient because it is - * multiplied by observed activity and concentration. - */ - scores[CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION] = - -0.35 + - (1.20 * crustal) + - (0.85 * activity) + - (0.80 * acceleration) + - (1.05 * concentration) + - (0.65 * magnitude) + - (0.30 * b_value) + - (0.55 * fault_uncertainty * activity * concentration) + - (0.20 * fault_confidence); - - /* - * Cascade compatibility emphasizes high activity and clustering. - * It deliberately uses less tectonic-context dependence because - * triggered sequences can occur in several tectonic settings. - */ - scores[CAMEFF_PATTERN_SEISMIC_CASCADE] = - -0.20 + - (1.25 * activity) + - (0.75 * acceleration) + - (1.20 * concentration) + - (0.35 * magnitude) + - (0.20 * b_value) + - (0.20 * completeness); - - /* - * Volcanic classification remains conservative because Milestone 1 - * does not yet provide deformation, gas or thermal observations. - */ - scores[CAMEFF_PATTERN_VOLCANIC_UNREST] = - -0.75 + - (1.45 * volcanic) + - (0.70 * activity) + - (0.70 * acceleration) + - (0.55 * concentration) + - (0.55 * depth); - - /* - * Transform-fault activity emphasizes lateral concentration, - * temporal acceleration and regional transform affinity. - */ - scores[CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY] = - -0.45 + - (1.35 * transform) + - (0.80 * activity) + - (0.85 * acceleration) + - (0.95 * concentration) + - (0.55 * magnitude) + - (0.30 * b_value); - - /* - * Unknown becomes more compatible when data quality or regional - * knowledge is weak. - */ - scores[CAMEFF_PATTERN_UNKNOWN] = - -0.10 + - (0.90 * (1.0 - data_confidence)) + - (0.65 * (1.0 - completeness)) + - (0.55 * (1.0 - region_profile_confidence(region))); -} - -static void softmax_scores( - const double raw_scores[CAMEFF_PATTERN_COUNT], - cameff_pattern_result_t *result -) { - double maximum; - double denominator; - double exponentials[CAMEFF_PATTERN_COUNT]; - size_t dominant_index; - size_t i; - - maximum = -DBL_MAX; - - for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) { - if (raw_scores[i] > maximum) { - maximum = raw_scores[i]; - } - } - - denominator = 0.0; - - for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) { - exponentials[i] = exp(raw_scores[i] - maximum); - denominator += exponentials[i]; - } - - if (!isfinite(denominator) || - denominator <= CAMEFF_CLASSIFIER_EPSILON) { - result->scores[CAMEFF_PATTERN_UNKNOWN].membership = 1.0; - result->dominant_pattern = CAMEFF_PATTERN_UNKNOWN; - return; - } - - dominant_index = 0U; - - for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) { - result->scores[i].membership = - exponentials[i] / denominator; - - if (result->scores[i].membership > - result->scores[dominant_index].membership) { - dominant_index = i; - } - } - - result->dominant_pattern = - (cameff_pattern_id_t)dominant_index; -} - -cameff_status_t cameff_classify_patterns( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - cameff_pattern_result_t *result -) { - double raw_scores[CAMEFF_PATTERN_COUNT]; - double signal_quality; - double regional_quality; - size_t i; - - if (frame == NULL || region == NULL || result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - initialize_pattern_result(result); - calculate_raw_scores(frame, region, raw_scores); - softmax_scores(raw_scores, result); - - signal_quality = - mean_available_signal_confidence(frame); - - regional_quality = - region_profile_confidence(region); - - result->classification_confidence = - clamp01( - (0.70 * signal_quality) + - (0.30 * regional_quality) - ); - - for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) { - result->scores[i].confidence = - result->classification_confidence; - } - - return CAMEFF_STATUS_OK; -} - -const char *cameff_pattern_name(cameff_pattern_id_t pattern_id) { - switch (pattern_id) { - case CAMEFF_PATTERN_BACKGROUND: - return "BACKGROUND"; - - case CAMEFF_PATTERN_SUBDUCTION_PREPARATION: - return "SUBDUCTION_PREPARATION"; - - case CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION: - return "CRUSTAL_FAULT_ACTIVATION"; - - case CAMEFF_PATTERN_SEISMIC_CASCADE: - return "SEISMIC_CASCADE"; - - case CAMEFF_PATTERN_VOLCANIC_UNREST: - return "VOLCANIC_UNREST"; - - case CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY: - return "TRANSFORM_FAULT_ACTIVITY"; - - case CAMEFF_PATTERN_UNKNOWN: - return "UNKNOWN"; - - default: - return "INVALID_PATTERN"; - } -} \ No newline at end of file diff --git a/src/signals.c b/src/signals.c deleted file mode 100644 index f074490..0000000 --- a/src/signals.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "cameff/signals.h" - -#include "cameff/geo.h" - -#include -#include -#include - -static double clamp01(double value) { - return fmin(1.0, fmax(0.0, value)); -} - -const char *cameff_signal_name(cameff_signal_id_t signal_id) { - static const char *names[CAMEFF_SIGNAL_COUNT] = { - "activity_rate", "temporal_acceleration", "spatial_concentration", "magnitude_trend", - "depth_migration", "b_value_anomaly", "catalog_completeness", "fault_map_confidence" - }; - if ((unsigned)signal_id >= CAMEFF_SIGNAL_COUNT) { - return "unknown"; - } - return names[(unsigned)signal_id]; -} - -static int compare_epoch(const void *left, const void *right) { - const cameff_event_t *a = left; - const cameff_event_t *b = right; - return (a->epoch_seconds > b->epoch_seconds) - (a->epoch_seconds < b->epoch_seconds); -} - -static double mean_magnitude(const cameff_event_t *events, size_t begin, size_t end) { - size_t i; - double sum = 0.0; - if (end <= begin) return 0.0; - for (i = begin; i < end; i++) sum += events[i].magnitude; - return sum / (double)(end - begin); -} - -cameff_status_t cameff_extract_signal_frame(const cameff_catalog_t *catalog, - const cameff_analysis_window_t *window, - const cameff_config_t *config, - cameff_signal_frame_t *frame) { - cameff_event_t *selected; - size_t i; - size_t count = 0U; - const int64_t start_epoch = window->cutoff_epoch_seconds - - ((int64_t)window->lookback_days * 86400); - double mean_distance = 0.0; - double mean_depth_first = 0.0; - double mean_depth_second = 0.0; - size_t recent_count = 0U; - size_t older_count = 0U; - size_t first_count; - size_t second_count; - double min_magnitude = 100.0; - double magnitude_sum = 0.0; - double magnitude_sq_sum = 0.0; - - if ((catalog == NULL) || (window == NULL) || (config == NULL) || (frame == NULL) || - (window->radius_km <= 0.0) || (window->lookback_days == 0U)) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - (void)memset(frame, 0, sizeof(*frame)); - selected = malloc((catalog->count == 0U ? 1U : catalog->count) * sizeof(*selected)); - if (selected == NULL) return CAMEFF_STATUS_OUT_OF_MEMORY; - - for (i = 0U; i < catalog->count; i++) { - const cameff_event_t *event = &catalog->items[i]; - const double distance = cameff_haversine_km(window->center_latitude_deg, - window->center_longitude_deg, - event->latitude_deg, event->longitude_deg); - if ((event->epoch_seconds >= start_epoch) && - (event->epoch_seconds <= window->cutoff_epoch_seconds) && - (distance <= window->radius_km)) { - selected[count++] = *event; - } - } - frame->selected_event_count = count; - if (count == 0U) { - free(selected); - return CAMEFF_STATUS_INSUFFICIENT_DATA; - } - qsort(selected, count, sizeof(*selected), compare_epoch); - first_count = count / 2U; - second_count = count - first_count; - - for (i = 0U; i < count; i++) { - const double distance = cameff_haversine_km(window->center_latitude_deg, - window->center_longitude_deg, - selected[i].latitude_deg, - selected[i].longitude_deg); - mean_distance += distance; - magnitude_sum += selected[i].magnitude; - magnitude_sq_sum += selected[i].magnitude * selected[i].magnitude; - if (selected[i].magnitude < min_magnitude) min_magnitude = selected[i].magnitude; - if (i < first_count) mean_depth_first += selected[i].depth_km; - else mean_depth_second += selected[i].depth_km; - if (selected[i].epoch_seconds >= window->cutoff_epoch_seconds - - ((int64_t)window->lookback_days * 43200)) recent_count++; - else older_count++; - } - mean_distance /= (double)count; - if (first_count > 0U) mean_depth_first /= (double)first_count; - if (second_count > 0U) mean_depth_second /= (double)second_count; - - frame->signals[CAMEFF_SIGNAL_ACTIVITY_RATE] = (cameff_signal_t){ - clamp01((double)count / ((double)config->minimum_events * 2.0)), - clamp01((double)count / (double)config->minimum_events), count, 1 - }; - frame->signals[CAMEFF_SIGNAL_TEMPORAL_ACCELERATION] = (cameff_signal_t){ - clamp01(0.5 + (((double)recent_count - (double)older_count) / (double)count)), - clamp01((double)count / ((double)config->minimum_events * 1.5)), count, 1 - }; - frame->signals[CAMEFF_SIGNAL_SPATIAL_CONCENTRATION] = (cameff_signal_t){ - clamp01(1.0 - (mean_distance / window->radius_km)), - clamp01((double)count / (double)config->minimum_events), count, 1 - }; - frame->signals[CAMEFF_SIGNAL_MAGNITUDE_TREND] = (cameff_signal_t){ - clamp01(0.5 + (mean_magnitude(selected, first_count, count) - - mean_magnitude(selected, 0U, first_count)) / 2.0), - clamp01((double)count / ((double)config->minimum_events * 1.5)), count, first_count > 0U - }; - frame->signals[CAMEFF_SIGNAL_DEPTH_MIGRATION] = (cameff_signal_t){ - clamp01(0.5 + (mean_depth_first - mean_depth_second) / 100.0), - clamp01((double)count / ((double)config->minimum_events * 1.5)), count, first_count > 0U - }; - - { - const double mean_mag = magnitude_sum / (double)count; - const double variance = fmax(0.0, magnitude_sq_sum / (double)count - mean_mag * mean_mag); - const double b_proxy = (mean_mag > min_magnitude) ? - (0.4342944819 / (mean_mag - min_magnitude + 0.05)) : 2.0; - frame->signals[CAMEFF_SIGNAL_B_VALUE_ANOMALY] = (cameff_signal_t){ - clamp01((1.2 - b_proxy) / 0.8), - clamp01((double)count / 20.0) * clamp01(variance / 0.25), count, count >= 10U - }; - } - frame->signals[CAMEFF_SIGNAL_CATALOG_COMPLETENESS] = (cameff_signal_t){ - clamp01((double)count / ((double)config->minimum_events * 2.0)), - clamp01((double)count / (double)config->minimum_events), count, 1 - }; - frame->signals[CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE] = (cameff_signal_t){ - clamp01(config->fault_map_confidence), 1.0, 0U, 1 - }; - - { - double confidence_sum = 0.0; - unsigned available_count = 0U; - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; i++) { - if (frame->signals[i].available != 0) { - confidence_sum += frame->signals[i].confidence; - available_count++; - } - } - frame->data_confidence = available_count > 0U ? confidence_sum / (double)available_count : 0.0; - } - free(selected); - return count >= config->minimum_events ? CAMEFF_STATUS_OK : CAMEFF_STATUS_INSUFFICIENT_DATA; -} diff --git a/src/validation/cameff_pipeline_adapter.c b/src/validation/cameff_pipeline_adapter.c deleted file mode 100644 index 133bb15..0000000 --- a/src/validation/cameff_pipeline_adapter.c +++ /dev/null @@ -1,354 +0,0 @@ -#include "cameff_pipeline_adapter.h" - -#include "cameff/cameff.h" - -#include -#include -#include -#include - -static int context_is_valid( - const CameffPipelineAdapterContext *context -) -{ - if (context == NULL) - { - return 0; - } - - if (context->analysis_latitude < -90.0 || - context->analysis_latitude > 90.0) - { - return 0; - } - - if (context->analysis_longitude < -180.0 || - context->analysis_longitude > 180.0) - { - return 0; - } - - if (context->analysis_radius_km <= 0.0) - { - return 0; - } - - if (context->lookback_days == 0U) - { - return 0; - } - - if (context->cutoff_epoch_seconds <= 0) - { - return 0; - } - - return 1; -} - -static int convert_catalog( - const EarthquakeCatalog *source, - cameff_catalog_t *destination -) -{ - size_t index; - - if (source == NULL || destination == NULL) - { - return 0; - } - - destination->items = NULL; - destination->count = 0U; - destination->capacity = 0U; - - if (source->count == 0U) - { - return 1; - } - - destination->items = calloc( - source->count, - sizeof(*destination->items) - ); - - if (destination->items == NULL) - { - return 0; - } - - destination->count = source->count; - destination->capacity = source->count; - - for (index = 0U; index < source->count; index++) - { - const EarthquakeEvent *source_event; - cameff_event_t *destination_event; - - source_event = &source->events[index]; - destination_event = - &destination->items[index]; - - (void)snprintf( - destination_event->id, - sizeof(destination_event->id), - "hindcast-%zu", - index - ); - - (void)snprintf( - destination_event->source, - sizeof(destination_event->source), - "%s", - "historical" - ); - - destination_event->epoch_seconds = - (int64_t)source_event->timestamp; - - destination_event->latitude_deg = - source_event->latitude; - - destination_event->longitude_deg = - source_event->longitude; - - destination_event->depth_km = - source_event->depth_km; - - destination_event->magnitude = - source_event->magnitude; - } - - return 1; -} - -static void release_catalog( - cameff_catalog_t *catalog -) -{ - if (catalog == NULL) - { - return; - } - - free(catalog->items); - - catalog->items = NULL; - catalog->count = 0U; - catalog->capacity = 0U; -} - -static const char *find_dominant_expert( - const cameff_multi_expert_result_t *fusion -) -{ - const char *dominant_name; - double dominant_contribution; - size_t index; - - if (fusion == NULL || - fusion->expert_result_count == 0U) - { - return NULL; - } - - dominant_name = NULL; - dominant_contribution = -1.0; - - for (index = 0U; - index < fusion->expert_result_count; - index++) - { - const cameff_expert_result_t *expert; - double contribution; - - expert = &fusion->expert_results[index]; - - if (expert->status != CAMEFF_EXPERT_OK) - { - continue; - } - - contribution = - expert->routing_strength * - expert->confidence; - - if (contribution > dominant_contribution) - { - dominant_contribution = contribution; - dominant_name = expert->expert_name; - } - } - - return dominant_name; -} - -void cameff_pipeline_adapter_context_initialize( - CameffPipelineAdapterContext *context -) -{ - if (context == NULL) - { - return; - } - - (void)memset(context, 0, sizeof(*context)); - - cameff_config_default(&context->config); - - cameff_evaluation_options_default( - &context->options - ); - - context->analysis_latitude = 0.0; - context->analysis_longitude = 0.0; - context->analysis_radius_km = 100.0; - context->lookback_days = 365U; - context->cutoff_epoch_seconds = 0; -} - -int cameff_pipeline_evaluator( - const EarthquakeCatalog *evidence_catalog, - const EarthquakeEvent *target_context, - CameffEvaluationOutput *output, - void *user_context -) -{ - CameffPipelineAdapterContext *context; - cameff_catalog_t cameff_catalog; - cameff_analysis_window_t window; - cameff_signal_frame_t frame; - cameff_evaluation_result_t evaluation; - cameff_status_t status; - const char *pattern_name; - const char *expert_name; - - /* - * Deliberately unused. - * - * This prevents target magnitude, target depth, or other - * post-event information from entering the signal pipeline. - */ - (void)target_context; - - if (evidence_catalog == NULL || - output == NULL || - user_context == NULL) - { - return CAMEFF_EVALUATOR_INVALID_ARGUMENT; - } - - context = - (CameffPipelineAdapterContext *)user_context; - - if (!context_is_valid(context)) - { - return CAMEFF_EVALUATOR_INVALID_ARGUMENT; - } - - cameff_evaluation_output_initialize(output); - - if (!convert_catalog( - evidence_catalog, - &cameff_catalog)) - { - return CAMEFF_EVALUATOR_EXECUTION_FAILED; - } - - (void)memset(&window, 0, sizeof(window)); - - window.center_latitude_deg = - context->analysis_latitude; - - window.center_longitude_deg = - context->analysis_longitude; - - window.radius_km = - context->analysis_radius_km; - - window.lookback_days = - context->lookback_days; - - /* - * Use the actual hindcast cutoff supplied by the - * experiment context. - * - * Do not derive this from the last evidence event. - */ - window.cutoff_epoch_seconds = - context->cutoff_epoch_seconds; - - status = cameff_extract_signal_frame( - &cameff_catalog, - &window, - &context->config, - &frame - ); - - if (status != CAMEFF_STATUS_OK) - { - release_catalog(&cameff_catalog); - - return CAMEFF_EVALUATOR_EXECUTION_FAILED; - } - - output->signal_count = - CAMEFF_SIGNAL_COUNT; - - (void)memcpy( - output->signals, - frame.signals, - sizeof(output->signals) - ); - - status = cameff_evaluate_experts( - &frame, - &context->config, - &context->region, - &context->options, - &evaluation - ); - - release_catalog(&cameff_catalog); - - if (status != CAMEFF_STATUS_OK) - { - return CAMEFF_EVALUATOR_EXECUTION_FAILED; - } - - output->hazard_score = - evaluation.fusion.hazard_evidence; - - output->confidence = - evaluation.fusion.fused_confidence; - - pattern_name = cameff_pattern_name( - evaluation.fusion.dominant_pattern - ); - - expert_name = find_dominant_expert( - &evaluation.fusion - ); - - if (pattern_name == NULL || - expert_name == NULL) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - (void)snprintf( - output->dominant_pattern, - sizeof(output->dominant_pattern), - "%s", - pattern_name - ); - - (void)snprintf( - output->dominant_expert, - sizeof(output->dominant_expert), - "%s", - expert_name - ); - - return CAMEFF_EVALUATOR_OK; -} \ No newline at end of file diff --git a/src/validation/cameff_pipeline_adapter.h b/src/validation/cameff_pipeline_adapter.h deleted file mode 100644 index 9d42eba..0000000 --- a/src/validation/cameff_pipeline_adapter.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef CAMEFF_PIPELINE_ADAPTER_H -#define CAMEFF_PIPELINE_ADAPTER_H - -#include "hindcast_evaluator.h" - -#include "cameff/config.h" -#include "cameff/evaluation.h" -#include "cameff/region.h" - -#include - -typedef struct -{ - cameff_config_t config; - cameff_evaluation_options_t options; - cameff_region_profile_t region; - - double analysis_latitude; - double analysis_longitude; - - double analysis_radius_km; - unsigned lookback_days; - int64_t cutoff_epoch_seconds; - -} CameffPipelineAdapterContext; - -void cameff_pipeline_adapter_context_initialize( - CameffPipelineAdapterContext *context -); - -int cameff_pipeline_evaluator( - const EarthquakeCatalog *evidence_catalog, - const EarthquakeEvent *target_context, - CameffEvaluationOutput *output, - void *user_context -); - -#endif \ No newline at end of file diff --git a/src/validation/hindcast.c b/src/validation/hindcast.c deleted file mode 100644 index fecc6cc..0000000 --- a/src/validation/hindcast.c +++ /dev/null @@ -1,315 +0,0 @@ -#include "hindcast.h" - -#include "../data/earthquake_catalog_filter.h" - -#include - -static int target_is_valid( - const EarthquakeEvent *target -) -{ - if (target == NULL) - { - return 0; - } - - if (target->latitude < -90.0 || - target->latitude > 90.0) - { - return 0; - } - - if (target->longitude < -180.0 || - target->longitude > 180.0) - { - return 0; - } - - if (target->depth_km < 0.0) - { - return 0; - } - - if (target->magnitude < -2.0 || - target->magnitude > 10.5) - { - return 0; - } - - if (target->timestamp <= (time_t)0) - { - return 0; - } - - return 1; -} - -void hindcast_experiment_initialize( - HindcastExperiment *experiment -) -{ - if (experiment == NULL) - { - return; - } - - initialize_earthquake_event( - &experiment->target - ); - - experiment->observation_start = (time_t)0; - experiment->cutoff_time = (time_t)0; - experiment->analysis_radius_km = 0.0; - experiment->source_catalog = NULL; - - experiment->evaluator = NULL; - experiment->evaluator_context = NULL; -} - -void hindcast_result_initialize( - HindcastResult *result -) -{ - size_t index; - - if (result == NULL) - { - return; - } - - result->status = - CAMEFF_HINDCAST_NOT_EVALUATED; - - result->evidence_event_count = 0U; - - result->observation_start = (time_t)0; - result->cutoff_time = (time_t)0; - - result->hazard_score = 0.0; - result->confidence = 0.0; - - result->signal_count = 0U; - - for (index = 0U; - index < CAMEFF_SIGNAL_COUNT; - index++) - { - result->signals[index].value = 0.0; - result->signals[index].confidence = 0.0; - result->signals[index].supporting_events = 0U; - result->signals[index].available = 0; - } - - result->dominant_pattern[0] = '\0'; - result->dominant_expert[0] = '\0'; -} - -int hindcast_experiment_validate( - const HindcastExperiment *experiment -) -{ - if (experiment == NULL) - { - return CAMEFF_HINDCAST_INVALID_ARGUMENT; - } - - if (!target_is_valid(&experiment->target)) - { - return CAMEFF_HINDCAST_INVALID_TARGET; - } - - if (experiment->source_catalog == NULL) - { - return CAMEFF_HINDCAST_INVALID_ARGUMENT; - } - - if (experiment->observation_start >= - experiment->cutoff_time) - { - return CAMEFF_HINDCAST_INVALID_TIME_WINDOW; - } - - /* - * The cutoff must not be later than the target. - * - * Equal is allowed because the target timestamp itself - * remains excluded by the half-open filter: - * - * event.timestamp < cutoff_time - */ - if (experiment->cutoff_time > - experiment->target.timestamp) - { - return CAMEFF_HINDCAST_INVALID_TIME_WINDOW; - } - - if (experiment->analysis_radius_km <= 0.0) - { - return CAMEFF_HINDCAST_INVALID_RADIUS; - } - - return CAMEFF_HINDCAST_OK; -} - -int run_hindcast( - const HindcastExperiment *experiment, - HindcastResult *result -) -{ - EarthquakeCatalog evidence_catalog; - CameffEvaluationOutput evaluation_output; - - int validation_status; - int filter_status; - int evaluator_status; - int output_status; - - if (result == NULL) - { - return CAMEFF_HINDCAST_INVALID_ARGUMENT; - } - - hindcast_result_initialize(result); - - validation_status = - hindcast_experiment_validate(experiment); - - if (validation_status != CAMEFF_HINDCAST_OK) - { - result->status = - (CameffHindcastStatus)validation_status; - - return validation_status; - } - - result->observation_start = - experiment->observation_start; - - result->cutoff_time = - experiment->cutoff_time; - - filter_status = - catalog_filter_hindcast_window( - experiment->source_catalog, - experiment->observation_start, - experiment->cutoff_time, - experiment->target.latitude, - experiment->target.longitude, - experiment->analysis_radius_km, - &evidence_catalog - ); - - if (filter_status != - CAMEFF_CATALOG_FILTER_OK) - { - result->status = - CAMEFF_HINDCAST_FILTER_FAILED; - - return CAMEFF_HINDCAST_FILTER_FAILED; - } - - result->evidence_event_count = - evidence_catalog.count; - - if (evidence_catalog.count == 0) - { - result->status = - CAMEFF_HINDCAST_NO_EVIDENCE; - - return CAMEFF_HINDCAST_NO_EVIDENCE; - } - - /* - * A missing evaluator means that the historical evidence - * window was constructed successfully, but no expert - * pipeline has been connected. - */ - if (experiment->evaluator == NULL) - { - result->status = - CAMEFF_HINDCAST_NOT_EVALUATED; - - return CAMEFF_HINDCAST_NOT_EVALUATED; - } - - cameff_evaluation_output_initialize( - &evaluation_output - ); - - /* - * The evaluator may use the target only as predefined - * geographic context. - * - * It must not use the target magnitude, depth, or other - * post-event knowledge as precursor evidence. - */ - evaluator_status = - experiment->evaluator( - &evidence_catalog, - &experiment->target, - &evaluation_output, - experiment->evaluator_context - ); - - if (evaluator_status != - CAMEFF_EVALUATOR_OK) - { - result->status = - CAMEFF_HINDCAST_EVALUATION_FAILED; - - return CAMEFF_HINDCAST_EVALUATION_FAILED; - } - - output_status = - cameff_evaluation_output_validate( - &evaluation_output - ); - - if (output_status != - CAMEFF_EVALUATOR_OK) - { - result->status = - CAMEFF_HINDCAST_EVALUATION_FAILED; - - return CAMEFF_HINDCAST_EVALUATION_FAILED; - } - - result->hazard_score = - evaluation_output.hazard_score; - - result->confidence = - evaluation_output.confidence; - - result->signal_count = - evaluation_output.signal_count; - - memcpy( - result->signals, - evaluation_output.signals, - sizeof(result->signals) - ); - - memcpy( - result->dominant_pattern, - evaluation_output.dominant_pattern, - sizeof(result->dominant_pattern) - ); - - result->dominant_pattern[ - sizeof(result->dominant_pattern) - 1 - ] = '\0'; - - memcpy( - result->dominant_expert, - evaluation_output.dominant_expert, - sizeof(result->dominant_expert) - ); - - result->dominant_expert[ - sizeof(result->dominant_expert) - 1 - ] = '\0'; - - result->status = CAMEFF_HINDCAST_OK; - - return CAMEFF_HINDCAST_OK; -} \ No newline at end of file diff --git a/src/validation/hindcast.h b/src/validation/hindcast.h deleted file mode 100644 index c6fd5ce..0000000 --- a/src/validation/hindcast.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef HINDCAST_H -#define HINDCAST_H - -#include "../data/earthquake_catalog.h" -#include "../data/earthquake_event.h" -#include "hindcast_evaluator.h" -#include "cameff/types.h" - -#include -#include - -typedef enum -{ - CAMEFF_HINDCAST_OK = 0, - CAMEFF_HINDCAST_INVALID_ARGUMENT = -1, - CAMEFF_HINDCAST_INVALID_TARGET = -2, - CAMEFF_HINDCAST_INVALID_TIME_WINDOW = -3, - CAMEFF_HINDCAST_INVALID_RADIUS = -4, - CAMEFF_HINDCAST_FILTER_FAILED = -5, - CAMEFF_HINDCAST_NO_EVIDENCE = -6, - CAMEFF_HINDCAST_EVALUATION_FAILED = -7, - CAMEFF_HINDCAST_NOT_EVALUATED = 1 -} CameffHindcastStatus; - -typedef struct -{ - EarthquakeEvent target; - - time_t observation_start; - time_t cutoff_time; - - double analysis_radius_km; - - const EarthquakeCatalog *source_catalog; - - CameffHindcastEvaluator evaluator; - void *evaluator_context; -} HindcastExperiment; - -typedef struct -{ - CameffHindcastStatus status; - - size_t evidence_event_count; - - time_t observation_start; - time_t cutoff_time; - - double hazard_score; - double confidence; - - cameff_signal_t signals[CAMEFF_SIGNAL_COUNT]; - size_t signal_count; - - char dominant_pattern[64]; - char dominant_expert[64]; -} HindcastResult; - -void hindcast_experiment_initialize( - HindcastExperiment *experiment -); - -void hindcast_result_initialize( - HindcastResult *result -); - -int hindcast_experiment_validate( - const HindcastExperiment *experiment -); - -int run_hindcast( - const HindcastExperiment *experiment, - HindcastResult *result -); - -#endif \ No newline at end of file diff --git a/src/validation/hindcast_evaluator.c b/src/validation/hindcast_evaluator.c deleted file mode 100644 index 2b77e02..0000000 --- a/src/validation/hindcast_evaluator.c +++ /dev/null @@ -1,107 +0,0 @@ -#include "hindcast_evaluator.h" - -#include - -void cameff_evaluation_output_initialize( - CameffEvaluationOutput *output -) -{ - size_t index; - - if (output == NULL) - { - return; - } - - output->hazard_score = 0.0; - output->confidence = 0.0; - - output->signal_count = 0U; - - for (index = 0U; - index < CAMEFF_SIGNAL_COUNT; - index++) - { - output->signals[index].value = 0.0; - output->signals[index].confidence = 0.0; - output->signals[index].supporting_events = 0U; - output->signals[index].available = 0; - } - - output->dominant_pattern[0] = '\0'; - output->dominant_expert[0] = '\0'; -} - -int cameff_evaluation_output_validate( - const CameffEvaluationOutput *output -) -{ - if (output == NULL) - { - return CAMEFF_EVALUATOR_INVALID_ARGUMENT; - } - - if (!isfinite(output->hazard_score) || - output->hazard_score < 0.0 || - output->hazard_score > 1.0) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - if (!isfinite(output->confidence) || - output->confidence < 0.0 || - output->confidence > 1.0) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - if (output->signal_count != CAMEFF_SIGNAL_COUNT) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - { - size_t index; - - for (index = 0U; - index < output->signal_count; - index++) - { - const cameff_signal_t *signal; - - signal = &output->signals[index]; - - if (!isfinite(signal->value) || - signal->value < 0.0 || - signal->value > 1.0) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - if (!isfinite(signal->confidence) || - signal->confidence < 0.0 || - signal->confidence > 1.0) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - if (signal->available != 0 && - signal->available != 1) - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - } - } - - if (output->dominant_expert[0] == '\0') - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - if (output->dominant_pattern[0] == '\0') - { - return CAMEFF_EVALUATOR_INVALID_OUTPUT; - } - - return CAMEFF_EVALUATOR_OK; -} \ No newline at end of file diff --git a/src/validation/hindcast_evaluator.h b/src/validation/hindcast_evaluator.h deleted file mode 100644 index 36d9812..0000000 --- a/src/validation/hindcast_evaluator.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef CAMEFF_HINDCAST_EVALUATOR_H -#define CAMEFF_HINDCAST_EVALUATOR_H - -#include "../data/earthquake_catalog.h" -#include "../data/earthquake_event.h" -#include "cameff/types.h" - -#include - -#define CAMEFF_EXPERT_NAME_CAPACITY 64 - -typedef enum -{ - CAMEFF_EVALUATOR_OK = 0, - CAMEFF_EVALUATOR_INVALID_ARGUMENT = -1, - CAMEFF_EVALUATOR_EXECUTION_FAILED = -2, - CAMEFF_EVALUATOR_INVALID_OUTPUT = -3 -} CameffEvaluatorStatus; - -typedef struct -{ - double hazard_score; - double confidence; - - cameff_signal_t signals[CAMEFF_SIGNAL_COUNT]; - size_t signal_count; - - char dominant_pattern[ - CAMEFF_EXPERT_NAME_CAPACITY - ]; - - char dominant_expert[ - CAMEFF_EXPERT_NAME_CAPACITY - ]; -} CameffEvaluationOutput; - -/* - * The evaluator may use target_context only for the - * predefined analysis location. - * - * It must not use target magnitude, depth, timestamp-derived - * post-event information, or other future knowledge as - * precursor evidence. - */ -typedef int (*CameffHindcastEvaluator)( - const EarthquakeCatalog *evidence_catalog, - const EarthquakeEvent *target_context, - CameffEvaluationOutput *output, - void *user_context -); - -void cameff_evaluation_output_initialize( - CameffEvaluationOutput *output -); - -int cameff_evaluation_output_validate( - const CameffEvaluationOutput *output -); - -#endif \ No newline at end of file diff --git a/src/validation/metrics.c b/src/validation/metrics.c deleted file mode 100644 index 0c57d84..0000000 --- a/src/validation/metrics.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "metrics.h" - - -double precision(ClassificationMetrics *m) -{ - int denominator = - m->true_positive + - m->false_positive; - - - if(denominator == 0) - return 0.0; - - - return - (double)m->true_positive / - denominator; -} - - - -double recall(ClassificationMetrics *m) -{ - - int denominator = - m->true_positive + - m->false_negative; - - - if(denominator == 0) - return 0.0; - - - return - (double)m->true_positive / - denominator; - -} - - - -double false_positive_rate(ClassificationMetrics *m) -{ - - int denominator = - m->false_positive + - m->true_negative; - - - if(denominator == 0) - return 0.0; - - - return - (double)m->false_positive / - denominator; - -} \ No newline at end of file diff --git a/src/validation/metrics.h b/src/validation/metrics.h deleted file mode 100644 index 9e72e19..0000000 --- a/src/validation/metrics.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef METRICS_H -#define METRICS_H - - -typedef struct { - - int true_positive; - - int false_positive; - - int true_negative; - - int false_negative; - - -} ClassificationMetrics; - - -double precision(ClassificationMetrics *m); - -double recall(ClassificationMetrics *m); - -double false_positive_rate(ClassificationMetrics *m); - - -#endif \ No newline at end of file diff --git a/src/validation/report.c b/src/validation/report.c deleted file mode 100644 index 079425d..0000000 --- a/src/validation/report.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "report.h" - - -void generate_validation_report(void) -{ - - /* - * Future implementation: - * - * - Generate experiment summaries - * - Export metrics - * - Produce validation reports - */ - -} \ No newline at end of file diff --git a/src/validation/report.h b/src/validation/report.h deleted file mode 100644 index 34fbf05..0000000 --- a/src/validation/report.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef REPORT_H -#define REPORT_H - - -void generate_validation_report(void); - - -#endif \ No newline at end of file diff --git a/src/validation/test_validation.c b/src/validation/test_validation.c deleted file mode 100644 index 5cc6f9e..0000000 --- a/src/validation/test_validation.c +++ /dev/null @@ -1,27 +0,0 @@ -#include "../../src/validation/metrics.h" - -#include - - -int main() -{ - - ClassificationMetrics m = - { - .true_positive = 80, - .false_positive = 20, - .true_negative = 900, - .false_negative = 10 - }; - - - double p = precision(&m); - double r = recall(&m); - - - assert(p > 0.79); - assert(r > 0.88); - - - return 0; -} \ No newline at end of file diff --git a/tatus --short b/tatus --short deleted file mode 100644 index e9e5d9e..0000000 --- a/tatus --short +++ /dev/null @@ -1,21066 +0,0 @@ -CMakeLists.txt:1: trailing whitespace. -+cmake_minimum_required(VERSION 3.20)  -CMakeLists.txt:2: trailing whitespace. -+project(cameff VERSION 1.0.0 LANGUAGES C)  -CMakeLists.txt:3: trailing whitespace. -+  -CMakeLists.txt:4: trailing whitespace. -+set(CMAKE_C_STANDARD 17)  -CMakeLists.txt:5: trailing whitespace. -+set(CMAKE_C_STANDARD_REQUIRED ON)  -CMakeLists.txt:6: trailing whitespace. -+set(CMAKE_C_EXTENSIONS OFF)  -CMakeLists.txt:7: trailing whitespace. -+  -CMakeLists.txt:8: trailing whitespace. -+option(CAMEFF_WARNINGS_AS_ERRORS "Treat compiler warnings as errors" ON)  -CMakeLists.txt:9: trailing whitespace. -+option(CAMEFF_ENABLE_SANITIZERS "Enable address and undefined-behavior sanitizers" OFF)  -CMakeLists.txt:10: trailing whitespace. -+  -CMakeLists.txt:11: trailing whitespace. -+add_library(cameff_core STATIC  -CMakeLists.txt:12: trailing whitespace. -+ src/catalog.c  -CMakeLists.txt:13: trailing whitespace. -+ src/config.c  -CMakeLists.txt:14: trailing whitespace. -+ src/evaluation.c  -CMakeLists.txt:15: trailing whitespace. -+ src/expert_registry.c  -CMakeLists.txt:16: trailing whitespace. -+ src/fusion.c  -CMakeLists.txt:17: trailing whitespace. -+ src/experts/baseline_expert.c  -CMakeLists.txt:18: trailing whitespace. -+ src/experts/subduction_expert.c  -CMakeLists.txt:19: trailing whitespace. -+ src/experts/crustal_fault_expert.c  -CMakeLists.txt:20: trailing whitespace. -+ src/experts/cascade_expert.c  -CMakeLists.txt:21: trailing whitespace. -+ src/geo.c  -CMakeLists.txt:22: trailing whitespace. -+ src/pattern.c  -CMakeLists.txt:23: trailing whitespace. -+ src/signals.c  -CMakeLists.txt:24: trailing whitespace. -+ src/framework.c  -CMakeLists.txt:25: trailing whitespace. -+)  -CMakeLists.txt:26: trailing whitespace. -+  -CMakeLists.txt:27: trailing whitespace. -+target_include_directories(cameff_core PUBLIC include)  -CMakeLists.txt:28: trailing whitespace. -+if(NOT WIN32)  -CMakeLists.txt:29: trailing whitespace. -+ target_compile_definitions(cameff_core PRIVATE _GNU_SOURCE)  -CMakeLists.txt:30: trailing whitespace. -+endif()  -CMakeLists.txt:31: trailing whitespace. -+  -CMakeLists.txt:32: trailing whitespace. -+if(MSVC)  -CMakeLists.txt:33: trailing whitespace. -+ target_compile_options(cameff_core PRIVATE /W4)  -CMakeLists.txt:34: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:35: trailing whitespace. -+ target_compile_options(cameff_core PRIVATE /WX)  -CMakeLists.txt:36: trailing whitespace. -+ endif()  -CMakeLists.txt:37: trailing whitespace. -+else()  -CMakeLists.txt:38: trailing whitespace. -+ target_compile_options(cameff_core PRIVATE  -CMakeLists.txt:39: trailing whitespace. -+ -Wall -Wextra -Wpedantic -Wconversion -Wshadow -Wstrict-prototypes  -CMakeLists.txt:40: trailing whitespace. -+ )  -CMakeLists.txt:41: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:42: trailing whitespace. -+ target_compile_options(cameff_core PRIVATE -Werror)  -CMakeLists.txt:43: trailing whitespace. -+ endif()  -CMakeLists.txt:44: trailing whitespace. -+ target_link_libraries(cameff_core PUBLIC m)  -CMakeLists.txt:45: trailing whitespace. -+ if(CAMEFF_ENABLE_SANITIZERS)  -CMakeLists.txt:46: trailing whitespace. -+ target_compile_options(cameff_core PRIVATE -fsanitize=address,undefined -fno-omit-frame-pointer)  -CMakeLists.txt:47: trailing whitespace. -+ target_link_options(cameff_core PRIVATE -fsanitize=address,undefined)  -CMakeLists.txt:48: trailing whitespace. -+ endif()  -CMakeLists.txt:49: trailing whitespace. -+endif()  -CMakeLists.txt:50: trailing whitespace. -+  -CMakeLists.txt:51: trailing whitespace. -+add_executable(cameff apps/cameff_cli.c)  -CMakeLists.txt:52: trailing whitespace. -+target_link_libraries(cameff PRIVATE cameff_core)  -CMakeLists.txt:53: trailing whitespace. -+  -CMakeLists.txt:54: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:55: trailing whitespace. -+ target_compile_options(cameff PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow)  -CMakeLists.txt:56: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:57: trailing whitespace. -+ target_compile_options(cameff PRIVATE -Werror)  -CMakeLists.txt:58: trailing whitespace. -+ endif()  -CMakeLists.txt:59: trailing whitespace. -+endif()  -CMakeLists.txt:60: trailing whitespace. -+  -CMakeLists.txt:61: trailing whitespace. -+enable_testing()  -CMakeLists.txt:62: trailing whitespace. -+add_executable(cameff_tests tests/test_main.c)  -CMakeLists.txt:63: trailing whitespace. -+target_link_libraries(cameff_tests PRIVATE cameff_core)  -CMakeLists.txt:64: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:65: trailing whitespace. -+ target_compile_options(cameff_tests PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow)  -CMakeLists.txt:66: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:67: trailing whitespace. -+ target_compile_options(cameff_tests PRIVATE -Werror)  -CMakeLists.txt:68: trailing whitespace. -+ endif()  -CMakeLists.txt:69: trailing whitespace. -+endif()  -CMakeLists.txt:70: trailing whitespace. -+add_test(NAME cameff-unit-tests COMMAND cameff_tests)  -CMakeLists.txt:71: trailing whitespace. -+add_executable(cameff_m2_contract_tests tests/test_m2_contracts.c)  -CMakeLists.txt:72: trailing whitespace. -+target_link_libraries(cameff_m2_contract_tests PRIVATE cameff_core)  -CMakeLists.txt:73: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:74: trailing whitespace. -+ target_compile_options(cameff_m2_contract_tests PRIVATE  -CMakeLists.txt:75: trailing whitespace. -+ -Wall -Wextra -Wpedantic -Wconversion -Wshadow  -CMakeLists.txt:76: trailing whitespace. -+ )  -CMakeLists.txt:77: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:78: trailing whitespace. -+ target_compile_options(cameff_m2_contract_tests PRIVATE -Werror)  -CMakeLists.txt:79: trailing whitespace. -+ endif()  -CMakeLists.txt:80: trailing whitespace. -+endif()  -CMakeLists.txt:81: trailing whitespace. -+add_test(NAME cameff-m2-contract-tests COMMAND cameff_m2_contract_tests)  -CMakeLists.txt:82: trailing whitespace. -+add_executable(cameff_baseline_expert_tests  -CMakeLists.txt:83: trailing whitespace. -+ tests/test_baseline_expert.c  -CMakeLists.txt:84: trailing whitespace. -+)  -CMakeLists.txt:85: trailing whitespace. -+  -CMakeLists.txt:86: trailing whitespace. -+target_link_libraries(cameff_baseline_expert_tests  -CMakeLists.txt:87: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:88: trailing whitespace. -+)  -CMakeLists.txt:89: trailing whitespace. -+  -CMakeLists.txt:90: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:91: trailing whitespace. -+ target_compile_options(cameff_baseline_expert_tests PRIVATE  -CMakeLists.txt:92: trailing whitespace. -+ -Wall  -CMakeLists.txt:93: trailing whitespace. -+ -Wextra  -CMakeLists.txt:94: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:95: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:96: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:97: trailing whitespace. -+ )  -CMakeLists.txt:98: trailing whitespace. -+  -CMakeLists.txt:99: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:100: trailing whitespace. -+ target_compile_options(cameff_baseline_expert_tests PRIVATE -Werror)  -CMakeLists.txt:101: trailing whitespace. -+ endif()  -CMakeLists.txt:102: trailing whitespace. -+endif()  -CMakeLists.txt:103: trailing whitespace. -+  -CMakeLists.txt:104: trailing whitespace. -+add_test(  -CMakeLists.txt:105: trailing whitespace. -+ NAME cameff-baseline-expert-tests  -CMakeLists.txt:106: trailing whitespace. -+ COMMAND cameff_baseline_expert_tests  -CMakeLists.txt:107: trailing whitespace. -+)  -CMakeLists.txt:108: trailing whitespace. -+  -CMakeLists.txt:109: trailing whitespace. -+add_executable(cameff_pattern_tests  -CMakeLists.txt:110: trailing whitespace. -+ tests/test_pattern.c  -CMakeLists.txt:111: trailing whitespace. -+)  -CMakeLists.txt:112: trailing whitespace. -+  -CMakeLists.txt:113: trailing whitespace. -+target_link_libraries(cameff_pattern_tests  -CMakeLists.txt:114: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:115: trailing whitespace. -+)  -CMakeLists.txt:116: trailing whitespace. -+  -CMakeLists.txt:117: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:118: trailing whitespace. -+ target_compile_options(cameff_pattern_tests PRIVATE  -CMakeLists.txt:119: trailing whitespace. -+ -Wall  -CMakeLists.txt:120: trailing whitespace. -+ -Wextra  -CMakeLists.txt:121: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:122: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:123: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:124: trailing whitespace. -+ )  -CMakeLists.txt:125: trailing whitespace. -+  -CMakeLists.txt:126: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:127: trailing whitespace. -+ target_compile_options(cameff_pattern_tests PRIVATE -Werror)  -CMakeLists.txt:128: trailing whitespace. -+ endif()  -CMakeLists.txt:129: trailing whitespace. -+endif()  -CMakeLists.txt:130: trailing whitespace. -+  -CMakeLists.txt:131: trailing whitespace. -+add_test(  -CMakeLists.txt:132: trailing whitespace. -+ NAME cameff-pattern-tests  -CMakeLists.txt:133: trailing whitespace. -+ COMMAND cameff_pattern_tests  -CMakeLists.txt:134: trailing whitespace. -+)  -CMakeLists.txt:135: trailing whitespace. -+add_executable(cameff_expert_registry_tests  -CMakeLists.txt:136: trailing whitespace. -+ tests/test_expert_registry.c  -CMakeLists.txt:137: trailing whitespace. -+)  -CMakeLists.txt:138: trailing whitespace. -+  -CMakeLists.txt:139: trailing whitespace. -+target_link_libraries(cameff_expert_registry_tests  -CMakeLists.txt:140: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:141: trailing whitespace. -+)  -CMakeLists.txt:142: trailing whitespace. -+  -CMakeLists.txt:143: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:144: trailing whitespace. -+ target_compile_options(cameff_expert_registry_tests PRIVATE  -CMakeLists.txt:145: trailing whitespace. -+ -Wall  -CMakeLists.txt:146: trailing whitespace. -+ -Wextra  -CMakeLists.txt:147: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:148: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:149: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:150: trailing whitespace. -+ )  -CMakeLists.txt:151: trailing whitespace. -+  -CMakeLists.txt:152: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:153: trailing whitespace. -+ target_compile_options(cameff_expert_registry_tests PRIVATE -Werror)  -CMakeLists.txt:154: trailing whitespace. -+ endif()  -CMakeLists.txt:155: trailing whitespace. -+endif()  -CMakeLists.txt:156: trailing whitespace. -+  -CMakeLists.txt:157: trailing whitespace. -+add_test(  -CMakeLists.txt:158: trailing whitespace. -+ NAME cameff-expert-registry-tests  -CMakeLists.txt:159: trailing whitespace. -+ COMMAND cameff_expert_registry_tests  -CMakeLists.txt:160: trailing whitespace. -+)  -CMakeLists.txt:161: trailing whitespace. -+  -CMakeLists.txt:162: trailing whitespace. -+add_executable(cameff_specialized_expert_tests  -CMakeLists.txt:163: trailing whitespace. -+ tests/test_specialized_experts.c  -CMakeLists.txt:164: trailing whitespace. -+)  -CMakeLists.txt:165: trailing whitespace. -+  -CMakeLists.txt:166: trailing whitespace. -+target_link_libraries(cameff_specialized_expert_tests  -CMakeLists.txt:167: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:168: trailing whitespace. -+)  -CMakeLists.txt:169: trailing whitespace. -+  -CMakeLists.txt:170: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:171: trailing whitespace. -+ target_compile_options(cameff_specialized_expert_tests PRIVATE  -CMakeLists.txt:172: trailing whitespace. -+ -Wall  -CMakeLists.txt:173: trailing whitespace. -+ -Wextra  -CMakeLists.txt:174: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:175: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:176: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:177: trailing whitespace. -+ )  -CMakeLists.txt:178: trailing whitespace. -+  -CMakeLists.txt:179: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:180: trailing whitespace. -+ target_compile_options(cameff_specialized_expert_tests PRIVATE -Werror)  -CMakeLists.txt:181: trailing whitespace. -+ endif()  -CMakeLists.txt:182: trailing whitespace. -+endif()  -CMakeLists.txt:183: trailing whitespace. -+  -CMakeLists.txt:184: trailing whitespace. -+add_test(  -CMakeLists.txt:185: trailing whitespace. -+ NAME cameff-specialized-expert-tests  -CMakeLists.txt:186: trailing whitespace. -+ COMMAND cameff_specialized_expert_tests  -CMakeLists.txt:187: trailing whitespace. -+)  -CMakeLists.txt:188: trailing whitespace. -+  -CMakeLists.txt:189: trailing whitespace. -+add_executable(cameff_fusion_tests  -CMakeLists.txt:190: trailing whitespace. -+ tests/test_fusion.c  -CMakeLists.txt:191: trailing whitespace. -+)  -CMakeLists.txt:192: trailing whitespace. -+  -CMakeLists.txt:193: trailing whitespace. -+target_link_libraries(cameff_fusion_tests  -CMakeLists.txt:194: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:195: trailing whitespace. -+)  -CMakeLists.txt:196: trailing whitespace. -+  -CMakeLists.txt:197: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:198: trailing whitespace. -+ target_compile_options(cameff_fusion_tests PRIVATE  -CMakeLists.txt:199: trailing whitespace. -+ -Wall  -CMakeLists.txt:200: trailing whitespace. -+ -Wextra  -CMakeLists.txt:201: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:202: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:203: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:204: trailing whitespace. -+ )  -CMakeLists.txt:205: trailing whitespace. -+  -CMakeLists.txt:206: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:207: trailing whitespace. -+ target_compile_options(cameff_fusion_tests PRIVATE -Werror)  -CMakeLists.txt:208: trailing whitespace. -+ endif()  -CMakeLists.txt:209: trailing whitespace. -+endif()  -CMakeLists.txt:210: trailing whitespace. -+  -CMakeLists.txt:211: trailing whitespace. -+add_test(  -CMakeLists.txt:212: trailing whitespace. -+ NAME cameff-fusion-tests  -CMakeLists.txt:213: trailing whitespace. -+ COMMAND cameff_fusion_tests  -CMakeLists.txt:214: trailing whitespace. -+)  -CMakeLists.txt:215: trailing whitespace. -+  -CMakeLists.txt:216: trailing whitespace. -+add_executable(cameff_evaluation_tests  -CMakeLists.txt:217: trailing whitespace. -+ tests/test_evaluation.c  -CMakeLists.txt:218: trailing whitespace. -+)  -CMakeLists.txt:219: trailing whitespace. -+  -CMakeLists.txt:220: trailing whitespace. -+target_link_libraries(cameff_evaluation_tests  -CMakeLists.txt:221: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:222: trailing whitespace. -+)  -CMakeLists.txt:223: trailing whitespace. -+  -CMakeLists.txt:224: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:225: trailing whitespace. -+ target_compile_options(cameff_evaluation_tests PRIVATE  -CMakeLists.txt:226: trailing whitespace. -+ -Wall  -CMakeLists.txt:227: trailing whitespace. -+ -Wextra  -CMakeLists.txt:228: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:229: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:230: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:231: trailing whitespace. -+ )  -CMakeLists.txt:232: trailing whitespace. -+  -CMakeLists.txt:233: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:234: trailing whitespace. -+ target_compile_options(cameff_evaluation_tests PRIVATE -Werror)  -CMakeLists.txt:235: trailing whitespace. -+ endif()  -CMakeLists.txt:236: trailing whitespace. -+endif()  -CMakeLists.txt:237: trailing whitespace. -+  -CMakeLists.txt:238: trailing whitespace. -+add_test(  -CMakeLists.txt:239: trailing whitespace. -+ NAME cameff-evaluation-tests  -CMakeLists.txt:240: trailing whitespace. -+ COMMAND cameff_evaluation_tests  -CMakeLists.txt:241: trailing whitespace. -+)  -CMakeLists.txt:242: trailing whitespace. -+  -CMakeLists.txt:243: trailing whitespace. -+add_executable(cameff_structural_case_tests  -CMakeLists.txt:244: trailing whitespace. -+ tests/test_structural_cases.c  -CMakeLists.txt:245: trailing whitespace. -+)  -CMakeLists.txt:246: trailing whitespace. -+  -CMakeLists.txt:247: trailing whitespace. -+target_link_libraries(cameff_structural_case_tests  -CMakeLists.txt:248: trailing whitespace. -+ PRIVATE cameff_core  -CMakeLists.txt:249: trailing whitespace. -+)  -CMakeLists.txt:250: trailing whitespace. -+  -CMakeLists.txt:251: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:252: trailing whitespace. -+ target_compile_options(cameff_structural_case_tests PRIVATE  -CMakeLists.txt:253: trailing whitespace. -+ -Wall  -CMakeLists.txt:254: trailing whitespace. -+ -Wextra  -CMakeLists.txt:255: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:256: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:257: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:258: trailing whitespace. -+ )  -CMakeLists.txt:259: trailing whitespace. -+  -CMakeLists.txt:260: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:261: trailing whitespace. -+ target_compile_options(cameff_structural_case_tests PRIVATE -Werror)  -CMakeLists.txt:262: trailing whitespace. -+ endif()  -CMakeLists.txt:263: trailing whitespace. -+endif()  -CMakeLists.txt:264: trailing whitespace. -+  -CMakeLists.txt:265: trailing whitespace. -+add_test(  -CMakeLists.txt:266: trailing whitespace. -+ NAME cameff-structural-case-tests  -CMakeLists.txt:267: trailing whitespace. -+ COMMAND cameff_structural_case_tests  -CMakeLists.txt:268: trailing whitespace. -+)  -CMakeLists.txt:269: trailing whitespace. -+  -CMakeLists.txt:270: trailing whitespace. -+add_library(cameff_validation STATIC  -CMakeLists.txt:271: trailing whitespace. -+  -CMakeLists.txt:272: trailing whitespace. -+ src/validation/hindcast.c  -CMakeLists.txt:273: trailing whitespace. -+ src/validation/hindcast_evaluator.c  -CMakeLists.txt:274: trailing whitespace. -+ src/validation/metrics.c  -CMakeLists.txt:275: trailing whitespace. -+ src/validation/report.c  -CMakeLists.txt:276: trailing whitespace. -+ src/validation/cameff_pipeline_adapter.c  -CMakeLists.txt:277: trailing whitespace. -+  -CMakeLists.txt:278: trailing whitespace. -+ src/data/earthquake_event.c  -CMakeLists.txt:279: trailing whitespace. -+ src/data/earthquake_catalog.c  -CMakeLists.txt:280: trailing whitespace. -+ src/data/earthquake_catalog_filter.c  -CMakeLists.txt:281: trailing whitespace. -+  -CMakeLists.txt:282: trailing whitespace. -+  -CMakeLists.txt:283: trailing whitespace. -+)  -CMakeLists.txt:284: trailing whitespace. -+  -CMakeLists.txt:285: trailing whitespace. -+add_executable(  -CMakeLists.txt:286: trailing whitespace. -+ cameff_catalog_tests  -CMakeLists.txt:287: trailing whitespace. -+ tests/data/test_catalog.c  -CMakeLists.txt:288: trailing whitespace. -+)  -CMakeLists.txt:289: trailing whitespace. -+  -CMakeLists.txt:290: trailing whitespace. -+target_link_libraries(  -CMakeLists.txt:291: trailing whitespace. -+ cameff_catalog_tests  -CMakeLists.txt:292: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:293: trailing whitespace. -+ cameff_validation  -CMakeLists.txt:294: trailing whitespace. -+)  -CMakeLists.txt:295: trailing whitespace. -+  -CMakeLists.txt:296: trailing whitespace. -+target_link_libraries(  -CMakeLists.txt:297: trailing whitespace. -+ cameff_validation  -CMakeLists.txt:298: trailing whitespace. -+ PUBLIC  -CMakeLists.txt:299: trailing whitespace. -+ cameff_core  -CMakeLists.txt:300: trailing whitespace. -+)  -CMakeLists.txt:301: trailing whitespace. -+  -CMakeLists.txt:302: trailing whitespace. -+add_executable(  -CMakeLists.txt:303: trailing whitespace. -+ cameff_hindcast_runner  -CMakeLists.txt:304: trailing whitespace. -+ apps/cameff_hindcast_runner.c  -CMakeLists.txt:305: trailing whitespace. -+)  -CMakeLists.txt:306: trailing whitespace. -+  -CMakeLists.txt:307: trailing whitespace. -+target_link_libraries(  -CMakeLists.txt:308: trailing whitespace. -+ cameff_hindcast_runner  -CMakeLists.txt:309: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:310: trailing whitespace. -+ cameff_validation  -CMakeLists.txt:311: trailing whitespace. -+)  -CMakeLists.txt:312: trailing whitespace. -+  -CMakeLists.txt:313: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:314: trailing whitespace. -+ target_compile_options(  -CMakeLists.txt:315: trailing whitespace. -+ cameff_hindcast_runner  -CMakeLists.txt:316: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:317: trailing whitespace. -+ -Wall  -CMakeLists.txt:318: trailing whitespace. -+ -Wextra  -CMakeLists.txt:319: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:320: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:321: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:322: trailing whitespace. -+ )  -CMakeLists.txt:323: trailing whitespace. -+  -CMakeLists.txt:324: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:325: trailing whitespace. -+ target_compile_options(  -CMakeLists.txt:326: trailing whitespace. -+ cameff_hindcast_runner  -CMakeLists.txt:327: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:328: trailing whitespace. -+ -Werror  -CMakeLists.txt:329: trailing whitespace. -+ )  -CMakeLists.txt:330: trailing whitespace. -+ endif()  -CMakeLists.txt:331: trailing whitespace. -+endif()  -CMakeLists.txt:332: trailing whitespace. -+  -CMakeLists.txt:333: trailing whitespace. -+add_executable(  -CMakeLists.txt:334: trailing whitespace. -+ cameff_catalog_normalizer  -CMakeLists.txt:335: trailing whitespace. -+ apps/cameff_catalog_normalizer.c  -CMakeLists.txt:336: trailing whitespace. -+)  -CMakeLists.txt:337: trailing whitespace. -+  -CMakeLists.txt:338: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:339: trailing whitespace. -+ target_compile_options(  -CMakeLists.txt:340: trailing whitespace. -+ cameff_catalog_normalizer  -CMakeLists.txt:341: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:342: trailing whitespace. -+ -Wall  -CMakeLists.txt:343: trailing whitespace. -+ -Wextra  -CMakeLists.txt:344: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:345: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:346: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:347: trailing whitespace. -+ )  -CMakeLists.txt:348: trailing whitespace. -+  -CMakeLists.txt:349: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:350: trailing whitespace. -+ target_compile_options(  -CMakeLists.txt:351: trailing whitespace. -+ cameff_catalog_normalizer  -CMakeLists.txt:352: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:353: trailing whitespace. -+ -Werror  -CMakeLists.txt:354: trailing whitespace. -+ )  -CMakeLists.txt:355: trailing whitespace. -+ endif()  -CMakeLists.txt:356: trailing whitespace. -+endif()  -CMakeLists.txt:357: trailing whitespace. -+  -CMakeLists.txt:358: trailing whitespace. -+add_executable(  -CMakeLists.txt:359: trailing whitespace. -+ cameff_threshold_sweep  -CMakeLists.txt:360: trailing whitespace. -+ apps/cameff_threshold_sweep.c  -CMakeLists.txt:361: trailing whitespace. -+)  -CMakeLists.txt:362: trailing whitespace. -+  -CMakeLists.txt:363: trailing whitespace. -+if(NOT MSVC)  -CMakeLists.txt:364: trailing whitespace. -+ target_compile_options(  -CMakeLists.txt:365: trailing whitespace. -+ cameff_threshold_sweep  -CMakeLists.txt:366: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:367: trailing whitespace. -+ -Wall  -CMakeLists.txt:368: trailing whitespace. -+ -Wextra  -CMakeLists.txt:369: trailing whitespace. -+ -Wpedantic  -CMakeLists.txt:370: trailing whitespace. -+ -Wconversion  -CMakeLists.txt:371: trailing whitespace. -+ -Wshadow  -CMakeLists.txt:372: trailing whitespace. -+ )  -CMakeLists.txt:373: trailing whitespace. -+  -CMakeLists.txt:374: trailing whitespace. -+ if(CAMEFF_WARNINGS_AS_ERRORS)  -CMakeLists.txt:375: trailing whitespace. -+ target_compile_options(  -CMakeLists.txt:376: trailing whitespace. -+ cameff_threshold_sweep  -CMakeLists.txt:377: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:378: trailing whitespace. -+ -Werror  -CMakeLists.txt:379: trailing whitespace. -+ )  -CMakeLists.txt:380: trailing whitespace. -+ endif()  -CMakeLists.txt:381: trailing whitespace. -+endif()  -CMakeLists.txt:382: trailing whitespace. -+  -CMakeLists.txt:383: trailing whitespace. -+if(NOT WIN32)  -CMakeLists.txt:384: trailing whitespace. -+ target_link_libraries(  -CMakeLists.txt:385: trailing whitespace. -+ cameff_threshold_sweep  -CMakeLists.txt:386: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:387: trailing whitespace. -+ m  -CMakeLists.txt:388: trailing whitespace. -+ )  -CMakeLists.txt:389: trailing whitespace. -+endif()  -CMakeLists.txt:390: trailing whitespace. -+  -CMakeLists.txt:391: trailing whitespace. -+target_compile_definitions(  -CMakeLists.txt:392: trailing whitespace. -+ cameff_catalog_tests  -CMakeLists.txt:393: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:394: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}"  -CMakeLists.txt:395: trailing whitespace. -+)  -CMakeLists.txt:396: trailing whitespace. -+  -CMakeLists.txt:397: trailing whitespace. -+add_test(  -CMakeLists.txt:398: trailing whitespace. -+ NAME cameff-catalog-tests  -CMakeLists.txt:399: trailing whitespace. -+ COMMAND cameff_catalog_tests  -CMakeLists.txt:400: trailing whitespace. -+)  -CMakeLists.txt:401: trailing whitespace. -+  -CMakeLists.txt:402: trailing whitespace. -+add_executable(  -CMakeLists.txt:403: trailing whitespace. -+ cameff_hindcast_tests  -CMakeLists.txt:404: trailing whitespace. -+ tests/validation/test_hindcast.c  -CMakeLists.txt:405: trailing whitespace. -+)  -CMakeLists.txt:406: trailing whitespace. -+  -CMakeLists.txt:407: trailing whitespace. -+target_link_libraries(  -CMakeLists.txt:408: trailing whitespace. -+ cameff_hindcast_tests  -CMakeLists.txt:409: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:410: trailing whitespace. -+ cameff_validation  -CMakeLists.txt:411: trailing whitespace. -+)  -CMakeLists.txt:412: trailing whitespace. -+  -CMakeLists.txt:413: trailing whitespace. -+target_compile_definitions(  -CMakeLists.txt:414: trailing whitespace. -+ cameff_hindcast_tests  -CMakeLists.txt:415: trailing whitespace. -+ PRIVATE  -CMakeLists.txt:416: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}"  -CMakeLists.txt:417: trailing whitespace. -+)  -CMakeLists.txt:418: trailing whitespace. -+  -CMakeLists.txt:419: trailing whitespace. -+add_test(  -CMakeLists.txt:420: trailing whitespace. -+ NAME cameff-hindcast-tests  -CMakeLists.txt:421: trailing whitespace. -+ COMMAND cameff_hindcast_tests  -CMakeLists.txt:422: trailing whitespace. -+)  -CMakeLists.txt:423: trailing whitespace. -+  -CMakeLists.txt:424: trailing whitespace. -+install(  -CMakeLists.txt:425: trailing whitespace. -+ TARGETS  -CMakeLists.txt:426: trailing whitespace. -+ cameff  -CMakeLists.txt:427: trailing whitespace. -+ cameff_hindcast_runner  -CMakeLists.txt:428: trailing whitespace. -+ cameff_catalog_normalizer  -CMakeLists.txt:429: trailing whitespace. -+ cameff_threshold_sweep  -CMakeLists.txt:430: trailing whitespace. -+ RUNTIME DESTINATION bin  -CMakeLists.txt:431: trailing whitespace. -+)  -CMakeLists.txt:432: trailing whitespace. -+install(DIRECTORY include/cameff DESTINATION include)  -README.md:1: trailing whitespace. -+# CAMEFF b1.0.0 — Milestone 1  -README.md:2: trailing whitespace. -+  -README.md:3: trailing whitespace. -+Pure C17 foundation for the **Classification-Adaptive Multi-Expert Forecasting Framework**.  -README.md:4: trailing whitespace. -+  -README.md:5: trailing whitespace. -+Milestone 1 deliberately implements the framework substrate, not a claimed operational earthquake predictor:  -README.md:6: trailing whitespace. -+  -README.md:7: trailing whitespace. -+- time-causal CSV catalog ingestion;  -README.md:8: trailing whitespace. -+- geographic and temporal event selection;  -README.md:9: trailing whitespace. -+- eight normalized, uncertainty-aware signal channels;  -README.md:10: trailing whitespace. -+- explicit fault-map-confidence input;  -README.md:11: trailing whitespace. -+- deterministic evidence aggregation;  -README.md:12: trailing whitespace. -+- `BACKGROUND`, `WATCH`, `ELEVATED`, and `INSUFFICIENT_DATA` states;  -README.md:13: trailing whitespace. -+- external configuration, CLI, unit tests, CMake/Ninja build.  -README.md:14: trailing whitespace. -+  -README.md:15: trailing whitespace. -+The weights and thresholds are transparent engineering defaults. They are not calibrated probabilities and must not be treated as public-warning criteria.  -README.md:16: trailing whitespace. -+  -README.md:17: trailing whitespace. -+## Build  -README.md:18: trailing whitespace. -+  -README.md:19: trailing whitespace. -+```bash  -README.md:20: trailing whitespace. -+cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc  -README.md:21: trailing whitespace. -+cmake --build build  -README.md:22: trailing whitespace. -+ctest --test-dir build --output-on-failure  -README.md:23: trailing whitespace. -+```  -README.md:24: trailing whitespace. -+  -README.md:25: trailing whitespace. -+## Run  -README.md:26: trailing whitespace. -+  -README.md:27: trailing whitespace. -+```bash  -README.md:28: trailing whitespace. -+./build/cameff analyze \  -README.md:29: trailing whitespace. -+ --catalog data/examples/catalog.csv \  -README.md:30: trailing whitespace. -+ --cutoff 2026-01-31T00:00:00Z \  -README.md:31: trailing whitespace. -+ --lat 10.0 --lon 123.0 --radius-km 100 \  -README.md:32: trailing whitespace. -+ --lookback-days 7 --config config/default.conf  -README.md:33: trailing whitespace. -+```  -README.md:34: trailing whitespace. -+  -README.md:35: trailing whitespace. -+## Milestone boundary  -README.md:36: trailing whitespace. -+  -README.md:37: trailing whitespace. -+Included: data contracts, signal extraction, uncertainty propagation, evidence-level output, portability tests.  -README.md:38: trailing whitespace. -+  -README.md:39: trailing whitespace. -+Deferred: tectonic-pattern classifier, expert modules, expert gating, calibration, hindcast runner, USGS/FDSN adapters, negative controls, probability calibration, persistence, evolutionary optimization, and operational hazard mapping.  -README.md:40: trailing whitespace. -+  -README.md:41: trailing whitespace. -+---  -README.md:42: trailing whitespace. -+  -README.md:43: trailing whitespace. -+# CAMEFF b1.0.0 — Milestone 2: Expert Framework Architecture  -README.md:44: trailing whitespace. -+  -README.md:45: trailing whitespace. -+Status: Complete  -README.md:46: trailing whitespace. -+  -README.md:47: trailing whitespace. -+Milestone 2 evolved the reference implementation into an expert-driven earthquake analysis framework.  -README.md:48: trailing whitespace. -+  -README.md:49: trailing whitespace. -+## Implemented components:  -README.md:50: trailing whitespace. -+  -README.md:51: trailing whitespace. -+### Pattern Classification  -README.md:52: trailing whitespace. -+  -README.md:53: trailing whitespace. -+Added deterministic soft pattern classification:  -README.md:54: trailing whitespace. -+  -README.md:55: trailing whitespace. -+Background seismic behavior  -README.md:56: trailing whitespace. -+Subduction preparation  -README.md:57: trailing whitespace. -+Crustal fault activation  -README.md:58: trailing whitespace. -+Seismic cascade activity  -README.md:59: trailing whitespace. -+Volcanic unrest  -README.md:60: trailing whitespace. -+Transform fault activity  -README.md:61: trailing whitespace. -+Unknown / insufficient information  -README.md:62: trailing whitespace. -+  -README.md:63: trailing whitespace. -+The classifier produces normalized pattern memberships:  -README.md:64: trailing whitespace. -+  -README.md:65: trailing whitespace. -+[  -README.md:66: trailing whitespace. -+\sum_i p_i = 1  -README.md:67: trailing whitespace. -+]  -README.md:68: trailing whitespace. -+  -README.md:69: trailing whitespace. -+where each (p_i) represents relative compatibility with a seismic process pattern.  -README.md:70: trailing whitespace. -+  -README.md:71: trailing whitespace. -+### Expert Registry and Routing  -README.md:72: trailing whitespace. -+  -README.md:73: trailing whitespace. -+Added an expert orchestration layer:  -README.md:74: trailing whitespace. -+  -README.md:75: trailing whitespace. -+Expert registration  -README.md:76: trailing whitespace. -+Applicability evaluation  -README.md:77: trailing whitespace. -+Pattern-based routing  -README.md:78: trailing whitespace. -+Routing strength calculation  -README.md:79: trailing whitespace. -+Explicit expert abstention  -README.md:80: trailing whitespace. -+  -README.md:81: trailing whitespace. -+Routing strength:  -README.md:82: trailing whitespace. -+  -README.md:83: trailing whitespace. -+[  -README.md:84: trailing whitespace. -+g_e = a_e \times p_e  -README.md:85: trailing whitespace. -+]  -README.md:86: trailing whitespace. -+  -README.md:87: trailing whitespace. -+where:  -README.md:88: trailing whitespace. -+  -README.md:89: trailing whitespace. -+(a_e) = expert applicability  -README.md:90: trailing whitespace. -+(p_e) = pattern membership  -README.md:91: trailing whitespace. -+  -README.md:92: trailing whitespace. -+Experts can abstain when their specialization is not supported.  -README.md:93: trailing whitespace. -+  -README.md:94: trailing whitespace. -+### Specialized Experts  -README.md:95: trailing whitespace. -+  -README.md:96: trailing whitespace. -+Implemented initial expert modules:  -README.md:97: trailing whitespace. -+  -README.md:98: trailing whitespace. -+Baseline expert  -README.md:99: trailing whitespace. -+Preserves Milestone 1 behavior  -README.md:100: trailing whitespace. -+Subduction expert  -README.md:101: trailing whitespace. -+Handles subduction-related preparation patterns  -README.md:102: trailing whitespace. -+Crustal fault expert  -README.md:103: trailing whitespace. -+Handles crustal activation and hidden-fault uncertainty scenarios  -README.md:104: trailing whitespace. -+Seismic cascade expert  -README.md:105: trailing whitespace. -+Handles clustered and cascading seismic activity  -README.md:106: trailing whitespace. -+  -README.md:107: trailing whitespace. -+### Confidence-Aware Fusion  -README.md:108: trailing whitespace. -+  -README.md:109: trailing whitespace. -+Added multi-expert evidence fusion.  -README.md:110: trailing whitespace. -+  -README.md:111: trailing whitespace. -+Active experts contribute according to:  -README.md:112: trailing whitespace. -+  -README.md:113: trailing whitespace. -+[  -README.md:114: trailing whitespace. -+\omega_e = g_e c_e  -README.md:115: trailing whitespace. -+]  -README.md:116: trailing whitespace. -+  -README.md:117: trailing whitespace. -+where:  -README.md:118: trailing whitespace. -+  -README.md:119: trailing whitespace. -+(g_e) = routing strength  -README.md:120: trailing whitespace. -+(c_e) = expert confidence  -README.md:121: trailing whitespace. -+  -README.md:122: trailing whitespace. -+Fused evidence:  -README.md:123: trailing whitespace. -+  -README.md:124: trailing whitespace. -+[  -README.md:125: trailing whitespace. -+H =  -README.md:126: trailing whitespace. -+\frac{\sum_e \omega_e H_e}  -README.md:127: trailing whitespace. -+{\sum_e \omega_e}  -README.md:128: trailing whitespace. -+]  -README.md:129: trailing whitespace. -+  -README.md:130: trailing whitespace. -+Abstaining experts are excluded from fusion while remaining visible in explanations.  -README.md:131: trailing whitespace. -+  -README.md:132: trailing whitespace. -+### End-to-End Evaluation Pipeline  -README.md:133: trailing whitespace. -+  -README.md:134: trailing whitespace. -+Added complete processing flow:  -README.md:135: trailing whitespace. -+  -README.md:136: trailing whitespace. -+Signal Frame  -README.md:137: trailing whitespace. -+ |  -README.md:138: trailing whitespace. -+ v  -README.md:139: trailing whitespace. -+Pattern Classification  -README.md:140: trailing whitespace. -+ |  -README.md:141: trailing whitespace. -+ v  -README.md:142: trailing whitespace. -+Expert Registry  -README.md:143: trailing whitespace. -+ |  -README.md:144: trailing whitespace. -+ v  -README.md:145: trailing whitespace. -+Expert Routing  -README.md:146: trailing whitespace. -+ |  -README.md:147: trailing whitespace. -+ v  -README.md:148: trailing whitespace. -+Expert Evaluation  -README.md:149: trailing whitespace. -+ |  -README.md:150: trailing whitespace. -+ v  -README.md:151: trailing whitespace. -+Confidence Fusion  -README.md:152: trailing whitespace. -+ |  -README.md:153: trailing whitespace. -+ v  -README.md:154: trailing whitespace. -+Explainable Assessment  -README.md:155: trailing whitespace. -+  -README.md:156: trailing whitespace. -+## Structural Hindcast Scenarios  -README.md:157: trailing whitespace. -+  -README.md:158: trailing whitespace. -+Added architecture validation scenarios:  -README.md:159: trailing whitespace. -+  -README.md:160: trailing whitespace. -+Japan subduction scenario  -README.md:161: trailing whitespace. -+Russia subduction scenario  -README.md:162: trailing whitespace. -+Cebu crustal fault scenario  -README.md:163: trailing whitespace. -+Davao mixed tectonic scenario  -README.md:164: trailing whitespace. -+Venezuela transform scenario  -README.md:165: trailing whitespace. -+  -README.md:166: trailing whitespace. -+These tests validate architectural behavior and routing logic.  -README.md:167: trailing whitespace. -+  -README.md:168: trailing whitespace. -+They are not claims of operational earthquake prediction accuracy.  -README.md:169: trailing whitespace. -+  -README.md:170: trailing whitespace. -+## Current Capability After Milestone 2  -README.md:171: trailing whitespace. -+  -README.md:172: trailing whitespace. -+CAMEFF b1.0.0 currently provides:  -README.md:173: trailing whitespace. -+  -README.md:174: trailing whitespace. -+Deterministic earthquake process classification  -README.md:175: trailing whitespace. -+Expert-based interpretation architecture  -README.md:176: trailing whitespace. -+Confidence-aware reasoning  -README.md:177: trailing whitespace. -+Explainable assessment output  -README.md:178: trailing whitespace. -+Extensible expert framework  -README.md:179: trailing whitespace. -+  -README.md:180: trailing whitespace. -+Future milestones will focus on:  -README.md:181: trailing whitespace. -+  -README.md:182: trailing whitespace. -+Additional expert models  -README.md:183: trailing whitespace. -+Real catalog integration  -README.md:184: trailing whitespace. -+Historical hindcast experiments  -README.md:185: trailing whitespace. -+Calibration against observed earthquake catalogs  -README.md:186: trailing whitespace. -+Operational hazard visualization  -README.md:187: trailing whitespace. -+Scientific validation  -apps/cameff_catalog_normalizer.c:1: trailing whitespace. -+#include   -apps/cameff_catalog_normalizer.c:2: trailing whitespace. -+#include   -apps/cameff_catalog_normalizer.c:3: trailing whitespace. -+#include   -apps/cameff_catalog_normalizer.c:4: trailing whitespace. -+#include   -apps/cameff_catalog_normalizer.c:5: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:6: trailing whitespace. -+#define CAMEFF_NORMALIZER_LINE_CAPACITY 8192U  -apps/cameff_catalog_normalizer.c:7: trailing whitespace. -+#define CAMEFF_NORMALIZER_FIELD_CAPACITY 1024U  -apps/cameff_catalog_normalizer.c:8: trailing whitespace. -+#define CAMEFF_NORMALIZER_MAX_COLUMNS 64U  -apps/cameff_catalog_normalizer.c:9: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:10: trailing whitespace. -+typedef struct  -apps/cameff_catalog_normalizer.c:11: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:12: trailing whitespace. -+ char values[CAMEFF_NORMALIZER_MAX_COLUMNS]  -apps/cameff_catalog_normalizer.c:13: trailing whitespace. -+ [CAMEFF_NORMALIZER_FIELD_CAPACITY];  -apps/cameff_catalog_normalizer.c:14: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:15: trailing whitespace. -+ size_t count;  -apps/cameff_catalog_normalizer.c:16: trailing whitespace. -+} CsvRow;  -apps/cameff_catalog_normalizer.c:17: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:18: trailing whitespace. -+typedef struct  -apps/cameff_catalog_normalizer.c:19: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:20: trailing whitespace. -+ size_t time;  -apps/cameff_catalog_normalizer.c:21: trailing whitespace. -+ size_t latitude;  -apps/cameff_catalog_normalizer.c:22: trailing whitespace. -+ size_t longitude;  -apps/cameff_catalog_normalizer.c:23: trailing whitespace. -+ size_t depth;  -apps/cameff_catalog_normalizer.c:24: trailing whitespace. -+ size_t magnitude;  -apps/cameff_catalog_normalizer.c:25: trailing whitespace. -+ size_t region;  -apps/cameff_catalog_normalizer.c:26: trailing whitespace. -+} UsgsColumnMap;  -apps/cameff_catalog_normalizer.c:27: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:28: trailing whitespace. -+static void remove_line_ending(  -apps/cameff_catalog_normalizer.c:29: trailing whitespace. -+ char *line  -apps/cameff_catalog_normalizer.c:30: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:31: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:32: trailing whitespace. -+ size_t length;  -apps/cameff_catalog_normalizer.c:33: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:34: trailing whitespace. -+ if (line == NULL)  -apps/cameff_catalog_normalizer.c:35: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:36: trailing whitespace. -+ return;  -apps/cameff_catalog_normalizer.c:37: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:38: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:39: trailing whitespace. -+ length = strlen(line);  -apps/cameff_catalog_normalizer.c:40: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:41: trailing whitespace. -+ while (length > 0U &&  -apps/cameff_catalog_normalizer.c:42: trailing whitespace. -+ (line[length - 1U] == '\n' ||  -apps/cameff_catalog_normalizer.c:43: trailing whitespace. -+ line[length - 1U] == '\r'))  -apps/cameff_catalog_normalizer.c:44: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:45: trailing whitespace. -+ line[length - 1U] = '\0';  -apps/cameff_catalog_normalizer.c:46: trailing whitespace. -+ length--;  -apps/cameff_catalog_normalizer.c:47: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:48: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:49: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:50: trailing whitespace. -+static int append_character(  -apps/cameff_catalog_normalizer.c:51: trailing whitespace. -+ char *field,  -apps/cameff_catalog_normalizer.c:52: trailing whitespace. -+ size_t *length,  -apps/cameff_catalog_normalizer.c:53: trailing whitespace. -+ char character  -apps/cameff_catalog_normalizer.c:54: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:55: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:56: trailing whitespace. -+ if (field == NULL || length == NULL)  -apps/cameff_catalog_normalizer.c:57: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:58: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:59: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:60: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:61: trailing whitespace. -+ if (*length + 1U >=  -apps/cameff_catalog_normalizer.c:62: trailing whitespace. -+ CAMEFF_NORMALIZER_FIELD_CAPACITY)  -apps/cameff_catalog_normalizer.c:63: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:64: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:65: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:66: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:67: trailing whitespace. -+ field[*length] = character;  -apps/cameff_catalog_normalizer.c:68: trailing whitespace. -+ (*length)++;  -apps/cameff_catalog_normalizer.c:69: trailing whitespace. -+ field[*length] = '\0';  -apps/cameff_catalog_normalizer.c:70: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:71: trailing whitespace. -+ return 1;  -apps/cameff_catalog_normalizer.c:72: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:73: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:74: trailing whitespace. -+static int parse_csv_row(  -apps/cameff_catalog_normalizer.c:75: trailing whitespace. -+ const char *line,  -apps/cameff_catalog_normalizer.c:76: trailing whitespace. -+ CsvRow *row  -apps/cameff_catalog_normalizer.c:77: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:78: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:79: trailing whitespace. -+ size_t column;  -apps/cameff_catalog_normalizer.c:80: trailing whitespace. -+ size_t field_length;  -apps/cameff_catalog_normalizer.c:81: trailing whitespace. -+ size_t index;  -apps/cameff_catalog_normalizer.c:82: trailing whitespace. -+ int inside_quotes;  -apps/cameff_catalog_normalizer.c:83: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:84: trailing whitespace. -+ if (line == NULL || row == NULL)  -apps/cameff_catalog_normalizer.c:85: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:86: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:87: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:88: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:89: trailing whitespace. -+ (void)memset(row, 0, sizeof(*row));  -apps/cameff_catalog_normalizer.c:90: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:91: trailing whitespace. -+ column = 0U;  -apps/cameff_catalog_normalizer.c:92: trailing whitespace. -+ field_length = 0U;  -apps/cameff_catalog_normalizer.c:93: trailing whitespace. -+ index = 0U;  -apps/cameff_catalog_normalizer.c:94: trailing whitespace. -+ inside_quotes = 0;  -apps/cameff_catalog_normalizer.c:95: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:96: trailing whitespace. -+ while (line[index] != '\0')  -apps/cameff_catalog_normalizer.c:97: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:98: trailing whitespace. -+ char current;  -apps/cameff_catalog_normalizer.c:99: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:100: trailing whitespace. -+ current = line[index];  -apps/cameff_catalog_normalizer.c:101: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:102: trailing whitespace. -+ if (current == '"')  -apps/cameff_catalog_normalizer.c:103: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:104: trailing whitespace. -+ if (inside_quotes != 0 &&  -apps/cameff_catalog_normalizer.c:105: trailing whitespace. -+ line[index + 1U] == '"')  -apps/cameff_catalog_normalizer.c:106: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:107: trailing whitespace. -+ if (!append_character(  -apps/cameff_catalog_normalizer.c:108: trailing whitespace. -+ row->values[column],  -apps/cameff_catalog_normalizer.c:109: trailing whitespace. -+ &field_length,  -apps/cameff_catalog_normalizer.c:110: trailing whitespace. -+ '"'))  -apps/cameff_catalog_normalizer.c:111: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:112: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:113: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:114: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:115: trailing whitespace. -+ index += 2U;  -apps/cameff_catalog_normalizer.c:116: trailing whitespace. -+ continue;  -apps/cameff_catalog_normalizer.c:117: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:118: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:119: trailing whitespace. -+ inside_quotes = !inside_quotes;  -apps/cameff_catalog_normalizer.c:120: trailing whitespace. -+ index++;  -apps/cameff_catalog_normalizer.c:121: trailing whitespace. -+ continue;  -apps/cameff_catalog_normalizer.c:122: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:123: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:124: trailing whitespace. -+ if (current == ',' &&  -apps/cameff_catalog_normalizer.c:125: trailing whitespace. -+ inside_quotes == 0)  -apps/cameff_catalog_normalizer.c:126: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:127: trailing whitespace. -+ column++;  -apps/cameff_catalog_normalizer.c:128: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:129: trailing whitespace. -+ if (column >=  -apps/cameff_catalog_normalizer.c:130: trailing whitespace. -+ CAMEFF_NORMALIZER_MAX_COLUMNS)  -apps/cameff_catalog_normalizer.c:131: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:132: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:133: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:134: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:135: trailing whitespace. -+ field_length = 0U;  -apps/cameff_catalog_normalizer.c:136: trailing whitespace. -+ index++;  -apps/cameff_catalog_normalizer.c:137: trailing whitespace. -+ continue;  -apps/cameff_catalog_normalizer.c:138: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:139: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:140: trailing whitespace. -+ if (!append_character(  -apps/cameff_catalog_normalizer.c:141: trailing whitespace. -+ row->values[column],  -apps/cameff_catalog_normalizer.c:142: trailing whitespace. -+ &field_length,  -apps/cameff_catalog_normalizer.c:143: trailing whitespace. -+ current))  -apps/cameff_catalog_normalizer.c:144: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:145: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:146: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:147: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:148: trailing whitespace. -+ index++;  -apps/cameff_catalog_normalizer.c:149: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:150: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:151: trailing whitespace. -+ if (inside_quotes != 0)  -apps/cameff_catalog_normalizer.c:152: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:153: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:154: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:155: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:156: trailing whitespace. -+ row->count = column + 1U;  -apps/cameff_catalog_normalizer.c:157: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:158: trailing whitespace. -+ return 1;  -apps/cameff_catalog_normalizer.c:159: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:160: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:161: trailing whitespace. -+static int find_column(  -apps/cameff_catalog_normalizer.c:162: trailing whitespace. -+ const CsvRow *header,  -apps/cameff_catalog_normalizer.c:163: trailing whitespace. -+ const char *name,  -apps/cameff_catalog_normalizer.c:164: trailing whitespace. -+ size_t *index  -apps/cameff_catalog_normalizer.c:165: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:166: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:167: trailing whitespace. -+ size_t column;  -apps/cameff_catalog_normalizer.c:168: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:169: trailing whitespace. -+ if (header == NULL ||  -apps/cameff_catalog_normalizer.c:170: trailing whitespace. -+ name == NULL ||  -apps/cameff_catalog_normalizer.c:171: trailing whitespace. -+ index == NULL)  -apps/cameff_catalog_normalizer.c:172: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:173: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:174: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:175: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:176: trailing whitespace. -+ for (column = 0U;  -apps/cameff_catalog_normalizer.c:177: trailing whitespace. -+ column < header->count;  -apps/cameff_catalog_normalizer.c:178: trailing whitespace. -+ column++)  -apps/cameff_catalog_normalizer.c:179: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:180: trailing whitespace. -+ if (strcmp(  -apps/cameff_catalog_normalizer.c:181: trailing whitespace. -+ header->values[column],  -apps/cameff_catalog_normalizer.c:182: trailing whitespace. -+ name) == 0)  -apps/cameff_catalog_normalizer.c:183: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:184: trailing whitespace. -+ *index = column;  -apps/cameff_catalog_normalizer.c:185: trailing whitespace. -+ return 1;  -apps/cameff_catalog_normalizer.c:186: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:187: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:188: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:189: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:190: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:191: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:192: trailing whitespace. -+static int build_usgs_column_map(  -apps/cameff_catalog_normalizer.c:193: trailing whitespace. -+ const CsvRow *header,  -apps/cameff_catalog_normalizer.c:194: trailing whitespace. -+ UsgsColumnMap *map  -apps/cameff_catalog_normalizer.c:195: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:196: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:197: trailing whitespace. -+ if (header == NULL || map == NULL)  -apps/cameff_catalog_normalizer.c:198: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:199: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:200: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:201: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:202: trailing whitespace. -+ return  -apps/cameff_catalog_normalizer.c:203: trailing whitespace. -+ find_column(header, "time", &map->time) &&  -apps/cameff_catalog_normalizer.c:204: trailing whitespace. -+ find_column(header, "latitude", &map->latitude) &&  -apps/cameff_catalog_normalizer.c:205: trailing whitespace. -+ find_column(header, "longitude", &map->longitude) &&  -apps/cameff_catalog_normalizer.c:206: trailing whitespace. -+ find_column(header, "depth", &map->depth) &&  -apps/cameff_catalog_normalizer.c:207: trailing whitespace. -+ find_column(header, "mag", &map->magnitude) &&  -apps/cameff_catalog_normalizer.c:208: trailing whitespace. -+ find_column(header, "place", &map->region);  -apps/cameff_catalog_normalizer.c:209: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:210: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:211: trailing whitespace. -+static int validate_required_fields(  -apps/cameff_catalog_normalizer.c:212: trailing whitespace. -+ const CsvRow *row,  -apps/cameff_catalog_normalizer.c:213: trailing whitespace. -+ const UsgsColumnMap *map  -apps/cameff_catalog_normalizer.c:214: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:215: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:216: trailing whitespace. -+ size_t largest_index;  -apps/cameff_catalog_normalizer.c:217: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:218: trailing whitespace. -+ if (row == NULL || map == NULL)  -apps/cameff_catalog_normalizer.c:219: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:220: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:221: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:222: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:223: trailing whitespace. -+ largest_index = map->time;  -apps/cameff_catalog_normalizer.c:224: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:225: trailing whitespace. -+ if (map->latitude > largest_index)  -apps/cameff_catalog_normalizer.c:226: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:227: trailing whitespace. -+ largest_index = map->latitude;  -apps/cameff_catalog_normalizer.c:228: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:229: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:230: trailing whitespace. -+ if (map->longitude > largest_index)  -apps/cameff_catalog_normalizer.c:231: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:232: trailing whitespace. -+ largest_index = map->longitude;  -apps/cameff_catalog_normalizer.c:233: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:234: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:235: trailing whitespace. -+ if (map->depth > largest_index)  -apps/cameff_catalog_normalizer.c:236: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:237: trailing whitespace. -+ largest_index = map->depth;  -apps/cameff_catalog_normalizer.c:238: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:239: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:240: trailing whitespace. -+ if (map->magnitude > largest_index)  -apps/cameff_catalog_normalizer.c:241: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:242: trailing whitespace. -+ largest_index = map->magnitude;  -apps/cameff_catalog_normalizer.c:243: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:244: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:245: trailing whitespace. -+ if (map->region > largest_index)  -apps/cameff_catalog_normalizer.c:246: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:247: trailing whitespace. -+ largest_index = map->region;  -apps/cameff_catalog_normalizer.c:248: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:249: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:250: trailing whitespace. -+ if (row->count <= largest_index)  -apps/cameff_catalog_normalizer.c:251: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:252: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:253: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:254: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:255: trailing whitespace. -+ if (row->values[map->time][0] == '\0' ||  -apps/cameff_catalog_normalizer.c:256: trailing whitespace. -+ row->values[map->latitude][0] == '\0' ||  -apps/cameff_catalog_normalizer.c:257: trailing whitespace. -+ row->values[map->longitude][0] == '\0' ||  -apps/cameff_catalog_normalizer.c:258: trailing whitespace. -+ row->values[map->depth][0] == '\0' ||  -apps/cameff_catalog_normalizer.c:259: trailing whitespace. -+ row->values[map->magnitude][0] == '\0' ||  -apps/cameff_catalog_normalizer.c:260: trailing whitespace. -+ row->values[map->region][0] == '\0')  -apps/cameff_catalog_normalizer.c:261: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:262: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:263: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:264: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:265: trailing whitespace. -+ return 1;  -apps/cameff_catalog_normalizer.c:266: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:267: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:268: trailing whitespace. -+static void write_csv_field(  -apps/cameff_catalog_normalizer.c:269: trailing whitespace. -+ FILE *output,  -apps/cameff_catalog_normalizer.c:270: trailing whitespace. -+ const char *value  -apps/cameff_catalog_normalizer.c:271: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:272: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:273: trailing whitespace. -+ const char *cursor;  -apps/cameff_catalog_normalizer.c:274: trailing whitespace. -+ int needs_quotes;  -apps/cameff_catalog_normalizer.c:275: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:276: trailing whitespace. -+ needs_quotes = 0;  -apps/cameff_catalog_normalizer.c:277: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:278: trailing whitespace. -+ for (cursor = value;  -apps/cameff_catalog_normalizer.c:279: trailing whitespace. -+ *cursor != '\0';  -apps/cameff_catalog_normalizer.c:280: trailing whitespace. -+ cursor++)  -apps/cameff_catalog_normalizer.c:281: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:282: trailing whitespace. -+ if (*cursor == ',' ||  -apps/cameff_catalog_normalizer.c:283: trailing whitespace. -+ *cursor == '"' ||  -apps/cameff_catalog_normalizer.c:284: trailing whitespace. -+ *cursor == '\n' ||  -apps/cameff_catalog_normalizer.c:285: trailing whitespace. -+ *cursor == '\r')  -apps/cameff_catalog_normalizer.c:286: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:287: trailing whitespace. -+ needs_quotes = 1;  -apps/cameff_catalog_normalizer.c:288: trailing whitespace. -+ break;  -apps/cameff_catalog_normalizer.c:289: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:290: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:291: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:292: trailing whitespace. -+ if (needs_quotes == 0)  -apps/cameff_catalog_normalizer.c:293: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:294: trailing whitespace. -+ (void)fputs(value, output);  -apps/cameff_catalog_normalizer.c:295: trailing whitespace. -+ return;  -apps/cameff_catalog_normalizer.c:296: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:297: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:298: trailing whitespace. -+ (void)fputc('"', output);  -apps/cameff_catalog_normalizer.c:299: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:300: trailing whitespace. -+ for (cursor = value;  -apps/cameff_catalog_normalizer.c:301: trailing whitespace. -+ *cursor != '\0';  -apps/cameff_catalog_normalizer.c:302: trailing whitespace. -+ cursor++)  -apps/cameff_catalog_normalizer.c:303: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:304: trailing whitespace. -+ if (*cursor == '"')  -apps/cameff_catalog_normalizer.c:305: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:306: trailing whitespace. -+ (void)fputc('"', output);  -apps/cameff_catalog_normalizer.c:307: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:308: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:309: trailing whitespace. -+ (void)fputc(*cursor, output);  -apps/cameff_catalog_normalizer.c:310: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:311: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:312: trailing whitespace. -+ (void)fputc('"', output);  -apps/cameff_catalog_normalizer.c:313: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:314: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:315: trailing whitespace. -+static void normalize_region(  -apps/cameff_catalog_normalizer.c:316: trailing whitespace. -+ const char *source,  -apps/cameff_catalog_normalizer.c:317: trailing whitespace. -+ char *destination,  -apps/cameff_catalog_normalizer.c:318: trailing whitespace. -+ size_t destination_capacity  -apps/cameff_catalog_normalizer.c:319: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:320: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:321: trailing whitespace. -+ size_t source_index;  -apps/cameff_catalog_normalizer.c:322: trailing whitespace. -+ size_t destination_index;  -apps/cameff_catalog_normalizer.c:323: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:324: trailing whitespace. -+ if (source == NULL ||  -apps/cameff_catalog_normalizer.c:325: trailing whitespace. -+ destination == NULL ||  -apps/cameff_catalog_normalizer.c:326: trailing whitespace. -+ destination_capacity == 0U)  -apps/cameff_catalog_normalizer.c:327: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:328: trailing whitespace. -+ return;  -apps/cameff_catalog_normalizer.c:329: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:330: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:331: trailing whitespace. -+ destination_index = 0U;  -apps/cameff_catalog_normalizer.c:332: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:333: trailing whitespace. -+ for (source_index = 0U;  -apps/cameff_catalog_normalizer.c:334: trailing whitespace. -+ source[source_index] != '\0' &&  -apps/cameff_catalog_normalizer.c:335: trailing whitespace. -+ destination_index + 1U < destination_capacity;  -apps/cameff_catalog_normalizer.c:336: trailing whitespace. -+ source_index++)  -apps/cameff_catalog_normalizer.c:337: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:338: trailing whitespace. -+ char character;  -apps/cameff_catalog_normalizer.c:339: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:340: trailing whitespace. -+ character = source[source_index];  -apps/cameff_catalog_normalizer.c:341: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:342: trailing whitespace. -+ if (character == ',' ||  -apps/cameff_catalog_normalizer.c:343: trailing whitespace. -+ character == '\n' ||  -apps/cameff_catalog_normalizer.c:344: trailing whitespace. -+ character == '\r')  -apps/cameff_catalog_normalizer.c:345: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:346: trailing whitespace. -+ character = ' ';  -apps/cameff_catalog_normalizer.c:347: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:348: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:349: trailing whitespace. -+ destination[destination_index] =  -apps/cameff_catalog_normalizer.c:350: trailing whitespace. -+ character;  -apps/cameff_catalog_normalizer.c:351: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:352: trailing whitespace. -+ destination_index++;  -apps/cameff_catalog_normalizer.c:353: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:354: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:355: trailing whitespace. -+ destination[destination_index] = '\0';  -apps/cameff_catalog_normalizer.c:356: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:357: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:358: trailing whitespace. -+static int normalize_catalog(  -apps/cameff_catalog_normalizer.c:359: trailing whitespace. -+ const char *input_path,  -apps/cameff_catalog_normalizer.c:360: trailing whitespace. -+ const char *output_path  -apps/cameff_catalog_normalizer.c:361: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:362: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:363: trailing whitespace. -+ FILE *input;  -apps/cameff_catalog_normalizer.c:364: trailing whitespace. -+ FILE *output;  -apps/cameff_catalog_normalizer.c:365: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:366: trailing whitespace. -+ char line[CAMEFF_NORMALIZER_LINE_CAPACITY];  -apps/cameff_catalog_normalizer.c:367: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:368: trailing whitespace. -+ CsvRow header;  -apps/cameff_catalog_normalizer.c:369: trailing whitespace. -+ CsvRow row;  -apps/cameff_catalog_normalizer.c:370: trailing whitespace. -+ UsgsColumnMap map;  -apps/cameff_catalog_normalizer.c:371: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:372: trailing whitespace. -+ size_t input_rows;  -apps/cameff_catalog_normalizer.c:373: trailing whitespace. -+ size_t output_rows;  -apps/cameff_catalog_normalizer.c:374: trailing whitespace. -+ size_t rejected_rows;  -apps/cameff_catalog_normalizer.c:375: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:376: trailing whitespace. -+ input = fopen(input_path, "r");  -apps/cameff_catalog_normalizer.c:377: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:378: trailing whitespace. -+ if (input == NULL)  -apps/cameff_catalog_normalizer.c:379: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:380: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:381: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:382: trailing whitespace. -+ "Unable to open input catalog: %s\n",  -apps/cameff_catalog_normalizer.c:383: trailing whitespace. -+ input_path  -apps/cameff_catalog_normalizer.c:384: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:385: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:386: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:387: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:388: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:389: trailing whitespace. -+ output = fopen(output_path, "w");  -apps/cameff_catalog_normalizer.c:390: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:391: trailing whitespace. -+ if (output == NULL)  -apps/cameff_catalog_normalizer.c:392: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:393: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:394: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:395: trailing whitespace. -+ "Unable to open output catalog: %s\n",  -apps/cameff_catalog_normalizer.c:396: trailing whitespace. -+ output_path  -apps/cameff_catalog_normalizer.c:397: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:398: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:399: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_catalog_normalizer.c:400: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:401: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:402: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:403: trailing whitespace. -+ if (fgets(  -apps/cameff_catalog_normalizer.c:404: trailing whitespace. -+ line,  -apps/cameff_catalog_normalizer.c:405: trailing whitespace. -+ sizeof(line),  -apps/cameff_catalog_normalizer.c:406: trailing whitespace. -+ input) == NULL)  -apps/cameff_catalog_normalizer.c:407: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:408: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:409: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:410: trailing whitespace. -+ "Input catalog is empty.\n"  -apps/cameff_catalog_normalizer.c:411: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:412: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:413: trailing whitespace. -+ (void)fclose(output);  -apps/cameff_catalog_normalizer.c:414: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_catalog_normalizer.c:415: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:416: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:417: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:418: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:419: trailing whitespace. -+ remove_line_ending(line);  -apps/cameff_catalog_normalizer.c:420: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:421: trailing whitespace. -+ if (!parse_csv_row(line, &header))  -apps/cameff_catalog_normalizer.c:422: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:423: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:424: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:425: trailing whitespace. -+ "Unable to parse USGS CSV header.\n"  -apps/cameff_catalog_normalizer.c:426: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:427: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:428: trailing whitespace. -+ (void)fclose(output);  -apps/cameff_catalog_normalizer.c:429: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_catalog_normalizer.c:430: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:431: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:432: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:433: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:434: trailing whitespace. -+ if (!build_usgs_column_map(  -apps/cameff_catalog_normalizer.c:435: trailing whitespace. -+ &header,  -apps/cameff_catalog_normalizer.c:436: trailing whitespace. -+ &map))  -apps/cameff_catalog_normalizer.c:437: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:438: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:439: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:440: trailing whitespace. -+ "USGS CSV is missing one or more required columns.\n"  -apps/cameff_catalog_normalizer.c:441: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:442: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:443: trailing whitespace. -+ (void)fclose(output);  -apps/cameff_catalog_normalizer.c:444: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_catalog_normalizer.c:445: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:446: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:447: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:448: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:449: trailing whitespace. -+ (void)fputs(  -apps/cameff_catalog_normalizer.c:450: trailing whitespace. -+ "time,latitude,longitude,depth,mag,region\n",  -apps/cameff_catalog_normalizer.c:451: trailing whitespace. -+ output  -apps/cameff_catalog_normalizer.c:452: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:453: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:454: trailing whitespace. -+ input_rows = 0U;  -apps/cameff_catalog_normalizer.c:455: trailing whitespace. -+ output_rows = 0U;  -apps/cameff_catalog_normalizer.c:456: trailing whitespace. -+ rejected_rows = 0U;  -apps/cameff_catalog_normalizer.c:457: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:458: trailing whitespace. -+ while (fgets(  -apps/cameff_catalog_normalizer.c:459: trailing whitespace. -+ line,  -apps/cameff_catalog_normalizer.c:460: trailing whitespace. -+ sizeof(line),  -apps/cameff_catalog_normalizer.c:461: trailing whitespace. -+ input) != NULL)  -apps/cameff_catalog_normalizer.c:462: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:463: trailing whitespace. -+ remove_line_ending(line);  -apps/cameff_catalog_normalizer.c:464: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:465: trailing whitespace. -+ if (line[0] == '\0')  -apps/cameff_catalog_normalizer.c:466: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:467: trailing whitespace. -+ continue;  -apps/cameff_catalog_normalizer.c:468: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:469: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:470: trailing whitespace. -+ input_rows++;  -apps/cameff_catalog_normalizer.c:471: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:472: trailing whitespace. -+ if (!parse_csv_row(line, &row) ||  -apps/cameff_catalog_normalizer.c:473: trailing whitespace. -+ !validate_required_fields(  -apps/cameff_catalog_normalizer.c:474: trailing whitespace. -+ &row,  -apps/cameff_catalog_normalizer.c:475: trailing whitespace. -+ &map))  -apps/cameff_catalog_normalizer.c:476: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:477: trailing whitespace. -+ rejected_rows++;  -apps/cameff_catalog_normalizer.c:478: trailing whitespace. -+ continue;  -apps/cameff_catalog_normalizer.c:479: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:480: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:481: trailing whitespace. -+ write_csv_field(  -apps/cameff_catalog_normalizer.c:482: trailing whitespace. -+ output,  -apps/cameff_catalog_normalizer.c:483: trailing whitespace. -+ row.values[map.time]  -apps/cameff_catalog_normalizer.c:484: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:485: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:486: trailing whitespace. -+ (void)fputc(',', output);  -apps/cameff_catalog_normalizer.c:487: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:488: trailing whitespace. -+ write_csv_field(  -apps/cameff_catalog_normalizer.c:489: trailing whitespace. -+ output,  -apps/cameff_catalog_normalizer.c:490: trailing whitespace. -+ row.values[map.latitude]  -apps/cameff_catalog_normalizer.c:491: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:492: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:493: trailing whitespace. -+ (void)fputc(',', output);  -apps/cameff_catalog_normalizer.c:494: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:495: trailing whitespace. -+ write_csv_field(  -apps/cameff_catalog_normalizer.c:496: trailing whitespace. -+ output,  -apps/cameff_catalog_normalizer.c:497: trailing whitespace. -+ row.values[map.longitude]  -apps/cameff_catalog_normalizer.c:498: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:499: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:500: trailing whitespace. -+ (void)fputc(',', output);  -apps/cameff_catalog_normalizer.c:501: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:502: trailing whitespace. -+ write_csv_field(  -apps/cameff_catalog_normalizer.c:503: trailing whitespace. -+ output,  -apps/cameff_catalog_normalizer.c:504: trailing whitespace. -+ row.values[map.depth]  -apps/cameff_catalog_normalizer.c:505: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:506: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:507: trailing whitespace. -+ (void)fputc(',', output);  -apps/cameff_catalog_normalizer.c:508: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:509: trailing whitespace. -+ write_csv_field(  -apps/cameff_catalog_normalizer.c:510: trailing whitespace. -+ output,  -apps/cameff_catalog_normalizer.c:511: trailing whitespace. -+ row.values[map.magnitude]  -apps/cameff_catalog_normalizer.c:512: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:513: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:514: trailing whitespace. -+ (void)fputc(',', output);  -apps/cameff_catalog_normalizer.c:515: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:516: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:517: trailing whitespace. -+ char normalized_region[64];  -apps/cameff_catalog_normalizer.c:518: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:519: trailing whitespace. -+ normalize_region(  -apps/cameff_catalog_normalizer.c:520: trailing whitespace. -+ row.values[map.region],  -apps/cameff_catalog_normalizer.c:521: trailing whitespace. -+ normalized_region,  -apps/cameff_catalog_normalizer.c:522: trailing whitespace. -+ sizeof(normalized_region)  -apps/cameff_catalog_normalizer.c:523: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:524: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:525: trailing whitespace. -+ write_csv_field(  -apps/cameff_catalog_normalizer.c:526: trailing whitespace. -+ output,  -apps/cameff_catalog_normalizer.c:527: trailing whitespace. -+ normalized_region  -apps/cameff_catalog_normalizer.c:528: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:529: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:530: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:531: trailing whitespace. -+ (void)fputc('\n', output);  -apps/cameff_catalog_normalizer.c:532: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:533: trailing whitespace. -+ output_rows++;  -apps/cameff_catalog_normalizer.c:534: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:535: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:536: trailing whitespace. -+ if (ferror(input))  -apps/cameff_catalog_normalizer.c:537: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:538: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:539: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:540: trailing whitespace. -+ "Error while reading input catalog.\n"  -apps/cameff_catalog_normalizer.c:541: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:542: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:543: trailing whitespace. -+ (void)fclose(output);  -apps/cameff_catalog_normalizer.c:544: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_catalog_normalizer.c:545: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:546: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:547: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:548: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:549: trailing whitespace. -+ if (fclose(output) != 0)  -apps/cameff_catalog_normalizer.c:550: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:551: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:552: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:553: trailing whitespace. -+ "Error while closing output catalog.\n"  -apps/cameff_catalog_normalizer.c:554: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:555: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:556: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_catalog_normalizer.c:557: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:558: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:559: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:560: trailing whitespace. -+ if (fclose(input) != 0)  -apps/cameff_catalog_normalizer.c:561: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:562: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:563: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:564: trailing whitespace. -+ "Error while closing input catalog.\n"  -apps/cameff_catalog_normalizer.c:565: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:566: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:567: trailing whitespace. -+ return 0;  -apps/cameff_catalog_normalizer.c:568: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:569: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:570: trailing whitespace. -+ (void)printf(  -apps/cameff_catalog_normalizer.c:571: trailing whitespace. -+ "input_rows=%zu\n",  -apps/cameff_catalog_normalizer.c:572: trailing whitespace. -+ input_rows  -apps/cameff_catalog_normalizer.c:573: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:574: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:575: trailing whitespace. -+ (void)printf(  -apps/cameff_catalog_normalizer.c:576: trailing whitespace. -+ "normalized_rows=%zu\n",  -apps/cameff_catalog_normalizer.c:577: trailing whitespace. -+ output_rows  -apps/cameff_catalog_normalizer.c:578: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:579: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:580: trailing whitespace. -+ (void)printf(  -apps/cameff_catalog_normalizer.c:581: trailing whitespace. -+ "rejected_rows=%zu\n",  -apps/cameff_catalog_normalizer.c:582: trailing whitespace. -+ rejected_rows  -apps/cameff_catalog_normalizer.c:583: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:584: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:585: trailing whitespace. -+ (void)printf(  -apps/cameff_catalog_normalizer.c:586: trailing whitespace. -+ "output_file=%s\n",  -apps/cameff_catalog_normalizer.c:587: trailing whitespace. -+ output_path  -apps/cameff_catalog_normalizer.c:588: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:589: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:590: trailing whitespace. -+ return 1;  -apps/cameff_catalog_normalizer.c:591: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:592: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:593: trailing whitespace. -+static void print_usage(  -apps/cameff_catalog_normalizer.c:594: trailing whitespace. -+ const char *program_name  -apps/cameff_catalog_normalizer.c:595: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:596: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:597: trailing whitespace. -+ (void)fprintf(  -apps/cameff_catalog_normalizer.c:598: trailing whitespace. -+ stderr,  -apps/cameff_catalog_normalizer.c:599: trailing whitespace. -+ "Usage:\n"  -apps/cameff_catalog_normalizer.c:600: trailing whitespace. -+ " %s \n",  -apps/cameff_catalog_normalizer.c:601: trailing whitespace. -+ program_name  -apps/cameff_catalog_normalizer.c:602: trailing whitespace. -+ );  -apps/cameff_catalog_normalizer.c:603: trailing whitespace. -+}  -apps/cameff_catalog_normalizer.c:604: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:605: trailing whitespace. -+int main(  -apps/cameff_catalog_normalizer.c:606: trailing whitespace. -+ int argc,  -apps/cameff_catalog_normalizer.c:607: trailing whitespace. -+ char **argv  -apps/cameff_catalog_normalizer.c:608: trailing whitespace. -+)  -apps/cameff_catalog_normalizer.c:609: trailing whitespace. -+{  -apps/cameff_catalog_normalizer.c:610: trailing whitespace. -+ if (argc != 3)  -apps/cameff_catalog_normalizer.c:611: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:612: trailing whitespace. -+ print_usage(argv[0]);  -apps/cameff_catalog_normalizer.c:613: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_catalog_normalizer.c:614: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:615: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:616: trailing whitespace. -+ if (!normalize_catalog(  -apps/cameff_catalog_normalizer.c:617: trailing whitespace. -+ argv[1],  -apps/cameff_catalog_normalizer.c:618: trailing whitespace. -+ argv[2]))  -apps/cameff_catalog_normalizer.c:619: trailing whitespace. -+ {  -apps/cameff_catalog_normalizer.c:620: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_catalog_normalizer.c:621: trailing whitespace. -+ }  -apps/cameff_catalog_normalizer.c:622: trailing whitespace. -+  -apps/cameff_catalog_normalizer.c:623: trailing whitespace. -+ return EXIT_SUCCESS;  -apps/cameff_hindcast_runner.c:1: trailing whitespace. -+#include "../src/data/earthquake_catalog.h"  -apps/cameff_hindcast_runner.c:2: trailing whitespace. -+#include "../src/validation/cameff_pipeline_adapter.h"  -apps/cameff_hindcast_runner.c:3: trailing whitespace. -+#include "../src/validation/hindcast.h"  -apps/cameff_hindcast_runner.c:4: trailing whitespace. -+#include "cameff/signals.h"  -apps/cameff_hindcast_runner.c:5: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:6: trailing whitespace. -+#include   -apps/cameff_hindcast_runner.c:7: trailing whitespace. -+#include   -apps/cameff_hindcast_runner.c:8: trailing whitespace. -+#include   -apps/cameff_hindcast_runner.c:9: trailing whitespace. -+#include   -apps/cameff_hindcast_runner.c:10: trailing whitespace. -+#include   -apps/cameff_hindcast_runner.c:11: trailing whitespace. -+#include   -apps/cameff_hindcast_runner.c:12: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:13: trailing whitespace. -+static int parse_unsigned_value(  -apps/cameff_hindcast_runner.c:14: trailing whitespace. -+ const char *text,  -apps/cameff_hindcast_runner.c:15: trailing whitespace. -+ unsigned *value  -apps/cameff_hindcast_runner.c:16: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:17: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:18: trailing whitespace. -+ char *end;  -apps/cameff_hindcast_runner.c:19: trailing whitespace. -+ unsigned long parsed;  -apps/cameff_hindcast_runner.c:20: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:21: trailing whitespace. -+ if (text == NULL || value == NULL)  -apps/cameff_hindcast_runner.c:22: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:23: trailing whitespace. -+ return 0;  -apps/cameff_hindcast_runner.c:24: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:25: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:26: trailing whitespace. -+ errno = 0;  -apps/cameff_hindcast_runner.c:27: trailing whitespace. -+ end = NULL;  -apps/cameff_hindcast_runner.c:28: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:29: trailing whitespace. -+ parsed = strtoul(text, &end, 10);  -apps/cameff_hindcast_runner.c:30: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:31: trailing whitespace. -+ if (errno != 0 ||  -apps/cameff_hindcast_runner.c:32: trailing whitespace. -+ end == text ||  -apps/cameff_hindcast_runner.c:33: trailing whitespace. -+ *end != '\0')  -apps/cameff_hindcast_runner.c:34: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:35: trailing whitespace. -+ return 0;  -apps/cameff_hindcast_runner.c:36: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:37: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:38: trailing whitespace. -+ *value = (unsigned)parsed;  -apps/cameff_hindcast_runner.c:39: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:40: trailing whitespace. -+ return 1;  -apps/cameff_hindcast_runner.c:41: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:42: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:43: trailing whitespace. -+static int parse_int64_value(  -apps/cameff_hindcast_runner.c:44: trailing whitespace. -+ const char *text,  -apps/cameff_hindcast_runner.c:45: trailing whitespace. -+ int64_t *value  -apps/cameff_hindcast_runner.c:46: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:47: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:48: trailing whitespace. -+ char *end;  -apps/cameff_hindcast_runner.c:49: trailing whitespace. -+ intmax_t parsed;  -apps/cameff_hindcast_runner.c:50: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:51: trailing whitespace. -+ if (text == NULL || value == NULL)  -apps/cameff_hindcast_runner.c:52: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:53: trailing whitespace. -+ return 0;  -apps/cameff_hindcast_runner.c:54: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:55: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:56: trailing whitespace. -+ errno = 0;  -apps/cameff_hindcast_runner.c:57: trailing whitespace. -+ end = NULL;  -apps/cameff_hindcast_runner.c:58: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:59: trailing whitespace. -+ parsed = strtoimax(text, &end, 10);  -apps/cameff_hindcast_runner.c:60: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:61: trailing whitespace. -+ if (errno != 0 ||  -apps/cameff_hindcast_runner.c:62: trailing whitespace. -+ end == text ||  -apps/cameff_hindcast_runner.c:63: trailing whitespace. -+ *end != '\0')  -apps/cameff_hindcast_runner.c:64: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:65: trailing whitespace. -+ return 0;  -apps/cameff_hindcast_runner.c:66: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:67: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:68: trailing whitespace. -+ *value = (int64_t)parsed;  -apps/cameff_hindcast_runner.c:69: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:70: trailing whitespace. -+ return 1;  -apps/cameff_hindcast_runner.c:71: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:72: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:73: trailing whitespace. -+static int parse_double_value(  -apps/cameff_hindcast_runner.c:74: trailing whitespace. -+ const char *text,  -apps/cameff_hindcast_runner.c:75: trailing whitespace. -+ double *value  -apps/cameff_hindcast_runner.c:76: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:77: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:78: trailing whitespace. -+ char *end;  -apps/cameff_hindcast_runner.c:79: trailing whitespace. -+ double parsed;  -apps/cameff_hindcast_runner.c:80: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:81: trailing whitespace. -+ if (text == NULL || value == NULL)  -apps/cameff_hindcast_runner.c:82: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:83: trailing whitespace. -+ return 0;  -apps/cameff_hindcast_runner.c:84: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:85: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:86: trailing whitespace. -+ errno = 0;  -apps/cameff_hindcast_runner.c:87: trailing whitespace. -+ end = NULL;  -apps/cameff_hindcast_runner.c:88: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:89: trailing whitespace. -+ parsed = strtod(text, &end);  -apps/cameff_hindcast_runner.c:90: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:91: trailing whitespace. -+ if (errno != 0 ||  -apps/cameff_hindcast_runner.c:92: trailing whitespace. -+ end == text ||  -apps/cameff_hindcast_runner.c:93: trailing whitespace. -+ *end != '\0')  -apps/cameff_hindcast_runner.c:94: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:95: trailing whitespace. -+ return 0;  -apps/cameff_hindcast_runner.c:96: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:97: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:98: trailing whitespace. -+ *value = parsed;  -apps/cameff_hindcast_runner.c:99: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:100: trailing whitespace. -+ return 1;  -apps/cameff_hindcast_runner.c:101: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:102: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:103: trailing whitespace. -+static void initialize_subduction_region(  -apps/cameff_hindcast_runner.c:104: trailing whitespace. -+ cameff_region_profile_t *region  -apps/cameff_hindcast_runner.c:105: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:106: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:107: trailing whitespace. -+ if (region == NULL)  -apps/cameff_hindcast_runner.c:108: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:109: trailing whitespace. -+ return;  -apps/cameff_hindcast_runner.c:110: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:111: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:112: trailing whitespace. -+ (void)memset(  -apps/cameff_hindcast_runner.c:113: trailing whitespace. -+ region,  -apps/cameff_hindcast_runner.c:114: trailing whitespace. -+ 0,  -apps/cameff_hindcast_runner.c:115: trailing whitespace. -+ sizeof(*region)  -apps/cameff_hindcast_runner.c:116: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:117: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:118: trailing whitespace. -+ (void)snprintf(  -apps/cameff_hindcast_runner.c:119: trailing whitespace. -+ region->region_id,  -apps/cameff_hindcast_runner.c:120: trailing whitespace. -+ sizeof(region->region_id),  -apps/cameff_hindcast_runner.c:121: trailing whitespace. -+ "%s",  -apps/cameff_hindcast_runner.c:122: trailing whitespace. -+ "japan-trench"  -apps/cameff_hindcast_runner.c:123: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:124: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:125: trailing whitespace. -+ region->tectonic_setting =  -apps/cameff_hindcast_runner.c:126: trailing whitespace. -+ CAMEFF_TECTONIC_SUBDUCTION;  -apps/cameff_hindcast_runner.c:127: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:128: trailing whitespace. -+ region->subduction_affinity = 1.0;  -apps/cameff_hindcast_runner.c:129: trailing whitespace. -+ region->crustal_fault_affinity = 0.10;  -apps/cameff_hindcast_runner.c:130: trailing whitespace. -+ region->transform_affinity = 0.05;  -apps/cameff_hindcast_runner.c:131: trailing whitespace. -+ region->volcanic_affinity = 0.05;  -apps/cameff_hindcast_runner.c:132: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:133: trailing whitespace. -+ region->fault_map_confidence = 0.90;  -apps/cameff_hindcast_runner.c:134: trailing whitespace. -+ region->catalog_completeness = 0.90;  -apps/cameff_hindcast_runner.c:135: trailing whitespace. -+ region->station_coverage = 0.90;  -apps/cameff_hindcast_runner.c:136: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -apps/cameff_hindcast_runner.c:137: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:138: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:139: trailing whitespace. -+static const char *hindcast_status_name(  -apps/cameff_hindcast_runner.c:140: trailing whitespace. -+ int status  -apps/cameff_hindcast_runner.c:141: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:142: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:143: trailing whitespace. -+ switch (status)  -apps/cameff_hindcast_runner.c:144: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:145: trailing whitespace. -+ case CAMEFF_HINDCAST_OK:  -apps/cameff_hindcast_runner.c:146: trailing whitespace. -+ return "ok";  -apps/cameff_hindcast_runner.c:147: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:148: trailing whitespace. -+ case CAMEFF_HINDCAST_INVALID_ARGUMENT:  -apps/cameff_hindcast_runner.c:149: trailing whitespace. -+ return "invalid-argument";  -apps/cameff_hindcast_runner.c:150: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:151: trailing whitespace. -+ case CAMEFF_HINDCAST_INVALID_TARGET:  -apps/cameff_hindcast_runner.c:152: trailing whitespace. -+ return "invalid-target";  -apps/cameff_hindcast_runner.c:153: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:154: trailing whitespace. -+ case CAMEFF_HINDCAST_INVALID_TIME_WINDOW:  -apps/cameff_hindcast_runner.c:155: trailing whitespace. -+ return "invalid-time-window";  -apps/cameff_hindcast_runner.c:156: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:157: trailing whitespace. -+ case CAMEFF_HINDCAST_INVALID_RADIUS:  -apps/cameff_hindcast_runner.c:158: trailing whitespace. -+ return "invalid-radius";  -apps/cameff_hindcast_runner.c:159: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:160: trailing whitespace. -+ case CAMEFF_HINDCAST_FILTER_FAILED:  -apps/cameff_hindcast_runner.c:161: trailing whitespace. -+ return "filter-failed";  -apps/cameff_hindcast_runner.c:162: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:163: trailing whitespace. -+ case CAMEFF_HINDCAST_NO_EVIDENCE:  -apps/cameff_hindcast_runner.c:164: trailing whitespace. -+ return "no-evidence";  -apps/cameff_hindcast_runner.c:165: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:166: trailing whitespace. -+ case CAMEFF_HINDCAST_EVALUATION_FAILED:  -apps/cameff_hindcast_runner.c:167: trailing whitespace. -+ return "evaluation-failed";  -apps/cameff_hindcast_runner.c:168: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:169: trailing whitespace. -+ case CAMEFF_HINDCAST_NOT_EVALUATED:  -apps/cameff_hindcast_runner.c:170: trailing whitespace. -+ return "not-evaluated";  -apps/cameff_hindcast_runner.c:171: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:172: trailing whitespace. -+ default:  -apps/cameff_hindcast_runner.c:173: trailing whitespace. -+ return "unknown";  -apps/cameff_hindcast_runner.c:174: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:175: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:176: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:177: trailing whitespace. -+static void print_usage(  -apps/cameff_hindcast_runner.c:178: trailing whitespace. -+ const char *program_name  -apps/cameff_hindcast_runner.c:179: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:180: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:181: trailing whitespace. -+ (void)fprintf(  -apps/cameff_hindcast_runner.c:182: trailing whitespace. -+ stderr,  -apps/cameff_hindcast_runner.c:183: trailing whitespace. -+ "Usage:\n"  -apps/cameff_hindcast_runner.c:184: trailing whitespace. -+ " %s "  -apps/cameff_hindcast_runner.c:185: trailing whitespace. -+ " "  -apps/cameff_hindcast_runner.c:186: trailing whitespace. -+ " "  -apps/cameff_hindcast_runner.c:187: trailing whitespace. -+ " "  -apps/cameff_hindcast_runner.c:188: trailing whitespace. -+ " "  -apps/cameff_hindcast_runner.c:189: trailing whitespace. -+ " "  -apps/cameff_hindcast_runner.c:190: trailing whitespace. -+ " \n",  -apps/cameff_hindcast_runner.c:191: trailing whitespace. -+ program_name  -apps/cameff_hindcast_runner.c:192: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:193: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:194: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:195: trailing whitespace. -+int main(  -apps/cameff_hindcast_runner.c:196: trailing whitespace. -+ int argc,  -apps/cameff_hindcast_runner.c:197: trailing whitespace. -+ char **argv  -apps/cameff_hindcast_runner.c:198: trailing whitespace. -+)  -apps/cameff_hindcast_runner.c:199: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:200: trailing whitespace. -+ EarthquakeCatalog catalog;  -apps/cameff_hindcast_runner.c:201: trailing whitespace. -+ HindcastExperiment experiment;  -apps/cameff_hindcast_runner.c:202: trailing whitespace. -+ HindcastResult result;  -apps/cameff_hindcast_runner.c:203: trailing whitespace. -+ CameffPipelineAdapterContext adapter_context;  -apps/cameff_hindcast_runner.c:204: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:205: trailing whitespace. -+ unsigned lookback_days;  -apps/cameff_hindcast_runner.c:206: trailing whitespace. -+ unsigned minimum_events;  -apps/cameff_hindcast_runner.c:207: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:208: trailing whitespace. -+ int64_t target_epoch;  -apps/cameff_hindcast_runner.c:209: trailing whitespace. -+ int64_t observation_start_epoch;  -apps/cameff_hindcast_runner.c:210: trailing whitespace. -+ int64_t cutoff_epoch;  -apps/cameff_hindcast_runner.c:211: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:212: trailing whitespace. -+ double target_latitude;  -apps/cameff_hindcast_runner.c:213: trailing whitespace. -+ double target_longitude;  -apps/cameff_hindcast_runner.c:214: trailing whitespace. -+ double target_depth_km;  -apps/cameff_hindcast_runner.c:215: trailing whitespace. -+ double target_magnitude;  -apps/cameff_hindcast_runner.c:216: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:217: trailing whitespace. -+ double center_latitude;  -apps/cameff_hindcast_runner.c:218: trailing whitespace. -+ double center_longitude;  -apps/cameff_hindcast_runner.c:219: trailing whitespace. -+ double radius_km;  -apps/cameff_hindcast_runner.c:220: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:221: trailing whitespace. -+ const char *target_region;  -apps/cameff_hindcast_runner.c:222: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:223: trailing whitespace. -+ int catalog_status;  -apps/cameff_hindcast_runner.c:224: trailing whitespace. -+ int hindcast_status;  -apps/cameff_hindcast_runner.c:225: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:226: trailing whitespace. -+ if (argc != 15)  -apps/cameff_hindcast_runner.c:227: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:228: trailing whitespace. -+ print_usage(argv[0]);  -apps/cameff_hindcast_runner.c:229: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_hindcast_runner.c:230: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:231: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:232: trailing whitespace. -+ target_region = argv[7];  -apps/cameff_hindcast_runner.c:233: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:234: trailing whitespace. -+ if (!parse_int64_value(  -apps/cameff_hindcast_runner.c:235: trailing whitespace. -+ argv[2],  -apps/cameff_hindcast_runner.c:236: trailing whitespace. -+ &target_epoch) ||  -apps/cameff_hindcast_runner.c:237: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:238: trailing whitespace. -+ argv[3],  -apps/cameff_hindcast_runner.c:239: trailing whitespace. -+ &target_latitude) ||  -apps/cameff_hindcast_runner.c:240: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:241: trailing whitespace. -+ argv[4],  -apps/cameff_hindcast_runner.c:242: trailing whitespace. -+ &target_longitude) ||  -apps/cameff_hindcast_runner.c:243: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:244: trailing whitespace. -+ argv[5],  -apps/cameff_hindcast_runner.c:245: trailing whitespace. -+ &target_depth_km) ||  -apps/cameff_hindcast_runner.c:246: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:247: trailing whitespace. -+ argv[6],  -apps/cameff_hindcast_runner.c:248: trailing whitespace. -+ &target_magnitude) ||  -apps/cameff_hindcast_runner.c:249: trailing whitespace. -+ !parse_int64_value(  -apps/cameff_hindcast_runner.c:250: trailing whitespace. -+ argv[8],  -apps/cameff_hindcast_runner.c:251: trailing whitespace. -+ &observation_start_epoch) ||  -apps/cameff_hindcast_runner.c:252: trailing whitespace. -+ !parse_int64_value(  -apps/cameff_hindcast_runner.c:253: trailing whitespace. -+ argv[9],  -apps/cameff_hindcast_runner.c:254: trailing whitespace. -+ &cutoff_epoch) ||  -apps/cameff_hindcast_runner.c:255: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:256: trailing whitespace. -+ argv[10],  -apps/cameff_hindcast_runner.c:257: trailing whitespace. -+ ¢er_latitude) ||  -apps/cameff_hindcast_runner.c:258: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:259: trailing whitespace. -+ argv[11],  -apps/cameff_hindcast_runner.c:260: trailing whitespace. -+ ¢er_longitude) ||  -apps/cameff_hindcast_runner.c:261: trailing whitespace. -+ !parse_double_value(  -apps/cameff_hindcast_runner.c:262: trailing whitespace. -+ argv[12],  -apps/cameff_hindcast_runner.c:263: trailing whitespace. -+ &radius_km) ||  -apps/cameff_hindcast_runner.c:264: trailing whitespace. -+ !parse_unsigned_value(  -apps/cameff_hindcast_runner.c:265: trailing whitespace. -+ argv[13],  -apps/cameff_hindcast_runner.c:266: trailing whitespace. -+ &lookback_days) ||  -apps/cameff_hindcast_runner.c:267: trailing whitespace. -+ !parse_unsigned_value(  -apps/cameff_hindcast_runner.c:268: trailing whitespace. -+ argv[14],  -apps/cameff_hindcast_runner.c:269: trailing whitespace. -+ &minimum_events))  -apps/cameff_hindcast_runner.c:270: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:271: trailing whitespace. -+ (void)fprintf(  -apps/cameff_hindcast_runner.c:272: trailing whitespace. -+ stderr,  -apps/cameff_hindcast_runner.c:273: trailing whitespace. -+ "Invalid command-line argument.\n"  -apps/cameff_hindcast_runner.c:274: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:275: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:276: trailing whitespace. -+ print_usage(argv[0]);  -apps/cameff_hindcast_runner.c:277: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:278: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_hindcast_runner.c:279: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:280: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:281: trailing whitespace. -+if (strlen(target_region) >=  -apps/cameff_hindcast_runner.c:282: trailing whitespace. -+ sizeof(experiment.target.region))  -apps/cameff_hindcast_runner.c:283: trailing whitespace. -+{  -apps/cameff_hindcast_runner.c:284: trailing whitespace. -+ (void)fprintf(  -apps/cameff_hindcast_runner.c:285: trailing whitespace. -+ stderr,  -apps/cameff_hindcast_runner.c:286: trailing whitespace. -+ "Target region exceeds the maximum length.\n"  -apps/cameff_hindcast_runner.c:287: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:288: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:289: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_hindcast_runner.c:290: trailing whitespace. -+}  -apps/cameff_hindcast_runner.c:291: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:292: trailing whitespace. -+ catalog_status =  -apps/cameff_hindcast_runner.c:293: trailing whitespace. -+ catalog_load_csv(  -apps/cameff_hindcast_runner.c:294: trailing whitespace. -+ argv[1],  -apps/cameff_hindcast_runner.c:295: trailing whitespace. -+ &catalog  -apps/cameff_hindcast_runner.c:296: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:297: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:298: trailing whitespace. -+ if (catalog_status != CAMEFF_CATALOG_OK)  -apps/cameff_hindcast_runner.c:299: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:300: trailing whitespace. -+ (void)fprintf(  -apps/cameff_hindcast_runner.c:301: trailing whitespace. -+ stderr,  -apps/cameff_hindcast_runner.c:302: trailing whitespace. -+ "Failed to load catalog: status=%d\n",  -apps/cameff_hindcast_runner.c:303: trailing whitespace. -+ catalog_status  -apps/cameff_hindcast_runner.c:304: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:305: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:306: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_hindcast_runner.c:307: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:308: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:309: trailing whitespace. -+ hindcast_experiment_initialize(  -apps/cameff_hindcast_runner.c:310: trailing whitespace. -+ &experiment  -apps/cameff_hindcast_runner.c:311: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:312: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:313: trailing whitespace. -+ initialize_earthquake_event(  -apps/cameff_hindcast_runner.c:314: trailing whitespace. -+ &experiment.target  -apps/cameff_hindcast_runner.c:315: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:316: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:317: trailing whitespace. -+ experiment.target.timestamp =  -apps/cameff_hindcast_runner.c:318: trailing whitespace. -+ (time_t)target_epoch;  -apps/cameff_hindcast_runner.c:319: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:320: trailing whitespace. -+ experiment.target.latitude =  -apps/cameff_hindcast_runner.c:321: trailing whitespace. -+ target_latitude;  -apps/cameff_hindcast_runner.c:322: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:323: trailing whitespace. -+ experiment.target.longitude =  -apps/cameff_hindcast_runner.c:324: trailing whitespace. -+ target_longitude;  -apps/cameff_hindcast_runner.c:325: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:326: trailing whitespace. -+ experiment.target.depth_km =  -apps/cameff_hindcast_runner.c:327: trailing whitespace. -+ target_depth_km;  -apps/cameff_hindcast_runner.c:328: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:329: trailing whitespace. -+ experiment.target.magnitude =  -apps/cameff_hindcast_runner.c:330: trailing whitespace. -+ target_magnitude;  -apps/cameff_hindcast_runner.c:331: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:332: trailing whitespace. -+ (void)snprintf(  -apps/cameff_hindcast_runner.c:333: trailing whitespace. -+ experiment.target.region,  -apps/cameff_hindcast_runner.c:334: trailing whitespace. -+ sizeof(experiment.target.region),  -apps/cameff_hindcast_runner.c:335: trailing whitespace. -+ "%s",  -apps/cameff_hindcast_runner.c:336: trailing whitespace. -+ target_region  -apps/cameff_hindcast_runner.c:337: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:338: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:339: trailing whitespace. -+ experiment.source_catalog = &catalog;  -apps/cameff_hindcast_runner.c:340: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:341: trailing whitespace. -+ experiment.observation_start =  -apps/cameff_hindcast_runner.c:342: trailing whitespace. -+ (time_t)observation_start_epoch;  -apps/cameff_hindcast_runner.c:343: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:344: trailing whitespace. -+ experiment.cutoff_time =  -apps/cameff_hindcast_runner.c:345: trailing whitespace. -+ (time_t)cutoff_epoch;  -apps/cameff_hindcast_runner.c:346: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:347: trailing whitespace. -+ experiment.analysis_radius_km =  -apps/cameff_hindcast_runner.c:348: trailing whitespace. -+ radius_km;  -apps/cameff_hindcast_runner.c:349: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:350: trailing whitespace. -+ cameff_pipeline_adapter_context_initialize(  -apps/cameff_hindcast_runner.c:351: trailing whitespace. -+ &adapter_context  -apps/cameff_hindcast_runner.c:352: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:353: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:354: trailing whitespace. -+ adapter_context.analysis_latitude =  -apps/cameff_hindcast_runner.c:355: trailing whitespace. -+ center_latitude;  -apps/cameff_hindcast_runner.c:356: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:357: trailing whitespace. -+ adapter_context.analysis_longitude =  -apps/cameff_hindcast_runner.c:358: trailing whitespace. -+ center_longitude;  -apps/cameff_hindcast_runner.c:359: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:360: trailing whitespace. -+ adapter_context.analysis_radius_km =  -apps/cameff_hindcast_runner.c:361: trailing whitespace. -+ radius_km;  -apps/cameff_hindcast_runner.c:362: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:363: trailing whitespace. -+ adapter_context.lookback_days =  -apps/cameff_hindcast_runner.c:364: trailing whitespace. -+ lookback_days;  -apps/cameff_hindcast_runner.c:365: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:366: trailing whitespace. -+ adapter_context.cutoff_epoch_seconds =  -apps/cameff_hindcast_runner.c:367: trailing whitespace. -+ cutoff_epoch;  -apps/cameff_hindcast_runner.c:368: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:369: trailing whitespace. -+ adapter_context.config.minimum_events =  -apps/cameff_hindcast_runner.c:370: trailing whitespace. -+ minimum_events;  -apps/cameff_hindcast_runner.c:371: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:372: trailing whitespace. -+ initialize_subduction_region(  -apps/cameff_hindcast_runner.c:373: trailing whitespace. -+ &adapter_context.region  -apps/cameff_hindcast_runner.c:374: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:375: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:376: trailing whitespace. -+ experiment.evaluator =  -apps/cameff_hindcast_runner.c:377: trailing whitespace. -+ cameff_pipeline_evaluator;  -apps/cameff_hindcast_runner.c:378: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:379: trailing whitespace. -+ experiment.evaluator_context =  -apps/cameff_hindcast_runner.c:380: trailing whitespace. -+ &adapter_context;  -apps/cameff_hindcast_runner.c:381: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:382: trailing whitespace. -+ hindcast_status =  -apps/cameff_hindcast_runner.c:383: trailing whitespace. -+ run_hindcast(  -apps/cameff_hindcast_runner.c:384: trailing whitespace. -+ &experiment,  -apps/cameff_hindcast_runner.c:385: trailing whitespace. -+ &result  -apps/cameff_hindcast_runner.c:386: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:387: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:388: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:389: trailing whitespace. -+ "experiment_status=%s\n",  -apps/cameff_hindcast_runner.c:390: trailing whitespace. -+ hindcast_status_name(hindcast_status)  -apps/cameff_hindcast_runner.c:391: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:392: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:393: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:394: trailing whitespace. -+ "experiment_status_code=%d\n",  -apps/cameff_hindcast_runner.c:395: trailing whitespace. -+ hindcast_status  -apps/cameff_hindcast_runner.c:396: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:397: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:398: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:399: trailing whitespace. -+ "target_region=%s\n",  -apps/cameff_hindcast_runner.c:400: trailing whitespace. -+ experiment.target.region  -apps/cameff_hindcast_runner.c:401: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:402: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:403: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:404: trailing whitespace. -+ "target_timestamp=%" PRId64 "\n",  -apps/cameff_hindcast_runner.c:405: trailing whitespace. -+ (int64_t)experiment.target.timestamp  -apps/cameff_hindcast_runner.c:406: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:407: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:408: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:409: trailing whitespace. -+ "target_latitude=%.6f\n",  -apps/cameff_hindcast_runner.c:410: trailing whitespace. -+ experiment.target.latitude  -apps/cameff_hindcast_runner.c:411: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:412: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:413: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:414: trailing whitespace. -+ "target_longitude=%.6f\n",  -apps/cameff_hindcast_runner.c:415: trailing whitespace. -+ experiment.target.longitude  -apps/cameff_hindcast_runner.c:416: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:417: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:418: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:419: trailing whitespace. -+ "target_depth_km=%.6f\n",  -apps/cameff_hindcast_runner.c:420: trailing whitespace. -+ experiment.target.depth_km  -apps/cameff_hindcast_runner.c:421: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:422: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:423: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:424: trailing whitespace. -+ "target_magnitude=%.6f\n",  -apps/cameff_hindcast_runner.c:425: trailing whitespace. -+ experiment.target.magnitude  -apps/cameff_hindcast_runner.c:426: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:427: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:428: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:429: trailing whitespace. -+ "observation_start=%" PRId64 "\n",  -apps/cameff_hindcast_runner.c:430: trailing whitespace. -+ observation_start_epoch  -apps/cameff_hindcast_runner.c:431: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:432: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:433: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:434: trailing whitespace. -+ "cutoff=%" PRId64 "\n",  -apps/cameff_hindcast_runner.c:435: trailing whitespace. -+ cutoff_epoch  -apps/cameff_hindcast_runner.c:436: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:437: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:438: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:439: trailing whitespace. -+ "analysis_center_latitude=%.6f\n",  -apps/cameff_hindcast_runner.c:440: trailing whitespace. -+ center_latitude  -apps/cameff_hindcast_runner.c:441: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:442: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:443: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:444: trailing whitespace. -+ "analysis_center_longitude=%.6f\n",  -apps/cameff_hindcast_runner.c:445: trailing whitespace. -+ center_longitude  -apps/cameff_hindcast_runner.c:446: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:447: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:448: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:449: trailing whitespace. -+ "analysis_radius_km=%.6f\n",  -apps/cameff_hindcast_runner.c:450: trailing whitespace. -+ radius_km  -apps/cameff_hindcast_runner.c:451: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:452: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:453: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:454: trailing whitespace. -+ "lookback_days=%u\n",  -apps/cameff_hindcast_runner.c:455: trailing whitespace. -+ lookback_days  -apps/cameff_hindcast_runner.c:456: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:457: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:458: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:459: trailing whitespace. -+ "minimum_events=%u\n",  -apps/cameff_hindcast_runner.c:460: trailing whitespace. -+ minimum_events  -apps/cameff_hindcast_runner.c:461: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:462: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:463: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:464: trailing whitespace. -+ "evidence_event_count=%zu\n",  -apps/cameff_hindcast_runner.c:465: trailing whitespace. -+ result.evidence_event_count  -apps/cameff_hindcast_runner.c:466: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:467: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:468: trailing whitespace. -+ if (hindcast_status == CAMEFF_HINDCAST_OK)  -apps/cameff_hindcast_runner.c:469: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:470: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:471: trailing whitespace. -+ "hazard_evidence=%.6f\n",  -apps/cameff_hindcast_runner.c:472: trailing whitespace. -+ result.hazard_score  -apps/cameff_hindcast_runner.c:473: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:474: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:475: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:476: trailing whitespace. -+ "fused_confidence=%.6f\n",  -apps/cameff_hindcast_runner.c:477: trailing whitespace. -+ result.confidence  -apps/cameff_hindcast_runner.c:478: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:479: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:480: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:481: trailing whitespace. -+ "dominant_pattern=%s\n",  -apps/cameff_hindcast_runner.c:482: trailing whitespace. -+ result.dominant_pattern  -apps/cameff_hindcast_runner.c:483: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:484: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:485: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:486: trailing whitespace. -+ "dominant_expert=%s\n",  -apps/cameff_hindcast_runner.c:487: trailing whitespace. -+ result.dominant_expert  -apps/cameff_hindcast_runner.c:488: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:489: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:490: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:491: trailing whitespace. -+ size_t signal_index;  -apps/cameff_hindcast_runner.c:492: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:493: trailing whitespace. -+ for (signal_index = 0U;  -apps/cameff_hindcast_runner.c:494: trailing whitespace. -+ signal_index < result.signal_count;  -apps/cameff_hindcast_runner.c:495: trailing whitespace. -+ signal_index++)  -apps/cameff_hindcast_runner.c:496: trailing whitespace. -+ {  -apps/cameff_hindcast_runner.c:497: trailing whitespace. -+ const cameff_signal_t *signal;  -apps/cameff_hindcast_runner.c:498: trailing whitespace. -+ const char *signal_name;  -apps/cameff_hindcast_runner.c:499: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:500: trailing whitespace. -+ signal =  -apps/cameff_hindcast_runner.c:501: trailing whitespace. -+ &result.signals[signal_index];  -apps/cameff_hindcast_runner.c:502: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:503: trailing whitespace. -+ signal_name =  -apps/cameff_hindcast_runner.c:504: trailing whitespace. -+ cameff_signal_name(  -apps/cameff_hindcast_runner.c:505: trailing whitespace. -+ (cameff_signal_id_t)signal_index  -apps/cameff_hindcast_runner.c:506: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:507: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:508: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:509: trailing whitespace. -+ "signal.%s.value=%.6f\n",  -apps/cameff_hindcast_runner.c:510: trailing whitespace. -+ signal_name,  -apps/cameff_hindcast_runner.c:511: trailing whitespace. -+ signal->value  -apps/cameff_hindcast_runner.c:512: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:513: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:514: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:515: trailing whitespace. -+ "signal.%s.confidence=%.6f\n",  -apps/cameff_hindcast_runner.c:516: trailing whitespace. -+ signal_name,  -apps/cameff_hindcast_runner.c:517: trailing whitespace. -+ signal->confidence  -apps/cameff_hindcast_runner.c:518: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:519: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:520: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:521: trailing whitespace. -+ "signal.%s.supporting_events=%zu\n",  -apps/cameff_hindcast_runner.c:522: trailing whitespace. -+ signal_name,  -apps/cameff_hindcast_runner.c:523: trailing whitespace. -+ signal->supporting_events  -apps/cameff_hindcast_runner.c:524: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:525: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:526: trailing whitespace. -+ (void)printf(  -apps/cameff_hindcast_runner.c:527: trailing whitespace. -+ "signal.%s.available=%d\n",  -apps/cameff_hindcast_runner.c:528: trailing whitespace. -+ signal_name,  -apps/cameff_hindcast_runner.c:529: trailing whitespace. -+ signal->available  -apps/cameff_hindcast_runner.c:530: trailing whitespace. -+ );  -apps/cameff_hindcast_runner.c:531: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:532: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:533: trailing whitespace. -+ }  -apps/cameff_hindcast_runner.c:534: trailing whitespace. -+  -apps/cameff_hindcast_runner.c:535: trailing whitespace. -+ return hindcast_status == CAMEFF_HINDCAST_OK  -apps/cameff_hindcast_runner.c:536: trailing whitespace. -+ ? EXIT_SUCCESS  -apps/cameff_hindcast_runner.c:537: trailing whitespace. -+ : EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:1: trailing whitespace. -+#include   -apps/cameff_threshold_sweep.c:2: trailing whitespace. -+#include   -apps/cameff_threshold_sweep.c:3: trailing whitespace. -+#include   -apps/cameff_threshold_sweep.c:4: trailing whitespace. -+#include   -apps/cameff_threshold_sweep.c:5: trailing whitespace. -+#include   -apps/cameff_threshold_sweep.c:6: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:7: trailing whitespace. -+#define CAMEFF_SWEEP_LINE_CAPACITY 2048U  -apps/cameff_threshold_sweep.c:8: trailing whitespace. -+#define CAMEFF_SWEEP_MAX_CASES 1024U  -apps/cameff_threshold_sweep.c:9: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:10: trailing whitespace. -+typedef struct  -apps/cameff_threshold_sweep.c:11: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:12: trailing whitespace. -+ int label;  -apps/cameff_threshold_sweep.c:13: trailing whitespace. -+ double score;  -apps/cameff_threshold_sweep.c:14: trailing whitespace. -+} ValidationCase;  -apps/cameff_threshold_sweep.c:15: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:16: trailing whitespace. -+static int parse_label(  -apps/cameff_threshold_sweep.c:17: trailing whitespace. -+ const char *text,  -apps/cameff_threshold_sweep.c:18: trailing whitespace. -+ int *label  -apps/cameff_threshold_sweep.c:19: trailing whitespace. -+)  -apps/cameff_threshold_sweep.c:20: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:21: trailing whitespace. -+ char *end;  -apps/cameff_threshold_sweep.c:22: trailing whitespace. -+ long value;  -apps/cameff_threshold_sweep.c:23: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:24: trailing whitespace. -+ if (text == NULL || label == NULL)  -apps/cameff_threshold_sweep.c:25: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:26: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:27: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:28: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:29: trailing whitespace. -+ errno = 0;  -apps/cameff_threshold_sweep.c:30: trailing whitespace. -+ end = NULL;  -apps/cameff_threshold_sweep.c:31: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:32: trailing whitespace. -+ value = strtol(text, &end, 10);  -apps/cameff_threshold_sweep.c:33: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:34: trailing whitespace. -+ if (errno != 0 ||  -apps/cameff_threshold_sweep.c:35: trailing whitespace. -+ end == text ||  -apps/cameff_threshold_sweep.c:36: trailing whitespace. -+ *end != '\0' ||  -apps/cameff_threshold_sweep.c:37: trailing whitespace. -+ (value != 0L && value != 1L))  -apps/cameff_threshold_sweep.c:38: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:39: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:40: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:41: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:42: trailing whitespace. -+ *label = (int)value;  -apps/cameff_threshold_sweep.c:43: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:44: trailing whitespace. -+ return 1;  -apps/cameff_threshold_sweep.c:45: trailing whitespace. -+}  -apps/cameff_threshold_sweep.c:46: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:47: trailing whitespace. -+static int parse_score(  -apps/cameff_threshold_sweep.c:48: trailing whitespace. -+ const char *text,  -apps/cameff_threshold_sweep.c:49: trailing whitespace. -+ double *score  -apps/cameff_threshold_sweep.c:50: trailing whitespace. -+)  -apps/cameff_threshold_sweep.c:51: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:52: trailing whitespace. -+ char *end;  -apps/cameff_threshold_sweep.c:53: trailing whitespace. -+ double value;  -apps/cameff_threshold_sweep.c:54: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:55: trailing whitespace. -+ if (text == NULL || score == NULL)  -apps/cameff_threshold_sweep.c:56: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:57: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:58: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:59: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:60: trailing whitespace. -+ errno = 0;  -apps/cameff_threshold_sweep.c:61: trailing whitespace. -+ end = NULL;  -apps/cameff_threshold_sweep.c:62: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:63: trailing whitespace. -+ value = strtod(text, &end);  -apps/cameff_threshold_sweep.c:64: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:65: trailing whitespace. -+ if (errno != 0 ||  -apps/cameff_threshold_sweep.c:66: trailing whitespace. -+ end == text ||  -apps/cameff_threshold_sweep.c:67: trailing whitespace. -+ *end != '\0' ||  -apps/cameff_threshold_sweep.c:68: trailing whitespace. -+ !isfinite(value) ||  -apps/cameff_threshold_sweep.c:69: trailing whitespace. -+ value < 0.0 ||  -apps/cameff_threshold_sweep.c:70: trailing whitespace. -+ value > 1.0)  -apps/cameff_threshold_sweep.c:71: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:72: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:73: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:74: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:75: trailing whitespace. -+ *score = value;  -apps/cameff_threshold_sweep.c:76: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:77: trailing whitespace. -+ return 1;  -apps/cameff_threshold_sweep.c:78: trailing whitespace. -+}  -apps/cameff_threshold_sweep.c:79: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:80: trailing whitespace. -+static int parse_validation_row(  -apps/cameff_threshold_sweep.c:81: trailing whitespace. -+ char *line,  -apps/cameff_threshold_sweep.c:82: trailing whitespace. -+ ValidationCase *validation_case  -apps/cameff_threshold_sweep.c:83: trailing whitespace. -+)  -apps/cameff_threshold_sweep.c:84: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:85: trailing whitespace. -+ char *token;  -apps/cameff_threshold_sweep.c:86: trailing whitespace. -+ size_t column;  -apps/cameff_threshold_sweep.c:87: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:88: trailing whitespace. -+ if (line == NULL || validation_case == NULL)  -apps/cameff_threshold_sweep.c:89: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:90: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:91: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:92: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:93: trailing whitespace. -+ column = 0U;  -apps/cameff_threshold_sweep.c:94: trailing whitespace. -+ token = strtok(line, ",");  -apps/cameff_threshold_sweep.c:95: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:96: trailing whitespace. -+ while (token != NULL)  -apps/cameff_threshold_sweep.c:97: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:98: trailing whitespace. -+ if (column == 1U)  -apps/cameff_threshold_sweep.c:99: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:100: trailing whitespace. -+ if (!parse_label(  -apps/cameff_threshold_sweep.c:101: trailing whitespace. -+ token,  -apps/cameff_threshold_sweep.c:102: trailing whitespace. -+ &validation_case->label))  -apps/cameff_threshold_sweep.c:103: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:104: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:105: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:106: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:107: trailing whitespace. -+ else if (column == 5U)  -apps/cameff_threshold_sweep.c:108: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:109: trailing whitespace. -+ if (!parse_score(  -apps/cameff_threshold_sweep.c:110: trailing whitespace. -+ token,  -apps/cameff_threshold_sweep.c:111: trailing whitespace. -+ &validation_case->score))  -apps/cameff_threshold_sweep.c:112: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:113: trailing whitespace. -+ return 0;  -apps/cameff_threshold_sweep.c:114: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:115: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:116: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:117: trailing whitespace. -+ column++;  -apps/cameff_threshold_sweep.c:118: trailing whitespace. -+ token = strtok(NULL, ",");  -apps/cameff_threshold_sweep.c:119: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:120: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:121: trailing whitespace. -+ return column >= 6U;  -apps/cameff_threshold_sweep.c:122: trailing whitespace. -+}  -apps/cameff_threshold_sweep.c:123: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:124: trailing whitespace. -+static double safe_divide(  -apps/cameff_threshold_sweep.c:125: trailing whitespace. -+ double numerator,  -apps/cameff_threshold_sweep.c:126: trailing whitespace. -+ double denominator  -apps/cameff_threshold_sweep.c:127: trailing whitespace. -+)  -apps/cameff_threshold_sweep.c:128: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:129: trailing whitespace. -+ if (denominator == 0.0)  -apps/cameff_threshold_sweep.c:130: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:131: trailing whitespace. -+ return 0.0;  -apps/cameff_threshold_sweep.c:132: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:133: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:134: trailing whitespace. -+ return numerator / denominator;  -apps/cameff_threshold_sweep.c:135: trailing whitespace. -+}  -apps/cameff_threshold_sweep.c:136: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:137: trailing whitespace. -+static void run_threshold_sweep(  -apps/cameff_threshold_sweep.c:138: trailing whitespace. -+ const ValidationCase *cases,  -apps/cameff_threshold_sweep.c:139: trailing whitespace. -+ size_t case_count  -apps/cameff_threshold_sweep.c:140: trailing whitespace. -+)  -apps/cameff_threshold_sweep.c:141: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:142: trailing whitespace. -+ unsigned threshold_index;  -apps/cameff_threshold_sweep.c:143: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:144: trailing whitespace. -+ (void)printf(  -apps/cameff_threshold_sweep.c:145: trailing whitespace. -+ "threshold,tp,fp,tn,fn,"  -apps/cameff_threshold_sweep.c:146: trailing whitespace. -+ "precision,recall,specificity,"  -apps/cameff_threshold_sweep.c:147: trailing whitespace. -+ "false_positive_rate,f1,balanced_accuracy\n"  -apps/cameff_threshold_sweep.c:148: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:149: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:150: trailing whitespace. -+ for (threshold_index = 0U;  -apps/cameff_threshold_sweep.c:151: trailing whitespace. -+ threshold_index <= 100U;  -apps/cameff_threshold_sweep.c:152: trailing whitespace. -+ threshold_index += 5U)  -apps/cameff_threshold_sweep.c:153: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:154: trailing whitespace. -+ double threshold;  -apps/cameff_threshold_sweep.c:155: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:156: trailing whitespace. -+ size_t true_positive;  -apps/cameff_threshold_sweep.c:157: trailing whitespace. -+ size_t false_positive;  -apps/cameff_threshold_sweep.c:158: trailing whitespace. -+ size_t true_negative;  -apps/cameff_threshold_sweep.c:159: trailing whitespace. -+ size_t false_negative;  -apps/cameff_threshold_sweep.c:160: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:161: trailing whitespace. -+ size_t index;  -apps/cameff_threshold_sweep.c:162: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:163: trailing whitespace. -+ double precision;  -apps/cameff_threshold_sweep.c:164: trailing whitespace. -+ double recall;  -apps/cameff_threshold_sweep.c:165: trailing whitespace. -+ double specificity;  -apps/cameff_threshold_sweep.c:166: trailing whitespace. -+ double false_positive_rate;  -apps/cameff_threshold_sweep.c:167: trailing whitespace. -+ double f1;  -apps/cameff_threshold_sweep.c:168: trailing whitespace. -+ double balanced_accuracy;  -apps/cameff_threshold_sweep.c:169: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:170: trailing whitespace. -+ threshold =  -apps/cameff_threshold_sweep.c:171: trailing whitespace. -+ (double)threshold_index / 100.0;  -apps/cameff_threshold_sweep.c:172: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:173: trailing whitespace. -+ true_positive = 0U;  -apps/cameff_threshold_sweep.c:174: trailing whitespace. -+ false_positive = 0U;  -apps/cameff_threshold_sweep.c:175: trailing whitespace. -+ true_negative = 0U;  -apps/cameff_threshold_sweep.c:176: trailing whitespace. -+ false_negative = 0U;  -apps/cameff_threshold_sweep.c:177: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:178: trailing whitespace. -+ for (index = 0U;  -apps/cameff_threshold_sweep.c:179: trailing whitespace. -+ index < case_count;  -apps/cameff_threshold_sweep.c:180: trailing whitespace. -+ index++)  -apps/cameff_threshold_sweep.c:181: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:182: trailing whitespace. -+ int predicted_positive;  -apps/cameff_threshold_sweep.c:183: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:184: trailing whitespace. -+ predicted_positive =  -apps/cameff_threshold_sweep.c:185: trailing whitespace. -+ cases[index].score >= threshold;  -apps/cameff_threshold_sweep.c:186: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:187: trailing whitespace. -+ if (cases[index].label == 1 &&  -apps/cameff_threshold_sweep.c:188: trailing whitespace. -+ predicted_positive != 0)  -apps/cameff_threshold_sweep.c:189: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:190: trailing whitespace. -+ true_positive++;  -apps/cameff_threshold_sweep.c:191: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:192: trailing whitespace. -+ else if (cases[index].label == 0 &&  -apps/cameff_threshold_sweep.c:193: trailing whitespace. -+ predicted_positive != 0)  -apps/cameff_threshold_sweep.c:194: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:195: trailing whitespace. -+ false_positive++;  -apps/cameff_threshold_sweep.c:196: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:197: trailing whitespace. -+ else if (cases[index].label == 0)  -apps/cameff_threshold_sweep.c:198: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:199: trailing whitespace. -+ true_negative++;  -apps/cameff_threshold_sweep.c:200: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:201: trailing whitespace. -+ else  -apps/cameff_threshold_sweep.c:202: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:203: trailing whitespace. -+ false_negative++;  -apps/cameff_threshold_sweep.c:204: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:205: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:206: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:207: trailing whitespace. -+ precision = safe_divide(  -apps/cameff_threshold_sweep.c:208: trailing whitespace. -+ (double)true_positive,  -apps/cameff_threshold_sweep.c:209: trailing whitespace. -+ (double)(true_positive + false_positive)  -apps/cameff_threshold_sweep.c:210: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:211: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:212: trailing whitespace. -+ recall = safe_divide(  -apps/cameff_threshold_sweep.c:213: trailing whitespace. -+ (double)true_positive,  -apps/cameff_threshold_sweep.c:214: trailing whitespace. -+ (double)(true_positive + false_negative)  -apps/cameff_threshold_sweep.c:215: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:216: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:217: trailing whitespace. -+ specificity = safe_divide(  -apps/cameff_threshold_sweep.c:218: trailing whitespace. -+ (double)true_negative,  -apps/cameff_threshold_sweep.c:219: trailing whitespace. -+ (double)(true_negative + false_positive)  -apps/cameff_threshold_sweep.c:220: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:221: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:222: trailing whitespace. -+ false_positive_rate =  -apps/cameff_threshold_sweep.c:223: trailing whitespace. -+ 1.0 - specificity;  -apps/cameff_threshold_sweep.c:224: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:225: trailing whitespace. -+ f1 = safe_divide(  -apps/cameff_threshold_sweep.c:226: trailing whitespace. -+ 2.0 * precision * recall,  -apps/cameff_threshold_sweep.c:227: trailing whitespace. -+ precision + recall  -apps/cameff_threshold_sweep.c:228: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:229: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:230: trailing whitespace. -+ balanced_accuracy =  -apps/cameff_threshold_sweep.c:231: trailing whitespace. -+ 0.5 * (recall + specificity);  -apps/cameff_threshold_sweep.c:232: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:233: trailing whitespace. -+ (void)printf(  -apps/cameff_threshold_sweep.c:234: trailing whitespace. -+ "%.2f,%zu,%zu,%zu,%zu,"  -apps/cameff_threshold_sweep.c:235: trailing whitespace. -+ "%.6f,%.6f,%.6f,"  -apps/cameff_threshold_sweep.c:236: trailing whitespace. -+ "%.6f,%.6f,%.6f\n",  -apps/cameff_threshold_sweep.c:237: trailing whitespace. -+ threshold,  -apps/cameff_threshold_sweep.c:238: trailing whitespace. -+ true_positive,  -apps/cameff_threshold_sweep.c:239: trailing whitespace. -+ false_positive,  -apps/cameff_threshold_sweep.c:240: trailing whitespace. -+ true_negative,  -apps/cameff_threshold_sweep.c:241: trailing whitespace. -+ false_negative,  -apps/cameff_threshold_sweep.c:242: trailing whitespace. -+ precision,  -apps/cameff_threshold_sweep.c:243: trailing whitespace. -+ recall,  -apps/cameff_threshold_sweep.c:244: trailing whitespace. -+ specificity,  -apps/cameff_threshold_sweep.c:245: trailing whitespace. -+ false_positive_rate,  -apps/cameff_threshold_sweep.c:246: trailing whitespace. -+ f1,  -apps/cameff_threshold_sweep.c:247: trailing whitespace. -+ balanced_accuracy  -apps/cameff_threshold_sweep.c:248: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:249: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:250: trailing whitespace. -+}  -apps/cameff_threshold_sweep.c:251: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:252: trailing whitespace. -+int main(  -apps/cameff_threshold_sweep.c:253: trailing whitespace. -+ int argc,  -apps/cameff_threshold_sweep.c:254: trailing whitespace. -+ char **argv  -apps/cameff_threshold_sweep.c:255: trailing whitespace. -+)  -apps/cameff_threshold_sweep.c:256: trailing whitespace. -+{  -apps/cameff_threshold_sweep.c:257: trailing whitespace. -+ FILE *input;  -apps/cameff_threshold_sweep.c:258: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:259: trailing whitespace. -+ char line[CAMEFF_SWEEP_LINE_CAPACITY];  -apps/cameff_threshold_sweep.c:260: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:261: trailing whitespace. -+ ValidationCase cases[CAMEFF_SWEEP_MAX_CASES];  -apps/cameff_threshold_sweep.c:262: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:263: trailing whitespace. -+ size_t case_count;  -apps/cameff_threshold_sweep.c:264: trailing whitespace. -+ size_t line_number;  -apps/cameff_threshold_sweep.c:265: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:266: trailing whitespace. -+ if (argc != 2)  -apps/cameff_threshold_sweep.c:267: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:268: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:269: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:270: trailing whitespace. -+ "Usage:\n"  -apps/cameff_threshold_sweep.c:271: trailing whitespace. -+ " %s \n",  -apps/cameff_threshold_sweep.c:272: trailing whitespace. -+ argv[0]  -apps/cameff_threshold_sweep.c:273: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:274: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:275: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:276: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:277: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:278: trailing whitespace. -+ input = fopen(argv[1], "r");  -apps/cameff_threshold_sweep.c:279: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:280: trailing whitespace. -+ if (input == NULL)  -apps/cameff_threshold_sweep.c:281: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:282: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:283: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:284: trailing whitespace. -+ "Unable to open validation file: %s\n",  -apps/cameff_threshold_sweep.c:285: trailing whitespace. -+ argv[1]  -apps/cameff_threshold_sweep.c:286: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:287: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:288: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:289: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:290: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:291: trailing whitespace. -+ if (fgets(  -apps/cameff_threshold_sweep.c:292: trailing whitespace. -+ line,  -apps/cameff_threshold_sweep.c:293: trailing whitespace. -+ sizeof(line),  -apps/cameff_threshold_sweep.c:294: trailing whitespace. -+ input) == NULL)  -apps/cameff_threshold_sweep.c:295: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:296: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:297: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:298: trailing whitespace. -+ "Validation file is empty.\n"  -apps/cameff_threshold_sweep.c:299: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:300: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:301: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_threshold_sweep.c:302: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:303: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:304: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:305: trailing whitespace. -+ case_count = 0U;  -apps/cameff_threshold_sweep.c:306: trailing whitespace. -+ line_number = 1U;  -apps/cameff_threshold_sweep.c:307: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:308: trailing whitespace. -+ while (fgets(  -apps/cameff_threshold_sweep.c:309: trailing whitespace. -+ line,  -apps/cameff_threshold_sweep.c:310: trailing whitespace. -+ sizeof(line),  -apps/cameff_threshold_sweep.c:311: trailing whitespace. -+ input) != NULL)  -apps/cameff_threshold_sweep.c:312: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:313: trailing whitespace. -+ size_t length;  -apps/cameff_threshold_sweep.c:314: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:315: trailing whitespace. -+ line_number++;  -apps/cameff_threshold_sweep.c:316: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:317: trailing whitespace. -+ length = strlen(line);  -apps/cameff_threshold_sweep.c:318: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:319: trailing whitespace. -+ while (length > 0U &&  -apps/cameff_threshold_sweep.c:320: trailing whitespace. -+ (line[length - 1U] == '\n' ||  -apps/cameff_threshold_sweep.c:321: trailing whitespace. -+ line[length - 1U] == '\r'))  -apps/cameff_threshold_sweep.c:322: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:323: trailing whitespace. -+ line[length - 1U] = '\0';  -apps/cameff_threshold_sweep.c:324: trailing whitespace. -+ length--;  -apps/cameff_threshold_sweep.c:325: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:326: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:327: trailing whitespace. -+ if (line[0] == '\0')  -apps/cameff_threshold_sweep.c:328: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:329: trailing whitespace. -+ continue;  -apps/cameff_threshold_sweep.c:330: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:331: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:332: trailing whitespace. -+ if (case_count >=  -apps/cameff_threshold_sweep.c:333: trailing whitespace. -+ CAMEFF_SWEEP_MAX_CASES)  -apps/cameff_threshold_sweep.c:334: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:335: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:336: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:337: trailing whitespace. -+ "Too many validation cases.\n"  -apps/cameff_threshold_sweep.c:338: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:339: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:340: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_threshold_sweep.c:341: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:342: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:343: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:344: trailing whitespace. -+ if (!parse_validation_row(  -apps/cameff_threshold_sweep.c:345: trailing whitespace. -+ line,  -apps/cameff_threshold_sweep.c:346: trailing whitespace. -+ &cases[case_count]))  -apps/cameff_threshold_sweep.c:347: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:348: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:349: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:350: trailing whitespace. -+ "Invalid validation row at line %zu.\n",  -apps/cameff_threshold_sweep.c:351: trailing whitespace. -+ line_number  -apps/cameff_threshold_sweep.c:352: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:353: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:354: trailing whitespace. -+ (void)fclose(input);  -apps/cameff_threshold_sweep.c:355: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:356: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:357: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:358: trailing whitespace. -+ case_count++;  -apps/cameff_threshold_sweep.c:359: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:360: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:361: trailing whitespace. -+ if (fclose(input) != 0)  -apps/cameff_threshold_sweep.c:362: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:363: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:364: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:365: trailing whitespace. -+ "Unable to close validation file.\n"  -apps/cameff_threshold_sweep.c:366: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:367: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:368: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:369: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:370: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:371: trailing whitespace. -+ if (case_count == 0U)  -apps/cameff_threshold_sweep.c:372: trailing whitespace. -+ {  -apps/cameff_threshold_sweep.c:373: trailing whitespace. -+ (void)fprintf(  -apps/cameff_threshold_sweep.c:374: trailing whitespace. -+ stderr,  -apps/cameff_threshold_sweep.c:375: trailing whitespace. -+ "No validation cases were loaded.\n"  -apps/cameff_threshold_sweep.c:376: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:377: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:378: trailing whitespace. -+ return EXIT_FAILURE;  -apps/cameff_threshold_sweep.c:379: trailing whitespace. -+ }  -apps/cameff_threshold_sweep.c:380: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:381: trailing whitespace. -+ run_threshold_sweep(  -apps/cameff_threshold_sweep.c:382: trailing whitespace. -+ cases,  -apps/cameff_threshold_sweep.c:383: trailing whitespace. -+ case_count  -apps/cameff_threshold_sweep.c:384: trailing whitespace. -+ );  -apps/cameff_threshold_sweep.c:385: trailing whitespace. -+  -apps/cameff_threshold_sweep.c:386: trailing whitespace. -+ return EXIT_SUCCESS;  -experiments/cebu_2025/README.md:1: trailing whitespace. -+# Cebu 2025 Hindcast Experiment  -experiments/cebu_2025/README.md:2: trailing whitespace. -+  -experiments/cebu_2025/README.md:3: trailing whitespace. -+This experiment evaluates the frozen CAMEFF b1.0.0 validation pipeline  -experiments/cebu_2025/README.md:4: trailing whitespace. -+against the 30 September 2025 Offshore Northern Cebu earthquake.  -experiments/cebu_2025/README.md:5: trailing whitespace. -+  -experiments/cebu_2025/README.md:6: trailing whitespace. -+## Target event  -experiments/cebu_2025/README.md:7: trailing whitespace. -+  -experiments/cebu_2025/README.md:8: trailing whitespace. -+* Time: 2025-09-30 13:59:43 UTC  -experiments/cebu_2025/README.md:9: trailing whitespace. -+* Latitude: 11.156 degrees north  -experiments/cebu_2025/README.md:10: trailing whitespace. -+* Longitude: 124.111 degrees east  -experiments/cebu_2025/README.md:11: trailing whitespace. -+* Depth: 10.0 km  -experiments/cebu_2025/README.md:12: trailing whitespace. -+* Magnitude: Mw6.9  -experiments/cebu_2025/README.md:13: trailing whitespace. -+* USGS event identifier: us6000rdrz  -experiments/cebu_2025/README.md:14: trailing whitespace. -+* Tectonic setting: shallow crustal faulting  -experiments/cebu_2025/README.md:15: trailing whitespace. -+* Associated fault: Bogo Bay Fault  -experiments/cebu_2025/README.md:16: trailing whitespace. -+  -experiments/cebu_2025/README.md:17: trailing whitespace. -+## Frozen validation rules  -experiments/cebu_2025/README.md:18: trailing whitespace. -+  -experiments/cebu_2025/README.md:19: trailing whitespace. -+The following rules were fixed before evaluating Cebu:  -experiments/cebu_2025/README.md:20: trailing whitespace. -+  -experiments/cebu_2025/README.md:21: trailing whitespace. -+* Warning threshold: 0.73  -experiments/cebu_2025/README.md:22: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/cebu_2025/README.md:23: trailing whitespace. -+* Evidence window: 365 days  -experiments/cebu_2025/README.md:24: trailing whitespace. -+* Analysis radius: 500 km  -experiments/cebu_2025/README.md:25: trailing whitespace. -+* Minimum catalog magnitude: M2.5  -experiments/cebu_2025/README.md:26: trailing whitespace. -+* Minimum evidence events: 20  -experiments/cebu_2025/README.md:27: trailing whitespace. -+  -experiments/cebu_2025/README.md:28: trailing whitespace. -+The threshold and CAMEFF core mathematics must not be modified to fit  -experiments/cebu_2025/README.md:29: trailing whitespace. -+the Cebu result.  -experiments/cebu_2025/README.md:30: trailing whitespace. -+  -experiments/cebu_2025/README.md:31: trailing whitespace. -+## Why this case matters  -experiments/cebu_2025/README.md:32: trailing whitespace. -+  -experiments/cebu_2025/README.md:33: trailing whitespace. -+Japan and Kamchatka are subduction-zone megathrust cases. Cebu is a  -experiments/cebu_2025/README.md:34: trailing whitespace. -+shallower crustal earthquake associated with a locally significant fault  -experiments/cebu_2025/README.md:35: trailing whitespace. -+system.  -experiments/cebu_2025/README.md:36: trailing whitespace. -+  -experiments/cebu_2025/README.md:37: trailing whitespace. -+This makes Cebu an important test of whether CAMEFF can generalize beyond  -experiments/cebu_2025/README.md:38: trailing whitespace. -+large subduction preparation sequences.  -experiments/cebu_2025/README.md:39: trailing whitespace. -+  -experiments/cebu_2025/README.md:40: trailing whitespace. -+A miss must be recorded as a miss rather than corrected by changing the  -experiments/cebu_2025/README.md:41: trailing whitespace. -+frozen threshold after observing the result.  -experiments/cebu_2025/README.md:42: trailing whitespace. -+  -experiments/cebu_2025/README.md:43: trailing whitespace. -+## Validation catalog  -experiments/cebu_2025/README.md:44: trailing whitespace. -+  -experiments/cebu_2025/README.md:45: trailing whitespace. -+The catalog covers approximately five years before the target.  -experiments/cebu_2025/README.md:46: trailing whitespace. -+  -experiments/cebu_2025/README.md:47: trailing whitespace. -+Acquisition parameters:  -experiments/cebu_2025/README.md:48: trailing whitespace. -+  -experiments/cebu_2025/README.md:49: trailing whitespace. -+* Start: 2020-09-29 13:59:43 UTC  -experiments/cebu_2025/README.md:50: trailing whitespace. -+* End: 2025-09-30 13:59:42 UTC  -experiments/cebu_2025/README.md:51: trailing whitespace. -+* Centre: 11.156, 124.111  -experiments/cebu_2025/README.md:52: trailing whitespace. -+* Radius: 500 km  -experiments/cebu_2025/README.md:53: trailing whitespace. -+* Minimum magnitude: M2.5  -experiments/cebu_2025/README.md:54: trailing whitespace. -+* Event type: earthquake  -experiments/cebu_2025/README.md:55: trailing whitespace. -+* Ordering: ascending origin time  -experiments/cebu_2025/README.md:56: trailing whitespace. -+  -experiments/cebu_2025/README.md:57: trailing whitespace. -+The catalog ends one second before the target event, preventing direct  -experiments/cebu_2025/README.md:58: trailing whitespace. -+target leakage.  -experiments/cebu_2025/README.md:59: trailing whitespace. -+  -experiments/cebu_2025/README.md:60: trailing whitespace. -+## Download  -experiments/cebu_2025/README.md:61: trailing whitespace. -+  -experiments/cebu_2025/README.md:62: trailing whitespace. -+From the repository root:  -experiments/cebu_2025/README.md:63: trailing whitespace. -+  -experiments/cebu_2025/README.md:64: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:65: trailing whitespace. -+./experiments/cebu_2025/fetch_usgs_raw.sh  -experiments/cebu_2025/README.md:66: trailing whitespace. -+```  -experiments/cebu_2025/README.md:67: trailing whitespace. -+  -experiments/cebu_2025/README.md:68: trailing whitespace. -+The raw catalog is written to:  -experiments/cebu_2025/README.md:69: trailing whitespace. -+  -experiments/cebu_2025/README.md:70: trailing whitespace. -+```text  -experiments/cebu_2025/README.md:71: trailing whitespace. -+experiments/cebu_2025/data/raw/usgs_cebu_2020_2025_raw.csv  -experiments/cebu_2025/README.md:72: trailing whitespace. -+```  -experiments/cebu_2025/README.md:73: trailing whitespace. -+  -experiments/cebu_2025/README.md:74: trailing whitespace. -+## Normalize  -experiments/cebu_2025/README.md:75: trailing whitespace. -+  -experiments/cebu_2025/README.md:76: trailing whitespace. -+Build the CAMEFF utilities:  -experiments/cebu_2025/README.md:77: trailing whitespace. -+  -experiments/cebu_2025/README.md:78: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:79: trailing whitespace. -+cmake --build build  -experiments/cebu_2025/README.md:80: trailing whitespace. -+```  -experiments/cebu_2025/README.md:81: trailing whitespace. -+  -experiments/cebu_2025/README.md:82: trailing whitespace. -+Normalize the catalog:  -experiments/cebu_2025/README.md:83: trailing whitespace. -+  -experiments/cebu_2025/README.md:84: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:85: trailing whitespace. -+./experiments/cebu_2025/normalize_catalog.sh  -experiments/cebu_2025/README.md:86: trailing whitespace. -+```  -experiments/cebu_2025/README.md:87: trailing whitespace. -+  -experiments/cebu_2025/README.md:88: trailing whitespace. -+The normalized file is written to:  -experiments/cebu_2025/README.md:89: trailing whitespace. -+  -experiments/cebu_2025/README.md:90: trailing whitespace. -+```text  -experiments/cebu_2025/README.md:91: trailing whitespace. -+experiments/cebu_2025/data/normalized/catalog.csv  -experiments/cebu_2025/README.md:92: trailing whitespace. -+```  -experiments/cebu_2025/README.md:93: trailing whitespace. -+  -experiments/cebu_2025/README.md:94: trailing whitespace. -+## Planned positive window  -experiments/cebu_2025/README.md:95: trailing whitespace. -+  -experiments/cebu_2025/README.md:96: trailing whitespace. -+* Evidence start: 2024-09-29 13:59:43 UTC  -experiments/cebu_2025/README.md:97: trailing whitespace. -+* Cutoff: 2025-09-29 13:59:43 UTC  -experiments/cebu_2025/README.md:98: trailing whitespace. -+* Target: 2025-09-30 13:59:43 UTC  -experiments/cebu_2025/README.md:99: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/cebu_2025/README.md:100: trailing whitespace. -+* Expected label: positive  -experiments/cebu_2025/README.md:101: trailing whitespace. -+  -experiments/cebu_2025/README.md:102: trailing whitespace. -+## Planned controls  -experiments/cebu_2025/README.md:103: trailing whitespace. -+  -experiments/cebu_2025/README.md:104: trailing whitespace. -+* Cebu 2021 annual control  -experiments/cebu_2025/README.md:105: trailing whitespace. -+* Cebu 2022 annual control  -experiments/cebu_2025/README.md:106: trailing whitespace. -+* Cebu 2023 annual control  -experiments/cebu_2025/README.md:107: trailing whitespace. -+* Cebu 2024 annual control  -experiments/cebu_2025/README.md:108: trailing whitespace. -+  -experiments/cebu_2025/README.md:109: trailing whitespace. -+The controls will be classified using the same frozen threshold of 0.73.  -experiments/cebu_2025/README.md:110: trailing whitespace. -+  -experiments/cebu_2025/README.md:111: trailing whitespace. -+## Interpretation  -experiments/cebu_2025/README.md:112: trailing whitespace. -+  -experiments/cebu_2025/README.md:113: trailing whitespace. -+The hazard-evidence output is an uncalibrated score. It is not an  -experiments/cebu_2025/README.md:114: trailing whitespace. -+earthquake probability.  -experiments/cebu_2025/README.md:115: trailing whitespace. -+  -experiments/cebu_2025/README.md:116: trailing whitespace. -+This experiment is an untouched retrospective generalization test.  -experiments/cebu_2025/README.md:117: trailing whitespace. -+  -experiments/cebu_2025/README.md:118: trailing whitespace. -+## Run the positive hindcast  -experiments/cebu_2025/README.md:119: trailing whitespace. -+  -experiments/cebu_2025/README.md:120: trailing whitespace. -+From the repository root:  -experiments/cebu_2025/README.md:121: trailing whitespace. -+  -experiments/cebu_2025/README.md:122: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:123: trailing whitespace. -+./experiments/cebu_2025/run_hindcast.sh  -experiments/cebu_2025/README.md:124: trailing whitespace. -+```  -experiments/cebu_2025/README.md:125: trailing whitespace. -+  -experiments/cebu_2025/README.md:126: trailing whitespace. -+The experiment uses a cutoff exactly twenty-four hours before the target  -experiments/cebu_2025/README.md:127: trailing whitespace. -+earthquake.  -experiments/cebu_2025/README.md:128: trailing whitespace. -+  -experiments/cebu_2025/README.md:129: trailing whitespace. -+The generated report is written to:  -experiments/cebu_2025/README.md:130: trailing whitespace. -+  -experiments/cebu_2025/README.md:131: trailing whitespace. -+```text  -experiments/cebu_2025/README.md:132: trailing whitespace. -+experiments/cebu_2025/results/cebu_2025_hindcast.txt  -experiments/cebu_2025/README.md:133: trailing whitespace. -+```  -experiments/cebu_2025/README.md:134: trailing whitespace. -+  -experiments/cebu_2025/README.md:135: trailing whitespace. -+## Run the validation suite  -experiments/cebu_2025/README.md:136: trailing whitespace. -+  -experiments/cebu_2025/README.md:137: trailing whitespace. -+Run the four annual controls and the positive target window:  -experiments/cebu_2025/README.md:138: trailing whitespace. -+  -experiments/cebu_2025/README.md:139: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:140: trailing whitespace. -+./experiments/cebu_2025/run_validation_suite.sh  -experiments/cebu_2025/README.md:141: trailing whitespace. -+```  -experiments/cebu_2025/README.md:142: trailing whitespace. -+  -experiments/cebu_2025/README.md:143: trailing whitespace. -+Inspect the results:  -experiments/cebu_2025/README.md:144: trailing whitespace. -+  -experiments/cebu_2025/README.md:145: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:146: trailing whitespace. -+column -s, -t \  -experiments/cebu_2025/README.md:147: trailing whitespace. -+ experiments/cebu_2025/results/cebu_validation_windows.csv  -experiments/cebu_2025/README.md:148: trailing whitespace. -+```  -experiments/cebu_2025/README.md:149: trailing whitespace. -+  -experiments/cebu_2025/README.md:150: trailing whitespace. -+The `predicted_label` field uses the frozen warning threshold of 0.73:  -experiments/cebu_2025/README.md:151: trailing whitespace. -+  -experiments/cebu_2025/README.md:152: trailing whitespace. -+* `1` means CAMEFF issued a warning.  -experiments/cebu_2025/README.md:153: trailing whitespace. -+* `0` means the hazard score remained below the threshold.  -experiments/cebu_2025/README.md:154: trailing whitespace. -+  -experiments/cebu_2025/README.md:155: trailing whitespace. -+## Frozen-threshold metrics  -experiments/cebu_2025/README.md:156: trailing whitespace. -+  -experiments/cebu_2025/README.md:157: trailing whitespace. -+Generate the Cebu metrics:  -experiments/cebu_2025/README.md:158: trailing whitespace. -+  -experiments/cebu_2025/README.md:159: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:160: trailing whitespace. -+./experiments/cebu_2025/run_threshold_report.sh  -experiments/cebu_2025/README.md:161: trailing whitespace. -+```  -experiments/cebu_2025/README.md:162: trailing whitespace. -+  -experiments/cebu_2025/README.md:163: trailing whitespace. -+Inspect the report:  -experiments/cebu_2025/README.md:164: trailing whitespace. -+  -experiments/cebu_2025/README.md:165: trailing whitespace. -+```bash  -experiments/cebu_2025/README.md:166: trailing whitespace. -+column -s, -t \  -experiments/cebu_2025/README.md:167: trailing whitespace. -+ experiments/cebu_2025/results/cebu_frozen_threshold_metrics.csv  -experiments/cebu_2025/README.md:168: trailing whitespace. -+```  -experiments/cebu_2025/README.md:169: trailing whitespace. -+  -experiments/cebu_2025/README.md:170: trailing whitespace. -+The warning threshold must not be modified based on the Cebu outcome.  -experiments/cebu_2025/README.md:171: trailing whitespace. -+A result below 0.73 for the positive target window must be recorded as a  -experiments/cebu_2025/README.md:172: trailing whitespace. -+miss.  -experiments/davao_2026/README.md:1: trailing whitespace. -+# Davao and Southern Mindanao 2026 Hindcast Experiment  -experiments/davao_2026/README.md:2: trailing whitespace. -+  -experiments/davao_2026/README.md:3: trailing whitespace. -+This experiment evaluates the frozen CAMEFF b1.0.0 validation pipeline  -experiments/davao_2026/README.md:4: trailing whitespace. -+against the 7 June 2026 M7.8 southern Mindanao earthquake.  -experiments/davao_2026/README.md:5: trailing whitespace. -+  -experiments/davao_2026/README.md:6: trailing whitespace. -+## Target event  -experiments/davao_2026/README.md:7: trailing whitespace. -+  -experiments/davao_2026/README.md:8: trailing whitespace. -+* Time: 2026-06-07 23:37:41 UTC  -experiments/davao_2026/README.md:9: trailing whitespace. -+* Latitude: 5.599 degrees north  -experiments/davao_2026/README.md:10: trailing whitespace. -+* Longitude: 125.056 degrees east  -experiments/davao_2026/README.md:11: trailing whitespace. -+* Depth: 57.0 km  -experiments/davao_2026/README.md:12: trailing whitespace. -+* Magnitude: M7.8  -experiments/davao_2026/README.md:13: trailing whitespace. -+* USGS event identifier: us7000srb1  -experiments/davao_2026/README.md:14: trailing whitespace. -+* USGS description: 25 km southwest of Kablalan, Philippines  -experiments/davao_2026/README.md:15: trailing whitespace. -+* Regional setting: southern Mindanao and Offshore Sarangani  -experiments/davao_2026/README.md:16: trailing whitespace. -+* Tectonic setting: regional subduction-related tectonic earthquake  -experiments/davao_2026/README.md:17: trailing whitespace. -+  -experiments/davao_2026/README.md:18: trailing whitespace. -+## Frozen validation rules  -experiments/davao_2026/README.md:19: trailing whitespace. -+  -experiments/davao_2026/README.md:20: trailing whitespace. -+The following rules were fixed before evaluating this case:  -experiments/davao_2026/README.md:21: trailing whitespace. -+  -experiments/davao_2026/README.md:22: trailing whitespace. -+* Warning threshold: 0.73  -experiments/davao_2026/README.md:23: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/davao_2026/README.md:24: trailing whitespace. -+* Evidence window: 365 days  -experiments/davao_2026/README.md:25: trailing whitespace. -+* Analysis radius: 500 km  -experiments/davao_2026/README.md:26: trailing whitespace. -+* Minimum catalog magnitude: M2.5  -experiments/davao_2026/README.md:27: trailing whitespace. -+* Minimum evidence events: 20  -experiments/davao_2026/README.md:28: trailing whitespace. -+  -experiments/davao_2026/README.md:29: trailing whitespace. -+Neither the threshold nor the core CAMEFF mathematics may be changed to  -experiments/davao_2026/README.md:30: trailing whitespace. -+fit the Davao result.  -experiments/davao_2026/README.md:31: trailing whitespace. -+  -experiments/davao_2026/README.md:32: trailing whitespace. -+## Why this case matters  -experiments/davao_2026/README.md:33: trailing whitespace. -+  -experiments/davao_2026/README.md:34: trailing whitespace. -+The event occurred south of Mindanao and affected the wider southern  -experiments/davao_2026/README.md:35: trailing whitespace. -+Mindanao and Davao region.  -experiments/davao_2026/README.md:36: trailing whitespace. -+  -experiments/davao_2026/README.md:37: trailing whitespace. -+It differs from the shallow Cebu crustal event in source depth and  -experiments/davao_2026/README.md:38: trailing whitespace. -+regional tectonic structure. It therefore provides another untouched  -experiments/davao_2026/README.md:39: trailing whitespace. -+test of CAMEFF pattern classification and expert fusion.  -experiments/davao_2026/README.md:40: trailing whitespace. -+  -experiments/davao_2026/README.md:41: trailing whitespace. -+A positive score below 0.73 must be recorded as a miss.  -experiments/davao_2026/README.md:42: trailing whitespace. -+  -experiments/davao_2026/README.md:43: trailing whitespace. -+## Validation catalog  -experiments/davao_2026/README.md:44: trailing whitespace. -+  -experiments/davao_2026/README.md:45: trailing whitespace. -+The catalog covers approximately five years before the target event.  -experiments/davao_2026/README.md:46: trailing whitespace. -+  -experiments/davao_2026/README.md:47: trailing whitespace. -+Acquisition parameters:  -experiments/davao_2026/README.md:48: trailing whitespace. -+  -experiments/davao_2026/README.md:49: trailing whitespace. -+* Start: 2021-06-06 23:37:41 UTC  -experiments/davao_2026/README.md:50: trailing whitespace. -+* End: 2026-06-07 23:37:40 UTC  -experiments/davao_2026/README.md:51: trailing whitespace. -+* Centre: 5.599, 125.056  -experiments/davao_2026/README.md:52: trailing whitespace. -+* Radius: 500 km  -experiments/davao_2026/README.md:53: trailing whitespace. -+* Minimum magnitude: M2.5  -experiments/davao_2026/README.md:54: trailing whitespace. -+* Event type: earthquake  -experiments/davao_2026/README.md:55: trailing whitespace. -+* Ordering: ascending origin time  -experiments/davao_2026/README.md:56: trailing whitespace. -+  -experiments/davao_2026/README.md:57: trailing whitespace. -+The catalog ends one second before the target event, preventing direct  -experiments/davao_2026/README.md:58: trailing whitespace. -+target leakage.  -experiments/davao_2026/README.md:59: trailing whitespace. -+  -experiments/davao_2026/README.md:60: trailing whitespace. -+## Download  -experiments/davao_2026/README.md:61: trailing whitespace. -+  -experiments/davao_2026/README.md:62: trailing whitespace. -+From the repository root:  -experiments/davao_2026/README.md:63: trailing whitespace. -+  -experiments/davao_2026/README.md:64: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:65: trailing whitespace. -+./experiments/davao_2026/fetch_usgs_raw.sh  -experiments/davao_2026/README.md:66: trailing whitespace. -+```  -experiments/davao_2026/README.md:67: trailing whitespace. -+  -experiments/davao_2026/README.md:68: trailing whitespace. -+The raw catalog is written to:  -experiments/davao_2026/README.md:69: trailing whitespace. -+  -experiments/davao_2026/README.md:70: trailing whitespace. -+```text  -experiments/davao_2026/README.md:71: trailing whitespace. -+experiments/davao_2026/data/raw/usgs_davao_2021_2026_raw.csv  -experiments/davao_2026/README.md:72: trailing whitespace. -+```  -experiments/davao_2026/README.md:73: trailing whitespace. -+  -experiments/davao_2026/README.md:74: trailing whitespace. -+## Normalize  -experiments/davao_2026/README.md:75: trailing whitespace. -+  -experiments/davao_2026/README.md:76: trailing whitespace. -+Build the CAMEFF utilities:  -experiments/davao_2026/README.md:77: trailing whitespace. -+  -experiments/davao_2026/README.md:78: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:79: trailing whitespace. -+cmake --build build  -experiments/davao_2026/README.md:80: trailing whitespace. -+```  -experiments/davao_2026/README.md:81: trailing whitespace. -+  -experiments/davao_2026/README.md:82: trailing whitespace. -+Normalize the catalog:  -experiments/davao_2026/README.md:83: trailing whitespace. -+  -experiments/davao_2026/README.md:84: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:85: trailing whitespace. -+./experiments/davao_2026/normalize_catalog.sh  -experiments/davao_2026/README.md:86: trailing whitespace. -+```  -experiments/davao_2026/README.md:87: trailing whitespace. -+  -experiments/davao_2026/README.md:88: trailing whitespace. -+The normalized catalog is written to:  -experiments/davao_2026/README.md:89: trailing whitespace. -+  -experiments/davao_2026/README.md:90: trailing whitespace. -+```text  -experiments/davao_2026/README.md:91: trailing whitespace. -+experiments/davao_2026/data/normalized/catalog.csv  -experiments/davao_2026/README.md:92: trailing whitespace. -+```  -experiments/davao_2026/README.md:93: trailing whitespace. -+  -experiments/davao_2026/README.md:94: trailing whitespace. -+## Planned positive window  -experiments/davao_2026/README.md:95: trailing whitespace. -+  -experiments/davao_2026/README.md:96: trailing whitespace. -+* Evidence start: 2025-06-06 23:37:41 UTC  -experiments/davao_2026/README.md:97: trailing whitespace. -+* Cutoff: 2026-06-06 23:37:41 UTC  -experiments/davao_2026/README.md:98: trailing whitespace. -+* Target: 2026-06-07 23:37:41 UTC  -experiments/davao_2026/README.md:99: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/davao_2026/README.md:100: trailing whitespace. -+* Expected label: positive  -experiments/davao_2026/README.md:101: trailing whitespace. -+  -experiments/davao_2026/README.md:102: trailing whitespace. -+## Planned controls  -experiments/davao_2026/README.md:103: trailing whitespace. -+  -experiments/davao_2026/README.md:104: trailing whitespace. -+* Davao 2022 annual control  -experiments/davao_2026/README.md:105: trailing whitespace. -+* Davao 2023 annual control  -experiments/davao_2026/README.md:106: trailing whitespace. -+* Davao 2024 annual control  -experiments/davao_2026/README.md:107: trailing whitespace. -+* Davao 2025 annual control  -experiments/davao_2026/README.md:108: trailing whitespace. -+  -experiments/davao_2026/README.md:109: trailing whitespace. -+All controls will use the frozen warning threshold of 0.73.  -experiments/davao_2026/README.md:110: trailing whitespace. -+  -experiments/davao_2026/README.md:111: trailing whitespace. -+## Interpretation  -experiments/davao_2026/README.md:112: trailing whitespace. -+  -experiments/davao_2026/README.md:113: trailing whitespace. -+CAMEFF hazard evidence is an uncalibrated evidence score and not an  -experiments/davao_2026/README.md:114: trailing whitespace. -+earthquake occurrence probability.  -experiments/davao_2026/README.md:115: trailing whitespace. -+  -experiments/davao_2026/README.md:116: trailing whitespace. -+This is an untouched retrospective generalization test.  -experiments/davao_2026/README.md:117: trailing whitespace. -+  -experiments/davao_2026/README.md:118: trailing whitespace. -+## Run the positive hindcast  -experiments/davao_2026/README.md:119: trailing whitespace. -+  -experiments/davao_2026/README.md:120: trailing whitespace. -+From the repository root:  -experiments/davao_2026/README.md:121: trailing whitespace. -+  -experiments/davao_2026/README.md:122: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:123: trailing whitespace. -+./experiments/davao_2026/run_hindcast.sh  -experiments/davao_2026/README.md:124: trailing whitespace. -+```  -experiments/davao_2026/README.md:125: trailing whitespace. -+  -experiments/davao_2026/README.md:126: trailing whitespace. -+The positive experiment uses a cutoff exactly twenty-four hours before  -experiments/davao_2026/README.md:127: trailing whitespace. -+the M7.8 target event.  -experiments/davao_2026/README.md:128: trailing whitespace. -+  -experiments/davao_2026/README.md:129: trailing whitespace. -+The generated report is written to:  -experiments/davao_2026/README.md:130: trailing whitespace. -+  -experiments/davao_2026/README.md:131: trailing whitespace. -+```text  -experiments/davao_2026/README.md:132: trailing whitespace. -+experiments/davao_2026/results/davao_2026_hindcast.txt  -experiments/davao_2026/README.md:133: trailing whitespace. -+```  -experiments/davao_2026/README.md:134: trailing whitespace. -+  -experiments/davao_2026/README.md:135: trailing whitespace. -+## Run the validation suite  -experiments/davao_2026/README.md:136: trailing whitespace. -+  -experiments/davao_2026/README.md:137: trailing whitespace. -+Run the four annual controls and positive target window:  -experiments/davao_2026/README.md:138: trailing whitespace. -+  -experiments/davao_2026/README.md:139: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:140: trailing whitespace. -+./experiments/davao_2026/run_validation_suite.sh  -experiments/davao_2026/README.md:141: trailing whitespace. -+```  -experiments/davao_2026/README.md:142: trailing whitespace. -+  -experiments/davao_2026/README.md:143: trailing whitespace. -+Inspect the results:  -experiments/davao_2026/README.md:144: trailing whitespace. -+  -experiments/davao_2026/README.md:145: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:146: trailing whitespace. -+column -s, -t \  -experiments/davao_2026/README.md:147: trailing whitespace. -+ experiments/davao_2026/results/davao_validation_windows.csv  -experiments/davao_2026/README.md:148: trailing whitespace. -+```  -experiments/davao_2026/README.md:149: trailing whitespace. -+  -experiments/davao_2026/README.md:150: trailing whitespace. -+The `predicted_label` field uses the frozen threshold of 0.73:  -experiments/davao_2026/README.md:151: trailing whitespace. -+  -experiments/davao_2026/README.md:152: trailing whitespace. -+* `1` means CAMEFF issued a warning.  -experiments/davao_2026/README.md:153: trailing whitespace. -+* `0` means the score remained below the warning threshold.  -experiments/davao_2026/README.md:154: trailing whitespace. -+  -experiments/davao_2026/README.md:155: trailing whitespace. -+## Frozen-threshold metrics  -experiments/davao_2026/README.md:156: trailing whitespace. -+  -experiments/davao_2026/README.md:157: trailing whitespace. -+Generate the Davao metrics:  -experiments/davao_2026/README.md:158: trailing whitespace. -+  -experiments/davao_2026/README.md:159: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:160: trailing whitespace. -+./experiments/davao_2026/run_threshold_report.sh  -experiments/davao_2026/README.md:161: trailing whitespace. -+```  -experiments/davao_2026/README.md:162: trailing whitespace. -+  -experiments/davao_2026/README.md:163: trailing whitespace. -+Inspect the metrics:  -experiments/davao_2026/README.md:164: trailing whitespace. -+  -experiments/davao_2026/README.md:165: trailing whitespace. -+```bash  -experiments/davao_2026/README.md:166: trailing whitespace. -+column -s, -t \  -experiments/davao_2026/README.md:167: trailing whitespace. -+ experiments/davao_2026/results/davao_frozen_threshold_metrics.csv  -experiments/davao_2026/README.md:168: trailing whitespace. -+```  -experiments/davao_2026/README.md:169: trailing whitespace. -+  -experiments/davao_2026/README.md:170: trailing whitespace. -+The threshold must remain fixed at 0.73. A positive score below this  -experiments/davao_2026/README.md:171: trailing whitespace. -+threshold must be recorded as a miss.  -experiments/japan_2011/README.md:1: trailing whitespace. -+# Japan 2011 Hindcast Experiment  -experiments/japan_2011/README.md:2: trailing whitespace. -+  -experiments/japan_2011/README.md:3: trailing whitespace. -+This experiment evaluates the CAMEFF b1.0.0 hindcast pipeline for the  -experiments/japan_2011/README.md:4: trailing whitespace. -+2011 Great Tohoku earthquake.  -experiments/japan_2011/README.md:5: trailing whitespace. -+  -experiments/japan_2011/README.md:6: trailing whitespace. -+## Target event  -experiments/japan_2011/README.md:7: trailing whitespace. -+  -experiments/japan_2011/README.md:8: trailing whitespace. -+* Time: 2011-03-11 05:46:24 UTC  -experiments/japan_2011/README.md:9: trailing whitespace. -+* Latitude: 38.297 degrees north  -experiments/japan_2011/README.md:10: trailing whitespace. -+* Longitude: 142.373 degrees east  -experiments/japan_2011/README.md:11: trailing whitespace. -+* Depth: 29 km  -experiments/japan_2011/README.md:12: trailing whitespace. -+* Magnitude: M9.1  -experiments/japan_2011/README.md:13: trailing whitespace. -+* Tectonic setting: subduction  -experiments/japan_2011/README.md:14: trailing whitespace. -+  -experiments/japan_2011/README.md:15: trailing whitespace. -+## Precursor catalog  -experiments/japan_2011/README.md:16: trailing whitespace. -+  -experiments/japan_2011/README.md:17: trailing whitespace. -+The raw catalog is downloaded from the USGS FDSN Event Web Service.  -experiments/japan_2011/README.md:18: trailing whitespace. -+  -experiments/japan_2011/README.md:19: trailing whitespace. -+Acquisition parameters:  -experiments/japan_2011/README.md:20: trailing whitespace. -+  -experiments/japan_2011/README.md:21: trailing whitespace. -+* Start: 2006-03-10 05:46:24 UTC  -experiments/japan_2011/README.md:22: trailing whitespace. -+* End: 2011-03-11 05:46:23 UTC  -experiments/japan_2011/README.md:23: trailing whitespace. -+* Centre: 38.297, 142.373  -experiments/japan_2011/README.md:24: trailing whitespace. -+* Radius: 500 km  -experiments/japan_2011/README.md:25: trailing whitespace. -+* Minimum magnitude: 2.5  -experiments/japan_2011/README.md:26: trailing whitespace. -+* Event type: earthquake  -experiments/japan_2011/README.md:27: trailing whitespace. -+* Ordering: ascending origin time  -experiments/japan_2011/README.md:28: trailing whitespace. -+  -experiments/japan_2011/README.md:29: trailing whitespace. -+The end time is one second before the target earthquake. This prevents  -experiments/japan_2011/README.md:30: trailing whitespace. -+the target event from being included in the precursor catalog.  -experiments/japan_2011/README.md:31: trailing whitespace. -+  -experiments/japan_2011/README.md:32: trailing whitespace. -+## Download  -experiments/japan_2011/README.md:33: trailing whitespace. -+  -experiments/japan_2011/README.md:34: trailing whitespace. -+From the repository root:  -experiments/japan_2011/README.md:35: trailing whitespace. -+  -experiments/japan_2011/README.md:36: trailing whitespace. -+```bash  -experiments/japan_2011/README.md:37: trailing whitespace. -+./experiments/japan_2011/fetch_usgs_raw.sh  -experiments/japan_2011/README.md:38: trailing whitespace. -+```  -experiments/japan_2011/README.md:39: trailing whitespace. -+  -experiments/japan_2011/README.md:40: trailing whitespace. -+The downloaded raw catalog is written to:  -experiments/japan_2011/README.md:41: trailing whitespace. -+  -experiments/japan_2011/README.md:42: trailing whitespace. -+```text  -experiments/japan_2011/README.md:43: trailing whitespace. -+experiments/japan_2011/data/raw/usgs_japan_2006_2011_raw.csv  -experiments/japan_2011/README.md:44: trailing whitespace. -+```  -experiments/japan_2011/README.md:45: trailing whitespace. -+  -experiments/japan_2011/README.md:46: trailing whitespace. -+## Normalize the USGS catalog  -experiments/japan_2011/README.md:47: trailing whitespace. -+  -experiments/japan_2011/README.md:48: trailing whitespace. -+Build the CAMEFF utilities:  -experiments/japan_2011/README.md:49: trailing whitespace. -+  -experiments/japan_2011/README.md:50: trailing whitespace. -+```bash  -experiments/japan_2011/README.md:51: trailing whitespace. -+cmake --build build  -experiments/japan_2011/README.md:52: trailing whitespace. -+```  -experiments/japan_2011/README.md:53: trailing whitespace. -+  -experiments/japan_2011/README.md:54: trailing whitespace. -+Normalize the downloaded USGS catalog:  -experiments/japan_2011/README.md:55: trailing whitespace. -+  -experiments/japan_2011/README.md:56: trailing whitespace. -+```bash  -experiments/japan_2011/README.md:57: trailing whitespace. -+./experiments/japan_2011/normalize_catalog.sh  -experiments/japan_2011/README.md:58: trailing whitespace. -+```  -experiments/japan_2011/README.md:59: trailing whitespace. -+  -experiments/japan_2011/README.md:60: trailing whitespace. -+The normalized catalog is written to:  -experiments/japan_2011/README.md:61: trailing whitespace. -+  -experiments/japan_2011/README.md:62: trailing whitespace. -+```text  -experiments/japan_2011/README.md:63: trailing whitespace. -+experiments/japan_2011/data/normalized/catalog.csv  -experiments/japan_2011/README.md:64: trailing whitespace. -+```  -experiments/japan_2011/README.md:65: trailing whitespace. -+  -experiments/japan_2011/README.md:66: trailing whitespace. -+The normalized schema is:  -experiments/japan_2011/README.md:67: trailing whitespace. -+  -experiments/japan_2011/README.md:68: trailing whitespace. -+```csv  -experiments/japan_2011/README.md:69: trailing whitespace. -+time,latitude,longitude,depth,mag,region  -experiments/japan_2011/README.md:70: trailing whitespace. -+```  -experiments/japan_2011/README.md:71: trailing whitespace. -+  -experiments/japan_2011/README.md:72: trailing whitespace. -+The normalizer resolves columns by their USGS header names instead of  -experiments/japan_2011/README.md:73: trailing whitespace. -+assuming fixed column positions. Quoted place names containing commas are  -experiments/japan_2011/README.md:74: trailing whitespace. -+preserved correctly.  -experiments/japan_2011/README.md:75: trailing whitespace. -+  -experiments/japan_2011/README.md:76: trailing whitespace. -+## Validation windows  -experiments/japan_2011/README.md:77: trailing whitespace. -+  -experiments/japan_2011/README.md:78: trailing whitespace. -+The extended catalog supports repeated one-year evidence windows under  -experiments/japan_2011/README.md:79: trailing whitespace. -+the same regional and catalog settings.  -experiments/japan_2011/README.md:80: trailing whitespace. -+  -experiments/japan_2011/README.md:81: trailing whitespace. -+Planned windows:  -experiments/japan_2011/README.md:82: trailing whitespace. -+  -experiments/japan_2011/README.md:83: trailing whitespace. -+| Window | Evidence start | Cutoff | Outcome |  -experiments/japan_2011/README.md:84: trailing whitespace. -+|---|---|---|---|  -experiments/japan_2011/README.md:85: trailing whitespace. -+| Japan 2007 control | 2006-03-10 | 2007-03-10 | Negative control |  -experiments/japan_2011/README.md:86: trailing whitespace. -+| Japan 2008 control | 2007-03-10 | 2008-03-10 | Negative control |  -experiments/japan_2011/README.md:87: trailing whitespace. -+| Japan 2009 control | 2008-03-10 | 2009-03-10 | Negative control |  -experiments/japan_2011/README.md:88: trailing whitespace. -+| Japan 2010 control | 2009-03-10 | 2010-03-10 | Negative control |  -experiments/japan_2011/README.md:89: trailing whitespace. -+| Japan 2011 positive | 2010-03-10 | 2011-03-10 | Positive |  -experiments/japan_2011/README.md:90: trailing whitespace. -+  -experiments/japan_2011/README.md:91: trailing whitespace. -+The positive cutoff is twenty-four hours before the 2011 target  -experiments/japan_2011/README.md:92: trailing whitespace. -+earthquake.  -experiments/japan_2011/README.md:93: trailing whitespace. -+  -experiments/japan_2011/README.md:94: trailing whitespace. -+All windows use:  -experiments/japan_2011/README.md:95: trailing whitespace. -+  -experiments/japan_2011/README.md:96: trailing whitespace. -+- Centre: 38.297 degrees north, 142.373 degrees east  -experiments/japan_2011/README.md:97: trailing whitespace. -+- Radius: 500 km  -experiments/japan_2011/README.md:98: trailing whitespace. -+- Lookback: 365 days  -experiments/japan_2011/README.md:99: trailing whitespace. -+- Minimum magnitude in the source catalog: M2.5  -experiments/japan_2011/README.md:100: trailing whitespace. -+- Minimum evidence events: 20  -experiments/japan_2011/README.md:101: trailing whitespace. -+  -experiments/japan_2011/README.md:102: trailing whitespace. -+The negative labels and warning threshold will be frozen before final  -experiments/japan_2011/README.md:103: trailing whitespace. -+performance metrics are reported.  -experiments/japan_2011/README.md:104: trailing whitespace. -+  -experiments/japan_2011/README.md:105: trailing whitespace. -+## Run the hindcast  -experiments/japan_2011/README.md:106: trailing whitespace. -+  -experiments/japan_2011/README.md:107: trailing whitespace. -+Build the project:  -experiments/japan_2011/README.md:108: trailing whitespace. -+  -experiments/japan_2011/README.md:109: trailing whitespace. -+```bash  -experiments/japan_2011/README.md:110: trailing whitespace. -+cmake --build build  -experiments/japan_2011/README.md:111: trailing whitespace. -+```  -experiments/japan_2011/README.md:112: trailing whitespace. -+  -experiments/japan_2011/README.md:113: trailing whitespace. -+Run the reproducible Japan 2011 experiment:  -experiments/japan_2011/README.md:114: trailing whitespace. -+  -experiments/japan_2011/README.md:115: trailing whitespace. -+```bash  -experiments/japan_2011/README.md:116: trailing whitespace. -+./experiments/japan_2011/run_hindcast.sh  -experiments/japan_2011/README.md:117: trailing whitespace. -+```  -experiments/japan_2011/README.md:118: trailing whitespace. -+  -experiments/japan_2011/README.md:119: trailing whitespace. -+The generated report is written to:  -experiments/japan_2011/README.md:120: trailing whitespace. -+  -experiments/japan_2011/README.md:121: trailing whitespace. -+```text  -experiments/japan_2011/README.md:122: trailing whitespace. -+experiments/japan_2011/results/japan_2011_hindcast.txt  -experiments/japan_2011/README.md:123: trailing whitespace. -+```  -experiments/japan_2011/README.md:124: trailing whitespace. -+  -experiments/japan_2011/README.md:125: trailing whitespace. -+The target earthquake is supplied separately from the precursor catalog.  -experiments/japan_2011/README.md:126: trailing whitespace. -+  -experiments/japan_2011/README.md:127: trailing whitespace. -+The precursor catalog ends before the target event. This prevents the  -experiments/japan_2011/README.md:128: trailing whitespace. -+target event record, magnitude, and depth from entering the signal  -experiments/japan_2011/README.md:129: trailing whitespace. -+extraction pipeline as precursor evidence.  -experiments/japan_2011/README.md:130: trailing whitespace. -+  -experiments/japan_2011/README.md:131: trailing whitespace. -+## Data stages  -experiments/japan_2011/README.md:132: trailing whitespace. -+  -experiments/japan_2011/README.md:133: trailing whitespace. -+```text  -experiments/japan_2011/README.md:134: trailing whitespace. -+USGS raw CSV  -experiments/japan_2011/README.md:135: trailing whitespace. -+ -> CAMEFF normalized CSV  -experiments/japan_2011/README.md:136: trailing whitespace. -+ -> leakage-free hindcast window  -experiments/japan_2011/README.md:137: trailing whitespace. -+ -> signal extraction  -experiments/japan_2011/README.md:138: trailing whitespace. -+ -> pattern classification  -experiments/japan_2011/README.md:139: trailing whitespace. -+ -> expert fusion  -experiments/japan_2011/README.md:140: trailing whitespace. -+ -> experiment report  -experiments/japan_2011/README.md:141: trailing whitespace. -+```  -experiments/japan_2011/README.md:142: trailing whitespace. -+  -experiments/japan_2011/README.md:143: trailing whitespace. -+## Reproducible workflow  -experiments/japan_2011/README.md:144: trailing whitespace. -+  -experiments/japan_2011/README.md:145: trailing whitespace. -+From the repository root:  -experiments/japan_2011/README.md:146: trailing whitespace. -+  -experiments/japan_2011/README.md:147: trailing whitespace. -+```bash  -experiments/japan_2011/README.md:148: trailing whitespace. -+./experiments/japan_2011/fetch_usgs_raw.sh  -experiments/japan_2011/README.md:149: trailing whitespace. -+./experiments/japan_2011/normalize_catalog.sh  -experiments/japan_2011/README.md:150: trailing whitespace. -+./experiments/japan_2011/run_hindcast.sh  -experiments/japan_2011/README.md:151: trailing whitespace. -+```  -experiments/japan_2011/README.md:152: trailing whitespace. -+  -experiments/japan_2011/README.md:153: trailing whitespace. -+## Interpretation warning  -experiments/japan_2011/README.md:154: trailing whitespace. -+  -experiments/japan_2011/README.md:155: trailing whitespace. -+CAMEFF hazard evidence is an uncalibrated evidence score.  -experiments/japan_2011/README.md:156: trailing whitespace. -+  -experiments/japan_2011/README.md:157: trailing whitespace. -+It must not be interpreted as the probability that an earthquake will  -experiments/japan_2011/README.md:158: trailing whitespace. -+occur. The experiment is a historical hindcast used to evaluate signal  -experiments/japan_2011/README.md:159: trailing whitespace. -+processing, pattern classification, expert routing, and fusion behavior.  -experiments/russia_2025/README.md:1: trailing whitespace. -+# Russia 2025 Kamchatka Hindcast Experiment  -experiments/russia_2025/README.md:2: trailing whitespace. -+  -experiments/russia_2025/README.md:3: trailing whitespace. -+This experiment evaluates the frozen CAMEFF b1.0.0 hindcast pipeline  -experiments/russia_2025/README.md:4: trailing whitespace. -+against the 2025 Kamchatka Peninsula earthquake.  -experiments/russia_2025/README.md:5: trailing whitespace. -+  -experiments/russia_2025/README.md:6: trailing whitespace. -+## Target event  -experiments/russia_2025/README.md:7: trailing whitespace. -+  -experiments/russia_2025/README.md:8: trailing whitespace. -+* Time: 2025-07-29 23:24:52 UTC  -experiments/russia_2025/README.md:9: trailing whitespace. -+* Latitude: 52.495 degrees north  -experiments/russia_2025/README.md:10: trailing whitespace. -+* Longitude: 160.240 degrees east  -experiments/russia_2025/README.md:11: trailing whitespace. -+* Depth: 35.0 km  -experiments/russia_2025/README.md:12: trailing whitespace. -+* Magnitude: M8.8  -experiments/russia_2025/README.md:13: trailing whitespace. -+* Tectonic setting: subduction megathrust  -experiments/russia_2025/README.md:14: trailing whitespace. -+* USGS event identifier: us6000qw60  -experiments/russia_2025/README.md:15: trailing whitespace. -+  -experiments/russia_2025/README.md:16: trailing whitespace. -+## Frozen validation rules  -experiments/russia_2025/README.md:17: trailing whitespace. -+  -experiments/russia_2025/README.md:18: trailing whitespace. -+The rules inherited from the Japan validation are frozen before this  -experiments/russia_2025/README.md:19: trailing whitespace. -+experiment is evaluated:  -experiments/russia_2025/README.md:20: trailing whitespace. -+  -experiments/russia_2025/README.md:21: trailing whitespace. -+* Warning threshold: 0.73  -experiments/russia_2025/README.md:22: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/russia_2025/README.md:23: trailing whitespace. -+* Evidence window: 365 days  -experiments/russia_2025/README.md:24: trailing whitespace. -+* Analysis radius: 500 km  -experiments/russia_2025/README.md:25: trailing whitespace. -+* Minimum catalog magnitude: M2.5  -experiments/russia_2025/README.md:26: trailing whitespace. -+* Minimum evidence events: 20  -experiments/russia_2025/README.md:27: trailing whitespace. -+  -experiments/russia_2025/README.md:28: trailing whitespace. -+The warning threshold must not be adjusted to fit the Russia result.  -experiments/russia_2025/README.md:29: trailing whitespace. -+  -experiments/russia_2025/README.md:30: trailing whitespace. -+## Validation catalog  -experiments/russia_2025/README.md:31: trailing whitespace. -+  -experiments/russia_2025/README.md:32: trailing whitespace. -+The extended catalog covers approximately five years and supports four  -experiments/russia_2025/README.md:33: trailing whitespace. -+annual control windows followed by the positive 2025 window.  -experiments/russia_2025/README.md:34: trailing whitespace. -+  -experiments/russia_2025/README.md:35: trailing whitespace. -+Acquisition parameters:  -experiments/russia_2025/README.md:36: trailing whitespace. -+  -experiments/russia_2025/README.md:37: trailing whitespace. -+* Start: 2020-07-28 23:24:52 UTC  -experiments/russia_2025/README.md:38: trailing whitespace. -+* End: 2025-07-29 23:24:51 UTC  -experiments/russia_2025/README.md:39: trailing whitespace. -+* Centre: 52.495, 160.240  -experiments/russia_2025/README.md:40: trailing whitespace. -+* Radius: 500 km  -experiments/russia_2025/README.md:41: trailing whitespace. -+* Minimum magnitude: M2.5  -experiments/russia_2025/README.md:42: trailing whitespace. -+* Event type: earthquake  -experiments/russia_2025/README.md:43: trailing whitespace. -+* Ordering: ascending origin time  -experiments/russia_2025/README.md:44: trailing whitespace. -+  -experiments/russia_2025/README.md:45: trailing whitespace. -+The raw catalog ends one second before the target earthquake, preventing  -experiments/russia_2025/README.md:46: trailing whitespace. -+the target event from entering the evidence data.  -experiments/russia_2025/README.md:47: trailing whitespace. -+  -experiments/russia_2025/README.md:48: trailing whitespace. -+## Download  -experiments/russia_2025/README.md:49: trailing whitespace. -+  -experiments/russia_2025/README.md:50: trailing whitespace. -+From the repository root:  -experiments/russia_2025/README.md:51: trailing whitespace. -+  -experiments/russia_2025/README.md:52: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:53: trailing whitespace. -+./experiments/russia_2025/fetch_usgs_raw.sh  -experiments/russia_2025/README.md:54: trailing whitespace. -+```  -experiments/russia_2025/README.md:55: trailing whitespace. -+  -experiments/russia_2025/README.md:56: trailing whitespace. -+The raw catalog is written to:  -experiments/russia_2025/README.md:57: trailing whitespace. -+  -experiments/russia_2025/README.md:58: trailing whitespace. -+```text  -experiments/russia_2025/README.md:59: trailing whitespace. -+experiments/russia_2025/data/raw/usgs_kamchatka_2020_2025_raw.csv  -experiments/russia_2025/README.md:60: trailing whitespace. -+```  -experiments/russia_2025/README.md:61: trailing whitespace. -+  -experiments/russia_2025/README.md:62: trailing whitespace. -+## Normalize  -experiments/russia_2025/README.md:63: trailing whitespace. -+  -experiments/russia_2025/README.md:64: trailing whitespace. -+Build the utilities:  -experiments/russia_2025/README.md:65: trailing whitespace. -+  -experiments/russia_2025/README.md:66: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:67: trailing whitespace. -+cmake --build build  -experiments/russia_2025/README.md:68: trailing whitespace. -+```  -experiments/russia_2025/README.md:69: trailing whitespace. -+  -experiments/russia_2025/README.md:70: trailing whitespace. -+Normalize the catalog:  -experiments/russia_2025/README.md:71: trailing whitespace. -+  -experiments/russia_2025/README.md:72: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:73: trailing whitespace. -+./experiments/russia_2025/normalize_catalog.sh  -experiments/russia_2025/README.md:74: trailing whitespace. -+```  -experiments/russia_2025/README.md:75: trailing whitespace. -+  -experiments/russia_2025/README.md:76: trailing whitespace. -+The normalized catalog is written to:  -experiments/russia_2025/README.md:77: trailing whitespace. -+  -experiments/russia_2025/README.md:78: trailing whitespace. -+```text  -experiments/russia_2025/README.md:79: trailing whitespace. -+experiments/russia_2025/data/normalized/catalog.csv  -experiments/russia_2025/README.md:80: trailing whitespace. -+```  -experiments/russia_2025/README.md:81: trailing whitespace. -+  -experiments/russia_2025/README.md:82: trailing whitespace. -+## Planned positive window  -experiments/russia_2025/README.md:83: trailing whitespace. -+  -experiments/russia_2025/README.md:84: trailing whitespace. -+* Evidence start: 2024-07-28 23:24:52 UTC  -experiments/russia_2025/README.md:85: trailing whitespace. -+* Cutoff: 2025-07-28 23:24:52 UTC  -experiments/russia_2025/README.md:86: trailing whitespace. -+* Target: 2025-07-29 23:24:52 UTC  -experiments/russia_2025/README.md:87: trailing whitespace. -+* Lead time: 24 hours  -experiments/russia_2025/README.md:88: trailing whitespace. -+* Expected label: positive  -experiments/russia_2025/README.md:89: trailing whitespace. -+  -experiments/russia_2025/README.md:90: trailing whitespace. -+## Planned controls  -experiments/russia_2025/README.md:91: trailing whitespace. -+  -experiments/russia_2025/README.md:92: trailing whitespace. -+* 2021 annual control  -experiments/russia_2025/README.md:93: trailing whitespace. -+* 2022 annual control  -experiments/russia_2025/README.md:94: trailing whitespace. -+* 2023 annual control  -experiments/russia_2025/README.md:95: trailing whitespace. -+* 2024 annual control  -experiments/russia_2025/README.md:96: trailing whitespace. -+  -experiments/russia_2025/README.md:97: trailing whitespace. -+The control labels must be verified against the catalog before computing  -experiments/russia_2025/README.md:98: trailing whitespace. -+final metrics.  -experiments/russia_2025/README.md:99: trailing whitespace. -+  -experiments/russia_2025/README.md:100: trailing whitespace. -+## Interpretation  -experiments/russia_2025/README.md:101: trailing whitespace. -+  -experiments/russia_2025/README.md:102: trailing whitespace. -+CAMEFF hazard evidence remains an uncalibrated evidence score. The Russia  -experiments/russia_2025/README.md:103: trailing whitespace. -+case is an untouched generalization test of the threshold derived from  -experiments/russia_2025/README.md:104: trailing whitespace. -+the Japan experiment.  -experiments/russia_2025/README.md:105: trailing whitespace. -+  -experiments/russia_2025/README.md:106: trailing whitespace. -+## Run the positive hindcast  -experiments/russia_2025/README.md:107: trailing whitespace. -+  -experiments/russia_2025/README.md:108: trailing whitespace. -+From the repository root:  -experiments/russia_2025/README.md:109: trailing whitespace. -+  -experiments/russia_2025/README.md:110: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:111: trailing whitespace. -+./experiments/russia_2025/run_hindcast.sh  -experiments/russia_2025/README.md:112: trailing whitespace. -+```  -experiments/russia_2025/README.md:113: trailing whitespace. -+  -experiments/russia_2025/README.md:114: trailing whitespace. -+The positive window uses a cutoff exactly twenty-four hours before the  -experiments/russia_2025/README.md:115: trailing whitespace. -+M8.8 target earthquake.  -experiments/russia_2025/README.md:116: trailing whitespace. -+  -experiments/russia_2025/README.md:117: trailing whitespace. -+The report is written to:  -experiments/russia_2025/README.md:118: trailing whitespace. -+  -experiments/russia_2025/README.md:119: trailing whitespace. -+```text  -experiments/russia_2025/README.md:120: trailing whitespace. -+experiments/russia_2025/results/russia_2025_hindcast.txt  -experiments/russia_2025/README.md:121: trailing whitespace. -+```  -experiments/russia_2025/README.md:122: trailing whitespace. -+  -experiments/russia_2025/README.md:123: trailing whitespace. -+## Run the validation suite  -experiments/russia_2025/README.md:124: trailing whitespace. -+  -experiments/russia_2025/README.md:125: trailing whitespace. -+Run four annual controls followed by the positive window:  -experiments/russia_2025/README.md:126: trailing whitespace. -+  -experiments/russia_2025/README.md:127: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:128: trailing whitespace. -+./experiments/russia_2025/run_validation_suite.sh  -experiments/russia_2025/README.md:129: trailing whitespace. -+```  -experiments/russia_2025/README.md:130: trailing whitespace. -+  -experiments/russia_2025/README.md:131: trailing whitespace. -+Inspect the results:  -experiments/russia_2025/README.md:132: trailing whitespace. -+  -experiments/russia_2025/README.md:133: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:134: trailing whitespace. -+column -s, -t \  -experiments/russia_2025/README.md:135: trailing whitespace. -+ experiments/russia_2025/results/russia_validation_windows.csv  -experiments/russia_2025/README.md:136: trailing whitespace. -+```  -experiments/russia_2025/README.md:137: trailing whitespace. -+  -experiments/russia_2025/README.md:138: trailing whitespace. -+The `predicted_label` column is calculated using the frozen Japan-derived  -experiments/russia_2025/README.md:139: trailing whitespace. -+threshold of 0.73.  -experiments/russia_2025/README.md:140: trailing whitespace. -+  -experiments/russia_2025/README.md:141: trailing whitespace. -+A value of `1` means CAMEFF issued a warning. A value of `0` means the  -experiments/russia_2025/README.md:142: trailing whitespace. -+hazard score remained below the warning threshold.  -experiments/russia_2025/README.md:143: trailing whitespace. -+  -experiments/russia_2025/README.md:144: trailing whitespace. -+## Frozen-threshold metrics  -experiments/russia_2025/README.md:145: trailing whitespace. -+  -experiments/russia_2025/README.md:146: trailing whitespace. -+Generate the Russia metrics without tuning the threshold:  -experiments/russia_2025/README.md:147: trailing whitespace. -+  -experiments/russia_2025/README.md:148: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:149: trailing whitespace. -+./experiments/russia_2025/run_threshold_report.sh  -experiments/russia_2025/README.md:150: trailing whitespace. -+```  -experiments/russia_2025/README.md:151: trailing whitespace. -+  -experiments/russia_2025/README.md:152: trailing whitespace. -+Inspect the result:  -experiments/russia_2025/README.md:153: trailing whitespace. -+  -experiments/russia_2025/README.md:154: trailing whitespace. -+```bash  -experiments/russia_2025/README.md:155: trailing whitespace. -+column -s, -t \  -experiments/russia_2025/README.md:156: trailing whitespace. -+ experiments/russia_2025/results/russia_frozen_threshold_metrics.csv  -experiments/russia_2025/README.md:157: trailing whitespace. -+```  -experiments/russia_2025/README.md:158: trailing whitespace. -+  -experiments/russia_2025/README.md:159: trailing whitespace. -+The Russia experiment is an untouched generalization test. The threshold  -experiments/russia_2025/README.md:160: trailing whitespace. -+must remain 0.73 regardless of whether the result is a hit, miss, false  -experiments/russia_2025/README.md:161: trailing whitespace. -+positive, or true negative.  -experiments/venezuela_2026/README.md:1: trailing whitespace. -+# Venezuela 2026 Hindcast Experiment  -experiments/venezuela_2026/README.md:2: trailing whitespace. -+  -experiments/venezuela_2026/README.md:3: trailing whitespace. -+This experiment evaluates the frozen CAMEFF b1.0.0 validation pipeline  -experiments/venezuela_2026/README.md:4: trailing whitespace. -+against the larger earthquake in the 24 June 2026 northern Venezuela  -experiments/venezuela_2026/README.md:5: trailing whitespace. -+earthquake doublet.  -experiments/venezuela_2026/README.md:6: trailing whitespace. -+  -experiments/venezuela_2026/README.md:7: trailing whitespace. -+## Target event  -experiments/venezuela_2026/README.md:8: trailing whitespace. -+  -experiments/venezuela_2026/README.md:9: trailing whitespace. -+* Time: 2026-06-24 22:05:11 UTC  -experiments/venezuela_2026/README.md:10: trailing whitespace. -+* Latitude: 10.401 degrees north  -experiments/venezuela_2026/README.md:11: trailing whitespace. -+* Longitude: 68.321 degrees west  -experiments/venezuela_2026/README.md:12: trailing whitespace. -+* Depth: 10.0 km  -experiments/venezuela_2026/README.md:13: trailing whitespace. -+* Magnitude: M7.5  -experiments/venezuela_2026/README.md:14: trailing whitespace. -+* USGS event identifier: us6000t7zp  -experiments/venezuela_2026/README.md:15: trailing whitespace. -+* Regional setting: northern Venezuela  -experiments/venezuela_2026/README.md:16: trailing whitespace. -+* Tectonic setting: shallow strike-slip faulting near a plate boundary  -experiments/venezuela_2026/README.md:17: trailing whitespace. -+  -experiments/venezuela_2026/README.md:18: trailing whitespace. -+## Doublet handling  -experiments/venezuela_2026/README.md:19: trailing whitespace. -+  -experiments/venezuela_2026/README.md:20: trailing whitespace. -+A separate M7.1 earthquake occurred approximately thirty-nine seconds  -experiments/venezuela_2026/README.md:21: trailing whitespace. -+before the M7.5 target.  -experiments/venezuela_2026/README.md:22: trailing whitespace. -+  -experiments/venezuela_2026/README.md:23: trailing whitespace. -+The frozen CAMEFF forecast cutoff is twenty-four hours before the target:  -experiments/venezuela_2026/README.md:24: trailing whitespace. -+  -experiments/venezuela_2026/README.md:25: trailing whitespace. -+```text  -experiments/venezuela_2026/README.md:26: trailing whitespace. -+2026-06-23 22:05:11 UTC  -experiments/venezuela_2026/README.md:27: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:28: trailing whitespace. -+  -experiments/venezuela_2026/README.md:29: trailing whitespace. -+Consequently, neither the M7.1 event nor the M7.5 target can enter the  -experiments/venezuela_2026/README.md:30: trailing whitespace. -+evidence window.  -experiments/venezuela_2026/README.md:31: trailing whitespace. -+  -experiments/venezuela_2026/README.md:32: trailing whitespace. -+The raw acquisition may contain the earlier M7.1 event because the raw  -experiments/venezuela_2026/README.md:33: trailing whitespace. -+catalog ends one second before the M7.5 target. The hindcast filter must  -experiments/venezuela_2026/README.md:34: trailing whitespace. -+remove every event at or after the frozen cutoff before signal extraction.  -experiments/venezuela_2026/README.md:35: trailing whitespace. -+  -experiments/venezuela_2026/README.md:36: trailing whitespace. -+## Frozen validation rules  -experiments/venezuela_2026/README.md:37: trailing whitespace. -+  -experiments/venezuela_2026/README.md:38: trailing whitespace. -+The following rules were fixed before evaluating Venezuela:  -experiments/venezuela_2026/README.md:39: trailing whitespace. -+  -experiments/venezuela_2026/README.md:40: trailing whitespace. -+* Warning threshold: 0.73  -experiments/venezuela_2026/README.md:41: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/venezuela_2026/README.md:42: trailing whitespace. -+* Evidence window: 365 days  -experiments/venezuela_2026/README.md:43: trailing whitespace. -+* Analysis radius: 500 km  -experiments/venezuela_2026/README.md:44: trailing whitespace. -+* Minimum catalog magnitude: M2.5  -experiments/venezuela_2026/README.md:45: trailing whitespace. -+* Minimum evidence events: 20  -experiments/venezuela_2026/README.md:46: trailing whitespace. -+  -experiments/venezuela_2026/README.md:47: trailing whitespace. -+Neither the threshold nor the CAMEFF core mathematics may be modified to  -experiments/venezuela_2026/README.md:48: trailing whitespace. -+fit the Venezuela outcome.  -experiments/venezuela_2026/README.md:49: trailing whitespace. -+  -experiments/venezuela_2026/README.md:50: trailing whitespace. -+## Why this case matters  -experiments/venezuela_2026/README.md:51: trailing whitespace. -+  -experiments/venezuela_2026/README.md:52: trailing whitespace. -+Japan and Kamchatka were major subduction-zone hits.  -experiments/venezuela_2026/README.md:53: trailing whitespace. -+  -experiments/venezuela_2026/README.md:54: trailing whitespace. -+Cebu and Davao were misses under the frozen threshold.  -experiments/venezuela_2026/README.md:55: trailing whitespace. -+  -experiments/venezuela_2026/README.md:56: trailing whitespace. -+Venezuela is a shallow strike-slip doublet in a different tectonic  -experiments/venezuela_2026/README.md:57: trailing whitespace. -+environment. It is therefore an important final untouched test of the  -experiments/venezuela_2026/README.md:58: trailing whitespace. -+current CAMEFF architecture.  -experiments/venezuela_2026/README.md:59: trailing whitespace. -+  -experiments/venezuela_2026/README.md:60: trailing whitespace. -+A positive score below 0.73 must be recorded as a miss.  -experiments/venezuela_2026/README.md:61: trailing whitespace. -+  -experiments/venezuela_2026/README.md:62: trailing whitespace. -+## Validation catalog  -experiments/venezuela_2026/README.md:63: trailing whitespace. -+  -experiments/venezuela_2026/README.md:64: trailing whitespace. -+The catalog covers approximately five years before the target event.  -experiments/venezuela_2026/README.md:65: trailing whitespace. -+  -experiments/venezuela_2026/README.md:66: trailing whitespace. -+Acquisition parameters:  -experiments/venezuela_2026/README.md:67: trailing whitespace. -+  -experiments/venezuela_2026/README.md:68: trailing whitespace. -+* Start: 2021-06-23 22:05:11 UTC  -experiments/venezuela_2026/README.md:69: trailing whitespace. -+* End: 2026-06-24 22:05:10 UTC  -experiments/venezuela_2026/README.md:70: trailing whitespace. -+* Centre: 10.401, -68.321  -experiments/venezuela_2026/README.md:71: trailing whitespace. -+* Radius: 500 km  -experiments/venezuela_2026/README.md:72: trailing whitespace. -+* Minimum magnitude: M2.5  -experiments/venezuela_2026/README.md:73: trailing whitespace. -+* Event type: earthquake  -experiments/venezuela_2026/README.md:74: trailing whitespace. -+* Ordering: ascending origin time  -experiments/venezuela_2026/README.md:75: trailing whitespace. -+  -experiments/venezuela_2026/README.md:76: trailing whitespace. -+## Download  -experiments/venezuela_2026/README.md:77: trailing whitespace. -+  -experiments/venezuela_2026/README.md:78: trailing whitespace. -+From the repository root:  -experiments/venezuela_2026/README.md:79: trailing whitespace. -+  -experiments/venezuela_2026/README.md:80: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:81: trailing whitespace. -+./experiments/venezuela_2026/fetch_usgs_raw.sh  -experiments/venezuela_2026/README.md:82: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:83: trailing whitespace. -+  -experiments/venezuela_2026/README.md:84: trailing whitespace. -+The raw catalog is written to:  -experiments/venezuela_2026/README.md:85: trailing whitespace. -+  -experiments/venezuela_2026/README.md:86: trailing whitespace. -+```text  -experiments/venezuela_2026/README.md:87: trailing whitespace. -+experiments/venezuela_2026/data/raw/usgs_venezuela_2021_2026_raw.csv  -experiments/venezuela_2026/README.md:88: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:89: trailing whitespace. -+  -experiments/venezuela_2026/README.md:90: trailing whitespace. -+## Normalize  -experiments/venezuela_2026/README.md:91: trailing whitespace. -+  -experiments/venezuela_2026/README.md:92: trailing whitespace. -+Build the CAMEFF utilities:  -experiments/venezuela_2026/README.md:93: trailing whitespace. -+  -experiments/venezuela_2026/README.md:94: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:95: trailing whitespace. -+cmake --build build  -experiments/venezuela_2026/README.md:96: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:97: trailing whitespace. -+  -experiments/venezuela_2026/README.md:98: trailing whitespace. -+Normalize the catalog:  -experiments/venezuela_2026/README.md:99: trailing whitespace. -+  -experiments/venezuela_2026/README.md:100: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:101: trailing whitespace. -+./experiments/venezuela_2026/normalize_catalog.sh  -experiments/venezuela_2026/README.md:102: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:103: trailing whitespace. -+  -experiments/venezuela_2026/README.md:104: trailing whitespace. -+The normalized catalog is written to:  -experiments/venezuela_2026/README.md:105: trailing whitespace. -+  -experiments/venezuela_2026/README.md:106: trailing whitespace. -+```text  -experiments/venezuela_2026/README.md:107: trailing whitespace. -+experiments/venezuela_2026/data/normalized/catalog.csv  -experiments/venezuela_2026/README.md:108: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:109: trailing whitespace. -+  -experiments/venezuela_2026/README.md:110: trailing whitespace. -+## Planned positive window  -experiments/venezuela_2026/README.md:111: trailing whitespace. -+  -experiments/venezuela_2026/README.md:112: trailing whitespace. -+* Evidence start: 2025-06-23 22:05:11 UTC  -experiments/venezuela_2026/README.md:113: trailing whitespace. -+* Cutoff: 2026-06-23 22:05:11 UTC  -experiments/venezuela_2026/README.md:114: trailing whitespace. -+* Target: 2026-06-24 22:05:11 UTC  -experiments/venezuela_2026/README.md:115: trailing whitespace. -+* Forecast lead time: 24 hours  -experiments/venezuela_2026/README.md:116: trailing whitespace. -+* Expected label: positive  -experiments/venezuela_2026/README.md:117: trailing whitespace. -+  -experiments/venezuela_2026/README.md:118: trailing whitespace. -+## Planned controls  -experiments/venezuela_2026/README.md:119: trailing whitespace. -+  -experiments/venezuela_2026/README.md:120: trailing whitespace. -+* Venezuela 2022 annual control  -experiments/venezuela_2026/README.md:121: trailing whitespace. -+* Venezuela 2023 annual control  -experiments/venezuela_2026/README.md:122: trailing whitespace. -+* Venezuela 2024 annual control  -experiments/venezuela_2026/README.md:123: trailing whitespace. -+* Venezuela 2025 annual control  -experiments/venezuela_2026/README.md:124: trailing whitespace. -+  -experiments/venezuela_2026/README.md:125: trailing whitespace. -+Every window will be classified using the frozen warning threshold of  -experiments/venezuela_2026/README.md:126: trailing whitespace. -+0.73.  -experiments/venezuela_2026/README.md:127: trailing whitespace. -+  -experiments/venezuela_2026/README.md:128: trailing whitespace. -+## Interpretation  -experiments/venezuela_2026/README.md:129: trailing whitespace. -+  -experiments/venezuela_2026/README.md:130: trailing whitespace. -+CAMEFF hazard evidence is an uncalibrated evidence score and not an  -experiments/venezuela_2026/README.md:131: trailing whitespace. -+earthquake-occurrence probability.  -experiments/venezuela_2026/README.md:132: trailing whitespace. -+  -experiments/venezuela_2026/README.md:133: trailing whitespace. -+This is an untouched retrospective generalization test.  -experiments/venezuela_2026/README.md:134: trailing whitespace. -+  -experiments/venezuela_2026/README.md:135: trailing whitespace. -+## Run the positive hindcast  -experiments/venezuela_2026/README.md:136: trailing whitespace. -+  -experiments/venezuela_2026/README.md:137: trailing whitespace. -+From the repository root:  -experiments/venezuela_2026/README.md:138: trailing whitespace. -+  -experiments/venezuela_2026/README.md:139: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:140: trailing whitespace. -+./experiments/venezuela_2026/run_hindcast.sh  -experiments/venezuela_2026/README.md:141: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:142: trailing whitespace. -+  -experiments/venezuela_2026/README.md:143: trailing whitespace. -+The positive experiment uses a cutoff exactly twenty-four hours before  -experiments/venezuela_2026/README.md:144: trailing whitespace. -+the M7.5 target event.  -experiments/venezuela_2026/README.md:145: trailing whitespace. -+  -experiments/venezuela_2026/README.md:146: trailing whitespace. -+The generated report is written to:  -experiments/venezuela_2026/README.md:147: trailing whitespace. -+  -experiments/venezuela_2026/README.md:148: trailing whitespace. -+```text  -experiments/venezuela_2026/README.md:149: trailing whitespace. -+experiments/venezuela_2026/results/venezuela_2026_hindcast.txt  -experiments/venezuela_2026/README.md:150: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:151: trailing whitespace. -+  -experiments/venezuela_2026/README.md:152: trailing whitespace. -+## Run the validation suite  -experiments/venezuela_2026/README.md:153: trailing whitespace. -+  -experiments/venezuela_2026/README.md:154: trailing whitespace. -+Run four annual controls followed by the positive target window:  -experiments/venezuela_2026/README.md:155: trailing whitespace. -+  -experiments/venezuela_2026/README.md:156: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:157: trailing whitespace. -+./experiments/venezuela_2026/run_validation_suite.sh  -experiments/venezuela_2026/README.md:158: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:159: trailing whitespace. -+  -experiments/venezuela_2026/README.md:160: trailing whitespace. -+Inspect the results:  -experiments/venezuela_2026/README.md:161: trailing whitespace. -+  -experiments/venezuela_2026/README.md:162: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:163: trailing whitespace. -+column -s, -t \  -experiments/venezuela_2026/README.md:164: trailing whitespace. -+ experiments/venezuela_2026/results/venezuela_validation_windows.csv  -experiments/venezuela_2026/README.md:165: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:166: trailing whitespace. -+  -experiments/venezuela_2026/README.md:167: trailing whitespace. -+The `predicted_label` field uses the frozen warning threshold of 0.73:  -experiments/venezuela_2026/README.md:168: trailing whitespace. -+  -experiments/venezuela_2026/README.md:169: trailing whitespace. -+* `1` means CAMEFF issued a warning.  -experiments/venezuela_2026/README.md:170: trailing whitespace. -+* `0` means the hazard score remained below the threshold.  -experiments/venezuela_2026/README.md:171: trailing whitespace. -+  -experiments/venezuela_2026/README.md:172: trailing whitespace. -+## Frozen-threshold metrics  -experiments/venezuela_2026/README.md:173: trailing whitespace. -+  -experiments/venezuela_2026/README.md:174: trailing whitespace. -+Generate the Venezuela metrics:  -experiments/venezuela_2026/README.md:175: trailing whitespace. -+  -experiments/venezuela_2026/README.md:176: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:177: trailing whitespace. -+./experiments/venezuela_2026/run_threshold_report.sh  -experiments/venezuela_2026/README.md:178: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:179: trailing whitespace. -+  -experiments/venezuela_2026/README.md:180: trailing whitespace. -+Inspect the metrics:  -experiments/venezuela_2026/README.md:181: trailing whitespace. -+  -experiments/venezuela_2026/README.md:182: trailing whitespace. -+```bash  -experiments/venezuela_2026/README.md:183: trailing whitespace. -+column -s, -t \  -experiments/venezuela_2026/README.md:184: trailing whitespace. -+ experiments/venezuela_2026/results/venezuela_frozen_threshold_metrics.csv  -experiments/venezuela_2026/README.md:185: trailing whitespace. -+```  -experiments/venezuela_2026/README.md:186: trailing whitespace. -+  -experiments/venezuela_2026/README.md:187: trailing whitespace. -+The threshold remains fixed at 0.73. A positive score below this value  -experiments/venezuela_2026/README.md:188: trailing whitespace. -+must be recorded as a miss.  -include/cameff/baseline_expert.h:1: trailing whitespace. -+#ifndef CAMEFF_BASELINE_EXPERT_H  -include/cameff/baseline_expert.h:2: trailing whitespace. -+#define CAMEFF_BASELINE_EXPERT_H  -include/cameff/baseline_expert.h:3: trailing whitespace. -+  -include/cameff/baseline_expert.h:4: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/baseline_expert.h:5: trailing whitespace. -+  -include/cameff/baseline_expert.h:6: trailing whitespace. -+const cameff_expert_t *cameff_baseline_expert(void);  -include/cameff/baseline_expert.h:7: trailing whitespace. -+  -include/cameff/baseline_expert.h:8: trailing whitespace. -+#endif  -include/cameff/cameff.h:1: trailing whitespace. -+#ifndef CAMEFF_CAMEFF_H  -include/cameff/cameff.h:2: trailing whitespace. -+#define CAMEFF_CAMEFF_H  -include/cameff/cameff.h:3: trailing whitespace. -+  -include/cameff/cameff.h:4: trailing whitespace. -+#include "cameff/baseline_expert.h"  -include/cameff/cameff.h:5: trailing whitespace. -+#include "cameff/catalog.h"  -include/cameff/cameff.h:6: trailing whitespace. -+#include "cameff/config.h"  -include/cameff/cameff.h:7: trailing whitespace. -+#include "cameff/expert_registry.h"  -include/cameff/cameff.h:8: trailing whitespace. -+#include "cameff/framework.h"  -include/cameff/cameff.h:9: trailing whitespace. -+#include "cameff/geo.h"  -include/cameff/cameff.h:10: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/cameff.h:11: trailing whitespace. -+#include "cameff/pattern.h"  -include/cameff/cameff.h:12: trailing whitespace. -+#include "cameff/region.h"  -include/cameff/cameff.h:13: trailing whitespace. -+#include "cameff/signals.h"  -include/cameff/cameff.h:14: trailing whitespace. -+#include "cameff/types.h"  -include/cameff/cameff.h:15: trailing whitespace. -+#include "cameff/cascade_expert.h"  -include/cameff/cameff.h:16: trailing whitespace. -+#include "cameff/crustal_fault_expert.h"  -include/cameff/cameff.h:17: trailing whitespace. -+#include "cameff/evaluation.h"  -include/cameff/cameff.h:18: trailing whitespace. -+#include "cameff/subduction_expert.h"  -include/cameff/cameff.h:19: trailing whitespace. -+#include "cameff/fusion.h"  -include/cameff/cameff.h:20: trailing whitespace. -+  -include/cameff/cameff.h:21: trailing whitespace. -+#endif  -include/cameff/cascade_expert.h:1: trailing whitespace. -+#ifndef CAMEFF_CASCADE_EXPERT_H  -include/cameff/cascade_expert.h:2: trailing whitespace. -+#define CAMEFF_CASCADE_EXPERT_H  -include/cameff/cascade_expert.h:3: trailing whitespace. -+  -include/cameff/cascade_expert.h:4: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/cascade_expert.h:5: trailing whitespace. -+  -include/cameff/cascade_expert.h:6: trailing whitespace. -+const cameff_expert_t *cameff_cascade_expert(void);  -include/cameff/cascade_expert.h:7: trailing whitespace. -+  -include/cameff/crustal_fault_expert.h:1: trailing whitespace. -+#ifndef CAMEFF_CRUSTAL_FAULT_EXPERT_H  -include/cameff/crustal_fault_expert.h:2: trailing whitespace. -+#define CAMEFF_CRUSTAL_FAULT_EXPERT_H  -include/cameff/crustal_fault_expert.h:3: trailing whitespace. -+  -include/cameff/crustal_fault_expert.h:4: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/crustal_fault_expert.h:5: trailing whitespace. -+  -include/cameff/crustal_fault_expert.h:6: trailing whitespace. -+const cameff_expert_t *cameff_crustal_fault_expert(void);  -include/cameff/crustal_fault_expert.h:7: trailing whitespace. -+  -include/cameff/evaluation.h:1: trailing whitespace. -+#ifndef CAMEFF_EVALUATION_H  -include/cameff/evaluation.h:2: trailing whitespace. -+#define CAMEFF_EVALUATION_H  -include/cameff/evaluation.h:3: trailing whitespace. -+  -include/cameff/evaluation.h:4: trailing whitespace. -+#include   -include/cameff/evaluation.h:5: trailing whitespace. -+  -include/cameff/evaluation.h:6: trailing whitespace. -+#include "cameff/config.h"  -include/cameff/evaluation.h:7: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/evaluation.h:8: trailing whitespace. -+#include "cameff/pattern.h"  -include/cameff/evaluation.h:9: trailing whitespace. -+#include "cameff/region.h"  -include/cameff/evaluation.h:10: trailing whitespace. -+#include "cameff/types.h"  -include/cameff/evaluation.h:11: trailing whitespace. -+  -include/cameff/evaluation.h:12: trailing whitespace. -+typedef struct {  -include/cameff/evaluation.h:13: trailing whitespace. -+ double routing_threshold;  -include/cameff/evaluation.h:14: trailing whitespace. -+ double minimum_fused_confidence;  -include/cameff/evaluation.h:15: trailing whitespace. -+ double watch_threshold;  -include/cameff/evaluation.h:16: trailing whitespace. -+ double elevated_threshold;  -include/cameff/evaluation.h:17: trailing whitespace. -+} cameff_evaluation_options_t;  -include/cameff/evaluation.h:18: trailing whitespace. -+  -include/cameff/evaluation.h:19: trailing whitespace. -+typedef struct {  -include/cameff/evaluation.h:20: trailing whitespace. -+ cameff_pattern_result_t patterns;  -include/cameff/evaluation.h:21: trailing whitespace. -+ cameff_multi_expert_result_t fusion;  -include/cameff/evaluation.h:22: trailing whitespace. -+} cameff_evaluation_result_t;  -include/cameff/evaluation.h:23: trailing whitespace. -+  -include/cameff/evaluation.h:24: trailing whitespace. -+void cameff_evaluation_options_default(  -include/cameff/evaluation.h:25: trailing whitespace. -+ cameff_evaluation_options_t *options  -include/cameff/evaluation.h:26: trailing whitespace. -+);  -include/cameff/evaluation.h:27: trailing whitespace. -+  -include/cameff/evaluation.h:28: trailing whitespace. -+cameff_status_t cameff_evaluate_experts(  -include/cameff/evaluation.h:29: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -include/cameff/evaluation.h:30: trailing whitespace. -+ const cameff_config_t *config,  -include/cameff/evaluation.h:31: trailing whitespace. -+ const cameff_region_profile_t *region,  -include/cameff/evaluation.h:32: trailing whitespace. -+ const cameff_evaluation_options_t *options,  -include/cameff/evaluation.h:33: trailing whitespace. -+ cameff_evaluation_result_t *result  -include/cameff/evaluation.h:34: trailing whitespace. -+);  -include/cameff/evaluation.h:35: trailing whitespace. -+  -include/cameff/evaluation.h:36: trailing whitespace. -+cameff_status_t cameff_format_evaluation(  -include/cameff/evaluation.h:37: trailing whitespace. -+ const cameff_evaluation_result_t *result,  -include/cameff/evaluation.h:38: trailing whitespace. -+ char *buffer,  -include/cameff/evaluation.h:39: trailing whitespace. -+ size_t buffer_capacity  -include/cameff/evaluation.h:40: trailing whitespace. -+);  -include/cameff/evaluation.h:41: trailing whitespace. -+  -include/cameff/expert.h:1: trailing whitespace. -+#ifndef CAMEFF_EXPERT_H  -include/cameff/expert.h:2: trailing whitespace. -+#define CAMEFF_EXPERT_H  -include/cameff/expert.h:3: trailing whitespace. -+  -include/cameff/expert.h:4: trailing whitespace. -+#include   -include/cameff/expert.h:5: trailing whitespace. -+  -include/cameff/expert.h:6: trailing whitespace. -+#include "cameff/config.h"  -include/cameff/expert.h:7: trailing whitespace. -+#include "cameff/pattern.h"  -include/cameff/expert.h:8: trailing whitespace. -+#include "cameff/region.h"  -include/cameff/expert.h:9: trailing whitespace. -+#include "cameff/types.h"  -include/cameff/expert.h:10: trailing whitespace. -+  -include/cameff/expert.h:11: trailing whitespace. -+#define CAMEFF_MAX_EXPERTS 8U  -include/cameff/expert.h:12: trailing whitespace. -+#define CAMEFF_MAX_EXPERT_NAME 48U  -include/cameff/expert.h:13: trailing whitespace. -+#define CAMEFF_MAX_EXPLANATION 256U  -include/cameff/expert.h:14: trailing whitespace. -+  -include/cameff/expert.h:15: trailing whitespace. -+typedef enum {  -include/cameff/expert.h:16: trailing whitespace. -+ CAMEFF_EXPERT_OK = 0,  -include/cameff/expert.h:17: trailing whitespace. -+ CAMEFF_EXPERT_ABSTAIN = 1,  -include/cameff/expert.h:18: trailing whitespace. -+ CAMEFF_EXPERT_INSUFFICIENT_DATA = 2,  -include/cameff/expert.h:19: trailing whitespace. -+ CAMEFF_EXPERT_ERROR = 3  -include/cameff/expert.h:20: trailing whitespace. -+} cameff_expert_status_t;  -include/cameff/expert.h:21: trailing whitespace. -+  -include/cameff/expert.h:22: trailing whitespace. -+typedef struct {  -include/cameff/expert.h:23: trailing whitespace. -+ char expert_name[CAMEFF_MAX_EXPERT_NAME];  -include/cameff/expert.h:24: trailing whitespace. -+  -include/cameff/expert.h:25: trailing whitespace. -+ double hazard_evidence;  -include/cameff/expert.h:26: trailing whitespace. -+ double preparation_evidence;  -include/cameff/expert.h:27: trailing whitespace. -+ double cascade_evidence;  -include/cameff/expert.h:28: trailing whitespace. -+  -include/cameff/expert.h:29: trailing whitespace. -+ double confidence;  -include/cameff/expert.h:30: trailing whitespace. -+ double applicability;  -include/cameff/expert.h:31: trailing whitespace. -+ double routing_strength;  -include/cameff/expert.h:32: trailing whitespace. -+  -include/cameff/expert.h:33: trailing whitespace. -+ cameff_decision_level_t decision;  -include/cameff/expert.h:34: trailing whitespace. -+ cameff_expert_status_t status;  -include/cameff/expert.h:35: trailing whitespace. -+ char explanation[CAMEFF_MAX_EXPLANATION];  -include/cameff/expert.h:36: trailing whitespace. -+} cameff_expert_result_t;  -include/cameff/expert.h:37: trailing whitespace. -+  -include/cameff/expert.h:38: trailing whitespace. -+typedef double (*cameff_expert_applicability_fn)(  -include/cameff/expert.h:39: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -include/cameff/expert.h:40: trailing whitespace. -+ const cameff_region_profile_t *region,  -include/cameff/expert.h:41: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -include/cameff/expert.h:42: trailing whitespace. -+);  -include/cameff/expert.h:43: trailing whitespace. -+  -include/cameff/expert.h:44: trailing whitespace. -+typedef cameff_status_t (*cameff_expert_evaluate_fn)(  -include/cameff/expert.h:45: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -include/cameff/expert.h:46: trailing whitespace. -+ const cameff_config_t *config,  -include/cameff/expert.h:47: trailing whitespace. -+ const cameff_region_profile_t *region,  -include/cameff/expert.h:48: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -include/cameff/expert.h:49: trailing whitespace. -+ cameff_expert_result_t *result  -include/cameff/expert.h:50: trailing whitespace. -+);  -include/cameff/expert.h:51: trailing whitespace. -+  -include/cameff/expert.h:52: trailing whitespace. -+typedef struct {  -include/cameff/expert.h:53: trailing whitespace. -+ const char *name;  -include/cameff/expert.h:54: trailing whitespace. -+ cameff_pattern_id_t primary_pattern;  -include/cameff/expert.h:55: trailing whitespace. -+ cameff_expert_applicability_fn applicability;  -include/cameff/expert.h:56: trailing whitespace. -+ cameff_expert_evaluate_fn evaluate;  -include/cameff/expert.h:57: trailing whitespace. -+} cameff_expert_t;  -include/cameff/expert.h:58: trailing whitespace. -+  -include/cameff/expert.h:59: trailing whitespace. -+typedef struct {  -include/cameff/expert.h:60: trailing whitespace. -+ double hazard_evidence;  -include/cameff/expert.h:61: trailing whitespace. -+ double preparation_evidence;  -include/cameff/expert.h:62: trailing whitespace. -+ double cascade_evidence;  -include/cameff/expert.h:63: trailing whitespace. -+  -include/cameff/expert.h:64: trailing whitespace. -+ double fused_confidence;  -include/cameff/expert.h:65: trailing whitespace. -+ double expert_coverage;  -include/cameff/expert.h:66: trailing whitespace. -+  -include/cameff/expert.h:67: trailing whitespace. -+ cameff_pattern_id_t dominant_pattern;  -include/cameff/expert.h:68: trailing whitespace. -+ cameff_decision_level_t decision;  -include/cameff/expert.h:69: trailing whitespace. -+  -include/cameff/expert.h:70: trailing whitespace. -+ cameff_expert_result_t expert_results[CAMEFF_MAX_EXPERTS];  -include/cameff/expert.h:71: trailing whitespace. -+ size_t expert_result_count;  -include/cameff/expert.h:72: trailing whitespace. -+} cameff_multi_expert_result_t;  -include/cameff/expert.h:73: trailing whitespace. -+  -include/cameff/expert.h:74: trailing whitespace. -+#endif  -include/cameff/expert_registry.h:1: trailing whitespace. -+#ifndef CAMEFF_EXPERT_REGISTRY_H  -include/cameff/expert_registry.h:2: trailing whitespace. -+#define CAMEFF_EXPERT_REGISTRY_H  -include/cameff/expert_registry.h:3: trailing whitespace. -+  -include/cameff/expert_registry.h:4: trailing whitespace. -+#include   -include/cameff/expert_registry.h:5: trailing whitespace. -+  -include/cameff/expert_registry.h:6: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/expert_registry.h:7: trailing whitespace. -+  -include/cameff/expert_registry.h:8: trailing whitespace. -+typedef struct {  -include/cameff/expert_registry.h:9: trailing whitespace. -+ const cameff_expert_t *experts[CAMEFF_MAX_EXPERTS];  -include/cameff/expert_registry.h:10: trailing whitespace. -+ size_t count;  -include/cameff/expert_registry.h:11: trailing whitespace. -+} cameff_expert_registry_t;  -include/cameff/expert_registry.h:12: trailing whitespace. -+  -include/cameff/expert_registry.h:13: trailing whitespace. -+void cameff_expert_registry_init(  -include/cameff/expert_registry.h:14: trailing whitespace. -+ cameff_expert_registry_t *registry  -include/cameff/expert_registry.h:15: trailing whitespace. -+);  -include/cameff/expert_registry.h:16: trailing whitespace. -+  -include/cameff/expert_registry.h:17: trailing whitespace. -+cameff_status_t cameff_expert_registry_register(  -include/cameff/expert_registry.h:18: trailing whitespace. -+ cameff_expert_registry_t *registry,  -include/cameff/expert_registry.h:19: trailing whitespace. -+ const cameff_expert_t *expert  -include/cameff/expert_registry.h:20: trailing whitespace. -+);  -include/cameff/expert_registry.h:21: trailing whitespace. -+  -include/cameff/expert_registry.h:22: trailing whitespace. -+size_t cameff_expert_registry_count(  -include/cameff/expert_registry.h:23: trailing whitespace. -+ const cameff_expert_registry_t *registry  -include/cameff/expert_registry.h:24: trailing whitespace. -+);  -include/cameff/expert_registry.h:25: trailing whitespace. -+  -include/cameff/expert_registry.h:26: trailing whitespace. -+const cameff_expert_t *cameff_expert_registry_get(  -include/cameff/expert_registry.h:27: trailing whitespace. -+ const cameff_expert_registry_t *registry,  -include/cameff/expert_registry.h:28: trailing whitespace. -+ size_t index  -include/cameff/expert_registry.h:29: trailing whitespace. -+);  -include/cameff/expert_registry.h:30: trailing whitespace. -+  -include/cameff/expert_registry.h:31: trailing whitespace. -+double cameff_expert_routing_strength(  -include/cameff/expert_registry.h:32: trailing whitespace. -+ const cameff_expert_t *expert,  -include/cameff/expert_registry.h:33: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -include/cameff/expert_registry.h:34: trailing whitespace. -+ const cameff_region_profile_t *region,  -include/cameff/expert_registry.h:35: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -include/cameff/expert_registry.h:36: trailing whitespace. -+);  -include/cameff/expert_registry.h:37: trailing whitespace. -+  -include/cameff/expert_registry.h:38: trailing whitespace. -+cameff_status_t cameff_expert_registry_evaluate(  -include/cameff/expert_registry.h:39: trailing whitespace. -+ const cameff_expert_registry_t *registry,  -include/cameff/expert_registry.h:40: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -include/cameff/expert_registry.h:41: trailing whitespace. -+ const cameff_config_t *config,  -include/cameff/expert_registry.h:42: trailing whitespace. -+ const cameff_region_profile_t *region,  -include/cameff/expert_registry.h:43: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -include/cameff/expert_registry.h:44: trailing whitespace. -+ double routing_threshold,  -include/cameff/expert_registry.h:45: trailing whitespace. -+ cameff_expert_result_t *results,  -include/cameff/expert_registry.h:46: trailing whitespace. -+ size_t result_capacity,  -include/cameff/expert_registry.h:47: trailing whitespace. -+ size_t *result_count  -include/cameff/expert_registry.h:48: trailing whitespace. -+);  -include/cameff/expert_registry.h:49: trailing whitespace. -+  -include/cameff/fusion.h:1: trailing whitespace. -+#ifndef CAMEFF_FUSION_H  -include/cameff/fusion.h:2: trailing whitespace. -+#define CAMEFF_FUSION_H  -include/cameff/fusion.h:3: trailing whitespace. -+  -include/cameff/fusion.h:4: trailing whitespace. -+#include   -include/cameff/fusion.h:5: trailing whitespace. -+  -include/cameff/fusion.h:6: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/fusion.h:7: trailing whitespace. -+#include "cameff/pattern.h"  -include/cameff/fusion.h:8: trailing whitespace. -+  -include/cameff/fusion.h:9: trailing whitespace. -+cameff_status_t cameff_fuse_expert_results(  -include/cameff/fusion.h:10: trailing whitespace. -+ const cameff_expert_result_t *expert_results,  -include/cameff/fusion.h:11: trailing whitespace. -+ size_t expert_result_count,  -include/cameff/fusion.h:12: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -include/cameff/fusion.h:13: trailing whitespace. -+ double minimum_confidence,  -include/cameff/fusion.h:14: trailing whitespace. -+ double watch_threshold,  -include/cameff/fusion.h:15: trailing whitespace. -+ double elevated_threshold,  -include/cameff/fusion.h:16: trailing whitespace. -+ cameff_multi_expert_result_t *result  -include/cameff/fusion.h:17: trailing whitespace. -+);  -include/cameff/fusion.h:18: trailing whitespace. -+  -include/cameff/pattern.h:1: trailing whitespace. -+#ifndef CAMEFF_PATTERN_H  -include/cameff/pattern.h:2: trailing whitespace. -+#define CAMEFF_PATTERN_H  -include/cameff/pattern.h:3: trailing whitespace. -+  -include/cameff/pattern.h:4: trailing whitespace. -+#include   -include/cameff/pattern.h:5: trailing whitespace. -+  -include/cameff/pattern.h:6: trailing whitespace. -+#include "cameff/region.h"  -include/cameff/pattern.h:7: trailing whitespace. -+#include "cameff/types.h"  -include/cameff/pattern.h:8: trailing whitespace. -+  -include/cameff/pattern.h:9: trailing whitespace. -+#define CAMEFF_PATTERN_COUNT 7U  -include/cameff/pattern.h:10: trailing whitespace. -+  -include/cameff/pattern.h:11: trailing whitespace. -+typedef enum {  -include/cameff/pattern.h:12: trailing whitespace. -+ CAMEFF_PATTERN_BACKGROUND = 0,  -include/cameff/pattern.h:13: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION = 1,  -include/cameff/pattern.h:14: trailing whitespace. -+ CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION = 2,  -include/cameff/pattern.h:15: trailing whitespace. -+ CAMEFF_PATTERN_SEISMIC_CASCADE = 3,  -include/cameff/pattern.h:16: trailing whitespace. -+ CAMEFF_PATTERN_VOLCANIC_UNREST = 4,  -include/cameff/pattern.h:17: trailing whitespace. -+ CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY = 5,  -include/cameff/pattern.h:18: trailing whitespace. -+ CAMEFF_PATTERN_UNKNOWN = 6  -include/cameff/pattern.h:19: trailing whitespace. -+} cameff_pattern_id_t;  -include/cameff/pattern.h:20: trailing whitespace. -+  -include/cameff/pattern.h:21: trailing whitespace. -+typedef struct {  -include/cameff/pattern.h:22: trailing whitespace. -+ cameff_pattern_id_t pattern_id;  -include/cameff/pattern.h:23: trailing whitespace. -+ double membership;  -include/cameff/pattern.h:24: trailing whitespace. -+ double confidence;  -include/cameff/pattern.h:25: trailing whitespace. -+} cameff_pattern_score_t;  -include/cameff/pattern.h:26: trailing whitespace. -+  -include/cameff/pattern.h:27: trailing whitespace. -+typedef struct {  -include/cameff/pattern.h:28: trailing whitespace. -+ cameff_pattern_score_t scores[CAMEFF_PATTERN_COUNT];  -include/cameff/pattern.h:29: trailing whitespace. -+ size_t count;  -include/cameff/pattern.h:30: trailing whitespace. -+  -include/cameff/pattern.h:31: trailing whitespace. -+ double classification_confidence;  -include/cameff/pattern.h:32: trailing whitespace. -+ cameff_pattern_id_t dominant_pattern;  -include/cameff/pattern.h:33: trailing whitespace. -+} cameff_pattern_result_t;  -include/cameff/pattern.h:34: trailing whitespace. -+  -include/cameff/pattern.h:35: trailing whitespace. -+/*  -include/cameff/pattern.h:36: trailing whitespace. -+ * Produces deterministic compatibility memberships for the currently  -include/cameff/pattern.h:37: trailing whitespace. -+ * supported process-pattern families.  -include/cameff/pattern.h:38: trailing whitespace. -+ *  -include/cameff/pattern.h:39: trailing whitespace. -+ * Memberships are normalized and sum to approximately 1.0.  -include/cameff/pattern.h:40: trailing whitespace. -+ * They are not calibrated earthquake probabilities.  -include/cameff/pattern.h:41: trailing whitespace. -+ */  -include/cameff/pattern.h:42: trailing whitespace. -+cameff_status_t cameff_classify_patterns(  -include/cameff/pattern.h:43: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -include/cameff/pattern.h:44: trailing whitespace. -+ const cameff_region_profile_t *region,  -include/cameff/pattern.h:45: trailing whitespace. -+ cameff_pattern_result_t *result  -include/cameff/pattern.h:46: trailing whitespace. -+);  -include/cameff/pattern.h:47: trailing whitespace. -+  -include/cameff/pattern.h:48: trailing whitespace. -+const char *cameff_pattern_name(cameff_pattern_id_t pattern_id);  -include/cameff/pattern.h:49: trailing whitespace. -+  -include/cameff/region.h:1: trailing whitespace. -+#ifndef CAMEFF_REGION_H  -include/cameff/region.h:2: trailing whitespace. -+#define CAMEFF_REGION_H  -include/cameff/region.h:3: trailing whitespace. -+  -include/cameff/region.h:4: trailing whitespace. -+#define CAMEFF_MAX_REGION_ID 64U  -include/cameff/region.h:5: trailing whitespace. -+  -include/cameff/region.h:6: trailing whitespace. -+typedef enum {  -include/cameff/region.h:7: trailing whitespace. -+ CAMEFF_TECTONIC_UNKNOWN = 0,  -include/cameff/region.h:8: trailing whitespace. -+ CAMEFF_TECTONIC_SUBDUCTION = 1,  -include/cameff/region.h:9: trailing whitespace. -+ CAMEFF_TECTONIC_CRUSTAL = 2,  -include/cameff/region.h:10: trailing whitespace. -+ CAMEFF_TECTONIC_TRANSFORM = 3,  -include/cameff/region.h:11: trailing whitespace. -+ CAMEFF_TECTONIC_VOLCANIC = 4,  -include/cameff/region.h:12: trailing whitespace. -+ CAMEFF_TECTONIC_MIXED = 5  -include/cameff/region.h:13: trailing whitespace. -+} cameff_tectonic_setting_t;  -include/cameff/region.h:14: trailing whitespace. -+  -include/cameff/region.h:15: trailing whitespace. -+typedef struct {  -include/cameff/region.h:16: trailing whitespace. -+ char region_id[CAMEFF_MAX_REGION_ID];  -include/cameff/region.h:17: trailing whitespace. -+ cameff_tectonic_setting_t tectonic_setting;  -include/cameff/region.h:18: trailing whitespace. -+  -include/cameff/region.h:19: trailing whitespace. -+ double subduction_affinity;  -include/cameff/region.h:20: trailing whitespace. -+ double crustal_fault_affinity;  -include/cameff/region.h:21: trailing whitespace. -+ double transform_affinity;  -include/cameff/region.h:22: trailing whitespace. -+ double volcanic_affinity;  -include/cameff/region.h:23: trailing whitespace. -+  -include/cameff/region.h:24: trailing whitespace. -+ double fault_map_confidence;  -include/cameff/region.h:25: trailing whitespace. -+ double catalog_completeness;  -include/cameff/region.h:26: trailing whitespace. -+ double station_coverage;  -include/cameff/region.h:27: trailing whitespace. -+ double regional_prior_confidence;  -include/cameff/region.h:28: trailing whitespace. -+} cameff_region_profile_t;  -include/cameff/region.h:29: trailing whitespace. -+  -include/cameff/region.h:30: trailing whitespace. -+#endif  -include/cameff/subduction_expert.h:1: trailing whitespace. -+#ifndef CAMEFF_SUBDUCTION_EXPERT_H  -include/cameff/subduction_expert.h:2: trailing whitespace. -+#define CAMEFF_SUBDUCTION_EXPERT_H  -include/cameff/subduction_expert.h:3: trailing whitespace. -+  -include/cameff/subduction_expert.h:4: trailing whitespace. -+#include "cameff/expert.h"  -include/cameff/subduction_expert.h:5: trailing whitespace. -+  -include/cameff/subduction_expert.h:6: trailing whitespace. -+const cameff_expert_t *cameff_subduction_expert(void);  -include/cameff/subduction_expert.h:7: trailing whitespace. -+  -src/data/earthquake_catalog.c:1: trailing whitespace. -+#include "earthquake_catalog.h"  -src/data/earthquake_catalog.c:2: trailing whitespace. -+  -src/data/earthquake_catalog.c:3: trailing whitespace. -+#include   -src/data/earthquake_catalog.c:4: trailing whitespace. -+#include   -src/data/earthquake_catalog.c:5: trailing whitespace. -+#include   -src/data/earthquake_catalog.c:6: trailing whitespace. -+#include   -src/data/earthquake_catalog.c:7: trailing whitespace. -+#include   -src/data/earthquake_catalog.c:8: trailing whitespace. -+  -src/data/earthquake_catalog.c:9: trailing whitespace. -+#define CAMEFF_CATALOG_LINE_LENGTH 1024  -src/data/earthquake_catalog.c:10: trailing whitespace. -+#define CAMEFF_EXPECTED_HEADER \  -src/data/earthquake_catalog.c:11: trailing whitespace. -+ "time,latitude,longitude,depth,mag,region"  -src/data/earthquake_catalog.c:12: trailing whitespace. -+  -src/data/earthquake_catalog.c:13: trailing whitespace. -+static void trim_line_ending(char *text)  -src/data/earthquake_catalog.c:14: trailing whitespace. -+{  -src/data/earthquake_catalog.c:15: trailing whitespace. -+ size_t length;  -src/data/earthquake_catalog.c:16: trailing whitespace. -+  -src/data/earthquake_catalog.c:17: trailing whitespace. -+ if (text == NULL)  -src/data/earthquake_catalog.c:18: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:19: trailing whitespace. -+ return;  -src/data/earthquake_catalog.c:20: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:21: trailing whitespace. -+  -src/data/earthquake_catalog.c:22: trailing whitespace. -+ length = strlen(text);  -src/data/earthquake_catalog.c:23: trailing whitespace. -+  -src/data/earthquake_catalog.c:24: trailing whitespace. -+ while (length > 0 &&  -src/data/earthquake_catalog.c:25: trailing whitespace. -+ (text[length - 1] == '\n' ||  -src/data/earthquake_catalog.c:26: trailing whitespace. -+ text[length - 1] == '\r'))  -src/data/earthquake_catalog.c:27: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:28: trailing whitespace. -+ text[length - 1] = '\0';  -src/data/earthquake_catalog.c:29: trailing whitespace. -+ length--;  -src/data/earthquake_catalog.c:30: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:31: trailing whitespace. -+}  -src/data/earthquake_catalog.c:32: trailing whitespace. -+  -src/data/earthquake_catalog.c:33: trailing whitespace. -+static char *trim_whitespace(char *text)  -src/data/earthquake_catalog.c:34: trailing whitespace. -+{  -src/data/earthquake_catalog.c:35: trailing whitespace. -+ char *end;  -src/data/earthquake_catalog.c:36: trailing whitespace. -+  -src/data/earthquake_catalog.c:37: trailing whitespace. -+ if (text == NULL)  -src/data/earthquake_catalog.c:38: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:39: trailing whitespace. -+ return NULL;  -src/data/earthquake_catalog.c:40: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:41: trailing whitespace. -+  -src/data/earthquake_catalog.c:42: trailing whitespace. -+ while (isspace((unsigned char)*text))  -src/data/earthquake_catalog.c:43: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:44: trailing whitespace. -+ text++;  -src/data/earthquake_catalog.c:45: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:46: trailing whitespace. -+  -src/data/earthquake_catalog.c:47: trailing whitespace. -+ if (*text == '\0')  -src/data/earthquake_catalog.c:48: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:49: trailing whitespace. -+ return text;  -src/data/earthquake_catalog.c:50: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:51: trailing whitespace. -+  -src/data/earthquake_catalog.c:52: trailing whitespace. -+ end = text + strlen(text) - 1;  -src/data/earthquake_catalog.c:53: trailing whitespace. -+  -src/data/earthquake_catalog.c:54: trailing whitespace. -+ while (end > text &&  -src/data/earthquake_catalog.c:55: trailing whitespace. -+ isspace((unsigned char)*end))  -src/data/earthquake_catalog.c:56: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:57: trailing whitespace. -+ *end = '\0';  -src/data/earthquake_catalog.c:58: trailing whitespace. -+ end--;  -src/data/earthquake_catalog.c:59: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:60: trailing whitespace. -+  -src/data/earthquake_catalog.c:61: trailing whitespace. -+ return text;  -src/data/earthquake_catalog.c:62: trailing whitespace. -+}  -src/data/earthquake_catalog.c:63: trailing whitespace. -+  -src/data/earthquake_catalog.c:64: trailing whitespace. -+static char *remove_optional_quotes(  -src/data/earthquake_catalog.c:65: trailing whitespace. -+ char *text  -src/data/earthquake_catalog.c:66: trailing whitespace. -+)  -src/data/earthquake_catalog.c:67: trailing whitespace. -+{  -src/data/earthquake_catalog.c:68: trailing whitespace. -+ size_t length;  -src/data/earthquake_catalog.c:69: trailing whitespace. -+  -src/data/earthquake_catalog.c:70: trailing whitespace. -+ if (text == NULL)  -src/data/earthquake_catalog.c:71: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:72: trailing whitespace. -+ return NULL;  -src/data/earthquake_catalog.c:73: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:74: trailing whitespace. -+  -src/data/earthquake_catalog.c:75: trailing whitespace. -+ length = strlen(text);  -src/data/earthquake_catalog.c:76: trailing whitespace. -+  -src/data/earthquake_catalog.c:77: trailing whitespace. -+ if (length >= 2U &&  -src/data/earthquake_catalog.c:78: trailing whitespace. -+ text[0] == '"' &&  -src/data/earthquake_catalog.c:79: trailing whitespace. -+ text[length - 1U] == '"')  -src/data/earthquake_catalog.c:80: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:81: trailing whitespace. -+ text[length - 1U] = '\0';  -src/data/earthquake_catalog.c:82: trailing whitespace. -+ text++;  -src/data/earthquake_catalog.c:83: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:84: trailing whitespace. -+  -src/data/earthquake_catalog.c:85: trailing whitespace. -+ return text;  -src/data/earthquake_catalog.c:86: trailing whitespace. -+}  -src/data/earthquake_catalog.c:87: trailing whitespace. -+  -src/data/earthquake_catalog.c:88: trailing whitespace. -+static int parse_double_field(  -src/data/earthquake_catalog.c:89: trailing whitespace. -+ const char *text,  -src/data/earthquake_catalog.c:90: trailing whitespace. -+ double *value  -src/data/earthquake_catalog.c:91: trailing whitespace. -+)  -src/data/earthquake_catalog.c:92: trailing whitespace. -+{  -src/data/earthquake_catalog.c:93: trailing whitespace. -+ char *end;  -src/data/earthquake_catalog.c:94: trailing whitespace. -+ double parsed;  -src/data/earthquake_catalog.c:95: trailing whitespace. -+  -src/data/earthquake_catalog.c:96: trailing whitespace. -+ if (text == NULL || value == NULL)  -src/data/earthquake_catalog.c:97: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:98: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:99: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:100: trailing whitespace. -+  -src/data/earthquake_catalog.c:101: trailing whitespace. -+ errno = 0;  -src/data/earthquake_catalog.c:102: trailing whitespace. -+ end = NULL;  -src/data/earthquake_catalog.c:103: trailing whitespace. -+  -src/data/earthquake_catalog.c:104: trailing whitespace. -+ parsed = strtod(text, &end);  -src/data/earthquake_catalog.c:105: trailing whitespace. -+  -src/data/earthquake_catalog.c:106: trailing whitespace. -+ if (errno != 0 || end == text)  -src/data/earthquake_catalog.c:107: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:108: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:109: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:110: trailing whitespace. -+  -src/data/earthquake_catalog.c:111: trailing whitespace. -+ while (isspace((unsigned char)*end))  -src/data/earthquake_catalog.c:112: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:113: trailing whitespace. -+ end++;  -src/data/earthquake_catalog.c:114: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:115: trailing whitespace. -+  -src/data/earthquake_catalog.c:116: trailing whitespace. -+ if (*end != '\0')  -src/data/earthquake_catalog.c:117: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:118: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:119: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:120: trailing whitespace. -+  -src/data/earthquake_catalog.c:121: trailing whitespace. -+ *value = parsed;  -src/data/earthquake_catalog.c:122: trailing whitespace. -+  -src/data/earthquake_catalog.c:123: trailing whitespace. -+ return 1;  -src/data/earthquake_catalog.c:124: trailing whitespace. -+}  -src/data/earthquake_catalog.c:125: trailing whitespace. -+  -src/data/earthquake_catalog.c:126: trailing whitespace. -+/*  -src/data/earthquake_catalog.c:127: trailing whitespace. -+ * Converts a civil UTC date to Unix epoch days.  -src/data/earthquake_catalog.c:128: trailing whitespace. -+ *  -src/data/earthquake_catalog.c:129: trailing whitespace. -+ * Based on the Gregorian civil-calendar conversion algorithm.  -src/data/earthquake_catalog.c:130: trailing whitespace. -+ * This avoids relying on the non-standard timegm() function.  -src/data/earthquake_catalog.c:131: trailing whitespace. -+ */  -src/data/earthquake_catalog.c:132: trailing whitespace. -+static long long days_from_civil(  -src/data/earthquake_catalog.c:133: trailing whitespace. -+ int year,  -src/data/earthquake_catalog.c:134: trailing whitespace. -+ unsigned month,  -src/data/earthquake_catalog.c:135: trailing whitespace. -+ unsigned day  -src/data/earthquake_catalog.c:136: trailing whitespace. -+)  -src/data/earthquake_catalog.c:137: trailing whitespace. -+{  -src/data/earthquake_catalog.c:138: trailing whitespace. -+ int era;  -src/data/earthquake_catalog.c:139: trailing whitespace. -+ unsigned year_of_era;  -src/data/earthquake_catalog.c:140: trailing whitespace. -+ unsigned day_of_year;  -src/data/earthquake_catalog.c:141: trailing whitespace. -+ unsigned day_of_era;  -src/data/earthquake_catalog.c:142: trailing whitespace. -+  -src/data/earthquake_catalog.c:143: trailing whitespace. -+ year -= month <= 2;  -src/data/earthquake_catalog.c:144: trailing whitespace. -+  -src/data/earthquake_catalog.c:145: trailing whitespace. -+ era = year >= 0  -src/data/earthquake_catalog.c:146: trailing whitespace. -+ ? year / 400  -src/data/earthquake_catalog.c:147: trailing whitespace. -+ : (year - 399) / 400;  -src/data/earthquake_catalog.c:148: trailing whitespace. -+  -src/data/earthquake_catalog.c:149: trailing whitespace. -+ year_of_era =  -src/data/earthquake_catalog.c:150: trailing whitespace. -+ (unsigned)(year - era * 400);  -src/data/earthquake_catalog.c:151: trailing whitespace. -+  -src/data/earthquake_catalog.c:152: trailing whitespace. -+ day_of_year =  -src/data/earthquake_catalog.c:153: trailing whitespace. -+ (153U * (month + (month > 2 ? -3 : 9)) + 2U) /  -src/data/earthquake_catalog.c:154: trailing whitespace. -+ 5U +  -src/data/earthquake_catalog.c:155: trailing whitespace. -+ day -  -src/data/earthquake_catalog.c:156: trailing whitespace. -+ 1U;  -src/data/earthquake_catalog.c:157: trailing whitespace. -+  -src/data/earthquake_catalog.c:158: trailing whitespace. -+ day_of_era =  -src/data/earthquake_catalog.c:159: trailing whitespace. -+ year_of_era * 365U +  -src/data/earthquake_catalog.c:160: trailing whitespace. -+ year_of_era / 4U -  -src/data/earthquake_catalog.c:161: trailing whitespace. -+ year_of_era / 100U +  -src/data/earthquake_catalog.c:162: trailing whitespace. -+ day_of_year;  -src/data/earthquake_catalog.c:163: trailing whitespace. -+  -src/data/earthquake_catalog.c:164: trailing whitespace. -+ return  -src/data/earthquake_catalog.c:165: trailing whitespace. -+ (long long)era * 146097LL +  -src/data/earthquake_catalog.c:166: trailing whitespace. -+ (long long)day_of_era -  -src/data/earthquake_catalog.c:167: trailing whitespace. -+ 719468LL;  -src/data/earthquake_catalog.c:168: trailing whitespace. -+}  -src/data/earthquake_catalog.c:169: trailing whitespace. -+  -src/data/earthquake_catalog.c:170: trailing whitespace. -+static int parse_utc_timestamp(  -src/data/earthquake_catalog.c:171: trailing whitespace. -+ const char *text,  -src/data/earthquake_catalog.c:172: trailing whitespace. -+ time_t *timestamp  -src/data/earthquake_catalog.c:173: trailing whitespace. -+)  -src/data/earthquake_catalog.c:174: trailing whitespace. -+{  -src/data/earthquake_catalog.c:175: trailing whitespace. -+ int year;  -src/data/earthquake_catalog.c:176: trailing whitespace. -+ unsigned month;  -src/data/earthquake_catalog.c:177: trailing whitespace. -+ unsigned day;  -src/data/earthquake_catalog.c:178: trailing whitespace. -+ unsigned hour;  -src/data/earthquake_catalog.c:179: trailing whitespace. -+ unsigned minute;  -src/data/earthquake_catalog.c:180: trailing whitespace. -+ unsigned second;  -src/data/earthquake_catalog.c:181: trailing whitespace. -+  -src/data/earthquake_catalog.c:182: trailing whitespace. -+ int consumed;  -src/data/earthquake_catalog.c:183: trailing whitespace. -+ const char *suffix;  -src/data/earthquake_catalog.c:184: trailing whitespace. -+  -src/data/earthquake_catalog.c:185: trailing whitespace. -+ long long days;  -src/data/earthquake_catalog.c:186: trailing whitespace. -+ long long seconds;  -src/data/earthquake_catalog.c:187: trailing whitespace. -+  -src/data/earthquake_catalog.c:188: trailing whitespace. -+ if (text == NULL || timestamp == NULL)  -src/data/earthquake_catalog.c:189: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:190: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:191: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:192: trailing whitespace. -+  -src/data/earthquake_catalog.c:193: trailing whitespace. -+ consumed = 0;  -src/data/earthquake_catalog.c:194: trailing whitespace. -+  -src/data/earthquake_catalog.c:195: trailing whitespace. -+ if (sscanf(  -src/data/earthquake_catalog.c:196: trailing whitespace. -+ text,  -src/data/earthquake_catalog.c:197: trailing whitespace. -+ "%d-%u-%uT%u:%u:%u%n",  -src/data/earthquake_catalog.c:198: trailing whitespace. -+ &year,  -src/data/earthquake_catalog.c:199: trailing whitespace. -+ &month,  -src/data/earthquake_catalog.c:200: trailing whitespace. -+ &day,  -src/data/earthquake_catalog.c:201: trailing whitespace. -+ &hour,  -src/data/earthquake_catalog.c:202: trailing whitespace. -+ &minute,  -src/data/earthquake_catalog.c:203: trailing whitespace. -+ &second,  -src/data/earthquake_catalog.c:204: trailing whitespace. -+ &consumed  -src/data/earthquake_catalog.c:205: trailing whitespace. -+ ) != 6)  -src/data/earthquake_catalog.c:206: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:207: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:208: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:209: trailing whitespace. -+  -src/data/earthquake_catalog.c:210: trailing whitespace. -+ suffix = text + consumed;  -src/data/earthquake_catalog.c:211: trailing whitespace. -+  -src/data/earthquake_catalog.c:212: trailing whitespace. -+ /*  -src/data/earthquake_catalog.c:213: trailing whitespace. -+ * Accept either:  -src/data/earthquake_catalog.c:214: trailing whitespace. -+ *  -src/data/earthquake_catalog.c:215: trailing whitespace. -+ * YYYY-MM-DDTHH:MM:SSZ  -src/data/earthquake_catalog.c:216: trailing whitespace. -+ *  -src/data/earthquake_catalog.c:217: trailing whitespace. -+ * or:  -src/data/earthquake_catalog.c:218: trailing whitespace. -+ *  -src/data/earthquake_catalog.c:219: trailing whitespace. -+ * YYYY-MM-DDTHH:MM:SS.sssZ  -src/data/earthquake_catalog.c:220: trailing whitespace. -+ */  -src/data/earthquake_catalog.c:221: trailing whitespace. -+ if (*suffix == '.')  -src/data/earthquake_catalog.c:222: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:223: trailing whitespace. -+ suffix++;  -src/data/earthquake_catalog.c:224: trailing whitespace. -+  -src/data/earthquake_catalog.c:225: trailing whitespace. -+ if (!isdigit((unsigned char)*suffix))  -src/data/earthquake_catalog.c:226: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:227: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:228: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:229: trailing whitespace. -+  -src/data/earthquake_catalog.c:230: trailing whitespace. -+ while (isdigit((unsigned char)*suffix))  -src/data/earthquake_catalog.c:231: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:232: trailing whitespace. -+ suffix++;  -src/data/earthquake_catalog.c:233: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:234: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:235: trailing whitespace. -+  -src/data/earthquake_catalog.c:236: trailing whitespace. -+ if (suffix[0] != 'Z' ||  -src/data/earthquake_catalog.c:237: trailing whitespace. -+ suffix[1] != '\0')  -src/data/earthquake_catalog.c:238: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:239: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:240: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:241: trailing whitespace. -+  -src/data/earthquake_catalog.c:242: trailing whitespace. -+ if (month < 1U || month > 12U ||  -src/data/earthquake_catalog.c:243: trailing whitespace. -+ day < 1U || day > 31U ||  -src/data/earthquake_catalog.c:244: trailing whitespace. -+ hour > 23U ||  -src/data/earthquake_catalog.c:245: trailing whitespace. -+ minute > 59U ||  -src/data/earthquake_catalog.c:246: trailing whitespace. -+ second > 60U)  -src/data/earthquake_catalog.c:247: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:248: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:249: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:250: trailing whitespace. -+  -src/data/earthquake_catalog.c:251: trailing whitespace. -+ days = days_from_civil(  -src/data/earthquake_catalog.c:252: trailing whitespace. -+ year,  -src/data/earthquake_catalog.c:253: trailing whitespace. -+ month,  -src/data/earthquake_catalog.c:254: trailing whitespace. -+ day  -src/data/earthquake_catalog.c:255: trailing whitespace. -+ );  -src/data/earthquake_catalog.c:256: trailing whitespace. -+  -src/data/earthquake_catalog.c:257: trailing whitespace. -+ seconds =  -src/data/earthquake_catalog.c:258: trailing whitespace. -+ days * 86400LL +  -src/data/earthquake_catalog.c:259: trailing whitespace. -+ (long long)hour * 3600LL +  -src/data/earthquake_catalog.c:260: trailing whitespace. -+ (long long)minute * 60LL +  -src/data/earthquake_catalog.c:261: trailing whitespace. -+ (long long)second;  -src/data/earthquake_catalog.c:262: trailing whitespace. -+  -src/data/earthquake_catalog.c:263: trailing whitespace. -+ *timestamp = (time_t)seconds;  -src/data/earthquake_catalog.c:264: trailing whitespace. -+  -src/data/earthquake_catalog.c:265: trailing whitespace. -+ return 1;  -src/data/earthquake_catalog.c:266: trailing whitespace. -+}  -src/data/earthquake_catalog.c:267: trailing whitespace. -+  -src/data/earthquake_catalog.c:268: trailing whitespace. -+static int parse_catalog_row(  -src/data/earthquake_catalog.c:269: trailing whitespace. -+ char *line,  -src/data/earthquake_catalog.c:270: trailing whitespace. -+ EarthquakeEvent *event  -src/data/earthquake_catalog.c:271: trailing whitespace. -+)  -src/data/earthquake_catalog.c:272: trailing whitespace. -+{  -src/data/earthquake_catalog.c:273: trailing whitespace. -+ char *fields[6];  -src/data/earthquake_catalog.c:274: trailing whitespace. -+ char *cursor;  -src/data/earthquake_catalog.c:275: trailing whitespace. -+ char *separator;  -src/data/earthquake_catalog.c:276: trailing whitespace. -+ size_t index;  -src/data/earthquake_catalog.c:277: trailing whitespace. -+  -src/data/earthquake_catalog.c:278: trailing whitespace. -+ if (line == NULL || event == NULL)  -src/data/earthquake_catalog.c:279: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:280: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:281: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:282: trailing whitespace. -+  -src/data/earthquake_catalog.c:283: trailing whitespace. -+ /*  -src/data/earthquake_catalog.c:284: trailing whitespace. -+ * Split only the first five commas.  -src/data/earthquake_catalog.c:285: trailing whitespace. -+ *  -src/data/earthquake_catalog.c:286: trailing whitespace. -+ * The sixth field, region, may itself contain commas.  -src/data/earthquake_catalog.c:287: trailing whitespace. -+ */  -src/data/earthquake_catalog.c:288: trailing whitespace. -+ cursor = line;  -src/data/earthquake_catalog.c:289: trailing whitespace. -+  -src/data/earthquake_catalog.c:290: trailing whitespace. -+ for (index = 0; index < 5; index++)  -src/data/earthquake_catalog.c:291: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:292: trailing whitespace. -+ fields[index] = cursor;  -src/data/earthquake_catalog.c:293: trailing whitespace. -+  -src/data/earthquake_catalog.c:294: trailing whitespace. -+ separator = strchr(cursor, ',');  -src/data/earthquake_catalog.c:295: trailing whitespace. -+  -src/data/earthquake_catalog.c:296: trailing whitespace. -+ if (separator == NULL)  -src/data/earthquake_catalog.c:297: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:298: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:299: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:300: trailing whitespace. -+  -src/data/earthquake_catalog.c:301: trailing whitespace. -+ *separator = '\0';  -src/data/earthquake_catalog.c:302: trailing whitespace. -+ cursor = separator + 1;  -src/data/earthquake_catalog.c:303: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:304: trailing whitespace. -+  -src/data/earthquake_catalog.c:305: trailing whitespace. -+ fields[5] = cursor;  -src/data/earthquake_catalog.c:306: trailing whitespace. -+  -src/data/earthquake_catalog.c:307: trailing whitespace. -+ for (index = 0U; index < 6U; index++)  -src/data/earthquake_catalog.c:308: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:309: trailing whitespace. -+ fields[index] =  -src/data/earthquake_catalog.c:310: trailing whitespace. -+ trim_whitespace(fields[index]);  -src/data/earthquake_catalog.c:311: trailing whitespace. -+  -src/data/earthquake_catalog.c:312: trailing whitespace. -+ fields[index] =  -src/data/earthquake_catalog.c:313: trailing whitespace. -+ remove_optional_quotes(fields[index]);  -src/data/earthquake_catalog.c:314: trailing whitespace. -+  -src/data/earthquake_catalog.c:315: trailing whitespace. -+ if (fields[index] == NULL ||  -src/data/earthquake_catalog.c:316: trailing whitespace. -+ fields[index][0] == '\0')  -src/data/earthquake_catalog.c:317: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:318: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:319: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:320: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:321: trailing whitespace. -+  -src/data/earthquake_catalog.c:322: trailing whitespace. -+ initialize_earthquake_event(event);  -src/data/earthquake_catalog.c:323: trailing whitespace. -+  -src/data/earthquake_catalog.c:324: trailing whitespace. -+ if (!parse_utc_timestamp(  -src/data/earthquake_catalog.c:325: trailing whitespace. -+ fields[0],  -src/data/earthquake_catalog.c:326: trailing whitespace. -+ &event->timestamp))  -src/data/earthquake_catalog.c:327: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:328: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:329: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:330: trailing whitespace. -+  -src/data/earthquake_catalog.c:331: trailing whitespace. -+ if (!parse_double_field(  -src/data/earthquake_catalog.c:332: trailing whitespace. -+ fields[1],  -src/data/earthquake_catalog.c:333: trailing whitespace. -+ &event->latitude))  -src/data/earthquake_catalog.c:334: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:335: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:336: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:337: trailing whitespace. -+  -src/data/earthquake_catalog.c:338: trailing whitespace. -+ if (!parse_double_field(  -src/data/earthquake_catalog.c:339: trailing whitespace. -+ fields[2],  -src/data/earthquake_catalog.c:340: trailing whitespace. -+ &event->longitude))  -src/data/earthquake_catalog.c:341: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:342: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:343: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:344: trailing whitespace. -+  -src/data/earthquake_catalog.c:345: trailing whitespace. -+ if (!parse_double_field(  -src/data/earthquake_catalog.c:346: trailing whitespace. -+ fields[3],  -src/data/earthquake_catalog.c:347: trailing whitespace. -+ &event->depth_km))  -src/data/earthquake_catalog.c:348: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:349: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:350: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:351: trailing whitespace. -+  -src/data/earthquake_catalog.c:352: trailing whitespace. -+ if (!parse_double_field(  -src/data/earthquake_catalog.c:353: trailing whitespace. -+ fields[4],  -src/data/earthquake_catalog.c:354: trailing whitespace. -+ &event->magnitude))  -src/data/earthquake_catalog.c:355: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:356: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:357: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:358: trailing whitespace. -+  -src/data/earthquake_catalog.c:359: trailing whitespace. -+ if (event->latitude < -90.0 ||  -src/data/earthquake_catalog.c:360: trailing whitespace. -+ event->latitude > 90.0)  -src/data/earthquake_catalog.c:361: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:362: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:363: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:364: trailing whitespace. -+  -src/data/earthquake_catalog.c:365: trailing whitespace. -+ if (event->longitude < -180.0 ||  -src/data/earthquake_catalog.c:366: trailing whitespace. -+ event->longitude > 180.0)  -src/data/earthquake_catalog.c:367: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:368: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:369: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:370: trailing whitespace. -+  -src/data/earthquake_catalog.c:371: trailing whitespace. -+ if (event->depth_km < 0.0)  -src/data/earthquake_catalog.c:372: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:373: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:374: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:375: trailing whitespace. -+  -src/data/earthquake_catalog.c:376: trailing whitespace. -+ if (event->magnitude < -2.0 ||  -src/data/earthquake_catalog.c:377: trailing whitespace. -+ event->magnitude > 10.5)  -src/data/earthquake_catalog.c:378: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:379: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:380: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:381: trailing whitespace. -+  -src/data/earthquake_catalog.c:382: trailing whitespace. -+ if (strlen(fields[5]) >= sizeof(event->region))  -src/data/earthquake_catalog.c:383: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:384: trailing whitespace. -+ return 0;  -src/data/earthquake_catalog.c:385: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:386: trailing whitespace. -+  -src/data/earthquake_catalog.c:387: trailing whitespace. -+ memcpy(  -src/data/earthquake_catalog.c:388: trailing whitespace. -+ event->region,  -src/data/earthquake_catalog.c:389: trailing whitespace. -+ fields[5],  -src/data/earthquake_catalog.c:390: trailing whitespace. -+ strlen(fields[5]) + 1  -src/data/earthquake_catalog.c:391: trailing whitespace. -+ );  -src/data/earthquake_catalog.c:392: trailing whitespace. -+  -src/data/earthquake_catalog.c:393: trailing whitespace. -+ return 1;  -src/data/earthquake_catalog.c:394: trailing whitespace. -+}  -src/data/earthquake_catalog.c:395: trailing whitespace. -+  -src/data/earthquake_catalog.c:396: trailing whitespace. -+void catalog_initialize(  -src/data/earthquake_catalog.c:397: trailing whitespace. -+ EarthquakeCatalog *catalog  -src/data/earthquake_catalog.c:398: trailing whitespace. -+)  -src/data/earthquake_catalog.c:399: trailing whitespace. -+{  -src/data/earthquake_catalog.c:400: trailing whitespace. -+ if (catalog == NULL)  -src/data/earthquake_catalog.c:401: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:402: trailing whitespace. -+ return;  -src/data/earthquake_catalog.c:403: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:404: trailing whitespace. -+  -src/data/earthquake_catalog.c:405: trailing whitespace. -+ catalog->count = 0;  -src/data/earthquake_catalog.c:406: trailing whitespace. -+}  -src/data/earthquake_catalog.c:407: trailing whitespace. -+  -src/data/earthquake_catalog.c:408: trailing whitespace. -+int catalog_load_csv(  -src/data/earthquake_catalog.c:409: trailing whitespace. -+ const char *filename,  -src/data/earthquake_catalog.c:410: trailing whitespace. -+ EarthquakeCatalog *catalog  -src/data/earthquake_catalog.c:411: trailing whitespace. -+)  -src/data/earthquake_catalog.c:412: trailing whitespace. -+{  -src/data/earthquake_catalog.c:413: trailing whitespace. -+ FILE *file;  -src/data/earthquake_catalog.c:414: trailing whitespace. -+ char line[CAMEFF_CATALOG_LINE_LENGTH];  -src/data/earthquake_catalog.c:415: trailing whitespace. -+  -src/data/earthquake_catalog.c:416: trailing whitespace. -+ if (filename == NULL || catalog == NULL)  -src/data/earthquake_catalog.c:417: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:418: trailing whitespace. -+ return CAMEFF_CATALOG_INVALID_ARGUMENT;  -src/data/earthquake_catalog.c:419: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:420: trailing whitespace. -+  -src/data/earthquake_catalog.c:421: trailing whitespace. -+ catalog_initialize(catalog);  -src/data/earthquake_catalog.c:422: trailing whitespace. -+  -src/data/earthquake_catalog.c:423: trailing whitespace. -+ file = fopen(filename, "r");  -src/data/earthquake_catalog.c:424: trailing whitespace. -+  -src/data/earthquake_catalog.c:425: trailing whitespace. -+ if (file == NULL)  -src/data/earthquake_catalog.c:426: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:427: trailing whitespace. -+ return CAMEFF_CATALOG_OPEN_FAILED;  -src/data/earthquake_catalog.c:428: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:429: trailing whitespace. -+  -src/data/earthquake_catalog.c:430: trailing whitespace. -+ if (fgets(line, sizeof(line), file) == NULL)  -src/data/earthquake_catalog.c:431: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:432: trailing whitespace. -+ fclose(file);  -src/data/earthquake_catalog.c:433: trailing whitespace. -+ return CAMEFF_CATALOG_EMPTY_FILE;  -src/data/earthquake_catalog.c:434: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:435: trailing whitespace. -+  -src/data/earthquake_catalog.c:436: trailing whitespace. -+ trim_line_ending(line);  -src/data/earthquake_catalog.c:437: trailing whitespace. -+  -src/data/earthquake_catalog.c:438: trailing whitespace. -+ if (strcmp(line, CAMEFF_EXPECTED_HEADER) != 0)  -src/data/earthquake_catalog.c:439: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:440: trailing whitespace. -+ fclose(file);  -src/data/earthquake_catalog.c:441: trailing whitespace. -+ return CAMEFF_CATALOG_INVALID_HEADER;  -src/data/earthquake_catalog.c:442: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:443: trailing whitespace. -+  -src/data/earthquake_catalog.c:444: trailing whitespace. -+ while (fgets(line, sizeof(line), file) != NULL)  -src/data/earthquake_catalog.c:445: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:446: trailing whitespace. -+ EarthquakeEvent event;  -src/data/earthquake_catalog.c:447: trailing whitespace. -+ char *trimmed;  -src/data/earthquake_catalog.c:448: trailing whitespace. -+  -src/data/earthquake_catalog.c:449: trailing whitespace. -+ trim_line_ending(line);  -src/data/earthquake_catalog.c:450: trailing whitespace. -+ trimmed = trim_whitespace(line);  -src/data/earthquake_catalog.c:451: trailing whitespace. -+  -src/data/earthquake_catalog.c:452: trailing whitespace. -+ /*  -src/data/earthquake_catalog.c:453: trailing whitespace. -+ * Empty lines are harmless and are skipped.  -src/data/earthquake_catalog.c:454: trailing whitespace. -+ */  -src/data/earthquake_catalog.c:455: trailing whitespace. -+ if (trimmed[0] == '\0')  -src/data/earthquake_catalog.c:456: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:457: trailing whitespace. -+ continue;  -src/data/earthquake_catalog.c:458: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:459: trailing whitespace. -+  -src/data/earthquake_catalog.c:460: trailing whitespace. -+ if (catalog->count >=  -src/data/earthquake_catalog.c:461: trailing whitespace. -+ CAMEFF_CATALOG_MAX_EVENTS)  -src/data/earthquake_catalog.c:462: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:463: trailing whitespace. -+ fclose(file);  -src/data/earthquake_catalog.c:464: trailing whitespace. -+ return CAMEFF_CATALOG_CAPACITY_EXCEEDED;  -src/data/earthquake_catalog.c:465: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:466: trailing whitespace. -+  -src/data/earthquake_catalog.c:467: trailing whitespace. -+ if (!parse_catalog_row(trimmed, &event))  -src/data/earthquake_catalog.c:468: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:469: trailing whitespace. -+ fclose(file);  -src/data/earthquake_catalog.c:470: trailing whitespace. -+ catalog_initialize(catalog);  -src/data/earthquake_catalog.c:471: trailing whitespace. -+  -src/data/earthquake_catalog.c:472: trailing whitespace. -+ return CAMEFF_CATALOG_INVALID_ROW;  -src/data/earthquake_catalog.c:473: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:474: trailing whitespace. -+  -src/data/earthquake_catalog.c:475: trailing whitespace. -+ catalog->events[catalog->count] = event;  -src/data/earthquake_catalog.c:476: trailing whitespace. -+ catalog->count++;  -src/data/earthquake_catalog.c:477: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:478: trailing whitespace. -+  -src/data/earthquake_catalog.c:479: trailing whitespace. -+ if (ferror(file))  -src/data/earthquake_catalog.c:480: trailing whitespace. -+ {  -src/data/earthquake_catalog.c:481: trailing whitespace. -+ fclose(file);  -src/data/earthquake_catalog.c:482: trailing whitespace. -+ catalog_initialize(catalog);  -src/data/earthquake_catalog.c:483: trailing whitespace. -+  -src/data/earthquake_catalog.c:484: trailing whitespace. -+ return CAMEFF_CATALOG_INVALID_ROW;  -src/data/earthquake_catalog.c:485: trailing whitespace. -+ }  -src/data/earthquake_catalog.c:486: trailing whitespace. -+  -src/data/earthquake_catalog.c:487: trailing whitespace. -+ fclose(file);  -src/data/earthquake_catalog.c:488: trailing whitespace. -+  -src/data/earthquake_catalog.c:489: trailing whitespace. -+ return CAMEFF_CATALOG_OK;  -src/data/earthquake_catalog.h:1: trailing whitespace. -+#ifndef EARTHQUAKE_CATALOG_H  -src/data/earthquake_catalog.h:2: trailing whitespace. -+#define EARTHQUAKE_CATALOG_H  -src/data/earthquake_catalog.h:3: trailing whitespace. -+  -src/data/earthquake_catalog.h:4: trailing whitespace. -+#include "earthquake_event.h"  -src/data/earthquake_catalog.h:5: trailing whitespace. -+  -src/data/earthquake_catalog.h:6: trailing whitespace. -+#include   -src/data/earthquake_catalog.h:7: trailing whitespace. -+  -src/data/earthquake_catalog.h:8: trailing whitespace. -+#define CAMEFF_CATALOG_MAX_EVENTS 10000  -src/data/earthquake_catalog.h:9: trailing whitespace. -+  -src/data/earthquake_catalog.h:10: trailing whitespace. -+typedef enum  -src/data/earthquake_catalog.h:11: trailing whitespace. -+{  -src/data/earthquake_catalog.h:12: trailing whitespace. -+ CAMEFF_CATALOG_OK = 0,  -src/data/earthquake_catalog.h:13: trailing whitespace. -+ CAMEFF_CATALOG_INVALID_ARGUMENT = -1,  -src/data/earthquake_catalog.h:14: trailing whitespace. -+ CAMEFF_CATALOG_OPEN_FAILED = -2,  -src/data/earthquake_catalog.h:15: trailing whitespace. -+ CAMEFF_CATALOG_EMPTY_FILE = -3,  -src/data/earthquake_catalog.h:16: trailing whitespace. -+ CAMEFF_CATALOG_INVALID_HEADER = -4,  -src/data/earthquake_catalog.h:17: trailing whitespace. -+ CAMEFF_CATALOG_INVALID_ROW = -5,  -src/data/earthquake_catalog.h:18: trailing whitespace. -+ CAMEFF_CATALOG_CAPACITY_EXCEEDED = -6  -src/data/earthquake_catalog.h:19: trailing whitespace. -+} CameffCatalogStatus;  -src/data/earthquake_catalog.h:20: trailing whitespace. -+  -src/data/earthquake_catalog.h:21: trailing whitespace. -+typedef struct  -src/data/earthquake_catalog.h:22: trailing whitespace. -+{  -src/data/earthquake_catalog.h:23: trailing whitespace. -+ EarthquakeEvent events[CAMEFF_CATALOG_MAX_EVENTS];  -src/data/earthquake_catalog.h:24: trailing whitespace. -+ size_t count;  -src/data/earthquake_catalog.h:25: trailing whitespace. -+} EarthquakeCatalog;  -src/data/earthquake_catalog.h:26: trailing whitespace. -+  -src/data/earthquake_catalog.h:27: trailing whitespace. -+void catalog_initialize(EarthquakeCatalog *catalog);  -src/data/earthquake_catalog.h:28: trailing whitespace. -+  -src/data/earthquake_catalog.h:29: trailing whitespace. -+int catalog_load_csv(  -src/data/earthquake_catalog.h:30: trailing whitespace. -+ const char *filename,  -src/data/earthquake_catalog.h:31: trailing whitespace. -+ EarthquakeCatalog *catalog  -src/data/earthquake_catalog.h:32: trailing whitespace. -+);  -src/data/earthquake_catalog.h:33: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:1: trailing whitespace. -+#include "earthquake_catalog_filter.h"  -src/data/earthquake_catalog_filter.c:2: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:3: trailing whitespace. -+#include   -src/data/earthquake_catalog_filter.c:4: trailing whitespace. -+#include   -src/data/earthquake_catalog_filter.c:5: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:6: trailing whitespace. -+#define CAMEFF_EARTH_MEAN_RADIUS_KM 6371.0088  -src/data/earthquake_catalog_filter.c:7: trailing whitespace. -+#define CAMEFF_PI 3.14159265358979323846  -src/data/earthquake_catalog_filter.c:8: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:9: trailing whitespace. -+static int coordinates_are_valid(  -src/data/earthquake_catalog_filter.c:10: trailing whitespace. -+ double latitude,  -src/data/earthquake_catalog_filter.c:11: trailing whitespace. -+ double longitude  -src/data/earthquake_catalog_filter.c:12: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:13: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:14: trailing whitespace. -+ return  -src/data/earthquake_catalog_filter.c:15: trailing whitespace. -+ latitude >= -90.0 &&  -src/data/earthquake_catalog_filter.c:16: trailing whitespace. -+ latitude <= 90.0 &&  -src/data/earthquake_catalog_filter.c:17: trailing whitespace. -+ longitude >= -180.0 &&  -src/data/earthquake_catalog_filter.c:18: trailing whitespace. -+ longitude <= 180.0;  -src/data/earthquake_catalog_filter.c:19: trailing whitespace. -+}  -src/data/earthquake_catalog_filter.c:20: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:21: trailing whitespace. -+static double degrees_to_radians(  -src/data/earthquake_catalog_filter.c:22: trailing whitespace. -+ double degrees  -src/data/earthquake_catalog_filter.c:23: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:24: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:25: trailing whitespace. -+ return degrees * CAMEFF_PI / 180.0;  -src/data/earthquake_catalog_filter.c:26: trailing whitespace. -+}  -src/data/earthquake_catalog_filter.c:27: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:28: trailing whitespace. -+static int append_event(  -src/data/earthquake_catalog_filter.c:29: trailing whitespace. -+ EarthquakeCatalog *catalog,  -src/data/earthquake_catalog_filter.c:30: trailing whitespace. -+ const EarthquakeEvent *event  -src/data/earthquake_catalog_filter.c:31: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:32: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:33: trailing whitespace. -+ if (catalog == NULL || event == NULL)  -src/data/earthquake_catalog_filter.c:34: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:35: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT;  -src/data/earthquake_catalog_filter.c:36: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:37: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:38: trailing whitespace. -+ if (catalog->count >= CAMEFF_CATALOG_MAX_EVENTS)  -src/data/earthquake_catalog_filter.c:39: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:40: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_CAPACITY_EXCEEDED;  -src/data/earthquake_catalog_filter.c:41: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:42: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:43: trailing whitespace. -+ catalog->events[catalog->count] = *event;  -src/data/earthquake_catalog_filter.c:44: trailing whitespace. -+ catalog->count++;  -src/data/earthquake_catalog_filter.c:45: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:46: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_OK;  -src/data/earthquake_catalog_filter.c:47: trailing whitespace. -+}  -src/data/earthquake_catalog_filter.c:48: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:49: trailing whitespace. -+double earthquake_surface_distance_km(  -src/data/earthquake_catalog_filter.c:50: trailing whitespace. -+ double latitude_a,  -src/data/earthquake_catalog_filter.c:51: trailing whitespace. -+ double longitude_a,  -src/data/earthquake_catalog_filter.c:52: trailing whitespace. -+ double latitude_b,  -src/data/earthquake_catalog_filter.c:53: trailing whitespace. -+ double longitude_b  -src/data/earthquake_catalog_filter.c:54: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:55: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:56: trailing whitespace. -+ double latitude_a_rad;  -src/data/earthquake_catalog_filter.c:57: trailing whitespace. -+ double latitude_b_rad;  -src/data/earthquake_catalog_filter.c:58: trailing whitespace. -+ double latitude_delta;  -src/data/earthquake_catalog_filter.c:59: trailing whitespace. -+ double longitude_delta;  -src/data/earthquake_catalog_filter.c:60: trailing whitespace. -+ double haversine;  -src/data/earthquake_catalog_filter.c:61: trailing whitespace. -+ double angular_distance;  -src/data/earthquake_catalog_filter.c:62: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:63: trailing whitespace. -+ if (!coordinates_are_valid(  -src/data/earthquake_catalog_filter.c:64: trailing whitespace. -+ latitude_a,  -src/data/earthquake_catalog_filter.c:65: trailing whitespace. -+ longitude_a) ||  -src/data/earthquake_catalog_filter.c:66: trailing whitespace. -+ !coordinates_are_valid(  -src/data/earthquake_catalog_filter.c:67: trailing whitespace. -+ latitude_b,  -src/data/earthquake_catalog_filter.c:68: trailing whitespace. -+ longitude_b))  -src/data/earthquake_catalog_filter.c:69: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:70: trailing whitespace. -+ return -1.0;  -src/data/earthquake_catalog_filter.c:71: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:72: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:73: trailing whitespace. -+ latitude_a_rad =  -src/data/earthquake_catalog_filter.c:74: trailing whitespace. -+ degrees_to_radians(latitude_a);  -src/data/earthquake_catalog_filter.c:75: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:76: trailing whitespace. -+ latitude_b_rad =  -src/data/earthquake_catalog_filter.c:77: trailing whitespace. -+ degrees_to_radians(latitude_b);  -src/data/earthquake_catalog_filter.c:78: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:79: trailing whitespace. -+ latitude_delta =  -src/data/earthquake_catalog_filter.c:80: trailing whitespace. -+ latitude_b_rad - latitude_a_rad;  -src/data/earthquake_catalog_filter.c:81: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:82: trailing whitespace. -+ longitude_delta =  -src/data/earthquake_catalog_filter.c:83: trailing whitespace. -+ degrees_to_radians(  -src/data/earthquake_catalog_filter.c:84: trailing whitespace. -+ longitude_b - longitude_a  -src/data/earthquake_catalog_filter.c:85: trailing whitespace. -+ );  -src/data/earthquake_catalog_filter.c:86: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:87: trailing whitespace. -+ haversine =  -src/data/earthquake_catalog_filter.c:88: trailing whitespace. -+ sin(latitude_delta / 2.0) *  -src/data/earthquake_catalog_filter.c:89: trailing whitespace. -+ sin(latitude_delta / 2.0) +  -src/data/earthquake_catalog_filter.c:90: trailing whitespace. -+ cos(latitude_a_rad) *  -src/data/earthquake_catalog_filter.c:91: trailing whitespace. -+ cos(latitude_b_rad) *  -src/data/earthquake_catalog_filter.c:92: trailing whitespace. -+ sin(longitude_delta / 2.0) *  -src/data/earthquake_catalog_filter.c:93: trailing whitespace. -+ sin(longitude_delta / 2.0);  -src/data/earthquake_catalog_filter.c:94: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:95: trailing whitespace. -+ /*  -src/data/earthquake_catalog_filter.c:96: trailing whitespace. -+ * Protect against small floating-point drift outside [0, 1].  -src/data/earthquake_catalog_filter.c:97: trailing whitespace. -+ */  -src/data/earthquake_catalog_filter.c:98: trailing whitespace. -+ if (haversine < 0.0)  -src/data/earthquake_catalog_filter.c:99: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:100: trailing whitespace. -+ haversine = 0.0;  -src/data/earthquake_catalog_filter.c:101: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:102: trailing whitespace. -+ else if (haversine > 1.0)  -src/data/earthquake_catalog_filter.c:103: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:104: trailing whitespace. -+ haversine = 1.0;  -src/data/earthquake_catalog_filter.c:105: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:106: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:107: trailing whitespace. -+ angular_distance =  -src/data/earthquake_catalog_filter.c:108: trailing whitespace. -+ 2.0 *  -src/data/earthquake_catalog_filter.c:109: trailing whitespace. -+ atan2(  -src/data/earthquake_catalog_filter.c:110: trailing whitespace. -+ sqrt(haversine),  -src/data/earthquake_catalog_filter.c:111: trailing whitespace. -+ sqrt(1.0 - haversine)  -src/data/earthquake_catalog_filter.c:112: trailing whitespace. -+ );  -src/data/earthquake_catalog_filter.c:113: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:114: trailing whitespace. -+ return  -src/data/earthquake_catalog_filter.c:115: trailing whitespace. -+ CAMEFF_EARTH_MEAN_RADIUS_KM *  -src/data/earthquake_catalog_filter.c:116: trailing whitespace. -+ angular_distance;  -src/data/earthquake_catalog_filter.c:117: trailing whitespace. -+}  -src/data/earthquake_catalog_filter.c:118: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:119: trailing whitespace. -+int catalog_filter_time_range(  -src/data/earthquake_catalog_filter.c:120: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/data/earthquake_catalog_filter.c:121: trailing whitespace. -+ time_t start_time,  -src/data/earthquake_catalog_filter.c:122: trailing whitespace. -+ time_t end_time,  -src/data/earthquake_catalog_filter.c:123: trailing whitespace. -+ EarthquakeCatalog *result  -src/data/earthquake_catalog_filter.c:124: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:125: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:126: trailing whitespace. -+ size_t index;  -src/data/earthquake_catalog_filter.c:127: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:128: trailing whitespace. -+ if (source == NULL || result == NULL)  -src/data/earthquake_catalog_filter.c:129: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:130: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT;  -src/data/earthquake_catalog_filter.c:131: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:132: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:133: trailing whitespace. -+ if (start_time >= end_time)  -src/data/earthquake_catalog_filter.c:134: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:135: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE;  -src/data/earthquake_catalog_filter.c:136: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:137: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:138: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:139: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:140: trailing whitespace. -+ for (index = 0; index < source->count; index++)  -src/data/earthquake_catalog_filter.c:141: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:142: trailing whitespace. -+ const EarthquakeEvent *event;  -src/data/earthquake_catalog_filter.c:143: trailing whitespace. -+ int status;  -src/data/earthquake_catalog_filter.c:144: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:145: trailing whitespace. -+ event = &source->events[index];  -src/data/earthquake_catalog_filter.c:146: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:147: trailing whitespace. -+ if (event->timestamp < start_time ||  -src/data/earthquake_catalog_filter.c:148: trailing whitespace. -+ event->timestamp >= end_time)  -src/data/earthquake_catalog_filter.c:149: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:150: trailing whitespace. -+ continue;  -src/data/earthquake_catalog_filter.c:151: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:152: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:153: trailing whitespace. -+ status = append_event(result, event);  -src/data/earthquake_catalog_filter.c:154: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:155: trailing whitespace. -+ if (status != CAMEFF_CATALOG_FILTER_OK)  -src/data/earthquake_catalog_filter.c:156: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:157: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:158: trailing whitespace. -+ return status;  -src/data/earthquake_catalog_filter.c:159: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:160: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:161: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:162: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_OK;  -src/data/earthquake_catalog_filter.c:163: trailing whitespace. -+}  -src/data/earthquake_catalog_filter.c:164: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:165: trailing whitespace. -+int catalog_filter_radius(  -src/data/earthquake_catalog_filter.c:166: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/data/earthquake_catalog_filter.c:167: trailing whitespace. -+ double center_latitude,  -src/data/earthquake_catalog_filter.c:168: trailing whitespace. -+ double center_longitude,  -src/data/earthquake_catalog_filter.c:169: trailing whitespace. -+ double radius_km,  -src/data/earthquake_catalog_filter.c:170: trailing whitespace. -+ EarthquakeCatalog *result  -src/data/earthquake_catalog_filter.c:171: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:172: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:173: trailing whitespace. -+ size_t index;  -src/data/earthquake_catalog_filter.c:174: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:175: trailing whitespace. -+ if (source == NULL || result == NULL)  -src/data/earthquake_catalog_filter.c:176: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:177: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT;  -src/data/earthquake_catalog_filter.c:178: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:179: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:180: trailing whitespace. -+ if (!coordinates_are_valid(  -src/data/earthquake_catalog_filter.c:181: trailing whitespace. -+ center_latitude,  -src/data/earthquake_catalog_filter.c:182: trailing whitespace. -+ center_longitude))  -src/data/earthquake_catalog_filter.c:183: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:184: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_COORDINATES;  -src/data/earthquake_catalog_filter.c:185: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:186: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:187: trailing whitespace. -+ if (radius_km < 0.0)  -src/data/earthquake_catalog_filter.c:188: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:189: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_RADIUS;  -src/data/earthquake_catalog_filter.c:190: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:191: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:192: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:193: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:194: trailing whitespace. -+ for (index = 0; index < source->count; index++)  -src/data/earthquake_catalog_filter.c:195: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:196: trailing whitespace. -+ const EarthquakeEvent *event;  -src/data/earthquake_catalog_filter.c:197: trailing whitespace. -+ double distance_km;  -src/data/earthquake_catalog_filter.c:198: trailing whitespace. -+ int status;  -src/data/earthquake_catalog_filter.c:199: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:200: trailing whitespace. -+ event = &source->events[index];  -src/data/earthquake_catalog_filter.c:201: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:202: trailing whitespace. -+ distance_km =  -src/data/earthquake_catalog_filter.c:203: trailing whitespace. -+ earthquake_surface_distance_km(  -src/data/earthquake_catalog_filter.c:204: trailing whitespace. -+ center_latitude,  -src/data/earthquake_catalog_filter.c:205: trailing whitespace. -+ center_longitude,  -src/data/earthquake_catalog_filter.c:206: trailing whitespace. -+ event->latitude,  -src/data/earthquake_catalog_filter.c:207: trailing whitespace. -+ event->longitude  -src/data/earthquake_catalog_filter.c:208: trailing whitespace. -+ );  -src/data/earthquake_catalog_filter.c:209: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:210: trailing whitespace. -+ if (distance_km < 0.0)  -src/data/earthquake_catalog_filter.c:211: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:212: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:213: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:214: trailing whitespace. -+ return  -src/data/earthquake_catalog_filter.c:215: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_COORDINATES;  -src/data/earthquake_catalog_filter.c:216: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:217: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:218: trailing whitespace. -+ if (distance_km > radius_km)  -src/data/earthquake_catalog_filter.c:219: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:220: trailing whitespace. -+ continue;  -src/data/earthquake_catalog_filter.c:221: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:222: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:223: trailing whitespace. -+ status = append_event(result, event);  -src/data/earthquake_catalog_filter.c:224: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:225: trailing whitespace. -+ if (status != CAMEFF_CATALOG_FILTER_OK)  -src/data/earthquake_catalog_filter.c:226: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:227: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:228: trailing whitespace. -+ return status;  -src/data/earthquake_catalog_filter.c:229: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:230: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:231: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:232: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_OK;  -src/data/earthquake_catalog_filter.c:233: trailing whitespace. -+}  -src/data/earthquake_catalog_filter.c:234: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:235: trailing whitespace. -+int catalog_filter_hindcast_window(  -src/data/earthquake_catalog_filter.c:236: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/data/earthquake_catalog_filter.c:237: trailing whitespace. -+ time_t start_time,  -src/data/earthquake_catalog_filter.c:238: trailing whitespace. -+ time_t cutoff_time,  -src/data/earthquake_catalog_filter.c:239: trailing whitespace. -+ double center_latitude,  -src/data/earthquake_catalog_filter.c:240: trailing whitespace. -+ double center_longitude,  -src/data/earthquake_catalog_filter.c:241: trailing whitespace. -+ double radius_km,  -src/data/earthquake_catalog_filter.c:242: trailing whitespace. -+ EarthquakeCatalog *result  -src/data/earthquake_catalog_filter.c:243: trailing whitespace. -+)  -src/data/earthquake_catalog_filter.c:244: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.c:245: trailing whitespace. -+ size_t index;  -src/data/earthquake_catalog_filter.c:246: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:247: trailing whitespace. -+ if (source == NULL || result == NULL)  -src/data/earthquake_catalog_filter.c:248: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:249: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT;  -src/data/earthquake_catalog_filter.c:250: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:251: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:252: trailing whitespace. -+ if (start_time >= cutoff_time)  -src/data/earthquake_catalog_filter.c:253: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:254: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE;  -src/data/earthquake_catalog_filter.c:255: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:256: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:257: trailing whitespace. -+ if (!coordinates_are_valid(  -src/data/earthquake_catalog_filter.c:258: trailing whitespace. -+ center_latitude,  -src/data/earthquake_catalog_filter.c:259: trailing whitespace. -+ center_longitude))  -src/data/earthquake_catalog_filter.c:260: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:261: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_COORDINATES;  -src/data/earthquake_catalog_filter.c:262: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:263: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:264: trailing whitespace. -+ if (radius_km < 0.0)  -src/data/earthquake_catalog_filter.c:265: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:266: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_INVALID_RADIUS;  -src/data/earthquake_catalog_filter.c:267: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:268: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:269: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:270: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:271: trailing whitespace. -+ for (index = 0; index < source->count; index++)  -src/data/earthquake_catalog_filter.c:272: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:273: trailing whitespace. -+ const EarthquakeEvent *event;  -src/data/earthquake_catalog_filter.c:274: trailing whitespace. -+ double distance_km;  -src/data/earthquake_catalog_filter.c:275: trailing whitespace. -+ int status;  -src/data/earthquake_catalog_filter.c:276: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:277: trailing whitespace. -+ event = &source->events[index];  -src/data/earthquake_catalog_filter.c:278: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:279: trailing whitespace. -+ if (event->timestamp < start_time ||  -src/data/earthquake_catalog_filter.c:280: trailing whitespace. -+ event->timestamp >= cutoff_time)  -src/data/earthquake_catalog_filter.c:281: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:282: trailing whitespace. -+ continue;  -src/data/earthquake_catalog_filter.c:283: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:284: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:285: trailing whitespace. -+ distance_km =  -src/data/earthquake_catalog_filter.c:286: trailing whitespace. -+ earthquake_surface_distance_km(  -src/data/earthquake_catalog_filter.c:287: trailing whitespace. -+ center_latitude,  -src/data/earthquake_catalog_filter.c:288: trailing whitespace. -+ center_longitude,  -src/data/earthquake_catalog_filter.c:289: trailing whitespace. -+ event->latitude,  -src/data/earthquake_catalog_filter.c:290: trailing whitespace. -+ event->longitude  -src/data/earthquake_catalog_filter.c:291: trailing whitespace. -+ );  -src/data/earthquake_catalog_filter.c:292: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:293: trailing whitespace. -+ if (distance_km < 0.0)  -src/data/earthquake_catalog_filter.c:294: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:295: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:296: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:297: trailing whitespace. -+ return  -src/data/earthquake_catalog_filter.c:298: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_COORDINATES;  -src/data/earthquake_catalog_filter.c:299: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:300: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:301: trailing whitespace. -+ if (distance_km > radius_km)  -src/data/earthquake_catalog_filter.c:302: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:303: trailing whitespace. -+ continue;  -src/data/earthquake_catalog_filter.c:304: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:305: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:306: trailing whitespace. -+ status = append_event(result, event);  -src/data/earthquake_catalog_filter.c:307: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:308: trailing whitespace. -+ if (status != CAMEFF_CATALOG_FILTER_OK)  -src/data/earthquake_catalog_filter.c:309: trailing whitespace. -+ {  -src/data/earthquake_catalog_filter.c:310: trailing whitespace. -+ catalog_initialize(result);  -src/data/earthquake_catalog_filter.c:311: trailing whitespace. -+ return status;  -src/data/earthquake_catalog_filter.c:312: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:313: trailing whitespace. -+ }  -src/data/earthquake_catalog_filter.c:314: trailing whitespace. -+  -src/data/earthquake_catalog_filter.c:315: trailing whitespace. -+ return CAMEFF_CATALOG_FILTER_OK;  -src/data/earthquake_catalog_filter.h:1: trailing whitespace. -+#ifndef EARTHQUAKE_CATALOG_FILTER_H  -src/data/earthquake_catalog_filter.h:2: trailing whitespace. -+#define EARTHQUAKE_CATALOG_FILTER_H  -src/data/earthquake_catalog_filter.h:3: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:4: trailing whitespace. -+#include "earthquake_catalog.h"  -src/data/earthquake_catalog_filter.h:5: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:6: trailing whitespace. -+#include   -src/data/earthquake_catalog_filter.h:7: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:8: trailing whitespace. -+typedef enum  -src/data/earthquake_catalog_filter.h:9: trailing whitespace. -+{  -src/data/earthquake_catalog_filter.h:10: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_OK = 0,  -src/data/earthquake_catalog_filter.h:11: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_ARGUMENT = -1,  -src/data/earthquake_catalog_filter.h:12: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE = -2,  -src/data/earthquake_catalog_filter.h:13: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_COORDINATES = -3,  -src/data/earthquake_catalog_filter.h:14: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_RADIUS = -4,  -src/data/earthquake_catalog_filter.h:15: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_CAPACITY_EXCEEDED = -5  -src/data/earthquake_catalog_filter.h:16: trailing whitespace. -+} CameffCatalogFilterStatus;  -src/data/earthquake_catalog_filter.h:17: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:18: trailing whitespace. -+/*  -src/data/earthquake_catalog_filter.h:19: trailing whitespace. -+ * Selects events in:  -src/data/earthquake_catalog_filter.h:20: trailing whitespace. -+ *  -src/data/earthquake_catalog_filter.h:21: trailing whitespace. -+ * start_time <= event.timestamp < end_time  -src/data/earthquake_catalog_filter.h:22: trailing whitespace. -+ */  -src/data/earthquake_catalog_filter.h:23: trailing whitespace. -+int catalog_filter_time_range(  -src/data/earthquake_catalog_filter.h:24: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/data/earthquake_catalog_filter.h:25: trailing whitespace. -+ time_t start_time,  -src/data/earthquake_catalog_filter.h:26: trailing whitespace. -+ time_t end_time,  -src/data/earthquake_catalog_filter.h:27: trailing whitespace. -+ EarthquakeCatalog *result  -src/data/earthquake_catalog_filter.h:28: trailing whitespace. -+);  -src/data/earthquake_catalog_filter.h:29: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:30: trailing whitespace. -+/*  -src/data/earthquake_catalog_filter.h:31: trailing whitespace. -+ * Selects events whose epicentres are within radius_km  -src/data/earthquake_catalog_filter.h:32: trailing whitespace. -+ * of the supplied centre.  -src/data/earthquake_catalog_filter.h:33: trailing whitespace. -+ */  -src/data/earthquake_catalog_filter.h:34: trailing whitespace. -+int catalog_filter_radius(  -src/data/earthquake_catalog_filter.h:35: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/data/earthquake_catalog_filter.h:36: trailing whitespace. -+ double center_latitude,  -src/data/earthquake_catalog_filter.h:37: trailing whitespace. -+ double center_longitude,  -src/data/earthquake_catalog_filter.h:38: trailing whitespace. -+ double radius_km,  -src/data/earthquake_catalog_filter.h:39: trailing whitespace. -+ EarthquakeCatalog *result  -src/data/earthquake_catalog_filter.h:40: trailing whitespace. -+);  -src/data/earthquake_catalog_filter.h:41: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:42: trailing whitespace. -+/*  -src/data/earthquake_catalog_filter.h:43: trailing whitespace. -+ * Applies both temporal and spatial filtering in one pass.  -src/data/earthquake_catalog_filter.h:44: trailing whitespace. -+ */  -src/data/earthquake_catalog_filter.h:45: trailing whitespace. -+int catalog_filter_hindcast_window(  -src/data/earthquake_catalog_filter.h:46: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/data/earthquake_catalog_filter.h:47: trailing whitespace. -+ time_t start_time,  -src/data/earthquake_catalog_filter.h:48: trailing whitespace. -+ time_t cutoff_time,  -src/data/earthquake_catalog_filter.h:49: trailing whitespace. -+ double center_latitude,  -src/data/earthquake_catalog_filter.h:50: trailing whitespace. -+ double center_longitude,  -src/data/earthquake_catalog_filter.h:51: trailing whitespace. -+ double radius_km,  -src/data/earthquake_catalog_filter.h:52: trailing whitespace. -+ EarthquakeCatalog *result  -src/data/earthquake_catalog_filter.h:53: trailing whitespace. -+);  -src/data/earthquake_catalog_filter.h:54: trailing whitespace. -+  -src/data/earthquake_catalog_filter.h:55: trailing whitespace. -+double earthquake_surface_distance_km(  -src/data/earthquake_catalog_filter.h:56: trailing whitespace. -+ double latitude_a,  -src/data/earthquake_catalog_filter.h:57: trailing whitespace. -+ double longitude_a,  -src/data/earthquake_catalog_filter.h:58: trailing whitespace. -+ double latitude_b,  -src/data/earthquake_catalog_filter.h:59: trailing whitespace. -+ double longitude_b  -src/data/earthquake_catalog_filter.h:60: trailing whitespace. -+);  -src/data/earthquake_catalog_filter.h:61: trailing whitespace. -+  -src/data/earthquake_event.c:1: trailing whitespace. -+#include "earthquake_event.h"  -src/data/earthquake_event.c:2: trailing whitespace. -+  -src/data/earthquake_event.c:3: trailing whitespace. -+  -src/data/earthquake_event.c:4: trailing whitespace. -+void initialize_earthquake_event(  -src/data/earthquake_event.c:5: trailing whitespace. -+ EarthquakeEvent *event  -src/data/earthquake_event.c:6: trailing whitespace. -+)  -src/data/earthquake_event.c:7: trailing whitespace. -+{  -src/data/earthquake_event.c:8: trailing whitespace. -+ if(event == NULL)  -src/data/earthquake_event.c:9: trailing whitespace. -+ return;  -src/data/earthquake_event.c:10: trailing whitespace. -+  -src/data/earthquake_event.c:11: trailing whitespace. -+  -src/data/earthquake_event.c:12: trailing whitespace. -+ event->region[0] = '\0';  -src/data/earthquake_event.c:13: trailing whitespace. -+  -src/data/earthquake_event.c:14: trailing whitespace. -+ event->latitude = 0.0;  -src/data/earthquake_event.c:15: trailing whitespace. -+ event->longitude = 0.0;  -src/data/earthquake_event.c:16: trailing whitespace. -+  -src/data/earthquake_event.c:17: trailing whitespace. -+ event->depth_km = 0.0;  -src/data/earthquake_event.c:18: trailing whitespace. -+  -src/data/earthquake_event.c:19: trailing whitespace. -+ event->magnitude = 0.0;  -src/data/earthquake_event.c:20: trailing whitespace. -+  -src/data/earthquake_event.c:21: trailing whitespace. -+ event->timestamp = 0;  -src/data/earthquake_event.h:1: trailing whitespace. -+#ifndef EARTHQUAKE_EVENT_H  -src/data/earthquake_event.h:2: trailing whitespace. -+#define EARTHQUAKE_EVENT_H  -src/data/earthquake_event.h:3: trailing whitespace. -+  -src/data/earthquake_event.h:4: trailing whitespace. -+#define CAMEFF_EARTHQUAKE_REGION_CAPACITY 64U  -src/data/earthquake_event.h:5: trailing whitespace. -+  -src/data/earthquake_event.h:6: trailing whitespace. -+#include   -src/data/earthquake_event.h:7: trailing whitespace. -+  -src/data/earthquake_event.h:8: trailing whitespace. -+  -src/data/earthquake_event.h:9: trailing whitespace. -+typedef struct  -src/data/earthquake_event.h:10: trailing whitespace. -+{  -src/data/earthquake_event.h:11: trailing whitespace. -+ char region[  -src/data/earthquake_event.h:12: trailing whitespace. -+ CAMEFF_EARTHQUAKE_REGION_CAPACITY  -src/data/earthquake_event.h:13: trailing whitespace. -+ ];  -src/data/earthquake_event.h:14: trailing whitespace. -+  -src/data/earthquake_event.h:15: trailing whitespace. -+ double latitude;  -src/data/earthquake_event.h:16: trailing whitespace. -+ double longitude;  -src/data/earthquake_event.h:17: trailing whitespace. -+ double depth_km;  -src/data/earthquake_event.h:18: trailing whitespace. -+ double magnitude;  -src/data/earthquake_event.h:19: trailing whitespace. -+  -src/data/earthquake_event.h:20: trailing whitespace. -+ time_t timestamp;  -src/data/earthquake_event.h:21: trailing whitespace. -+} EarthquakeEvent;  -src/data/earthquake_event.h:22: trailing whitespace. -+  -src/data/earthquake_event.h:23: trailing whitespace. -+  -src/data/earthquake_event.h:24: trailing whitespace. -+  -src/data/earthquake_event.h:25: trailing whitespace. -+void initialize_earthquake_event(  -src/data/earthquake_event.h:26: trailing whitespace. -+ EarthquakeEvent *event  -src/data/earthquake_event.h:27: trailing whitespace. -+);  -src/data/earthquake_event.h:28: trailing whitespace. -+  -src/data/earthquake_event.h:29: trailing whitespace. -+  -src/evaluation.c:1: trailing whitespace. -+#include "cameff/evaluation.h"  -src/evaluation.c:2: trailing whitespace. -+  -src/evaluation.c:3: trailing whitespace. -+#include   -src/evaluation.c:4: trailing whitespace. -+#include   -src/evaluation.c:5: trailing whitespace. -+#include   -src/evaluation.c:6: trailing whitespace. -+#include   -src/evaluation.c:7: trailing whitespace. -+  -src/evaluation.c:8: trailing whitespace. -+#include "cameff/baseline_expert.h"  -src/evaluation.c:9: trailing whitespace. -+#include "cameff/cascade_expert.h"  -src/evaluation.c:10: trailing whitespace. -+#include "cameff/crustal_fault_expert.h"  -src/evaluation.c:11: trailing whitespace. -+#include "cameff/expert_registry.h"  -src/evaluation.c:12: trailing whitespace. -+#include "cameff/fusion.h"  -src/evaluation.c:13: trailing whitespace. -+#include "cameff/subduction_expert.h"  -src/evaluation.c:14: trailing whitespace. -+  -src/evaluation.c:15: trailing whitespace. -+static int valid_unit_interval(double value) {  -src/evaluation.c:16: trailing whitespace. -+ return isfinite(value) &&  -src/evaluation.c:17: trailing whitespace. -+ value >= 0.0 &&  -src/evaluation.c:18: trailing whitespace. -+ value <= 1.0;  -src/evaluation.c:19: trailing whitespace. -+}  -src/evaluation.c:20: trailing whitespace. -+  -src/evaluation.c:21: trailing whitespace. -+static int valid_options(  -src/evaluation.c:22: trailing whitespace. -+ const cameff_evaluation_options_t *options  -src/evaluation.c:23: trailing whitespace. -+) {  -src/evaluation.c:24: trailing whitespace. -+ if (options == NULL) {  -src/evaluation.c:25: trailing whitespace. -+ return 0;  -src/evaluation.c:26: trailing whitespace. -+ }  -src/evaluation.c:27: trailing whitespace. -+  -src/evaluation.c:28: trailing whitespace. -+ if (!valid_unit_interval(options->routing_threshold) ||  -src/evaluation.c:29: trailing whitespace. -+ !valid_unit_interval(options->minimum_fused_confidence) ||  -src/evaluation.c:30: trailing whitespace. -+ !valid_unit_interval(options->watch_threshold) ||  -src/evaluation.c:31: trailing whitespace. -+ !valid_unit_interval(options->elevated_threshold)) {  -src/evaluation.c:32: trailing whitespace. -+ return 0;  -src/evaluation.c:33: trailing whitespace. -+ }  -src/evaluation.c:34: trailing whitespace. -+  -src/evaluation.c:35: trailing whitespace. -+ if (options->watch_threshold >  -src/evaluation.c:36: trailing whitespace. -+ options->elevated_threshold) {  -src/evaluation.c:37: trailing whitespace. -+ return 0;  -src/evaluation.c:38: trailing whitespace. -+ }  -src/evaluation.c:39: trailing whitespace. -+  -src/evaluation.c:40: trailing whitespace. -+ return 1;  -src/evaluation.c:41: trailing whitespace. -+}  -src/evaluation.c:42: trailing whitespace. -+  -src/evaluation.c:43: trailing whitespace. -+static const char *expert_status_name(  -src/evaluation.c:44: trailing whitespace. -+ cameff_expert_status_t status  -src/evaluation.c:45: trailing whitespace. -+) {  -src/evaluation.c:46: trailing whitespace. -+ switch (status) {  -src/evaluation.c:47: trailing whitespace. -+ case CAMEFF_EXPERT_OK:  -src/evaluation.c:48: trailing whitespace. -+ return "OK";  -src/evaluation.c:49: trailing whitespace. -+  -src/evaluation.c:50: trailing whitespace. -+ case CAMEFF_EXPERT_ABSTAIN:  -src/evaluation.c:51: trailing whitespace. -+ return "ABSTAIN";  -src/evaluation.c:52: trailing whitespace. -+  -src/evaluation.c:53: trailing whitespace. -+ case CAMEFF_EXPERT_INSUFFICIENT_DATA:  -src/evaluation.c:54: trailing whitespace. -+ return "INSUFFICIENT_DATA";  -src/evaluation.c:55: trailing whitespace. -+  -src/evaluation.c:56: trailing whitespace. -+ case CAMEFF_EXPERT_ERROR:  -src/evaluation.c:57: trailing whitespace. -+ return "ERROR";  -src/evaluation.c:58: trailing whitespace. -+  -src/evaluation.c:59: trailing whitespace. -+ default:  -src/evaluation.c:60: trailing whitespace. -+ return "INVALID_STATUS";  -src/evaluation.c:61: trailing whitespace. -+ }  -src/evaluation.c:62: trailing whitespace. -+}  -src/evaluation.c:63: trailing whitespace. -+  -src/evaluation.c:64: trailing whitespace. -+static const char *decision_name(  -src/evaluation.c:65: trailing whitespace. -+ cameff_decision_level_t decision  -src/evaluation.c:66: trailing whitespace. -+) {  -src/evaluation.c:67: trailing whitespace. -+ switch (decision) {  -src/evaluation.c:68: trailing whitespace. -+ case CAMEFF_DECISION_BACKGROUND:  -src/evaluation.c:69: trailing whitespace. -+ return "BACKGROUND";  -src/evaluation.c:70: trailing whitespace. -+  -src/evaluation.c:71: trailing whitespace. -+ case CAMEFF_DECISION_WATCH:  -src/evaluation.c:72: trailing whitespace. -+ return "WATCH";  -src/evaluation.c:73: trailing whitespace. -+  -src/evaluation.c:74: trailing whitespace. -+ case CAMEFF_DECISION_ELEVATED:  -src/evaluation.c:75: trailing whitespace. -+ return "ELEVATED";  -src/evaluation.c:76: trailing whitespace. -+  -src/evaluation.c:77: trailing whitespace. -+ case CAMEFF_DECISION_INSUFFICIENT_DATA:  -src/evaluation.c:78: trailing whitespace. -+ return "INSUFFICIENT_DATA";  -src/evaluation.c:79: trailing whitespace. -+  -src/evaluation.c:80: trailing whitespace. -+ default:  -src/evaluation.c:81: trailing whitespace. -+ return "INVALID_DECISION";  -src/evaluation.c:82: trailing whitespace. -+ }  -src/evaluation.c:83: trailing whitespace. -+}  -src/evaluation.c:84: trailing whitespace. -+  -src/evaluation.c:85: trailing whitespace. -+static void append_text(  -src/evaluation.c:86: trailing whitespace. -+ char *buffer,  -src/evaluation.c:87: trailing whitespace. -+ size_t capacity,  -src/evaluation.c:88: trailing whitespace. -+ size_t *offset,  -src/evaluation.c:89: trailing whitespace. -+ const char *format,  -src/evaluation.c:90: trailing whitespace. -+ ...  -src/evaluation.c:91: trailing whitespace. -+) {  -src/evaluation.c:92: trailing whitespace. -+ va_list arguments;  -src/evaluation.c:93: trailing whitespace. -+ int written;  -src/evaluation.c:94: trailing whitespace. -+ size_t remaining;  -src/evaluation.c:95: trailing whitespace. -+  -src/evaluation.c:96: trailing whitespace. -+ if (buffer == NULL ||  -src/evaluation.c:97: trailing whitespace. -+ offset == NULL ||  -src/evaluation.c:98: trailing whitespace. -+ format == NULL ||  -src/evaluation.c:99: trailing whitespace. -+ capacity == 0U ||  -src/evaluation.c:100: trailing whitespace. -+ *offset >= capacity) {  -src/evaluation.c:101: trailing whitespace. -+ return;  -src/evaluation.c:102: trailing whitespace. -+ }  -src/evaluation.c:103: trailing whitespace. -+  -src/evaluation.c:104: trailing whitespace. -+ remaining = capacity - *offset;  -src/evaluation.c:105: trailing whitespace. -+  -src/evaluation.c:106: trailing whitespace. -+ va_start(arguments, format);  -src/evaluation.c:107: trailing whitespace. -+  -src/evaluation.c:108: trailing whitespace. -+ written = vsnprintf(  -src/evaluation.c:109: trailing whitespace. -+ buffer + *offset,  -src/evaluation.c:110: trailing whitespace. -+ remaining,  -src/evaluation.c:111: trailing whitespace. -+ format,  -src/evaluation.c:112: trailing whitespace. -+ arguments  -src/evaluation.c:113: trailing whitespace. -+ );  -src/evaluation.c:114: trailing whitespace. -+  -src/evaluation.c:115: trailing whitespace. -+ va_end(arguments);  -src/evaluation.c:116: trailing whitespace. -+  -src/evaluation.c:117: trailing whitespace. -+ if (written < 0) {  -src/evaluation.c:118: trailing whitespace. -+ return;  -src/evaluation.c:119: trailing whitespace. -+ }  -src/evaluation.c:120: trailing whitespace. -+  -src/evaluation.c:121: trailing whitespace. -+ if ((size_t)written >= remaining) {  -src/evaluation.c:122: trailing whitespace. -+ *offset = capacity - 1U;  -src/evaluation.c:123: trailing whitespace. -+ buffer[*offset] = '\0';  -src/evaluation.c:124: trailing whitespace. -+ return;  -src/evaluation.c:125: trailing whitespace. -+ }  -src/evaluation.c:126: trailing whitespace. -+  -src/evaluation.c:127: trailing whitespace. -+ *offset += (size_t)written;  -src/evaluation.c:128: trailing whitespace. -+}  -src/evaluation.c:129: trailing whitespace. -+  -src/evaluation.c:130: trailing whitespace. -+void cameff_evaluation_options_default(  -src/evaluation.c:131: trailing whitespace. -+ cameff_evaluation_options_t *options  -src/evaluation.c:132: trailing whitespace. -+) {  -src/evaluation.c:133: trailing whitespace. -+ if (options == NULL) {  -src/evaluation.c:134: trailing whitespace. -+ return;  -src/evaluation.c:135: trailing whitespace. -+ }  -src/evaluation.c:136: trailing whitespace. -+  -src/evaluation.c:137: trailing whitespace. -+ options->routing_threshold = 0.20;  -src/evaluation.c:138: trailing whitespace. -+ options->minimum_fused_confidence = 0.25;  -src/evaluation.c:139: trailing whitespace. -+ options->watch_threshold = 0.45;  -src/evaluation.c:140: trailing whitespace. -+ options->elevated_threshold = 0.70;  -src/evaluation.c:141: trailing whitespace. -+}  -src/evaluation.c:142: trailing whitespace. -+  -src/evaluation.c:143: trailing whitespace. -+cameff_status_t cameff_evaluate_experts(  -src/evaluation.c:144: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/evaluation.c:145: trailing whitespace. -+ const cameff_config_t *config,  -src/evaluation.c:146: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/evaluation.c:147: trailing whitespace. -+ const cameff_evaluation_options_t *options,  -src/evaluation.c:148: trailing whitespace. -+ cameff_evaluation_result_t *result  -src/evaluation.c:149: trailing whitespace. -+) {  -src/evaluation.c:150: trailing whitespace. -+ cameff_expert_registry_t registry;  -src/evaluation.c:151: trailing whitespace. -+ cameff_expert_result_t expert_results[CAMEFF_MAX_EXPERTS];  -src/evaluation.c:152: trailing whitespace. -+ size_t expert_result_count;  -src/evaluation.c:153: trailing whitespace. -+ cameff_status_t status;  -src/evaluation.c:154: trailing whitespace. -+  -src/evaluation.c:155: trailing whitespace. -+ if (frame == NULL ||  -src/evaluation.c:156: trailing whitespace. -+ config == NULL ||  -src/evaluation.c:157: trailing whitespace. -+ region == NULL ||  -src/evaluation.c:158: trailing whitespace. -+ options == NULL ||  -src/evaluation.c:159: trailing whitespace. -+ result == NULL ||  -src/evaluation.c:160: trailing whitespace. -+ !valid_options(options)) {  -src/evaluation.c:161: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/evaluation.c:162: trailing whitespace. -+ }  -src/evaluation.c:163: trailing whitespace. -+  -src/evaluation.c:164: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/evaluation.c:165: trailing whitespace. -+ (void)memset(expert_results, 0, sizeof(expert_results));  -src/evaluation.c:166: trailing whitespace. -+  -src/evaluation.c:167: trailing whitespace. -+ status = cameff_classify_patterns(  -src/evaluation.c:168: trailing whitespace. -+ frame,  -src/evaluation.c:169: trailing whitespace. -+ region,  -src/evaluation.c:170: trailing whitespace. -+ &result->patterns  -src/evaluation.c:171: trailing whitespace. -+ );  -src/evaluation.c:172: trailing whitespace. -+  -src/evaluation.c:173: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/evaluation.c:174: trailing whitespace. -+ return status;  -src/evaluation.c:175: trailing whitespace. -+ }  -src/evaluation.c:176: trailing whitespace. -+  -src/evaluation.c:177: trailing whitespace. -+ cameff_expert_registry_init(®istry);  -src/evaluation.c:178: trailing whitespace. -+  -src/evaluation.c:179: trailing whitespace. -+ status = cameff_expert_registry_register(  -src/evaluation.c:180: trailing whitespace. -+ ®istry,  -src/evaluation.c:181: trailing whitespace. -+ cameff_baseline_expert()  -src/evaluation.c:182: trailing whitespace. -+ );  -src/evaluation.c:183: trailing whitespace. -+  -src/evaluation.c:184: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/evaluation.c:185: trailing whitespace. -+ return status;  -src/evaluation.c:186: trailing whitespace. -+ }  -src/evaluation.c:187: trailing whitespace. -+  -src/evaluation.c:188: trailing whitespace. -+ status = cameff_expert_registry_register(  -src/evaluation.c:189: trailing whitespace. -+ ®istry,  -src/evaluation.c:190: trailing whitespace. -+ cameff_subduction_expert()  -src/evaluation.c:191: trailing whitespace. -+ );  -src/evaluation.c:192: trailing whitespace. -+  -src/evaluation.c:193: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/evaluation.c:194: trailing whitespace. -+ return status;  -src/evaluation.c:195: trailing whitespace. -+ }  -src/evaluation.c:196: trailing whitespace. -+  -src/evaluation.c:197: trailing whitespace. -+ status = cameff_expert_registry_register(  -src/evaluation.c:198: trailing whitespace. -+ ®istry,  -src/evaluation.c:199: trailing whitespace. -+ cameff_crustal_fault_expert()  -src/evaluation.c:200: trailing whitespace. -+ );  -src/evaluation.c:201: trailing whitespace. -+  -src/evaluation.c:202: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/evaluation.c:203: trailing whitespace. -+ return status;  -src/evaluation.c:204: trailing whitespace. -+ }  -src/evaluation.c:205: trailing whitespace. -+  -src/evaluation.c:206: trailing whitespace. -+ status = cameff_expert_registry_register(  -src/evaluation.c:207: trailing whitespace. -+ ®istry,  -src/evaluation.c:208: trailing whitespace. -+ cameff_cascade_expert()  -src/evaluation.c:209: trailing whitespace. -+ );  -src/evaluation.c:210: trailing whitespace. -+  -src/evaluation.c:211: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/evaluation.c:212: trailing whitespace. -+ return status;  -src/evaluation.c:213: trailing whitespace. -+ }  -src/evaluation.c:214: trailing whitespace. -+  -src/evaluation.c:215: trailing whitespace. -+ status = cameff_expert_registry_evaluate(  -src/evaluation.c:216: trailing whitespace. -+ ®istry,  -src/evaluation.c:217: trailing whitespace. -+ frame,  -src/evaluation.c:218: trailing whitespace. -+ config,  -src/evaluation.c:219: trailing whitespace. -+ region,  -src/evaluation.c:220: trailing whitespace. -+ &result->patterns,  -src/evaluation.c:221: trailing whitespace. -+ options->routing_threshold,  -src/evaluation.c:222: trailing whitespace. -+ expert_results,  -src/evaluation.c:223: trailing whitespace. -+ CAMEFF_MAX_EXPERTS,  -src/evaluation.c:224: trailing whitespace. -+ &expert_result_count  -src/evaluation.c:225: trailing whitespace. -+ );  -src/evaluation.c:226: trailing whitespace. -+  -src/evaluation.c:227: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/evaluation.c:228: trailing whitespace. -+ return status;  -src/evaluation.c:229: trailing whitespace. -+ }  -src/evaluation.c:230: trailing whitespace. -+  -src/evaluation.c:231: trailing whitespace. -+ return cameff_fuse_expert_results(  -src/evaluation.c:232: trailing whitespace. -+ expert_results,  -src/evaluation.c:233: trailing whitespace. -+ expert_result_count,  -src/evaluation.c:234: trailing whitespace. -+ &result->patterns,  -src/evaluation.c:235: trailing whitespace. -+ options->minimum_fused_confidence,  -src/evaluation.c:236: trailing whitespace. -+ options->watch_threshold,  -src/evaluation.c:237: trailing whitespace. -+ options->elevated_threshold,  -src/evaluation.c:238: trailing whitespace. -+ &result->fusion  -src/evaluation.c:239: trailing whitespace. -+ );  -src/evaluation.c:240: trailing whitespace. -+}  -src/evaluation.c:241: trailing whitespace. -+  -src/evaluation.c:242: trailing whitespace. -+cameff_status_t cameff_format_evaluation(  -src/evaluation.c:243: trailing whitespace. -+ const cameff_evaluation_result_t *result,  -src/evaluation.c:244: trailing whitespace. -+ char *buffer,  -src/evaluation.c:245: trailing whitespace. -+ size_t buffer_capacity  -src/evaluation.c:246: trailing whitespace. -+) {  -src/evaluation.c:247: trailing whitespace. -+ size_t offset;  -src/evaluation.c:248: trailing whitespace. -+ size_t i;  -src/evaluation.c:249: trailing whitespace. -+  -src/evaluation.c:250: trailing whitespace. -+ if (result == NULL ||  -src/evaluation.c:251: trailing whitespace. -+ buffer == NULL ||  -src/evaluation.c:252: trailing whitespace. -+ buffer_capacity == 0U) {  -src/evaluation.c:253: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/evaluation.c:254: trailing whitespace. -+ }  -src/evaluation.c:255: trailing whitespace. -+  -src/evaluation.c:256: trailing whitespace. -+ buffer[0] = '\0';  -src/evaluation.c:257: trailing whitespace. -+ offset = 0U;  -src/evaluation.c:258: trailing whitespace. -+  -src/evaluation.c:259: trailing whitespace. -+ append_text(  -src/evaluation.c:260: trailing whitespace. -+ buffer,  -src/evaluation.c:261: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:262: trailing whitespace. -+ &offset,  -src/evaluation.c:263: trailing whitespace. -+ "dominant_pattern=%s\n",  -src/evaluation.c:264: trailing whitespace. -+ cameff_pattern_name(  -src/evaluation.c:265: trailing whitespace. -+ result->patterns.dominant_pattern  -src/evaluation.c:266: trailing whitespace. -+ )  -src/evaluation.c:267: trailing whitespace. -+ );  -src/evaluation.c:268: trailing whitespace. -+  -src/evaluation.c:269: trailing whitespace. -+ append_text(  -src/evaluation.c:270: trailing whitespace. -+ buffer,  -src/evaluation.c:271: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:272: trailing whitespace. -+ &offset,  -src/evaluation.c:273: trailing whitespace. -+ "classification_confidence=%.6f\n",  -src/evaluation.c:274: trailing whitespace. -+ result->patterns.classification_confidence  -src/evaluation.c:275: trailing whitespace. -+ );  -src/evaluation.c:276: trailing whitespace. -+  -src/evaluation.c:277: trailing whitespace. -+ append_text(  -src/evaluation.c:278: trailing whitespace. -+ buffer,  -src/evaluation.c:279: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:280: trailing whitespace. -+ &offset,  -src/evaluation.c:281: trailing whitespace. -+ "fused_hazard_evidence=%.6f\n",  -src/evaluation.c:282: trailing whitespace. -+ result->fusion.hazard_evidence  -src/evaluation.c:283: trailing whitespace. -+ );  -src/evaluation.c:284: trailing whitespace. -+  -src/evaluation.c:285: trailing whitespace. -+ append_text(  -src/evaluation.c:286: trailing whitespace. -+ buffer,  -src/evaluation.c:287: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:288: trailing whitespace. -+ &offset,  -src/evaluation.c:289: trailing whitespace. -+ "fused_preparation_evidence=%.6f\n",  -src/evaluation.c:290: trailing whitespace. -+ result->fusion.preparation_evidence  -src/evaluation.c:291: trailing whitespace. -+ );  -src/evaluation.c:292: trailing whitespace. -+  -src/evaluation.c:293: trailing whitespace. -+ append_text(  -src/evaluation.c:294: trailing whitespace. -+ buffer,  -src/evaluation.c:295: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:296: trailing whitespace. -+ &offset,  -src/evaluation.c:297: trailing whitespace. -+ "fused_cascade_evidence=%.6f\n",  -src/evaluation.c:298: trailing whitespace. -+ result->fusion.cascade_evidence  -src/evaluation.c:299: trailing whitespace. -+ );  -src/evaluation.c:300: trailing whitespace. -+  -src/evaluation.c:301: trailing whitespace. -+ append_text(  -src/evaluation.c:302: trailing whitespace. -+ buffer,  -src/evaluation.c:303: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:304: trailing whitespace. -+ &offset,  -src/evaluation.c:305: trailing whitespace. -+ "fused_confidence=%.6f\n",  -src/evaluation.c:306: trailing whitespace. -+ result->fusion.fused_confidence  -src/evaluation.c:307: trailing whitespace. -+ );  -src/evaluation.c:308: trailing whitespace. -+  -src/evaluation.c:309: trailing whitespace. -+ append_text(  -src/evaluation.c:310: trailing whitespace. -+ buffer,  -src/evaluation.c:311: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:312: trailing whitespace. -+ &offset,  -src/evaluation.c:313: trailing whitespace. -+ "expert_coverage=%.6f\n",  -src/evaluation.c:314: trailing whitespace. -+ result->fusion.expert_coverage  -src/evaluation.c:315: trailing whitespace. -+ );  -src/evaluation.c:316: trailing whitespace. -+  -src/evaluation.c:317: trailing whitespace. -+ append_text(  -src/evaluation.c:318: trailing whitespace. -+ buffer,  -src/evaluation.c:319: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:320: trailing whitespace. -+ &offset,  -src/evaluation.c:321: trailing whitespace. -+ "decision=%s\n",  -src/evaluation.c:322: trailing whitespace. -+ decision_name(result->fusion.decision)  -src/evaluation.c:323: trailing whitespace. -+ );  -src/evaluation.c:324: trailing whitespace. -+  -src/evaluation.c:325: trailing whitespace. -+ for (i = 0U;  -src/evaluation.c:326: trailing whitespace. -+ i < result->fusion.expert_result_count;  -src/evaluation.c:327: trailing whitespace. -+ ++i) {  -src/evaluation.c:328: trailing whitespace. -+ const cameff_expert_result_t *expert;  -src/evaluation.c:329: trailing whitespace. -+  -src/evaluation.c:330: trailing whitespace. -+ expert = &result->fusion.expert_results[i];  -src/evaluation.c:331: trailing whitespace. -+  -src/evaluation.c:332: trailing whitespace. -+ append_text(  -src/evaluation.c:333: trailing whitespace. -+ buffer,  -src/evaluation.c:334: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:335: trailing whitespace. -+ &offset,  -src/evaluation.c:336: trailing whitespace. -+ "\nexpert=%s\n",  -src/evaluation.c:337: trailing whitespace. -+ expert->expert_name  -src/evaluation.c:338: trailing whitespace. -+ );  -src/evaluation.c:339: trailing whitespace. -+  -src/evaluation.c:340: trailing whitespace. -+ append_text(  -src/evaluation.c:341: trailing whitespace. -+ buffer,  -src/evaluation.c:342: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:343: trailing whitespace. -+ &offset,  -src/evaluation.c:344: trailing whitespace. -+ "status=%s\n",  -src/evaluation.c:345: trailing whitespace. -+ expert_status_name(expert->status)  -src/evaluation.c:346: trailing whitespace. -+ );  -src/evaluation.c:347: trailing whitespace. -+  -src/evaluation.c:348: trailing whitespace. -+ append_text(  -src/evaluation.c:349: trailing whitespace. -+ buffer,  -src/evaluation.c:350: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:351: trailing whitespace. -+ &offset,  -src/evaluation.c:352: trailing whitespace. -+ "applicability=%.6f\n",  -src/evaluation.c:353: trailing whitespace. -+ expert->applicability  -src/evaluation.c:354: trailing whitespace. -+ );  -src/evaluation.c:355: trailing whitespace. -+  -src/evaluation.c:356: trailing whitespace. -+ append_text(  -src/evaluation.c:357: trailing whitespace. -+ buffer,  -src/evaluation.c:358: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:359: trailing whitespace. -+ &offset,  -src/evaluation.c:360: trailing whitespace. -+ "routing_strength=%.6f\n",  -src/evaluation.c:361: trailing whitespace. -+ expert->routing_strength  -src/evaluation.c:362: trailing whitespace. -+ );  -src/evaluation.c:363: trailing whitespace. -+  -src/evaluation.c:364: trailing whitespace. -+ append_text(  -src/evaluation.c:365: trailing whitespace. -+ buffer,  -src/evaluation.c:366: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:367: trailing whitespace. -+ &offset,  -src/evaluation.c:368: trailing whitespace. -+ "confidence=%.6f\n",  -src/evaluation.c:369: trailing whitespace. -+ expert->confidence  -src/evaluation.c:370: trailing whitespace. -+ );  -src/evaluation.c:371: trailing whitespace. -+  -src/evaluation.c:372: trailing whitespace. -+ append_text(  -src/evaluation.c:373: trailing whitespace. -+ buffer,  -src/evaluation.c:374: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:375: trailing whitespace. -+ &offset,  -src/evaluation.c:376: trailing whitespace. -+ "hazard_evidence=%.6f\n",  -src/evaluation.c:377: trailing whitespace. -+ expert->hazard_evidence  -src/evaluation.c:378: trailing whitespace. -+ );  -src/evaluation.c:379: trailing whitespace. -+  -src/evaluation.c:380: trailing whitespace. -+ append_text(  -src/evaluation.c:381: trailing whitespace. -+ buffer,  -src/evaluation.c:382: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:383: trailing whitespace. -+ &offset,  -src/evaluation.c:384: trailing whitespace. -+ "preparation_evidence=%.6f\n",  -src/evaluation.c:385: trailing whitespace. -+ expert->preparation_evidence  -src/evaluation.c:386: trailing whitespace. -+ );  -src/evaluation.c:387: trailing whitespace. -+  -src/evaluation.c:388: trailing whitespace. -+ append_text(  -src/evaluation.c:389: trailing whitespace. -+ buffer,  -src/evaluation.c:390: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:391: trailing whitespace. -+ &offset,  -src/evaluation.c:392: trailing whitespace. -+ "cascade_evidence=%.6f\n",  -src/evaluation.c:393: trailing whitespace. -+ expert->cascade_evidence  -src/evaluation.c:394: trailing whitespace. -+ );  -src/evaluation.c:395: trailing whitespace. -+  -src/evaluation.c:396: trailing whitespace. -+ append_text(  -src/evaluation.c:397: trailing whitespace. -+ buffer,  -src/evaluation.c:398: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:399: trailing whitespace. -+ &offset,  -src/evaluation.c:400: trailing whitespace. -+ "expert_decision=%s\n",  -src/evaluation.c:401: trailing whitespace. -+ decision_name(expert->decision)  -src/evaluation.c:402: trailing whitespace. -+ );  -src/evaluation.c:403: trailing whitespace. -+  -src/evaluation.c:404: trailing whitespace. -+ append_text(  -src/evaluation.c:405: trailing whitespace. -+ buffer,  -src/evaluation.c:406: trailing whitespace. -+ buffer_capacity,  -src/evaluation.c:407: trailing whitespace. -+ &offset,  -src/evaluation.c:408: trailing whitespace. -+ "explanation=%s\n",  -src/evaluation.c:409: trailing whitespace. -+ expert->explanation  -src/evaluation.c:410: trailing whitespace. -+ );  -src/evaluation.c:411: trailing whitespace. -+ }  -src/evaluation.c:412: trailing whitespace. -+  -src/evaluation.c:413: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/expert_registry.c:1: trailing whitespace. -+#include "cameff/expert_registry.h"  -src/expert_registry.c:2: trailing whitespace. -+  -src/expert_registry.c:3: trailing whitespace. -+#include   -src/expert_registry.c:4: trailing whitespace. -+#include   -src/expert_registry.c:5: trailing whitespace. -+#include   -src/expert_registry.c:6: trailing whitespace. -+  -src/expert_registry.c:7: trailing whitespace. -+static double clamp01(double value) {  -src/expert_registry.c:8: trailing whitespace. -+ if (!isfinite(value)) {  -src/expert_registry.c:9: trailing whitespace. -+ return 0.0;  -src/expert_registry.c:10: trailing whitespace. -+ }  -src/expert_registry.c:11: trailing whitespace. -+  -src/expert_registry.c:12: trailing whitespace. -+ if (value < 0.0) {  -src/expert_registry.c:13: trailing whitespace. -+ return 0.0;  -src/expert_registry.c:14: trailing whitespace. -+ }  -src/expert_registry.c:15: trailing whitespace. -+  -src/expert_registry.c:16: trailing whitespace. -+ if (value > 1.0) {  -src/expert_registry.c:17: trailing whitespace. -+ return 1.0;  -src/expert_registry.c:18: trailing whitespace. -+ }  -src/expert_registry.c:19: trailing whitespace. -+  -src/expert_registry.c:20: trailing whitespace. -+ return value;  -src/expert_registry.c:21: trailing whitespace. -+}  -src/expert_registry.c:22: trailing whitespace. -+  -src/expert_registry.c:23: trailing whitespace. -+static double pattern_membership(  -src/expert_registry.c:24: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/expert_registry.c:25: trailing whitespace. -+ cameff_pattern_id_t pattern_id  -src/expert_registry.c:26: trailing whitespace. -+) {  -src/expert_registry.c:27: trailing whitespace. -+ size_t i;  -src/expert_registry.c:28: trailing whitespace. -+  -src/expert_registry.c:29: trailing whitespace. -+ /*  -src/expert_registry.c:30: trailing whitespace. -+ * UNKNOWN is used by process-neutral experts such as the  -src/expert_registry.c:31: trailing whitespace. -+ * Milestone 1 baseline expert. Such experts are globally routed.  -src/expert_registry.c:32: trailing whitespace. -+ */  -src/expert_registry.c:33: trailing whitespace. -+ if (pattern_id == CAMEFF_PATTERN_UNKNOWN) {  -src/expert_registry.c:34: trailing whitespace. -+ return 1.0;  -src/expert_registry.c:35: trailing whitespace. -+ }  -src/expert_registry.c:36: trailing whitespace. -+  -src/expert_registry.c:37: trailing whitespace. -+ if (patterns == NULL) {  -src/expert_registry.c:38: trailing whitespace. -+ return 0.0;  -src/expert_registry.c:39: trailing whitespace. -+ }  -src/expert_registry.c:40: trailing whitespace. -+  -src/expert_registry.c:41: trailing whitespace. -+ for (i = 0U; i < patterns->count; ++i) {  -src/expert_registry.c:42: trailing whitespace. -+ if (patterns->scores[i].pattern_id == pattern_id) {  -src/expert_registry.c:43: trailing whitespace. -+ return clamp01(patterns->scores[i].membership);  -src/expert_registry.c:44: trailing whitespace. -+ }  -src/expert_registry.c:45: trailing whitespace. -+ }  -src/expert_registry.c:46: trailing whitespace. -+  -src/expert_registry.c:47: trailing whitespace. -+ return 0.0;  -src/expert_registry.c:48: trailing whitespace. -+}  -src/expert_registry.c:49: trailing whitespace. -+  -src/expert_registry.c:50: trailing whitespace. -+static void initialize_abstention(  -src/expert_registry.c:51: trailing whitespace. -+ const cameff_expert_t *expert,  -src/expert_registry.c:52: trailing whitespace. -+ double applicability,  -src/expert_registry.c:53: trailing whitespace. -+ double routing_strength,  -src/expert_registry.c:54: trailing whitespace. -+ cameff_expert_result_t *result  -src/expert_registry.c:55: trailing whitespace. -+) {  -src/expert_registry.c:56: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/expert_registry.c:57: trailing whitespace. -+  -src/expert_registry.c:58: trailing whitespace. -+ (void)snprintf(  -src/expert_registry.c:59: trailing whitespace. -+ result->expert_name,  -src/expert_registry.c:60: trailing whitespace. -+ sizeof(result->expert_name),  -src/expert_registry.c:61: trailing whitespace. -+ "%s",  -src/expert_registry.c:62: trailing whitespace. -+ expert->name  -src/expert_registry.c:63: trailing whitespace. -+ );  -src/expert_registry.c:64: trailing whitespace. -+  -src/expert_registry.c:65: trailing whitespace. -+ result->applicability = applicability;  -src/expert_registry.c:66: trailing whitespace. -+ result->routing_strength = routing_strength;  -src/expert_registry.c:67: trailing whitespace. -+ result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA;  -src/expert_registry.c:68: trailing whitespace. -+ result->status = CAMEFF_EXPERT_ABSTAIN;  -src/expert_registry.c:69: trailing whitespace. -+  -src/expert_registry.c:70: trailing whitespace. -+ (void)snprintf(  -src/expert_registry.c:71: trailing whitespace. -+ result->explanation,  -src/expert_registry.c:72: trailing whitespace. -+ sizeof(result->explanation),  -src/expert_registry.c:73: trailing whitespace. -+ "Expert routing strength %.6f is below the activation threshold.",  -src/expert_registry.c:74: trailing whitespace. -+ routing_strength  -src/expert_registry.c:75: trailing whitespace. -+ );  -src/expert_registry.c:76: trailing whitespace. -+}  -src/expert_registry.c:77: trailing whitespace. -+  -src/expert_registry.c:78: trailing whitespace. -+void cameff_expert_registry_init(  -src/expert_registry.c:79: trailing whitespace. -+ cameff_expert_registry_t *registry  -src/expert_registry.c:80: trailing whitespace. -+) {  -src/expert_registry.c:81: trailing whitespace. -+ if (registry == NULL) {  -src/expert_registry.c:82: trailing whitespace. -+ return;  -src/expert_registry.c:83: trailing whitespace. -+ }  -src/expert_registry.c:84: trailing whitespace. -+  -src/expert_registry.c:85: trailing whitespace. -+ (void)memset(registry, 0, sizeof(*registry));  -src/expert_registry.c:86: trailing whitespace. -+}  -src/expert_registry.c:87: trailing whitespace. -+  -src/expert_registry.c:88: trailing whitespace. -+cameff_status_t cameff_expert_registry_register(  -src/expert_registry.c:89: trailing whitespace. -+ cameff_expert_registry_t *registry,  -src/expert_registry.c:90: trailing whitespace. -+ const cameff_expert_t *expert  -src/expert_registry.c:91: trailing whitespace. -+) {  -src/expert_registry.c:92: trailing whitespace. -+ size_t i;  -src/expert_registry.c:93: trailing whitespace. -+  -src/expert_registry.c:94: trailing whitespace. -+ if (registry == NULL ||  -src/expert_registry.c:95: trailing whitespace. -+ expert == NULL ||  -src/expert_registry.c:96: trailing whitespace. -+ expert->name == NULL ||  -src/expert_registry.c:97: trailing whitespace. -+ expert->applicability == NULL ||  -src/expert_registry.c:98: trailing whitespace. -+ expert->evaluate == NULL) {  -src/expert_registry.c:99: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/expert_registry.c:100: trailing whitespace. -+ }  -src/expert_registry.c:101: trailing whitespace. -+  -src/expert_registry.c:102: trailing whitespace. -+ if (registry->count >= CAMEFF_MAX_EXPERTS) {  -src/expert_registry.c:103: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/expert_registry.c:104: trailing whitespace. -+ }  -src/expert_registry.c:105: trailing whitespace. -+  -src/expert_registry.c:106: trailing whitespace. -+ for (i = 0U; i < registry->count; ++i) {  -src/expert_registry.c:107: trailing whitespace. -+ if (strcmp(  -src/expert_registry.c:108: trailing whitespace. -+ registry->experts[i]->name,  -src/expert_registry.c:109: trailing whitespace. -+ expert->name  -src/expert_registry.c:110: trailing whitespace. -+ ) == 0) {  -src/expert_registry.c:111: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/expert_registry.c:112: trailing whitespace. -+ }  -src/expert_registry.c:113: trailing whitespace. -+ }  -src/expert_registry.c:114: trailing whitespace. -+  -src/expert_registry.c:115: trailing whitespace. -+ registry->experts[registry->count] = expert;  -src/expert_registry.c:116: trailing whitespace. -+ ++registry->count;  -src/expert_registry.c:117: trailing whitespace. -+  -src/expert_registry.c:118: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/expert_registry.c:119: trailing whitespace. -+}  -src/expert_registry.c:120: trailing whitespace. -+  -src/expert_registry.c:121: trailing whitespace. -+size_t cameff_expert_registry_count(  -src/expert_registry.c:122: trailing whitespace. -+ const cameff_expert_registry_t *registry  -src/expert_registry.c:123: trailing whitespace. -+) {  -src/expert_registry.c:124: trailing whitespace. -+ if (registry == NULL) {  -src/expert_registry.c:125: trailing whitespace. -+ return 0U;  -src/expert_registry.c:126: trailing whitespace. -+ }  -src/expert_registry.c:127: trailing whitespace. -+  -src/expert_registry.c:128: trailing whitespace. -+ return registry->count;  -src/expert_registry.c:129: trailing whitespace. -+}  -src/expert_registry.c:130: trailing whitespace. -+  -src/expert_registry.c:131: trailing whitespace. -+const cameff_expert_t *cameff_expert_registry_get(  -src/expert_registry.c:132: trailing whitespace. -+ const cameff_expert_registry_t *registry,  -src/expert_registry.c:133: trailing whitespace. -+ size_t index  -src/expert_registry.c:134: trailing whitespace. -+) {  -src/expert_registry.c:135: trailing whitespace. -+ if (registry == NULL || index >= registry->count) {  -src/expert_registry.c:136: trailing whitespace. -+ return NULL;  -src/expert_registry.c:137: trailing whitespace. -+ }  -src/expert_registry.c:138: trailing whitespace. -+  -src/expert_registry.c:139: trailing whitespace. -+ return registry->experts[index];  -src/expert_registry.c:140: trailing whitespace. -+}  -src/expert_registry.c:141: trailing whitespace. -+  -src/expert_registry.c:142: trailing whitespace. -+double cameff_expert_routing_strength(  -src/expert_registry.c:143: trailing whitespace. -+ const cameff_expert_t *expert,  -src/expert_registry.c:144: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/expert_registry.c:145: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/expert_registry.c:146: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -src/expert_registry.c:147: trailing whitespace. -+) {  -src/expert_registry.c:148: trailing whitespace. -+ double applicability;  -src/expert_registry.c:149: trailing whitespace. -+ double membership;  -src/expert_registry.c:150: trailing whitespace. -+  -src/expert_registry.c:151: trailing whitespace. -+ if (expert == NULL ||  -src/expert_registry.c:152: trailing whitespace. -+ frame == NULL ||  -src/expert_registry.c:153: trailing whitespace. -+ expert->applicability == NULL) {  -src/expert_registry.c:154: trailing whitespace. -+ return 0.0;  -src/expert_registry.c:155: trailing whitespace. -+ }  -src/expert_registry.c:156: trailing whitespace. -+  -src/expert_registry.c:157: trailing whitespace. -+ applicability = clamp01(  -src/expert_registry.c:158: trailing whitespace. -+ expert->applicability(  -src/expert_registry.c:159: trailing whitespace. -+ frame,  -src/expert_registry.c:160: trailing whitespace. -+ region,  -src/expert_registry.c:161: trailing whitespace. -+ patterns  -src/expert_registry.c:162: trailing whitespace. -+ )  -src/expert_registry.c:163: trailing whitespace. -+ );  -src/expert_registry.c:164: trailing whitespace. -+  -src/expert_registry.c:165: trailing whitespace. -+ membership = pattern_membership(  -src/expert_registry.c:166: trailing whitespace. -+ patterns,  -src/expert_registry.c:167: trailing whitespace. -+ expert->primary_pattern  -src/expert_registry.c:168: trailing whitespace. -+ );  -src/expert_registry.c:169: trailing whitespace. -+  -src/expert_registry.c:170: trailing whitespace. -+ return clamp01(applicability * membership);  -src/expert_registry.c:171: trailing whitespace. -+}  -src/expert_registry.c:172: trailing whitespace. -+  -src/expert_registry.c:173: trailing whitespace. -+cameff_status_t cameff_expert_registry_evaluate(  -src/expert_registry.c:174: trailing whitespace. -+ const cameff_expert_registry_t *registry,  -src/expert_registry.c:175: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/expert_registry.c:176: trailing whitespace. -+ const cameff_config_t *config,  -src/expert_registry.c:177: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/expert_registry.c:178: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/expert_registry.c:179: trailing whitespace. -+ double routing_threshold,  -src/expert_registry.c:180: trailing whitespace. -+ cameff_expert_result_t *results,  -src/expert_registry.c:181: trailing whitespace. -+ size_t result_capacity,  -src/expert_registry.c:182: trailing whitespace. -+ size_t *result_count  -src/expert_registry.c:183: trailing whitespace. -+) {  -src/expert_registry.c:184: trailing whitespace. -+ size_t i;  -src/expert_registry.c:185: trailing whitespace. -+  -src/expert_registry.c:186: trailing whitespace. -+ if (registry == NULL ||  -src/expert_registry.c:187: trailing whitespace. -+ frame == NULL ||  -src/expert_registry.c:188: trailing whitespace. -+ config == NULL ||  -src/expert_registry.c:189: trailing whitespace. -+ results == NULL ||  -src/expert_registry.c:190: trailing whitespace. -+ result_count == NULL ||  -src/expert_registry.c:191: trailing whitespace. -+ !isfinite(routing_threshold) ||  -src/expert_registry.c:192: trailing whitespace. -+ routing_threshold < 0.0 ||  -src/expert_registry.c:193: trailing whitespace. -+ routing_threshold > 1.0 ||  -src/expert_registry.c:194: trailing whitespace. -+ result_capacity < registry->count) {  -src/expert_registry.c:195: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/expert_registry.c:196: trailing whitespace. -+ }  -src/expert_registry.c:197: trailing whitespace. -+  -src/expert_registry.c:198: trailing whitespace. -+ *result_count = 0U;  -src/expert_registry.c:199: trailing whitespace. -+  -src/expert_registry.c:200: trailing whitespace. -+ for (i = 0U; i < registry->count; ++i) {  -src/expert_registry.c:201: trailing whitespace. -+ const cameff_expert_t *expert;  -src/expert_registry.c:202: trailing whitespace. -+ cameff_expert_result_t *result;  -src/expert_registry.c:203: trailing whitespace. -+ cameff_status_t status;  -src/expert_registry.c:204: trailing whitespace. -+ double applicability;  -src/expert_registry.c:205: trailing whitespace. -+ double routing_strength;  -src/expert_registry.c:206: trailing whitespace. -+  -src/expert_registry.c:207: trailing whitespace. -+ expert = registry->experts[i];  -src/expert_registry.c:208: trailing whitespace. -+ result = &results[i];  -src/expert_registry.c:209: trailing whitespace. -+  -src/expert_registry.c:210: trailing whitespace. -+ applicability = clamp01(  -src/expert_registry.c:211: trailing whitespace. -+ expert->applicability(  -src/expert_registry.c:212: trailing whitespace. -+ frame,  -src/expert_registry.c:213: trailing whitespace. -+ region,  -src/expert_registry.c:214: trailing whitespace. -+ patterns  -src/expert_registry.c:215: trailing whitespace. -+ )  -src/expert_registry.c:216: trailing whitespace. -+ );  -src/expert_registry.c:217: trailing whitespace. -+  -src/expert_registry.c:218: trailing whitespace. -+ routing_strength =  -src/expert_registry.c:219: trailing whitespace. -+ cameff_expert_routing_strength(  -src/expert_registry.c:220: trailing whitespace. -+ expert,  -src/expert_registry.c:221: trailing whitespace. -+ frame,  -src/expert_registry.c:222: trailing whitespace. -+ region,  -src/expert_registry.c:223: trailing whitespace. -+ patterns  -src/expert_registry.c:224: trailing whitespace. -+ );  -src/expert_registry.c:225: trailing whitespace. -+  -src/expert_registry.c:226: trailing whitespace. -+ if (routing_strength < routing_threshold) {  -src/expert_registry.c:227: trailing whitespace. -+ initialize_abstention(  -src/expert_registry.c:228: trailing whitespace. -+ expert,  -src/expert_registry.c:229: trailing whitespace. -+ applicability,  -src/expert_registry.c:230: trailing whitespace. -+ routing_strength,  -src/expert_registry.c:231: trailing whitespace. -+ result  -src/expert_registry.c:232: trailing whitespace. -+ );  -src/expert_registry.c:233: trailing whitespace. -+  -src/expert_registry.c:234: trailing whitespace. -+ ++(*result_count);  -src/expert_registry.c:235: trailing whitespace. -+ continue;  -src/expert_registry.c:236: trailing whitespace. -+ }  -src/expert_registry.c:237: trailing whitespace. -+  -src/expert_registry.c:238: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/expert_registry.c:239: trailing whitespace. -+  -src/expert_registry.c:240: trailing whitespace. -+ status = expert->evaluate(  -src/expert_registry.c:241: trailing whitespace. -+ frame,  -src/expert_registry.c:242: trailing whitespace. -+ config,  -src/expert_registry.c:243: trailing whitespace. -+ region,  -src/expert_registry.c:244: trailing whitespace. -+ patterns,  -src/expert_registry.c:245: trailing whitespace. -+ result  -src/expert_registry.c:246: trailing whitespace. -+ );  -src/expert_registry.c:247: trailing whitespace. -+  -src/expert_registry.c:248: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK) {  -src/expert_registry.c:249: trailing whitespace. -+ return status;  -src/expert_registry.c:250: trailing whitespace. -+ }  -src/expert_registry.c:251: trailing whitespace. -+  -src/expert_registry.c:252: trailing whitespace. -+ result->applicability = applicability;  -src/expert_registry.c:253: trailing whitespace. -+ result->routing_strength = routing_strength;  -src/expert_registry.c:254: trailing whitespace. -+  -src/expert_registry.c:255: trailing whitespace. -+ if (result->expert_name[0] == '\0') {  -src/expert_registry.c:256: trailing whitespace. -+ (void)snprintf(  -src/expert_registry.c:257: trailing whitespace. -+ result->expert_name,  -src/expert_registry.c:258: trailing whitespace. -+ sizeof(result->expert_name),  -src/expert_registry.c:259: trailing whitespace. -+ "%s",  -src/expert_registry.c:260: trailing whitespace. -+ expert->name  -src/expert_registry.c:261: trailing whitespace. -+ );  -src/expert_registry.c:262: trailing whitespace. -+ }  -src/expert_registry.c:263: trailing whitespace. -+  -src/expert_registry.c:264: trailing whitespace. -+ ++(*result_count);  -src/expert_registry.c:265: trailing whitespace. -+ }  -src/expert_registry.c:266: trailing whitespace. -+  -src/expert_registry.c:267: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/experts/baseline_expert.c:1: trailing whitespace. -+#include "cameff/baseline_expert.h"  -src/experts/baseline_expert.c:2: trailing whitespace. -+  -src/experts/baseline_expert.c:3: trailing whitespace. -+#include   -src/experts/baseline_expert.c:4: trailing whitespace. -+  -src/experts/baseline_expert.c:5: trailing whitespace. -+#include "cameff/framework.h"  -src/experts/baseline_expert.c:6: trailing whitespace. -+  -src/experts/baseline_expert.c:7: trailing whitespace. -+static double baseline_applicability(  -src/experts/baseline_expert.c:8: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/baseline_expert.c:9: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/baseline_expert.c:10: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -src/experts/baseline_expert.c:11: trailing whitespace. -+) {  -src/experts/baseline_expert.c:12: trailing whitespace. -+ (void)region;  -src/experts/baseline_expert.c:13: trailing whitespace. -+ (void)patterns;  -src/experts/baseline_expert.c:14: trailing whitespace. -+  -src/experts/baseline_expert.c:15: trailing whitespace. -+ if (frame == NULL) {  -src/experts/baseline_expert.c:16: trailing whitespace. -+ return 0.0;  -src/experts/baseline_expert.c:17: trailing whitespace. -+ }  -src/experts/baseline_expert.c:18: trailing whitespace. -+  -src/experts/baseline_expert.c:19: trailing whitespace. -+ return 1.0;  -src/experts/baseline_expert.c:20: trailing whitespace. -+}  -src/experts/baseline_expert.c:21: trailing whitespace. -+  -src/experts/baseline_expert.c:22: trailing whitespace. -+static cameff_status_t baseline_evaluate(  -src/experts/baseline_expert.c:23: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/baseline_expert.c:24: trailing whitespace. -+ const cameff_config_t *config,  -src/experts/baseline_expert.c:25: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/baseline_expert.c:26: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/experts/baseline_expert.c:27: trailing whitespace. -+ cameff_expert_result_t *result  -src/experts/baseline_expert.c:28: trailing whitespace. -+) {  -src/experts/baseline_expert.c:29: trailing whitespace. -+ cameff_assessment_t assessment;  -src/experts/baseline_expert.c:30: trailing whitespace. -+  -src/experts/baseline_expert.c:31: trailing whitespace. -+ (void)region;  -src/experts/baseline_expert.c:32: trailing whitespace. -+ (void)patterns;  -src/experts/baseline_expert.c:33: trailing whitespace. -+  -src/experts/baseline_expert.c:34: trailing whitespace. -+ if (frame == NULL || config == NULL || result == NULL) {  -src/experts/baseline_expert.c:35: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/experts/baseline_expert.c:36: trailing whitespace. -+ }  -src/experts/baseline_expert.c:37: trailing whitespace. -+  -src/experts/baseline_expert.c:38: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/experts/baseline_expert.c:39: trailing whitespace. -+  -src/experts/baseline_expert.c:40: trailing whitespace. -+ assessment = cameff_assess(frame, config);  -src/experts/baseline_expert.c:41: trailing whitespace. -+  -src/experts/baseline_expert.c:42: trailing whitespace. -+ (void)strncpy(  -src/experts/baseline_expert.c:43: trailing whitespace. -+ result->expert_name,  -src/experts/baseline_expert.c:44: trailing whitespace. -+ "baseline",  -src/experts/baseline_expert.c:45: trailing whitespace. -+ CAMEFF_MAX_EXPERT_NAME - 1U  -src/experts/baseline_expert.c:46: trailing whitespace. -+ );  -src/experts/baseline_expert.c:47: trailing whitespace. -+  -src/experts/baseline_expert.c:48: trailing whitespace. -+ result->hazard_evidence = assessment.evidence_score;  -src/experts/baseline_expert.c:49: trailing whitespace. -+  -src/experts/baseline_expert.c:50: trailing whitespace. -+ /*  -src/experts/baseline_expert.c:51: trailing whitespace. -+ * Milestone 1 produced a generic evidence score. It did not distinguish  -src/experts/baseline_expert.c:52: trailing whitespace. -+ * preparation from cascade processes.  -src/experts/baseline_expert.c:53: trailing whitespace. -+ */  -src/experts/baseline_expert.c:54: trailing whitespace. -+ result->preparation_evidence = 0.0;  -src/experts/baseline_expert.c:55: trailing whitespace. -+ result->cascade_evidence = 0.0;  -src/experts/baseline_expert.c:56: trailing whitespace. -+  -src/experts/baseline_expert.c:57: trailing whitespace. -+ result->confidence = assessment.confidence;  -src/experts/baseline_expert.c:58: trailing whitespace. -+ result->applicability = 1.0;  -src/experts/baseline_expert.c:59: trailing whitespace. -+ result->decision = assessment.level;  -src/experts/baseline_expert.c:60: trailing whitespace. -+  -src/experts/baseline_expert.c:61: trailing whitespace. -+ if (assessment.level == CAMEFF_DECISION_INSUFFICIENT_DATA) {  -src/experts/baseline_expert.c:62: trailing whitespace. -+ result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA;  -src/experts/baseline_expert.c:63: trailing whitespace. -+  -src/experts/baseline_expert.c:64: trailing whitespace. -+ (void)strncpy(  -src/experts/baseline_expert.c:65: trailing whitespace. -+ result->explanation,  -src/experts/baseline_expert.c:66: trailing whitespace. -+ "Milestone 1 baseline assessment reported insufficient data.",  -src/experts/baseline_expert.c:67: trailing whitespace. -+ CAMEFF_MAX_EXPLANATION - 1U  -src/experts/baseline_expert.c:68: trailing whitespace. -+ );  -src/experts/baseline_expert.c:69: trailing whitespace. -+ } else {  -src/experts/baseline_expert.c:70: trailing whitespace. -+ result->status = CAMEFF_EXPERT_OK;  -src/experts/baseline_expert.c:71: trailing whitespace. -+  -src/experts/baseline_expert.c:72: trailing whitespace. -+ (void)strncpy(  -src/experts/baseline_expert.c:73: trailing whitespace. -+ result->explanation,  -src/experts/baseline_expert.c:74: trailing whitespace. -+ "Generic Milestone 1 weighted evidence assessment.",  -src/experts/baseline_expert.c:75: trailing whitespace. -+ CAMEFF_MAX_EXPLANATION - 1U  -src/experts/baseline_expert.c:76: trailing whitespace. -+ );  -src/experts/baseline_expert.c:77: trailing whitespace. -+ }  -src/experts/baseline_expert.c:78: trailing whitespace. -+  -src/experts/baseline_expert.c:79: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/experts/baseline_expert.c:80: trailing whitespace. -+}  -src/experts/baseline_expert.c:81: trailing whitespace. -+  -src/experts/baseline_expert.c:82: trailing whitespace. -+const cameff_expert_t *cameff_baseline_expert(void) {  -src/experts/baseline_expert.c:83: trailing whitespace. -+ static const cameff_expert_t expert = {  -src/experts/baseline_expert.c:84: trailing whitespace. -+ "baseline",  -src/experts/baseline_expert.c:85: trailing whitespace. -+ CAMEFF_PATTERN_UNKNOWN,  -src/experts/baseline_expert.c:86: trailing whitespace. -+ baseline_applicability,  -src/experts/baseline_expert.c:87: trailing whitespace. -+ baseline_evaluate  -src/experts/baseline_expert.c:88: trailing whitespace. -+ };  -src/experts/baseline_expert.c:89: trailing whitespace. -+  -src/experts/baseline_expert.c:90: trailing whitespace. -+ return &expert;  -src/experts/cascade_expert.c:1: trailing whitespace. -+#include "cameff/cascade_expert.h"  -src/experts/cascade_expert.c:2: trailing whitespace. -+  -src/experts/cascade_expert.c:3: trailing whitespace. -+#include   -src/experts/cascade_expert.c:4: trailing whitespace. -+#include   -src/experts/cascade_expert.c:5: trailing whitespace. -+#include   -src/experts/cascade_expert.c:6: trailing whitespace. -+  -src/experts/cascade_expert.c:7: trailing whitespace. -+static double clamp01(double value) {  -src/experts/cascade_expert.c:8: trailing whitespace. -+ if (!isfinite(value)) {  -src/experts/cascade_expert.c:9: trailing whitespace. -+ return 0.0;  -src/experts/cascade_expert.c:10: trailing whitespace. -+ }  -src/experts/cascade_expert.c:11: trailing whitespace. -+  -src/experts/cascade_expert.c:12: trailing whitespace. -+ if (value < 0.0) {  -src/experts/cascade_expert.c:13: trailing whitespace. -+ return 0.0;  -src/experts/cascade_expert.c:14: trailing whitespace. -+ }  -src/experts/cascade_expert.c:15: trailing whitespace. -+  -src/experts/cascade_expert.c:16: trailing whitespace. -+ if (value > 1.0) {  -src/experts/cascade_expert.c:17: trailing whitespace. -+ return 1.0;  -src/experts/cascade_expert.c:18: trailing whitespace. -+ }  -src/experts/cascade_expert.c:19: trailing whitespace. -+  -src/experts/cascade_expert.c:20: trailing whitespace. -+ return value;  -src/experts/cascade_expert.c:21: trailing whitespace. -+}  -src/experts/cascade_expert.c:22: trailing whitespace. -+  -src/experts/cascade_expert.c:23: trailing whitespace. -+static double effective_signal(  -src/experts/cascade_expert.c:24: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/cascade_expert.c:25: trailing whitespace. -+ cameff_signal_id_t signal_id  -src/experts/cascade_expert.c:26: trailing whitespace. -+) {  -src/experts/cascade_expert.c:27: trailing whitespace. -+ const cameff_signal_t *signal;  -src/experts/cascade_expert.c:28: trailing whitespace. -+  -src/experts/cascade_expert.c:29: trailing whitespace. -+ signal = &frame->signals[(size_t)signal_id];  -src/experts/cascade_expert.c:30: trailing whitespace. -+  -src/experts/cascade_expert.c:31: trailing whitespace. -+ if (!signal->available) {  -src/experts/cascade_expert.c:32: trailing whitespace. -+ return 0.0;  -src/experts/cascade_expert.c:33: trailing whitespace. -+ }  -src/experts/cascade_expert.c:34: trailing whitespace. -+  -src/experts/cascade_expert.c:35: trailing whitespace. -+ return clamp01(signal->value) *  -src/experts/cascade_expert.c:36: trailing whitespace. -+ clamp01(signal->confidence);  -src/experts/cascade_expert.c:37: trailing whitespace. -+}  -src/experts/cascade_expert.c:38: trailing whitespace. -+  -src/experts/cascade_expert.c:39: trailing whitespace. -+static double cascade_applicability(  -src/experts/cascade_expert.c:40: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/cascade_expert.c:41: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/cascade_expert.c:42: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -src/experts/cascade_expert.c:43: trailing whitespace. -+) {  -src/experts/cascade_expert.c:44: trailing whitespace. -+ double activity;  -src/experts/cascade_expert.c:45: trailing whitespace. -+ double concentration;  -src/experts/cascade_expert.c:46: trailing whitespace. -+  -src/experts/cascade_expert.c:47: trailing whitespace. -+ (void)region;  -src/experts/cascade_expert.c:48: trailing whitespace. -+ (void)patterns;  -src/experts/cascade_expert.c:49: trailing whitespace. -+  -src/experts/cascade_expert.c:50: trailing whitespace. -+ if (frame == NULL) {  -src/experts/cascade_expert.c:51: trailing whitespace. -+ return 0.0;  -src/experts/cascade_expert.c:52: trailing whitespace. -+ }  -src/experts/cascade_expert.c:53: trailing whitespace. -+  -src/experts/cascade_expert.c:54: trailing whitespace. -+ activity = effective_signal(  -src/experts/cascade_expert.c:55: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:56: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -src/experts/cascade_expert.c:57: trailing whitespace. -+ );  -src/experts/cascade_expert.c:58: trailing whitespace. -+  -src/experts/cascade_expert.c:59: trailing whitespace. -+ concentration = effective_signal(  -src/experts/cascade_expert.c:60: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:61: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -src/experts/cascade_expert.c:62: trailing whitespace. -+ );  -src/experts/cascade_expert.c:63: trailing whitespace. -+  -src/experts/cascade_expert.c:64: trailing whitespace. -+ return clamp01(  -src/experts/cascade_expert.c:65: trailing whitespace. -+ (0.55 * activity) +  -src/experts/cascade_expert.c:66: trailing whitespace. -+ (0.45 * concentration)  -src/experts/cascade_expert.c:67: trailing whitespace. -+ );  -src/experts/cascade_expert.c:68: trailing whitespace. -+}  -src/experts/cascade_expert.c:69: trailing whitespace. -+  -src/experts/cascade_expert.c:70: trailing whitespace. -+static cameff_status_t cascade_evaluate(  -src/experts/cascade_expert.c:71: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/cascade_expert.c:72: trailing whitespace. -+ const cameff_config_t *config,  -src/experts/cascade_expert.c:73: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/cascade_expert.c:74: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/experts/cascade_expert.c:75: trailing whitespace. -+ cameff_expert_result_t *result  -src/experts/cascade_expert.c:76: trailing whitespace. -+) {  -src/experts/cascade_expert.c:77: trailing whitespace. -+ double activity;  -src/experts/cascade_expert.c:78: trailing whitespace. -+ double acceleration;  -src/experts/cascade_expert.c:79: trailing whitespace. -+ double concentration;  -src/experts/cascade_expert.c:80: trailing whitespace. -+ double magnitude;  -src/experts/cascade_expert.c:81: trailing whitespace. -+ double completeness;  -src/experts/cascade_expert.c:82: trailing whitespace. -+ double cascade;  -src/experts/cascade_expert.c:83: trailing whitespace. -+ double preparation;  -src/experts/cascade_expert.c:84: trailing whitespace. -+ double hazard;  -src/experts/cascade_expert.c:85: trailing whitespace. -+ double confidence;  -src/experts/cascade_expert.c:86: trailing whitespace. -+  -src/experts/cascade_expert.c:87: trailing whitespace. -+ (void)config;  -src/experts/cascade_expert.c:88: trailing whitespace. -+ (void)patterns;  -src/experts/cascade_expert.c:89: trailing whitespace. -+  -src/experts/cascade_expert.c:90: trailing whitespace. -+ if (frame == NULL || region == NULL || result == NULL) {  -src/experts/cascade_expert.c:91: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/experts/cascade_expert.c:92: trailing whitespace. -+ }  -src/experts/cascade_expert.c:93: trailing whitespace. -+  -src/experts/cascade_expert.c:94: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/experts/cascade_expert.c:95: trailing whitespace. -+  -src/experts/cascade_expert.c:96: trailing whitespace. -+ activity = effective_signal(  -src/experts/cascade_expert.c:97: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:98: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -src/experts/cascade_expert.c:99: trailing whitespace. -+ );  -src/experts/cascade_expert.c:100: trailing whitespace. -+  -src/experts/cascade_expert.c:101: trailing whitespace. -+ acceleration = effective_signal(  -src/experts/cascade_expert.c:102: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:103: trailing whitespace. -+ CAMEFF_SIGNAL_TEMPORAL_ACCELERATION  -src/experts/cascade_expert.c:104: trailing whitespace. -+ );  -src/experts/cascade_expert.c:105: trailing whitespace. -+  -src/experts/cascade_expert.c:106: trailing whitespace. -+ concentration = effective_signal(  -src/experts/cascade_expert.c:107: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:108: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -src/experts/cascade_expert.c:109: trailing whitespace. -+ );  -src/experts/cascade_expert.c:110: trailing whitespace. -+  -src/experts/cascade_expert.c:111: trailing whitespace. -+ magnitude = effective_signal(  -src/experts/cascade_expert.c:112: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:113: trailing whitespace. -+ CAMEFF_SIGNAL_MAGNITUDE_TREND  -src/experts/cascade_expert.c:114: trailing whitespace. -+ );  -src/experts/cascade_expert.c:115: trailing whitespace. -+  -src/experts/cascade_expert.c:116: trailing whitespace. -+ completeness = effective_signal(  -src/experts/cascade_expert.c:117: trailing whitespace. -+ frame,  -src/experts/cascade_expert.c:118: trailing whitespace. -+ CAMEFF_SIGNAL_CATALOG_COMPLETENESS  -src/experts/cascade_expert.c:119: trailing whitespace. -+ );  -src/experts/cascade_expert.c:120: trailing whitespace. -+  -src/experts/cascade_expert.c:121: trailing whitespace. -+ cascade =  -src/experts/cascade_expert.c:122: trailing whitespace. -+ (0.35 * activity) +  -src/experts/cascade_expert.c:123: trailing whitespace. -+ (0.20 * acceleration) +  -src/experts/cascade_expert.c:124: trailing whitespace. -+ (0.30 * concentration) +  -src/experts/cascade_expert.c:125: trailing whitespace. -+ (0.05 * magnitude) +  -src/experts/cascade_expert.c:126: trailing whitespace. -+ (0.10 * completeness);  -src/experts/cascade_expert.c:127: trailing whitespace. -+  -src/experts/cascade_expert.c:128: trailing whitespace. -+ /*  -src/experts/cascade_expert.c:129: trailing whitespace. -+ * A cascade interpretation competes with preparation.  -src/experts/cascade_expert.c:130: trailing whitespace. -+ * High cascade compatibility reduces preparation evidence.  -src/experts/cascade_expert.c:131: trailing whitespace. -+ */  -src/experts/cascade_expert.c:132: trailing whitespace. -+ preparation =  -src/experts/cascade_expert.c:133: trailing whitespace. -+ clamp01(  -src/experts/cascade_expert.c:134: trailing whitespace. -+ (0.40 * acceleration) +  -src/experts/cascade_expert.c:135: trailing whitespace. -+ (0.35 * magnitude) +  -src/experts/cascade_expert.c:136: trailing whitespace. -+ (0.25 * concentration) -  -src/experts/cascade_expert.c:137: trailing whitespace. -+ (0.45 * cascade)  -src/experts/cascade_expert.c:138: trailing whitespace. -+ );  -src/experts/cascade_expert.c:139: trailing whitespace. -+  -src/experts/cascade_expert.c:140: trailing whitespace. -+ hazard =  -src/experts/cascade_expert.c:141: trailing whitespace. -+ clamp01(  -src/experts/cascade_expert.c:142: trailing whitespace. -+ (0.65 * cascade) +  -src/experts/cascade_expert.c:143: trailing whitespace. -+ (0.25 * activity) +  -src/experts/cascade_expert.c:144: trailing whitespace. -+ (0.10 * magnitude)  -src/experts/cascade_expert.c:145: trailing whitespace. -+ );  -src/experts/cascade_expert.c:146: trailing whitespace. -+  -src/experts/cascade_expert.c:147: trailing whitespace. -+ confidence =  -src/experts/cascade_expert.c:148: trailing whitespace. -+ clamp01(  -src/experts/cascade_expert.c:149: trailing whitespace. -+ (0.65 * frame->data_confidence) +  -src/experts/cascade_expert.c:150: trailing whitespace. -+ (0.20 * region->catalog_completeness) +  -src/experts/cascade_expert.c:151: trailing whitespace. -+ (0.15 * region->station_coverage)  -src/experts/cascade_expert.c:152: trailing whitespace. -+ );  -src/experts/cascade_expert.c:153: trailing whitespace. -+  -src/experts/cascade_expert.c:154: trailing whitespace. -+ (void)snprintf(  -src/experts/cascade_expert.c:155: trailing whitespace. -+ result->expert_name,  -src/experts/cascade_expert.c:156: trailing whitespace. -+ sizeof(result->expert_name),  -src/experts/cascade_expert.c:157: trailing whitespace. -+ "%s",  -src/experts/cascade_expert.c:158: trailing whitespace. -+ "seismic-cascade"  -src/experts/cascade_expert.c:159: trailing whitespace. -+ );  -src/experts/cascade_expert.c:160: trailing whitespace. -+  -src/experts/cascade_expert.c:161: trailing whitespace. -+ result->hazard_evidence = hazard;  -src/experts/cascade_expert.c:162: trailing whitespace. -+ result->preparation_evidence = preparation;  -src/experts/cascade_expert.c:163: trailing whitespace. -+ result->cascade_evidence = clamp01(cascade);  -src/experts/cascade_expert.c:164: trailing whitespace. -+ result->confidence = confidence;  -src/experts/cascade_expert.c:165: trailing whitespace. -+  -src/experts/cascade_expert.c:166: trailing whitespace. -+ if (confidence < 0.25) {  -src/experts/cascade_expert.c:167: trailing whitespace. -+ result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA;  -src/experts/cascade_expert.c:168: trailing whitespace. -+ result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA;  -src/experts/cascade_expert.c:169: trailing whitespace. -+  -src/experts/cascade_expert.c:170: trailing whitespace. -+ (void)snprintf(  -src/experts/cascade_expert.c:171: trailing whitespace. -+ result->explanation,  -src/experts/cascade_expert.c:172: trailing whitespace. -+ sizeof(result->explanation),  -src/experts/cascade_expert.c:173: trailing whitespace. -+ "%s",  -src/experts/cascade_expert.c:174: trailing whitespace. -+ "Cascade interpretation limited by low catalog confidence."  -src/experts/cascade_expert.c:175: trailing whitespace. -+ );  -src/experts/cascade_expert.c:176: trailing whitespace. -+ } else {  -src/experts/cascade_expert.c:177: trailing whitespace. -+ result->status = CAMEFF_EXPERT_OK;  -src/experts/cascade_expert.c:178: trailing whitespace. -+  -src/experts/cascade_expert.c:179: trailing whitespace. -+ if (result->hazard_evidence >= 0.70) {  -src/experts/cascade_expert.c:180: trailing whitespace. -+ result->decision = CAMEFF_DECISION_ELEVATED;  -src/experts/cascade_expert.c:181: trailing whitespace. -+ } else if (result->hazard_evidence >= 0.45) {  -src/experts/cascade_expert.c:182: trailing whitespace. -+ result->decision = CAMEFF_DECISION_WATCH;  -src/experts/cascade_expert.c:183: trailing whitespace. -+ } else {  -src/experts/cascade_expert.c:184: trailing whitespace. -+ result->decision = CAMEFF_DECISION_BACKGROUND;  -src/experts/cascade_expert.c:185: trailing whitespace. -+ }  -src/experts/cascade_expert.c:186: trailing whitespace. -+  -src/experts/cascade_expert.c:187: trailing whitespace. -+ (void)snprintf(  -src/experts/cascade_expert.c:188: trailing whitespace. -+ result->explanation,  -src/experts/cascade_expert.c:189: trailing whitespace. -+ sizeof(result->explanation),  -src/experts/cascade_expert.c:190: trailing whitespace. -+ "%s",  -src/experts/cascade_expert.c:191: trailing whitespace. -+ "Cascade evidence emphasizes elevated activity and spatial clustering while suppressing unsupported preparation evidence."  -src/experts/cascade_expert.c:192: trailing whitespace. -+ );  -src/experts/cascade_expert.c:193: trailing whitespace. -+ }  -src/experts/cascade_expert.c:194: trailing whitespace. -+  -src/experts/cascade_expert.c:195: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/experts/cascade_expert.c:196: trailing whitespace. -+}  -src/experts/cascade_expert.c:197: trailing whitespace. -+  -src/experts/cascade_expert.c:198: trailing whitespace. -+const cameff_expert_t *cameff_cascade_expert(void) {  -src/experts/cascade_expert.c:199: trailing whitespace. -+ static const cameff_expert_t expert = {  -src/experts/cascade_expert.c:200: trailing whitespace. -+ "seismic-cascade",  -src/experts/cascade_expert.c:201: trailing whitespace. -+ CAMEFF_PATTERN_SEISMIC_CASCADE,  -src/experts/cascade_expert.c:202: trailing whitespace. -+ cascade_applicability,  -src/experts/cascade_expert.c:203: trailing whitespace. -+ cascade_evaluate  -src/experts/cascade_expert.c:204: trailing whitespace. -+ };  -src/experts/cascade_expert.c:205: trailing whitespace. -+  -src/experts/cascade_expert.c:206: trailing whitespace. -+ return &expert;  -src/experts/crustal_fault_expert.c:1: trailing whitespace. -+#include "cameff/crustal_fault_expert.h"  -src/experts/crustal_fault_expert.c:2: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:3: trailing whitespace. -+#include   -src/experts/crustal_fault_expert.c:4: trailing whitespace. -+#include   -src/experts/crustal_fault_expert.c:5: trailing whitespace. -+#include   -src/experts/crustal_fault_expert.c:6: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:7: trailing whitespace. -+static double clamp01(double value) {  -src/experts/crustal_fault_expert.c:8: trailing whitespace. -+ if (!isfinite(value)) {  -src/experts/crustal_fault_expert.c:9: trailing whitespace. -+ return 0.0;  -src/experts/crustal_fault_expert.c:10: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:11: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:12: trailing whitespace. -+ if (value < 0.0) {  -src/experts/crustal_fault_expert.c:13: trailing whitespace. -+ return 0.0;  -src/experts/crustal_fault_expert.c:14: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:15: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:16: trailing whitespace. -+ if (value > 1.0) {  -src/experts/crustal_fault_expert.c:17: trailing whitespace. -+ return 1.0;  -src/experts/crustal_fault_expert.c:18: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:19: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:20: trailing whitespace. -+ return value;  -src/experts/crustal_fault_expert.c:21: trailing whitespace. -+}  -src/experts/crustal_fault_expert.c:22: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:23: trailing whitespace. -+static double effective_signal(  -src/experts/crustal_fault_expert.c:24: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/crustal_fault_expert.c:25: trailing whitespace. -+ cameff_signal_id_t signal_id  -src/experts/crustal_fault_expert.c:26: trailing whitespace. -+) {  -src/experts/crustal_fault_expert.c:27: trailing whitespace. -+ const cameff_signal_t *signal;  -src/experts/crustal_fault_expert.c:28: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:29: trailing whitespace. -+ signal = &frame->signals[(size_t)signal_id];  -src/experts/crustal_fault_expert.c:30: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:31: trailing whitespace. -+ if (!signal->available) {  -src/experts/crustal_fault_expert.c:32: trailing whitespace. -+ return 0.0;  -src/experts/crustal_fault_expert.c:33: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:34: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:35: trailing whitespace. -+ return clamp01(signal->value) *  -src/experts/crustal_fault_expert.c:36: trailing whitespace. -+ clamp01(signal->confidence);  -src/experts/crustal_fault_expert.c:37: trailing whitespace. -+}  -src/experts/crustal_fault_expert.c:38: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:39: trailing whitespace. -+static double crustal_applicability(  -src/experts/crustal_fault_expert.c:40: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/crustal_fault_expert.c:41: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/crustal_fault_expert.c:42: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -src/experts/crustal_fault_expert.c:43: trailing whitespace. -+) {  -src/experts/crustal_fault_expert.c:44: trailing whitespace. -+ double mapped_affinity;  -src/experts/crustal_fault_expert.c:45: trailing whitespace. -+ double uncertainty_support;  -src/experts/crustal_fault_expert.c:46: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:47: trailing whitespace. -+ (void)frame;  -src/experts/crustal_fault_expert.c:48: trailing whitespace. -+ (void)patterns;  -src/experts/crustal_fault_expert.c:49: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:50: trailing whitespace. -+ if (region == NULL) {  -src/experts/crustal_fault_expert.c:51: trailing whitespace. -+ return 0.0;  -src/experts/crustal_fault_expert.c:52: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:53: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:54: trailing whitespace. -+ mapped_affinity =  -src/experts/crustal_fault_expert.c:55: trailing whitespace. -+ clamp01(region->crustal_fault_affinity);  -src/experts/crustal_fault_expert.c:56: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:57: trailing whitespace. -+ uncertainty_support =  -src/experts/crustal_fault_expert.c:58: trailing whitespace. -+ 1.0 - clamp01(region->fault_map_confidence);  -src/experts/crustal_fault_expert.c:59: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:60: trailing whitespace. -+ return clamp01(  -src/experts/crustal_fault_expert.c:61: trailing whitespace. -+ (0.75 * mapped_affinity) +  -src/experts/crustal_fault_expert.c:62: trailing whitespace. -+ (0.25 * uncertainty_support)  -src/experts/crustal_fault_expert.c:63: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:64: trailing whitespace. -+}  -src/experts/crustal_fault_expert.c:65: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:66: trailing whitespace. -+static cameff_status_t crustal_evaluate(  -src/experts/crustal_fault_expert.c:67: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/crustal_fault_expert.c:68: trailing whitespace. -+ const cameff_config_t *config,  -src/experts/crustal_fault_expert.c:69: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/crustal_fault_expert.c:70: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/experts/crustal_fault_expert.c:71: trailing whitespace. -+ cameff_expert_result_t *result  -src/experts/crustal_fault_expert.c:72: trailing whitespace. -+) {  -src/experts/crustal_fault_expert.c:73: trailing whitespace. -+ double activity;  -src/experts/crustal_fault_expert.c:74: trailing whitespace. -+ double acceleration;  -src/experts/crustal_fault_expert.c:75: trailing whitespace. -+ double concentration;  -src/experts/crustal_fault_expert.c:76: trailing whitespace. -+ double magnitude;  -src/experts/crustal_fault_expert.c:77: trailing whitespace. -+ double b_value;  -src/experts/crustal_fault_expert.c:78: trailing whitespace. -+ double fault_confidence;  -src/experts/crustal_fault_expert.c:79: trailing whitespace. -+ double uncertainty;  -src/experts/crustal_fault_expert.c:80: trailing whitespace. -+ double observational_support;  -src/experts/crustal_fault_expert.c:81: trailing whitespace. -+ double uncertainty_modifier;  -src/experts/crustal_fault_expert.c:82: trailing whitespace. -+ double preparation;  -src/experts/crustal_fault_expert.c:83: trailing whitespace. -+ double hazard;  -src/experts/crustal_fault_expert.c:84: trailing whitespace. -+ double confidence;  -src/experts/crustal_fault_expert.c:85: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:86: trailing whitespace. -+ (void)config;  -src/experts/crustal_fault_expert.c:87: trailing whitespace. -+ (void)patterns;  -src/experts/crustal_fault_expert.c:88: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:89: trailing whitespace. -+ if (frame == NULL || region == NULL || result == NULL) {  -src/experts/crustal_fault_expert.c:90: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/experts/crustal_fault_expert.c:91: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:92: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:93: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/experts/crustal_fault_expert.c:94: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:95: trailing whitespace. -+ activity = effective_signal(  -src/experts/crustal_fault_expert.c:96: trailing whitespace. -+ frame,  -src/experts/crustal_fault_expert.c:97: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -src/experts/crustal_fault_expert.c:98: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:99: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:100: trailing whitespace. -+ acceleration = effective_signal(  -src/experts/crustal_fault_expert.c:101: trailing whitespace. -+ frame,  -src/experts/crustal_fault_expert.c:102: trailing whitespace. -+ CAMEFF_SIGNAL_TEMPORAL_ACCELERATION  -src/experts/crustal_fault_expert.c:103: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:104: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:105: trailing whitespace. -+ concentration = effective_signal(  -src/experts/crustal_fault_expert.c:106: trailing whitespace. -+ frame,  -src/experts/crustal_fault_expert.c:107: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -src/experts/crustal_fault_expert.c:108: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:109: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:110: trailing whitespace. -+ magnitude = effective_signal(  -src/experts/crustal_fault_expert.c:111: trailing whitespace. -+ frame,  -src/experts/crustal_fault_expert.c:112: trailing whitespace. -+ CAMEFF_SIGNAL_MAGNITUDE_TREND  -src/experts/crustal_fault_expert.c:113: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:114: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:115: trailing whitespace. -+ b_value = effective_signal(  -src/experts/crustal_fault_expert.c:116: trailing whitespace. -+ frame,  -src/experts/crustal_fault_expert.c:117: trailing whitespace. -+ CAMEFF_SIGNAL_B_VALUE_ANOMALY  -src/experts/crustal_fault_expert.c:118: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:119: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:120: trailing whitespace. -+ fault_confidence = effective_signal(  -src/experts/crustal_fault_expert.c:121: trailing whitespace. -+ frame,  -src/experts/crustal_fault_expert.c:122: trailing whitespace. -+ CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE  -src/experts/crustal_fault_expert.c:123: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:124: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:125: trailing whitespace. -+ uncertainty =  -src/experts/crustal_fault_expert.c:126: trailing whitespace. -+ 1.0 - clamp01(region->fault_map_confidence);  -src/experts/crustal_fault_expert.c:127: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:128: trailing whitespace. -+ observational_support =  -src/experts/crustal_fault_expert.c:129: trailing whitespace. -+ (0.30 * activity) +  -src/experts/crustal_fault_expert.c:130: trailing whitespace. -+ (0.25 * acceleration) +  -src/experts/crustal_fault_expert.c:131: trailing whitespace. -+ (0.25 * concentration) +  -src/experts/crustal_fault_expert.c:132: trailing whitespace. -+ (0.12 * magnitude) +  -src/experts/crustal_fault_expert.c:133: trailing whitespace. -+ (0.08 * b_value);  -src/experts/crustal_fault_expert.c:134: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:135: trailing whitespace. -+ /*  -src/experts/crustal_fault_expert.c:136: trailing whitespace. -+ * Fault-map uncertainty can increase compatibility only when  -src/experts/crustal_fault_expert.c:137: trailing whitespace. -+ * observed activity and spatial concentration are present.  -src/experts/crustal_fault_expert.c:138: trailing whitespace. -+ */  -src/experts/crustal_fault_expert.c:139: trailing whitespace. -+ uncertainty_modifier =  -src/experts/crustal_fault_expert.c:140: trailing whitespace. -+ uncertainty * activity * concentration;  -src/experts/crustal_fault_expert.c:141: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:142: trailing whitespace. -+ preparation =  -src/experts/crustal_fault_expert.c:143: trailing whitespace. -+ observational_support +  -src/experts/crustal_fault_expert.c:144: trailing whitespace. -+ (0.15 * uncertainty_modifier);  -src/experts/crustal_fault_expert.c:145: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:146: trailing whitespace. -+ hazard =  -src/experts/crustal_fault_expert.c:147: trailing whitespace. -+ (0.75 * preparation) +  -src/experts/crustal_fault_expert.c:148: trailing whitespace. -+ (0.15 * clamp01(region->crustal_fault_affinity)) +  -src/experts/crustal_fault_expert.c:149: trailing whitespace. -+ (0.10 * fault_confidence);  -src/experts/crustal_fault_expert.c:150: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:151: trailing whitespace. -+ confidence =  -src/experts/crustal_fault_expert.c:152: trailing whitespace. -+ clamp01(  -src/experts/crustal_fault_expert.c:153: trailing whitespace. -+ (0.60 * frame->data_confidence) +  -src/experts/crustal_fault_expert.c:154: trailing whitespace. -+ (0.20 * region->catalog_completeness) +  -src/experts/crustal_fault_expert.c:155: trailing whitespace. -+ (0.15 * region->station_coverage) +  -src/experts/crustal_fault_expert.c:156: trailing whitespace. -+ (0.05 * region->regional_prior_confidence)  -src/experts/crustal_fault_expert.c:157: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:158: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:159: trailing whitespace. -+ (void)snprintf(  -src/experts/crustal_fault_expert.c:160: trailing whitespace. -+ result->expert_name,  -src/experts/crustal_fault_expert.c:161: trailing whitespace. -+ sizeof(result->expert_name),  -src/experts/crustal_fault_expert.c:162: trailing whitespace. -+ "%s",  -src/experts/crustal_fault_expert.c:163: trailing whitespace. -+ "crustal-fault"  -src/experts/crustal_fault_expert.c:164: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:165: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:166: trailing whitespace. -+ result->hazard_evidence = clamp01(hazard);  -src/experts/crustal_fault_expert.c:167: trailing whitespace. -+ result->preparation_evidence = clamp01(preparation);  -src/experts/crustal_fault_expert.c:168: trailing whitespace. -+ result->cascade_evidence = 0.0;  -src/experts/crustal_fault_expert.c:169: trailing whitespace. -+ result->confidence = confidence;  -src/experts/crustal_fault_expert.c:170: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:171: trailing whitespace. -+ if (confidence < 0.25) {  -src/experts/crustal_fault_expert.c:172: trailing whitespace. -+ result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA;  -src/experts/crustal_fault_expert.c:173: trailing whitespace. -+ result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA;  -src/experts/crustal_fault_expert.c:174: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:175: trailing whitespace. -+ (void)snprintf(  -src/experts/crustal_fault_expert.c:176: trailing whitespace. -+ result->explanation,  -src/experts/crustal_fault_expert.c:177: trailing whitespace. -+ sizeof(result->explanation),  -src/experts/crustal_fault_expert.c:178: trailing whitespace. -+ "%s",  -src/experts/crustal_fault_expert.c:179: trailing whitespace. -+ "Crustal-fault interpretation limited by low catalog or station confidence."  -src/experts/crustal_fault_expert.c:180: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:181: trailing whitespace. -+ } else {  -src/experts/crustal_fault_expert.c:182: trailing whitespace. -+ result->status = CAMEFF_EXPERT_OK;  -src/experts/crustal_fault_expert.c:183: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:184: trailing whitespace. -+ if (result->hazard_evidence >= 0.70) {  -src/experts/crustal_fault_expert.c:185: trailing whitespace. -+ result->decision = CAMEFF_DECISION_ELEVATED;  -src/experts/crustal_fault_expert.c:186: trailing whitespace. -+ } else if (result->hazard_evidence >= 0.45) {  -src/experts/crustal_fault_expert.c:187: trailing whitespace. -+ result->decision = CAMEFF_DECISION_WATCH;  -src/experts/crustal_fault_expert.c:188: trailing whitespace. -+ } else {  -src/experts/crustal_fault_expert.c:189: trailing whitespace. -+ result->decision = CAMEFF_DECISION_BACKGROUND;  -src/experts/crustal_fault_expert.c:190: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:191: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:192: trailing whitespace. -+ (void)snprintf(  -src/experts/crustal_fault_expert.c:193: trailing whitespace. -+ result->explanation,  -src/experts/crustal_fault_expert.c:194: trailing whitespace. -+ sizeof(result->explanation),  -src/experts/crustal_fault_expert.c:195: trailing whitespace. -+ "%s",  -src/experts/crustal_fault_expert.c:196: trailing whitespace. -+ "Crustal-fault evidence uses activity, acceleration, concentration and guarded fault-map uncertainty."  -src/experts/crustal_fault_expert.c:197: trailing whitespace. -+ );  -src/experts/crustal_fault_expert.c:198: trailing whitespace. -+ }  -src/experts/crustal_fault_expert.c:199: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:200: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/experts/crustal_fault_expert.c:201: trailing whitespace. -+}  -src/experts/crustal_fault_expert.c:202: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:203: trailing whitespace. -+const cameff_expert_t *cameff_crustal_fault_expert(void) {  -src/experts/crustal_fault_expert.c:204: trailing whitespace. -+ static const cameff_expert_t expert = {  -src/experts/crustal_fault_expert.c:205: trailing whitespace. -+ "crustal-fault",  -src/experts/crustal_fault_expert.c:206: trailing whitespace. -+ CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION,  -src/experts/crustal_fault_expert.c:207: trailing whitespace. -+ crustal_applicability,  -src/experts/crustal_fault_expert.c:208: trailing whitespace. -+ crustal_evaluate  -src/experts/crustal_fault_expert.c:209: trailing whitespace. -+ };  -src/experts/crustal_fault_expert.c:210: trailing whitespace. -+  -src/experts/crustal_fault_expert.c:211: trailing whitespace. -+ return &expert;  -src/experts/subduction_expert.c:1: trailing whitespace. -+#include "cameff/subduction_expert.h"  -src/experts/subduction_expert.c:2: trailing whitespace. -+  -src/experts/subduction_expert.c:3: trailing whitespace. -+#include   -src/experts/subduction_expert.c:4: trailing whitespace. -+#include   -src/experts/subduction_expert.c:5: trailing whitespace. -+#include   -src/experts/subduction_expert.c:6: trailing whitespace. -+  -src/experts/subduction_expert.c:7: trailing whitespace. -+static double clamp01(double value) {  -src/experts/subduction_expert.c:8: trailing whitespace. -+ if (!isfinite(value)) {  -src/experts/subduction_expert.c:9: trailing whitespace. -+ return 0.0;  -src/experts/subduction_expert.c:10: trailing whitespace. -+ }  -src/experts/subduction_expert.c:11: trailing whitespace. -+  -src/experts/subduction_expert.c:12: trailing whitespace. -+ if (value < 0.0) {  -src/experts/subduction_expert.c:13: trailing whitespace. -+ return 0.0;  -src/experts/subduction_expert.c:14: trailing whitespace. -+ }  -src/experts/subduction_expert.c:15: trailing whitespace. -+  -src/experts/subduction_expert.c:16: trailing whitespace. -+ if (value > 1.0) {  -src/experts/subduction_expert.c:17: trailing whitespace. -+ return 1.0;  -src/experts/subduction_expert.c:18: trailing whitespace. -+ }  -src/experts/subduction_expert.c:19: trailing whitespace. -+  -src/experts/subduction_expert.c:20: trailing whitespace. -+ return value;  -src/experts/subduction_expert.c:21: trailing whitespace. -+}  -src/experts/subduction_expert.c:22: trailing whitespace. -+  -src/experts/subduction_expert.c:23: trailing whitespace. -+static double effective_signal(  -src/experts/subduction_expert.c:24: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/subduction_expert.c:25: trailing whitespace. -+ cameff_signal_id_t signal_id  -src/experts/subduction_expert.c:26: trailing whitespace. -+) {  -src/experts/subduction_expert.c:27: trailing whitespace. -+ const cameff_signal_t *signal;  -src/experts/subduction_expert.c:28: trailing whitespace. -+  -src/experts/subduction_expert.c:29: trailing whitespace. -+ signal = &frame->signals[(size_t)signal_id];  -src/experts/subduction_expert.c:30: trailing whitespace. -+  -src/experts/subduction_expert.c:31: trailing whitespace. -+ if (!signal->available) {  -src/experts/subduction_expert.c:32: trailing whitespace. -+ return 0.0;  -src/experts/subduction_expert.c:33: trailing whitespace. -+ }  -src/experts/subduction_expert.c:34: trailing whitespace. -+  -src/experts/subduction_expert.c:35: trailing whitespace. -+ return clamp01(signal->value) *  -src/experts/subduction_expert.c:36: trailing whitespace. -+ clamp01(signal->confidence);  -src/experts/subduction_expert.c:37: trailing whitespace. -+}  -src/experts/subduction_expert.c:38: trailing whitespace. -+  -src/experts/subduction_expert.c:39: trailing whitespace. -+static double subduction_applicability(  -src/experts/subduction_expert.c:40: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/subduction_expert.c:41: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/subduction_expert.c:42: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -src/experts/subduction_expert.c:43: trailing whitespace. -+) {  -src/experts/subduction_expert.c:44: trailing whitespace. -+ (void)frame;  -src/experts/subduction_expert.c:45: trailing whitespace. -+ (void)patterns;  -src/experts/subduction_expert.c:46: trailing whitespace. -+  -src/experts/subduction_expert.c:47: trailing whitespace. -+ if (region == NULL) {  -src/experts/subduction_expert.c:48: trailing whitespace. -+ return 0.0;  -src/experts/subduction_expert.c:49: trailing whitespace. -+ }  -src/experts/subduction_expert.c:50: trailing whitespace. -+  -src/experts/subduction_expert.c:51: trailing whitespace. -+ return clamp01(region->subduction_affinity) *  -src/experts/subduction_expert.c:52: trailing whitespace. -+ clamp01(region->regional_prior_confidence);  -src/experts/subduction_expert.c:53: trailing whitespace. -+}  -src/experts/subduction_expert.c:54: trailing whitespace. -+  -src/experts/subduction_expert.c:55: trailing whitespace. -+static cameff_status_t subduction_evaluate(  -src/experts/subduction_expert.c:56: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/experts/subduction_expert.c:57: trailing whitespace. -+ const cameff_config_t *config,  -src/experts/subduction_expert.c:58: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/experts/subduction_expert.c:59: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/experts/subduction_expert.c:60: trailing whitespace. -+ cameff_expert_result_t *result  -src/experts/subduction_expert.c:61: trailing whitespace. -+) {  -src/experts/subduction_expert.c:62: trailing whitespace. -+ double activity;  -src/experts/subduction_expert.c:63: trailing whitespace. -+ double acceleration;  -src/experts/subduction_expert.c:64: trailing whitespace. -+ double concentration;  -src/experts/subduction_expert.c:65: trailing whitespace. -+ double magnitude;  -src/experts/subduction_expert.c:66: trailing whitespace. -+ double depth;  -src/experts/subduction_expert.c:67: trailing whitespace. -+ double b_value;  -src/experts/subduction_expert.c:68: trailing whitespace. -+ double completeness;  -src/experts/subduction_expert.c:69: trailing whitespace. -+ double preparation;  -src/experts/subduction_expert.c:70: trailing whitespace. -+ double hazard;  -src/experts/subduction_expert.c:71: trailing whitespace. -+ double confidence;  -src/experts/subduction_expert.c:72: trailing whitespace. -+  -src/experts/subduction_expert.c:73: trailing whitespace. -+ (void)config;  -src/experts/subduction_expert.c:74: trailing whitespace. -+ (void)patterns;  -src/experts/subduction_expert.c:75: trailing whitespace. -+  -src/experts/subduction_expert.c:76: trailing whitespace. -+ if (frame == NULL || region == NULL || result == NULL) {  -src/experts/subduction_expert.c:77: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/experts/subduction_expert.c:78: trailing whitespace. -+ }  -src/experts/subduction_expert.c:79: trailing whitespace. -+  -src/experts/subduction_expert.c:80: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/experts/subduction_expert.c:81: trailing whitespace. -+  -src/experts/subduction_expert.c:82: trailing whitespace. -+ activity = effective_signal(  -src/experts/subduction_expert.c:83: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:84: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -src/experts/subduction_expert.c:85: trailing whitespace. -+ );  -src/experts/subduction_expert.c:86: trailing whitespace. -+  -src/experts/subduction_expert.c:87: trailing whitespace. -+ acceleration = effective_signal(  -src/experts/subduction_expert.c:88: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:89: trailing whitespace. -+ CAMEFF_SIGNAL_TEMPORAL_ACCELERATION  -src/experts/subduction_expert.c:90: trailing whitespace. -+ );  -src/experts/subduction_expert.c:91: trailing whitespace. -+  -src/experts/subduction_expert.c:92: trailing whitespace. -+ concentration = effective_signal(  -src/experts/subduction_expert.c:93: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:94: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -src/experts/subduction_expert.c:95: trailing whitespace. -+ );  -src/experts/subduction_expert.c:96: trailing whitespace. -+  -src/experts/subduction_expert.c:97: trailing whitespace. -+ magnitude = effective_signal(  -src/experts/subduction_expert.c:98: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:99: trailing whitespace. -+ CAMEFF_SIGNAL_MAGNITUDE_TREND  -src/experts/subduction_expert.c:100: trailing whitespace. -+ );  -src/experts/subduction_expert.c:101: trailing whitespace. -+  -src/experts/subduction_expert.c:102: trailing whitespace. -+ depth = effective_signal(  -src/experts/subduction_expert.c:103: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:104: trailing whitespace. -+ CAMEFF_SIGNAL_DEPTH_MIGRATION  -src/experts/subduction_expert.c:105: trailing whitespace. -+ );  -src/experts/subduction_expert.c:106: trailing whitespace. -+  -src/experts/subduction_expert.c:107: trailing whitespace. -+ b_value = effective_signal(  -src/experts/subduction_expert.c:108: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:109: trailing whitespace. -+ CAMEFF_SIGNAL_B_VALUE_ANOMALY  -src/experts/subduction_expert.c:110: trailing whitespace. -+ );  -src/experts/subduction_expert.c:111: trailing whitespace. -+  -src/experts/subduction_expert.c:112: trailing whitespace. -+ completeness = effective_signal(  -src/experts/subduction_expert.c:113: trailing whitespace. -+ frame,  -src/experts/subduction_expert.c:114: trailing whitespace. -+ CAMEFF_SIGNAL_CATALOG_COMPLETENESS  -src/experts/subduction_expert.c:115: trailing whitespace. -+ );  -src/experts/subduction_expert.c:116: trailing whitespace. -+  -src/experts/subduction_expert.c:117: trailing whitespace. -+ preparation =  -src/experts/subduction_expert.c:118: trailing whitespace. -+ (0.18 * activity) +  -src/experts/subduction_expert.c:119: trailing whitespace. -+ (0.22 * acceleration) +  -src/experts/subduction_expert.c:120: trailing whitespace. -+ (0.15 * concentration) +  -src/experts/subduction_expert.c:121: trailing whitespace. -+ (0.18 * magnitude) +  -src/experts/subduction_expert.c:122: trailing whitespace. -+ (0.15 * depth) +  -src/experts/subduction_expert.c:123: trailing whitespace. -+ (0.12 * b_value);  -src/experts/subduction_expert.c:124: trailing whitespace. -+  -src/experts/subduction_expert.c:125: trailing whitespace. -+ hazard =  -src/experts/subduction_expert.c:126: trailing whitespace. -+ (0.70 * preparation) +  -src/experts/subduction_expert.c:127: trailing whitespace. -+ (0.20 * completeness) +  -src/experts/subduction_expert.c:128: trailing whitespace. -+ (0.10 * clamp01(region->subduction_affinity));  -src/experts/subduction_expert.c:129: trailing whitespace. -+  -src/experts/subduction_expert.c:130: trailing whitespace. -+ confidence =  -src/experts/subduction_expert.c:131: trailing whitespace. -+ clamp01(  -src/experts/subduction_expert.c:132: trailing whitespace. -+ (0.55 * frame->data_confidence) +  -src/experts/subduction_expert.c:133: trailing whitespace. -+ (0.20 * region->catalog_completeness) +  -src/experts/subduction_expert.c:134: trailing whitespace. -+ (0.15 * region->station_coverage) +  -src/experts/subduction_expert.c:135: trailing whitespace. -+ (0.10 * region->regional_prior_confidence)  -src/experts/subduction_expert.c:136: trailing whitespace. -+ );  -src/experts/subduction_expert.c:137: trailing whitespace. -+  -src/experts/subduction_expert.c:138: trailing whitespace. -+ (void)snprintf(  -src/experts/subduction_expert.c:139: trailing whitespace. -+ result->expert_name,  -src/experts/subduction_expert.c:140: trailing whitespace. -+ sizeof(result->expert_name),  -src/experts/subduction_expert.c:141: trailing whitespace. -+ "%s",  -src/experts/subduction_expert.c:142: trailing whitespace. -+ "subduction"  -src/experts/subduction_expert.c:143: trailing whitespace. -+ );  -src/experts/subduction_expert.c:144: trailing whitespace. -+  -src/experts/subduction_expert.c:145: trailing whitespace. -+ result->hazard_evidence = clamp01(hazard);  -src/experts/subduction_expert.c:146: trailing whitespace. -+ result->preparation_evidence = clamp01(preparation);  -src/experts/subduction_expert.c:147: trailing whitespace. -+ result->cascade_evidence = 0.0;  -src/experts/subduction_expert.c:148: trailing whitespace. -+ result->confidence = confidence;  -src/experts/subduction_expert.c:149: trailing whitespace. -+  -src/experts/subduction_expert.c:150: trailing whitespace. -+ if (confidence < 0.25) {  -src/experts/subduction_expert.c:151: trailing whitespace. -+ result->status = CAMEFF_EXPERT_INSUFFICIENT_DATA;  -src/experts/subduction_expert.c:152: trailing whitespace. -+ result->decision = CAMEFF_DECISION_INSUFFICIENT_DATA;  -src/experts/subduction_expert.c:153: trailing whitespace. -+  -src/experts/subduction_expert.c:154: trailing whitespace. -+ (void)snprintf(  -src/experts/subduction_expert.c:155: trailing whitespace. -+ result->explanation,  -src/experts/subduction_expert.c:156: trailing whitespace. -+ sizeof(result->explanation),  -src/experts/subduction_expert.c:157: trailing whitespace. -+ "%s",  -src/experts/subduction_expert.c:158: trailing whitespace. -+ "Subduction interpretation limited by low data confidence."  -src/experts/subduction_expert.c:159: trailing whitespace. -+ );  -src/experts/subduction_expert.c:160: trailing whitespace. -+ } else {  -src/experts/subduction_expert.c:161: trailing whitespace. -+ result->status = CAMEFF_EXPERT_OK;  -src/experts/subduction_expert.c:162: trailing whitespace. -+  -src/experts/subduction_expert.c:163: trailing whitespace. -+ if (result->hazard_evidence >= 0.70) {  -src/experts/subduction_expert.c:164: trailing whitespace. -+ result->decision = CAMEFF_DECISION_ELEVATED;  -src/experts/subduction_expert.c:165: trailing whitespace. -+ } else if (result->hazard_evidence >= 0.45) {  -src/experts/subduction_expert.c:166: trailing whitespace. -+ result->decision = CAMEFF_DECISION_WATCH;  -src/experts/subduction_expert.c:167: trailing whitespace. -+ } else {  -src/experts/subduction_expert.c:168: trailing whitespace. -+ result->decision = CAMEFF_DECISION_BACKGROUND;  -src/experts/subduction_expert.c:169: trailing whitespace. -+ }  -src/experts/subduction_expert.c:170: trailing whitespace. -+  -src/experts/subduction_expert.c:171: trailing whitespace. -+ (void)snprintf(  -src/experts/subduction_expert.c:172: trailing whitespace. -+ result->explanation,  -src/experts/subduction_expert.c:173: trailing whitespace. -+ sizeof(result->explanation),  -src/experts/subduction_expert.c:174: trailing whitespace. -+ "%s",  -src/experts/subduction_expert.c:175: trailing whitespace. -+ "Subduction preparation evidence derived from activity, acceleration, concentration, magnitude, depth and b-value channels."  -src/experts/subduction_expert.c:176: trailing whitespace. -+ );  -src/experts/subduction_expert.c:177: trailing whitespace. -+ }  -src/experts/subduction_expert.c:178: trailing whitespace. -+  -src/experts/subduction_expert.c:179: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/experts/subduction_expert.c:180: trailing whitespace. -+}  -src/experts/subduction_expert.c:181: trailing whitespace. -+  -src/experts/subduction_expert.c:182: trailing whitespace. -+const cameff_expert_t *cameff_subduction_expert(void) {  -src/experts/subduction_expert.c:183: trailing whitespace. -+ static const cameff_expert_t expert = {  -src/experts/subduction_expert.c:184: trailing whitespace. -+ "subduction",  -src/experts/subduction_expert.c:185: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION,  -src/experts/subduction_expert.c:186: trailing whitespace. -+ subduction_applicability,  -src/experts/subduction_expert.c:187: trailing whitespace. -+ subduction_evaluate  -src/experts/subduction_expert.c:188: trailing whitespace. -+ };  -src/experts/subduction_expert.c:189: trailing whitespace. -+  -src/experts/subduction_expert.c:190: trailing whitespace. -+ return &expert;  -src/fusion.c:1: trailing whitespace. -+#include "cameff/fusion.h"  -src/fusion.c:2: trailing whitespace. -+  -src/fusion.c:3: trailing whitespace. -+#include   -src/fusion.c:4: trailing whitespace. -+#include   -src/fusion.c:5: trailing whitespace. -+  -src/fusion.c:6: trailing whitespace. -+#define CAMEFF_FUSION_EPSILON 1e-12  -src/fusion.c:7: trailing whitespace. -+  -src/fusion.c:8: trailing whitespace. -+static double clamp01(double value) {  -src/fusion.c:9: trailing whitespace. -+ if (!isfinite(value)) {  -src/fusion.c:10: trailing whitespace. -+ return 0.0;  -src/fusion.c:11: trailing whitespace. -+ }  -src/fusion.c:12: trailing whitespace. -+  -src/fusion.c:13: trailing whitespace. -+ if (value < 0.0) {  -src/fusion.c:14: trailing whitespace. -+ return 0.0;  -src/fusion.c:15: trailing whitespace. -+ }  -src/fusion.c:16: trailing whitespace. -+  -src/fusion.c:17: trailing whitespace. -+ if (value > 1.0) {  -src/fusion.c:18: trailing whitespace. -+ return 1.0;  -src/fusion.c:19: trailing whitespace. -+ }  -src/fusion.c:20: trailing whitespace. -+  -src/fusion.c:21: trailing whitespace. -+ return value;  -src/fusion.c:22: trailing whitespace. -+}  -src/fusion.c:23: trailing whitespace. -+  -src/fusion.c:24: trailing whitespace. -+static int valid_thresholds(  -src/fusion.c:25: trailing whitespace. -+ double minimum_confidence,  -src/fusion.c:26: trailing whitespace. -+ double watch_threshold,  -src/fusion.c:27: trailing whitespace. -+ double elevated_threshold  -src/fusion.c:28: trailing whitespace. -+) {  -src/fusion.c:29: trailing whitespace. -+ if (!isfinite(minimum_confidence) ||  -src/fusion.c:30: trailing whitespace. -+ !isfinite(watch_threshold) ||  -src/fusion.c:31: trailing whitespace. -+ !isfinite(elevated_threshold)) {  -src/fusion.c:32: trailing whitespace. -+ return 0;  -src/fusion.c:33: trailing whitespace. -+ }  -src/fusion.c:34: trailing whitespace. -+  -src/fusion.c:35: trailing whitespace. -+ if (minimum_confidence < 0.0 ||  -src/fusion.c:36: trailing whitespace. -+ minimum_confidence > 1.0) {  -src/fusion.c:37: trailing whitespace. -+ return 0;  -src/fusion.c:38: trailing whitespace. -+ }  -src/fusion.c:39: trailing whitespace. -+  -src/fusion.c:40: trailing whitespace. -+ if (watch_threshold < 0.0 ||  -src/fusion.c:41: trailing whitespace. -+ watch_threshold > 1.0) {  -src/fusion.c:42: trailing whitespace. -+ return 0;  -src/fusion.c:43: trailing whitespace. -+ }  -src/fusion.c:44: trailing whitespace. -+  -src/fusion.c:45: trailing whitespace. -+ if (elevated_threshold < 0.0 ||  -src/fusion.c:46: trailing whitespace. -+ elevated_threshold > 1.0) {  -src/fusion.c:47: trailing whitespace. -+ return 0;  -src/fusion.c:48: trailing whitespace. -+ }  -src/fusion.c:49: trailing whitespace. -+  -src/fusion.c:50: trailing whitespace. -+ if (watch_threshold > elevated_threshold) {  -src/fusion.c:51: trailing whitespace. -+ return 0;  -src/fusion.c:52: trailing whitespace. -+ }  -src/fusion.c:53: trailing whitespace. -+  -src/fusion.c:54: trailing whitespace. -+ return 1;  -src/fusion.c:55: trailing whitespace. -+}  -src/fusion.c:56: trailing whitespace. -+  -src/fusion.c:57: trailing whitespace. -+static cameff_decision_level_t fused_decision(  -src/fusion.c:58: trailing whitespace. -+ double hazard_evidence,  -src/fusion.c:59: trailing whitespace. -+ double fused_confidence,  -src/fusion.c:60: trailing whitespace. -+ double minimum_confidence,  -src/fusion.c:61: trailing whitespace. -+ double watch_threshold,  -src/fusion.c:62: trailing whitespace. -+ double elevated_threshold,  -src/fusion.c:63: trailing whitespace. -+ size_t active_expert_count  -src/fusion.c:64: trailing whitespace. -+) {  -src/fusion.c:65: trailing whitespace. -+ if (active_expert_count == 0U ||  -src/fusion.c:66: trailing whitespace. -+ fused_confidence < minimum_confidence) {  -src/fusion.c:67: trailing whitespace. -+ return CAMEFF_DECISION_INSUFFICIENT_DATA;  -src/fusion.c:68: trailing whitespace. -+ }  -src/fusion.c:69: trailing whitespace. -+  -src/fusion.c:70: trailing whitespace. -+ if (hazard_evidence >= elevated_threshold) {  -src/fusion.c:71: trailing whitespace. -+ return CAMEFF_DECISION_ELEVATED;  -src/fusion.c:72: trailing whitespace. -+ }  -src/fusion.c:73: trailing whitespace. -+  -src/fusion.c:74: trailing whitespace. -+ if (hazard_evidence >= watch_threshold) {  -src/fusion.c:75: trailing whitespace. -+ return CAMEFF_DECISION_WATCH;  -src/fusion.c:76: trailing whitespace. -+ }  -src/fusion.c:77: trailing whitespace. -+  -src/fusion.c:78: trailing whitespace. -+ return CAMEFF_DECISION_BACKGROUND;  -src/fusion.c:79: trailing whitespace. -+}  -src/fusion.c:80: trailing whitespace. -+  -src/fusion.c:81: trailing whitespace. -+cameff_status_t cameff_fuse_expert_results(  -src/fusion.c:82: trailing whitespace. -+ const cameff_expert_result_t *expert_results,  -src/fusion.c:83: trailing whitespace. -+ size_t expert_result_count,  -src/fusion.c:84: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -src/fusion.c:85: trailing whitespace. -+ double minimum_confidence,  -src/fusion.c:86: trailing whitespace. -+ double watch_threshold,  -src/fusion.c:87: trailing whitespace. -+ double elevated_threshold,  -src/fusion.c:88: trailing whitespace. -+ cameff_multi_expert_result_t *result  -src/fusion.c:89: trailing whitespace. -+) {  -src/fusion.c:90: trailing whitespace. -+ double weighted_hazard;  -src/fusion.c:91: trailing whitespace. -+ double weighted_preparation;  -src/fusion.c:92: trailing whitespace. -+ double weighted_cascade;  -src/fusion.c:93: trailing whitespace. -+ double total_effective_weight;  -src/fusion.c:94: trailing whitespace. -+ double total_active_routing;  -src/fusion.c:95: trailing whitespace. -+ double confidence_numerator;  -src/fusion.c:96: trailing whitespace. -+ double classification_confidence;  -src/fusion.c:97: trailing whitespace. -+ size_t active_expert_count;  -src/fusion.c:98: trailing whitespace. -+ size_t i;  -src/fusion.c:99: trailing whitespace. -+  -src/fusion.c:100: trailing whitespace. -+ if (expert_results == NULL ||  -src/fusion.c:101: trailing whitespace. -+ result == NULL ||  -src/fusion.c:102: trailing whitespace. -+ expert_result_count > CAMEFF_MAX_EXPERTS ||  -src/fusion.c:103: trailing whitespace. -+ !valid_thresholds(  -src/fusion.c:104: trailing whitespace. -+ minimum_confidence,  -src/fusion.c:105: trailing whitespace. -+ watch_threshold,  -src/fusion.c:106: trailing whitespace. -+ elevated_threshold  -src/fusion.c:107: trailing whitespace. -+ )) {  -src/fusion.c:108: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/fusion.c:109: trailing whitespace. -+ }  -src/fusion.c:110: trailing whitespace. -+  -src/fusion.c:111: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/fusion.c:112: trailing whitespace. -+  -src/fusion.c:113: trailing whitespace. -+ result->expert_result_count = expert_result_count;  -src/fusion.c:114: trailing whitespace. -+ result->dominant_pattern = CAMEFF_PATTERN_UNKNOWN;  -src/fusion.c:115: trailing whitespace. -+  -src/fusion.c:116: trailing whitespace. -+ if (patterns != NULL) {  -src/fusion.c:117: trailing whitespace. -+ result->dominant_pattern =  -src/fusion.c:118: trailing whitespace. -+ patterns->dominant_pattern;  -src/fusion.c:119: trailing whitespace. -+ }  -src/fusion.c:120: trailing whitespace. -+  -src/fusion.c:121: trailing whitespace. -+ weighted_hazard = 0.0;  -src/fusion.c:122: trailing whitespace. -+ weighted_preparation = 0.0;  -src/fusion.c:123: trailing whitespace. -+ weighted_cascade = 0.0;  -src/fusion.c:124: trailing whitespace. -+ total_effective_weight = 0.0;  -src/fusion.c:125: trailing whitespace. -+ total_active_routing = 0.0;  -src/fusion.c:126: trailing whitespace. -+ confidence_numerator = 0.0;  -src/fusion.c:127: trailing whitespace. -+ active_expert_count = 0U;  -src/fusion.c:128: trailing whitespace. -+  -src/fusion.c:129: trailing whitespace. -+ for (i = 0U; i < expert_result_count; ++i) {  -src/fusion.c:130: trailing whitespace. -+ double routing_strength;  -src/fusion.c:131: trailing whitespace. -+ double confidence;  -src/fusion.c:132: trailing whitespace. -+ double effective_weight;  -src/fusion.c:133: trailing whitespace. -+  -src/fusion.c:134: trailing whitespace. -+ result->expert_results[i] = expert_results[i];  -src/fusion.c:135: trailing whitespace. -+  -src/fusion.c:136: trailing whitespace. -+ if (expert_results[i].status != CAMEFF_EXPERT_OK) {  -src/fusion.c:137: trailing whitespace. -+ continue;  -src/fusion.c:138: trailing whitespace. -+ }  -src/fusion.c:139: trailing whitespace. -+  -src/fusion.c:140: trailing whitespace. -+ routing_strength =  -src/fusion.c:141: trailing whitespace. -+ clamp01(expert_results[i].routing_strength);  -src/fusion.c:142: trailing whitespace. -+  -src/fusion.c:143: trailing whitespace. -+ confidence =  -src/fusion.c:144: trailing whitespace. -+ clamp01(expert_results[i].confidence);  -src/fusion.c:145: trailing whitespace. -+  -src/fusion.c:146: trailing whitespace. -+ effective_weight =  -src/fusion.c:147: trailing whitespace. -+ routing_strength * confidence;  -src/fusion.c:148: trailing whitespace. -+  -src/fusion.c:149: trailing whitespace. -+ if (effective_weight <= CAMEFF_FUSION_EPSILON) {  -src/fusion.c:150: trailing whitespace. -+ continue;  -src/fusion.c:151: trailing whitespace. -+ }  -src/fusion.c:152: trailing whitespace. -+  -src/fusion.c:153: trailing whitespace. -+ weighted_hazard +=  -src/fusion.c:154: trailing whitespace. -+ effective_weight *  -src/fusion.c:155: trailing whitespace. -+ clamp01(expert_results[i].hazard_evidence);  -src/fusion.c:156: trailing whitespace. -+  -src/fusion.c:157: trailing whitespace. -+ weighted_preparation +=  -src/fusion.c:158: trailing whitespace. -+ effective_weight *  -src/fusion.c:159: trailing whitespace. -+ clamp01(expert_results[i].preparation_evidence);  -src/fusion.c:160: trailing whitespace. -+  -src/fusion.c:161: trailing whitespace. -+ weighted_cascade +=  -src/fusion.c:162: trailing whitespace. -+ effective_weight *  -src/fusion.c:163: trailing whitespace. -+ clamp01(expert_results[i].cascade_evidence);  -src/fusion.c:164: trailing whitespace. -+  -src/fusion.c:165: trailing whitespace. -+ confidence_numerator +=  -src/fusion.c:166: trailing whitespace. -+ routing_strength * confidence;  -src/fusion.c:167: trailing whitespace. -+  -src/fusion.c:168: trailing whitespace. -+ total_effective_weight += effective_weight;  -src/fusion.c:169: trailing whitespace. -+ total_active_routing += routing_strength;  -src/fusion.c:170: trailing whitespace. -+ ++active_expert_count;  -src/fusion.c:171: trailing whitespace. -+ }  -src/fusion.c:172: trailing whitespace. -+  -src/fusion.c:173: trailing whitespace. -+ if (expert_result_count > 0U) {  -src/fusion.c:174: trailing whitespace. -+ result->expert_coverage =  -src/fusion.c:175: trailing whitespace. -+ clamp01(  -src/fusion.c:176: trailing whitespace. -+ total_active_routing /  -src/fusion.c:177: trailing whitespace. -+ (double)expert_result_count  -src/fusion.c:178: trailing whitespace. -+ );  -src/fusion.c:179: trailing whitespace. -+ }  -src/fusion.c:180: trailing whitespace. -+  -src/fusion.c:181: trailing whitespace. -+ if (total_effective_weight >  -src/fusion.c:182: trailing whitespace. -+ CAMEFF_FUSION_EPSILON) {  -src/fusion.c:183: trailing whitespace. -+ result->hazard_evidence =  -src/fusion.c:184: trailing whitespace. -+ clamp01(  -src/fusion.c:185: trailing whitespace. -+ weighted_hazard /  -src/fusion.c:186: trailing whitespace. -+ total_effective_weight  -src/fusion.c:187: trailing whitespace. -+ );  -src/fusion.c:188: trailing whitespace. -+  -src/fusion.c:189: trailing whitespace. -+ result->preparation_evidence =  -src/fusion.c:190: trailing whitespace. -+ clamp01(  -src/fusion.c:191: trailing whitespace. -+ weighted_preparation /  -src/fusion.c:192: trailing whitespace. -+ total_effective_weight  -src/fusion.c:193: trailing whitespace. -+ );  -src/fusion.c:194: trailing whitespace. -+  -src/fusion.c:195: trailing whitespace. -+ result->cascade_evidence =  -src/fusion.c:196: trailing whitespace. -+ clamp01(  -src/fusion.c:197: trailing whitespace. -+ weighted_cascade /  -src/fusion.c:198: trailing whitespace. -+ total_effective_weight  -src/fusion.c:199: trailing whitespace. -+ );  -src/fusion.c:200: trailing whitespace. -+ }  -src/fusion.c:201: trailing whitespace. -+  -src/fusion.c:202: trailing whitespace. -+ classification_confidence = 1.0;  -src/fusion.c:203: trailing whitespace. -+  -src/fusion.c:204: trailing whitespace. -+ if (patterns != NULL) {  -src/fusion.c:205: trailing whitespace. -+ classification_confidence =  -src/fusion.c:206: trailing whitespace. -+ clamp01(  -src/fusion.c:207: trailing whitespace. -+ patterns->classification_confidence  -src/fusion.c:208: trailing whitespace. -+ );  -src/fusion.c:209: trailing whitespace. -+ }  -src/fusion.c:210: trailing whitespace. -+  -src/fusion.c:211: trailing whitespace. -+ if (total_active_routing >  -src/fusion.c:212: trailing whitespace. -+ CAMEFF_FUSION_EPSILON) {  -src/fusion.c:213: trailing whitespace. -+ result->fused_confidence =  -src/fusion.c:214: trailing whitespace. -+ clamp01(  -src/fusion.c:215: trailing whitespace. -+ (  -src/fusion.c:216: trailing whitespace. -+ confidence_numerator /  -src/fusion.c:217: trailing whitespace. -+ total_active_routing  -src/fusion.c:218: trailing whitespace. -+ ) *  -src/fusion.c:219: trailing whitespace. -+ classification_confidence  -src/fusion.c:220: trailing whitespace. -+ );  -src/fusion.c:221: trailing whitespace. -+ }  -src/fusion.c:222: trailing whitespace. -+  -src/fusion.c:223: trailing whitespace. -+ result->decision =  -src/fusion.c:224: trailing whitespace. -+ fused_decision(  -src/fusion.c:225: trailing whitespace. -+ result->hazard_evidence,  -src/fusion.c:226: trailing whitespace. -+ result->fused_confidence,  -src/fusion.c:227: trailing whitespace. -+ minimum_confidence,  -src/fusion.c:228: trailing whitespace. -+ watch_threshold,  -src/fusion.c:229: trailing whitespace. -+ elevated_threshold,  -src/fusion.c:230: trailing whitespace. -+ active_expert_count  -src/fusion.c:231: trailing whitespace. -+ );  -src/fusion.c:232: trailing whitespace. -+  -src/fusion.c:233: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/pattern.c:1: trailing whitespace. -+#include "cameff/pattern.h"  -src/pattern.c:2: trailing whitespace. -+  -src/pattern.c:3: trailing whitespace. -+#include   -src/pattern.c:4: trailing whitespace. -+#include   -src/pattern.c:5: trailing whitespace. -+#include   -src/pattern.c:6: trailing whitespace. -+  -src/pattern.c:7: trailing whitespace. -+#define CAMEFF_CLASSIFIER_EPSILON 1e-12  -src/pattern.c:8: trailing whitespace. -+  -src/pattern.c:9: trailing whitespace. -+static double clamp01(double value) {  -src/pattern.c:10: trailing whitespace. -+ if (!isfinite(value)) {  -src/pattern.c:11: trailing whitespace. -+ return 0.0;  -src/pattern.c:12: trailing whitespace. -+ }  -src/pattern.c:13: trailing whitespace. -+  -src/pattern.c:14: trailing whitespace. -+ if (value < 0.0) {  -src/pattern.c:15: trailing whitespace. -+ return 0.0;  -src/pattern.c:16: trailing whitespace. -+ }  -src/pattern.c:17: trailing whitespace. -+  -src/pattern.c:18: trailing whitespace. -+ if (value > 1.0) {  -src/pattern.c:19: trailing whitespace. -+ return 1.0;  -src/pattern.c:20: trailing whitespace. -+ }  -src/pattern.c:21: trailing whitespace. -+  -src/pattern.c:22: trailing whitespace. -+ return value;  -src/pattern.c:23: trailing whitespace. -+}  -src/pattern.c:24: trailing whitespace. -+  -src/pattern.c:25: trailing whitespace. -+static double signal_value(  -src/pattern.c:26: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/pattern.c:27: trailing whitespace. -+ cameff_signal_id_t signal_id  -src/pattern.c:28: trailing whitespace. -+) {  -src/pattern.c:29: trailing whitespace. -+ const cameff_signal_t *signal;  -src/pattern.c:30: trailing whitespace. -+  -src/pattern.c:31: trailing whitespace. -+ signal = &frame->signals[(size_t)signal_id];  -src/pattern.c:32: trailing whitespace. -+  -src/pattern.c:33: trailing whitespace. -+ if (!signal->available) {  -src/pattern.c:34: trailing whitespace. -+ return 0.0;  -src/pattern.c:35: trailing whitespace. -+ }  -src/pattern.c:36: trailing whitespace. -+  -src/pattern.c:37: trailing whitespace. -+ return clamp01(signal->value);  -src/pattern.c:38: trailing whitespace. -+}  -src/pattern.c:39: trailing whitespace. -+  -src/pattern.c:40: trailing whitespace. -+static double signal_confidence(  -src/pattern.c:41: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/pattern.c:42: trailing whitespace. -+ cameff_signal_id_t signal_id  -src/pattern.c:43: trailing whitespace. -+) {  -src/pattern.c:44: trailing whitespace. -+ const cameff_signal_t *signal;  -src/pattern.c:45: trailing whitespace. -+  -src/pattern.c:46: trailing whitespace. -+ signal = &frame->signals[(size_t)signal_id];  -src/pattern.c:47: trailing whitespace. -+  -src/pattern.c:48: trailing whitespace. -+ if (!signal->available) {  -src/pattern.c:49: trailing whitespace. -+ return 0.0;  -src/pattern.c:50: trailing whitespace. -+ }  -src/pattern.c:51: trailing whitespace. -+  -src/pattern.c:52: trailing whitespace. -+ return clamp01(signal->confidence);  -src/pattern.c:53: trailing whitespace. -+}  -src/pattern.c:54: trailing whitespace. -+  -src/pattern.c:55: trailing whitespace. -+static double effective_signal(  -src/pattern.c:56: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/pattern.c:57: trailing whitespace. -+ cameff_signal_id_t signal_id  -src/pattern.c:58: trailing whitespace. -+) {  -src/pattern.c:59: trailing whitespace. -+ return signal_value(frame, signal_id) *  -src/pattern.c:60: trailing whitespace. -+ signal_confidence(frame, signal_id);  -src/pattern.c:61: trailing whitespace. -+}  -src/pattern.c:62: trailing whitespace. -+  -src/pattern.c:63: trailing whitespace. -+static double mean_available_signal_confidence(  -src/pattern.c:64: trailing whitespace. -+ const cameff_signal_frame_t *frame  -src/pattern.c:65: trailing whitespace. -+) {  -src/pattern.c:66: trailing whitespace. -+ double total;  -src/pattern.c:67: trailing whitespace. -+ size_t available_count;  -src/pattern.c:68: trailing whitespace. -+ size_t i;  -src/pattern.c:69: trailing whitespace. -+  -src/pattern.c:70: trailing whitespace. -+ total = 0.0;  -src/pattern.c:71: trailing whitespace. -+ available_count = 0U;  -src/pattern.c:72: trailing whitespace. -+  -src/pattern.c:73: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -src/pattern.c:74: trailing whitespace. -+ if (frame->signals[i].available) {  -src/pattern.c:75: trailing whitespace. -+ total += clamp01(frame->signals[i].confidence);  -src/pattern.c:76: trailing whitespace. -+ ++available_count;  -src/pattern.c:77: trailing whitespace. -+ }  -src/pattern.c:78: trailing whitespace. -+ }  -src/pattern.c:79: trailing whitespace. -+  -src/pattern.c:80: trailing whitespace. -+ if (available_count == 0U) {  -src/pattern.c:81: trailing whitespace. -+ return 0.0;  -src/pattern.c:82: trailing whitespace. -+ }  -src/pattern.c:83: trailing whitespace. -+  -src/pattern.c:84: trailing whitespace. -+ return total / (double)available_count;  -src/pattern.c:85: trailing whitespace. -+}  -src/pattern.c:86: trailing whitespace. -+  -src/pattern.c:87: trailing whitespace. -+static double region_profile_confidence(  -src/pattern.c:88: trailing whitespace. -+ const cameff_region_profile_t *region  -src/pattern.c:89: trailing whitespace. -+) {  -src/pattern.c:90: trailing whitespace. -+ double total;  -src/pattern.c:91: trailing whitespace. -+  -src/pattern.c:92: trailing whitespace. -+ total =  -src/pattern.c:93: trailing whitespace. -+ clamp01(region->catalog_completeness) +  -src/pattern.c:94: trailing whitespace. -+ clamp01(region->station_coverage) +  -src/pattern.c:95: trailing whitespace. -+ clamp01(region->regional_prior_confidence);  -src/pattern.c:96: trailing whitespace. -+  -src/pattern.c:97: trailing whitespace. -+ return total / 3.0;  -src/pattern.c:98: trailing whitespace. -+}  -src/pattern.c:99: trailing whitespace. -+  -src/pattern.c:100: trailing whitespace. -+static void initialize_pattern_result(  -src/pattern.c:101: trailing whitespace. -+ cameff_pattern_result_t *result  -src/pattern.c:102: trailing whitespace. -+) {  -src/pattern.c:103: trailing whitespace. -+ size_t i;  -src/pattern.c:104: trailing whitespace. -+  -src/pattern.c:105: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -src/pattern.c:106: trailing whitespace. -+  -src/pattern.c:107: trailing whitespace. -+ result->count = CAMEFF_PATTERN_COUNT;  -src/pattern.c:108: trailing whitespace. -+ result->dominant_pattern = CAMEFF_PATTERN_UNKNOWN;  -src/pattern.c:109: trailing whitespace. -+  -src/pattern.c:110: trailing whitespace. -+ for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) {  -src/pattern.c:111: trailing whitespace. -+ result->scores[i].pattern_id = (cameff_pattern_id_t)i;  -src/pattern.c:112: trailing whitespace. -+ }  -src/pattern.c:113: trailing whitespace. -+}  -src/pattern.c:114: trailing whitespace. -+  -src/pattern.c:115: trailing whitespace. -+static void calculate_raw_scores(  -src/pattern.c:116: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/pattern.c:117: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/pattern.c:118: trailing whitespace. -+ double scores[CAMEFF_PATTERN_COUNT]  -src/pattern.c:119: trailing whitespace. -+) {  -src/pattern.c:120: trailing whitespace. -+ double activity;  -src/pattern.c:121: trailing whitespace. -+ double acceleration;  -src/pattern.c:122: trailing whitespace. -+ double concentration;  -src/pattern.c:123: trailing whitespace. -+ double magnitude;  -src/pattern.c:124: trailing whitespace. -+ double depth;  -src/pattern.c:125: trailing whitespace. -+ double b_value;  -src/pattern.c:126: trailing whitespace. -+ double completeness;  -src/pattern.c:127: trailing whitespace. -+ double fault_confidence;  -src/pattern.c:128: trailing whitespace. -+  -src/pattern.c:129: trailing whitespace. -+ double subduction;  -src/pattern.c:130: trailing whitespace. -+ double crustal;  -src/pattern.c:131: trailing whitespace. -+ double transform;  -src/pattern.c:132: trailing whitespace. -+ double volcanic;  -src/pattern.c:133: trailing whitespace. -+ double fault_uncertainty;  -src/pattern.c:134: trailing whitespace. -+ double data_confidence;  -src/pattern.c:135: trailing whitespace. -+ double quietness;  -src/pattern.c:136: trailing whitespace. -+  -src/pattern.c:137: trailing whitespace. -+ activity = effective_signal(  -src/pattern.c:138: trailing whitespace. -+ frame,  -src/pattern.c:139: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -src/pattern.c:140: trailing whitespace. -+ );  -src/pattern.c:141: trailing whitespace. -+  -src/pattern.c:142: trailing whitespace. -+ acceleration = effective_signal(  -src/pattern.c:143: trailing whitespace. -+ frame,  -src/pattern.c:144: trailing whitespace. -+ CAMEFF_SIGNAL_TEMPORAL_ACCELERATION  -src/pattern.c:145: trailing whitespace. -+ );  -src/pattern.c:146: trailing whitespace. -+  -src/pattern.c:147: trailing whitespace. -+ concentration = effective_signal(  -src/pattern.c:148: trailing whitespace. -+ frame,  -src/pattern.c:149: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -src/pattern.c:150: trailing whitespace. -+ );  -src/pattern.c:151: trailing whitespace. -+  -src/pattern.c:152: trailing whitespace. -+ magnitude = effective_signal(  -src/pattern.c:153: trailing whitespace. -+ frame,  -src/pattern.c:154: trailing whitespace. -+ CAMEFF_SIGNAL_MAGNITUDE_TREND  -src/pattern.c:155: trailing whitespace. -+ );  -src/pattern.c:156: trailing whitespace. -+  -src/pattern.c:157: trailing whitespace. -+ depth = effective_signal(  -src/pattern.c:158: trailing whitespace. -+ frame,  -src/pattern.c:159: trailing whitespace. -+ CAMEFF_SIGNAL_DEPTH_MIGRATION  -src/pattern.c:160: trailing whitespace. -+ );  -src/pattern.c:161: trailing whitespace. -+  -src/pattern.c:162: trailing whitespace. -+ b_value = effective_signal(  -src/pattern.c:163: trailing whitespace. -+ frame,  -src/pattern.c:164: trailing whitespace. -+ CAMEFF_SIGNAL_B_VALUE_ANOMALY  -src/pattern.c:165: trailing whitespace. -+ );  -src/pattern.c:166: trailing whitespace. -+  -src/pattern.c:167: trailing whitespace. -+ completeness = effective_signal(  -src/pattern.c:168: trailing whitespace. -+ frame,  -src/pattern.c:169: trailing whitespace. -+ CAMEFF_SIGNAL_CATALOG_COMPLETENESS  -src/pattern.c:170: trailing whitespace. -+ );  -src/pattern.c:171: trailing whitespace. -+  -src/pattern.c:172: trailing whitespace. -+ fault_confidence = effective_signal(  -src/pattern.c:173: trailing whitespace. -+ frame,  -src/pattern.c:174: trailing whitespace. -+ CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE  -src/pattern.c:175: trailing whitespace. -+ );  -src/pattern.c:176: trailing whitespace. -+  -src/pattern.c:177: trailing whitespace. -+ subduction = clamp01(region->subduction_affinity);  -src/pattern.c:178: trailing whitespace. -+ crustal = clamp01(region->crustal_fault_affinity);  -src/pattern.c:179: trailing whitespace. -+ transform = clamp01(region->transform_affinity);  -src/pattern.c:180: trailing whitespace. -+ volcanic = clamp01(region->volcanic_affinity);  -src/pattern.c:181: trailing whitespace. -+  -src/pattern.c:182: trailing whitespace. -+ fault_uncertainty =  -src/pattern.c:183: trailing whitespace. -+ 1.0 - clamp01(region->fault_map_confidence);  -src/pattern.c:184: trailing whitespace. -+  -src/pattern.c:185: trailing whitespace. -+ data_confidence =  -src/pattern.c:186: trailing whitespace. -+ clamp01(frame->data_confidence);  -src/pattern.c:187: trailing whitespace. -+  -src/pattern.c:188: trailing whitespace. -+ quietness =  -src/pattern.c:189: trailing whitespace. -+ 1.0 -  -src/pattern.c:190: trailing whitespace. -+ (  -src/pattern.c:191: trailing whitespace. -+ activity +  -src/pattern.c:192: trailing whitespace. -+ acceleration +  -src/pattern.c:193: trailing whitespace. -+ concentration +  -src/pattern.c:194: trailing whitespace. -+ magnitude +  -src/pattern.c:195: trailing whitespace. -+ depth +  -src/pattern.c:196: trailing whitespace. -+ b_value  -src/pattern.c:197: trailing whitespace. -+ ) / 6.0;  -src/pattern.c:198: trailing whitespace. -+  -src/pattern.c:199: trailing whitespace. -+ /*  -src/pattern.c:200: trailing whitespace. -+ * Background compatibility rises when anomaly channels are quiet  -src/pattern.c:201: trailing whitespace. -+ * and the input data are reasonably trustworthy.  -src/pattern.c:202: trailing whitespace. -+ */  -src/pattern.c:203: trailing whitespace. -+ scores[CAMEFF_PATTERN_BACKGROUND] =  -src/pattern.c:204: trailing whitespace. -+ 0.20 +  -src/pattern.c:205: trailing whitespace. -+ (1.80 * quietness) +  -src/pattern.c:206: trailing whitespace. -+ (0.40 * completeness) +  -src/pattern.c:207: trailing whitespace. -+ (0.30 * data_confidence);  -src/pattern.c:208: trailing whitespace. -+  -src/pattern.c:209: trailing whitespace. -+ /*  -src/pattern.c:210: trailing whitespace. -+ * Subduction preparation emphasizes temporal acceleration,  -src/pattern.c:211: trailing whitespace. -+ * magnitude behavior, spatial concentration and depth behavior,  -src/pattern.c:212: trailing whitespace. -+ * conditioned on subduction-region applicability.  -src/pattern.c:213: trailing whitespace. -+ */  -src/pattern.c:214: trailing whitespace. -+ scores[CAMEFF_PATTERN_SUBDUCTION_PREPARATION] =  -src/pattern.c:215: trailing whitespace. -+ -0.30 +  -src/pattern.c:216: trailing whitespace. -+ (1.30 * subduction) +  -src/pattern.c:217: trailing whitespace. -+ (0.75 * activity) +  -src/pattern.c:218: trailing whitespace. -+ (1.00 * acceleration) +  -src/pattern.c:219: trailing whitespace. -+ (0.65 * concentration) +  -src/pattern.c:220: trailing whitespace. -+ (0.85 * magnitude) +  -src/pattern.c:221: trailing whitespace. -+ (0.65 * depth) +  -src/pattern.c:222: trailing whitespace. -+ (0.50 * b_value) +  -src/pattern.c:223: trailing whitespace. -+ (0.25 * completeness);  -src/pattern.c:224: trailing whitespace. -+  -src/pattern.c:225: trailing whitespace. -+ /*  -src/pattern.c:226: trailing whitespace. -+ * Crustal-fault activation uses concentrated shallow-style  -src/pattern.c:227: trailing whitespace. -+ * catalog evidence and permits fault-map uncertainty to increase  -src/pattern.c:228: trailing whitespace. -+ * applicability. Uncertainty alone is insufficient because it is  -src/pattern.c:229: trailing whitespace. -+ * multiplied by observed activity and concentration.  -src/pattern.c:230: trailing whitespace. -+ */  -src/pattern.c:231: trailing whitespace. -+ scores[CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION] =  -src/pattern.c:232: trailing whitespace. -+ -0.35 +  -src/pattern.c:233: trailing whitespace. -+ (1.20 * crustal) +  -src/pattern.c:234: trailing whitespace. -+ (0.85 * activity) +  -src/pattern.c:235: trailing whitespace. -+ (0.80 * acceleration) +  -src/pattern.c:236: trailing whitespace. -+ (1.05 * concentration) +  -src/pattern.c:237: trailing whitespace. -+ (0.65 * magnitude) +  -src/pattern.c:238: trailing whitespace. -+ (0.30 * b_value) +  -src/pattern.c:239: trailing whitespace. -+ (0.55 * fault_uncertainty * activity * concentration) +  -src/pattern.c:240: trailing whitespace. -+ (0.20 * fault_confidence);  -src/pattern.c:241: trailing whitespace. -+  -src/pattern.c:242: trailing whitespace. -+ /*  -src/pattern.c:243: trailing whitespace. -+ * Cascade compatibility emphasizes high activity and clustering.  -src/pattern.c:244: trailing whitespace. -+ * It deliberately uses less tectonic-context dependence because  -src/pattern.c:245: trailing whitespace. -+ * triggered sequences can occur in several tectonic settings.  -src/pattern.c:246: trailing whitespace. -+ */  -src/pattern.c:247: trailing whitespace. -+ scores[CAMEFF_PATTERN_SEISMIC_CASCADE] =  -src/pattern.c:248: trailing whitespace. -+ -0.20 +  -src/pattern.c:249: trailing whitespace. -+ (1.25 * activity) +  -src/pattern.c:250: trailing whitespace. -+ (0.75 * acceleration) +  -src/pattern.c:251: trailing whitespace. -+ (1.20 * concentration) +  -src/pattern.c:252: trailing whitespace. -+ (0.35 * magnitude) +  -src/pattern.c:253: trailing whitespace. -+ (0.20 * b_value) +  -src/pattern.c:254: trailing whitespace. -+ (0.20 * completeness);  -src/pattern.c:255: trailing whitespace. -+  -src/pattern.c:256: trailing whitespace. -+ /*  -src/pattern.c:257: trailing whitespace. -+ * Volcanic classification remains conservative because Milestone 1  -src/pattern.c:258: trailing whitespace. -+ * does not yet provide deformation, gas or thermal observations.  -src/pattern.c:259: trailing whitespace. -+ */  -src/pattern.c:260: trailing whitespace. -+ scores[CAMEFF_PATTERN_VOLCANIC_UNREST] =  -src/pattern.c:261: trailing whitespace. -+ -0.75 +  -src/pattern.c:262: trailing whitespace. -+ (1.45 * volcanic) +  -src/pattern.c:263: trailing whitespace. -+ (0.70 * activity) +  -src/pattern.c:264: trailing whitespace. -+ (0.70 * acceleration) +  -src/pattern.c:265: trailing whitespace. -+ (0.55 * concentration) +  -src/pattern.c:266: trailing whitespace. -+ (0.55 * depth);  -src/pattern.c:267: trailing whitespace. -+  -src/pattern.c:268: trailing whitespace. -+ /*  -src/pattern.c:269: trailing whitespace. -+ * Transform-fault activity emphasizes lateral concentration,  -src/pattern.c:270: trailing whitespace. -+ * temporal acceleration and regional transform affinity.  -src/pattern.c:271: trailing whitespace. -+ */  -src/pattern.c:272: trailing whitespace. -+ scores[CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY] =  -src/pattern.c:273: trailing whitespace. -+ -0.45 +  -src/pattern.c:274: trailing whitespace. -+ (1.35 * transform) +  -src/pattern.c:275: trailing whitespace. -+ (0.80 * activity) +  -src/pattern.c:276: trailing whitespace. -+ (0.85 * acceleration) +  -src/pattern.c:277: trailing whitespace. -+ (0.95 * concentration) +  -src/pattern.c:278: trailing whitespace. -+ (0.55 * magnitude) +  -src/pattern.c:279: trailing whitespace. -+ (0.30 * b_value);  -src/pattern.c:280: trailing whitespace. -+  -src/pattern.c:281: trailing whitespace. -+ /*  -src/pattern.c:282: trailing whitespace. -+ * Unknown becomes more compatible when data quality or regional  -src/pattern.c:283: trailing whitespace. -+ * knowledge is weak.  -src/pattern.c:284: trailing whitespace. -+ */  -src/pattern.c:285: trailing whitespace. -+ scores[CAMEFF_PATTERN_UNKNOWN] =  -src/pattern.c:286: trailing whitespace. -+ -0.10 +  -src/pattern.c:287: trailing whitespace. -+ (0.90 * (1.0 - data_confidence)) +  -src/pattern.c:288: trailing whitespace. -+ (0.65 * (1.0 - completeness)) +  -src/pattern.c:289: trailing whitespace. -+ (0.55 * (1.0 - region_profile_confidence(region)));  -src/pattern.c:290: trailing whitespace. -+}  -src/pattern.c:291: trailing whitespace. -+  -src/pattern.c:292: trailing whitespace. -+static void softmax_scores(  -src/pattern.c:293: trailing whitespace. -+ const double raw_scores[CAMEFF_PATTERN_COUNT],  -src/pattern.c:294: trailing whitespace. -+ cameff_pattern_result_t *result  -src/pattern.c:295: trailing whitespace. -+) {  -src/pattern.c:296: trailing whitespace. -+ double maximum;  -src/pattern.c:297: trailing whitespace. -+ double denominator;  -src/pattern.c:298: trailing whitespace. -+ double exponentials[CAMEFF_PATTERN_COUNT];  -src/pattern.c:299: trailing whitespace. -+ size_t dominant_index;  -src/pattern.c:300: trailing whitespace. -+ size_t i;  -src/pattern.c:301: trailing whitespace. -+  -src/pattern.c:302: trailing whitespace. -+ maximum = -DBL_MAX;  -src/pattern.c:303: trailing whitespace. -+  -src/pattern.c:304: trailing whitespace. -+ for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) {  -src/pattern.c:305: trailing whitespace. -+ if (raw_scores[i] > maximum) {  -src/pattern.c:306: trailing whitespace. -+ maximum = raw_scores[i];  -src/pattern.c:307: trailing whitespace. -+ }  -src/pattern.c:308: trailing whitespace. -+ }  -src/pattern.c:309: trailing whitespace. -+  -src/pattern.c:310: trailing whitespace. -+ denominator = 0.0;  -src/pattern.c:311: trailing whitespace. -+  -src/pattern.c:312: trailing whitespace. -+ for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) {  -src/pattern.c:313: trailing whitespace. -+ exponentials[i] = exp(raw_scores[i] - maximum);  -src/pattern.c:314: trailing whitespace. -+ denominator += exponentials[i];  -src/pattern.c:315: trailing whitespace. -+ }  -src/pattern.c:316: trailing whitespace. -+  -src/pattern.c:317: trailing whitespace. -+ if (!isfinite(denominator) ||  -src/pattern.c:318: trailing whitespace. -+ denominator <= CAMEFF_CLASSIFIER_EPSILON) {  -src/pattern.c:319: trailing whitespace. -+ result->scores[CAMEFF_PATTERN_UNKNOWN].membership = 1.0;  -src/pattern.c:320: trailing whitespace. -+ result->dominant_pattern = CAMEFF_PATTERN_UNKNOWN;  -src/pattern.c:321: trailing whitespace. -+ return;  -src/pattern.c:322: trailing whitespace. -+ }  -src/pattern.c:323: trailing whitespace. -+  -src/pattern.c:324: trailing whitespace. -+ dominant_index = 0U;  -src/pattern.c:325: trailing whitespace. -+  -src/pattern.c:326: trailing whitespace. -+ for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) {  -src/pattern.c:327: trailing whitespace. -+ result->scores[i].membership =  -src/pattern.c:328: trailing whitespace. -+ exponentials[i] / denominator;  -src/pattern.c:329: trailing whitespace. -+  -src/pattern.c:330: trailing whitespace. -+ if (result->scores[i].membership >  -src/pattern.c:331: trailing whitespace. -+ result->scores[dominant_index].membership) {  -src/pattern.c:332: trailing whitespace. -+ dominant_index = i;  -src/pattern.c:333: trailing whitespace. -+ }  -src/pattern.c:334: trailing whitespace. -+ }  -src/pattern.c:335: trailing whitespace. -+  -src/pattern.c:336: trailing whitespace. -+ result->dominant_pattern =  -src/pattern.c:337: trailing whitespace. -+ (cameff_pattern_id_t)dominant_index;  -src/pattern.c:338: trailing whitespace. -+}  -src/pattern.c:339: trailing whitespace. -+  -src/pattern.c:340: trailing whitespace. -+cameff_status_t cameff_classify_patterns(  -src/pattern.c:341: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -src/pattern.c:342: trailing whitespace. -+ const cameff_region_profile_t *region,  -src/pattern.c:343: trailing whitespace. -+ cameff_pattern_result_t *result  -src/pattern.c:344: trailing whitespace. -+) {  -src/pattern.c:345: trailing whitespace. -+ double raw_scores[CAMEFF_PATTERN_COUNT];  -src/pattern.c:346: trailing whitespace. -+ double signal_quality;  -src/pattern.c:347: trailing whitespace. -+ double regional_quality;  -src/pattern.c:348: trailing whitespace. -+ size_t i;  -src/pattern.c:349: trailing whitespace. -+  -src/pattern.c:350: trailing whitespace. -+ if (frame == NULL || region == NULL || result == NULL) {  -src/pattern.c:351: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -src/pattern.c:352: trailing whitespace. -+ }  -src/pattern.c:353: trailing whitespace. -+  -src/pattern.c:354: trailing whitespace. -+ initialize_pattern_result(result);  -src/pattern.c:355: trailing whitespace. -+ calculate_raw_scores(frame, region, raw_scores);  -src/pattern.c:356: trailing whitespace. -+ softmax_scores(raw_scores, result);  -src/pattern.c:357: trailing whitespace. -+  -src/pattern.c:358: trailing whitespace. -+ signal_quality =  -src/pattern.c:359: trailing whitespace. -+ mean_available_signal_confidence(frame);  -src/pattern.c:360: trailing whitespace. -+  -src/pattern.c:361: trailing whitespace. -+ regional_quality =  -src/pattern.c:362: trailing whitespace. -+ region_profile_confidence(region);  -src/pattern.c:363: trailing whitespace. -+  -src/pattern.c:364: trailing whitespace. -+ result->classification_confidence =  -src/pattern.c:365: trailing whitespace. -+ clamp01(  -src/pattern.c:366: trailing whitespace. -+ (0.70 * signal_quality) +  -src/pattern.c:367: trailing whitespace. -+ (0.30 * regional_quality)  -src/pattern.c:368: trailing whitespace. -+ );  -src/pattern.c:369: trailing whitespace. -+  -src/pattern.c:370: trailing whitespace. -+ for (i = 0U; i < CAMEFF_PATTERN_COUNT; ++i) {  -src/pattern.c:371: trailing whitespace. -+ result->scores[i].confidence =  -src/pattern.c:372: trailing whitespace. -+ result->classification_confidence;  -src/pattern.c:373: trailing whitespace. -+ }  -src/pattern.c:374: trailing whitespace. -+  -src/pattern.c:375: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -src/pattern.c:376: trailing whitespace. -+}  -src/pattern.c:377: trailing whitespace. -+  -src/pattern.c:378: trailing whitespace. -+const char *cameff_pattern_name(cameff_pattern_id_t pattern_id) {  -src/pattern.c:379: trailing whitespace. -+ switch (pattern_id) {  -src/pattern.c:380: trailing whitespace. -+ case CAMEFF_PATTERN_BACKGROUND:  -src/pattern.c:381: trailing whitespace. -+ return "BACKGROUND";  -src/pattern.c:382: trailing whitespace. -+  -src/pattern.c:383: trailing whitespace. -+ case CAMEFF_PATTERN_SUBDUCTION_PREPARATION:  -src/pattern.c:384: trailing whitespace. -+ return "SUBDUCTION_PREPARATION";  -src/pattern.c:385: trailing whitespace. -+  -src/pattern.c:386: trailing whitespace. -+ case CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION:  -src/pattern.c:387: trailing whitespace. -+ return "CRUSTAL_FAULT_ACTIVATION";  -src/pattern.c:388: trailing whitespace. -+  -src/pattern.c:389: trailing whitespace. -+ case CAMEFF_PATTERN_SEISMIC_CASCADE:  -src/pattern.c:390: trailing whitespace. -+ return "SEISMIC_CASCADE";  -src/pattern.c:391: trailing whitespace. -+  -src/pattern.c:392: trailing whitespace. -+ case CAMEFF_PATTERN_VOLCANIC_UNREST:  -src/pattern.c:393: trailing whitespace. -+ return "VOLCANIC_UNREST";  -src/pattern.c:394: trailing whitespace. -+  -src/pattern.c:395: trailing whitespace. -+ case CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY:  -src/pattern.c:396: trailing whitespace. -+ return "TRANSFORM_FAULT_ACTIVITY";  -src/pattern.c:397: trailing whitespace. -+  -src/pattern.c:398: trailing whitespace. -+ case CAMEFF_PATTERN_UNKNOWN:  -src/pattern.c:399: trailing whitespace. -+ return "UNKNOWN";  -src/pattern.c:400: trailing whitespace. -+  -src/pattern.c:401: trailing whitespace. -+ default:  -src/pattern.c:402: trailing whitespace. -+ return "INVALID_PATTERN";  -src/pattern.c:403: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:1: trailing whitespace. -+#include "cameff_pipeline_adapter.h"  -src/validation/cameff_pipeline_adapter.c:2: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:3: trailing whitespace. -+#include "cameff/cameff.h"  -src/validation/cameff_pipeline_adapter.c:4: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:5: trailing whitespace. -+#include   -src/validation/cameff_pipeline_adapter.c:6: trailing whitespace. -+#include   -src/validation/cameff_pipeline_adapter.c:7: trailing whitespace. -+#include   -src/validation/cameff_pipeline_adapter.c:8: trailing whitespace. -+#include   -src/validation/cameff_pipeline_adapter.c:9: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:10: trailing whitespace. -+static int context_is_valid(  -src/validation/cameff_pipeline_adapter.c:11: trailing whitespace. -+ const CameffPipelineAdapterContext *context  -src/validation/cameff_pipeline_adapter.c:12: trailing whitespace. -+)  -src/validation/cameff_pipeline_adapter.c:13: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.c:14: trailing whitespace. -+ if (context == NULL)  -src/validation/cameff_pipeline_adapter.c:15: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:16: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:17: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:18: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:19: trailing whitespace. -+ if (context->analysis_latitude < -90.0 ||  -src/validation/cameff_pipeline_adapter.c:20: trailing whitespace. -+ context->analysis_latitude > 90.0)  -src/validation/cameff_pipeline_adapter.c:21: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:22: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:23: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:24: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:25: trailing whitespace. -+ if (context->analysis_longitude < -180.0 ||  -src/validation/cameff_pipeline_adapter.c:26: trailing whitespace. -+ context->analysis_longitude > 180.0)  -src/validation/cameff_pipeline_adapter.c:27: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:28: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:29: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:30: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:31: trailing whitespace. -+ if (context->analysis_radius_km <= 0.0)  -src/validation/cameff_pipeline_adapter.c:32: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:33: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:34: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:35: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:36: trailing whitespace. -+ if (context->lookback_days == 0U)  -src/validation/cameff_pipeline_adapter.c:37: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:38: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:39: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:40: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:41: trailing whitespace. -+ if (context->cutoff_epoch_seconds <= 0)  -src/validation/cameff_pipeline_adapter.c:42: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:43: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:44: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:45: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:46: trailing whitespace. -+ return 1;  -src/validation/cameff_pipeline_adapter.c:47: trailing whitespace. -+}  -src/validation/cameff_pipeline_adapter.c:48: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:49: trailing whitespace. -+static int convert_catalog(  -src/validation/cameff_pipeline_adapter.c:50: trailing whitespace. -+ const EarthquakeCatalog *source,  -src/validation/cameff_pipeline_adapter.c:51: trailing whitespace. -+ cameff_catalog_t *destination  -src/validation/cameff_pipeline_adapter.c:52: trailing whitespace. -+)  -src/validation/cameff_pipeline_adapter.c:53: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.c:54: trailing whitespace. -+ size_t index;  -src/validation/cameff_pipeline_adapter.c:55: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:56: trailing whitespace. -+ if (source == NULL || destination == NULL)  -src/validation/cameff_pipeline_adapter.c:57: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:58: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:59: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:60: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:61: trailing whitespace. -+ destination->items = NULL;  -src/validation/cameff_pipeline_adapter.c:62: trailing whitespace. -+ destination->count = 0U;  -src/validation/cameff_pipeline_adapter.c:63: trailing whitespace. -+ destination->capacity = 0U;  -src/validation/cameff_pipeline_adapter.c:64: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:65: trailing whitespace. -+ if (source->count == 0U)  -src/validation/cameff_pipeline_adapter.c:66: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:67: trailing whitespace. -+ return 1;  -src/validation/cameff_pipeline_adapter.c:68: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:69: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:70: trailing whitespace. -+ destination->items = calloc(  -src/validation/cameff_pipeline_adapter.c:71: trailing whitespace. -+ source->count,  -src/validation/cameff_pipeline_adapter.c:72: trailing whitespace. -+ sizeof(*destination->items)  -src/validation/cameff_pipeline_adapter.c:73: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:74: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:75: trailing whitespace. -+ if (destination->items == NULL)  -src/validation/cameff_pipeline_adapter.c:76: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:77: trailing whitespace. -+ return 0;  -src/validation/cameff_pipeline_adapter.c:78: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:79: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:80: trailing whitespace. -+ destination->count = source->count;  -src/validation/cameff_pipeline_adapter.c:81: trailing whitespace. -+ destination->capacity = source->count;  -src/validation/cameff_pipeline_adapter.c:82: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:83: trailing whitespace. -+ for (index = 0U; index < source->count; index++)  -src/validation/cameff_pipeline_adapter.c:84: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:85: trailing whitespace. -+ const EarthquakeEvent *source_event;  -src/validation/cameff_pipeline_adapter.c:86: trailing whitespace. -+ cameff_event_t *destination_event;  -src/validation/cameff_pipeline_adapter.c:87: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:88: trailing whitespace. -+ source_event = &source->events[index];  -src/validation/cameff_pipeline_adapter.c:89: trailing whitespace. -+ destination_event =  -src/validation/cameff_pipeline_adapter.c:90: trailing whitespace. -+ &destination->items[index];  -src/validation/cameff_pipeline_adapter.c:91: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:92: trailing whitespace. -+ (void)snprintf(  -src/validation/cameff_pipeline_adapter.c:93: trailing whitespace. -+ destination_event->id,  -src/validation/cameff_pipeline_adapter.c:94: trailing whitespace. -+ sizeof(destination_event->id),  -src/validation/cameff_pipeline_adapter.c:95: trailing whitespace. -+ "hindcast-%zu",  -src/validation/cameff_pipeline_adapter.c:96: trailing whitespace. -+ index  -src/validation/cameff_pipeline_adapter.c:97: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:98: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:99: trailing whitespace. -+ (void)snprintf(  -src/validation/cameff_pipeline_adapter.c:100: trailing whitespace. -+ destination_event->source,  -src/validation/cameff_pipeline_adapter.c:101: trailing whitespace. -+ sizeof(destination_event->source),  -src/validation/cameff_pipeline_adapter.c:102: trailing whitespace. -+ "%s",  -src/validation/cameff_pipeline_adapter.c:103: trailing whitespace. -+ "historical"  -src/validation/cameff_pipeline_adapter.c:104: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:105: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:106: trailing whitespace. -+ destination_event->epoch_seconds =  -src/validation/cameff_pipeline_adapter.c:107: trailing whitespace. -+ (int64_t)source_event->timestamp;  -src/validation/cameff_pipeline_adapter.c:108: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:109: trailing whitespace. -+ destination_event->latitude_deg =  -src/validation/cameff_pipeline_adapter.c:110: trailing whitespace. -+ source_event->latitude;  -src/validation/cameff_pipeline_adapter.c:111: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:112: trailing whitespace. -+ destination_event->longitude_deg =  -src/validation/cameff_pipeline_adapter.c:113: trailing whitespace. -+ source_event->longitude;  -src/validation/cameff_pipeline_adapter.c:114: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:115: trailing whitespace. -+ destination_event->depth_km =  -src/validation/cameff_pipeline_adapter.c:116: trailing whitespace. -+ source_event->depth_km;  -src/validation/cameff_pipeline_adapter.c:117: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:118: trailing whitespace. -+ destination_event->magnitude =  -src/validation/cameff_pipeline_adapter.c:119: trailing whitespace. -+ source_event->magnitude;  -src/validation/cameff_pipeline_adapter.c:120: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:121: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:122: trailing whitespace. -+ return 1;  -src/validation/cameff_pipeline_adapter.c:123: trailing whitespace. -+}  -src/validation/cameff_pipeline_adapter.c:124: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:125: trailing whitespace. -+static void release_catalog(  -src/validation/cameff_pipeline_adapter.c:126: trailing whitespace. -+ cameff_catalog_t *catalog  -src/validation/cameff_pipeline_adapter.c:127: trailing whitespace. -+)  -src/validation/cameff_pipeline_adapter.c:128: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.c:129: trailing whitespace. -+ if (catalog == NULL)  -src/validation/cameff_pipeline_adapter.c:130: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:131: trailing whitespace. -+ return;  -src/validation/cameff_pipeline_adapter.c:132: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:133: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:134: trailing whitespace. -+ free(catalog->items);  -src/validation/cameff_pipeline_adapter.c:135: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:136: trailing whitespace. -+ catalog->items = NULL;  -src/validation/cameff_pipeline_adapter.c:137: trailing whitespace. -+ catalog->count = 0U;  -src/validation/cameff_pipeline_adapter.c:138: trailing whitespace. -+ catalog->capacity = 0U;  -src/validation/cameff_pipeline_adapter.c:139: trailing whitespace. -+}  -src/validation/cameff_pipeline_adapter.c:140: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:141: trailing whitespace. -+static const char *find_dominant_expert(  -src/validation/cameff_pipeline_adapter.c:142: trailing whitespace. -+ const cameff_multi_expert_result_t *fusion  -src/validation/cameff_pipeline_adapter.c:143: trailing whitespace. -+)  -src/validation/cameff_pipeline_adapter.c:144: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.c:145: trailing whitespace. -+ const char *dominant_name;  -src/validation/cameff_pipeline_adapter.c:146: trailing whitespace. -+ double dominant_contribution;  -src/validation/cameff_pipeline_adapter.c:147: trailing whitespace. -+ size_t index;  -src/validation/cameff_pipeline_adapter.c:148: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:149: trailing whitespace. -+ if (fusion == NULL ||  -src/validation/cameff_pipeline_adapter.c:150: trailing whitespace. -+ fusion->expert_result_count == 0U)  -src/validation/cameff_pipeline_adapter.c:151: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:152: trailing whitespace. -+ return NULL;  -src/validation/cameff_pipeline_adapter.c:153: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:154: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:155: trailing whitespace. -+ dominant_name = NULL;  -src/validation/cameff_pipeline_adapter.c:156: trailing whitespace. -+ dominant_contribution = -1.0;  -src/validation/cameff_pipeline_adapter.c:157: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:158: trailing whitespace. -+ for (index = 0U;  -src/validation/cameff_pipeline_adapter.c:159: trailing whitespace. -+ index < fusion->expert_result_count;  -src/validation/cameff_pipeline_adapter.c:160: trailing whitespace. -+ index++)  -src/validation/cameff_pipeline_adapter.c:161: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:162: trailing whitespace. -+ const cameff_expert_result_t *expert;  -src/validation/cameff_pipeline_adapter.c:163: trailing whitespace. -+ double contribution;  -src/validation/cameff_pipeline_adapter.c:164: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:165: trailing whitespace. -+ expert = &fusion->expert_results[index];  -src/validation/cameff_pipeline_adapter.c:166: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:167: trailing whitespace. -+ if (expert->status != CAMEFF_EXPERT_OK)  -src/validation/cameff_pipeline_adapter.c:168: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:169: trailing whitespace. -+ continue;  -src/validation/cameff_pipeline_adapter.c:170: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:171: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:172: trailing whitespace. -+ contribution =  -src/validation/cameff_pipeline_adapter.c:173: trailing whitespace. -+ expert->routing_strength *  -src/validation/cameff_pipeline_adapter.c:174: trailing whitespace. -+ expert->confidence;  -src/validation/cameff_pipeline_adapter.c:175: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:176: trailing whitespace. -+ if (contribution > dominant_contribution)  -src/validation/cameff_pipeline_adapter.c:177: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:178: trailing whitespace. -+ dominant_contribution = contribution;  -src/validation/cameff_pipeline_adapter.c:179: trailing whitespace. -+ dominant_name = expert->expert_name;  -src/validation/cameff_pipeline_adapter.c:180: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:181: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:182: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:183: trailing whitespace. -+ return dominant_name;  -src/validation/cameff_pipeline_adapter.c:184: trailing whitespace. -+}  -src/validation/cameff_pipeline_adapter.c:185: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:186: trailing whitespace. -+void cameff_pipeline_adapter_context_initialize(  -src/validation/cameff_pipeline_adapter.c:187: trailing whitespace. -+ CameffPipelineAdapterContext *context  -src/validation/cameff_pipeline_adapter.c:188: trailing whitespace. -+)  -src/validation/cameff_pipeline_adapter.c:189: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.c:190: trailing whitespace. -+ if (context == NULL)  -src/validation/cameff_pipeline_adapter.c:191: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:192: trailing whitespace. -+ return;  -src/validation/cameff_pipeline_adapter.c:193: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:194: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:195: trailing whitespace. -+ (void)memset(context, 0, sizeof(*context));  -src/validation/cameff_pipeline_adapter.c:196: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:197: trailing whitespace. -+ cameff_config_default(&context->config);  -src/validation/cameff_pipeline_adapter.c:198: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:199: trailing whitespace. -+ cameff_evaluation_options_default(  -src/validation/cameff_pipeline_adapter.c:200: trailing whitespace. -+ &context->options  -src/validation/cameff_pipeline_adapter.c:201: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:202: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:203: trailing whitespace. -+ context->analysis_latitude = 0.0;  -src/validation/cameff_pipeline_adapter.c:204: trailing whitespace. -+ context->analysis_longitude = 0.0;  -src/validation/cameff_pipeline_adapter.c:205: trailing whitespace. -+ context->analysis_radius_km = 100.0;  -src/validation/cameff_pipeline_adapter.c:206: trailing whitespace. -+ context->lookback_days = 365U;  -src/validation/cameff_pipeline_adapter.c:207: trailing whitespace. -+ context->cutoff_epoch_seconds = 0;  -src/validation/cameff_pipeline_adapter.c:208: trailing whitespace. -+}  -src/validation/cameff_pipeline_adapter.c:209: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:210: trailing whitespace. -+int cameff_pipeline_evaluator(  -src/validation/cameff_pipeline_adapter.c:211: trailing whitespace. -+ const EarthquakeCatalog *evidence_catalog,  -src/validation/cameff_pipeline_adapter.c:212: trailing whitespace. -+ const EarthquakeEvent *target_context,  -src/validation/cameff_pipeline_adapter.c:213: trailing whitespace. -+ CameffEvaluationOutput *output,  -src/validation/cameff_pipeline_adapter.c:214: trailing whitespace. -+ void *user_context  -src/validation/cameff_pipeline_adapter.c:215: trailing whitespace. -+)  -src/validation/cameff_pipeline_adapter.c:216: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.c:217: trailing whitespace. -+ CameffPipelineAdapterContext *context;  -src/validation/cameff_pipeline_adapter.c:218: trailing whitespace. -+ cameff_catalog_t cameff_catalog;  -src/validation/cameff_pipeline_adapter.c:219: trailing whitespace. -+ cameff_analysis_window_t window;  -src/validation/cameff_pipeline_adapter.c:220: trailing whitespace. -+ cameff_signal_frame_t frame;  -src/validation/cameff_pipeline_adapter.c:221: trailing whitespace. -+ cameff_evaluation_result_t evaluation;  -src/validation/cameff_pipeline_adapter.c:222: trailing whitespace. -+ cameff_status_t status;  -src/validation/cameff_pipeline_adapter.c:223: trailing whitespace. -+ const char *pattern_name;  -src/validation/cameff_pipeline_adapter.c:224: trailing whitespace. -+ const char *expert_name;  -src/validation/cameff_pipeline_adapter.c:225: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:226: trailing whitespace. -+ /*  -src/validation/cameff_pipeline_adapter.c:227: trailing whitespace. -+ * Deliberately unused.  -src/validation/cameff_pipeline_adapter.c:228: trailing whitespace. -+ *  -src/validation/cameff_pipeline_adapter.c:229: trailing whitespace. -+ * This prevents target magnitude, target depth, or other  -src/validation/cameff_pipeline_adapter.c:230: trailing whitespace. -+ * post-event information from entering the signal pipeline.  -src/validation/cameff_pipeline_adapter.c:231: trailing whitespace. -+ */  -src/validation/cameff_pipeline_adapter.c:232: trailing whitespace. -+ (void)target_context;  -src/validation/cameff_pipeline_adapter.c:233: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:234: trailing whitespace. -+ if (evidence_catalog == NULL ||  -src/validation/cameff_pipeline_adapter.c:235: trailing whitespace. -+ output == NULL ||  -src/validation/cameff_pipeline_adapter.c:236: trailing whitespace. -+ user_context == NULL)  -src/validation/cameff_pipeline_adapter.c:237: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:238: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_ARGUMENT;  -src/validation/cameff_pipeline_adapter.c:239: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:240: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:241: trailing whitespace. -+ context =  -src/validation/cameff_pipeline_adapter.c:242: trailing whitespace. -+ (CameffPipelineAdapterContext *)user_context;  -src/validation/cameff_pipeline_adapter.c:243: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:244: trailing whitespace. -+ if (!context_is_valid(context))  -src/validation/cameff_pipeline_adapter.c:245: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:246: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_ARGUMENT;  -src/validation/cameff_pipeline_adapter.c:247: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:248: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:249: trailing whitespace. -+ cameff_evaluation_output_initialize(output);  -src/validation/cameff_pipeline_adapter.c:250: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:251: trailing whitespace. -+ if (!convert_catalog(  -src/validation/cameff_pipeline_adapter.c:252: trailing whitespace. -+ evidence_catalog,  -src/validation/cameff_pipeline_adapter.c:253: trailing whitespace. -+ &cameff_catalog))  -src/validation/cameff_pipeline_adapter.c:254: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:255: trailing whitespace. -+ return CAMEFF_EVALUATOR_EXECUTION_FAILED;  -src/validation/cameff_pipeline_adapter.c:256: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:257: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:258: trailing whitespace. -+ (void)memset(&window, 0, sizeof(window));  -src/validation/cameff_pipeline_adapter.c:259: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:260: trailing whitespace. -+ window.center_latitude_deg =  -src/validation/cameff_pipeline_adapter.c:261: trailing whitespace. -+ context->analysis_latitude;  -src/validation/cameff_pipeline_adapter.c:262: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:263: trailing whitespace. -+ window.center_longitude_deg =  -src/validation/cameff_pipeline_adapter.c:264: trailing whitespace. -+ context->analysis_longitude;  -src/validation/cameff_pipeline_adapter.c:265: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:266: trailing whitespace. -+ window.radius_km =  -src/validation/cameff_pipeline_adapter.c:267: trailing whitespace. -+ context->analysis_radius_km;  -src/validation/cameff_pipeline_adapter.c:268: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:269: trailing whitespace. -+ window.lookback_days =  -src/validation/cameff_pipeline_adapter.c:270: trailing whitespace. -+ context->lookback_days;  -src/validation/cameff_pipeline_adapter.c:271: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:272: trailing whitespace. -+ /*  -src/validation/cameff_pipeline_adapter.c:273: trailing whitespace. -+ * Use the actual hindcast cutoff supplied by the  -src/validation/cameff_pipeline_adapter.c:274: trailing whitespace. -+ * experiment context.  -src/validation/cameff_pipeline_adapter.c:275: trailing whitespace. -+ *  -src/validation/cameff_pipeline_adapter.c:276: trailing whitespace. -+ * Do not derive this from the last evidence event.  -src/validation/cameff_pipeline_adapter.c:277: trailing whitespace. -+ */  -src/validation/cameff_pipeline_adapter.c:278: trailing whitespace. -+ window.cutoff_epoch_seconds =  -src/validation/cameff_pipeline_adapter.c:279: trailing whitespace. -+ context->cutoff_epoch_seconds;  -src/validation/cameff_pipeline_adapter.c:280: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:281: trailing whitespace. -+ status = cameff_extract_signal_frame(  -src/validation/cameff_pipeline_adapter.c:282: trailing whitespace. -+ &cameff_catalog,  -src/validation/cameff_pipeline_adapter.c:283: trailing whitespace. -+ &window,  -src/validation/cameff_pipeline_adapter.c:284: trailing whitespace. -+ &context->config,  -src/validation/cameff_pipeline_adapter.c:285: trailing whitespace. -+ &frame  -src/validation/cameff_pipeline_adapter.c:286: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:287: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:288: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK)  -src/validation/cameff_pipeline_adapter.c:289: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:290: trailing whitespace. -+ release_catalog(&cameff_catalog);  -src/validation/cameff_pipeline_adapter.c:291: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:292: trailing whitespace. -+ return CAMEFF_EVALUATOR_EXECUTION_FAILED;  -src/validation/cameff_pipeline_adapter.c:293: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:294: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:295: trailing whitespace. -+ output->signal_count =  -src/validation/cameff_pipeline_adapter.c:296: trailing whitespace. -+ CAMEFF_SIGNAL_COUNT;  -src/validation/cameff_pipeline_adapter.c:297: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:298: trailing whitespace. -+ (void)memcpy(  -src/validation/cameff_pipeline_adapter.c:299: trailing whitespace. -+ output->signals,  -src/validation/cameff_pipeline_adapter.c:300: trailing whitespace. -+ frame.signals,  -src/validation/cameff_pipeline_adapter.c:301: trailing whitespace. -+ sizeof(output->signals)  -src/validation/cameff_pipeline_adapter.c:302: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:303: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:304: trailing whitespace. -+ status = cameff_evaluate_experts(  -src/validation/cameff_pipeline_adapter.c:305: trailing whitespace. -+ &frame,  -src/validation/cameff_pipeline_adapter.c:306: trailing whitespace. -+ &context->config,  -src/validation/cameff_pipeline_adapter.c:307: trailing whitespace. -+ &context->region,  -src/validation/cameff_pipeline_adapter.c:308: trailing whitespace. -+ &context->options,  -src/validation/cameff_pipeline_adapter.c:309: trailing whitespace. -+ &evaluation  -src/validation/cameff_pipeline_adapter.c:310: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:311: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:312: trailing whitespace. -+ release_catalog(&cameff_catalog);  -src/validation/cameff_pipeline_adapter.c:313: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:314: trailing whitespace. -+ if (status != CAMEFF_STATUS_OK)  -src/validation/cameff_pipeline_adapter.c:315: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:316: trailing whitespace. -+ return CAMEFF_EVALUATOR_EXECUTION_FAILED;  -src/validation/cameff_pipeline_adapter.c:317: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:318: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:319: trailing whitespace. -+ output->hazard_score =  -src/validation/cameff_pipeline_adapter.c:320: trailing whitespace. -+ evaluation.fusion.hazard_evidence;  -src/validation/cameff_pipeline_adapter.c:321: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:322: trailing whitespace. -+ output->confidence =  -src/validation/cameff_pipeline_adapter.c:323: trailing whitespace. -+ evaluation.fusion.fused_confidence;  -src/validation/cameff_pipeline_adapter.c:324: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:325: trailing whitespace. -+ pattern_name = cameff_pattern_name(  -src/validation/cameff_pipeline_adapter.c:326: trailing whitespace. -+ evaluation.fusion.dominant_pattern  -src/validation/cameff_pipeline_adapter.c:327: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:328: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:329: trailing whitespace. -+ expert_name = find_dominant_expert(  -src/validation/cameff_pipeline_adapter.c:330: trailing whitespace. -+ &evaluation.fusion  -src/validation/cameff_pipeline_adapter.c:331: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:332: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:333: trailing whitespace. -+ if (pattern_name == NULL ||  -src/validation/cameff_pipeline_adapter.c:334: trailing whitespace. -+ expert_name == NULL)  -src/validation/cameff_pipeline_adapter.c:335: trailing whitespace. -+ {  -src/validation/cameff_pipeline_adapter.c:336: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/cameff_pipeline_adapter.c:337: trailing whitespace. -+ }  -src/validation/cameff_pipeline_adapter.c:338: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:339: trailing whitespace. -+ (void)snprintf(  -src/validation/cameff_pipeline_adapter.c:340: trailing whitespace. -+ output->dominant_pattern,  -src/validation/cameff_pipeline_adapter.c:341: trailing whitespace. -+ sizeof(output->dominant_pattern),  -src/validation/cameff_pipeline_adapter.c:342: trailing whitespace. -+ "%s",  -src/validation/cameff_pipeline_adapter.c:343: trailing whitespace. -+ pattern_name  -src/validation/cameff_pipeline_adapter.c:344: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:345: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:346: trailing whitespace. -+ (void)snprintf(  -src/validation/cameff_pipeline_adapter.c:347: trailing whitespace. -+ output->dominant_expert,  -src/validation/cameff_pipeline_adapter.c:348: trailing whitespace. -+ sizeof(output->dominant_expert),  -src/validation/cameff_pipeline_adapter.c:349: trailing whitespace. -+ "%s",  -src/validation/cameff_pipeline_adapter.c:350: trailing whitespace. -+ expert_name  -src/validation/cameff_pipeline_adapter.c:351: trailing whitespace. -+ );  -src/validation/cameff_pipeline_adapter.c:352: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.c:353: trailing whitespace. -+ return CAMEFF_EVALUATOR_OK;  -src/validation/cameff_pipeline_adapter.h:1: trailing whitespace. -+#ifndef CAMEFF_PIPELINE_ADAPTER_H  -src/validation/cameff_pipeline_adapter.h:2: trailing whitespace. -+#define CAMEFF_PIPELINE_ADAPTER_H  -src/validation/cameff_pipeline_adapter.h:3: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:4: trailing whitespace. -+#include "hindcast_evaluator.h"  -src/validation/cameff_pipeline_adapter.h:5: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:6: trailing whitespace. -+#include "cameff/config.h"  -src/validation/cameff_pipeline_adapter.h:7: trailing whitespace. -+#include "cameff/evaluation.h"  -src/validation/cameff_pipeline_adapter.h:8: trailing whitespace. -+#include "cameff/region.h"  -src/validation/cameff_pipeline_adapter.h:9: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:10: trailing whitespace. -+#include   -src/validation/cameff_pipeline_adapter.h:11: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:12: trailing whitespace. -+typedef struct  -src/validation/cameff_pipeline_adapter.h:13: trailing whitespace. -+{  -src/validation/cameff_pipeline_adapter.h:14: trailing whitespace. -+ cameff_config_t config;  -src/validation/cameff_pipeline_adapter.h:15: trailing whitespace. -+ cameff_evaluation_options_t options;  -src/validation/cameff_pipeline_adapter.h:16: trailing whitespace. -+ cameff_region_profile_t region;  -src/validation/cameff_pipeline_adapter.h:17: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:18: trailing whitespace. -+ double analysis_latitude;  -src/validation/cameff_pipeline_adapter.h:19: trailing whitespace. -+ double analysis_longitude;  -src/validation/cameff_pipeline_adapter.h:20: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:21: trailing whitespace. -+ double analysis_radius_km;  -src/validation/cameff_pipeline_adapter.h:22: trailing whitespace. -+ unsigned lookback_days;  -src/validation/cameff_pipeline_adapter.h:23: trailing whitespace. -+ int64_t cutoff_epoch_seconds;  -src/validation/cameff_pipeline_adapter.h:24: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:25: trailing whitespace. -+} CameffPipelineAdapterContext;  -src/validation/cameff_pipeline_adapter.h:26: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:27: trailing whitespace. -+void cameff_pipeline_adapter_context_initialize(  -src/validation/cameff_pipeline_adapter.h:28: trailing whitespace. -+ CameffPipelineAdapterContext *context  -src/validation/cameff_pipeline_adapter.h:29: trailing whitespace. -+);  -src/validation/cameff_pipeline_adapter.h:30: trailing whitespace. -+  -src/validation/cameff_pipeline_adapter.h:31: trailing whitespace. -+int cameff_pipeline_evaluator(  -src/validation/cameff_pipeline_adapter.h:32: trailing whitespace. -+ const EarthquakeCatalog *evidence_catalog,  -src/validation/cameff_pipeline_adapter.h:33: trailing whitespace. -+ const EarthquakeEvent *target_context,  -src/validation/cameff_pipeline_adapter.h:34: trailing whitespace. -+ CameffEvaluationOutput *output,  -src/validation/cameff_pipeline_adapter.h:35: trailing whitespace. -+ void *user_context  -src/validation/cameff_pipeline_adapter.h:36: trailing whitespace. -+);  -src/validation/cameff_pipeline_adapter.h:37: trailing whitespace. -+  -src/validation/hindcast.c:1: trailing whitespace. -+#include "hindcast.h"  -src/validation/hindcast.c:2: trailing whitespace. -+  -src/validation/hindcast.c:3: trailing whitespace. -+#include "../data/earthquake_catalog_filter.h"  -src/validation/hindcast.c:4: trailing whitespace. -+  -src/validation/hindcast.c:5: trailing whitespace. -+#include   -src/validation/hindcast.c:6: trailing whitespace. -+  -src/validation/hindcast.c:7: trailing whitespace. -+static int target_is_valid(  -src/validation/hindcast.c:8: trailing whitespace. -+ const EarthquakeEvent *target  -src/validation/hindcast.c:9: trailing whitespace. -+)  -src/validation/hindcast.c:10: trailing whitespace. -+{  -src/validation/hindcast.c:11: trailing whitespace. -+ if (target == NULL)  -src/validation/hindcast.c:12: trailing whitespace. -+ {  -src/validation/hindcast.c:13: trailing whitespace. -+ return 0;  -src/validation/hindcast.c:14: trailing whitespace. -+ }  -src/validation/hindcast.c:15: trailing whitespace. -+  -src/validation/hindcast.c:16: trailing whitespace. -+ if (target->latitude < -90.0 ||  -src/validation/hindcast.c:17: trailing whitespace. -+ target->latitude > 90.0)  -src/validation/hindcast.c:18: trailing whitespace. -+ {  -src/validation/hindcast.c:19: trailing whitespace. -+ return 0;  -src/validation/hindcast.c:20: trailing whitespace. -+ }  -src/validation/hindcast.c:21: trailing whitespace. -+  -src/validation/hindcast.c:22: trailing whitespace. -+ if (target->longitude < -180.0 ||  -src/validation/hindcast.c:23: trailing whitespace. -+ target->longitude > 180.0)  -src/validation/hindcast.c:24: trailing whitespace. -+ {  -src/validation/hindcast.c:25: trailing whitespace. -+ return 0;  -src/validation/hindcast.c:26: trailing whitespace. -+ }  -src/validation/hindcast.c:27: trailing whitespace. -+  -src/validation/hindcast.c:28: trailing whitespace. -+ if (target->depth_km < 0.0)  -src/validation/hindcast.c:29: trailing whitespace. -+ {  -src/validation/hindcast.c:30: trailing whitespace. -+ return 0;  -src/validation/hindcast.c:31: trailing whitespace. -+ }  -src/validation/hindcast.c:32: trailing whitespace. -+  -src/validation/hindcast.c:33: trailing whitespace. -+ if (target->magnitude < -2.0 ||  -src/validation/hindcast.c:34: trailing whitespace. -+ target->magnitude > 10.5)  -src/validation/hindcast.c:35: trailing whitespace. -+ {  -src/validation/hindcast.c:36: trailing whitespace. -+ return 0;  -src/validation/hindcast.c:37: trailing whitespace. -+ }  -src/validation/hindcast.c:38: trailing whitespace. -+  -src/validation/hindcast.c:39: trailing whitespace. -+ if (target->timestamp <= (time_t)0)  -src/validation/hindcast.c:40: trailing whitespace. -+ {  -src/validation/hindcast.c:41: trailing whitespace. -+ return 0;  -src/validation/hindcast.c:42: trailing whitespace. -+ }  -src/validation/hindcast.c:43: trailing whitespace. -+  -src/validation/hindcast.c:44: trailing whitespace. -+ return 1;  -src/validation/hindcast.c:45: trailing whitespace. -+}  -src/validation/hindcast.c:46: trailing whitespace. -+  -src/validation/hindcast.c:47: trailing whitespace. -+void hindcast_experiment_initialize(  -src/validation/hindcast.c:48: trailing whitespace. -+ HindcastExperiment *experiment  -src/validation/hindcast.c:49: trailing whitespace. -+)  -src/validation/hindcast.c:50: trailing whitespace. -+{  -src/validation/hindcast.c:51: trailing whitespace. -+ if (experiment == NULL)  -src/validation/hindcast.c:52: trailing whitespace. -+ {  -src/validation/hindcast.c:53: trailing whitespace. -+ return;  -src/validation/hindcast.c:54: trailing whitespace. -+ }  -src/validation/hindcast.c:55: trailing whitespace. -+  -src/validation/hindcast.c:56: trailing whitespace. -+ initialize_earthquake_event(  -src/validation/hindcast.c:57: trailing whitespace. -+ &experiment->target  -src/validation/hindcast.c:58: trailing whitespace. -+ );  -src/validation/hindcast.c:59: trailing whitespace. -+  -src/validation/hindcast.c:60: trailing whitespace. -+ experiment->observation_start = (time_t)0;  -src/validation/hindcast.c:61: trailing whitespace. -+ experiment->cutoff_time = (time_t)0;  -src/validation/hindcast.c:62: trailing whitespace. -+ experiment->analysis_radius_km = 0.0;  -src/validation/hindcast.c:63: trailing whitespace. -+ experiment->source_catalog = NULL;  -src/validation/hindcast.c:64: trailing whitespace. -+  -src/validation/hindcast.c:65: trailing whitespace. -+ experiment->evaluator = NULL;  -src/validation/hindcast.c:66: trailing whitespace. -+ experiment->evaluator_context = NULL;  -src/validation/hindcast.c:67: trailing whitespace. -+}  -src/validation/hindcast.c:68: trailing whitespace. -+  -src/validation/hindcast.c:69: trailing whitespace. -+void hindcast_result_initialize(  -src/validation/hindcast.c:70: trailing whitespace. -+ HindcastResult *result  -src/validation/hindcast.c:71: trailing whitespace. -+)  -src/validation/hindcast.c:72: trailing whitespace. -+{  -src/validation/hindcast.c:73: trailing whitespace. -+ size_t index;  -src/validation/hindcast.c:74: trailing whitespace. -+  -src/validation/hindcast.c:75: trailing whitespace. -+ if (result == NULL)  -src/validation/hindcast.c:76: trailing whitespace. -+ {  -src/validation/hindcast.c:77: trailing whitespace. -+ return;  -src/validation/hindcast.c:78: trailing whitespace. -+ }  -src/validation/hindcast.c:79: trailing whitespace. -+  -src/validation/hindcast.c:80: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:81: trailing whitespace. -+ CAMEFF_HINDCAST_NOT_EVALUATED;  -src/validation/hindcast.c:82: trailing whitespace. -+  -src/validation/hindcast.c:83: trailing whitespace. -+ result->evidence_event_count = 0U;  -src/validation/hindcast.c:84: trailing whitespace. -+  -src/validation/hindcast.c:85: trailing whitespace. -+ result->observation_start = (time_t)0;  -src/validation/hindcast.c:86: trailing whitespace. -+ result->cutoff_time = (time_t)0;  -src/validation/hindcast.c:87: trailing whitespace. -+  -src/validation/hindcast.c:88: trailing whitespace. -+ result->hazard_score = 0.0;  -src/validation/hindcast.c:89: trailing whitespace. -+ result->confidence = 0.0;  -src/validation/hindcast.c:90: trailing whitespace. -+  -src/validation/hindcast.c:91: trailing whitespace. -+ result->signal_count = 0U;  -src/validation/hindcast.c:92: trailing whitespace. -+  -src/validation/hindcast.c:93: trailing whitespace. -+ for (index = 0U;  -src/validation/hindcast.c:94: trailing whitespace. -+ index < CAMEFF_SIGNAL_COUNT;  -src/validation/hindcast.c:95: trailing whitespace. -+ index++)  -src/validation/hindcast.c:96: trailing whitespace. -+ {  -src/validation/hindcast.c:97: trailing whitespace. -+ result->signals[index].value = 0.0;  -src/validation/hindcast.c:98: trailing whitespace. -+ result->signals[index].confidence = 0.0;  -src/validation/hindcast.c:99: trailing whitespace. -+ result->signals[index].supporting_events = 0U;  -src/validation/hindcast.c:100: trailing whitespace. -+ result->signals[index].available = 0;  -src/validation/hindcast.c:101: trailing whitespace. -+ }  -src/validation/hindcast.c:102: trailing whitespace. -+  -src/validation/hindcast.c:103: trailing whitespace. -+ result->dominant_pattern[0] = '\0';  -src/validation/hindcast.c:104: trailing whitespace. -+ result->dominant_expert[0] = '\0';  -src/validation/hindcast.c:105: trailing whitespace. -+}  -src/validation/hindcast.c:106: trailing whitespace. -+  -src/validation/hindcast.c:107: trailing whitespace. -+int hindcast_experiment_validate(  -src/validation/hindcast.c:108: trailing whitespace. -+ const HindcastExperiment *experiment  -src/validation/hindcast.c:109: trailing whitespace. -+)  -src/validation/hindcast.c:110: trailing whitespace. -+{  -src/validation/hindcast.c:111: trailing whitespace. -+ if (experiment == NULL)  -src/validation/hindcast.c:112: trailing whitespace. -+ {  -src/validation/hindcast.c:113: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_ARGUMENT;  -src/validation/hindcast.c:114: trailing whitespace. -+ }  -src/validation/hindcast.c:115: trailing whitespace. -+  -src/validation/hindcast.c:116: trailing whitespace. -+ if (!target_is_valid(&experiment->target))  -src/validation/hindcast.c:117: trailing whitespace. -+ {  -src/validation/hindcast.c:118: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_TARGET;  -src/validation/hindcast.c:119: trailing whitespace. -+ }  -src/validation/hindcast.c:120: trailing whitespace. -+  -src/validation/hindcast.c:121: trailing whitespace. -+ if (experiment->source_catalog == NULL)  -src/validation/hindcast.c:122: trailing whitespace. -+ {  -src/validation/hindcast.c:123: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_ARGUMENT;  -src/validation/hindcast.c:124: trailing whitespace. -+ }  -src/validation/hindcast.c:125: trailing whitespace. -+  -src/validation/hindcast.c:126: trailing whitespace. -+ if (experiment->observation_start >=  -src/validation/hindcast.c:127: trailing whitespace. -+ experiment->cutoff_time)  -src/validation/hindcast.c:128: trailing whitespace. -+ {  -src/validation/hindcast.c:129: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_TIME_WINDOW;  -src/validation/hindcast.c:130: trailing whitespace. -+ }  -src/validation/hindcast.c:131: trailing whitespace. -+  -src/validation/hindcast.c:132: trailing whitespace. -+ /*  -src/validation/hindcast.c:133: trailing whitespace. -+ * The cutoff must not be later than the target.  -src/validation/hindcast.c:134: trailing whitespace. -+ *  -src/validation/hindcast.c:135: trailing whitespace. -+ * Equal is allowed because the target timestamp itself  -src/validation/hindcast.c:136: trailing whitespace. -+ * remains excluded by the half-open filter:  -src/validation/hindcast.c:137: trailing whitespace. -+ *  -src/validation/hindcast.c:138: trailing whitespace. -+ * event.timestamp < cutoff_time  -src/validation/hindcast.c:139: trailing whitespace. -+ */  -src/validation/hindcast.c:140: trailing whitespace. -+ if (experiment->cutoff_time >  -src/validation/hindcast.c:141: trailing whitespace. -+ experiment->target.timestamp)  -src/validation/hindcast.c:142: trailing whitespace. -+ {  -src/validation/hindcast.c:143: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_TIME_WINDOW;  -src/validation/hindcast.c:144: trailing whitespace. -+ }  -src/validation/hindcast.c:145: trailing whitespace. -+  -src/validation/hindcast.c:146: trailing whitespace. -+ if (experiment->analysis_radius_km <= 0.0)  -src/validation/hindcast.c:147: trailing whitespace. -+ {  -src/validation/hindcast.c:148: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_RADIUS;  -src/validation/hindcast.c:149: trailing whitespace. -+ }  -src/validation/hindcast.c:150: trailing whitespace. -+  -src/validation/hindcast.c:151: trailing whitespace. -+ return CAMEFF_HINDCAST_OK;  -src/validation/hindcast.c:152: trailing whitespace. -+}  -src/validation/hindcast.c:153: trailing whitespace. -+  -src/validation/hindcast.c:154: trailing whitespace. -+int run_hindcast(  -src/validation/hindcast.c:155: trailing whitespace. -+ const HindcastExperiment *experiment,  -src/validation/hindcast.c:156: trailing whitespace. -+ HindcastResult *result  -src/validation/hindcast.c:157: trailing whitespace. -+)  -src/validation/hindcast.c:158: trailing whitespace. -+{  -src/validation/hindcast.c:159: trailing whitespace. -+ EarthquakeCatalog evidence_catalog;  -src/validation/hindcast.c:160: trailing whitespace. -+ CameffEvaluationOutput evaluation_output;  -src/validation/hindcast.c:161: trailing whitespace. -+  -src/validation/hindcast.c:162: trailing whitespace. -+ int validation_status;  -src/validation/hindcast.c:163: trailing whitespace. -+ int filter_status;  -src/validation/hindcast.c:164: trailing whitespace. -+ int evaluator_status;  -src/validation/hindcast.c:165: trailing whitespace. -+ int output_status;  -src/validation/hindcast.c:166: trailing whitespace. -+  -src/validation/hindcast.c:167: trailing whitespace. -+ if (result == NULL)  -src/validation/hindcast.c:168: trailing whitespace. -+ {  -src/validation/hindcast.c:169: trailing whitespace. -+ return CAMEFF_HINDCAST_INVALID_ARGUMENT;  -src/validation/hindcast.c:170: trailing whitespace. -+ }  -src/validation/hindcast.c:171: trailing whitespace. -+  -src/validation/hindcast.c:172: trailing whitespace. -+ hindcast_result_initialize(result);  -src/validation/hindcast.c:173: trailing whitespace. -+  -src/validation/hindcast.c:174: trailing whitespace. -+ validation_status =  -src/validation/hindcast.c:175: trailing whitespace. -+ hindcast_experiment_validate(experiment);  -src/validation/hindcast.c:176: trailing whitespace. -+  -src/validation/hindcast.c:177: trailing whitespace. -+ if (validation_status != CAMEFF_HINDCAST_OK)  -src/validation/hindcast.c:178: trailing whitespace. -+ {  -src/validation/hindcast.c:179: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:180: trailing whitespace. -+ (CameffHindcastStatus)validation_status;  -src/validation/hindcast.c:181: trailing whitespace. -+  -src/validation/hindcast.c:182: trailing whitespace. -+ return validation_status;  -src/validation/hindcast.c:183: trailing whitespace. -+ }  -src/validation/hindcast.c:184: trailing whitespace. -+  -src/validation/hindcast.c:185: trailing whitespace. -+ result->observation_start =  -src/validation/hindcast.c:186: trailing whitespace. -+ experiment->observation_start;  -src/validation/hindcast.c:187: trailing whitespace. -+  -src/validation/hindcast.c:188: trailing whitespace. -+ result->cutoff_time =  -src/validation/hindcast.c:189: trailing whitespace. -+ experiment->cutoff_time;  -src/validation/hindcast.c:190: trailing whitespace. -+  -src/validation/hindcast.c:191: trailing whitespace. -+ filter_status =  -src/validation/hindcast.c:192: trailing whitespace. -+ catalog_filter_hindcast_window(  -src/validation/hindcast.c:193: trailing whitespace. -+ experiment->source_catalog,  -src/validation/hindcast.c:194: trailing whitespace. -+ experiment->observation_start,  -src/validation/hindcast.c:195: trailing whitespace. -+ experiment->cutoff_time,  -src/validation/hindcast.c:196: trailing whitespace. -+ experiment->target.latitude,  -src/validation/hindcast.c:197: trailing whitespace. -+ experiment->target.longitude,  -src/validation/hindcast.c:198: trailing whitespace. -+ experiment->analysis_radius_km,  -src/validation/hindcast.c:199: trailing whitespace. -+ &evidence_catalog  -src/validation/hindcast.c:200: trailing whitespace. -+ );  -src/validation/hindcast.c:201: trailing whitespace. -+  -src/validation/hindcast.c:202: trailing whitespace. -+ if (filter_status !=  -src/validation/hindcast.c:203: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_OK)  -src/validation/hindcast.c:204: trailing whitespace. -+ {  -src/validation/hindcast.c:205: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:206: trailing whitespace. -+ CAMEFF_HINDCAST_FILTER_FAILED;  -src/validation/hindcast.c:207: trailing whitespace. -+  -src/validation/hindcast.c:208: trailing whitespace. -+ return CAMEFF_HINDCAST_FILTER_FAILED;  -src/validation/hindcast.c:209: trailing whitespace. -+ }  -src/validation/hindcast.c:210: trailing whitespace. -+  -src/validation/hindcast.c:211: trailing whitespace. -+ result->evidence_event_count =  -src/validation/hindcast.c:212: trailing whitespace. -+ evidence_catalog.count;  -src/validation/hindcast.c:213: trailing whitespace. -+  -src/validation/hindcast.c:214: trailing whitespace. -+ if (evidence_catalog.count == 0)  -src/validation/hindcast.c:215: trailing whitespace. -+ {  -src/validation/hindcast.c:216: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:217: trailing whitespace. -+ CAMEFF_HINDCAST_NO_EVIDENCE;  -src/validation/hindcast.c:218: trailing whitespace. -+  -src/validation/hindcast.c:219: trailing whitespace. -+ return CAMEFF_HINDCAST_NO_EVIDENCE;  -src/validation/hindcast.c:220: trailing whitespace. -+ }  -src/validation/hindcast.c:221: trailing whitespace. -+  -src/validation/hindcast.c:222: trailing whitespace. -+ /*  -src/validation/hindcast.c:223: trailing whitespace. -+ * A missing evaluator means that the historical evidence  -src/validation/hindcast.c:224: trailing whitespace. -+ * window was constructed successfully, but no expert  -src/validation/hindcast.c:225: trailing whitespace. -+ * pipeline has been connected.  -src/validation/hindcast.c:226: trailing whitespace. -+ */  -src/validation/hindcast.c:227: trailing whitespace. -+ if (experiment->evaluator == NULL)  -src/validation/hindcast.c:228: trailing whitespace. -+ {  -src/validation/hindcast.c:229: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:230: trailing whitespace. -+ CAMEFF_HINDCAST_NOT_EVALUATED;  -src/validation/hindcast.c:231: trailing whitespace. -+  -src/validation/hindcast.c:232: trailing whitespace. -+ return CAMEFF_HINDCAST_NOT_EVALUATED;  -src/validation/hindcast.c:233: trailing whitespace. -+ }  -src/validation/hindcast.c:234: trailing whitespace. -+  -src/validation/hindcast.c:235: trailing whitespace. -+ cameff_evaluation_output_initialize(  -src/validation/hindcast.c:236: trailing whitespace. -+ &evaluation_output  -src/validation/hindcast.c:237: trailing whitespace. -+ );  -src/validation/hindcast.c:238: trailing whitespace. -+  -src/validation/hindcast.c:239: trailing whitespace. -+ /*  -src/validation/hindcast.c:240: trailing whitespace. -+ * The evaluator may use the target only as predefined  -src/validation/hindcast.c:241: trailing whitespace. -+ * geographic context.  -src/validation/hindcast.c:242: trailing whitespace. -+ *  -src/validation/hindcast.c:243: trailing whitespace. -+ * It must not use the target magnitude, depth, or other  -src/validation/hindcast.c:244: trailing whitespace. -+ * post-event knowledge as precursor evidence.  -src/validation/hindcast.c:245: trailing whitespace. -+ */  -src/validation/hindcast.c:246: trailing whitespace. -+ evaluator_status =  -src/validation/hindcast.c:247: trailing whitespace. -+ experiment->evaluator(  -src/validation/hindcast.c:248: trailing whitespace. -+ &evidence_catalog,  -src/validation/hindcast.c:249: trailing whitespace. -+ &experiment->target,  -src/validation/hindcast.c:250: trailing whitespace. -+ &evaluation_output,  -src/validation/hindcast.c:251: trailing whitespace. -+ experiment->evaluator_context  -src/validation/hindcast.c:252: trailing whitespace. -+ );  -src/validation/hindcast.c:253: trailing whitespace. -+  -src/validation/hindcast.c:254: trailing whitespace. -+ if (evaluator_status !=  -src/validation/hindcast.c:255: trailing whitespace. -+ CAMEFF_EVALUATOR_OK)  -src/validation/hindcast.c:256: trailing whitespace. -+ {  -src/validation/hindcast.c:257: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:258: trailing whitespace. -+ CAMEFF_HINDCAST_EVALUATION_FAILED;  -src/validation/hindcast.c:259: trailing whitespace. -+  -src/validation/hindcast.c:260: trailing whitespace. -+ return CAMEFF_HINDCAST_EVALUATION_FAILED;  -src/validation/hindcast.c:261: trailing whitespace. -+ }  -src/validation/hindcast.c:262: trailing whitespace. -+  -src/validation/hindcast.c:263: trailing whitespace. -+ output_status =  -src/validation/hindcast.c:264: trailing whitespace. -+ cameff_evaluation_output_validate(  -src/validation/hindcast.c:265: trailing whitespace. -+ &evaluation_output  -src/validation/hindcast.c:266: trailing whitespace. -+ );  -src/validation/hindcast.c:267: trailing whitespace. -+  -src/validation/hindcast.c:268: trailing whitespace. -+ if (output_status !=  -src/validation/hindcast.c:269: trailing whitespace. -+ CAMEFF_EVALUATOR_OK)  -src/validation/hindcast.c:270: trailing whitespace. -+ {  -src/validation/hindcast.c:271: trailing whitespace. -+ result->status =  -src/validation/hindcast.c:272: trailing whitespace. -+ CAMEFF_HINDCAST_EVALUATION_FAILED;  -src/validation/hindcast.c:273: trailing whitespace. -+  -src/validation/hindcast.c:274: trailing whitespace. -+ return CAMEFF_HINDCAST_EVALUATION_FAILED;  -src/validation/hindcast.c:275: trailing whitespace. -+ }  -src/validation/hindcast.c:276: trailing whitespace. -+  -src/validation/hindcast.c:277: trailing whitespace. -+ result->hazard_score =  -src/validation/hindcast.c:278: trailing whitespace. -+ evaluation_output.hazard_score;  -src/validation/hindcast.c:279: trailing whitespace. -+  -src/validation/hindcast.c:280: trailing whitespace. -+ result->confidence =  -src/validation/hindcast.c:281: trailing whitespace. -+ evaluation_output.confidence;  -src/validation/hindcast.c:282: trailing whitespace. -+  -src/validation/hindcast.c:283: trailing whitespace. -+ result->signal_count =  -src/validation/hindcast.c:284: trailing whitespace. -+ evaluation_output.signal_count;  -src/validation/hindcast.c:285: trailing whitespace. -+  -src/validation/hindcast.c:286: trailing whitespace. -+ memcpy(  -src/validation/hindcast.c:287: trailing whitespace. -+ result->signals,  -src/validation/hindcast.c:288: trailing whitespace. -+ evaluation_output.signals,  -src/validation/hindcast.c:289: trailing whitespace. -+ sizeof(result->signals)  -src/validation/hindcast.c:290: trailing whitespace. -+ );  -src/validation/hindcast.c:291: trailing whitespace. -+  -src/validation/hindcast.c:292: trailing whitespace. -+ memcpy(  -src/validation/hindcast.c:293: trailing whitespace. -+ result->dominant_pattern,  -src/validation/hindcast.c:294: trailing whitespace. -+ evaluation_output.dominant_pattern,  -src/validation/hindcast.c:295: trailing whitespace. -+ sizeof(result->dominant_pattern)  -src/validation/hindcast.c:296: trailing whitespace. -+ );  -src/validation/hindcast.c:297: trailing whitespace. -+  -src/validation/hindcast.c:298: trailing whitespace. -+ result->dominant_pattern[  -src/validation/hindcast.c:299: trailing whitespace. -+ sizeof(result->dominant_pattern) - 1  -src/validation/hindcast.c:300: trailing whitespace. -+ ] = '\0';  -src/validation/hindcast.c:301: trailing whitespace. -+  -src/validation/hindcast.c:302: trailing whitespace. -+ memcpy(  -src/validation/hindcast.c:303: trailing whitespace. -+ result->dominant_expert,  -src/validation/hindcast.c:304: trailing whitespace. -+ evaluation_output.dominant_expert,  -src/validation/hindcast.c:305: trailing whitespace. -+ sizeof(result->dominant_expert)  -src/validation/hindcast.c:306: trailing whitespace. -+ );  -src/validation/hindcast.c:307: trailing whitespace. -+  -src/validation/hindcast.c:308: trailing whitespace. -+ result->dominant_expert[  -src/validation/hindcast.c:309: trailing whitespace. -+ sizeof(result->dominant_expert) - 1  -src/validation/hindcast.c:310: trailing whitespace. -+ ] = '\0';  -src/validation/hindcast.c:311: trailing whitespace. -+  -src/validation/hindcast.c:312: trailing whitespace. -+ result->status = CAMEFF_HINDCAST_OK;  -src/validation/hindcast.c:313: trailing whitespace. -+  -src/validation/hindcast.c:314: trailing whitespace. -+ return CAMEFF_HINDCAST_OK;  -src/validation/hindcast.h:1: trailing whitespace. -+#ifndef HINDCAST_H  -src/validation/hindcast.h:2: trailing whitespace. -+#define HINDCAST_H  -src/validation/hindcast.h:3: trailing whitespace. -+  -src/validation/hindcast.h:4: trailing whitespace. -+#include "../data/earthquake_catalog.h"  -src/validation/hindcast.h:5: trailing whitespace. -+#include "../data/earthquake_event.h"  -src/validation/hindcast.h:6: trailing whitespace. -+#include "hindcast_evaluator.h"  -src/validation/hindcast.h:7: trailing whitespace. -+#include "cameff/types.h"  -src/validation/hindcast.h:8: trailing whitespace. -+  -src/validation/hindcast.h:9: trailing whitespace. -+#include   -src/validation/hindcast.h:10: trailing whitespace. -+#include   -src/validation/hindcast.h:11: trailing whitespace. -+  -src/validation/hindcast.h:12: trailing whitespace. -+typedef enum  -src/validation/hindcast.h:13: trailing whitespace. -+{  -src/validation/hindcast.h:14: trailing whitespace. -+ CAMEFF_HINDCAST_OK = 0,  -src/validation/hindcast.h:15: trailing whitespace. -+ CAMEFF_HINDCAST_INVALID_ARGUMENT = -1,  -src/validation/hindcast.h:16: trailing whitespace. -+ CAMEFF_HINDCAST_INVALID_TARGET = -2,  -src/validation/hindcast.h:17: trailing whitespace. -+ CAMEFF_HINDCAST_INVALID_TIME_WINDOW = -3,  -src/validation/hindcast.h:18: trailing whitespace. -+ CAMEFF_HINDCAST_INVALID_RADIUS = -4,  -src/validation/hindcast.h:19: trailing whitespace. -+ CAMEFF_HINDCAST_FILTER_FAILED = -5,  -src/validation/hindcast.h:20: trailing whitespace. -+ CAMEFF_HINDCAST_NO_EVIDENCE = -6,  -src/validation/hindcast.h:21: trailing whitespace. -+ CAMEFF_HINDCAST_EVALUATION_FAILED = -7,  -src/validation/hindcast.h:22: trailing whitespace. -+ CAMEFF_HINDCAST_NOT_EVALUATED = 1  -src/validation/hindcast.h:23: trailing whitespace. -+} CameffHindcastStatus;  -src/validation/hindcast.h:24: trailing whitespace. -+  -src/validation/hindcast.h:25: trailing whitespace. -+typedef struct  -src/validation/hindcast.h:26: trailing whitespace. -+{  -src/validation/hindcast.h:27: trailing whitespace. -+ EarthquakeEvent target;  -src/validation/hindcast.h:28: trailing whitespace. -+  -src/validation/hindcast.h:29: trailing whitespace. -+ time_t observation_start;  -src/validation/hindcast.h:30: trailing whitespace. -+ time_t cutoff_time;  -src/validation/hindcast.h:31: trailing whitespace. -+  -src/validation/hindcast.h:32: trailing whitespace. -+ double analysis_radius_km;  -src/validation/hindcast.h:33: trailing whitespace. -+  -src/validation/hindcast.h:34: trailing whitespace. -+ const EarthquakeCatalog *source_catalog;  -src/validation/hindcast.h:35: trailing whitespace. -+  -src/validation/hindcast.h:36: trailing whitespace. -+ CameffHindcastEvaluator evaluator;  -src/validation/hindcast.h:37: trailing whitespace. -+ void *evaluator_context;  -src/validation/hindcast.h:38: trailing whitespace. -+} HindcastExperiment;  -src/validation/hindcast.h:39: trailing whitespace. -+  -src/validation/hindcast.h:40: trailing whitespace. -+typedef struct  -src/validation/hindcast.h:41: trailing whitespace. -+{  -src/validation/hindcast.h:42: trailing whitespace. -+ CameffHindcastStatus status;  -src/validation/hindcast.h:43: trailing whitespace. -+  -src/validation/hindcast.h:44: trailing whitespace. -+ size_t evidence_event_count;  -src/validation/hindcast.h:45: trailing whitespace. -+  -src/validation/hindcast.h:46: trailing whitespace. -+ time_t observation_start;  -src/validation/hindcast.h:47: trailing whitespace. -+ time_t cutoff_time;  -src/validation/hindcast.h:48: trailing whitespace. -+  -src/validation/hindcast.h:49: trailing whitespace. -+ double hazard_score;  -src/validation/hindcast.h:50: trailing whitespace. -+ double confidence;  -src/validation/hindcast.h:51: trailing whitespace. -+  -src/validation/hindcast.h:52: trailing whitespace. -+ cameff_signal_t signals[CAMEFF_SIGNAL_COUNT];  -src/validation/hindcast.h:53: trailing whitespace. -+ size_t signal_count;  -src/validation/hindcast.h:54: trailing whitespace. -+  -src/validation/hindcast.h:55: trailing whitespace. -+ char dominant_pattern[64];  -src/validation/hindcast.h:56: trailing whitespace. -+ char dominant_expert[64];  -src/validation/hindcast.h:57: trailing whitespace. -+} HindcastResult;  -src/validation/hindcast.h:58: trailing whitespace. -+  -src/validation/hindcast.h:59: trailing whitespace. -+void hindcast_experiment_initialize(  -src/validation/hindcast.h:60: trailing whitespace. -+ HindcastExperiment *experiment  -src/validation/hindcast.h:61: trailing whitespace. -+);  -src/validation/hindcast.h:62: trailing whitespace. -+  -src/validation/hindcast.h:63: trailing whitespace. -+void hindcast_result_initialize(  -src/validation/hindcast.h:64: trailing whitespace. -+ HindcastResult *result  -src/validation/hindcast.h:65: trailing whitespace. -+);  -src/validation/hindcast.h:66: trailing whitespace. -+  -src/validation/hindcast.h:67: trailing whitespace. -+int hindcast_experiment_validate(  -src/validation/hindcast.h:68: trailing whitespace. -+ const HindcastExperiment *experiment  -src/validation/hindcast.h:69: trailing whitespace. -+);  -src/validation/hindcast.h:70: trailing whitespace. -+  -src/validation/hindcast.h:71: trailing whitespace. -+int run_hindcast(  -src/validation/hindcast.h:72: trailing whitespace. -+ const HindcastExperiment *experiment,  -src/validation/hindcast.h:73: trailing whitespace. -+ HindcastResult *result  -src/validation/hindcast.h:74: trailing whitespace. -+);  -src/validation/hindcast.h:75: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:1: trailing whitespace. -+#include "hindcast_evaluator.h"  -src/validation/hindcast_evaluator.c:2: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:3: trailing whitespace. -+#include   -src/validation/hindcast_evaluator.c:4: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:5: trailing whitespace. -+void cameff_evaluation_output_initialize(  -src/validation/hindcast_evaluator.c:6: trailing whitespace. -+ CameffEvaluationOutput *output  -src/validation/hindcast_evaluator.c:7: trailing whitespace. -+)  -src/validation/hindcast_evaluator.c:8: trailing whitespace. -+{  -src/validation/hindcast_evaluator.c:9: trailing whitespace. -+ size_t index;  -src/validation/hindcast_evaluator.c:10: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:11: trailing whitespace. -+ if (output == NULL)  -src/validation/hindcast_evaluator.c:12: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:13: trailing whitespace. -+ return;  -src/validation/hindcast_evaluator.c:14: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:15: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:16: trailing whitespace. -+ output->hazard_score = 0.0;  -src/validation/hindcast_evaluator.c:17: trailing whitespace. -+ output->confidence = 0.0;  -src/validation/hindcast_evaluator.c:18: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:19: trailing whitespace. -+ output->signal_count = 0U;  -src/validation/hindcast_evaluator.c:20: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:21: trailing whitespace. -+ for (index = 0U;  -src/validation/hindcast_evaluator.c:22: trailing whitespace. -+ index < CAMEFF_SIGNAL_COUNT;  -src/validation/hindcast_evaluator.c:23: trailing whitespace. -+ index++)  -src/validation/hindcast_evaluator.c:24: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:25: trailing whitespace. -+ output->signals[index].value = 0.0;  -src/validation/hindcast_evaluator.c:26: trailing whitespace. -+ output->signals[index].confidence = 0.0;  -src/validation/hindcast_evaluator.c:27: trailing whitespace. -+ output->signals[index].supporting_events = 0U;  -src/validation/hindcast_evaluator.c:28: trailing whitespace. -+ output->signals[index].available = 0;  -src/validation/hindcast_evaluator.c:29: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:30: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:31: trailing whitespace. -+ output->dominant_pattern[0] = '\0';  -src/validation/hindcast_evaluator.c:32: trailing whitespace. -+ output->dominant_expert[0] = '\0';  -src/validation/hindcast_evaluator.c:33: trailing whitespace. -+}  -src/validation/hindcast_evaluator.c:34: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:35: trailing whitespace. -+int cameff_evaluation_output_validate(  -src/validation/hindcast_evaluator.c:36: trailing whitespace. -+ const CameffEvaluationOutput *output  -src/validation/hindcast_evaluator.c:37: trailing whitespace. -+)  -src/validation/hindcast_evaluator.c:38: trailing whitespace. -+{  -src/validation/hindcast_evaluator.c:39: trailing whitespace. -+ if (output == NULL)  -src/validation/hindcast_evaluator.c:40: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:41: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_ARGUMENT;  -src/validation/hindcast_evaluator.c:42: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:43: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:44: trailing whitespace. -+ if (!isfinite(output->hazard_score) ||  -src/validation/hindcast_evaluator.c:45: trailing whitespace. -+ output->hazard_score < 0.0 ||  -src/validation/hindcast_evaluator.c:46: trailing whitespace. -+ output->hazard_score > 1.0)  -src/validation/hindcast_evaluator.c:47: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:48: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:49: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:50: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:51: trailing whitespace. -+ if (!isfinite(output->confidence) ||  -src/validation/hindcast_evaluator.c:52: trailing whitespace. -+ output->confidence < 0.0 ||  -src/validation/hindcast_evaluator.c:53: trailing whitespace. -+ output->confidence > 1.0)  -src/validation/hindcast_evaluator.c:54: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:55: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:56: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:57: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:58: trailing whitespace. -+ if (output->signal_count != CAMEFF_SIGNAL_COUNT)  -src/validation/hindcast_evaluator.c:59: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:60: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:61: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:62: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:63: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:64: trailing whitespace. -+ size_t index;  -src/validation/hindcast_evaluator.c:65: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:66: trailing whitespace. -+ for (index = 0U;  -src/validation/hindcast_evaluator.c:67: trailing whitespace. -+ index < output->signal_count;  -src/validation/hindcast_evaluator.c:68: trailing whitespace. -+ index++)  -src/validation/hindcast_evaluator.c:69: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:70: trailing whitespace. -+ const cameff_signal_t *signal;  -src/validation/hindcast_evaluator.c:71: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:72: trailing whitespace. -+ signal = &output->signals[index];  -src/validation/hindcast_evaluator.c:73: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:74: trailing whitespace. -+ if (!isfinite(signal->value) ||  -src/validation/hindcast_evaluator.c:75: trailing whitespace. -+ signal->value < 0.0 ||  -src/validation/hindcast_evaluator.c:76: trailing whitespace. -+ signal->value > 1.0)  -src/validation/hindcast_evaluator.c:77: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:78: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:79: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:80: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:81: trailing whitespace. -+ if (!isfinite(signal->confidence) ||  -src/validation/hindcast_evaluator.c:82: trailing whitespace. -+ signal->confidence < 0.0 ||  -src/validation/hindcast_evaluator.c:83: trailing whitespace. -+ signal->confidence > 1.0)  -src/validation/hindcast_evaluator.c:84: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:85: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:86: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:87: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:88: trailing whitespace. -+ if (signal->available != 0 &&  -src/validation/hindcast_evaluator.c:89: trailing whitespace. -+ signal->available != 1)  -src/validation/hindcast_evaluator.c:90: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:91: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:92: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:93: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:94: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:95: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:96: trailing whitespace. -+ if (output->dominant_expert[0] == '\0')  -src/validation/hindcast_evaluator.c:97: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:98: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:99: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:100: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:101: trailing whitespace. -+ if (output->dominant_pattern[0] == '\0')  -src/validation/hindcast_evaluator.c:102: trailing whitespace. -+ {  -src/validation/hindcast_evaluator.c:103: trailing whitespace. -+ return CAMEFF_EVALUATOR_INVALID_OUTPUT;  -src/validation/hindcast_evaluator.c:104: trailing whitespace. -+ }  -src/validation/hindcast_evaluator.c:105: trailing whitespace. -+  -src/validation/hindcast_evaluator.c:106: trailing whitespace. -+ return CAMEFF_EVALUATOR_OK;  -src/validation/hindcast_evaluator.h:1: trailing whitespace. -+#ifndef CAMEFF_HINDCAST_EVALUATOR_H  -src/validation/hindcast_evaluator.h:2: trailing whitespace. -+#define CAMEFF_HINDCAST_EVALUATOR_H  -src/validation/hindcast_evaluator.h:3: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:4: trailing whitespace. -+#include "../data/earthquake_catalog.h"  -src/validation/hindcast_evaluator.h:5: trailing whitespace. -+#include "../data/earthquake_event.h"  -src/validation/hindcast_evaluator.h:6: trailing whitespace. -+#include "cameff/types.h"  -src/validation/hindcast_evaluator.h:7: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:8: trailing whitespace. -+#include   -src/validation/hindcast_evaluator.h:9: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:10: trailing whitespace. -+#define CAMEFF_EXPERT_NAME_CAPACITY 64  -src/validation/hindcast_evaluator.h:11: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:12: trailing whitespace. -+typedef enum  -src/validation/hindcast_evaluator.h:13: trailing whitespace. -+{  -src/validation/hindcast_evaluator.h:14: trailing whitespace. -+ CAMEFF_EVALUATOR_OK = 0,  -src/validation/hindcast_evaluator.h:15: trailing whitespace. -+ CAMEFF_EVALUATOR_INVALID_ARGUMENT = -1,  -src/validation/hindcast_evaluator.h:16: trailing whitespace. -+ CAMEFF_EVALUATOR_EXECUTION_FAILED = -2,  -src/validation/hindcast_evaluator.h:17: trailing whitespace. -+ CAMEFF_EVALUATOR_INVALID_OUTPUT = -3  -src/validation/hindcast_evaluator.h:18: trailing whitespace. -+} CameffEvaluatorStatus;  -src/validation/hindcast_evaluator.h:19: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:20: trailing whitespace. -+typedef struct  -src/validation/hindcast_evaluator.h:21: trailing whitespace. -+{  -src/validation/hindcast_evaluator.h:22: trailing whitespace. -+ double hazard_score;  -src/validation/hindcast_evaluator.h:23: trailing whitespace. -+ double confidence;  -src/validation/hindcast_evaluator.h:24: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:25: trailing whitespace. -+ cameff_signal_t signals[CAMEFF_SIGNAL_COUNT];  -src/validation/hindcast_evaluator.h:26: trailing whitespace. -+ size_t signal_count;  -src/validation/hindcast_evaluator.h:27: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:28: trailing whitespace. -+ char dominant_pattern[  -src/validation/hindcast_evaluator.h:29: trailing whitespace. -+ CAMEFF_EXPERT_NAME_CAPACITY  -src/validation/hindcast_evaluator.h:30: trailing whitespace. -+ ];  -src/validation/hindcast_evaluator.h:31: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:32: trailing whitespace. -+ char dominant_expert[  -src/validation/hindcast_evaluator.h:33: trailing whitespace. -+ CAMEFF_EXPERT_NAME_CAPACITY  -src/validation/hindcast_evaluator.h:34: trailing whitespace. -+ ];  -src/validation/hindcast_evaluator.h:35: trailing whitespace. -+} CameffEvaluationOutput;  -src/validation/hindcast_evaluator.h:36: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:37: trailing whitespace. -+/*  -src/validation/hindcast_evaluator.h:38: trailing whitespace. -+ * The evaluator may use target_context only for the  -src/validation/hindcast_evaluator.h:39: trailing whitespace. -+ * predefined analysis location.  -src/validation/hindcast_evaluator.h:40: trailing whitespace. -+ *  -src/validation/hindcast_evaluator.h:41: trailing whitespace. -+ * It must not use target magnitude, depth, timestamp-derived  -src/validation/hindcast_evaluator.h:42: trailing whitespace. -+ * post-event information, or other future knowledge as  -src/validation/hindcast_evaluator.h:43: trailing whitespace. -+ * precursor evidence.  -src/validation/hindcast_evaluator.h:44: trailing whitespace. -+ */  -src/validation/hindcast_evaluator.h:45: trailing whitespace. -+typedef int (*CameffHindcastEvaluator)(  -src/validation/hindcast_evaluator.h:46: trailing whitespace. -+ const EarthquakeCatalog *evidence_catalog,  -src/validation/hindcast_evaluator.h:47: trailing whitespace. -+ const EarthquakeEvent *target_context,  -src/validation/hindcast_evaluator.h:48: trailing whitespace. -+ CameffEvaluationOutput *output,  -src/validation/hindcast_evaluator.h:49: trailing whitespace. -+ void *user_context  -src/validation/hindcast_evaluator.h:50: trailing whitespace. -+);  -src/validation/hindcast_evaluator.h:51: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:52: trailing whitespace. -+void cameff_evaluation_output_initialize(  -src/validation/hindcast_evaluator.h:53: trailing whitespace. -+ CameffEvaluationOutput *output  -src/validation/hindcast_evaluator.h:54: trailing whitespace. -+);  -src/validation/hindcast_evaluator.h:55: trailing whitespace. -+  -src/validation/hindcast_evaluator.h:56: trailing whitespace. -+int cameff_evaluation_output_validate(  -src/validation/hindcast_evaluator.h:57: trailing whitespace. -+ const CameffEvaluationOutput *output  -src/validation/hindcast_evaluator.h:58: trailing whitespace. -+);  -src/validation/hindcast_evaluator.h:59: trailing whitespace. -+  -src/validation/metrics.c:1: trailing whitespace. -+#include "metrics.h"  -src/validation/metrics.c:2: trailing whitespace. -+  -src/validation/metrics.c:3: trailing whitespace. -+  -src/validation/metrics.c:4: trailing whitespace. -+double precision(ClassificationMetrics *m)  -src/validation/metrics.c:5: trailing whitespace. -+{  -src/validation/metrics.c:6: trailing whitespace. -+ int denominator =  -src/validation/metrics.c:7: trailing whitespace. -+ m->true_positive +  -src/validation/metrics.c:8: trailing whitespace. -+ m->false_positive;  -src/validation/metrics.c:9: trailing whitespace. -+  -src/validation/metrics.c:10: trailing whitespace. -+  -src/validation/metrics.c:11: trailing whitespace. -+ if(denominator == 0)  -src/validation/metrics.c:12: trailing whitespace. -+ return 0.0;  -src/validation/metrics.c:13: trailing whitespace. -+  -src/validation/metrics.c:14: trailing whitespace. -+  -src/validation/metrics.c:15: trailing whitespace. -+ return  -src/validation/metrics.c:16: trailing whitespace. -+ (double)m->true_positive /  -src/validation/metrics.c:17: trailing whitespace. -+ denominator;  -src/validation/metrics.c:18: trailing whitespace. -+}  -src/validation/metrics.c:19: trailing whitespace. -+  -src/validation/metrics.c:20: trailing whitespace. -+  -src/validation/metrics.c:21: trailing whitespace. -+  -src/validation/metrics.c:22: trailing whitespace. -+double recall(ClassificationMetrics *m)  -src/validation/metrics.c:23: trailing whitespace. -+{  -src/validation/metrics.c:24: trailing whitespace. -+  -src/validation/metrics.c:25: trailing whitespace. -+ int denominator =  -src/validation/metrics.c:26: trailing whitespace. -+ m->true_positive +  -src/validation/metrics.c:27: trailing whitespace. -+ m->false_negative;  -src/validation/metrics.c:28: trailing whitespace. -+  -src/validation/metrics.c:29: trailing whitespace. -+  -src/validation/metrics.c:30: trailing whitespace. -+ if(denominator == 0)  -src/validation/metrics.c:31: trailing whitespace. -+ return 0.0;  -src/validation/metrics.c:32: trailing whitespace. -+  -src/validation/metrics.c:33: trailing whitespace. -+  -src/validation/metrics.c:34: trailing whitespace. -+ return  -src/validation/metrics.c:35: trailing whitespace. -+ (double)m->true_positive /  -src/validation/metrics.c:36: trailing whitespace. -+ denominator;  -src/validation/metrics.c:37: trailing whitespace. -+  -src/validation/metrics.c:38: trailing whitespace. -+}  -src/validation/metrics.c:39: trailing whitespace. -+  -src/validation/metrics.c:40: trailing whitespace. -+  -src/validation/metrics.c:41: trailing whitespace. -+  -src/validation/metrics.c:42: trailing whitespace. -+double false_positive_rate(ClassificationMetrics *m)  -src/validation/metrics.c:43: trailing whitespace. -+{  -src/validation/metrics.c:44: trailing whitespace. -+  -src/validation/metrics.c:45: trailing whitespace. -+ int denominator =  -src/validation/metrics.c:46: trailing whitespace. -+ m->false_positive +  -src/validation/metrics.c:47: trailing whitespace. -+ m->true_negative;  -src/validation/metrics.c:48: trailing whitespace. -+  -src/validation/metrics.c:49: trailing whitespace. -+  -src/validation/metrics.c:50: trailing whitespace. -+ if(denominator == 0)  -src/validation/metrics.c:51: trailing whitespace. -+ return 0.0;  -src/validation/metrics.c:52: trailing whitespace. -+  -src/validation/metrics.c:53: trailing whitespace. -+  -src/validation/metrics.c:54: trailing whitespace. -+ return  -src/validation/metrics.c:55: trailing whitespace. -+ (double)m->false_positive /  -src/validation/metrics.c:56: trailing whitespace. -+ denominator;  -src/validation/metrics.c:57: trailing whitespace. -+  -src/validation/metrics.h:1: trailing whitespace. -+#ifndef METRICS_H  -src/validation/metrics.h:2: trailing whitespace. -+#define METRICS_H  -src/validation/metrics.h:3: trailing whitespace. -+  -src/validation/metrics.h:4: trailing whitespace. -+  -src/validation/metrics.h:5: trailing whitespace. -+typedef struct {  -src/validation/metrics.h:6: trailing whitespace. -+  -src/validation/metrics.h:7: trailing whitespace. -+ int true_positive;  -src/validation/metrics.h:8: trailing whitespace. -+  -src/validation/metrics.h:9: trailing whitespace. -+ int false_positive;  -src/validation/metrics.h:10: trailing whitespace. -+  -src/validation/metrics.h:11: trailing whitespace. -+ int true_negative;  -src/validation/metrics.h:12: trailing whitespace. -+  -src/validation/metrics.h:13: trailing whitespace. -+ int false_negative;  -src/validation/metrics.h:14: trailing whitespace. -+  -src/validation/metrics.h:15: trailing whitespace. -+  -src/validation/metrics.h:16: trailing whitespace. -+} ClassificationMetrics;  -src/validation/metrics.h:17: trailing whitespace. -+  -src/validation/metrics.h:18: trailing whitespace. -+  -src/validation/metrics.h:19: trailing whitespace. -+double precision(ClassificationMetrics *m);  -src/validation/metrics.h:20: trailing whitespace. -+  -src/validation/metrics.h:21: trailing whitespace. -+double recall(ClassificationMetrics *m);  -src/validation/metrics.h:22: trailing whitespace. -+  -src/validation/metrics.h:23: trailing whitespace. -+double false_positive_rate(ClassificationMetrics *m);  -src/validation/metrics.h:24: trailing whitespace. -+  -src/validation/metrics.h:25: trailing whitespace. -+  -src/validation/report.c:1: trailing whitespace. -+#include "report.h"  -src/validation/report.c:2: trailing whitespace. -+  -src/validation/report.c:3: trailing whitespace. -+  -src/validation/report.c:4: trailing whitespace. -+void generate_validation_report(void)  -src/validation/report.c:5: trailing whitespace. -+{  -src/validation/report.c:6: trailing whitespace. -+  -src/validation/report.c:7: trailing whitespace. -+ /*  -src/validation/report.c:8: trailing whitespace. -+ * Future implementation:  -src/validation/report.c:9: trailing whitespace. -+ *  -src/validation/report.c:10: trailing whitespace. -+ * - Generate experiment summaries  -src/validation/report.c:11: trailing whitespace. -+ * - Export metrics  -src/validation/report.c:12: trailing whitespace. -+ * - Produce validation reports  -src/validation/report.c:13: trailing whitespace. -+ */  -src/validation/report.c:14: trailing whitespace. -+  -src/validation/report.h:1: trailing whitespace. -+#ifndef REPORT_H  -src/validation/report.h:2: trailing whitespace. -+#define REPORT_H  -src/validation/report.h:3: trailing whitespace. -+  -src/validation/report.h:4: trailing whitespace. -+  -src/validation/report.h:5: trailing whitespace. -+void generate_validation_report(void);  -src/validation/report.h:6: trailing whitespace. -+  -src/validation/report.h:7: trailing whitespace. -+  -src/validation/test_validation.c:1: trailing whitespace. -+#include "../../src/validation/metrics.h"  -src/validation/test_validation.c:2: trailing whitespace. -+  -src/validation/test_validation.c:3: trailing whitespace. -+#include   -src/validation/test_validation.c:4: trailing whitespace. -+  -src/validation/test_validation.c:5: trailing whitespace. -+  -src/validation/test_validation.c:6: trailing whitespace. -+int main()  -src/validation/test_validation.c:7: trailing whitespace. -+{  -src/validation/test_validation.c:8: trailing whitespace. -+  -src/validation/test_validation.c:9: trailing whitespace. -+ ClassificationMetrics m =  -src/validation/test_validation.c:10: trailing whitespace. -+ {  -src/validation/test_validation.c:11: trailing whitespace. -+ .true_positive = 80,  -src/validation/test_validation.c:12: trailing whitespace. -+ .false_positive = 20,  -src/validation/test_validation.c:13: trailing whitespace. -+ .true_negative = 900,  -src/validation/test_validation.c:14: trailing whitespace. -+ .false_negative = 10  -src/validation/test_validation.c:15: trailing whitespace. -+ };  -src/validation/test_validation.c:16: trailing whitespace. -+  -src/validation/test_validation.c:17: trailing whitespace. -+  -src/validation/test_validation.c:18: trailing whitespace. -+ double p = precision(&m);  -src/validation/test_validation.c:19: trailing whitespace. -+ double r = recall(&m);  -src/validation/test_validation.c:20: trailing whitespace. -+  -src/validation/test_validation.c:21: trailing whitespace. -+  -src/validation/test_validation.c:22: trailing whitespace. -+ assert(p > 0.79);  -src/validation/test_validation.c:23: trailing whitespace. -+ assert(r > 0.88);  -src/validation/test_validation.c:24: trailing whitespace. -+  -src/validation/test_validation.c:25: trailing whitespace. -+  -src/validation/test_validation.c:26: trailing whitespace. -+ return 0;  -tests/data/fixtures/invalid_catalog.csv:1: trailing whitespace. -+time,latitude,longitude,depth,mag,region  -tests/data/fixtures/valid_catalog.csv:1: trailing whitespace. -+time,latitude,longitude,depth,mag,region  -tests/data/fixtures/valid_catalog.csv:2: trailing whitespace. -+2011-03-09T02:45:20Z,38.435,142.842,32.0,7.3,Near the east coast of Honshu, Japan  -tests/data/fixtures/valid_catalog.csv:3: trailing whitespace. -+2011-03-10T06:23:34Z,38.271,142.652,15.0,6.4,Near the east coast of Honshu, Japan  -tests/data/test_catalog.c:1: trailing whitespace. -+#include "../../src/data/earthquake_catalog.h"  -tests/data/test_catalog.c:2: trailing whitespace. -+#include "../../src/data/earthquake_catalog_filter.h"  -tests/data/test_catalog.c:3: trailing whitespace. -+  -tests/data/test_catalog.c:4: trailing whitespace. -+#include   -tests/data/test_catalog.c:5: trailing whitespace. -+#include   -tests/data/test_catalog.c:6: trailing whitespace. -+#include   -tests/data/test_catalog.c:7: trailing whitespace. -+  -tests/data/test_catalog.c:8: trailing whitespace. -+#ifndef CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:9: trailing whitespace. -+#error "CAMEFF_TEST_SOURCE_DIR is not defined"  -tests/data/test_catalog.c:10: trailing whitespace. -+#endif  -tests/data/test_catalog.c:11: trailing whitespace. -+  -tests/data/test_catalog.c:12: trailing whitespace. -+static int approximately_equal(  -tests/data/test_catalog.c:13: trailing whitespace. -+ double left,  -tests/data/test_catalog.c:14: trailing whitespace. -+ double right  -tests/data/test_catalog.c:15: trailing whitespace. -+)  -tests/data/test_catalog.c:16: trailing whitespace. -+{  -tests/data/test_catalog.c:17: trailing whitespace. -+ return fabs(left - right) < 0.000001;  -tests/data/test_catalog.c:18: trailing whitespace. -+}  -tests/data/test_catalog.c:19: trailing whitespace. -+  -tests/data/test_catalog.c:20: trailing whitespace. -+static void test_catalog_initialization(void)  -tests/data/test_catalog.c:21: trailing whitespace. -+{  -tests/data/test_catalog.c:22: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/data/test_catalog.c:23: trailing whitespace. -+  -tests/data/test_catalog.c:24: trailing whitespace. -+ catalog.count = 123;  -tests/data/test_catalog.c:25: trailing whitespace. -+  -tests/data/test_catalog.c:26: trailing whitespace. -+ catalog_initialize(&catalog);  -tests/data/test_catalog.c:27: trailing whitespace. -+  -tests/data/test_catalog.c:28: trailing whitespace. -+ assert(catalog.count == 0);  -tests/data/test_catalog.c:29: trailing whitespace. -+}  -tests/data/test_catalog.c:30: trailing whitespace. -+  -tests/data/test_catalog.c:31: trailing whitespace. -+static void test_valid_catalog_loading(void)  -tests/data/test_catalog.c:32: trailing whitespace. -+{  -tests/data/test_catalog.c:33: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/data/test_catalog.c:34: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:35: trailing whitespace. -+  -tests/data/test_catalog.c:36: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:37: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:38: trailing whitespace. -+ "/tests/data/fixtures/valid_catalog.csv",  -tests/data/test_catalog.c:39: trailing whitespace. -+ &catalog  -tests/data/test_catalog.c:40: trailing whitespace. -+ );  -tests/data/test_catalog.c:41: trailing whitespace. -+  -tests/data/test_catalog.c:42: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OK);  -tests/data/test_catalog.c:43: trailing whitespace. -+ assert(catalog.count == 3);  -tests/data/test_catalog.c:44: trailing whitespace. -+  -tests/data/test_catalog.c:45: trailing whitespace. -+ assert(approximately_equal(  -tests/data/test_catalog.c:46: trailing whitespace. -+ catalog.events[0].latitude,  -tests/data/test_catalog.c:47: trailing whitespace. -+ 38.435  -tests/data/test_catalog.c:48: trailing whitespace. -+ ));  -tests/data/test_catalog.c:49: trailing whitespace. -+  -tests/data/test_catalog.c:50: trailing whitespace. -+ assert(approximately_equal(  -tests/data/test_catalog.c:51: trailing whitespace. -+ catalog.events[2].magnitude,  -tests/data/test_catalog.c:52: trailing whitespace. -+ 9.1  -tests/data/test_catalog.c:53: trailing whitespace. -+ ));  -tests/data/test_catalog.c:54: trailing whitespace. -+  -tests/data/test_catalog.c:55: trailing whitespace. -+ assert(strcmp(  -tests/data/test_catalog.c:56: trailing whitespace. -+ catalog.events[2].region,  -tests/data/test_catalog.c:57: trailing whitespace. -+ "Near the east coast of Honshu, Japan"  -tests/data/test_catalog.c:58: trailing whitespace. -+ ) == 0);  -tests/data/test_catalog.c:59: trailing whitespace. -+  -tests/data/test_catalog.c:60: trailing whitespace. -+ /*  -tests/data/test_catalog.c:61: trailing whitespace. -+ * 2011-03-11T05:46:24Z  -tests/data/test_catalog.c:62: trailing whitespace. -+ */  -tests/data/test_catalog.c:63: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:64: trailing whitespace. -+ catalog.events[2].timestamp ==  -tests/data/test_catalog.c:65: trailing whitespace. -+ (time_t)1299822384  -tests/data/test_catalog.c:66: trailing whitespace. -+ );  -tests/data/test_catalog.c:67: trailing whitespace. -+}  -tests/data/test_catalog.c:68: trailing whitespace. -+  -tests/data/test_catalog.c:69: trailing whitespace. -+static void test_invalid_catalog_rejection(void)  -tests/data/test_catalog.c:70: trailing whitespace. -+{  -tests/data/test_catalog.c:71: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/data/test_catalog.c:72: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:73: trailing whitespace. -+  -tests/data/test_catalog.c:74: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:75: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:76: trailing whitespace. -+ "/tests/data/fixtures/invalid_catalog.csv",  -tests/data/test_catalog.c:77: trailing whitespace. -+ &catalog  -tests/data/test_catalog.c:78: trailing whitespace. -+ );  -tests/data/test_catalog.c:79: trailing whitespace. -+  -tests/data/test_catalog.c:80: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_INVALID_ROW);  -tests/data/test_catalog.c:81: trailing whitespace. -+ assert(catalog.count == 0);  -tests/data/test_catalog.c:82: trailing whitespace. -+}  -tests/data/test_catalog.c:83: trailing whitespace. -+  -tests/data/test_catalog.c:84: trailing whitespace. -+static void test_missing_catalog_rejection(void)  -tests/data/test_catalog.c:85: trailing whitespace. -+{  -tests/data/test_catalog.c:86: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/data/test_catalog.c:87: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:88: trailing whitespace. -+  -tests/data/test_catalog.c:89: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:90: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:91: trailing whitespace. -+ "/tests/data/fixtures/does-not-exist.csv",  -tests/data/test_catalog.c:92: trailing whitespace. -+ &catalog  -tests/data/test_catalog.c:93: trailing whitespace. -+ );  -tests/data/test_catalog.c:94: trailing whitespace. -+  -tests/data/test_catalog.c:95: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OPEN_FAILED);  -tests/data/test_catalog.c:96: trailing whitespace. -+ assert(catalog.count == 0);  -tests/data/test_catalog.c:97: trailing whitespace. -+}  -tests/data/test_catalog.c:98: trailing whitespace. -+  -tests/data/test_catalog.c:99: trailing whitespace. -+static void test_time_range_filtering(void)  -tests/data/test_catalog.c:100: trailing whitespace. -+{  -tests/data/test_catalog.c:101: trailing whitespace. -+ EarthquakeCatalog source;  -tests/data/test_catalog.c:102: trailing whitespace. -+ EarthquakeCatalog result;  -tests/data/test_catalog.c:103: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:104: trailing whitespace. -+  -tests/data/test_catalog.c:105: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:106: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:107: trailing whitespace. -+ "/tests/data/fixtures/valid_catalog.csv",  -tests/data/test_catalog.c:108: trailing whitespace. -+ &source  -tests/data/test_catalog.c:109: trailing whitespace. -+ );  -tests/data/test_catalog.c:110: trailing whitespace. -+  -tests/data/test_catalog.c:111: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OK);  -tests/data/test_catalog.c:112: trailing whitespace. -+ assert(source.count == 3);  -tests/data/test_catalog.c:113: trailing whitespace. -+  -tests/data/test_catalog.c:114: trailing whitespace. -+ status = catalog_filter_time_range(  -tests/data/test_catalog.c:115: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:116: trailing whitespace. -+ (time_t)1299680000,  -tests/data/test_catalog.c:117: trailing whitespace. -+ (time_t)1299822384,  -tests/data/test_catalog.c:118: trailing whitespace. -+ &result  -tests/data/test_catalog.c:119: trailing whitespace. -+ );  -tests/data/test_catalog.c:120: trailing whitespace. -+  -tests/data/test_catalog.c:121: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:122: trailing whitespace. -+ status ==  -tests/data/test_catalog.c:123: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_OK  -tests/data/test_catalog.c:124: trailing whitespace. -+ );  -tests/data/test_catalog.c:125: trailing whitespace. -+  -tests/data/test_catalog.c:126: trailing whitespace. -+ /*  -tests/data/test_catalog.c:127: trailing whitespace. -+ * The target event occurs exactly at the end time,  -tests/data/test_catalog.c:128: trailing whitespace. -+ * so it must not be included.  -tests/data/test_catalog.c:129: trailing whitespace. -+ */  -tests/data/test_catalog.c:130: trailing whitespace. -+ assert(result.count == 2);  -tests/data/test_catalog.c:131: trailing whitespace. -+  -tests/data/test_catalog.c:132: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:133: trailing whitespace. -+ result.events[0].timestamp <  -tests/data/test_catalog.c:134: trailing whitespace. -+ (time_t)1299822384  -tests/data/test_catalog.c:135: trailing whitespace. -+ );  -tests/data/test_catalog.c:136: trailing whitespace. -+  -tests/data/test_catalog.c:137: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:138: trailing whitespace. -+ result.events[1].timestamp <  -tests/data/test_catalog.c:139: trailing whitespace. -+ (time_t)1299822384  -tests/data/test_catalog.c:140: trailing whitespace. -+ );  -tests/data/test_catalog.c:141: trailing whitespace. -+}  -tests/data/test_catalog.c:142: trailing whitespace. -+  -tests/data/test_catalog.c:143: trailing whitespace. -+static void test_cutoff_prevents_future_leakage(void)  -tests/data/test_catalog.c:144: trailing whitespace. -+{  -tests/data/test_catalog.c:145: trailing whitespace. -+ EarthquakeCatalog source;  -tests/data/test_catalog.c:146: trailing whitespace. -+ EarthquakeCatalog result;  -tests/data/test_catalog.c:147: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:148: trailing whitespace. -+  -tests/data/test_catalog.c:149: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:150: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:151: trailing whitespace. -+ "/tests/data/fixtures/valid_catalog.csv",  -tests/data/test_catalog.c:152: trailing whitespace. -+ &source  -tests/data/test_catalog.c:153: trailing whitespace. -+ );  -tests/data/test_catalog.c:154: trailing whitespace. -+  -tests/data/test_catalog.c:155: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OK);  -tests/data/test_catalog.c:156: trailing whitespace. -+  -tests/data/test_catalog.c:157: trailing whitespace. -+ status = catalog_filter_time_range(  -tests/data/test_catalog.c:158: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:159: trailing whitespace. -+ (time_t)0,  -tests/data/test_catalog.c:160: trailing whitespace. -+ (time_t)1299822384,  -tests/data/test_catalog.c:161: trailing whitespace. -+ &result  -tests/data/test_catalog.c:162: trailing whitespace. -+ );  -tests/data/test_catalog.c:163: trailing whitespace. -+  -tests/data/test_catalog.c:164: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:165: trailing whitespace. -+ status ==  -tests/data/test_catalog.c:166: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_OK  -tests/data/test_catalog.c:167: trailing whitespace. -+ );  -tests/data/test_catalog.c:168: trailing whitespace. -+  -tests/data/test_catalog.c:169: trailing whitespace. -+ assert(result.count == 2);  -tests/data/test_catalog.c:170: trailing whitespace. -+  -tests/data/test_catalog.c:171: trailing whitespace. -+ /*  -tests/data/test_catalog.c:172: trailing whitespace. -+ * The Mw 9.1 target event must be hidden because its  -tests/data/test_catalog.c:173: trailing whitespace. -+ * timestamp equals the cutoff.  -tests/data/test_catalog.c:174: trailing whitespace. -+ */  -tests/data/test_catalog.c:175: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:176: trailing whitespace. -+ result.events[result.count - 1].magnitude <  -tests/data/test_catalog.c:177: trailing whitespace. -+ 9.1  -tests/data/test_catalog.c:178: trailing whitespace. -+ );  -tests/data/test_catalog.c:179: trailing whitespace. -+}  -tests/data/test_catalog.c:180: trailing whitespace. -+  -tests/data/test_catalog.c:181: trailing whitespace. -+static void test_surface_distance(void)  -tests/data/test_catalog.c:182: trailing whitespace. -+{  -tests/data/test_catalog.c:183: trailing whitespace. -+ double same_location_distance;  -tests/data/test_catalog.c:184: trailing whitespace. -+ double japan_pair_distance;  -tests/data/test_catalog.c:185: trailing whitespace. -+  -tests/data/test_catalog.c:186: trailing whitespace. -+ same_location_distance =  -tests/data/test_catalog.c:187: trailing whitespace. -+ earthquake_surface_distance_km(  -tests/data/test_catalog.c:188: trailing whitespace. -+ 38.297,  -tests/data/test_catalog.c:189: trailing whitespace. -+ 142.372,  -tests/data/test_catalog.c:190: trailing whitespace. -+ 38.297,  -tests/data/test_catalog.c:191: trailing whitespace. -+ 142.372  -tests/data/test_catalog.c:192: trailing whitespace. -+ );  -tests/data/test_catalog.c:193: trailing whitespace. -+  -tests/data/test_catalog.c:194: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:195: trailing whitespace. -+ approximately_equal(  -tests/data/test_catalog.c:196: trailing whitespace. -+ same_location_distance,  -tests/data/test_catalog.c:197: trailing whitespace. -+ 0.0  -tests/data/test_catalog.c:198: trailing whitespace. -+ )  -tests/data/test_catalog.c:199: trailing whitespace. -+ );  -tests/data/test_catalog.c:200: trailing whitespace. -+  -tests/data/test_catalog.c:201: trailing whitespace. -+ japan_pair_distance =  -tests/data/test_catalog.c:202: trailing whitespace. -+ earthquake_surface_distance_km(  -tests/data/test_catalog.c:203: trailing whitespace. -+ 38.297,  -tests/data/test_catalog.c:204: trailing whitespace. -+ 142.372,  -tests/data/test_catalog.c:205: trailing whitespace. -+ 38.435,  -tests/data/test_catalog.c:206: trailing whitespace. -+ 142.842  -tests/data/test_catalog.c:207: trailing whitespace. -+ );  -tests/data/test_catalog.c:208: trailing whitespace. -+  -tests/data/test_catalog.c:209: trailing whitespace. -+ assert(japan_pair_distance > 40.0);  -tests/data/test_catalog.c:210: trailing whitespace. -+ assert(japan_pair_distance < 50.0);  -tests/data/test_catalog.c:211: trailing whitespace. -+}  -tests/data/test_catalog.c:212: trailing whitespace. -+  -tests/data/test_catalog.c:213: trailing whitespace. -+static void test_radius_filtering(void)  -tests/data/test_catalog.c:214: trailing whitespace. -+{  -tests/data/test_catalog.c:215: trailing whitespace. -+ EarthquakeCatalog source;  -tests/data/test_catalog.c:216: trailing whitespace. -+ EarthquakeCatalog result;  -tests/data/test_catalog.c:217: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:218: trailing whitespace. -+  -tests/data/test_catalog.c:219: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:220: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:221: trailing whitespace. -+ "/tests/data/fixtures/valid_catalog.csv",  -tests/data/test_catalog.c:222: trailing whitespace. -+ &source  -tests/data/test_catalog.c:223: trailing whitespace. -+ );  -tests/data/test_catalog.c:224: trailing whitespace. -+  -tests/data/test_catalog.c:225: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OK);  -tests/data/test_catalog.c:226: trailing whitespace. -+  -tests/data/test_catalog.c:227: trailing whitespace. -+ status = catalog_filter_radius(  -tests/data/test_catalog.c:228: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:229: trailing whitespace. -+ 38.297,  -tests/data/test_catalog.c:230: trailing whitespace. -+ 142.372,  -tests/data/test_catalog.c:231: trailing whitespace. -+ 50.0,  -tests/data/test_catalog.c:232: trailing whitespace. -+ &result  -tests/data/test_catalog.c:233: trailing whitespace. -+ );  -tests/data/test_catalog.c:234: trailing whitespace. -+  -tests/data/test_catalog.c:235: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:236: trailing whitespace. -+ status ==  -tests/data/test_catalog.c:237: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_OK  -tests/data/test_catalog.c:238: trailing whitespace. -+ );  -tests/data/test_catalog.c:239: trailing whitespace. -+  -tests/data/test_catalog.c:240: trailing whitespace. -+ assert(result.count >= 1);  -tests/data/test_catalog.c:241: trailing whitespace. -+ assert(result.count <= 3);  -tests/data/test_catalog.c:242: trailing whitespace. -+}  -tests/data/test_catalog.c:243: trailing whitespace. -+  -tests/data/test_catalog.c:244: trailing whitespace. -+static void test_combined_hindcast_filter(void)  -tests/data/test_catalog.c:245: trailing whitespace. -+{  -tests/data/test_catalog.c:246: trailing whitespace. -+ EarthquakeCatalog source;  -tests/data/test_catalog.c:247: trailing whitespace. -+ EarthquakeCatalog result;  -tests/data/test_catalog.c:248: trailing whitespace. -+ int status;  -tests/data/test_catalog.c:249: trailing whitespace. -+ size_t index;  -tests/data/test_catalog.c:250: trailing whitespace. -+  -tests/data/test_catalog.c:251: trailing whitespace. -+ status = catalog_load_csv(  -tests/data/test_catalog.c:252: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/data/test_catalog.c:253: trailing whitespace. -+ "/tests/data/fixtures/valid_catalog.csv",  -tests/data/test_catalog.c:254: trailing whitespace. -+ &source  -tests/data/test_catalog.c:255: trailing whitespace. -+ );  -tests/data/test_catalog.c:256: trailing whitespace. -+  -tests/data/test_catalog.c:257: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OK);  -tests/data/test_catalog.c:258: trailing whitespace. -+  -tests/data/test_catalog.c:259: trailing whitespace. -+ status = catalog_filter_hindcast_window(  -tests/data/test_catalog.c:260: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:261: trailing whitespace. -+ (time_t)1299600000,  -tests/data/test_catalog.c:262: trailing whitespace. -+ (time_t)1299822384,  -tests/data/test_catalog.c:263: trailing whitespace. -+ 38.297,  -tests/data/test_catalog.c:264: trailing whitespace. -+ 142.372,  -tests/data/test_catalog.c:265: trailing whitespace. -+ 100.0,  -tests/data/test_catalog.c:266: trailing whitespace. -+ &result  -tests/data/test_catalog.c:267: trailing whitespace. -+ );  -tests/data/test_catalog.c:268: trailing whitespace. -+  -tests/data/test_catalog.c:269: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:270: trailing whitespace. -+ status ==  -tests/data/test_catalog.c:271: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_OK  -tests/data/test_catalog.c:272: trailing whitespace. -+ );  -tests/data/test_catalog.c:273: trailing whitespace. -+  -tests/data/test_catalog.c:274: trailing whitespace. -+ assert(result.count == 2);  -tests/data/test_catalog.c:275: trailing whitespace. -+  -tests/data/test_catalog.c:276: trailing whitespace. -+ for (index = 0; index < result.count; index++)  -tests/data/test_catalog.c:277: trailing whitespace. -+ {  -tests/data/test_catalog.c:278: trailing whitespace. -+ double distance_km;  -tests/data/test_catalog.c:279: trailing whitespace. -+  -tests/data/test_catalog.c:280: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:281: trailing whitespace. -+ result.events[index].timestamp <  -tests/data/test_catalog.c:282: trailing whitespace. -+ (time_t)1299822384  -tests/data/test_catalog.c:283: trailing whitespace. -+ );  -tests/data/test_catalog.c:284: trailing whitespace. -+  -tests/data/test_catalog.c:285: trailing whitespace. -+ distance_km =  -tests/data/test_catalog.c:286: trailing whitespace. -+ earthquake_surface_distance_km(  -tests/data/test_catalog.c:287: trailing whitespace. -+ 38.297,  -tests/data/test_catalog.c:288: trailing whitespace. -+ 142.372,  -tests/data/test_catalog.c:289: trailing whitespace. -+ result.events[index].latitude,  -tests/data/test_catalog.c:290: trailing whitespace. -+ result.events[index].longitude  -tests/data/test_catalog.c:291: trailing whitespace. -+ );  -tests/data/test_catalog.c:292: trailing whitespace. -+  -tests/data/test_catalog.c:293: trailing whitespace. -+ assert(distance_km <= 100.0);  -tests/data/test_catalog.c:294: trailing whitespace. -+ }  -tests/data/test_catalog.c:295: trailing whitespace. -+}  -tests/data/test_catalog.c:296: trailing whitespace. -+  -tests/data/test_catalog.c:297: trailing whitespace. -+static void test_invalid_filter_arguments(void)  -tests/data/test_catalog.c:298: trailing whitespace. -+{  -tests/data/test_catalog.c:299: trailing whitespace. -+ EarthquakeCatalog source;  -tests/data/test_catalog.c:300: trailing whitespace. -+ EarthquakeCatalog result;  -tests/data/test_catalog.c:301: trailing whitespace. -+  -tests/data/test_catalog.c:302: trailing whitespace. -+ catalog_initialize(&source);  -tests/data/test_catalog.c:303: trailing whitespace. -+  -tests/data/test_catalog.c:304: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:305: trailing whitespace. -+ catalog_filter_time_range(  -tests/data/test_catalog.c:306: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:307: trailing whitespace. -+ (time_t)100,  -tests/data/test_catalog.c:308: trailing whitespace. -+ (time_t)100,  -tests/data/test_catalog.c:309: trailing whitespace. -+ &result  -tests/data/test_catalog.c:310: trailing whitespace. -+ ) ==  -tests/data/test_catalog.c:311: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE  -tests/data/test_catalog.c:312: trailing whitespace. -+ );  -tests/data/test_catalog.c:313: trailing whitespace. -+  -tests/data/test_catalog.c:314: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:315: trailing whitespace. -+ catalog_filter_radius(  -tests/data/test_catalog.c:316: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:317: trailing whitespace. -+ 100.0,  -tests/data/test_catalog.c:318: trailing whitespace. -+ 0.0,  -tests/data/test_catalog.c:319: trailing whitespace. -+ 50.0,  -tests/data/test_catalog.c:320: trailing whitespace. -+ &result  -tests/data/test_catalog.c:321: trailing whitespace. -+ ) ==  -tests/data/test_catalog.c:322: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_COORDINATES  -tests/data/test_catalog.c:323: trailing whitespace. -+ );  -tests/data/test_catalog.c:324: trailing whitespace. -+  -tests/data/test_catalog.c:325: trailing whitespace. -+ assert(  -tests/data/test_catalog.c:326: trailing whitespace. -+ catalog_filter_radius(  -tests/data/test_catalog.c:327: trailing whitespace. -+ &source,  -tests/data/test_catalog.c:328: trailing whitespace. -+ 0.0,  -tests/data/test_catalog.c:329: trailing whitespace. -+ 0.0,  -tests/data/test_catalog.c:330: trailing whitespace. -+ -1.0,  -tests/data/test_catalog.c:331: trailing whitespace. -+ &result  -tests/data/test_catalog.c:332: trailing whitespace. -+ ) ==  -tests/data/test_catalog.c:333: trailing whitespace. -+ CAMEFF_CATALOG_FILTER_INVALID_RADIUS  -tests/data/test_catalog.c:334: trailing whitespace. -+ );  -tests/data/test_catalog.c:335: trailing whitespace. -+}  -tests/data/test_catalog.c:336: trailing whitespace. -+  -tests/data/test_catalog.c:337: trailing whitespace. -+int main(void)  -tests/data/test_catalog.c:338: trailing whitespace. -+{  -tests/data/test_catalog.c:339: trailing whitespace. -+ test_catalog_initialization();  -tests/data/test_catalog.c:340: trailing whitespace. -+ test_valid_catalog_loading();  -tests/data/test_catalog.c:341: trailing whitespace. -+ test_invalid_catalog_rejection();  -tests/data/test_catalog.c:342: trailing whitespace. -+ test_missing_catalog_rejection();  -tests/data/test_catalog.c:343: trailing whitespace. -+  -tests/data/test_catalog.c:344: trailing whitespace. -+ test_time_range_filtering();  -tests/data/test_catalog.c:345: trailing whitespace. -+ test_cutoff_prevents_future_leakage();  -tests/data/test_catalog.c:346: trailing whitespace. -+ test_surface_distance();  -tests/data/test_catalog.c:347: trailing whitespace. -+ test_radius_filtering();  -tests/data/test_catalog.c:348: trailing whitespace. -+ test_combined_hindcast_filter();  -tests/data/test_catalog.c:349: trailing whitespace. -+ test_invalid_filter_arguments();  -tests/data/test_catalog.c:350: trailing whitespace. -+  -tests/data/test_catalog.c:351: trailing whitespace. -+ return 0;  -tests/test_baseline_expert.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_baseline_expert.c:2: trailing whitespace. -+  -tests/test_baseline_expert.c:3: trailing whitespace. -+#include   -tests/test_baseline_expert.c:4: trailing whitespace. -+#include   -tests/test_baseline_expert.c:5: trailing whitespace. -+#include   -tests/test_baseline_expert.c:6: trailing whitespace. -+  -tests/test_baseline_expert.c:7: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_baseline_expert.c:8: trailing whitespace. -+ if (!(condition)) { \  -tests/test_baseline_expert.c:9: trailing whitespace. -+ fprintf(stderr, "check failed: %s at line %d\n", \  -tests/test_baseline_expert.c:10: trailing whitespace. -+ #condition, __LINE__); \  -tests/test_baseline_expert.c:11: trailing whitespace. -+ return 1; \  -tests/test_baseline_expert.c:12: trailing whitespace. -+ } \  -tests/test_baseline_expert.c:13: trailing whitespace. -+} while (0)  -tests/test_baseline_expert.c:14: trailing whitespace. -+  -tests/test_baseline_expert.c:15: trailing whitespace. -+#define CHECK_CLOSE(actual, expected, tolerance) do { \  -tests/test_baseline_expert.c:16: trailing whitespace. -+ if (fabs((actual) - (expected)) > (tolerance)) { \  -tests/test_baseline_expert.c:17: trailing whitespace. -+ fprintf(stderr, \  -tests/test_baseline_expert.c:18: trailing whitespace. -+ "check failed: %s ~= %s at line %d\n", \  -tests/test_baseline_expert.c:19: trailing whitespace. -+ #actual, #expected, __LINE__); \  -tests/test_baseline_expert.c:20: trailing whitespace. -+ return 1; \  -tests/test_baseline_expert.c:21: trailing whitespace. -+ } \  -tests/test_baseline_expert.c:22: trailing whitespace. -+} while (0)  -tests/test_baseline_expert.c:23: trailing whitespace. -+  -tests/test_baseline_expert.c:24: trailing whitespace. -+static void initialize_frame(cameff_signal_frame_t *frame) {  -tests/test_baseline_expert.c:25: trailing whitespace. -+ size_t i;  -tests/test_baseline_expert.c:26: trailing whitespace. -+  -tests/test_baseline_expert.c:27: trailing whitespace. -+ (void)memset(frame, 0, sizeof(*frame));  -tests/test_baseline_expert.c:28: trailing whitespace. -+  -tests/test_baseline_expert.c:29: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -tests/test_baseline_expert.c:30: trailing whitespace. -+ frame->signals[i].value = 0.60;  -tests/test_baseline_expert.c:31: trailing whitespace. -+ frame->signals[i].confidence = 0.80;  -tests/test_baseline_expert.c:32: trailing whitespace. -+ frame->signals[i].supporting_events = 20U;  -tests/test_baseline_expert.c:33: trailing whitespace. -+ frame->signals[i].available = 1;  -tests/test_baseline_expert.c:34: trailing whitespace. -+ }  -tests/test_baseline_expert.c:35: trailing whitespace. -+  -tests/test_baseline_expert.c:36: trailing whitespace. -+ frame->selected_event_count = 20U;  -tests/test_baseline_expert.c:37: trailing whitespace. -+ frame->data_confidence = 0.80;  -tests/test_baseline_expert.c:38: trailing whitespace. -+}  -tests/test_baseline_expert.c:39: trailing whitespace. -+  -tests/test_baseline_expert.c:40: trailing whitespace. -+int main(void) {  -tests/test_baseline_expert.c:41: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_baseline_expert.c:42: trailing whitespace. -+ cameff_config_t config;  -tests/test_baseline_expert.c:43: trailing whitespace. -+ cameff_assessment_t legacy;  -tests/test_baseline_expert.c:44: trailing whitespace. -+ cameff_expert_result_t expert_result;  -tests/test_baseline_expert.c:45: trailing whitespace. -+ const cameff_expert_t *expert;  -tests/test_baseline_expert.c:46: trailing whitespace. -+ cameff_status_t status;  -tests/test_baseline_expert.c:47: trailing whitespace. -+  -tests/test_baseline_expert.c:48: trailing whitespace. -+ initialize_frame(&frame);  -tests/test_baseline_expert.c:49: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_baseline_expert.c:50: trailing whitespace. -+  -tests/test_baseline_expert.c:51: trailing whitespace. -+ legacy = cameff_assess(&frame, &config);  -tests/test_baseline_expert.c:52: trailing whitespace. -+  -tests/test_baseline_expert.c:53: trailing whitespace. -+ expert = cameff_baseline_expert();  -tests/test_baseline_expert.c:54: trailing whitespace. -+  -tests/test_baseline_expert.c:55: trailing whitespace. -+ CHECK(expert != NULL);  -tests/test_baseline_expert.c:56: trailing whitespace. -+ CHECK(expert->applicability != NULL);  -tests/test_baseline_expert.c:57: trailing whitespace. -+ CHECK(expert->evaluate != NULL);  -tests/test_baseline_expert.c:58: trailing whitespace. -+  -tests/test_baseline_expert.c:59: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_baseline_expert.c:60: trailing whitespace. -+ expert->applicability(&frame, NULL, NULL),  -tests/test_baseline_expert.c:61: trailing whitespace. -+ 1.0,  -tests/test_baseline_expert.c:62: trailing whitespace. -+ 1e-12  -tests/test_baseline_expert.c:63: trailing whitespace. -+ );  -tests/test_baseline_expert.c:64: trailing whitespace. -+  -tests/test_baseline_expert.c:65: trailing whitespace. -+ status = expert->evaluate(  -tests/test_baseline_expert.c:66: trailing whitespace. -+ &frame,  -tests/test_baseline_expert.c:67: trailing whitespace. -+ &config,  -tests/test_baseline_expert.c:68: trailing whitespace. -+ NULL,  -tests/test_baseline_expert.c:69: trailing whitespace. -+ NULL,  -tests/test_baseline_expert.c:70: trailing whitespace. -+ &expert_result  -tests/test_baseline_expert.c:71: trailing whitespace. -+ );  -tests/test_baseline_expert.c:72: trailing whitespace. -+  -tests/test_baseline_expert.c:73: trailing whitespace. -+ CHECK(status == CAMEFF_STATUS_OK);  -tests/test_baseline_expert.c:74: trailing whitespace. -+ CHECK(expert_result.status == CAMEFF_EXPERT_OK);  -tests/test_baseline_expert.c:75: trailing whitespace. -+  -tests/test_baseline_expert.c:76: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_baseline_expert.c:77: trailing whitespace. -+ expert_result.hazard_evidence,  -tests/test_baseline_expert.c:78: trailing whitespace. -+ legacy.evidence_score,  -tests/test_baseline_expert.c:79: trailing whitespace. -+ 1e-12  -tests/test_baseline_expert.c:80: trailing whitespace. -+ );  -tests/test_baseline_expert.c:81: trailing whitespace. -+  -tests/test_baseline_expert.c:82: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_baseline_expert.c:83: trailing whitespace. -+ expert_result.confidence,  -tests/test_baseline_expert.c:84: trailing whitespace. -+ legacy.confidence,  -tests/test_baseline_expert.c:85: trailing whitespace. -+ 1e-12  -tests/test_baseline_expert.c:86: trailing whitespace. -+ );  -tests/test_baseline_expert.c:87: trailing whitespace. -+  -tests/test_baseline_expert.c:88: trailing whitespace. -+ CHECK(  -tests/test_baseline_expert.c:89: trailing whitespace. -+ expert_result.decision ==  -tests/test_baseline_expert.c:90: trailing whitespace. -+ legacy.level  -tests/test_baseline_expert.c:91: trailing whitespace. -+ );  -tests/test_baseline_expert.c:92: trailing whitespace. -+  -tests/test_baseline_expert.c:93: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_baseline_expert.c:94: trailing whitespace. -+ expert_result.preparation_evidence,  -tests/test_baseline_expert.c:95: trailing whitespace. -+ 0.0,  -tests/test_baseline_expert.c:96: trailing whitespace. -+ 1e-12  -tests/test_baseline_expert.c:97: trailing whitespace. -+ );  -tests/test_baseline_expert.c:98: trailing whitespace. -+  -tests/test_baseline_expert.c:99: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_baseline_expert.c:100: trailing whitespace. -+ expert_result.cascade_evidence,  -tests/test_baseline_expert.c:101: trailing whitespace. -+ 0.0,  -tests/test_baseline_expert.c:102: trailing whitespace. -+ 1e-12  -tests/test_baseline_expert.c:103: trailing whitespace. -+ );  -tests/test_baseline_expert.c:104: trailing whitespace. -+  -tests/test_baseline_expert.c:105: trailing whitespace. -+ puts("baseline expert tests passed");  -tests/test_baseline_expert.c:106: trailing whitespace. -+ return 0;  -tests/test_evaluation.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_evaluation.c:2: trailing whitespace. -+  -tests/test_evaluation.c:3: trailing whitespace. -+#include   -tests/test_evaluation.c:4: trailing whitespace. -+#include   -tests/test_evaluation.c:5: trailing whitespace. -+#include   -tests/test_evaluation.c:6: trailing whitespace. -+  -tests/test_evaluation.c:7: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_evaluation.c:8: trailing whitespace. -+ if (!(condition)) { \  -tests/test_evaluation.c:9: trailing whitespace. -+ fprintf( \  -tests/test_evaluation.c:10: trailing whitespace. -+ stderr, \  -tests/test_evaluation.c:11: trailing whitespace. -+ "check failed: %s at line %d\n", \  -tests/test_evaluation.c:12: trailing whitespace. -+ #condition, \  -tests/test_evaluation.c:13: trailing whitespace. -+ __LINE__ \  -tests/test_evaluation.c:14: trailing whitespace. -+ ); \  -tests/test_evaluation.c:15: trailing whitespace. -+ return 1; \  -tests/test_evaluation.c:16: trailing whitespace. -+ } \  -tests/test_evaluation.c:17: trailing whitespace. -+} while (0)  -tests/test_evaluation.c:18: trailing whitespace. -+  -tests/test_evaluation.c:19: trailing whitespace. -+static void initialize_frame(  -tests/test_evaluation.c:20: trailing whitespace. -+ cameff_signal_frame_t *frame,  -tests/test_evaluation.c:21: trailing whitespace. -+ double value,  -tests/test_evaluation.c:22: trailing whitespace. -+ double confidence  -tests/test_evaluation.c:23: trailing whitespace. -+) {  -tests/test_evaluation.c:24: trailing whitespace. -+ size_t i;  -tests/test_evaluation.c:25: trailing whitespace. -+  -tests/test_evaluation.c:26: trailing whitespace. -+ (void)memset(frame, 0, sizeof(*frame));  -tests/test_evaluation.c:27: trailing whitespace. -+  -tests/test_evaluation.c:28: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -tests/test_evaluation.c:29: trailing whitespace. -+ frame->signals[i].value = value;  -tests/test_evaluation.c:30: trailing whitespace. -+ frame->signals[i].confidence = confidence;  -tests/test_evaluation.c:31: trailing whitespace. -+ frame->signals[i].supporting_events = 40U;  -tests/test_evaluation.c:32: trailing whitespace. -+ frame->signals[i].available = 1;  -tests/test_evaluation.c:33: trailing whitespace. -+ }  -tests/test_evaluation.c:34: trailing whitespace. -+  -tests/test_evaluation.c:35: trailing whitespace. -+ frame->selected_event_count = 40U;  -tests/test_evaluation.c:36: trailing whitespace. -+ frame->data_confidence = confidence;  -tests/test_evaluation.c:37: trailing whitespace. -+}  -tests/test_evaluation.c:38: trailing whitespace. -+  -tests/test_evaluation.c:39: trailing whitespace. -+static void initialize_subduction_region(  -tests/test_evaluation.c:40: trailing whitespace. -+ cameff_region_profile_t *region  -tests/test_evaluation.c:41: trailing whitespace. -+) {  -tests/test_evaluation.c:42: trailing whitespace. -+ (void)memset(region, 0, sizeof(*region));  -tests/test_evaluation.c:43: trailing whitespace. -+  -tests/test_evaluation.c:44: trailing whitespace. -+ (void)snprintf(  -tests/test_evaluation.c:45: trailing whitespace. -+ region->region_id,  -tests/test_evaluation.c:46: trailing whitespace. -+ sizeof(region->region_id),  -tests/test_evaluation.c:47: trailing whitespace. -+ "%s",  -tests/test_evaluation.c:48: trailing whitespace. -+ "test-subduction-region"  -tests/test_evaluation.c:49: trailing whitespace. -+ );  -tests/test_evaluation.c:50: trailing whitespace. -+  -tests/test_evaluation.c:51: trailing whitespace. -+ region->tectonic_setting =  -tests/test_evaluation.c:52: trailing whitespace. -+ CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_evaluation.c:53: trailing whitespace. -+  -tests/test_evaluation.c:54: trailing whitespace. -+ region->subduction_affinity = 1.0;  -tests/test_evaluation.c:55: trailing whitespace. -+ region->crustal_fault_affinity = 0.10;  -tests/test_evaluation.c:56: trailing whitespace. -+ region->transform_affinity = 0.05;  -tests/test_evaluation.c:57: trailing whitespace. -+ region->volcanic_affinity = 0.05;  -tests/test_evaluation.c:58: trailing whitespace. -+  -tests/test_evaluation.c:59: trailing whitespace. -+ region->fault_map_confidence = 0.90;  -tests/test_evaluation.c:60: trailing whitespace. -+ region->catalog_completeness = 0.90;  -tests/test_evaluation.c:61: trailing whitespace. -+ region->station_coverage = 0.90;  -tests/test_evaluation.c:62: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -tests/test_evaluation.c:63: trailing whitespace. -+}  -tests/test_evaluation.c:64: trailing whitespace. -+  -tests/test_evaluation.c:65: trailing whitespace. -+static int test_end_to_end_subduction_evaluation(void) {  -tests/test_evaluation.c:66: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_evaluation.c:67: trailing whitespace. -+ cameff_config_t config;  -tests/test_evaluation.c:68: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_evaluation.c:69: trailing whitespace. -+ cameff_evaluation_options_t options;  -tests/test_evaluation.c:70: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_evaluation.c:71: trailing whitespace. -+  -tests/test_evaluation.c:72: trailing whitespace. -+ initialize_frame(&frame, 0.80, 0.90);  -tests/test_evaluation.c:73: trailing whitespace. -+ initialize_subduction_region(®ion);  -tests/test_evaluation.c:74: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_evaluation.c:75: trailing whitespace. -+ cameff_evaluation_options_default(&options);  -tests/test_evaluation.c:76: trailing whitespace. -+  -tests/test_evaluation.c:77: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:78: trailing whitespace. -+ cameff_evaluate_experts(  -tests/test_evaluation.c:79: trailing whitespace. -+ &frame,  -tests/test_evaluation.c:80: trailing whitespace. -+ &config,  -tests/test_evaluation.c:81: trailing whitespace. -+ ®ion,  -tests/test_evaluation.c:82: trailing whitespace. -+ &options,  -tests/test_evaluation.c:83: trailing whitespace. -+ &result  -tests/test_evaluation.c:84: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_evaluation.c:85: trailing whitespace. -+ );  -tests/test_evaluation.c:86: trailing whitespace. -+  -tests/test_evaluation.c:87: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:88: trailing whitespace. -+ result.patterns.count ==  -tests/test_evaluation.c:89: trailing whitespace. -+ CAMEFF_PATTERN_COUNT  -tests/test_evaluation.c:90: trailing whitespace. -+ );  -tests/test_evaluation.c:91: trailing whitespace. -+  -tests/test_evaluation.c:92: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:93: trailing whitespace. -+ result.patterns.dominant_pattern ==  -tests/test_evaluation.c:94: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_evaluation.c:95: trailing whitespace. -+ );  -tests/test_evaluation.c:96: trailing whitespace. -+  -tests/test_evaluation.c:97: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:98: trailing whitespace. -+ result.fusion.expert_result_count == 4U  -tests/test_evaluation.c:99: trailing whitespace. -+ );  -tests/test_evaluation.c:100: trailing whitespace. -+  -tests/test_evaluation.c:101: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:102: trailing whitespace. -+ result.fusion.hazard_evidence >= 0.0  -tests/test_evaluation.c:103: trailing whitespace. -+ );  -tests/test_evaluation.c:104: trailing whitespace. -+  -tests/test_evaluation.c:105: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:106: trailing whitespace. -+ result.fusion.hazard_evidence <= 1.0  -tests/test_evaluation.c:107: trailing whitespace. -+ );  -tests/test_evaluation.c:108: trailing whitespace. -+  -tests/test_evaluation.c:109: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:110: trailing whitespace. -+ result.fusion.preparation_evidence >= 0.0  -tests/test_evaluation.c:111: trailing whitespace. -+ );  -tests/test_evaluation.c:112: trailing whitespace. -+  -tests/test_evaluation.c:113: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:114: trailing whitespace. -+ result.fusion.preparation_evidence <= 1.0  -tests/test_evaluation.c:115: trailing whitespace. -+ );  -tests/test_evaluation.c:116: trailing whitespace. -+  -tests/test_evaluation.c:117: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:118: trailing whitespace. -+ result.fusion.cascade_evidence >= 0.0  -tests/test_evaluation.c:119: trailing whitespace. -+ );  -tests/test_evaluation.c:120: trailing whitespace. -+  -tests/test_evaluation.c:121: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:122: trailing whitespace. -+ result.fusion.cascade_evidence <= 1.0  -tests/test_evaluation.c:123: trailing whitespace. -+ );  -tests/test_evaluation.c:124: trailing whitespace. -+  -tests/test_evaluation.c:125: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:126: trailing whitespace. -+ result.fusion.fused_confidence > 0.0  -tests/test_evaluation.c:127: trailing whitespace. -+ );  -tests/test_evaluation.c:128: trailing whitespace. -+  -tests/test_evaluation.c:129: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:130: trailing whitespace. -+ strcmp(  -tests/test_evaluation.c:131: trailing whitespace. -+ result.fusion.expert_results[0].expert_name,  -tests/test_evaluation.c:132: trailing whitespace. -+ "baseline"  -tests/test_evaluation.c:133: trailing whitespace. -+ ) == 0  -tests/test_evaluation.c:134: trailing whitespace. -+ );  -tests/test_evaluation.c:135: trailing whitespace. -+  -tests/test_evaluation.c:136: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:137: trailing whitespace. -+ strcmp(  -tests/test_evaluation.c:138: trailing whitespace. -+ result.fusion.expert_results[1].expert_name,  -tests/test_evaluation.c:139: trailing whitespace. -+ "subduction"  -tests/test_evaluation.c:140: trailing whitespace. -+ ) == 0  -tests/test_evaluation.c:141: trailing whitespace. -+ );  -tests/test_evaluation.c:142: trailing whitespace. -+  -tests/test_evaluation.c:143: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:144: trailing whitespace. -+ strcmp(  -tests/test_evaluation.c:145: trailing whitespace. -+ result.fusion.expert_results[2].expert_name,  -tests/test_evaluation.c:146: trailing whitespace. -+ "crustal-fault"  -tests/test_evaluation.c:147: trailing whitespace. -+ ) == 0  -tests/test_evaluation.c:148: trailing whitespace. -+ );  -tests/test_evaluation.c:149: trailing whitespace. -+  -tests/test_evaluation.c:150: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:151: trailing whitespace. -+ strcmp(  -tests/test_evaluation.c:152: trailing whitespace. -+ result.fusion.expert_results[3].expert_name,  -tests/test_evaluation.c:153: trailing whitespace. -+ "seismic-cascade"  -tests/test_evaluation.c:154: trailing whitespace. -+ ) == 0  -tests/test_evaluation.c:155: trailing whitespace. -+ );  -tests/test_evaluation.c:156: trailing whitespace. -+  -tests/test_evaluation.c:157: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:158: trailing whitespace. -+ result.fusion.expert_results[0].status ==  -tests/test_evaluation.c:159: trailing whitespace. -+ CAMEFF_EXPERT_OK  -tests/test_evaluation.c:160: trailing whitespace. -+ );  -tests/test_evaluation.c:161: trailing whitespace. -+  -tests/test_evaluation.c:162: trailing whitespace. -+ return 0;  -tests/test_evaluation.c:163: trailing whitespace. -+}  -tests/test_evaluation.c:164: trailing whitespace. -+  -tests/test_evaluation.c:165: trailing whitespace. -+static int test_quiet_background_evaluation(void) {  -tests/test_evaluation.c:166: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_evaluation.c:167: trailing whitespace. -+ cameff_config_t config;  -tests/test_evaluation.c:168: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_evaluation.c:169: trailing whitespace. -+ cameff_evaluation_options_t options;  -tests/test_evaluation.c:170: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_evaluation.c:171: trailing whitespace. -+  -tests/test_evaluation.c:172: trailing whitespace. -+ initialize_frame(&frame, 0.0, 1.0);  -tests/test_evaluation.c:173: trailing whitespace. -+ initialize_subduction_region(®ion);  -tests/test_evaluation.c:174: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_evaluation.c:175: trailing whitespace. -+ cameff_evaluation_options_default(&options);  -tests/test_evaluation.c:176: trailing whitespace. -+  -tests/test_evaluation.c:177: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:178: trailing whitespace. -+ cameff_evaluate_experts(  -tests/test_evaluation.c:179: trailing whitespace. -+ &frame,  -tests/test_evaluation.c:180: trailing whitespace. -+ &config,  -tests/test_evaluation.c:181: trailing whitespace. -+ ®ion,  -tests/test_evaluation.c:182: trailing whitespace. -+ &options,  -tests/test_evaluation.c:183: trailing whitespace. -+ &result  -tests/test_evaluation.c:184: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_evaluation.c:185: trailing whitespace. -+ );  -tests/test_evaluation.c:186: trailing whitespace. -+  -tests/test_evaluation.c:187: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:188: trailing whitespace. -+ result.patterns.dominant_pattern ==  -tests/test_evaluation.c:189: trailing whitespace. -+ CAMEFF_PATTERN_BACKGROUND  -tests/test_evaluation.c:190: trailing whitespace. -+ );  -tests/test_evaluation.c:191: trailing whitespace. -+  -tests/test_evaluation.c:192: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:193: trailing whitespace. -+ result.fusion.decision ==  -tests/test_evaluation.c:194: trailing whitespace. -+ CAMEFF_DECISION_BACKGROUND  -tests/test_evaluation.c:195: trailing whitespace. -+ );  -tests/test_evaluation.c:196: trailing whitespace. -+  -tests/test_evaluation.c:197: trailing whitespace. -+ return 0;  -tests/test_evaluation.c:198: trailing whitespace. -+}  -tests/test_evaluation.c:199: trailing whitespace. -+  -tests/test_evaluation.c:200: trailing whitespace. -+static int test_explanation_output(void) {  -tests/test_evaluation.c:201: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_evaluation.c:202: trailing whitespace. -+ cameff_config_t config;  -tests/test_evaluation.c:203: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_evaluation.c:204: trailing whitespace. -+ cameff_evaluation_options_t options;  -tests/test_evaluation.c:205: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_evaluation.c:206: trailing whitespace. -+ char explanation[8192];  -tests/test_evaluation.c:207: trailing whitespace. -+  -tests/test_evaluation.c:208: trailing whitespace. -+ initialize_frame(&frame, 0.75, 0.90);  -tests/test_evaluation.c:209: trailing whitespace. -+ initialize_subduction_region(®ion);  -tests/test_evaluation.c:210: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_evaluation.c:211: trailing whitespace. -+ cameff_evaluation_options_default(&options);  -tests/test_evaluation.c:212: trailing whitespace. -+  -tests/test_evaluation.c:213: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:214: trailing whitespace. -+ cameff_evaluate_experts(  -tests/test_evaluation.c:215: trailing whitespace. -+ &frame,  -tests/test_evaluation.c:216: trailing whitespace. -+ &config,  -tests/test_evaluation.c:217: trailing whitespace. -+ ®ion,  -tests/test_evaluation.c:218: trailing whitespace. -+ &options,  -tests/test_evaluation.c:219: trailing whitespace. -+ &result  -tests/test_evaluation.c:220: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_evaluation.c:221: trailing whitespace. -+ );  -tests/test_evaluation.c:222: trailing whitespace. -+  -tests/test_evaluation.c:223: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:224: trailing whitespace. -+ cameff_format_evaluation(  -tests/test_evaluation.c:225: trailing whitespace. -+ &result,  -tests/test_evaluation.c:226: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:227: trailing whitespace. -+ sizeof(explanation)  -tests/test_evaluation.c:228: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_evaluation.c:229: trailing whitespace. -+ );  -tests/test_evaluation.c:230: trailing whitespace. -+  -tests/test_evaluation.c:231: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:232: trailing whitespace. -+ strstr(  -tests/test_evaluation.c:233: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:234: trailing whitespace. -+ "dominant_pattern="  -tests/test_evaluation.c:235: trailing whitespace. -+ ) != NULL  -tests/test_evaluation.c:236: trailing whitespace. -+ );  -tests/test_evaluation.c:237: trailing whitespace. -+  -tests/test_evaluation.c:238: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:239: trailing whitespace. -+ strstr(  -tests/test_evaluation.c:240: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:241: trailing whitespace. -+ "fused_hazard_evidence="  -tests/test_evaluation.c:242: trailing whitespace. -+ ) != NULL  -tests/test_evaluation.c:243: trailing whitespace. -+ );  -tests/test_evaluation.c:244: trailing whitespace. -+  -tests/test_evaluation.c:245: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:246: trailing whitespace. -+ strstr(  -tests/test_evaluation.c:247: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:248: trailing whitespace. -+ "expert=baseline"  -tests/test_evaluation.c:249: trailing whitespace. -+ ) != NULL  -tests/test_evaluation.c:250: trailing whitespace. -+ );  -tests/test_evaluation.c:251: trailing whitespace. -+  -tests/test_evaluation.c:252: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:253: trailing whitespace. -+ strstr(  -tests/test_evaluation.c:254: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:255: trailing whitespace. -+ "expert=subduction"  -tests/test_evaluation.c:256: trailing whitespace. -+ ) != NULL  -tests/test_evaluation.c:257: trailing whitespace. -+ );  -tests/test_evaluation.c:258: trailing whitespace. -+  -tests/test_evaluation.c:259: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:260: trailing whitespace. -+ strstr(  -tests/test_evaluation.c:261: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:262: trailing whitespace. -+ "routing_strength="  -tests/test_evaluation.c:263: trailing whitespace. -+ ) != NULL  -tests/test_evaluation.c:264: trailing whitespace. -+ );  -tests/test_evaluation.c:265: trailing whitespace. -+  -tests/test_evaluation.c:266: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:267: trailing whitespace. -+ strstr(  -tests/test_evaluation.c:268: trailing whitespace. -+ explanation,  -tests/test_evaluation.c:269: trailing whitespace. -+ "decision="  -tests/test_evaluation.c:270: trailing whitespace. -+ ) != NULL  -tests/test_evaluation.c:271: trailing whitespace. -+ );  -tests/test_evaluation.c:272: trailing whitespace. -+  -tests/test_evaluation.c:273: trailing whitespace. -+ return 0;  -tests/test_evaluation.c:274: trailing whitespace. -+}  -tests/test_evaluation.c:275: trailing whitespace. -+  -tests/test_evaluation.c:276: trailing whitespace. -+static int test_invalid_options(void) {  -tests/test_evaluation.c:277: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_evaluation.c:278: trailing whitespace. -+ cameff_config_t config;  -tests/test_evaluation.c:279: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_evaluation.c:280: trailing whitespace. -+ cameff_evaluation_options_t options;  -tests/test_evaluation.c:281: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_evaluation.c:282: trailing whitespace. -+  -tests/test_evaluation.c:283: trailing whitespace. -+ initialize_frame(&frame, 0.50, 0.80);  -tests/test_evaluation.c:284: trailing whitespace. -+ initialize_subduction_region(®ion);  -tests/test_evaluation.c:285: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_evaluation.c:286: trailing whitespace. -+ cameff_evaluation_options_default(&options);  -tests/test_evaluation.c:287: trailing whitespace. -+  -tests/test_evaluation.c:288: trailing whitespace. -+ options.watch_threshold = 0.80;  -tests/test_evaluation.c:289: trailing whitespace. -+ options.elevated_threshold = 0.70;  -tests/test_evaluation.c:290: trailing whitespace. -+  -tests/test_evaluation.c:291: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:292: trailing whitespace. -+ cameff_evaluate_experts(  -tests/test_evaluation.c:293: trailing whitespace. -+ &frame,  -tests/test_evaluation.c:294: trailing whitespace. -+ &config,  -tests/test_evaluation.c:295: trailing whitespace. -+ ®ion,  -tests/test_evaluation.c:296: trailing whitespace. -+ &options,  -tests/test_evaluation.c:297: trailing whitespace. -+ &result  -tests/test_evaluation.c:298: trailing whitespace. -+ ) == CAMEFF_STATUS_INVALID_ARGUMENT  -tests/test_evaluation.c:299: trailing whitespace. -+ );  -tests/test_evaluation.c:300: trailing whitespace. -+  -tests/test_evaluation.c:301: trailing whitespace. -+ return 0;  -tests/test_evaluation.c:302: trailing whitespace. -+}  -tests/test_evaluation.c:303: trailing whitespace. -+  -tests/test_evaluation.c:304: trailing whitespace. -+int main(void) {  -tests/test_evaluation.c:305: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:306: trailing whitespace. -+ test_end_to_end_subduction_evaluation() == 0  -tests/test_evaluation.c:307: trailing whitespace. -+ );  -tests/test_evaluation.c:308: trailing whitespace. -+  -tests/test_evaluation.c:309: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:310: trailing whitespace. -+ test_quiet_background_evaluation() == 0  -tests/test_evaluation.c:311: trailing whitespace. -+ );  -tests/test_evaluation.c:312: trailing whitespace. -+  -tests/test_evaluation.c:313: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:314: trailing whitespace. -+ test_explanation_output() == 0  -tests/test_evaluation.c:315: trailing whitespace. -+ );  -tests/test_evaluation.c:316: trailing whitespace. -+  -tests/test_evaluation.c:317: trailing whitespace. -+ CHECK(  -tests/test_evaluation.c:318: trailing whitespace. -+ test_invalid_options() == 0  -tests/test_evaluation.c:319: trailing whitespace. -+ );  -tests/test_evaluation.c:320: trailing whitespace. -+  -tests/test_evaluation.c:321: trailing whitespace. -+ puts("end-to-end evaluation tests passed");  -tests/test_evaluation.c:322: trailing whitespace. -+ return 0;  -tests/test_expert_registry.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_expert_registry.c:2: trailing whitespace. -+  -tests/test_expert_registry.c:3: trailing whitespace. -+#include   -tests/test_expert_registry.c:4: trailing whitespace. -+#include   -tests/test_expert_registry.c:5: trailing whitespace. -+#include   -tests/test_expert_registry.c:6: trailing whitespace. -+  -tests/test_expert_registry.c:7: trailing whitespace. -+#define TEST_TOLERANCE 1e-12  -tests/test_expert_registry.c:8: trailing whitespace. -+  -tests/test_expert_registry.c:9: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_expert_registry.c:10: trailing whitespace. -+ if (!(condition)) { \  -tests/test_expert_registry.c:11: trailing whitespace. -+ fprintf(stderr, "check failed: %s at line %d\n", \  -tests/test_expert_registry.c:12: trailing whitespace. -+ #condition, __LINE__); \  -tests/test_expert_registry.c:13: trailing whitespace. -+ return 1; \  -tests/test_expert_registry.c:14: trailing whitespace. -+ } \  -tests/test_expert_registry.c:15: trailing whitespace. -+} while (0)  -tests/test_expert_registry.c:16: trailing whitespace. -+  -tests/test_expert_registry.c:17: trailing whitespace. -+#define CHECK_CLOSE(actual, expected, tolerance) do { \  -tests/test_expert_registry.c:18: trailing whitespace. -+ if (fabs((actual) - (expected)) > (tolerance)) { \  -tests/test_expert_registry.c:19: trailing whitespace. -+ fprintf(stderr, \  -tests/test_expert_registry.c:20: trailing whitespace. -+ "check failed: %s ~= %s at line %d\n", \  -tests/test_expert_registry.c:21: trailing whitespace. -+ #actual, #expected, __LINE__); \  -tests/test_expert_registry.c:22: trailing whitespace. -+ return 1; \  -tests/test_expert_registry.c:23: trailing whitespace. -+ } \  -tests/test_expert_registry.c:24: trailing whitespace. -+} while (0)  -tests/test_expert_registry.c:25: trailing whitespace. -+  -tests/test_expert_registry.c:26: trailing whitespace. -+static void initialize_frame(  -tests/test_expert_registry.c:27: trailing whitespace. -+ cameff_signal_frame_t *frame  -tests/test_expert_registry.c:28: trailing whitespace. -+) {  -tests/test_expert_registry.c:29: trailing whitespace. -+ size_t i;  -tests/test_expert_registry.c:30: trailing whitespace. -+  -tests/test_expert_registry.c:31: trailing whitespace. -+ (void)memset(frame, 0, sizeof(*frame));  -tests/test_expert_registry.c:32: trailing whitespace. -+  -tests/test_expert_registry.c:33: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -tests/test_expert_registry.c:34: trailing whitespace. -+ frame->signals[i].value = 0.70;  -tests/test_expert_registry.c:35: trailing whitespace. -+ frame->signals[i].confidence = 0.90;  -tests/test_expert_registry.c:36: trailing whitespace. -+ frame->signals[i].supporting_events = 25U;  -tests/test_expert_registry.c:37: trailing whitespace. -+ frame->signals[i].available = 1;  -tests/test_expert_registry.c:38: trailing whitespace. -+ }  -tests/test_expert_registry.c:39: trailing whitespace. -+  -tests/test_expert_registry.c:40: trailing whitespace. -+ frame->selected_event_count = 25U;  -tests/test_expert_registry.c:41: trailing whitespace. -+ frame->data_confidence = 0.90;  -tests/test_expert_registry.c:42: trailing whitespace. -+}  -tests/test_expert_registry.c:43: trailing whitespace. -+  -tests/test_expert_registry.c:44: trailing whitespace. -+static void initialize_region(  -tests/test_expert_registry.c:45: trailing whitespace. -+ cameff_region_profile_t *region  -tests/test_expert_registry.c:46: trailing whitespace. -+) {  -tests/test_expert_registry.c:47: trailing whitespace. -+ (void)memset(region, 0, sizeof(*region));  -tests/test_expert_registry.c:48: trailing whitespace. -+  -tests/test_expert_registry.c:49: trailing whitespace. -+ region->tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_expert_registry.c:50: trailing whitespace. -+ region->subduction_affinity = 1.0;  -tests/test_expert_registry.c:51: trailing whitespace. -+ region->fault_map_confidence = 0.90;  -tests/test_expert_registry.c:52: trailing whitespace. -+ region->catalog_completeness = 0.90;  -tests/test_expert_registry.c:53: trailing whitespace. -+ region->station_coverage = 0.90;  -tests/test_expert_registry.c:54: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -tests/test_expert_registry.c:55: trailing whitespace. -+}  -tests/test_expert_registry.c:56: trailing whitespace. -+  -tests/test_expert_registry.c:57: trailing whitespace. -+static double subduction_applicability(  -tests/test_expert_registry.c:58: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -tests/test_expert_registry.c:59: trailing whitespace. -+ const cameff_region_profile_t *region,  -tests/test_expert_registry.c:60: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -tests/test_expert_registry.c:61: trailing whitespace. -+) {  -tests/test_expert_registry.c:62: trailing whitespace. -+ (void)frame;  -tests/test_expert_registry.c:63: trailing whitespace. -+ (void)patterns;  -tests/test_expert_registry.c:64: trailing whitespace. -+  -tests/test_expert_registry.c:65: trailing whitespace. -+ if (region == NULL) {  -tests/test_expert_registry.c:66: trailing whitespace. -+ return 0.0;  -tests/test_expert_registry.c:67: trailing whitespace. -+ }  -tests/test_expert_registry.c:68: trailing whitespace. -+  -tests/test_expert_registry.c:69: trailing whitespace. -+ return region->subduction_affinity;  -tests/test_expert_registry.c:70: trailing whitespace. -+}  -tests/test_expert_registry.c:71: trailing whitespace. -+  -tests/test_expert_registry.c:72: trailing whitespace. -+static cameff_status_t subduction_evaluate(  -tests/test_expert_registry.c:73: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -tests/test_expert_registry.c:74: trailing whitespace. -+ const cameff_config_t *config,  -tests/test_expert_registry.c:75: trailing whitespace. -+ const cameff_region_profile_t *region,  -tests/test_expert_registry.c:76: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -tests/test_expert_registry.c:77: trailing whitespace. -+ cameff_expert_result_t *result  -tests/test_expert_registry.c:78: trailing whitespace. -+) {  -tests/test_expert_registry.c:79: trailing whitespace. -+ (void)frame;  -tests/test_expert_registry.c:80: trailing whitespace. -+ (void)config;  -tests/test_expert_registry.c:81: trailing whitespace. -+ (void)region;  -tests/test_expert_registry.c:82: trailing whitespace. -+ (void)patterns;  -tests/test_expert_registry.c:83: trailing whitespace. -+  -tests/test_expert_registry.c:84: trailing whitespace. -+ if (result == NULL) {  -tests/test_expert_registry.c:85: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -tests/test_expert_registry.c:86: trailing whitespace. -+ }  -tests/test_expert_registry.c:87: trailing whitespace. -+  -tests/test_expert_registry.c:88: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -tests/test_expert_registry.c:89: trailing whitespace. -+  -tests/test_expert_registry.c:90: trailing whitespace. -+ (void)snprintf(  -tests/test_expert_registry.c:91: trailing whitespace. -+ result->expert_name,  -tests/test_expert_registry.c:92: trailing whitespace. -+ sizeof(result->expert_name),  -tests/test_expert_registry.c:93: trailing whitespace. -+ "%s",  -tests/test_expert_registry.c:94: trailing whitespace. -+ "test-subduction"  -tests/test_expert_registry.c:95: trailing whitespace. -+ );  -tests/test_expert_registry.c:96: trailing whitespace. -+  -tests/test_expert_registry.c:97: trailing whitespace. -+ result->hazard_evidence = 0.75;  -tests/test_expert_registry.c:98: trailing whitespace. -+ result->preparation_evidence = 0.80;  -tests/test_expert_registry.c:99: trailing whitespace. -+ result->confidence = 0.85;  -tests/test_expert_registry.c:100: trailing whitespace. -+ result->decision = CAMEFF_DECISION_ELEVATED;  -tests/test_expert_registry.c:101: trailing whitespace. -+ result->status = CAMEFF_EXPERT_OK;  -tests/test_expert_registry.c:102: trailing whitespace. -+  -tests/test_expert_registry.c:103: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -tests/test_expert_registry.c:104: trailing whitespace. -+}  -tests/test_expert_registry.c:105: trailing whitespace. -+  -tests/test_expert_registry.c:106: trailing whitespace. -+static const cameff_expert_t TEST_SUBDUCTION_EXPERT = {  -tests/test_expert_registry.c:107: trailing whitespace. -+ "test-subduction",  -tests/test_expert_registry.c:108: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION,  -tests/test_expert_registry.c:109: trailing whitespace. -+ subduction_applicability,  -tests/test_expert_registry.c:110: trailing whitespace. -+ subduction_evaluate  -tests/test_expert_registry.c:111: trailing whitespace. -+};  -tests/test_expert_registry.c:112: trailing whitespace. -+  -tests/test_expert_registry.c:113: trailing whitespace. -+static int test_registration(void) {  -tests/test_expert_registry.c:114: trailing whitespace. -+ cameff_expert_registry_t registry;  -tests/test_expert_registry.c:115: trailing whitespace. -+  -tests/test_expert_registry.c:116: trailing whitespace. -+ cameff_expert_registry_init(®istry);  -tests/test_expert_registry.c:117: trailing whitespace. -+  -tests/test_expert_registry.c:118: trailing whitespace. -+ CHECK(cameff_expert_registry_count(®istry) == 0U);  -tests/test_expert_registry.c:119: trailing whitespace. -+  -tests/test_expert_registry.c:120: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:121: trailing whitespace. -+ cameff_expert_registry_register(  -tests/test_expert_registry.c:122: trailing whitespace. -+ ®istry,  -tests/test_expert_registry.c:123: trailing whitespace. -+ cameff_baseline_expert()  -tests/test_expert_registry.c:124: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_expert_registry.c:125: trailing whitespace. -+ );  -tests/test_expert_registry.c:126: trailing whitespace. -+  -tests/test_expert_registry.c:127: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:128: trailing whitespace. -+ cameff_expert_registry_register(  -tests/test_expert_registry.c:129: trailing whitespace. -+ ®istry,  -tests/test_expert_registry.c:130: trailing whitespace. -+ &TEST_SUBDUCTION_EXPERT  -tests/test_expert_registry.c:131: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_expert_registry.c:132: trailing whitespace. -+ );  -tests/test_expert_registry.c:133: trailing whitespace. -+  -tests/test_expert_registry.c:134: trailing whitespace. -+ CHECK(cameff_expert_registry_count(®istry) == 2U);  -tests/test_expert_registry.c:135: trailing whitespace. -+  -tests/test_expert_registry.c:136: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:137: trailing whitespace. -+ cameff_expert_registry_get(®istry, 0U) ==  -tests/test_expert_registry.c:138: trailing whitespace. -+ cameff_baseline_expert()  -tests/test_expert_registry.c:139: trailing whitespace. -+ );  -tests/test_expert_registry.c:140: trailing whitespace. -+  -tests/test_expert_registry.c:141: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:142: trailing whitespace. -+ cameff_expert_registry_get(®istry, 2U) ==  -tests/test_expert_registry.c:143: trailing whitespace. -+ NULL  -tests/test_expert_registry.c:144: trailing whitespace. -+ );  -tests/test_expert_registry.c:145: trailing whitespace. -+  -tests/test_expert_registry.c:146: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:147: trailing whitespace. -+ cameff_expert_registry_register(  -tests/test_expert_registry.c:148: trailing whitespace. -+ ®istry,  -tests/test_expert_registry.c:149: trailing whitespace. -+ &TEST_SUBDUCTION_EXPERT  -tests/test_expert_registry.c:150: trailing whitespace. -+ ) == CAMEFF_STATUS_INVALID_ARGUMENT  -tests/test_expert_registry.c:151: trailing whitespace. -+ );  -tests/test_expert_registry.c:152: trailing whitespace. -+  -tests/test_expert_registry.c:153: trailing whitespace. -+ return 0;  -tests/test_expert_registry.c:154: trailing whitespace. -+}  -tests/test_expert_registry.c:155: trailing whitespace. -+  -tests/test_expert_registry.c:156: trailing whitespace. -+static int test_routing_strength(void) {  -tests/test_expert_registry.c:157: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_expert_registry.c:158: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_expert_registry.c:159: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_expert_registry.c:160: trailing whitespace. -+ double routing_strength;  -tests/test_expert_registry.c:161: trailing whitespace. -+  -tests/test_expert_registry.c:162: trailing whitespace. -+ initialize_frame(&frame);  -tests/test_expert_registry.c:163: trailing whitespace. -+ initialize_region(®ion);  -tests/test_expert_registry.c:164: trailing whitespace. -+ (void)memset(&patterns, 0, sizeof(patterns));  -tests/test_expert_registry.c:165: trailing whitespace. -+  -tests/test_expert_registry.c:166: trailing whitespace. -+ patterns.count = CAMEFF_PATTERN_COUNT;  -tests/test_expert_registry.c:167: trailing whitespace. -+  -tests/test_expert_registry.c:168: trailing whitespace. -+ patterns.scores[  -tests/test_expert_registry.c:169: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_expert_registry.c:170: trailing whitespace. -+ ].pattern_id =  -tests/test_expert_registry.c:171: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION;  -tests/test_expert_registry.c:172: trailing whitespace. -+  -tests/test_expert_registry.c:173: trailing whitespace. -+ patterns.scores[  -tests/test_expert_registry.c:174: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_expert_registry.c:175: trailing whitespace. -+ ].membership = 0.80;  -tests/test_expert_registry.c:176: trailing whitespace. -+  -tests/test_expert_registry.c:177: trailing whitespace. -+ routing_strength =  -tests/test_expert_registry.c:178: trailing whitespace. -+ cameff_expert_routing_strength(  -tests/test_expert_registry.c:179: trailing whitespace. -+ &TEST_SUBDUCTION_EXPERT,  -tests/test_expert_registry.c:180: trailing whitespace. -+ &frame,  -tests/test_expert_registry.c:181: trailing whitespace. -+ ®ion,  -tests/test_expert_registry.c:182: trailing whitespace. -+ &patterns  -tests/test_expert_registry.c:183: trailing whitespace. -+ );  -tests/test_expert_registry.c:184: trailing whitespace. -+  -tests/test_expert_registry.c:185: trailing whitespace. -+ CHECK_CLOSE(routing_strength, 0.80, TEST_TOLERANCE);  -tests/test_expert_registry.c:186: trailing whitespace. -+  -tests/test_expert_registry.c:187: trailing whitespace. -+ routing_strength =  -tests/test_expert_registry.c:188: trailing whitespace. -+ cameff_expert_routing_strength(  -tests/test_expert_registry.c:189: trailing whitespace. -+ cameff_baseline_expert(),  -tests/test_expert_registry.c:190: trailing whitespace. -+ &frame,  -tests/test_expert_registry.c:191: trailing whitespace. -+ ®ion,  -tests/test_expert_registry.c:192: trailing whitespace. -+ &patterns  -tests/test_expert_registry.c:193: trailing whitespace. -+ );  -tests/test_expert_registry.c:194: trailing whitespace. -+  -tests/test_expert_registry.c:195: trailing whitespace. -+ CHECK_CLOSE(routing_strength, 1.0, TEST_TOLERANCE);  -tests/test_expert_registry.c:196: trailing whitespace. -+  -tests/test_expert_registry.c:197: trailing whitespace. -+ return 0;  -tests/test_expert_registry.c:198: trailing whitespace. -+}  -tests/test_expert_registry.c:199: trailing whitespace. -+  -tests/test_expert_registry.c:200: trailing whitespace. -+static int test_activation_and_abstention(void) {  -tests/test_expert_registry.c:201: trailing whitespace. -+ cameff_expert_registry_t registry;  -tests/test_expert_registry.c:202: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_expert_registry.c:203: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_expert_registry.c:204: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_expert_registry.c:205: trailing whitespace. -+ cameff_config_t config;  -tests/test_expert_registry.c:206: trailing whitespace. -+ cameff_expert_result_t results[CAMEFF_MAX_EXPERTS];  -tests/test_expert_registry.c:207: trailing whitespace. -+ size_t result_count;  -tests/test_expert_registry.c:208: trailing whitespace. -+  -tests/test_expert_registry.c:209: trailing whitespace. -+ initialize_frame(&frame);  -tests/test_expert_registry.c:210: trailing whitespace. -+ initialize_region(®ion);  -tests/test_expert_registry.c:211: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_expert_registry.c:212: trailing whitespace. -+  -tests/test_expert_registry.c:213: trailing whitespace. -+ (void)memset(&patterns, 0, sizeof(patterns));  -tests/test_expert_registry.c:214: trailing whitespace. -+ patterns.count = CAMEFF_PATTERN_COUNT;  -tests/test_expert_registry.c:215: trailing whitespace. -+  -tests/test_expert_registry.c:216: trailing whitespace. -+ patterns.scores[  -tests/test_expert_registry.c:217: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_expert_registry.c:218: trailing whitespace. -+ ].pattern_id =  -tests/test_expert_registry.c:219: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION;  -tests/test_expert_registry.c:220: trailing whitespace. -+  -tests/test_expert_registry.c:221: trailing whitespace. -+ patterns.scores[  -tests/test_expert_registry.c:222: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_expert_registry.c:223: trailing whitespace. -+ ].membership = 0.10;  -tests/test_expert_registry.c:224: trailing whitespace. -+  -tests/test_expert_registry.c:225: trailing whitespace. -+ cameff_expert_registry_init(®istry);  -tests/test_expert_registry.c:226: trailing whitespace. -+  -tests/test_expert_registry.c:227: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:228: trailing whitespace. -+ cameff_expert_registry_register(  -tests/test_expert_registry.c:229: trailing whitespace. -+ ®istry,  -tests/test_expert_registry.c:230: trailing whitespace. -+ cameff_baseline_expert()  -tests/test_expert_registry.c:231: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_expert_registry.c:232: trailing whitespace. -+ );  -tests/test_expert_registry.c:233: trailing whitespace. -+  -tests/test_expert_registry.c:234: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:235: trailing whitespace. -+ cameff_expert_registry_register(  -tests/test_expert_registry.c:236: trailing whitespace. -+ ®istry,  -tests/test_expert_registry.c:237: trailing whitespace. -+ &TEST_SUBDUCTION_EXPERT  -tests/test_expert_registry.c:238: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_expert_registry.c:239: trailing whitespace. -+ );  -tests/test_expert_registry.c:240: trailing whitespace. -+  -tests/test_expert_registry.c:241: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:242: trailing whitespace. -+ cameff_expert_registry_evaluate(  -tests/test_expert_registry.c:243: trailing whitespace. -+ ®istry,  -tests/test_expert_registry.c:244: trailing whitespace. -+ &frame,  -tests/test_expert_registry.c:245: trailing whitespace. -+ &config,  -tests/test_expert_registry.c:246: trailing whitespace. -+ ®ion,  -tests/test_expert_registry.c:247: trailing whitespace. -+ &patterns,  -tests/test_expert_registry.c:248: trailing whitespace. -+ 0.20,  -tests/test_expert_registry.c:249: trailing whitespace. -+ results,  -tests/test_expert_registry.c:250: trailing whitespace. -+ CAMEFF_MAX_EXPERTS,  -tests/test_expert_registry.c:251: trailing whitespace. -+ &result_count  -tests/test_expert_registry.c:252: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_expert_registry.c:253: trailing whitespace. -+ );  -tests/test_expert_registry.c:254: trailing whitespace. -+  -tests/test_expert_registry.c:255: trailing whitespace. -+ CHECK(result_count == 2U);  -tests/test_expert_registry.c:256: trailing whitespace. -+  -tests/test_expert_registry.c:257: trailing whitespace. -+ CHECK(results[0].status == CAMEFF_EXPERT_OK);  -tests/test_expert_registry.c:258: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_expert_registry.c:259: trailing whitespace. -+ results[0].routing_strength,  -tests/test_expert_registry.c:260: trailing whitespace. -+ 1.0,  -tests/test_expert_registry.c:261: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_expert_registry.c:262: trailing whitespace. -+ );  -tests/test_expert_registry.c:263: trailing whitespace. -+  -tests/test_expert_registry.c:264: trailing whitespace. -+ CHECK(results[1].status == CAMEFF_EXPERT_ABSTAIN);  -tests/test_expert_registry.c:265: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_expert_registry.c:266: trailing whitespace. -+ results[1].routing_strength,  -tests/test_expert_registry.c:267: trailing whitespace. -+ 0.10,  -tests/test_expert_registry.c:268: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_expert_registry.c:269: trailing whitespace. -+ );  -tests/test_expert_registry.c:270: trailing whitespace. -+  -tests/test_expert_registry.c:271: trailing whitespace. -+ CHECK(  -tests/test_expert_registry.c:272: trailing whitespace. -+ results[1].decision ==  -tests/test_expert_registry.c:273: trailing whitespace. -+ CAMEFF_DECISION_INSUFFICIENT_DATA  -tests/test_expert_registry.c:274: trailing whitespace. -+ );  -tests/test_expert_registry.c:275: trailing whitespace. -+  -tests/test_expert_registry.c:276: trailing whitespace. -+ return 0;  -tests/test_expert_registry.c:277: trailing whitespace. -+}  -tests/test_expert_registry.c:278: trailing whitespace. -+  -tests/test_expert_registry.c:279: trailing whitespace. -+int main(void) {  -tests/test_expert_registry.c:280: trailing whitespace. -+ CHECK(test_registration() == 0);  -tests/test_expert_registry.c:281: trailing whitespace. -+ CHECK(test_routing_strength() == 0);  -tests/test_expert_registry.c:282: trailing whitespace. -+ CHECK(test_activation_and_abstention() == 0);  -tests/test_expert_registry.c:283: trailing whitespace. -+  -tests/test_expert_registry.c:284: trailing whitespace. -+ puts("expert registry tests passed");  -tests/test_expert_registry.c:285: trailing whitespace. -+ return 0;  -tests/test_fusion.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_fusion.c:2: trailing whitespace. -+  -tests/test_fusion.c:3: trailing whitespace. -+#include   -tests/test_fusion.c:4: trailing whitespace. -+#include   -tests/test_fusion.c:5: trailing whitespace. -+#include   -tests/test_fusion.c:6: trailing whitespace. -+  -tests/test_fusion.c:7: trailing whitespace. -+#define TEST_TOLERANCE 1e-12  -tests/test_fusion.c:8: trailing whitespace. -+  -tests/test_fusion.c:9: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_fusion.c:10: trailing whitespace. -+ if (!(condition)) { \  -tests/test_fusion.c:11: trailing whitespace. -+ fprintf(stderr, \  -tests/test_fusion.c:12: trailing whitespace. -+ "check failed: %s at line %d\n", \  -tests/test_fusion.c:13: trailing whitespace. -+ #condition, __LINE__); \  -tests/test_fusion.c:14: trailing whitespace. -+ return 1; \  -tests/test_fusion.c:15: trailing whitespace. -+ } \  -tests/test_fusion.c:16: trailing whitespace. -+} while (0)  -tests/test_fusion.c:17: trailing whitespace. -+  -tests/test_fusion.c:18: trailing whitespace. -+#define CHECK_CLOSE(actual, expected, tolerance) do { \  -tests/test_fusion.c:19: trailing whitespace. -+ if (fabs((actual) - (expected)) > (tolerance)) { \  -tests/test_fusion.c:20: trailing whitespace. -+ fprintf(stderr, \  -tests/test_fusion.c:21: trailing whitespace. -+ "check failed: %s ~= %s at line %d\n", \  -tests/test_fusion.c:22: trailing whitespace. -+ #actual, #expected, __LINE__); \  -tests/test_fusion.c:23: trailing whitespace. -+ return 1; \  -tests/test_fusion.c:24: trailing whitespace. -+ } \  -tests/test_fusion.c:25: trailing whitespace. -+} while (0)  -tests/test_fusion.c:26: trailing whitespace. -+  -tests/test_fusion.c:27: trailing whitespace. -+static void initialize_result(  -tests/test_fusion.c:28: trailing whitespace. -+ cameff_expert_result_t *result,  -tests/test_fusion.c:29: trailing whitespace. -+ const char *name,  -tests/test_fusion.c:30: trailing whitespace. -+ cameff_expert_status_t status,  -tests/test_fusion.c:31: trailing whitespace. -+ double routing_strength,  -tests/test_fusion.c:32: trailing whitespace. -+ double confidence,  -tests/test_fusion.c:33: trailing whitespace. -+ double hazard,  -tests/test_fusion.c:34: trailing whitespace. -+ double preparation,  -tests/test_fusion.c:35: trailing whitespace. -+ double cascade  -tests/test_fusion.c:36: trailing whitespace. -+) {  -tests/test_fusion.c:37: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -tests/test_fusion.c:38: trailing whitespace. -+  -tests/test_fusion.c:39: trailing whitespace. -+ (void)snprintf(  -tests/test_fusion.c:40: trailing whitespace. -+ result->expert_name,  -tests/test_fusion.c:41: trailing whitespace. -+ sizeof(result->expert_name),  -tests/test_fusion.c:42: trailing whitespace. -+ "%s",  -tests/test_fusion.c:43: trailing whitespace. -+ name  -tests/test_fusion.c:44: trailing whitespace. -+ );  -tests/test_fusion.c:45: trailing whitespace. -+  -tests/test_fusion.c:46: trailing whitespace. -+ result->status = status;  -tests/test_fusion.c:47: trailing whitespace. -+ result->routing_strength = routing_strength;  -tests/test_fusion.c:48: trailing whitespace. -+ result->confidence = confidence;  -tests/test_fusion.c:49: trailing whitespace. -+ result->hazard_evidence = hazard;  -tests/test_fusion.c:50: trailing whitespace. -+ result->preparation_evidence = preparation;  -tests/test_fusion.c:51: trailing whitespace. -+ result->cascade_evidence = cascade;  -tests/test_fusion.c:52: trailing whitespace. -+}  -tests/test_fusion.c:53: trailing whitespace. -+  -tests/test_fusion.c:54: trailing whitespace. -+static void initialize_patterns(  -tests/test_fusion.c:55: trailing whitespace. -+ cameff_pattern_result_t *patterns,  -tests/test_fusion.c:56: trailing whitespace. -+ double confidence  -tests/test_fusion.c:57: trailing whitespace. -+) {  -tests/test_fusion.c:58: trailing whitespace. -+ (void)memset(patterns, 0, sizeof(*patterns));  -tests/test_fusion.c:59: trailing whitespace. -+  -tests/test_fusion.c:60: trailing whitespace. -+ patterns->count = CAMEFF_PATTERN_COUNT;  -tests/test_fusion.c:61: trailing whitespace. -+ patterns->dominant_pattern =  -tests/test_fusion.c:62: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION;  -tests/test_fusion.c:63: trailing whitespace. -+  -tests/test_fusion.c:64: trailing whitespace. -+ patterns->classification_confidence =  -tests/test_fusion.c:65: trailing whitespace. -+ confidence;  -tests/test_fusion.c:66: trailing whitespace. -+}  -tests/test_fusion.c:67: trailing whitespace. -+  -tests/test_fusion.c:68: trailing whitespace. -+static int test_weighted_fusion(void) {  -tests/test_fusion.c:69: trailing whitespace. -+ cameff_expert_result_t experts[2];  -tests/test_fusion.c:70: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_fusion.c:71: trailing whitespace. -+ cameff_multi_expert_result_t fused;  -tests/test_fusion.c:72: trailing whitespace. -+ double expected_hazard;  -tests/test_fusion.c:73: trailing whitespace. -+ double expected_preparation;  -tests/test_fusion.c:74: trailing whitespace. -+ double expected_cascade;  -tests/test_fusion.c:75: trailing whitespace. -+  -tests/test_fusion.c:76: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:77: trailing whitespace. -+ &experts[0],  -tests/test_fusion.c:78: trailing whitespace. -+ "subduction",  -tests/test_fusion.c:79: trailing whitespace. -+ CAMEFF_EXPERT_OK,  -tests/test_fusion.c:80: trailing whitespace. -+ 0.80,  -tests/test_fusion.c:81: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:82: trailing whitespace. -+ 0.80,  -tests/test_fusion.c:83: trailing whitespace. -+ 0.85,  -tests/test_fusion.c:84: trailing whitespace. -+ 0.10  -tests/test_fusion.c:85: trailing whitespace. -+ );  -tests/test_fusion.c:86: trailing whitespace. -+  -tests/test_fusion.c:87: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:88: trailing whitespace. -+ &experts[1],  -tests/test_fusion.c:89: trailing whitespace. -+ "cascade",  -tests/test_fusion.c:90: trailing whitespace. -+ CAMEFF_EXPERT_OK,  -tests/test_fusion.c:91: trailing whitespace. -+ 0.40,  -tests/test_fusion.c:92: trailing whitespace. -+ 0.50,  -tests/test_fusion.c:93: trailing whitespace. -+ 0.50,  -tests/test_fusion.c:94: trailing whitespace. -+ 0.20,  -tests/test_fusion.c:95: trailing whitespace. -+ 0.90  -tests/test_fusion.c:96: trailing whitespace. -+ );  -tests/test_fusion.c:97: trailing whitespace. -+  -tests/test_fusion.c:98: trailing whitespace. -+ initialize_patterns(&patterns, 1.0);  -tests/test_fusion.c:99: trailing whitespace. -+  -tests/test_fusion.c:100: trailing whitespace. -+ /*  -tests/test_fusion.c:101: trailing whitespace. -+ * Effective weights:  -tests/test_fusion.c:102: trailing whitespace. -+ *  -tests/test_fusion.c:103: trailing whitespace. -+ * subduction = 0.80 * 0.90 = 0.72  -tests/test_fusion.c:104: trailing whitespace. -+ * cascade = 0.40 * 0.50 = 0.20  -tests/test_fusion.c:105: trailing whitespace. -+ */  -tests/test_fusion.c:106: trailing whitespace. -+ expected_hazard =  -tests/test_fusion.c:107: trailing whitespace. -+ ((0.72 * 0.80) + (0.20 * 0.50)) /  -tests/test_fusion.c:108: trailing whitespace. -+ (0.72 + 0.20);  -tests/test_fusion.c:109: trailing whitespace. -+  -tests/test_fusion.c:110: trailing whitespace. -+ expected_preparation =  -tests/test_fusion.c:111: trailing whitespace. -+ ((0.72 * 0.85) + (0.20 * 0.20)) /  -tests/test_fusion.c:112: trailing whitespace. -+ (0.72 + 0.20);  -tests/test_fusion.c:113: trailing whitespace. -+  -tests/test_fusion.c:114: trailing whitespace. -+ expected_cascade =  -tests/test_fusion.c:115: trailing whitespace. -+ ((0.72 * 0.10) + (0.20 * 0.90)) /  -tests/test_fusion.c:116: trailing whitespace. -+ (0.72 + 0.20);  -tests/test_fusion.c:117: trailing whitespace. -+  -tests/test_fusion.c:118: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:119: trailing whitespace. -+ cameff_fuse_expert_results(  -tests/test_fusion.c:120: trailing whitespace. -+ experts,  -tests/test_fusion.c:121: trailing whitespace. -+ 2U,  -tests/test_fusion.c:122: trailing whitespace. -+ &patterns,  -tests/test_fusion.c:123: trailing whitespace. -+ 0.25,  -tests/test_fusion.c:124: trailing whitespace. -+ 0.45,  -tests/test_fusion.c:125: trailing whitespace. -+ 0.70,  -tests/test_fusion.c:126: trailing whitespace. -+ &fused  -tests/test_fusion.c:127: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_fusion.c:128: trailing whitespace. -+ );  -tests/test_fusion.c:129: trailing whitespace. -+  -tests/test_fusion.c:130: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:131: trailing whitespace. -+ fused.hazard_evidence,  -tests/test_fusion.c:132: trailing whitespace. -+ expected_hazard,  -tests/test_fusion.c:133: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:134: trailing whitespace. -+ );  -tests/test_fusion.c:135: trailing whitespace. -+  -tests/test_fusion.c:136: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:137: trailing whitespace. -+ fused.preparation_evidence,  -tests/test_fusion.c:138: trailing whitespace. -+ expected_preparation,  -tests/test_fusion.c:139: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:140: trailing whitespace. -+ );  -tests/test_fusion.c:141: trailing whitespace. -+  -tests/test_fusion.c:142: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:143: trailing whitespace. -+ fused.cascade_evidence,  -tests/test_fusion.c:144: trailing whitespace. -+ expected_cascade,  -tests/test_fusion.c:145: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:146: trailing whitespace. -+ );  -tests/test_fusion.c:147: trailing whitespace. -+  -tests/test_fusion.c:148: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:149: trailing whitespace. -+ fused.decision ==  -tests/test_fusion.c:150: trailing whitespace. -+ CAMEFF_DECISION_ELEVATED  -tests/test_fusion.c:151: trailing whitespace. -+ );  -tests/test_fusion.c:152: trailing whitespace. -+  -tests/test_fusion.c:153: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:154: trailing whitespace. -+ fused.dominant_pattern ==  -tests/test_fusion.c:155: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_fusion.c:156: trailing whitespace. -+ );  -tests/test_fusion.c:157: trailing whitespace. -+  -tests/test_fusion.c:158: trailing whitespace. -+ return 0;  -tests/test_fusion.c:159: trailing whitespace. -+}  -tests/test_fusion.c:160: trailing whitespace. -+  -tests/test_fusion.c:161: trailing whitespace. -+static int test_abstention_is_excluded(void) {  -tests/test_fusion.c:162: trailing whitespace. -+ cameff_expert_result_t experts[2];  -tests/test_fusion.c:163: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_fusion.c:164: trailing whitespace. -+ cameff_multi_expert_result_t fused;  -tests/test_fusion.c:165: trailing whitespace. -+  -tests/test_fusion.c:166: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:167: trailing whitespace. -+ &experts[0],  -tests/test_fusion.c:168: trailing whitespace. -+ "baseline",  -tests/test_fusion.c:169: trailing whitespace. -+ CAMEFF_EXPERT_OK,  -tests/test_fusion.c:170: trailing whitespace. -+ 1.0,  -tests/test_fusion.c:171: trailing whitespace. -+ 0.80,  -tests/test_fusion.c:172: trailing whitespace. -+ 0.60,  -tests/test_fusion.c:173: trailing whitespace. -+ 0.00,  -tests/test_fusion.c:174: trailing whitespace. -+ 0.00  -tests/test_fusion.c:175: trailing whitespace. -+ );  -tests/test_fusion.c:176: trailing whitespace. -+  -tests/test_fusion.c:177: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:178: trailing whitespace. -+ &experts[1],  -tests/test_fusion.c:179: trailing whitespace. -+ "crustal-fault",  -tests/test_fusion.c:180: trailing whitespace. -+ CAMEFF_EXPERT_ABSTAIN,  -tests/test_fusion.c:181: trailing whitespace. -+ 0.10,  -tests/test_fusion.c:182: trailing whitespace. -+ 1.00,  -tests/test_fusion.c:183: trailing whitespace. -+ 1.00,  -tests/test_fusion.c:184: trailing whitespace. -+ 1.00,  -tests/test_fusion.c:185: trailing whitespace. -+ 1.00  -tests/test_fusion.c:186: trailing whitespace. -+ );  -tests/test_fusion.c:187: trailing whitespace. -+  -tests/test_fusion.c:188: trailing whitespace. -+ initialize_patterns(&patterns, 1.0);  -tests/test_fusion.c:189: trailing whitespace. -+  -tests/test_fusion.c:190: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:191: trailing whitespace. -+ cameff_fuse_expert_results(  -tests/test_fusion.c:192: trailing whitespace. -+ experts,  -tests/test_fusion.c:193: trailing whitespace. -+ 2U,  -tests/test_fusion.c:194: trailing whitespace. -+ &patterns,  -tests/test_fusion.c:195: trailing whitespace. -+ 0.25,  -tests/test_fusion.c:196: trailing whitespace. -+ 0.45,  -tests/test_fusion.c:197: trailing whitespace. -+ 0.70,  -tests/test_fusion.c:198: trailing whitespace. -+ &fused  -tests/test_fusion.c:199: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_fusion.c:200: trailing whitespace. -+ );  -tests/test_fusion.c:201: trailing whitespace. -+  -tests/test_fusion.c:202: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:203: trailing whitespace. -+ fused.hazard_evidence,  -tests/test_fusion.c:204: trailing whitespace. -+ 0.60,  -tests/test_fusion.c:205: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:206: trailing whitespace. -+ );  -tests/test_fusion.c:207: trailing whitespace. -+  -tests/test_fusion.c:208: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:209: trailing whitespace. -+ fused.preparation_evidence,  -tests/test_fusion.c:210: trailing whitespace. -+ 0.00,  -tests/test_fusion.c:211: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:212: trailing whitespace. -+ );  -tests/test_fusion.c:213: trailing whitespace. -+  -tests/test_fusion.c:214: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:215: trailing whitespace. -+ fused.cascade_evidence,  -tests/test_fusion.c:216: trailing whitespace. -+ 0.00,  -tests/test_fusion.c:217: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:218: trailing whitespace. -+ );  -tests/test_fusion.c:219: trailing whitespace. -+  -tests/test_fusion.c:220: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:221: trailing whitespace. -+ fused.expert_results[1].status ==  -tests/test_fusion.c:222: trailing whitespace. -+ CAMEFF_EXPERT_ABSTAIN  -tests/test_fusion.c:223: trailing whitespace. -+ );  -tests/test_fusion.c:224: trailing whitespace. -+  -tests/test_fusion.c:225: trailing whitespace. -+ return 0;  -tests/test_fusion.c:226: trailing whitespace. -+}  -tests/test_fusion.c:227: trailing whitespace. -+  -tests/test_fusion.c:228: trailing whitespace. -+static int test_no_active_experts(void) {  -tests/test_fusion.c:229: trailing whitespace. -+ cameff_expert_result_t experts[2];  -tests/test_fusion.c:230: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_fusion.c:231: trailing whitespace. -+ cameff_multi_expert_result_t fused;  -tests/test_fusion.c:232: trailing whitespace. -+  -tests/test_fusion.c:233: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:234: trailing whitespace. -+ &experts[0],  -tests/test_fusion.c:235: trailing whitespace. -+ "subduction",  -tests/test_fusion.c:236: trailing whitespace. -+ CAMEFF_EXPERT_ABSTAIN,  -tests/test_fusion.c:237: trailing whitespace. -+ 0.10,  -tests/test_fusion.c:238: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:239: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:240: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:241: trailing whitespace. -+ 0.00  -tests/test_fusion.c:242: trailing whitespace. -+ );  -tests/test_fusion.c:243: trailing whitespace. -+  -tests/test_fusion.c:244: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:245: trailing whitespace. -+ &experts[1],  -tests/test_fusion.c:246: trailing whitespace. -+ "cascade",  -tests/test_fusion.c:247: trailing whitespace. -+ CAMEFF_EXPERT_INSUFFICIENT_DATA,  -tests/test_fusion.c:248: trailing whitespace. -+ 0.40,  -tests/test_fusion.c:249: trailing whitespace. -+ 0.10,  -tests/test_fusion.c:250: trailing whitespace. -+ 0.80,  -tests/test_fusion.c:251: trailing whitespace. -+ 0.10,  -tests/test_fusion.c:252: trailing whitespace. -+ 0.80  -tests/test_fusion.c:253: trailing whitespace. -+ );  -tests/test_fusion.c:254: trailing whitespace. -+  -tests/test_fusion.c:255: trailing whitespace. -+ initialize_patterns(&patterns, 0.80);  -tests/test_fusion.c:256: trailing whitespace. -+  -tests/test_fusion.c:257: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:258: trailing whitespace. -+ cameff_fuse_expert_results(  -tests/test_fusion.c:259: trailing whitespace. -+ experts,  -tests/test_fusion.c:260: trailing whitespace. -+ 2U,  -tests/test_fusion.c:261: trailing whitespace. -+ &patterns,  -tests/test_fusion.c:262: trailing whitespace. -+ 0.25,  -tests/test_fusion.c:263: trailing whitespace. -+ 0.45,  -tests/test_fusion.c:264: trailing whitespace. -+ 0.70,  -tests/test_fusion.c:265: trailing whitespace. -+ &fused  -tests/test_fusion.c:266: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_fusion.c:267: trailing whitespace. -+ );  -tests/test_fusion.c:268: trailing whitespace. -+  -tests/test_fusion.c:269: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:270: trailing whitespace. -+ fused.hazard_evidence,  -tests/test_fusion.c:271: trailing whitespace. -+ 0.0,  -tests/test_fusion.c:272: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:273: trailing whitespace. -+ );  -tests/test_fusion.c:274: trailing whitespace. -+  -tests/test_fusion.c:275: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:276: trailing whitespace. -+ fused.fused_confidence,  -tests/test_fusion.c:277: trailing whitespace. -+ 0.0,  -tests/test_fusion.c:278: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:279: trailing whitespace. -+ );  -tests/test_fusion.c:280: trailing whitespace. -+  -tests/test_fusion.c:281: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:282: trailing whitespace. -+ fused.decision ==  -tests/test_fusion.c:283: trailing whitespace. -+ CAMEFF_DECISION_INSUFFICIENT_DATA  -tests/test_fusion.c:284: trailing whitespace. -+ );  -tests/test_fusion.c:285: trailing whitespace. -+  -tests/test_fusion.c:286: trailing whitespace. -+ return 0;  -tests/test_fusion.c:287: trailing whitespace. -+}  -tests/test_fusion.c:288: trailing whitespace. -+  -tests/test_fusion.c:289: trailing whitespace. -+static int test_low_classification_confidence(void) {  -tests/test_fusion.c:290: trailing whitespace. -+ cameff_expert_result_t expert;  -tests/test_fusion.c:291: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_fusion.c:292: trailing whitespace. -+ cameff_multi_expert_result_t fused;  -tests/test_fusion.c:293: trailing whitespace. -+  -tests/test_fusion.c:294: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:295: trailing whitespace. -+ &expert,  -tests/test_fusion.c:296: trailing whitespace. -+ "subduction",  -tests/test_fusion.c:297: trailing whitespace. -+ CAMEFF_EXPERT_OK,  -tests/test_fusion.c:298: trailing whitespace. -+ 1.0,  -tests/test_fusion.c:299: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:300: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:301: trailing whitespace. -+ 0.90,  -tests/test_fusion.c:302: trailing whitespace. -+ 0.00  -tests/test_fusion.c:303: trailing whitespace. -+ );  -tests/test_fusion.c:304: trailing whitespace. -+  -tests/test_fusion.c:305: trailing whitespace. -+ initialize_patterns(&patterns, 0.20);  -tests/test_fusion.c:306: trailing whitespace. -+  -tests/test_fusion.c:307: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:308: trailing whitespace. -+ cameff_fuse_expert_results(  -tests/test_fusion.c:309: trailing whitespace. -+ &expert,  -tests/test_fusion.c:310: trailing whitespace. -+ 1U,  -tests/test_fusion.c:311: trailing whitespace. -+ &patterns,  -tests/test_fusion.c:312: trailing whitespace. -+ 0.25,  -tests/test_fusion.c:313: trailing whitespace. -+ 0.45,  -tests/test_fusion.c:314: trailing whitespace. -+ 0.70,  -tests/test_fusion.c:315: trailing whitespace. -+ &fused  -tests/test_fusion.c:316: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_fusion.c:317: trailing whitespace. -+ );  -tests/test_fusion.c:318: trailing whitespace. -+  -tests/test_fusion.c:319: trailing whitespace. -+ CHECK_CLOSE(  -tests/test_fusion.c:320: trailing whitespace. -+ fused.fused_confidence,  -tests/test_fusion.c:321: trailing whitespace. -+ 0.18,  -tests/test_fusion.c:322: trailing whitespace. -+ TEST_TOLERANCE  -tests/test_fusion.c:323: trailing whitespace. -+ );  -tests/test_fusion.c:324: trailing whitespace. -+  -tests/test_fusion.c:325: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:326: trailing whitespace. -+ fused.decision ==  -tests/test_fusion.c:327: trailing whitespace. -+ CAMEFF_DECISION_INSUFFICIENT_DATA  -tests/test_fusion.c:328: trailing whitespace. -+ );  -tests/test_fusion.c:329: trailing whitespace. -+  -tests/test_fusion.c:330: trailing whitespace. -+ return 0;  -tests/test_fusion.c:331: trailing whitespace. -+}  -tests/test_fusion.c:332: trailing whitespace. -+  -tests/test_fusion.c:333: trailing whitespace. -+static int test_invalid_thresholds(void) {  -tests/test_fusion.c:334: trailing whitespace. -+ cameff_expert_result_t expert;  -tests/test_fusion.c:335: trailing whitespace. -+ cameff_multi_expert_result_t fused;  -tests/test_fusion.c:336: trailing whitespace. -+  -tests/test_fusion.c:337: trailing whitespace. -+ initialize_result(  -tests/test_fusion.c:338: trailing whitespace. -+ &expert,  -tests/test_fusion.c:339: trailing whitespace. -+ "baseline",  -tests/test_fusion.c:340: trailing whitespace. -+ CAMEFF_EXPERT_OK,  -tests/test_fusion.c:341: trailing whitespace. -+ 1.0,  -tests/test_fusion.c:342: trailing whitespace. -+ 1.0,  -tests/test_fusion.c:343: trailing whitespace. -+ 0.50,  -tests/test_fusion.c:344: trailing whitespace. -+ 0.00,  -tests/test_fusion.c:345: trailing whitespace. -+ 0.00  -tests/test_fusion.c:346: trailing whitespace. -+ );  -tests/test_fusion.c:347: trailing whitespace. -+  -tests/test_fusion.c:348: trailing whitespace. -+ CHECK(  -tests/test_fusion.c:349: trailing whitespace. -+ cameff_fuse_expert_results(  -tests/test_fusion.c:350: trailing whitespace. -+ &expert,  -tests/test_fusion.c:351: trailing whitespace. -+ 1U,  -tests/test_fusion.c:352: trailing whitespace. -+ NULL,  -tests/test_fusion.c:353: trailing whitespace. -+ 0.25,  -tests/test_fusion.c:354: trailing whitespace. -+ 0.80,  -tests/test_fusion.c:355: trailing whitespace. -+ 0.70,  -tests/test_fusion.c:356: trailing whitespace. -+ &fused  -tests/test_fusion.c:357: trailing whitespace. -+ ) == CAMEFF_STATUS_INVALID_ARGUMENT  -tests/test_fusion.c:358: trailing whitespace. -+ );  -tests/test_fusion.c:359: trailing whitespace. -+  -tests/test_fusion.c:360: trailing whitespace. -+ return 0;  -tests/test_fusion.c:361: trailing whitespace. -+}  -tests/test_fusion.c:362: trailing whitespace. -+  -tests/test_fusion.c:363: trailing whitespace. -+int main(void) {  -tests/test_fusion.c:364: trailing whitespace. -+ CHECK(test_weighted_fusion() == 0);  -tests/test_fusion.c:365: trailing whitespace. -+ CHECK(test_abstention_is_excluded() == 0);  -tests/test_fusion.c:366: trailing whitespace. -+ CHECK(test_no_active_experts() == 0);  -tests/test_fusion.c:367: trailing whitespace. -+ CHECK(test_low_classification_confidence() == 0);  -tests/test_fusion.c:368: trailing whitespace. -+ CHECK(test_invalid_thresholds() == 0);  -tests/test_fusion.c:369: trailing whitespace. -+  -tests/test_fusion.c:370: trailing whitespace. -+ puts("expert fusion tests passed");  -tests/test_fusion.c:371: trailing whitespace. -+ return 0;  -tests/test_m2_contracts.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_m2_contracts.c:2: trailing whitespace. -+  -tests/test_m2_contracts.c:3: trailing whitespace. -+#include   -tests/test_m2_contracts.c:4: trailing whitespace. -+#include   -tests/test_m2_contracts.c:5: trailing whitespace. -+  -tests/test_m2_contracts.c:6: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_m2_contracts.c:7: trailing whitespace. -+ if (!(condition)) { \  -tests/test_m2_contracts.c:8: trailing whitespace. -+ fprintf(stderr, "check failed: %s at line %d\n", #condition, __LINE__); \  -tests/test_m2_contracts.c:9: trailing whitespace. -+ return 1; \  -tests/test_m2_contracts.c:10: trailing whitespace. -+ } \  -tests/test_m2_contracts.c:11: trailing whitespace. -+} while (0)  -tests/test_m2_contracts.c:12: trailing whitespace. -+  -tests/test_m2_contracts.c:13: trailing whitespace. -+static double test_applicability(  -tests/test_m2_contracts.c:14: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -tests/test_m2_contracts.c:15: trailing whitespace. -+ const cameff_region_profile_t *region,  -tests/test_m2_contracts.c:16: trailing whitespace. -+ const cameff_pattern_result_t *patterns  -tests/test_m2_contracts.c:17: trailing whitespace. -+) {  -tests/test_m2_contracts.c:18: trailing whitespace. -+ (void)frame;  -tests/test_m2_contracts.c:19: trailing whitespace. -+ (void)region;  -tests/test_m2_contracts.c:20: trailing whitespace. -+ (void)patterns;  -tests/test_m2_contracts.c:21: trailing whitespace. -+ return 1.0;  -tests/test_m2_contracts.c:22: trailing whitespace. -+}  -tests/test_m2_contracts.c:23: trailing whitespace. -+  -tests/test_m2_contracts.c:24: trailing whitespace. -+static cameff_status_t test_evaluate(  -tests/test_m2_contracts.c:25: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -tests/test_m2_contracts.c:26: trailing whitespace. -+ const cameff_config_t *config,  -tests/test_m2_contracts.c:27: trailing whitespace. -+ const cameff_region_profile_t *region,  -tests/test_m2_contracts.c:28: trailing whitespace. -+ const cameff_pattern_result_t *patterns,  -tests/test_m2_contracts.c:29: trailing whitespace. -+ cameff_expert_result_t *result  -tests/test_m2_contracts.c:30: trailing whitespace. -+) {  -tests/test_m2_contracts.c:31: trailing whitespace. -+ (void)frame;  -tests/test_m2_contracts.c:32: trailing whitespace. -+ (void)config;  -tests/test_m2_contracts.c:33: trailing whitespace. -+ (void)region;  -tests/test_m2_contracts.c:34: trailing whitespace. -+ (void)patterns;  -tests/test_m2_contracts.c:35: trailing whitespace. -+  -tests/test_m2_contracts.c:36: trailing whitespace. -+ if (result == NULL) {  -tests/test_m2_contracts.c:37: trailing whitespace. -+ return CAMEFF_STATUS_INVALID_ARGUMENT;  -tests/test_m2_contracts.c:38: trailing whitespace. -+ }  -tests/test_m2_contracts.c:39: trailing whitespace. -+  -tests/test_m2_contracts.c:40: trailing whitespace. -+ (void)memset(result, 0, sizeof(*result));  -tests/test_m2_contracts.c:41: trailing whitespace. -+ result->status = CAMEFF_EXPERT_OK;  -tests/test_m2_contracts.c:42: trailing whitespace. -+ result->applicability = 1.0;  -tests/test_m2_contracts.c:43: trailing whitespace. -+ result->confidence = 1.0;  -tests/test_m2_contracts.c:44: trailing whitespace. -+ return CAMEFF_STATUS_OK;  -tests/test_m2_contracts.c:45: trailing whitespace. -+}  -tests/test_m2_contracts.c:46: trailing whitespace. -+  -tests/test_m2_contracts.c:47: trailing whitespace. -+int main(void) {  -tests/test_m2_contracts.c:48: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_m2_contracts.c:49: trailing whitespace. -+ cameff_pattern_result_t patterns;  -tests/test_m2_contracts.c:50: trailing whitespace. -+ cameff_expert_t expert;  -tests/test_m2_contracts.c:51: trailing whitespace. -+ cameff_expert_result_t result;  -tests/test_m2_contracts.c:52: trailing whitespace. -+ cameff_multi_expert_result_t fused;  -tests/test_m2_contracts.c:53: trailing whitespace. -+  -tests/test_m2_contracts.c:54: trailing whitespace. -+ (void)memset(®ion, 0, sizeof(region));  -tests/test_m2_contracts.c:55: trailing whitespace. -+ (void)memset(&patterns, 0, sizeof(patterns));  -tests/test_m2_contracts.c:56: trailing whitespace. -+ (void)memset(&result, 0, sizeof(result));  -tests/test_m2_contracts.c:57: trailing whitespace. -+ (void)memset(&fused, 0, sizeof(fused));  -tests/test_m2_contracts.c:58: trailing whitespace. -+  -tests/test_m2_contracts.c:59: trailing whitespace. -+ region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_m2_contracts.c:60: trailing whitespace. -+ region.subduction_affinity = 1.0;  -tests/test_m2_contracts.c:61: trailing whitespace. -+ patterns.count = CAMEFF_PATTERN_COUNT;  -tests/test_m2_contracts.c:62: trailing whitespace. -+ patterns.dominant_pattern = CAMEFF_PATTERN_SUBDUCTION_PREPARATION;  -tests/test_m2_contracts.c:63: trailing whitespace. -+  -tests/test_m2_contracts.c:64: trailing whitespace. -+ expert = (cameff_expert_t){  -tests/test_m2_contracts.c:65: trailing whitespace. -+ "contract-test",  -tests/test_m2_contracts.c:66: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION,  -tests/test_m2_contracts.c:67: trailing whitespace. -+ test_applicability,  -tests/test_m2_contracts.c:68: trailing whitespace. -+ test_evaluate  -tests/test_m2_contracts.c:69: trailing whitespace. -+ };  -tests/test_m2_contracts.c:70: trailing whitespace. -+  -tests/test_m2_contracts.c:71: trailing whitespace. -+ CHECK(CAMEFF_PATTERN_COUNT == 7U);  -tests/test_m2_contracts.c:72: trailing whitespace. -+ CHECK(CAMEFF_MAX_EXPERTS >= 4U);  -tests/test_m2_contracts.c:73: trailing whitespace. -+ CHECK(region.tectonic_setting == CAMEFF_TECTONIC_SUBDUCTION);  -tests/test_m2_contracts.c:74: trailing whitespace. -+ CHECK(patterns.count == CAMEFF_PATTERN_COUNT);  -tests/test_m2_contracts.c:75: trailing whitespace. -+ CHECK(expert.applicability(NULL, ®ion, &patterns) == 1.0);  -tests/test_m2_contracts.c:76: trailing whitespace. -+ CHECK(expert.evaluate(NULL, NULL, ®ion, &patterns, &result) == CAMEFF_STATUS_OK);  -tests/test_m2_contracts.c:77: trailing whitespace. -+ CHECK(result.status == CAMEFF_EXPERT_OK);  -tests/test_m2_contracts.c:78: trailing whitespace. -+  -tests/test_m2_contracts.c:79: trailing whitespace. -+ fused.dominant_pattern = patterns.dominant_pattern;  -tests/test_m2_contracts.c:80: trailing whitespace. -+ fused.decision = CAMEFF_DECISION_INSUFFICIENT_DATA;  -tests/test_m2_contracts.c:81: trailing whitespace. -+ CHECK(fused.dominant_pattern == CAMEFF_PATTERN_SUBDUCTION_PREPARATION);  -tests/test_m2_contracts.c:82: trailing whitespace. -+  -tests/test_m2_contracts.c:83: trailing whitespace. -+ puts("milestone 2 contract tests passed");  -tests/test_m2_contracts.c:84: trailing whitespace. -+ return 0;  -tests/test_m2_contracts.c:85: trailing whitespace. -+}  -tests/test_pattern.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_pattern.c:2: trailing whitespace. -+  -tests/test_pattern.c:3: trailing whitespace. -+#include   -tests/test_pattern.c:4: trailing whitespace. -+#include   -tests/test_pattern.c:5: trailing whitespace. -+#include   -tests/test_pattern.c:6: trailing whitespace. -+  -tests/test_pattern.c:7: trailing whitespace. -+#define TEST_TOLERANCE 1e-12  -tests/test_pattern.c:8: trailing whitespace. -+  -tests/test_pattern.c:9: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_pattern.c:10: trailing whitespace. -+ if (!(condition)) { \  -tests/test_pattern.c:11: trailing whitespace. -+ fprintf(stderr, "check failed: %s at line %d\n", \  -tests/test_pattern.c:12: trailing whitespace. -+ #condition, __LINE__); \  -tests/test_pattern.c:13: trailing whitespace. -+ return 1; \  -tests/test_pattern.c:14: trailing whitespace. -+ } \  -tests/test_pattern.c:15: trailing whitespace. -+} while (0)  -tests/test_pattern.c:16: trailing whitespace. -+  -tests/test_pattern.c:17: trailing whitespace. -+#define CHECK_CLOSE(actual, expected, tolerance) do { \  -tests/test_pattern.c:18: trailing whitespace. -+ if (fabs((actual) - (expected)) > (tolerance)) { \  -tests/test_pattern.c:19: trailing whitespace. -+ fprintf(stderr, \  -tests/test_pattern.c:20: trailing whitespace. -+ "check failed: %s ~= %s at line %d\n", \  -tests/test_pattern.c:21: trailing whitespace. -+ #actual, #expected, __LINE__); \  -tests/test_pattern.c:22: trailing whitespace. -+ return 1; \  -tests/test_pattern.c:23: trailing whitespace. -+ } \  -tests/test_pattern.c:24: trailing whitespace. -+} while (0)  -tests/test_pattern.c:25: trailing whitespace. -+  -tests/test_pattern.c:26: trailing whitespace. -+static void initialize_frame(  -tests/test_pattern.c:27: trailing whitespace. -+ cameff_signal_frame_t *frame,  -tests/test_pattern.c:28: trailing whitespace. -+ double value,  -tests/test_pattern.c:29: trailing whitespace. -+ double confidence  -tests/test_pattern.c:30: trailing whitespace. -+) {  -tests/test_pattern.c:31: trailing whitespace. -+ size_t i;  -tests/test_pattern.c:32: trailing whitespace. -+  -tests/test_pattern.c:33: trailing whitespace. -+ (void)memset(frame, 0, sizeof(*frame));  -tests/test_pattern.c:34: trailing whitespace. -+  -tests/test_pattern.c:35: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -tests/test_pattern.c:36: trailing whitespace. -+ frame->signals[i].value = value;  -tests/test_pattern.c:37: trailing whitespace. -+ frame->signals[i].confidence = confidence;  -tests/test_pattern.c:38: trailing whitespace. -+ frame->signals[i].supporting_events = 30U;  -tests/test_pattern.c:39: trailing whitespace. -+ frame->signals[i].available = 1;  -tests/test_pattern.c:40: trailing whitespace. -+ }  -tests/test_pattern.c:41: trailing whitespace. -+  -tests/test_pattern.c:42: trailing whitespace. -+ frame->selected_event_count = 30U;  -tests/test_pattern.c:43: trailing whitespace. -+ frame->data_confidence = confidence;  -tests/test_pattern.c:44: trailing whitespace. -+}  -tests/test_pattern.c:45: trailing whitespace. -+  -tests/test_pattern.c:46: trailing whitespace. -+static void initialize_region(  -tests/test_pattern.c:47: trailing whitespace. -+ cameff_region_profile_t *region  -tests/test_pattern.c:48: trailing whitespace. -+) {  -tests/test_pattern.c:49: trailing whitespace. -+ (void)memset(region, 0, sizeof(*region));  -tests/test_pattern.c:50: trailing whitespace. -+  -tests/test_pattern.c:51: trailing whitespace. -+ region->tectonic_setting = CAMEFF_TECTONIC_UNKNOWN;  -tests/test_pattern.c:52: trailing whitespace. -+ region->fault_map_confidence = 0.80;  -tests/test_pattern.c:53: trailing whitespace. -+ region->catalog_completeness = 0.90;  -tests/test_pattern.c:54: trailing whitespace. -+ region->station_coverage = 0.90;  -tests/test_pattern.c:55: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -tests/test_pattern.c:56: trailing whitespace. -+}  -tests/test_pattern.c:57: trailing whitespace. -+  -tests/test_pattern.c:58: trailing whitespace. -+static int test_memberships_are_normalized(void) {  -tests/test_pattern.c:59: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_pattern.c:60: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_pattern.c:61: trailing whitespace. -+ cameff_pattern_result_t result;  -tests/test_pattern.c:62: trailing whitespace. -+ cameff_status_t status;  -tests/test_pattern.c:63: trailing whitespace. -+ double total;  -tests/test_pattern.c:64: trailing whitespace. -+ size_t i;  -tests/test_pattern.c:65: trailing whitespace. -+  -tests/test_pattern.c:66: trailing whitespace. -+ initialize_frame(&frame, 0.50, 0.80);  -tests/test_pattern.c:67: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:68: trailing whitespace. -+  -tests/test_pattern.c:69: trailing whitespace. -+ region.subduction_affinity = 1.0;  -tests/test_pattern.c:70: trailing whitespace. -+ region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_pattern.c:71: trailing whitespace. -+  -tests/test_pattern.c:72: trailing whitespace. -+ status = cameff_classify_patterns(  -tests/test_pattern.c:73: trailing whitespace. -+ &frame,  -tests/test_pattern.c:74: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:75: trailing whitespace. -+ &result  -tests/test_pattern.c:76: trailing whitespace. -+ );  -tests/test_pattern.c:77: trailing whitespace. -+  -tests/test_pattern.c:78: trailing whitespace. -+ CHECK(status == CAMEFF_STATUS_OK);  -tests/test_pattern.c:79: trailing whitespace. -+ CHECK(result.count == CAMEFF_PATTERN_COUNT);  -tests/test_pattern.c:80: trailing whitespace. -+  -tests/test_pattern.c:81: trailing whitespace. -+ total = 0.0;  -tests/test_pattern.c:82: trailing whitespace. -+  -tests/test_pattern.c:83: trailing whitespace. -+ for (i = 0U; i < result.count; ++i) {  -tests/test_pattern.c:84: trailing whitespace. -+ CHECK(result.scores[i].membership >= 0.0);  -tests/test_pattern.c:85: trailing whitespace. -+ CHECK(result.scores[i].membership <= 1.0);  -tests/test_pattern.c:86: trailing whitespace. -+ CHECK(result.scores[i].confidence >= 0.0);  -tests/test_pattern.c:87: trailing whitespace. -+ CHECK(result.scores[i].confidence <= 1.0);  -tests/test_pattern.c:88: trailing whitespace. -+  -tests/test_pattern.c:89: trailing whitespace. -+ total += result.scores[i].membership;  -tests/test_pattern.c:90: trailing whitespace. -+ }  -tests/test_pattern.c:91: trailing whitespace. -+  -tests/test_pattern.c:92: trailing whitespace. -+ CHECK_CLOSE(total, 1.0, TEST_TOLERANCE);  -tests/test_pattern.c:93: trailing whitespace. -+  -tests/test_pattern.c:94: trailing whitespace. -+ return 0;  -tests/test_pattern.c:95: trailing whitespace. -+}  -tests/test_pattern.c:96: trailing whitespace. -+  -tests/test_pattern.c:97: trailing whitespace. -+static int test_quiet_signals_favor_background(void) {  -tests/test_pattern.c:98: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_pattern.c:99: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_pattern.c:100: trailing whitespace. -+ cameff_pattern_result_t result;  -tests/test_pattern.c:101: trailing whitespace. -+  -tests/test_pattern.c:102: trailing whitespace. -+ initialize_frame(&frame, 0.0, 1.0);  -tests/test_pattern.c:103: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:104: trailing whitespace. -+  -tests/test_pattern.c:105: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:106: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:107: trailing whitespace. -+ &frame,  -tests/test_pattern.c:108: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:109: trailing whitespace. -+ &result  -tests/test_pattern.c:110: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_pattern.c:111: trailing whitespace. -+ );  -tests/test_pattern.c:112: trailing whitespace. -+  -tests/test_pattern.c:113: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:114: trailing whitespace. -+ result.dominant_pattern ==  -tests/test_pattern.c:115: trailing whitespace. -+ CAMEFF_PATTERN_BACKGROUND  -tests/test_pattern.c:116: trailing whitespace. -+ );  -tests/test_pattern.c:117: trailing whitespace. -+  -tests/test_pattern.c:118: trailing whitespace. -+ return 0;  -tests/test_pattern.c:119: trailing whitespace. -+}  -tests/test_pattern.c:120: trailing whitespace. -+  -tests/test_pattern.c:121: trailing whitespace. -+static int test_subduction_profile_favors_subduction(void) {  -tests/test_pattern.c:122: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_pattern.c:123: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_pattern.c:124: trailing whitespace. -+ cameff_pattern_result_t result;  -tests/test_pattern.c:125: trailing whitespace. -+  -tests/test_pattern.c:126: trailing whitespace. -+ initialize_frame(&frame, 0.75, 0.90);  -tests/test_pattern.c:127: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:128: trailing whitespace. -+  -tests/test_pattern.c:129: trailing whitespace. -+ region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_pattern.c:130: trailing whitespace. -+ region.subduction_affinity = 1.0;  -tests/test_pattern.c:131: trailing whitespace. -+  -tests/test_pattern.c:132: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:133: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:134: trailing whitespace. -+ &frame,  -tests/test_pattern.c:135: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:136: trailing whitespace. -+ &result  -tests/test_pattern.c:137: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_pattern.c:138: trailing whitespace. -+ );  -tests/test_pattern.c:139: trailing whitespace. -+  -tests/test_pattern.c:140: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:141: trailing whitespace. -+ result.scores[  -tests/test_pattern.c:142: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_pattern.c:143: trailing whitespace. -+ ].membership >  -tests/test_pattern.c:144: trailing whitespace. -+ result.scores[  -tests/test_pattern.c:145: trailing whitespace. -+ CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY  -tests/test_pattern.c:146: trailing whitespace. -+ ].membership  -tests/test_pattern.c:147: trailing whitespace. -+ );  -tests/test_pattern.c:148: trailing whitespace. -+  -tests/test_pattern.c:149: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:150: trailing whitespace. -+ result.scores[  -tests/test_pattern.c:151: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_pattern.c:152: trailing whitespace. -+ ].membership >  -tests/test_pattern.c:153: trailing whitespace. -+ result.scores[  -tests/test_pattern.c:154: trailing whitespace. -+ CAMEFF_PATTERN_VOLCANIC_UNREST  -tests/test_pattern.c:155: trailing whitespace. -+ ].membership  -tests/test_pattern.c:156: trailing whitespace. -+ );  -tests/test_pattern.c:157: trailing whitespace. -+  -tests/test_pattern.c:158: trailing whitespace. -+ return 0;  -tests/test_pattern.c:159: trailing whitespace. -+}  -tests/test_pattern.c:160: trailing whitespace. -+  -tests/test_pattern.c:161: trailing whitespace. -+static int test_crustal_profile_favors_crustal_pattern(void) {  -tests/test_pattern.c:162: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_pattern.c:163: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_pattern.c:164: trailing whitespace. -+ cameff_pattern_result_t result;  -tests/test_pattern.c:165: trailing whitespace. -+  -tests/test_pattern.c:166: trailing whitespace. -+ initialize_frame(&frame, 0.70, 0.90);  -tests/test_pattern.c:167: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:168: trailing whitespace. -+  -tests/test_pattern.c:169: trailing whitespace. -+ region.tectonic_setting = CAMEFF_TECTONIC_CRUSTAL;  -tests/test_pattern.c:170: trailing whitespace. -+ region.crustal_fault_affinity = 1.0;  -tests/test_pattern.c:171: trailing whitespace. -+ region.fault_map_confidence = 0.25;  -tests/test_pattern.c:172: trailing whitespace. -+  -tests/test_pattern.c:173: trailing whitespace. -+ frame.signals[  -tests/test_pattern.c:174: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -tests/test_pattern.c:175: trailing whitespace. -+ ].value = 1.0;  -tests/test_pattern.c:176: trailing whitespace. -+  -tests/test_pattern.c:177: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:178: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:179: trailing whitespace. -+ &frame,  -tests/test_pattern.c:180: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:181: trailing whitespace. -+ &result  -tests/test_pattern.c:182: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_pattern.c:183: trailing whitespace. -+ );  -tests/test_pattern.c:184: trailing whitespace. -+  -tests/test_pattern.c:185: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:186: trailing whitespace. -+ result.scores[  -tests/test_pattern.c:187: trailing whitespace. -+ CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION  -tests/test_pattern.c:188: trailing whitespace. -+ ].membership >  -tests/test_pattern.c:189: trailing whitespace. -+ result.scores[  -tests/test_pattern.c:190: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_pattern.c:191: trailing whitespace. -+ ].membership  -tests/test_pattern.c:192: trailing whitespace. -+ );  -tests/test_pattern.c:193: trailing whitespace. -+  -tests/test_pattern.c:194: trailing whitespace. -+ return 0;  -tests/test_pattern.c:195: trailing whitespace. -+}  -tests/test_pattern.c:196: trailing whitespace. -+  -tests/test_pattern.c:197: trailing whitespace. -+static int test_low_quality_increases_unknown(void) {  -tests/test_pattern.c:198: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_pattern.c:199: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_pattern.c:200: trailing whitespace. -+ cameff_pattern_result_t low_quality;  -tests/test_pattern.c:201: trailing whitespace. -+ cameff_pattern_result_t high_quality;  -tests/test_pattern.c:202: trailing whitespace. -+  -tests/test_pattern.c:203: trailing whitespace. -+ initialize_frame(&frame, 0.40, 0.20);  -tests/test_pattern.c:204: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:205: trailing whitespace. -+  -tests/test_pattern.c:206: trailing whitespace. -+ region.catalog_completeness = 0.10;  -tests/test_pattern.c:207: trailing whitespace. -+ region.station_coverage = 0.10;  -tests/test_pattern.c:208: trailing whitespace. -+ region.regional_prior_confidence = 0.10;  -tests/test_pattern.c:209: trailing whitespace. -+  -tests/test_pattern.c:210: trailing whitespace. -+ frame.data_confidence = 0.10;  -tests/test_pattern.c:211: trailing whitespace. -+ frame.signals[  -tests/test_pattern.c:212: trailing whitespace. -+ CAMEFF_SIGNAL_CATALOG_COMPLETENESS  -tests/test_pattern.c:213: trailing whitespace. -+ ].value = 0.10;  -tests/test_pattern.c:214: trailing whitespace. -+  -tests/test_pattern.c:215: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:216: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:217: trailing whitespace. -+ &frame,  -tests/test_pattern.c:218: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:219: trailing whitespace. -+ &low_quality  -tests/test_pattern.c:220: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_pattern.c:221: trailing whitespace. -+ );  -tests/test_pattern.c:222: trailing whitespace. -+  -tests/test_pattern.c:223: trailing whitespace. -+ initialize_frame(&frame, 0.40, 0.90);  -tests/test_pattern.c:224: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:225: trailing whitespace. -+  -tests/test_pattern.c:226: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:227: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:228: trailing whitespace. -+ &frame,  -tests/test_pattern.c:229: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:230: trailing whitespace. -+ &high_quality  -tests/test_pattern.c:231: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_pattern.c:232: trailing whitespace. -+ );  -tests/test_pattern.c:233: trailing whitespace. -+  -tests/test_pattern.c:234: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:235: trailing whitespace. -+ low_quality.scores[  -tests/test_pattern.c:236: trailing whitespace. -+ CAMEFF_PATTERN_UNKNOWN  -tests/test_pattern.c:237: trailing whitespace. -+ ].membership >  -tests/test_pattern.c:238: trailing whitespace. -+ high_quality.scores[  -tests/test_pattern.c:239: trailing whitespace. -+ CAMEFF_PATTERN_UNKNOWN  -tests/test_pattern.c:240: trailing whitespace. -+ ].membership  -tests/test_pattern.c:241: trailing whitespace. -+ );  -tests/test_pattern.c:242: trailing whitespace. -+  -tests/test_pattern.c:243: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:244: trailing whitespace. -+ low_quality.classification_confidence <  -tests/test_pattern.c:245: trailing whitespace. -+ high_quality.classification_confidence  -tests/test_pattern.c:246: trailing whitespace. -+ );  -tests/test_pattern.c:247: trailing whitespace. -+  -tests/test_pattern.c:248: trailing whitespace. -+ return 0;  -tests/test_pattern.c:249: trailing whitespace. -+}  -tests/test_pattern.c:250: trailing whitespace. -+  -tests/test_pattern.c:251: trailing whitespace. -+static int test_invalid_arguments(void) {  -tests/test_pattern.c:252: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_pattern.c:253: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_pattern.c:254: trailing whitespace. -+ cameff_pattern_result_t result;  -tests/test_pattern.c:255: trailing whitespace. -+  -tests/test_pattern.c:256: trailing whitespace. -+ initialize_frame(&frame, 0.50, 0.80);  -tests/test_pattern.c:257: trailing whitespace. -+ initialize_region(®ion);  -tests/test_pattern.c:258: trailing whitespace. -+  -tests/test_pattern.c:259: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:260: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:261: trailing whitespace. -+ NULL,  -tests/test_pattern.c:262: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:263: trailing whitespace. -+ &result  -tests/test_pattern.c:264: trailing whitespace. -+ ) == CAMEFF_STATUS_INVALID_ARGUMENT  -tests/test_pattern.c:265: trailing whitespace. -+ );  -tests/test_pattern.c:266: trailing whitespace. -+  -tests/test_pattern.c:267: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:268: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:269: trailing whitespace. -+ &frame,  -tests/test_pattern.c:270: trailing whitespace. -+ NULL,  -tests/test_pattern.c:271: trailing whitespace. -+ &result  -tests/test_pattern.c:272: trailing whitespace. -+ ) == CAMEFF_STATUS_INVALID_ARGUMENT  -tests/test_pattern.c:273: trailing whitespace. -+ );  -tests/test_pattern.c:274: trailing whitespace. -+  -tests/test_pattern.c:275: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:276: trailing whitespace. -+ cameff_classify_patterns(  -tests/test_pattern.c:277: trailing whitespace. -+ &frame,  -tests/test_pattern.c:278: trailing whitespace. -+ ®ion,  -tests/test_pattern.c:279: trailing whitespace. -+ NULL  -tests/test_pattern.c:280: trailing whitespace. -+ ) == CAMEFF_STATUS_INVALID_ARGUMENT  -tests/test_pattern.c:281: trailing whitespace. -+ );  -tests/test_pattern.c:282: trailing whitespace. -+  -tests/test_pattern.c:283: trailing whitespace. -+ return 0;  -tests/test_pattern.c:284: trailing whitespace. -+}  -tests/test_pattern.c:285: trailing whitespace. -+  -tests/test_pattern.c:286: trailing whitespace. -+int main(void) {  -tests/test_pattern.c:287: trailing whitespace. -+ CHECK(test_memberships_are_normalized() == 0);  -tests/test_pattern.c:288: trailing whitespace. -+ CHECK(test_quiet_signals_favor_background() == 0);  -tests/test_pattern.c:289: trailing whitespace. -+ CHECK(test_subduction_profile_favors_subduction() == 0);  -tests/test_pattern.c:290: trailing whitespace. -+ CHECK(test_crustal_profile_favors_crustal_pattern() == 0);  -tests/test_pattern.c:291: trailing whitespace. -+ CHECK(test_low_quality_increases_unknown() == 0);  -tests/test_pattern.c:292: trailing whitespace. -+ CHECK(test_invalid_arguments() == 0);  -tests/test_pattern.c:293: trailing whitespace. -+  -tests/test_pattern.c:294: trailing whitespace. -+ CHECK(  -tests/test_pattern.c:295: trailing whitespace. -+ strcmp(  -tests/test_pattern.c:296: trailing whitespace. -+ cameff_pattern_name(  -tests/test_pattern.c:297: trailing whitespace. -+ CAMEFF_PATTERN_SEISMIC_CASCADE  -tests/test_pattern.c:298: trailing whitespace. -+ ),  -tests/test_pattern.c:299: trailing whitespace. -+ "SEISMIC_CASCADE"  -tests/test_pattern.c:300: trailing whitespace. -+ ) == 0  -tests/test_pattern.c:301: trailing whitespace. -+ );  -tests/test_pattern.c:302: trailing whitespace. -+  -tests/test_pattern.c:303: trailing whitespace. -+ puts("pattern classifier tests passed");  -tests/test_pattern.c:304: trailing whitespace. -+ return 0;  -tests/test_specialized_experts.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_specialized_experts.c:2: trailing whitespace. -+  -tests/test_specialized_experts.c:3: trailing whitespace. -+#include   -tests/test_specialized_experts.c:4: trailing whitespace. -+#include   -tests/test_specialized_experts.c:5: trailing whitespace. -+#include   -tests/test_specialized_experts.c:6: trailing whitespace. -+  -tests/test_specialized_experts.c:7: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_specialized_experts.c:8: trailing whitespace. -+ if (!(condition)) { \  -tests/test_specialized_experts.c:9: trailing whitespace. -+ fprintf(stderr, "check failed: %s at line %d\n", \  -tests/test_specialized_experts.c:10: trailing whitespace. -+ #condition, __LINE__); \  -tests/test_specialized_experts.c:11: trailing whitespace. -+ return 1; \  -tests/test_specialized_experts.c:12: trailing whitespace. -+ } \  -tests/test_specialized_experts.c:13: trailing whitespace. -+} while (0)  -tests/test_specialized_experts.c:14: trailing whitespace. -+  -tests/test_specialized_experts.c:15: trailing whitespace. -+static void initialize_frame(  -tests/test_specialized_experts.c:16: trailing whitespace. -+ cameff_signal_frame_t *frame,  -tests/test_specialized_experts.c:17: trailing whitespace. -+ double value  -tests/test_specialized_experts.c:18: trailing whitespace. -+) {  -tests/test_specialized_experts.c:19: trailing whitespace. -+ size_t i;  -tests/test_specialized_experts.c:20: trailing whitespace. -+  -tests/test_specialized_experts.c:21: trailing whitespace. -+ (void)memset(frame, 0, sizeof(*frame));  -tests/test_specialized_experts.c:22: trailing whitespace. -+  -tests/test_specialized_experts.c:23: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -tests/test_specialized_experts.c:24: trailing whitespace. -+ frame->signals[i].value = value;  -tests/test_specialized_experts.c:25: trailing whitespace. -+ frame->signals[i].confidence = 0.90;  -tests/test_specialized_experts.c:26: trailing whitespace. -+ frame->signals[i].supporting_events = 30U;  -tests/test_specialized_experts.c:27: trailing whitespace. -+ frame->signals[i].available = 1;  -tests/test_specialized_experts.c:28: trailing whitespace. -+ }  -tests/test_specialized_experts.c:29: trailing whitespace. -+  -tests/test_specialized_experts.c:30: trailing whitespace. -+ frame->selected_event_count = 30U;  -tests/test_specialized_experts.c:31: trailing whitespace. -+ frame->data_confidence = 0.90;  -tests/test_specialized_experts.c:32: trailing whitespace. -+}  -tests/test_specialized_experts.c:33: trailing whitespace. -+  -tests/test_specialized_experts.c:34: trailing whitespace. -+static void initialize_region(  -tests/test_specialized_experts.c:35: trailing whitespace. -+ cameff_region_profile_t *region  -tests/test_specialized_experts.c:36: trailing whitespace. -+) {  -tests/test_specialized_experts.c:37: trailing whitespace. -+ (void)memset(region, 0, sizeof(*region));  -tests/test_specialized_experts.c:38: trailing whitespace. -+  -tests/test_specialized_experts.c:39: trailing whitespace. -+ region->fault_map_confidence = 0.80;  -tests/test_specialized_experts.c:40: trailing whitespace. -+ region->catalog_completeness = 0.90;  -tests/test_specialized_experts.c:41: trailing whitespace. -+ region->station_coverage = 0.90;  -tests/test_specialized_experts.c:42: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -tests/test_specialized_experts.c:43: trailing whitespace. -+}  -tests/test_specialized_experts.c:44: trailing whitespace. -+  -tests/test_specialized_experts.c:45: trailing whitespace. -+static int evaluate_expert(  -tests/test_specialized_experts.c:46: trailing whitespace. -+ const cameff_expert_t *expert,  -tests/test_specialized_experts.c:47: trailing whitespace. -+ cameff_signal_frame_t *frame,  -tests/test_specialized_experts.c:48: trailing whitespace. -+ cameff_region_profile_t *region,  -tests/test_specialized_experts.c:49: trailing whitespace. -+ cameff_expert_result_t *result  -tests/test_specialized_experts.c:50: trailing whitespace. -+) {  -tests/test_specialized_experts.c:51: trailing whitespace. -+ cameff_config_t config;  -tests/test_specialized_experts.c:52: trailing whitespace. -+  -tests/test_specialized_experts.c:53: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_specialized_experts.c:54: trailing whitespace. -+  -tests/test_specialized_experts.c:55: trailing whitespace. -+ CHECK(expert != NULL);  -tests/test_specialized_experts.c:56: trailing whitespace. -+ CHECK(expert->applicability != NULL);  -tests/test_specialized_experts.c:57: trailing whitespace. -+ CHECK(expert->evaluate != NULL);  -tests/test_specialized_experts.c:58: trailing whitespace. -+  -tests/test_specialized_experts.c:59: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:60: trailing whitespace. -+ expert->evaluate(  -tests/test_specialized_experts.c:61: trailing whitespace. -+ frame,  -tests/test_specialized_experts.c:62: trailing whitespace. -+ &config,  -tests/test_specialized_experts.c:63: trailing whitespace. -+ region,  -tests/test_specialized_experts.c:64: trailing whitespace. -+ NULL,  -tests/test_specialized_experts.c:65: trailing whitespace. -+ result  -tests/test_specialized_experts.c:66: trailing whitespace. -+ ) == CAMEFF_STATUS_OK  -tests/test_specialized_experts.c:67: trailing whitespace. -+ );  -tests/test_specialized_experts.c:68: trailing whitespace. -+  -tests/test_specialized_experts.c:69: trailing whitespace. -+ CHECK(result->hazard_evidence >= 0.0);  -tests/test_specialized_experts.c:70: trailing whitespace. -+ CHECK(result->hazard_evidence <= 1.0);  -tests/test_specialized_experts.c:71: trailing whitespace. -+ CHECK(result->preparation_evidence >= 0.0);  -tests/test_specialized_experts.c:72: trailing whitespace. -+ CHECK(result->preparation_evidence <= 1.0);  -tests/test_specialized_experts.c:73: trailing whitespace. -+ CHECK(result->cascade_evidence >= 0.0);  -tests/test_specialized_experts.c:74: trailing whitespace. -+ CHECK(result->cascade_evidence <= 1.0);  -tests/test_specialized_experts.c:75: trailing whitespace. -+ CHECK(result->confidence >= 0.0);  -tests/test_specialized_experts.c:76: trailing whitespace. -+ CHECK(result->confidence <= 1.0);  -tests/test_specialized_experts.c:77: trailing whitespace. -+  -tests/test_specialized_experts.c:78: trailing whitespace. -+ return 0;  -tests/test_specialized_experts.c:79: trailing whitespace. -+}  -tests/test_specialized_experts.c:80: trailing whitespace. -+  -tests/test_specialized_experts.c:81: trailing whitespace. -+static int test_subduction_expert(void) {  -tests/test_specialized_experts.c:82: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_specialized_experts.c:83: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_specialized_experts.c:84: trailing whitespace. -+ cameff_expert_result_t result;  -tests/test_specialized_experts.c:85: trailing whitespace. -+ const cameff_expert_t *expert;  -tests/test_specialized_experts.c:86: trailing whitespace. -+  -tests/test_specialized_experts.c:87: trailing whitespace. -+ initialize_frame(&frame, 0.80);  -tests/test_specialized_experts.c:88: trailing whitespace. -+ initialize_region(®ion);  -tests/test_specialized_experts.c:89: trailing whitespace. -+  -tests/test_specialized_experts.c:90: trailing whitespace. -+ region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_specialized_experts.c:91: trailing whitespace. -+ region.subduction_affinity = 1.0;  -tests/test_specialized_experts.c:92: trailing whitespace. -+  -tests/test_specialized_experts.c:93: trailing whitespace. -+ expert = cameff_subduction_expert();  -tests/test_specialized_experts.c:94: trailing whitespace. -+  -tests/test_specialized_experts.c:95: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:96: trailing whitespace. -+ expert->applicability(  -tests/test_specialized_experts.c:97: trailing whitespace. -+ &frame,  -tests/test_specialized_experts.c:98: trailing whitespace. -+ ®ion,  -tests/test_specialized_experts.c:99: trailing whitespace. -+ NULL  -tests/test_specialized_experts.c:100: trailing whitespace. -+ ) > 0.80  -tests/test_specialized_experts.c:101: trailing whitespace. -+ );  -tests/test_specialized_experts.c:102: trailing whitespace. -+  -tests/test_specialized_experts.c:103: trailing whitespace. -+ CHECK(evaluate_expert(expert, &frame, ®ion, &result) == 0);  -tests/test_specialized_experts.c:104: trailing whitespace. -+ CHECK(result.status == CAMEFF_EXPERT_OK);  -tests/test_specialized_experts.c:105: trailing whitespace. -+ CHECK(result.preparation_evidence > 0.50);  -tests/test_specialized_experts.c:106: trailing whitespace. -+ CHECK(result.cascade_evidence == 0.0);  -tests/test_specialized_experts.c:107: trailing whitespace. -+  -tests/test_specialized_experts.c:108: trailing whitespace. -+ return 0;  -tests/test_specialized_experts.c:109: trailing whitespace. -+}  -tests/test_specialized_experts.c:110: trailing whitespace. -+  -tests/test_specialized_experts.c:111: trailing whitespace. -+static int test_crustal_fault_uncertainty_is_guarded(void) {  -tests/test_specialized_experts.c:112: trailing whitespace. -+ cameff_signal_frame_t quiet_frame;  -tests/test_specialized_experts.c:113: trailing whitespace. -+ cameff_signal_frame_t active_frame;  -tests/test_specialized_experts.c:114: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_specialized_experts.c:115: trailing whitespace. -+ cameff_expert_result_t quiet_result;  -tests/test_specialized_experts.c:116: trailing whitespace. -+ cameff_expert_result_t active_result;  -tests/test_specialized_experts.c:117: trailing whitespace. -+ const cameff_expert_t *expert;  -tests/test_specialized_experts.c:118: trailing whitespace. -+  -tests/test_specialized_experts.c:119: trailing whitespace. -+ initialize_frame(&quiet_frame, 0.0);  -tests/test_specialized_experts.c:120: trailing whitespace. -+ initialize_frame(&active_frame, 0.80);  -tests/test_specialized_experts.c:121: trailing whitespace. -+ initialize_region(®ion);  -tests/test_specialized_experts.c:122: trailing whitespace. -+  -tests/test_specialized_experts.c:123: trailing whitespace. -+ region.tectonic_setting = CAMEFF_TECTONIC_CRUSTAL;  -tests/test_specialized_experts.c:124: trailing whitespace. -+ region.crustal_fault_affinity = 0.70;  -tests/test_specialized_experts.c:125: trailing whitespace. -+ region.fault_map_confidence = 0.10;  -tests/test_specialized_experts.c:126: trailing whitespace. -+  -tests/test_specialized_experts.c:127: trailing whitespace. -+ expert = cameff_crustal_fault_expert();  -tests/test_specialized_experts.c:128: trailing whitespace. -+  -tests/test_specialized_experts.c:129: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:130: trailing whitespace. -+ evaluate_expert(  -tests/test_specialized_experts.c:131: trailing whitespace. -+ expert,  -tests/test_specialized_experts.c:132: trailing whitespace. -+ &quiet_frame,  -tests/test_specialized_experts.c:133: trailing whitespace. -+ ®ion,  -tests/test_specialized_experts.c:134: trailing whitespace. -+ &quiet_result  -tests/test_specialized_experts.c:135: trailing whitespace. -+ ) == 0  -tests/test_specialized_experts.c:136: trailing whitespace. -+ );  -tests/test_specialized_experts.c:137: trailing whitespace. -+  -tests/test_specialized_experts.c:138: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:139: trailing whitespace. -+ evaluate_expert(  -tests/test_specialized_experts.c:140: trailing whitespace. -+ expert,  -tests/test_specialized_experts.c:141: trailing whitespace. -+ &active_frame,  -tests/test_specialized_experts.c:142: trailing whitespace. -+ ®ion,  -tests/test_specialized_experts.c:143: trailing whitespace. -+ &active_result  -tests/test_specialized_experts.c:144: trailing whitespace. -+ ) == 0  -tests/test_specialized_experts.c:145: trailing whitespace. -+ );  -tests/test_specialized_experts.c:146: trailing whitespace. -+  -tests/test_specialized_experts.c:147: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:148: trailing whitespace. -+ active_result.preparation_evidence >  -tests/test_specialized_experts.c:149: trailing whitespace. -+ quiet_result.preparation_evidence  -tests/test_specialized_experts.c:150: trailing whitespace. -+ );  -tests/test_specialized_experts.c:151: trailing whitespace. -+  -tests/test_specialized_experts.c:152: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:153: trailing whitespace. -+ quiet_result.hazard_evidence < 0.45  -tests/test_specialized_experts.c:154: trailing whitespace. -+ );  -tests/test_specialized_experts.c:155: trailing whitespace. -+  -tests/test_specialized_experts.c:156: trailing whitespace. -+ return 0;  -tests/test_specialized_experts.c:157: trailing whitespace. -+}  -tests/test_specialized_experts.c:158: trailing whitespace. -+  -tests/test_specialized_experts.c:159: trailing whitespace. -+static int test_cascade_expert(void) {  -tests/test_specialized_experts.c:160: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_specialized_experts.c:161: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_specialized_experts.c:162: trailing whitespace. -+ cameff_expert_result_t result;  -tests/test_specialized_experts.c:163: trailing whitespace. -+ const cameff_expert_t *expert;  -tests/test_specialized_experts.c:164: trailing whitespace. -+  -tests/test_specialized_experts.c:165: trailing whitespace. -+ initialize_frame(&frame, 0.85);  -tests/test_specialized_experts.c:166: trailing whitespace. -+ initialize_region(®ion);  -tests/test_specialized_experts.c:167: trailing whitespace. -+  -tests/test_specialized_experts.c:168: trailing whitespace. -+ expert = cameff_cascade_expert();  -tests/test_specialized_experts.c:169: trailing whitespace. -+  -tests/test_specialized_experts.c:170: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:171: trailing whitespace. -+ expert->applicability(  -tests/test_specialized_experts.c:172: trailing whitespace. -+ &frame,  -tests/test_specialized_experts.c:173: trailing whitespace. -+ ®ion,  -tests/test_specialized_experts.c:174: trailing whitespace. -+ NULL  -tests/test_specialized_experts.c:175: trailing whitespace. -+ ) > 0.70  -tests/test_specialized_experts.c:176: trailing whitespace. -+ );  -tests/test_specialized_experts.c:177: trailing whitespace. -+  -tests/test_specialized_experts.c:178: trailing whitespace. -+ CHECK(evaluate_expert(expert, &frame, ®ion, &result) == 0);  -tests/test_specialized_experts.c:179: trailing whitespace. -+ CHECK(result.status == CAMEFF_EXPERT_OK);  -tests/test_specialized_experts.c:180: trailing whitespace. -+ CHECK(result.cascade_evidence > 0.60);  -tests/test_specialized_experts.c:181: trailing whitespace. -+ CHECK(  -tests/test_specialized_experts.c:182: trailing whitespace. -+ result.cascade_evidence >  -tests/test_specialized_experts.c:183: trailing whitespace. -+ result.preparation_evidence  -tests/test_specialized_experts.c:184: trailing whitespace. -+ );  -tests/test_specialized_experts.c:185: trailing whitespace. -+  -tests/test_specialized_experts.c:186: trailing whitespace. -+ return 0;  -tests/test_specialized_experts.c:187: trailing whitespace. -+}  -tests/test_specialized_experts.c:188: trailing whitespace. -+  -tests/test_specialized_experts.c:189: trailing whitespace. -+int main(void) {  -tests/test_specialized_experts.c:190: trailing whitespace. -+ CHECK(test_subduction_expert() == 0);  -tests/test_specialized_experts.c:191: trailing whitespace. -+ CHECK(test_crustal_fault_uncertainty_is_guarded() == 0);  -tests/test_specialized_experts.c:192: trailing whitespace. -+ CHECK(test_cascade_expert() == 0);  -tests/test_specialized_experts.c:193: trailing whitespace. -+  -tests/test_specialized_experts.c:194: trailing whitespace. -+ puts("specialized expert tests passed");  -tests/test_specialized_experts.c:195: trailing whitespace. -+ return 0;  -tests/test_structural_cases.c:1: trailing whitespace. -+#include "cameff/cameff.h"  -tests/test_structural_cases.c:2: trailing whitespace. -+  -tests/test_structural_cases.c:3: trailing whitespace. -+#include   -tests/test_structural_cases.c:4: trailing whitespace. -+#include   -tests/test_structural_cases.c:5: trailing whitespace. -+  -tests/test_structural_cases.c:6: trailing whitespace. -+#define CHECK(condition) do { \  -tests/test_structural_cases.c:7: trailing whitespace. -+ if (!(condition)) { \  -tests/test_structural_cases.c:8: trailing whitespace. -+ fprintf( \  -tests/test_structural_cases.c:9: trailing whitespace. -+ stderr, \  -tests/test_structural_cases.c:10: trailing whitespace. -+ "check failed: %s at line %d\n", \  -tests/test_structural_cases.c:11: trailing whitespace. -+ #condition, \  -tests/test_structural_cases.c:12: trailing whitespace. -+ __LINE__ \  -tests/test_structural_cases.c:13: trailing whitespace. -+ ); \  -tests/test_structural_cases.c:14: trailing whitespace. -+ return 1; \  -tests/test_structural_cases.c:15: trailing whitespace. -+ } \  -tests/test_structural_cases.c:16: trailing whitespace. -+} while (0)  -tests/test_structural_cases.c:17: trailing whitespace. -+  -tests/test_structural_cases.c:18: trailing whitespace. -+static void initialize_frame(  -tests/test_structural_cases.c:19: trailing whitespace. -+ cameff_signal_frame_t *frame,  -tests/test_structural_cases.c:20: trailing whitespace. -+ double activity,  -tests/test_structural_cases.c:21: trailing whitespace. -+ double acceleration,  -tests/test_structural_cases.c:22: trailing whitespace. -+ double concentration,  -tests/test_structural_cases.c:23: trailing whitespace. -+ double magnitude,  -tests/test_structural_cases.c:24: trailing whitespace. -+ double depth,  -tests/test_structural_cases.c:25: trailing whitespace. -+ double b_value,  -tests/test_structural_cases.c:26: trailing whitespace. -+ double completeness,  -tests/test_structural_cases.c:27: trailing whitespace. -+ double fault_map,  -tests/test_structural_cases.c:28: trailing whitespace. -+ double confidence  -tests/test_structural_cases.c:29: trailing whitespace. -+) {  -tests/test_structural_cases.c:30: trailing whitespace. -+ size_t i;  -tests/test_structural_cases.c:31: trailing whitespace. -+  -tests/test_structural_cases.c:32: trailing whitespace. -+ (void)memset(frame, 0, sizeof(*frame));  -tests/test_structural_cases.c:33: trailing whitespace. -+  -tests/test_structural_cases.c:34: trailing whitespace. -+ for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) {  -tests/test_structural_cases.c:35: trailing whitespace. -+ frame->signals[i].confidence = confidence;  -tests/test_structural_cases.c:36: trailing whitespace. -+ frame->signals[i].supporting_events = 50U;  -tests/test_structural_cases.c:37: trailing whitespace. -+ frame->signals[i].available = 1;  -tests/test_structural_cases.c:38: trailing whitespace. -+ }  -tests/test_structural_cases.c:39: trailing whitespace. -+  -tests/test_structural_cases.c:40: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:41: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -tests/test_structural_cases.c:42: trailing whitespace. -+ ].value = activity;  -tests/test_structural_cases.c:43: trailing whitespace. -+  -tests/test_structural_cases.c:44: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:45: trailing whitespace. -+ CAMEFF_SIGNAL_TEMPORAL_ACCELERATION  -tests/test_structural_cases.c:46: trailing whitespace. -+ ].value = acceleration;  -tests/test_structural_cases.c:47: trailing whitespace. -+  -tests/test_structural_cases.c:48: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:49: trailing whitespace. -+ CAMEFF_SIGNAL_SPATIAL_CONCENTRATION  -tests/test_structural_cases.c:50: trailing whitespace. -+ ].value = concentration;  -tests/test_structural_cases.c:51: trailing whitespace. -+  -tests/test_structural_cases.c:52: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:53: trailing whitespace. -+ CAMEFF_SIGNAL_MAGNITUDE_TREND  -tests/test_structural_cases.c:54: trailing whitespace. -+ ].value = magnitude;  -tests/test_structural_cases.c:55: trailing whitespace. -+  -tests/test_structural_cases.c:56: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:57: trailing whitespace. -+ CAMEFF_SIGNAL_DEPTH_MIGRATION  -tests/test_structural_cases.c:58: trailing whitespace. -+ ].value = depth;  -tests/test_structural_cases.c:59: trailing whitespace. -+  -tests/test_structural_cases.c:60: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:61: trailing whitespace. -+ CAMEFF_SIGNAL_B_VALUE_ANOMALY  -tests/test_structural_cases.c:62: trailing whitespace. -+ ].value = b_value;  -tests/test_structural_cases.c:63: trailing whitespace. -+  -tests/test_structural_cases.c:64: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:65: trailing whitespace. -+ CAMEFF_SIGNAL_CATALOG_COMPLETENESS  -tests/test_structural_cases.c:66: trailing whitespace. -+ ].value = completeness;  -tests/test_structural_cases.c:67: trailing whitespace. -+  -tests/test_structural_cases.c:68: trailing whitespace. -+ frame->signals[  -tests/test_structural_cases.c:69: trailing whitespace. -+ CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE  -tests/test_structural_cases.c:70: trailing whitespace. -+ ].value = fault_map;  -tests/test_structural_cases.c:71: trailing whitespace. -+  -tests/test_structural_cases.c:72: trailing whitespace. -+ frame->selected_event_count = 50U;  -tests/test_structural_cases.c:73: trailing whitespace. -+ frame->data_confidence = confidence;  -tests/test_structural_cases.c:74: trailing whitespace. -+}  -tests/test_structural_cases.c:75: trailing whitespace. -+  -tests/test_structural_cases.c:76: trailing whitespace. -+static void initialize_region(  -tests/test_structural_cases.c:77: trailing whitespace. -+ cameff_region_profile_t *region,  -tests/test_structural_cases.c:78: trailing whitespace. -+ const char *region_id  -tests/test_structural_cases.c:79: trailing whitespace. -+) {  -tests/test_structural_cases.c:80: trailing whitespace. -+ (void)memset(region, 0, sizeof(*region));  -tests/test_structural_cases.c:81: trailing whitespace. -+  -tests/test_structural_cases.c:82: trailing whitespace. -+ (void)snprintf(  -tests/test_structural_cases.c:83: trailing whitespace. -+ region->region_id,  -tests/test_structural_cases.c:84: trailing whitespace. -+ sizeof(region->region_id),  -tests/test_structural_cases.c:85: trailing whitespace. -+ "%s",  -tests/test_structural_cases.c:86: trailing whitespace. -+ region_id  -tests/test_structural_cases.c:87: trailing whitespace. -+ );  -tests/test_structural_cases.c:88: trailing whitespace. -+  -tests/test_structural_cases.c:89: trailing whitespace. -+ region->fault_map_confidence = 0.80;  -tests/test_structural_cases.c:90: trailing whitespace. -+ region->catalog_completeness = 0.90;  -tests/test_structural_cases.c:91: trailing whitespace. -+ region->station_coverage = 0.90;  -tests/test_structural_cases.c:92: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -tests/test_structural_cases.c:93: trailing whitespace. -+}  -tests/test_structural_cases.c:94: trailing whitespace. -+  -tests/test_structural_cases.c:95: trailing whitespace. -+static int find_expert(  -tests/test_structural_cases.c:96: trailing whitespace. -+ const cameff_evaluation_result_t *result,  -tests/test_structural_cases.c:97: trailing whitespace. -+ const char *expert_name  -tests/test_structural_cases.c:98: trailing whitespace. -+) {  -tests/test_structural_cases.c:99: trailing whitespace. -+ size_t i;  -tests/test_structural_cases.c:100: trailing whitespace. -+  -tests/test_structural_cases.c:101: trailing whitespace. -+ for (  -tests/test_structural_cases.c:102: trailing whitespace. -+ i = 0U;  -tests/test_structural_cases.c:103: trailing whitespace. -+ i < result->fusion.expert_result_count;  -tests/test_structural_cases.c:104: trailing whitespace. -+ ++i  -tests/test_structural_cases.c:105: trailing whitespace. -+ ) {  -tests/test_structural_cases.c:106: trailing whitespace. -+ if (strcmp(  -tests/test_structural_cases.c:107: trailing whitespace. -+ result->fusion  -tests/test_structural_cases.c:108: trailing whitespace. -+ .expert_results[i]  -tests/test_structural_cases.c:109: trailing whitespace. -+ .expert_name,  -tests/test_structural_cases.c:110: trailing whitespace. -+ expert_name  -tests/test_structural_cases.c:111: trailing whitespace. -+ ) == 0) {  -tests/test_structural_cases.c:112: trailing whitespace. -+ return (int)i;  -tests/test_structural_cases.c:113: trailing whitespace. -+ }  -tests/test_structural_cases.c:114: trailing whitespace. -+ }  -tests/test_structural_cases.c:115: trailing whitespace. -+  -tests/test_structural_cases.c:116: trailing whitespace. -+ return -1;  -tests/test_structural_cases.c:117: trailing whitespace. -+}  -tests/test_structural_cases.c:118: trailing whitespace. -+  -tests/test_structural_cases.c:119: trailing whitespace. -+static int evaluate_case(  -tests/test_structural_cases.c:120: trailing whitespace. -+ const cameff_signal_frame_t *frame,  -tests/test_structural_cases.c:121: trailing whitespace. -+ const cameff_region_profile_t *region,  -tests/test_structural_cases.c:122: trailing whitespace. -+ cameff_evaluation_result_t *result  -tests/test_structural_cases.c:123: trailing whitespace. -+) {  -tests/test_structural_cases.c:124: trailing whitespace. -+ cameff_config_t config;  -tests/test_structural_cases.c:125: trailing whitespace. -+ cameff_evaluation_options_t options;  -tests/test_structural_cases.c:126: trailing whitespace. -+  -tests/test_structural_cases.c:127: trailing whitespace. -+ cameff_config_default(&config);  -tests/test_structural_cases.c:128: trailing whitespace. -+ cameff_evaluation_options_default(&options);  -tests/test_structural_cases.c:129: trailing whitespace. -+  -tests/test_structural_cases.c:130: trailing whitespace. -+ return cameff_evaluate_experts(  -tests/test_structural_cases.c:131: trailing whitespace. -+ frame,  -tests/test_structural_cases.c:132: trailing whitespace. -+ &config,  -tests/test_structural_cases.c:133: trailing whitespace. -+ region,  -tests/test_structural_cases.c:134: trailing whitespace. -+ &options,  -tests/test_structural_cases.c:135: trailing whitespace. -+ result  -tests/test_structural_cases.c:136: trailing whitespace. -+ ) == CAMEFF_STATUS_OK;  -tests/test_structural_cases.c:137: trailing whitespace. -+}  -tests/test_structural_cases.c:138: trailing whitespace. -+  -tests/test_structural_cases.c:139: trailing whitespace. -+/*  -tests/test_structural_cases.c:140: trailing whitespace. -+ * Structural analogue of the 2011 Japan case:  -tests/test_structural_cases.c:141: trailing whitespace. -+ * strong subduction affinity with elevated temporal,  -tests/test_structural_cases.c:142: trailing whitespace. -+ * magnitude and depth-related channels.  -tests/test_structural_cases.c:143: trailing whitespace. -+ */  -tests/test_structural_cases.c:144: trailing whitespace. -+static int test_japan_structure(void) {  -tests/test_structural_cases.c:145: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_structural_cases.c:146: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_structural_cases.c:147: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_structural_cases.c:148: trailing whitespace. -+ int subduction_index;  -tests/test_structural_cases.c:149: trailing whitespace. -+  -tests/test_structural_cases.c:150: trailing whitespace. -+ initialize_frame(  -tests/test_structural_cases.c:151: trailing whitespace. -+ &frame,  -tests/test_structural_cases.c:152: trailing whitespace. -+ 0.78,  -tests/test_structural_cases.c:153: trailing whitespace. -+ 0.88,  -tests/test_structural_cases.c:154: trailing whitespace. -+ 0.76,  -tests/test_structural_cases.c:155: trailing whitespace. -+ 0.84,  -tests/test_structural_cases.c:156: trailing whitespace. -+ 0.80,  -tests/test_structural_cases.c:157: trailing whitespace. -+ 0.72,  -tests/test_structural_cases.c:158: trailing whitespace. -+ 0.92,  -tests/test_structural_cases.c:159: trailing whitespace. -+ 0.90,  -tests/test_structural_cases.c:160: trailing whitespace. -+ 0.92  -tests/test_structural_cases.c:161: trailing whitespace. -+ );  -tests/test_structural_cases.c:162: trailing whitespace. -+  -tests/test_structural_cases.c:163: trailing whitespace. -+ initialize_region(®ion, "japan-structural");  -tests/test_structural_cases.c:164: trailing whitespace. -+  -tests/test_structural_cases.c:165: trailing whitespace. -+ region.tectonic_setting =  -tests/test_structural_cases.c:166: trailing whitespace. -+ CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_structural_cases.c:167: trailing whitespace. -+  -tests/test_structural_cases.c:168: trailing whitespace. -+ region.subduction_affinity = 1.00;  -tests/test_structural_cases.c:169: trailing whitespace. -+ region.crustal_fault_affinity = 0.15;  -tests/test_structural_cases.c:170: trailing whitespace. -+ region.transform_affinity = 0.05;  -tests/test_structural_cases.c:171: trailing whitespace. -+ region.volcanic_affinity = 0.10;  -tests/test_structural_cases.c:172: trailing whitespace. -+  -tests/test_structural_cases.c:173: trailing whitespace. -+ CHECK(evaluate_case(&frame, ®ion, &result));  -tests/test_structural_cases.c:174: trailing whitespace. -+  -tests/test_structural_cases.c:175: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:176: trailing whitespace. -+ result.patterns.dominant_pattern ==  -tests/test_structural_cases.c:177: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_structural_cases.c:178: trailing whitespace. -+ );  -tests/test_structural_cases.c:179: trailing whitespace. -+  -tests/test_structural_cases.c:180: trailing whitespace. -+ subduction_index =  -tests/test_structural_cases.c:181: trailing whitespace. -+ find_expert(&result, "subduction");  -tests/test_structural_cases.c:182: trailing whitespace. -+  -tests/test_structural_cases.c:183: trailing whitespace. -+ CHECK(subduction_index >= 0);  -tests/test_structural_cases.c:184: trailing whitespace. -+  -tests/test_structural_cases.c:185: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:186: trailing whitespace. -+ result.fusion.expert_results[  -tests/test_structural_cases.c:187: trailing whitespace. -+ (size_t)subduction_index  -tests/test_structural_cases.c:188: trailing whitespace. -+ ].status == CAMEFF_EXPERT_OK  -tests/test_structural_cases.c:189: trailing whitespace. -+ );  -tests/test_structural_cases.c:190: trailing whitespace. -+  -tests/test_structural_cases.c:191: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:192: trailing whitespace. -+ result.fusion.expert_results[  -tests/test_structural_cases.c:193: trailing whitespace. -+ (size_t)subduction_index  -tests/test_structural_cases.c:194: trailing whitespace. -+ ].preparation_evidence > 0.50  -tests/test_structural_cases.c:195: trailing whitespace. -+ );  -tests/test_structural_cases.c:196: trailing whitespace. -+  -tests/test_structural_cases.c:197: trailing whitespace. -+ return 0;  -tests/test_structural_cases.c:198: trailing whitespace. -+}  -tests/test_structural_cases.c:199: trailing whitespace. -+  -tests/test_structural_cases.c:200: trailing whitespace. -+/*  -tests/test_structural_cases.c:201: trailing whitespace. -+ * Structural analogue of the Russia case:  -tests/test_structural_cases.c:202: trailing whitespace. -+ * subduction setting with strong activity and concentration.  -tests/test_structural_cases.c:203: trailing whitespace. -+ */  -tests/test_structural_cases.c:204: trailing whitespace. -+static int test_russia_structure(void) {  -tests/test_structural_cases.c:205: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_structural_cases.c:206: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_structural_cases.c:207: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_structural_cases.c:208: trailing whitespace. -+  -tests/test_structural_cases.c:209: trailing whitespace. -+ initialize_frame(  -tests/test_structural_cases.c:210: trailing whitespace. -+ &frame,  -tests/test_structural_cases.c:211: trailing whitespace. -+ 0.82,  -tests/test_structural_cases.c:212: trailing whitespace. -+ 0.78,  -tests/test_structural_cases.c:213: trailing whitespace. -+ 0.83,  -tests/test_structural_cases.c:214: trailing whitespace. -+ 0.76,  -tests/test_structural_cases.c:215: trailing whitespace. -+ 0.74,  -tests/test_structural_cases.c:216: trailing whitespace. -+ 0.70,  -tests/test_structural_cases.c:217: trailing whitespace. -+ 0.88,  -tests/test_structural_cases.c:218: trailing whitespace. -+ 0.86,  -tests/test_structural_cases.c:219: trailing whitespace. -+ 0.88  -tests/test_structural_cases.c:220: trailing whitespace. -+ );  -tests/test_structural_cases.c:221: trailing whitespace. -+  -tests/test_structural_cases.c:222: trailing whitespace. -+ initialize_region(®ion, "russia-structural");  -tests/test_structural_cases.c:223: trailing whitespace. -+  -tests/test_structural_cases.c:224: trailing whitespace. -+ region.tectonic_setting =  -tests/test_structural_cases.c:225: trailing whitespace. -+ CAMEFF_TECTONIC_SUBDUCTION;  -tests/test_structural_cases.c:226: trailing whitespace. -+  -tests/test_structural_cases.c:227: trailing whitespace. -+ region.subduction_affinity = 0.95;  -tests/test_structural_cases.c:228: trailing whitespace. -+ region.crustal_fault_affinity = 0.20;  -tests/test_structural_cases.c:229: trailing whitespace. -+ region.transform_affinity = 0.05;  -tests/test_structural_cases.c:230: trailing whitespace. -+  -tests/test_structural_cases.c:231: trailing whitespace. -+ CHECK(evaluate_case(&frame, ®ion, &result));  -tests/test_structural_cases.c:232: trailing whitespace. -+  -tests/test_structural_cases.c:233: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:234: trailing whitespace. -+ result.patterns.scores[  -tests/test_structural_cases.c:235: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_structural_cases.c:236: trailing whitespace. -+ ].membership >  -tests/test_structural_cases.c:237: trailing whitespace. -+ result.patterns.scores[  -tests/test_structural_cases.c:238: trailing whitespace. -+ CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION  -tests/test_structural_cases.c:239: trailing whitespace. -+ ].membership  -tests/test_structural_cases.c:240: trailing whitespace. -+ );  -tests/test_structural_cases.c:241: trailing whitespace. -+  -tests/test_structural_cases.c:242: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:243: trailing whitespace. -+ result.fusion.preparation_evidence > 0.0  -tests/test_structural_cases.c:244: trailing whitespace. -+ );  -tests/test_structural_cases.c:245: trailing whitespace. -+  -tests/test_structural_cases.c:246: trailing whitespace. -+ return 0;  -tests/test_structural_cases.c:247: trailing whitespace. -+}  -tests/test_structural_cases.c:248: trailing whitespace. -+  -tests/test_structural_cases.c:249: trailing whitespace. -+/*  -tests/test_structural_cases.c:250: trailing whitespace. -+ * Structural analogue of the Cebu case:  -tests/test_structural_cases.c:251: trailing whitespace. -+ * concentrated crustal activity with uncertain fault mapping.  -tests/test_structural_cases.c:252: trailing whitespace. -+ */  -tests/test_structural_cases.c:253: trailing whitespace. -+static int test_cebu_structure(void) {  -tests/test_structural_cases.c:254: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_structural_cases.c:255: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_structural_cases.c:256: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_structural_cases.c:257: trailing whitespace. -+ int crustal_index;  -tests/test_structural_cases.c:258: trailing whitespace. -+  -tests/test_structural_cases.c:259: trailing whitespace. -+ initialize_frame(  -tests/test_structural_cases.c:260: trailing whitespace. -+ &frame,  -tests/test_structural_cases.c:261: trailing whitespace. -+ 0.76,  -tests/test_structural_cases.c:262: trailing whitespace. -+ 0.72,  -tests/test_structural_cases.c:263: trailing whitespace. -+ 0.94,  -tests/test_structural_cases.c:264: trailing whitespace. -+ 0.70,  -tests/test_structural_cases.c:265: trailing whitespace. -+ 0.38,  -tests/test_structural_cases.c:266: trailing whitespace. -+ 0.68,  -tests/test_structural_cases.c:267: trailing whitespace. -+ 0.82,  -tests/test_structural_cases.c:268: trailing whitespace. -+ 0.25,  -tests/test_structural_cases.c:269: trailing whitespace. -+ 0.84  -tests/test_structural_cases.c:270: trailing whitespace. -+ );  -tests/test_structural_cases.c:271: trailing whitespace. -+  -tests/test_structural_cases.c:272: trailing whitespace. -+ initialize_region(®ion, "cebu-structural");  -tests/test_structural_cases.c:273: trailing whitespace. -+  -tests/test_structural_cases.c:274: trailing whitespace. -+ region.tectonic_setting =  -tests/test_structural_cases.c:275: trailing whitespace. -+ CAMEFF_TECTONIC_CRUSTAL;  -tests/test_structural_cases.c:276: trailing whitespace. -+  -tests/test_structural_cases.c:277: trailing whitespace. -+ region.subduction_affinity = 0.15;  -tests/test_structural_cases.c:278: trailing whitespace. -+ region.crustal_fault_affinity = 0.92;  -tests/test_structural_cases.c:279: trailing whitespace. -+ region.transform_affinity = 0.10;  -tests/test_structural_cases.c:280: trailing whitespace. -+  -tests/test_structural_cases.c:281: trailing whitespace. -+ region.fault_map_confidence = 0.20;  -tests/test_structural_cases.c:282: trailing whitespace. -+ region.catalog_completeness = 0.82;  -tests/test_structural_cases.c:283: trailing whitespace. -+ region.station_coverage = 0.78;  -tests/test_structural_cases.c:284: trailing whitespace. -+ region.regional_prior_confidence = 0.75;  -tests/test_structural_cases.c:285: trailing whitespace. -+  -tests/test_structural_cases.c:286: trailing whitespace. -+ CHECK(evaluate_case(&frame, ®ion, &result));  -tests/test_structural_cases.c:287: trailing whitespace. -+  -tests/test_structural_cases.c:288: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:289: trailing whitespace. -+ result.patterns.dominant_pattern ==  -tests/test_structural_cases.c:290: trailing whitespace. -+ CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION  -tests/test_structural_cases.c:291: trailing whitespace. -+ );  -tests/test_structural_cases.c:292: trailing whitespace. -+  -tests/test_structural_cases.c:293: trailing whitespace. -+ crustal_index =  -tests/test_structural_cases.c:294: trailing whitespace. -+ find_expert(&result, "crustal-fault");  -tests/test_structural_cases.c:295: trailing whitespace. -+  -tests/test_structural_cases.c:296: trailing whitespace. -+ CHECK(crustal_index >= 0);  -tests/test_structural_cases.c:297: trailing whitespace. -+  -tests/test_structural_cases.c:298: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:299: trailing whitespace. -+ result.fusion.expert_results[  -tests/test_structural_cases.c:300: trailing whitespace. -+ (size_t)crustal_index  -tests/test_structural_cases.c:301: trailing whitespace. -+ ].status == CAMEFF_EXPERT_OK  -tests/test_structural_cases.c:302: trailing whitespace. -+ );  -tests/test_structural_cases.c:303: trailing whitespace. -+  -tests/test_structural_cases.c:304: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:305: trailing whitespace. -+ result.fusion.expert_results[  -tests/test_structural_cases.c:306: trailing whitespace. -+ (size_t)crustal_index  -tests/test_structural_cases.c:307: trailing whitespace. -+ ].preparation_evidence > 0.45  -tests/test_structural_cases.c:308: trailing whitespace. -+ );  -tests/test_structural_cases.c:309: trailing whitespace. -+  -tests/test_structural_cases.c:310: trailing whitespace. -+ return 0;  -tests/test_structural_cases.c:311: trailing whitespace. -+}  -tests/test_structural_cases.c:312: trailing whitespace. -+  -tests/test_structural_cases.c:313: trailing whitespace. -+/*  -tests/test_structural_cases.c:314: trailing whitespace. -+ * Structural analogue of the Davao case:  -tests/test_structural_cases.c:315: trailing whitespace. -+ * a subduction region with meaningful crustal ambiguity.  -tests/test_structural_cases.c:316: trailing whitespace. -+ */  -tests/test_structural_cases.c:317: trailing whitespace. -+static int test_davao_structure(void) {  -tests/test_structural_cases.c:318: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_structural_cases.c:319: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_structural_cases.c:320: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_structural_cases.c:321: trailing whitespace. -+  -tests/test_structural_cases.c:322: trailing whitespace. -+ initialize_frame(  -tests/test_structural_cases.c:323: trailing whitespace. -+ &frame,  -tests/test_structural_cases.c:324: trailing whitespace. -+ 0.74,  -tests/test_structural_cases.c:325: trailing whitespace. -+ 0.80,  -tests/test_structural_cases.c:326: trailing whitespace. -+ 0.78,  -tests/test_structural_cases.c:327: trailing whitespace. -+ 0.74,  -tests/test_structural_cases.c:328: trailing whitespace. -+ 0.82,  -tests/test_structural_cases.c:329: trailing whitespace. -+ 0.66,  -tests/test_structural_cases.c:330: trailing whitespace. -+ 0.84,  -tests/test_structural_cases.c:331: trailing whitespace. -+ 0.72,  -tests/test_structural_cases.c:332: trailing whitespace. -+ 0.85  -tests/test_structural_cases.c:333: trailing whitespace. -+ );  -tests/test_structural_cases.c:334: trailing whitespace. -+  -tests/test_structural_cases.c:335: trailing whitespace. -+ initialize_region(®ion, "davao-structural");  -tests/test_structural_cases.c:336: trailing whitespace. -+  -tests/test_structural_cases.c:337: trailing whitespace. -+ region.tectonic_setting =  -tests/test_structural_cases.c:338: trailing whitespace. -+ CAMEFF_TECTONIC_MIXED;  -tests/test_structural_cases.c:339: trailing whitespace. -+  -tests/test_structural_cases.c:340: trailing whitespace. -+ region.subduction_affinity = 0.88;  -tests/test_structural_cases.c:341: trailing whitespace. -+ region.crustal_fault_affinity = 0.48;  -tests/test_structural_cases.c:342: trailing whitespace. -+ region.transform_affinity = 0.10;  -tests/test_structural_cases.c:343: trailing whitespace. -+  -tests/test_structural_cases.c:344: trailing whitespace. -+ region.fault_map_confidence = 0.65;  -tests/test_structural_cases.c:345: trailing whitespace. -+ region.catalog_completeness = 0.84;  -tests/test_structural_cases.c:346: trailing whitespace. -+ region.station_coverage = 0.82;  -tests/test_structural_cases.c:347: trailing whitespace. -+ region.regional_prior_confidence = 0.82;  -tests/test_structural_cases.c:348: trailing whitespace. -+  -tests/test_structural_cases.c:349: trailing whitespace. -+ CHECK(evaluate_case(&frame, ®ion, &result));  -tests/test_structural_cases.c:350: trailing whitespace. -+  -tests/test_structural_cases.c:351: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:352: trailing whitespace. -+ result.patterns.scores[  -tests/test_structural_cases.c:353: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_structural_cases.c:354: trailing whitespace. -+ ].membership >  -tests/test_structural_cases.c:355: trailing whitespace. -+ result.patterns.scores[  -tests/test_structural_cases.c:356: trailing whitespace. -+ CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION  -tests/test_structural_cases.c:357: trailing whitespace. -+ ].membership  -tests/test_structural_cases.c:358: trailing whitespace. -+ );  -tests/test_structural_cases.c:359: trailing whitespace. -+  -tests/test_structural_cases.c:360: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:361: trailing whitespace. -+ result.fusion.expert_result_count == 4U  -tests/test_structural_cases.c:362: trailing whitespace. -+ );  -tests/test_structural_cases.c:363: trailing whitespace. -+  -tests/test_structural_cases.c:364: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:365: trailing whitespace. -+ result.fusion.expert_coverage > 0.0  -tests/test_structural_cases.c:366: trailing whitespace. -+ );  -tests/test_structural_cases.c:367: trailing whitespace. -+  -tests/test_structural_cases.c:368: trailing whitespace. -+ return 0;  -tests/test_structural_cases.c:369: trailing whitespace. -+}  -tests/test_structural_cases.c:370: trailing whitespace. -+  -tests/test_structural_cases.c:371: trailing whitespace. -+/*  -tests/test_structural_cases.c:372: trailing whitespace. -+ * Structural analogue of the Venezuela case:  -tests/test_structural_cases.c:373: trailing whitespace. -+ * transform-dominant regional context.  -tests/test_structural_cases.c:374: trailing whitespace. -+ *  -tests/test_structural_cases.c:375: trailing whitespace. -+ * Milestone 2 does not yet implement a transform expert.  -tests/test_structural_cases.c:376: trailing whitespace. -+ * This test intentionally documents that architectural gap.  -tests/test_structural_cases.c:377: trailing whitespace. -+ */  -tests/test_structural_cases.c:378: trailing whitespace. -+static int test_venezuela_structure(void) {  -tests/test_structural_cases.c:379: trailing whitespace. -+ cameff_signal_frame_t frame;  -tests/test_structural_cases.c:380: trailing whitespace. -+ cameff_region_profile_t region;  -tests/test_structural_cases.c:381: trailing whitespace. -+ cameff_evaluation_result_t result;  -tests/test_structural_cases.c:382: trailing whitespace. -+ int subduction_index;  -tests/test_structural_cases.c:383: trailing whitespace. -+ int crustal_index;  -tests/test_structural_cases.c:384: trailing whitespace. -+  -tests/test_structural_cases.c:385: trailing whitespace. -+ initialize_frame(  -tests/test_structural_cases.c:386: trailing whitespace. -+ &frame,  -tests/test_structural_cases.c:387: trailing whitespace. -+ 0.68,  -tests/test_structural_cases.c:388: trailing whitespace. -+ 0.72,  -tests/test_structural_cases.c:389: trailing whitespace. -+ 0.80,  -tests/test_structural_cases.c:390: trailing whitespace. -+ 0.66,  -tests/test_structural_cases.c:391: trailing whitespace. -+ 0.42,  -tests/test_structural_cases.c:392: trailing whitespace. -+ 0.60,  -tests/test_structural_cases.c:393: trailing whitespace. -+ 0.86,  -tests/test_structural_cases.c:394: trailing whitespace. -+ 0.75,  -tests/test_structural_cases.c:395: trailing whitespace. -+ 0.88  -tests/test_structural_cases.c:396: trailing whitespace. -+ );  -tests/test_structural_cases.c:397: trailing whitespace. -+  -tests/test_structural_cases.c:398: trailing whitespace. -+ initialize_region(  -tests/test_structural_cases.c:399: trailing whitespace. -+ ®ion,  -tests/test_structural_cases.c:400: trailing whitespace. -+ "venezuela-structural"  -tests/test_structural_cases.c:401: trailing whitespace. -+ );  -tests/test_structural_cases.c:402: trailing whitespace. -+  -tests/test_structural_cases.c:403: trailing whitespace. -+ region.tectonic_setting =  -tests/test_structural_cases.c:404: trailing whitespace. -+ CAMEFF_TECTONIC_TRANSFORM;  -tests/test_structural_cases.c:405: trailing whitespace. -+  -tests/test_structural_cases.c:406: trailing whitespace. -+ region.subduction_affinity = 0.05;  -tests/test_structural_cases.c:407: trailing whitespace. -+ region.crustal_fault_affinity = 0.20;  -tests/test_structural_cases.c:408: trailing whitespace. -+ region.transform_affinity = 1.00;  -tests/test_structural_cases.c:409: trailing whitespace. -+ region.volcanic_affinity = 0.00;  -tests/test_structural_cases.c:410: trailing whitespace. -+  -tests/test_structural_cases.c:411: trailing whitespace. -+ region.fault_map_confidence = 0.75;  -tests/test_structural_cases.c:412: trailing whitespace. -+ region.catalog_completeness = 0.86;  -tests/test_structural_cases.c:413: trailing whitespace. -+ region.station_coverage = 0.82;  -tests/test_structural_cases.c:414: trailing whitespace. -+ region.regional_prior_confidence = 0.90;  -tests/test_structural_cases.c:415: trailing whitespace. -+  -tests/test_structural_cases.c:416: trailing whitespace. -+ CHECK(evaluate_case(&frame, ®ion, &result));  -tests/test_structural_cases.c:417: trailing whitespace. -+  -tests/test_structural_cases.c:418: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:419: trailing whitespace. -+ result.patterns.dominant_pattern ==  -tests/test_structural_cases.c:420: trailing whitespace. -+ CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY  -tests/test_structural_cases.c:421: trailing whitespace. -+ );  -tests/test_structural_cases.c:422: trailing whitespace. -+  -tests/test_structural_cases.c:423: trailing whitespace. -+ subduction_index =  -tests/test_structural_cases.c:424: trailing whitespace. -+ find_expert(&result, "subduction");  -tests/test_structural_cases.c:425: trailing whitespace. -+  -tests/test_structural_cases.c:426: trailing whitespace. -+ crustal_index =  -tests/test_structural_cases.c:427: trailing whitespace. -+ find_expert(&result, "crustal-fault");  -tests/test_structural_cases.c:428: trailing whitespace. -+  -tests/test_structural_cases.c:429: trailing whitespace. -+ CHECK(subduction_index >= 0);  -tests/test_structural_cases.c:430: trailing whitespace. -+ CHECK(crustal_index >= 0);  -tests/test_structural_cases.c:431: trailing whitespace. -+  -tests/test_structural_cases.c:432: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:433: trailing whitespace. -+ result.fusion.expert_results[  -tests/test_structural_cases.c:434: trailing whitespace. -+ (size_t)subduction_index  -tests/test_structural_cases.c:435: trailing whitespace. -+ ].status == CAMEFF_EXPERT_ABSTAIN  -tests/test_structural_cases.c:436: trailing whitespace. -+ );  -tests/test_structural_cases.c:437: trailing whitespace. -+  -tests/test_structural_cases.c:438: trailing whitespace. -+ /*  -tests/test_structural_cases.c:439: trailing whitespace. -+ * The current framework has no transform-specific expert.  -tests/test_structural_cases.c:440: trailing whitespace. -+ * The baseline and cascade experts may still contribute,  -tests/test_structural_cases.c:441: trailing whitespace. -+ * but transform interpretation remains incomplete.  -tests/test_structural_cases.c:442: trailing whitespace. -+ */  -tests/test_structural_cases.c:443: trailing whitespace. -+ CHECK(  -tests/test_structural_cases.c:444: trailing whitespace. -+ result.patterns.scores[  -tests/test_structural_cases.c:445: trailing whitespace. -+ CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY  -tests/test_structural_cases.c:446: trailing whitespace. -+ ].membership >  -tests/test_structural_cases.c:447: trailing whitespace. -+ result.patterns.scores[  -tests/test_structural_cases.c:448: trailing whitespace. -+ CAMEFF_PATTERN_SUBDUCTION_PREPARATION  -tests/test_structural_cases.c:449: trailing whitespace. -+ ].membership  -tests/test_structural_cases.c:450: trailing whitespace. -+ );  -tests/test_structural_cases.c:451: trailing whitespace. -+  -tests/test_structural_cases.c:452: trailing whitespace. -+ return 0;  -tests/test_structural_cases.c:453: trailing whitespace. -+}  -tests/test_structural_cases.c:454: trailing whitespace. -+  -tests/test_structural_cases.c:455: trailing whitespace. -+int main(void) {  -tests/test_structural_cases.c:456: trailing whitespace. -+ CHECK(test_japan_structure() == 0);  -tests/test_structural_cases.c:457: trailing whitespace. -+ CHECK(test_russia_structure() == 0);  -tests/test_structural_cases.c:458: trailing whitespace. -+ CHECK(test_cebu_structure() == 0);  -tests/test_structural_cases.c:459: trailing whitespace. -+ CHECK(test_davao_structure() == 0);  -tests/test_structural_cases.c:460: trailing whitespace. -+ CHECK(test_venezuela_structure() == 0);  -tests/test_structural_cases.c:461: trailing whitespace. -+  -tests/test_structural_cases.c:462: trailing whitespace. -+ puts("structural hindcast case tests passed");  -tests/test_structural_cases.c:463: trailing whitespace. -+ return 0;  -tests/validation/test_hindcast.c:1: trailing whitespace. -+#include "../../src/data/earthquake_catalog.h"  -tests/validation/test_hindcast.c:2: trailing whitespace. -+#include "../../src/validation/cameff_pipeline_adapter.h"  -tests/validation/test_hindcast.c:3: trailing whitespace. -+#include "../../src/validation/hindcast.h"  -tests/validation/test_hindcast.c:4: trailing whitespace. -+  -tests/validation/test_hindcast.c:5: trailing whitespace. -+#include   -tests/validation/test_hindcast.c:6: trailing whitespace. -+#include   -tests/validation/test_hindcast.c:7: trailing whitespace. -+#include   -tests/validation/test_hindcast.c:8: trailing whitespace. -+#include   -tests/validation/test_hindcast.c:9: trailing whitespace. -+#include   -tests/validation/test_hindcast.c:10: trailing whitespace. -+  -tests/validation/test_hindcast.c:11: trailing whitespace. -+#ifndef CAMEFF_TEST_SOURCE_DIR  -tests/validation/test_hindcast.c:12: trailing whitespace. -+#error "CAMEFF_TEST_SOURCE_DIR is not defined"  -tests/validation/test_hindcast.c:13: trailing whitespace. -+#endif  -tests/validation/test_hindcast.c:14: trailing whitespace. -+  -tests/validation/test_hindcast.c:15: trailing whitespace. -+static EarthquakeCatalog load_test_catalog(void)  -tests/validation/test_hindcast.c:16: trailing whitespace. -+{  -tests/validation/test_hindcast.c:17: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:18: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:19: trailing whitespace. -+  -tests/validation/test_hindcast.c:20: trailing whitespace. -+ status = catalog_load_csv(  -tests/validation/test_hindcast.c:21: trailing whitespace. -+ CAMEFF_TEST_SOURCE_DIR  -tests/validation/test_hindcast.c:22: trailing whitespace. -+ "/tests/data/fixtures/valid_catalog.csv",  -tests/validation/test_hindcast.c:23: trailing whitespace. -+ &catalog  -tests/validation/test_hindcast.c:24: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:25: trailing whitespace. -+  -tests/validation/test_hindcast.c:26: trailing whitespace. -+ assert(status == CAMEFF_CATALOG_OK);  -tests/validation/test_hindcast.c:27: trailing whitespace. -+ assert(catalog.count == 3);  -tests/validation/test_hindcast.c:28: trailing whitespace. -+  -tests/validation/test_hindcast.c:29: trailing whitespace. -+ return catalog;  -tests/validation/test_hindcast.c:30: trailing whitespace. -+}  -tests/validation/test_hindcast.c:31: trailing whitespace. -+  -tests/validation/test_hindcast.c:32: trailing whitespace. -+static EarthquakeEvent target_event(  -tests/validation/test_hindcast.c:33: trailing whitespace. -+ const EarthquakeCatalog *catalog  -tests/validation/test_hindcast.c:34: trailing whitespace. -+)  -tests/validation/test_hindcast.c:35: trailing whitespace. -+{  -tests/validation/test_hindcast.c:36: trailing whitespace. -+ assert(catalog != NULL);  -tests/validation/test_hindcast.c:37: trailing whitespace. -+ assert(catalog->count == 3);  -tests/validation/test_hindcast.c:38: trailing whitespace. -+  -tests/validation/test_hindcast.c:39: trailing whitespace. -+ return catalog->events[2];  -tests/validation/test_hindcast.c:40: trailing whitespace. -+}  -tests/validation/test_hindcast.c:41: trailing whitespace. -+  -tests/validation/test_hindcast.c:42: trailing whitespace. -+static void test_experiment_initialization(void)  -tests/validation/test_hindcast.c:43: trailing whitespace. -+{  -tests/validation/test_hindcast.c:44: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:45: trailing whitespace. -+  -tests/validation/test_hindcast.c:46: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:47: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:48: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:49: trailing whitespace. -+  -tests/validation/test_hindcast.c:50: trailing whitespace. -+ assert(experiment.source_catalog == NULL);  -tests/validation/test_hindcast.c:51: trailing whitespace. -+ assert(experiment.observation_start == 0);  -tests/validation/test_hindcast.c:52: trailing whitespace. -+ assert(experiment.cutoff_time == 0);  -tests/validation/test_hindcast.c:53: trailing whitespace. -+ assert(experiment.analysis_radius_km == 0.0);  -tests/validation/test_hindcast.c:54: trailing whitespace. -+ assert(experiment.evaluator == NULL);  -tests/validation/test_hindcast.c:55: trailing whitespace. -+ assert(experiment.evaluator_context == NULL);  -tests/validation/test_hindcast.c:56: trailing whitespace. -+}  -tests/validation/test_hindcast.c:57: trailing whitespace. -+  -tests/validation/test_hindcast.c:58: trailing whitespace. -+static void test_result_initialization(void)  -tests/validation/test_hindcast.c:59: trailing whitespace. -+{  -tests/validation/test_hindcast.c:60: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:61: trailing whitespace. -+  -tests/validation/test_hindcast.c:62: trailing whitespace. -+ hindcast_result_initialize(&result);  -tests/validation/test_hindcast.c:63: trailing whitespace. -+  -tests/validation/test_hindcast.c:64: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:65: trailing whitespace. -+ result.status ==  -tests/validation/test_hindcast.c:66: trailing whitespace. -+ CAMEFF_HINDCAST_NOT_EVALUATED  -tests/validation/test_hindcast.c:67: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:68: trailing whitespace. -+  -tests/validation/test_hindcast.c:69: trailing whitespace. -+ assert(result.evidence_event_count == 0);  -tests/validation/test_hindcast.c:70: trailing whitespace. -+ assert(result.hazard_score == 0.0);  -tests/validation/test_hindcast.c:71: trailing whitespace. -+ assert(result.confidence == 0.0);  -tests/validation/test_hindcast.c:72: trailing whitespace. -+ assert(result.signal_count == 0U);  -tests/validation/test_hindcast.c:73: trailing whitespace. -+ assert(result.dominant_pattern[0] == '\0');  -tests/validation/test_hindcast.c:74: trailing whitespace. -+ assert(result.dominant_expert[0] == '\0');  -tests/validation/test_hindcast.c:75: trailing whitespace. -+}  -tests/validation/test_hindcast.c:76: trailing whitespace. -+  -tests/validation/test_hindcast.c:77: trailing whitespace. -+static void test_valid_experiment_contract(void)  -tests/validation/test_hindcast.c:78: trailing whitespace. -+{  -tests/validation/test_hindcast.c:79: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:80: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:81: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:82: trailing whitespace. -+  -tests/validation/test_hindcast.c:83: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:84: trailing whitespace. -+  -tests/validation/test_hindcast.c:85: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:86: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:87: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:88: trailing whitespace. -+  -tests/validation/test_hindcast.c:89: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:90: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:91: trailing whitespace. -+  -tests/validation/test_hindcast.c:92: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:93: trailing whitespace. -+  -tests/validation/test_hindcast.c:94: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:95: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:96: trailing whitespace. -+  -tests/validation/test_hindcast.c:97: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:98: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:99: trailing whitespace. -+  -tests/validation/test_hindcast.c:100: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:101: trailing whitespace. -+  -tests/validation/test_hindcast.c:102: trailing whitespace. -+ status =  -tests/validation/test_hindcast.c:103: trailing whitespace. -+ hindcast_experiment_validate(  -tests/validation/test_hindcast.c:104: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:105: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:106: trailing whitespace. -+  -tests/validation/test_hindcast.c:107: trailing whitespace. -+ assert(status == CAMEFF_HINDCAST_OK);  -tests/validation/test_hindcast.c:108: trailing whitespace. -+}  -tests/validation/test_hindcast.c:109: trailing whitespace. -+  -tests/validation/test_hindcast.c:110: trailing whitespace. -+static void test_future_cutoff_rejected(void)  -tests/validation/test_hindcast.c:111: trailing whitespace. -+{  -tests/validation/test_hindcast.c:112: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:113: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:114: trailing whitespace. -+  -tests/validation/test_hindcast.c:115: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:116: trailing whitespace. -+  -tests/validation/test_hindcast.c:117: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:118: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:119: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:120: trailing whitespace. -+  -tests/validation/test_hindcast.c:121: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:122: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:123: trailing whitespace. -+  -tests/validation/test_hindcast.c:124: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:125: trailing whitespace. -+  -tests/validation/test_hindcast.c:126: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:127: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:128: trailing whitespace. -+  -tests/validation/test_hindcast.c:129: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:130: trailing whitespace. -+ experiment.target.timestamp + 1;  -tests/validation/test_hindcast.c:131: trailing whitespace. -+  -tests/validation/test_hindcast.c:132: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:133: trailing whitespace. -+  -tests/validation/test_hindcast.c:134: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:135: trailing whitespace. -+ hindcast_experiment_validate(  -tests/validation/test_hindcast.c:136: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:137: trailing whitespace. -+ ) ==  -tests/validation/test_hindcast.c:138: trailing whitespace. -+ CAMEFF_HINDCAST_INVALID_TIME_WINDOW  -tests/validation/test_hindcast.c:139: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:140: trailing whitespace. -+}  -tests/validation/test_hindcast.c:141: trailing whitespace. -+  -tests/validation/test_hindcast.c:142: trailing whitespace. -+static void test_hindcast_constructs_evidence_window(void)  -tests/validation/test_hindcast.c:143: trailing whitespace. -+{  -tests/validation/test_hindcast.c:144: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:145: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:146: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:147: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:148: trailing whitespace. -+  -tests/validation/test_hindcast.c:149: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:150: trailing whitespace. -+  -tests/validation/test_hindcast.c:151: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:152: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:153: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:154: trailing whitespace. -+  -tests/validation/test_hindcast.c:155: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:156: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:157: trailing whitespace. -+  -tests/validation/test_hindcast.c:158: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:159: trailing whitespace. -+  -tests/validation/test_hindcast.c:160: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:161: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:162: trailing whitespace. -+  -tests/validation/test_hindcast.c:163: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:164: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:165: trailing whitespace. -+  -tests/validation/test_hindcast.c:166: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:167: trailing whitespace. -+  -tests/validation/test_hindcast.c:168: trailing whitespace. -+ status = run_hindcast(  -tests/validation/test_hindcast.c:169: trailing whitespace. -+ &experiment,  -tests/validation/test_hindcast.c:170: trailing whitespace. -+ &result  -tests/validation/test_hindcast.c:171: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:172: trailing whitespace. -+  -tests/validation/test_hindcast.c:173: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:174: trailing whitespace. -+ status ==  -tests/validation/test_hindcast.c:175: trailing whitespace. -+ CAMEFF_HINDCAST_NOT_EVALUATED  -tests/validation/test_hindcast.c:176: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:177: trailing whitespace. -+  -tests/validation/test_hindcast.c:178: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:179: trailing whitespace. -+ result.status ==  -tests/validation/test_hindcast.c:180: trailing whitespace. -+ CAMEFF_HINDCAST_NOT_EVALUATED  -tests/validation/test_hindcast.c:181: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:182: trailing whitespace. -+  -tests/validation/test_hindcast.c:183: trailing whitespace. -+ assert(result.evidence_event_count == 2);  -tests/validation/test_hindcast.c:184: trailing whitespace. -+  -tests/validation/test_hindcast.c:185: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:186: trailing whitespace. -+ result.cutoff_time ==  -tests/validation/test_hindcast.c:187: trailing whitespace. -+ experiment.target.timestamp  -tests/validation/test_hindcast.c:188: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:189: trailing whitespace. -+  -tests/validation/test_hindcast.c:190: trailing whitespace. -+ assert(result.hazard_score == 0.0);  -tests/validation/test_hindcast.c:191: trailing whitespace. -+ assert(result.confidence == 0.0);  -tests/validation/test_hindcast.c:192: trailing whitespace. -+ assert(result.signal_count == 0U);  -tests/validation/test_hindcast.c:193: trailing whitespace. -+ assert(result.dominant_pattern[0] == '\0');  -tests/validation/test_hindcast.c:194: trailing whitespace. -+ assert(result.dominant_expert[0] == '\0');  -tests/validation/test_hindcast.c:195: trailing whitespace. -+}  -tests/validation/test_hindcast.c:196: trailing whitespace. -+  -tests/validation/test_hindcast.c:197: trailing whitespace. -+static void test_empty_evidence_window(void)  -tests/validation/test_hindcast.c:198: trailing whitespace. -+{  -tests/validation/test_hindcast.c:199: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:200: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:201: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:202: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:203: trailing whitespace. -+  -tests/validation/test_hindcast.c:204: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:205: trailing whitespace. -+  -tests/validation/test_hindcast.c:206: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:207: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:208: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:209: trailing whitespace. -+  -tests/validation/test_hindcast.c:210: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:211: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:212: trailing whitespace. -+  -tests/validation/test_hindcast.c:213: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:214: trailing whitespace. -+  -tests/validation/test_hindcast.c:215: trailing whitespace. -+ /*  -tests/validation/test_hindcast.c:216: trailing whitespace. -+ * This very narrow interval contains no prior events.  -tests/validation/test_hindcast.c:217: trailing whitespace. -+ */  -tests/validation/test_hindcast.c:218: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:219: trailing whitespace. -+ experiment.target.timestamp - 10;  -tests/validation/test_hindcast.c:220: trailing whitespace. -+  -tests/validation/test_hindcast.c:221: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:222: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:223: trailing whitespace. -+  -tests/validation/test_hindcast.c:224: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:225: trailing whitespace. -+  -tests/validation/test_hindcast.c:226: trailing whitespace. -+ status = run_hindcast(  -tests/validation/test_hindcast.c:227: trailing whitespace. -+ &experiment,  -tests/validation/test_hindcast.c:228: trailing whitespace. -+ &result  -tests/validation/test_hindcast.c:229: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:230: trailing whitespace. -+  -tests/validation/test_hindcast.c:231: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:232: trailing whitespace. -+ status ==  -tests/validation/test_hindcast.c:233: trailing whitespace. -+ CAMEFF_HINDCAST_NO_EVIDENCE  -tests/validation/test_hindcast.c:234: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:235: trailing whitespace. -+  -tests/validation/test_hindcast.c:236: trailing whitespace. -+ assert(result.evidence_event_count == 0);  -tests/validation/test_hindcast.c:237: trailing whitespace. -+}  -tests/validation/test_hindcast.c:238: trailing whitespace. -+  -tests/validation/test_hindcast.c:239: trailing whitespace. -+static void test_invalid_radius_rejected(void)  -tests/validation/test_hindcast.c:240: trailing whitespace. -+{  -tests/validation/test_hindcast.c:241: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:242: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:243: trailing whitespace. -+  -tests/validation/test_hindcast.c:244: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:245: trailing whitespace. -+  -tests/validation/test_hindcast.c:246: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:247: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:248: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:249: trailing whitespace. -+  -tests/validation/test_hindcast.c:250: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:251: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:252: trailing whitespace. -+  -tests/validation/test_hindcast.c:253: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:254: trailing whitespace. -+  -tests/validation/test_hindcast.c:255: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:256: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:257: trailing whitespace. -+  -tests/validation/test_hindcast.c:258: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:259: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:260: trailing whitespace. -+  -tests/validation/test_hindcast.c:261: trailing whitespace. -+ experiment.analysis_radius_km = 0.0;  -tests/validation/test_hindcast.c:262: trailing whitespace. -+  -tests/validation/test_hindcast.c:263: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:264: trailing whitespace. -+ hindcast_experiment_validate(  -tests/validation/test_hindcast.c:265: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:266: trailing whitespace. -+ ) ==  -tests/validation/test_hindcast.c:267: trailing whitespace. -+ CAMEFF_HINDCAST_INVALID_RADIUS  -tests/validation/test_hindcast.c:268: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:269: trailing whitespace. -+}  -tests/validation/test_hindcast.c:270: trailing whitespace. -+  -tests/validation/test_hindcast.c:271: trailing whitespace. -+static void populate_mock_signals(  -tests/validation/test_hindcast.c:272: trailing whitespace. -+ CameffEvaluationOutput *output  -tests/validation/test_hindcast.c:273: trailing whitespace. -+)  -tests/validation/test_hindcast.c:274: trailing whitespace. -+{  -tests/validation/test_hindcast.c:275: trailing whitespace. -+ size_t index;  -tests/validation/test_hindcast.c:276: trailing whitespace. -+  -tests/validation/test_hindcast.c:277: trailing whitespace. -+ assert(output != NULL);  -tests/validation/test_hindcast.c:278: trailing whitespace. -+  -tests/validation/test_hindcast.c:279: trailing whitespace. -+ output->signal_count =  -tests/validation/test_hindcast.c:280: trailing whitespace. -+ CAMEFF_SIGNAL_COUNT;  -tests/validation/test_hindcast.c:281: trailing whitespace. -+  -tests/validation/test_hindcast.c:282: trailing whitespace. -+ for (index = 0U;  -tests/validation/test_hindcast.c:283: trailing whitespace. -+ index < CAMEFF_SIGNAL_COUNT;  -tests/validation/test_hindcast.c:284: trailing whitespace. -+ index++)  -tests/validation/test_hindcast.c:285: trailing whitespace. -+ {  -tests/validation/test_hindcast.c:286: trailing whitespace. -+ output->signals[index].value = 0.50;  -tests/validation/test_hindcast.c:287: trailing whitespace. -+ output->signals[index].confidence = 0.80;  -tests/validation/test_hindcast.c:288: trailing whitespace. -+ output->signals[index].supporting_events = 2U;  -tests/validation/test_hindcast.c:289: trailing whitespace. -+ output->signals[index].available = 1;  -tests/validation/test_hindcast.c:290: trailing whitespace. -+ }  -tests/validation/test_hindcast.c:291: trailing whitespace. -+}  -tests/validation/test_hindcast.c:292: trailing whitespace. -+  -tests/validation/test_hindcast.c:293: trailing whitespace. -+static int mock_successful_evaluator(  -tests/validation/test_hindcast.c:294: trailing whitespace. -+ const EarthquakeCatalog *evidence_catalog,  -tests/validation/test_hindcast.c:295: trailing whitespace. -+ const EarthquakeEvent *target_context,  -tests/validation/test_hindcast.c:296: trailing whitespace. -+ CameffEvaluationOutput *output,  -tests/validation/test_hindcast.c:297: trailing whitespace. -+ void *user_context  -tests/validation/test_hindcast.c:298: trailing whitespace. -+)  -tests/validation/test_hindcast.c:299: trailing whitespace. -+{  -tests/validation/test_hindcast.c:300: trailing whitespace. -+ (void)target_context;  -tests/validation/test_hindcast.c:301: trailing whitespace. -+ (void)user_context;  -tests/validation/test_hindcast.c:302: trailing whitespace. -+  -tests/validation/test_hindcast.c:303: trailing whitespace. -+ assert(evidence_catalog != NULL);  -tests/validation/test_hindcast.c:304: trailing whitespace. -+ assert(evidence_catalog->count == 2);  -tests/validation/test_hindcast.c:305: trailing whitespace. -+ assert(output != NULL);  -tests/validation/test_hindcast.c:306: trailing whitespace. -+  -tests/validation/test_hindcast.c:307: trailing whitespace. -+ output->hazard_score = 0.75;  -tests/validation/test_hindcast.c:308: trailing whitespace. -+ output->confidence = 0.80;  -tests/validation/test_hindcast.c:309: trailing whitespace. -+  -tests/validation/test_hindcast.c:310: trailing whitespace. -+ populate_mock_signals(output);  -tests/validation/test_hindcast.c:311: trailing whitespace. -+  -tests/validation/test_hindcast.c:312: trailing whitespace. -+ strcpy(  -tests/validation/test_hindcast.c:313: trailing whitespace. -+ output->dominant_pattern,  -tests/validation/test_hindcast.c:314: trailing whitespace. -+ "subduction-preparation"  -tests/validation/test_hindcast.c:315: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:316: trailing whitespace. -+  -tests/validation/test_hindcast.c:317: trailing whitespace. -+ strcpy(  -tests/validation/test_hindcast.c:318: trailing whitespace. -+ output->dominant_expert,  -tests/validation/test_hindcast.c:319: trailing whitespace. -+ "subduction"  -tests/validation/test_hindcast.c:320: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:321: trailing whitespace. -+  -tests/validation/test_hindcast.c:322: trailing whitespace. -+ return CAMEFF_EVALUATOR_OK;  -tests/validation/test_hindcast.c:323: trailing whitespace. -+}  -tests/validation/test_hindcast.c:324: trailing whitespace. -+  -tests/validation/test_hindcast.c:325: trailing whitespace. -+static int mock_invalid_evaluator(  -tests/validation/test_hindcast.c:326: trailing whitespace. -+ const EarthquakeCatalog *evidence_catalog,  -tests/validation/test_hindcast.c:327: trailing whitespace. -+ const EarthquakeEvent *target_context,  -tests/validation/test_hindcast.c:328: trailing whitespace. -+ CameffEvaluationOutput *output,  -tests/validation/test_hindcast.c:329: trailing whitespace. -+ void *user_context  -tests/validation/test_hindcast.c:330: trailing whitespace. -+)  -tests/validation/test_hindcast.c:331: trailing whitespace. -+{  -tests/validation/test_hindcast.c:332: trailing whitespace. -+ (void)evidence_catalog;  -tests/validation/test_hindcast.c:333: trailing whitespace. -+ (void)target_context;  -tests/validation/test_hindcast.c:334: trailing whitespace. -+ (void)user_context;  -tests/validation/test_hindcast.c:335: trailing whitespace. -+  -tests/validation/test_hindcast.c:336: trailing whitespace. -+ output->hazard_score = 1.5;  -tests/validation/test_hindcast.c:337: trailing whitespace. -+ output->confidence = 0.8;  -tests/validation/test_hindcast.c:338: trailing whitespace. -+  -tests/validation/test_hindcast.c:339: trailing whitespace. -+ populate_mock_signals(output);  -tests/validation/test_hindcast.c:340: trailing whitespace. -+  -tests/validation/test_hindcast.c:341: trailing whitespace. -+ strcpy(  -tests/validation/test_hindcast.c:342: trailing whitespace. -+ output->dominant_pattern,  -tests/validation/test_hindcast.c:343: trailing whitespace. -+ "invalid"  -tests/validation/test_hindcast.c:344: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:345: trailing whitespace. -+  -tests/validation/test_hindcast.c:346: trailing whitespace. -+ strcpy(  -tests/validation/test_hindcast.c:347: trailing whitespace. -+ output->dominant_expert,  -tests/validation/test_hindcast.c:348: trailing whitespace. -+ "invalid"  -tests/validation/test_hindcast.c:349: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:350: trailing whitespace. -+  -tests/validation/test_hindcast.c:351: trailing whitespace. -+ return CAMEFF_EVALUATOR_OK;  -tests/validation/test_hindcast.c:352: trailing whitespace. -+}  -tests/validation/test_hindcast.c:353: trailing whitespace. -+  -tests/validation/test_hindcast.c:354: trailing whitespace. -+static void test_hindcast_invokes_evaluator(void)  -tests/validation/test_hindcast.c:355: trailing whitespace. -+{  -tests/validation/test_hindcast.c:356: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:357: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:358: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:359: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:360: trailing whitespace. -+  -tests/validation/test_hindcast.c:361: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:362: trailing whitespace. -+  -tests/validation/test_hindcast.c:363: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:364: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:365: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:366: trailing whitespace. -+  -tests/validation/test_hindcast.c:367: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:368: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:369: trailing whitespace. -+  -tests/validation/test_hindcast.c:370: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:371: trailing whitespace. -+  -tests/validation/test_hindcast.c:372: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:373: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:374: trailing whitespace. -+  -tests/validation/test_hindcast.c:375: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:376: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:377: trailing whitespace. -+  -tests/validation/test_hindcast.c:378: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:379: trailing whitespace. -+  -tests/validation/test_hindcast.c:380: trailing whitespace. -+ experiment.evaluator =  -tests/validation/test_hindcast.c:381: trailing whitespace. -+ mock_successful_evaluator;  -tests/validation/test_hindcast.c:382: trailing whitespace. -+  -tests/validation/test_hindcast.c:383: trailing whitespace. -+ status = run_hindcast(  -tests/validation/test_hindcast.c:384: trailing whitespace. -+ &experiment,  -tests/validation/test_hindcast.c:385: trailing whitespace. -+ &result  -tests/validation/test_hindcast.c:386: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:387: trailing whitespace. -+  -tests/validation/test_hindcast.c:388: trailing whitespace. -+ assert(status == CAMEFF_HINDCAST_OK);  -tests/validation/test_hindcast.c:389: trailing whitespace. -+ assert(result.status == CAMEFF_HINDCAST_OK);  -tests/validation/test_hindcast.c:390: trailing whitespace. -+ assert(result.evidence_event_count == 2);  -tests/validation/test_hindcast.c:391: trailing whitespace. -+ assert(result.hazard_score == 0.75);  -tests/validation/test_hindcast.c:392: trailing whitespace. -+ assert(result.confidence == 0.80);  -tests/validation/test_hindcast.c:393: trailing whitespace. -+  -tests/validation/test_hindcast.c:394: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:395: trailing whitespace. -+ result.signal_count ==  -tests/validation/test_hindcast.c:396: trailing whitespace. -+ CAMEFF_SIGNAL_COUNT  -tests/validation/test_hindcast.c:397: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:398: trailing whitespace. -+  -tests/validation/test_hindcast.c:399: trailing whitespace. -+ assert(result.signals[0].available == 1);  -tests/validation/test_hindcast.c:400: trailing whitespace. -+ assert(result.signals[0].value == 0.50);  -tests/validation/test_hindcast.c:401: trailing whitespace. -+ assert(result.signals[0].confidence == 0.80);  -tests/validation/test_hindcast.c:402: trailing whitespace. -+  -tests/validation/test_hindcast.c:403: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:404: trailing whitespace. -+ strcmp(  -tests/validation/test_hindcast.c:405: trailing whitespace. -+ result.dominant_pattern,  -tests/validation/test_hindcast.c:406: trailing whitespace. -+ "subduction-preparation"  -tests/validation/test_hindcast.c:407: trailing whitespace. -+ ) == 0  -tests/validation/test_hindcast.c:408: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:409: trailing whitespace. -+  -tests/validation/test_hindcast.c:410: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:411: trailing whitespace. -+ strcmp(  -tests/validation/test_hindcast.c:412: trailing whitespace. -+ result.dominant_expert,  -tests/validation/test_hindcast.c:413: trailing whitespace. -+ "subduction"  -tests/validation/test_hindcast.c:414: trailing whitespace. -+ ) == 0  -tests/validation/test_hindcast.c:415: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:416: trailing whitespace. -+}  -tests/validation/test_hindcast.c:417: trailing whitespace. -+  -tests/validation/test_hindcast.c:418: trailing whitespace. -+static void test_invalid_evaluator_output_rejected(void)  -tests/validation/test_hindcast.c:419: trailing whitespace. -+{  -tests/validation/test_hindcast.c:420: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:421: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:422: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:423: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:424: trailing whitespace. -+  -tests/validation/test_hindcast.c:425: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:426: trailing whitespace. -+  -tests/validation/test_hindcast.c:427: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:428: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:429: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:430: trailing whitespace. -+  -tests/validation/test_hindcast.c:431: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:432: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:433: trailing whitespace. -+  -tests/validation/test_hindcast.c:434: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:435: trailing whitespace. -+  -tests/validation/test_hindcast.c:436: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:437: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:438: trailing whitespace. -+  -tests/validation/test_hindcast.c:439: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:440: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:441: trailing whitespace. -+  -tests/validation/test_hindcast.c:442: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:443: trailing whitespace. -+  -tests/validation/test_hindcast.c:444: trailing whitespace. -+ experiment.evaluator =  -tests/validation/test_hindcast.c:445: trailing whitespace. -+ mock_invalid_evaluator;  -tests/validation/test_hindcast.c:446: trailing whitespace. -+  -tests/validation/test_hindcast.c:447: trailing whitespace. -+ status = run_hindcast(  -tests/validation/test_hindcast.c:448: trailing whitespace. -+ &experiment,  -tests/validation/test_hindcast.c:449: trailing whitespace. -+ &result  -tests/validation/test_hindcast.c:450: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:451: trailing whitespace. -+  -tests/validation/test_hindcast.c:452: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:453: trailing whitespace. -+ status ==  -tests/validation/test_hindcast.c:454: trailing whitespace. -+ CAMEFF_HINDCAST_EVALUATION_FAILED  -tests/validation/test_hindcast.c:455: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:456: trailing whitespace. -+  -tests/validation/test_hindcast.c:457: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:458: trailing whitespace. -+ result.status ==  -tests/validation/test_hindcast.c:459: trailing whitespace. -+ CAMEFF_HINDCAST_EVALUATION_FAILED  -tests/validation/test_hindcast.c:460: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:461: trailing whitespace. -+}  -tests/validation/test_hindcast.c:462: trailing whitespace. -+  -tests/validation/test_hindcast.c:463: trailing whitespace. -+static void initialize_test_subduction_region(  -tests/validation/test_hindcast.c:464: trailing whitespace. -+ cameff_region_profile_t *region  -tests/validation/test_hindcast.c:465: trailing whitespace. -+)  -tests/validation/test_hindcast.c:466: trailing whitespace. -+{  -tests/validation/test_hindcast.c:467: trailing whitespace. -+ assert(region != NULL);  -tests/validation/test_hindcast.c:468: trailing whitespace. -+  -tests/validation/test_hindcast.c:469: trailing whitespace. -+ (void)memset(  -tests/validation/test_hindcast.c:470: trailing whitespace. -+ region,  -tests/validation/test_hindcast.c:471: trailing whitespace. -+ 0,  -tests/validation/test_hindcast.c:472: trailing whitespace. -+ sizeof(*region)  -tests/validation/test_hindcast.c:473: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:474: trailing whitespace. -+  -tests/validation/test_hindcast.c:475: trailing whitespace. -+ (void)snprintf(  -tests/validation/test_hindcast.c:476: trailing whitespace. -+ region->region_id,  -tests/validation/test_hindcast.c:477: trailing whitespace. -+ sizeof(region->region_id),  -tests/validation/test_hindcast.c:478: trailing whitespace. -+ "%s",  -tests/validation/test_hindcast.c:479: trailing whitespace. -+ "japan-trench-test"  -tests/validation/test_hindcast.c:480: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:481: trailing whitespace. -+  -tests/validation/test_hindcast.c:482: trailing whitespace. -+ region->tectonic_setting =  -tests/validation/test_hindcast.c:483: trailing whitespace. -+ CAMEFF_TECTONIC_SUBDUCTION;  -tests/validation/test_hindcast.c:484: trailing whitespace. -+  -tests/validation/test_hindcast.c:485: trailing whitespace. -+ region->subduction_affinity = 1.0;  -tests/validation/test_hindcast.c:486: trailing whitespace. -+ region->crustal_fault_affinity = 0.10;  -tests/validation/test_hindcast.c:487: trailing whitespace. -+ region->transform_affinity = 0.05;  -tests/validation/test_hindcast.c:488: trailing whitespace. -+ region->volcanic_affinity = 0.05;  -tests/validation/test_hindcast.c:489: trailing whitespace. -+  -tests/validation/test_hindcast.c:490: trailing whitespace. -+ region->fault_map_confidence = 0.90;  -tests/validation/test_hindcast.c:491: trailing whitespace. -+ region->catalog_completeness = 0.90;  -tests/validation/test_hindcast.c:492: trailing whitespace. -+ region->station_coverage = 0.90;  -tests/validation/test_hindcast.c:493: trailing whitespace. -+ region->regional_prior_confidence = 0.90;  -tests/validation/test_hindcast.c:494: trailing whitespace. -+}  -tests/validation/test_hindcast.c:495: trailing whitespace. -+  -tests/validation/test_hindcast.c:496: trailing whitespace. -+static void test_real_pipeline_adapter_rejects_missing_cutoff(void)  -tests/validation/test_hindcast.c:497: trailing whitespace. -+{  -tests/validation/test_hindcast.c:498: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:499: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:500: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:501: trailing whitespace. -+ CameffPipelineAdapterContext adapter_context;  -tests/validation/test_hindcast.c:502: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:503: trailing whitespace. -+  -tests/validation/test_hindcast.c:504: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:505: trailing whitespace. -+  -tests/validation/test_hindcast.c:506: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:507: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:508: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:509: trailing whitespace. -+  -tests/validation/test_hindcast.c:510: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:511: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:512: trailing whitespace. -+  -tests/validation/test_hindcast.c:513: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:514: trailing whitespace. -+  -tests/validation/test_hindcast.c:515: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:516: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:517: trailing whitespace. -+  -tests/validation/test_hindcast.c:518: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:519: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:520: trailing whitespace. -+  -tests/validation/test_hindcast.c:521: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:522: trailing whitespace. -+  -tests/validation/test_hindcast.c:523: trailing whitespace. -+ cameff_pipeline_adapter_context_initialize(  -tests/validation/test_hindcast.c:524: trailing whitespace. -+ &adapter_context  -tests/validation/test_hindcast.c:525: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:526: trailing whitespace. -+  -tests/validation/test_hindcast.c:527: trailing whitespace. -+ adapter_context.analysis_latitude =  -tests/validation/test_hindcast.c:528: trailing whitespace. -+ experiment.target.latitude;  -tests/validation/test_hindcast.c:529: trailing whitespace. -+  -tests/validation/test_hindcast.c:530: trailing whitespace. -+ adapter_context.analysis_longitude =  -tests/validation/test_hindcast.c:531: trailing whitespace. -+ experiment.target.longitude;  -tests/validation/test_hindcast.c:532: trailing whitespace. -+  -tests/validation/test_hindcast.c:533: trailing whitespace. -+ adapter_context.analysis_radius_km =  -tests/validation/test_hindcast.c:534: trailing whitespace. -+ experiment.analysis_radius_km;  -tests/validation/test_hindcast.c:535: trailing whitespace. -+  -tests/validation/test_hindcast.c:536: trailing whitespace. -+ adapter_context.lookback_days = 365U;  -tests/validation/test_hindcast.c:537: trailing whitespace. -+  -tests/validation/test_hindcast.c:538: trailing whitespace. -+ /*  -tests/validation/test_hindcast.c:539: trailing whitespace. -+ * Deliberately leave:  -tests/validation/test_hindcast.c:540: trailing whitespace. -+ *  -tests/validation/test_hindcast.c:541: trailing whitespace. -+ * adapter_context.cutoff_epoch_seconds == 0  -tests/validation/test_hindcast.c:542: trailing whitespace. -+ *  -tests/validation/test_hindcast.c:543: trailing whitespace. -+ * The adapter must reject the invalid context.  -tests/validation/test_hindcast.c:544: trailing whitespace. -+ */  -tests/validation/test_hindcast.c:545: trailing whitespace. -+ initialize_test_subduction_region(  -tests/validation/test_hindcast.c:546: trailing whitespace. -+ &adapter_context.region  -tests/validation/test_hindcast.c:547: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:548: trailing whitespace. -+  -tests/validation/test_hindcast.c:549: trailing whitespace. -+ experiment.evaluator =  -tests/validation/test_hindcast.c:550: trailing whitespace. -+ cameff_pipeline_evaluator;  -tests/validation/test_hindcast.c:551: trailing whitespace. -+  -tests/validation/test_hindcast.c:552: trailing whitespace. -+ experiment.evaluator_context =  -tests/validation/test_hindcast.c:553: trailing whitespace. -+ &adapter_context;  -tests/validation/test_hindcast.c:554: trailing whitespace. -+  -tests/validation/test_hindcast.c:555: trailing whitespace. -+ status = run_hindcast(  -tests/validation/test_hindcast.c:556: trailing whitespace. -+ &experiment,  -tests/validation/test_hindcast.c:557: trailing whitespace. -+ &result  -tests/validation/test_hindcast.c:558: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:559: trailing whitespace. -+  -tests/validation/test_hindcast.c:560: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:561: trailing whitespace. -+ status ==  -tests/validation/test_hindcast.c:562: trailing whitespace. -+ CAMEFF_HINDCAST_EVALUATION_FAILED  -tests/validation/test_hindcast.c:563: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:564: trailing whitespace. -+}  -tests/validation/test_hindcast.c:565: trailing whitespace. -+  -tests/validation/test_hindcast.c:566: trailing whitespace. -+static void test_real_pipeline_adapter(void)  -tests/validation/test_hindcast.c:567: trailing whitespace. -+{  -tests/validation/test_hindcast.c:568: trailing whitespace. -+ EarthquakeCatalog catalog;  -tests/validation/test_hindcast.c:569: trailing whitespace. -+ HindcastExperiment experiment;  -tests/validation/test_hindcast.c:570: trailing whitespace. -+ HindcastResult result;  -tests/validation/test_hindcast.c:571: trailing whitespace. -+ CameffPipelineAdapterContext adapter_context;  -tests/validation/test_hindcast.c:572: trailing whitespace. -+ int status;  -tests/validation/test_hindcast.c:573: trailing whitespace. -+  -tests/validation/test_hindcast.c:574: trailing whitespace. -+ catalog = load_test_catalog();  -tests/validation/test_hindcast.c:575: trailing whitespace. -+  -tests/validation/test_hindcast.c:576: trailing whitespace. -+ hindcast_experiment_initialize(  -tests/validation/test_hindcast.c:577: trailing whitespace. -+ &experiment  -tests/validation/test_hindcast.c:578: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:579: trailing whitespace. -+  -tests/validation/test_hindcast.c:580: trailing whitespace. -+ experiment.target =  -tests/validation/test_hindcast.c:581: trailing whitespace. -+ target_event(&catalog);  -tests/validation/test_hindcast.c:582: trailing whitespace. -+  -tests/validation/test_hindcast.c:583: trailing whitespace. -+ experiment.source_catalog = &catalog;  -tests/validation/test_hindcast.c:584: trailing whitespace. -+  -tests/validation/test_hindcast.c:585: trailing whitespace. -+ experiment.observation_start =  -tests/validation/test_hindcast.c:586: trailing whitespace. -+ (time_t)1299600000;  -tests/validation/test_hindcast.c:587: trailing whitespace. -+  -tests/validation/test_hindcast.c:588: trailing whitespace. -+ experiment.cutoff_time =  -tests/validation/test_hindcast.c:589: trailing whitespace. -+ experiment.target.timestamp;  -tests/validation/test_hindcast.c:590: trailing whitespace. -+  -tests/validation/test_hindcast.c:591: trailing whitespace. -+ experiment.analysis_radius_km = 100.0;  -tests/validation/test_hindcast.c:592: trailing whitespace. -+  -tests/validation/test_hindcast.c:593: trailing whitespace. -+ cameff_pipeline_adapter_context_initialize(  -tests/validation/test_hindcast.c:594: trailing whitespace. -+ &adapter_context  -tests/validation/test_hindcast.c:595: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:596: trailing whitespace. -+  -tests/validation/test_hindcast.c:597: trailing whitespace. -+ adapter_context.analysis_latitude =  -tests/validation/test_hindcast.c:598: trailing whitespace. -+ experiment.target.latitude;  -tests/validation/test_hindcast.c:599: trailing whitespace. -+  -tests/validation/test_hindcast.c:600: trailing whitespace. -+ adapter_context.analysis_longitude =  -tests/validation/test_hindcast.c:601: trailing whitespace. -+ experiment.target.longitude;  -tests/validation/test_hindcast.c:602: trailing whitespace. -+  -tests/validation/test_hindcast.c:603: trailing whitespace. -+ adapter_context.analysis_radius_km =  -tests/validation/test_hindcast.c:604: trailing whitespace. -+ experiment.analysis_radius_km;  -tests/validation/test_hindcast.c:605: trailing whitespace. -+  -tests/validation/test_hindcast.c:606: trailing whitespace. -+ adapter_context.lookback_days = 365U;  -tests/validation/test_hindcast.c:607: trailing whitespace. -+  -tests/validation/test_hindcast.c:608: trailing whitespace. -+ /*  -tests/validation/test_hindcast.c:609: trailing whitespace. -+ * This is the required assignment.  -tests/validation/test_hindcast.c:610: trailing whitespace. -+ *  -tests/validation/test_hindcast.c:611: trailing whitespace. -+ * It is placed after experiment.cutoff_time has been  -tests/validation/test_hindcast.c:612: trailing whitespace. -+ * configured and before run_hindcast() is called.  -tests/validation/test_hindcast.c:613: trailing whitespace. -+ */  -tests/validation/test_hindcast.c:614: trailing whitespace. -+ adapter_context.cutoff_epoch_seconds =  -tests/validation/test_hindcast.c:615: trailing whitespace. -+ (int64_t)experiment.cutoff_time;  -tests/validation/test_hindcast.c:616: trailing whitespace. -+  -tests/validation/test_hindcast.c:617: trailing whitespace. -+ initialize_test_subduction_region(  -tests/validation/test_hindcast.c:618: trailing whitespace. -+ &adapter_context.region  -tests/validation/test_hindcast.c:619: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:620: trailing whitespace. -+  -tests/validation/test_hindcast.c:621: trailing whitespace. -+ /*  -tests/validation/test_hindcast.c:622: trailing whitespace. -+ * The fixture contains only two pre-event earthquakes.  -tests/validation/test_hindcast.c:623: trailing whitespace. -+ * Lower the minimum for this small integration fixture.  -tests/validation/test_hindcast.c:624: trailing whitespace. -+ *  -tests/validation/test_hindcast.c:625: trailing whitespace. -+ * This is test configuration only, not operational  -tests/validation/test_hindcast.c:626: trailing whitespace. -+ * calibration.  -tests/validation/test_hindcast.c:627: trailing whitespace. -+ */  -tests/validation/test_hindcast.c:628: trailing whitespace. -+ adapter_context.config.minimum_events = 2U;  -tests/validation/test_hindcast.c:629: trailing whitespace. -+  -tests/validation/test_hindcast.c:630: trailing whitespace. -+ experiment.evaluator =  -tests/validation/test_hindcast.c:631: trailing whitespace. -+ cameff_pipeline_evaluator;  -tests/validation/test_hindcast.c:632: trailing whitespace. -+  -tests/validation/test_hindcast.c:633: trailing whitespace. -+ experiment.evaluator_context =  -tests/validation/test_hindcast.c:634: trailing whitespace. -+ &adapter_context;  -tests/validation/test_hindcast.c:635: trailing whitespace. -+  -tests/validation/test_hindcast.c:636: trailing whitespace. -+ status = run_hindcast(  -tests/validation/test_hindcast.c:637: trailing whitespace. -+ &experiment,  -tests/validation/test_hindcast.c:638: trailing whitespace. -+ &result  -tests/validation/test_hindcast.c:639: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:640: trailing whitespace. -+  -tests/validation/test_hindcast.c:641: trailing whitespace. -+ assert(status == CAMEFF_HINDCAST_OK);  -tests/validation/test_hindcast.c:642: trailing whitespace. -+ assert(result.status == CAMEFF_HINDCAST_OK);  -tests/validation/test_hindcast.c:643: trailing whitespace. -+ assert(result.evidence_event_count == 2);  -tests/validation/test_hindcast.c:644: trailing whitespace. -+  -tests/validation/test_hindcast.c:645: trailing whitespace. -+ assert(result.hazard_score >= 0.0);  -tests/validation/test_hindcast.c:646: trailing whitespace. -+ assert(result.hazard_score <= 1.0);  -tests/validation/test_hindcast.c:647: trailing whitespace. -+  -tests/validation/test_hindcast.c:648: trailing whitespace. -+ assert(result.confidence >= 0.0);  -tests/validation/test_hindcast.c:649: trailing whitespace. -+ assert(result.confidence <= 1.0);  -tests/validation/test_hindcast.c:650: trailing whitespace. -+  -tests/validation/test_hindcast.c:651: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:652: trailing whitespace. -+ result.signal_count ==  -tests/validation/test_hindcast.c:653: trailing whitespace. -+ CAMEFF_SIGNAL_COUNT  -tests/validation/test_hindcast.c:654: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:655: trailing whitespace. -+  -tests/validation/test_hindcast.c:656: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:657: trailing whitespace. -+ result.signals[  -tests/validation/test_hindcast.c:658: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -tests/validation/test_hindcast.c:659: trailing whitespace. -+ ].available == 1  -tests/validation/test_hindcast.c:660: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:661: trailing whitespace. -+  -tests/validation/test_hindcast.c:662: trailing whitespace. -+ assert(  -tests/validation/test_hindcast.c:663: trailing whitespace. -+ result.signals[  -tests/validation/test_hindcast.c:664: trailing whitespace. -+ CAMEFF_SIGNAL_ACTIVITY_RATE  -tests/validation/test_hindcast.c:665: trailing whitespace. -+ ].supporting_events == 2U  -tests/validation/test_hindcast.c:666: trailing whitespace. -+ );  -tests/validation/test_hindcast.c:667: trailing whitespace. -+  -tests/validation/test_hindcast.c:668: trailing whitespace. -+ assert(result.dominant_pattern[0] != '\0');  -tests/validation/test_hindcast.c:669: trailing whitespace. -+ assert(result.dominant_expert[0] != '\0');  -tests/validation/test_hindcast.c:670: trailing whitespace. -+}  -tests/validation/test_hindcast.c:671: trailing whitespace. -+  -tests/validation/test_hindcast.c:672: trailing whitespace. -+int main(void)  -tests/validation/test_hindcast.c:673: trailing whitespace. -+{  -tests/validation/test_hindcast.c:674: trailing whitespace. -+ test_experiment_initialization();  -tests/validation/test_hindcast.c:675: trailing whitespace. -+ test_result_initialization();  -tests/validation/test_hindcast.c:676: trailing whitespace. -+ test_valid_experiment_contract();  -tests/validation/test_hindcast.c:677: trailing whitespace. -+ test_future_cutoff_rejected();  -tests/validation/test_hindcast.c:678: trailing whitespace. -+ test_hindcast_constructs_evidence_window();  -tests/validation/test_hindcast.c:679: trailing whitespace. -+ test_empty_evidence_window();  -tests/validation/test_hindcast.c:680: trailing whitespace. -+ test_invalid_radius_rejected();  -tests/validation/test_hindcast.c:681: trailing whitespace. -+ test_hindcast_invokes_evaluator();  -tests/validation/test_hindcast.c:682: trailing whitespace. -+ test_invalid_evaluator_output_rejected();  -tests/validation/test_hindcast.c:683: trailing whitespace. -+ test_real_pipeline_adapter_rejects_missing_cutoff();  -tests/validation/test_hindcast.c:684: trailing whitespace. -+ test_real_pipeline_adapter();  -tests/validation/test_hindcast.c:685: trailing whitespace. -+  -tests/validation/test_hindcast.c:686: trailing whitespace. -+ return 0;  diff --git a/tests/data/fixtures/invalid_catalog.csv b/tests/data/fixtures/invalid_catalog.csv deleted file mode 100644 index b919057..0000000 --- a/tests/data/fixtures/invalid_catalog.csv +++ /dev/null @@ -1,2 +0,0 @@ -time,latitude,longitude,depth,mag,region -2011-03-11T05:46:24Z,999.0,142.372,29.0,9.1,Invalid latitude \ No newline at end of file diff --git a/tests/data/fixtures/valid_catalog.csv b/tests/data/fixtures/valid_catalog.csv deleted file mode 100644 index 1b2d043..0000000 --- a/tests/data/fixtures/valid_catalog.csv +++ /dev/null @@ -1,4 +0,0 @@ -time,latitude,longitude,depth,mag,region -2011-03-09T02:45:20Z,38.435,142.842,32.0,7.3,Near the east coast of Honshu, Japan -2011-03-10T06:23:34Z,38.271,142.652,15.0,6.4,Near the east coast of Honshu, Japan -2011-03-11T05:46:24Z,38.297,142.372,29.0,9.1,Near the east coast of Honshu, Japan \ No newline at end of file diff --git a/tests/data/test_catalog.c b/tests/data/test_catalog.c deleted file mode 100644 index beb4c89..0000000 --- a/tests/data/test_catalog.c +++ /dev/null @@ -1,352 +0,0 @@ -#include "../../src/data/earthquake_catalog.h" -#include "../../src/data/earthquake_catalog_filter.h" - -#include -#include -#include - -#ifndef CAMEFF_TEST_SOURCE_DIR -#error "CAMEFF_TEST_SOURCE_DIR is not defined" -#endif - -static int approximately_equal( - double left, - double right -) -{ - return fabs(left - right) < 0.000001; -} - -static void test_catalog_initialization(void) -{ - EarthquakeCatalog catalog; - - catalog.count = 123; - - catalog_initialize(&catalog); - - assert(catalog.count == 0); -} - -static void test_valid_catalog_loading(void) -{ - EarthquakeCatalog catalog; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/valid_catalog.csv", - &catalog - ); - - assert(status == CAMEFF_CATALOG_OK); - assert(catalog.count == 3); - - assert(approximately_equal( - catalog.events[0].latitude, - 38.435 - )); - - assert(approximately_equal( - catalog.events[2].magnitude, - 9.1 - )); - - assert(strcmp( - catalog.events[2].region, - "Near the east coast of Honshu, Japan" - ) == 0); - - /* - * 2011-03-11T05:46:24Z - */ - assert( - catalog.events[2].timestamp == - (time_t)1299822384 - ); -} - -static void test_invalid_catalog_rejection(void) -{ - EarthquakeCatalog catalog; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/invalid_catalog.csv", - &catalog - ); - - assert(status == CAMEFF_CATALOG_INVALID_ROW); - assert(catalog.count == 0); -} - -static void test_missing_catalog_rejection(void) -{ - EarthquakeCatalog catalog; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/does-not-exist.csv", - &catalog - ); - - assert(status == CAMEFF_CATALOG_OPEN_FAILED); - assert(catalog.count == 0); -} - -static void test_time_range_filtering(void) -{ - EarthquakeCatalog source; - EarthquakeCatalog result; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/valid_catalog.csv", - &source - ); - - assert(status == CAMEFF_CATALOG_OK); - assert(source.count == 3); - - status = catalog_filter_time_range( - &source, - (time_t)1299680000, - (time_t)1299822384, - &result - ); - - assert( - status == - CAMEFF_CATALOG_FILTER_OK - ); - - /* - * The target event occurs exactly at the end time, - * so it must not be included. - */ - assert(result.count == 2); - - assert( - result.events[0].timestamp < - (time_t)1299822384 - ); - - assert( - result.events[1].timestamp < - (time_t)1299822384 - ); -} - -static void test_cutoff_prevents_future_leakage(void) -{ - EarthquakeCatalog source; - EarthquakeCatalog result; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/valid_catalog.csv", - &source - ); - - assert(status == CAMEFF_CATALOG_OK); - - status = catalog_filter_time_range( - &source, - (time_t)0, - (time_t)1299822384, - &result - ); - - assert( - status == - CAMEFF_CATALOG_FILTER_OK - ); - - assert(result.count == 2); - - /* - * The Mw 9.1 target event must be hidden because its - * timestamp equals the cutoff. - */ - assert( - result.events[result.count - 1].magnitude < - 9.1 - ); -} - -static void test_surface_distance(void) -{ - double same_location_distance; - double japan_pair_distance; - - same_location_distance = - earthquake_surface_distance_km( - 38.297, - 142.372, - 38.297, - 142.372 - ); - - assert( - approximately_equal( - same_location_distance, - 0.0 - ) - ); - - japan_pair_distance = - earthquake_surface_distance_km( - 38.297, - 142.372, - 38.435, - 142.842 - ); - - assert(japan_pair_distance > 40.0); - assert(japan_pair_distance < 50.0); -} - -static void test_radius_filtering(void) -{ - EarthquakeCatalog source; - EarthquakeCatalog result; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/valid_catalog.csv", - &source - ); - - assert(status == CAMEFF_CATALOG_OK); - - status = catalog_filter_radius( - &source, - 38.297, - 142.372, - 50.0, - &result - ); - - assert( - status == - CAMEFF_CATALOG_FILTER_OK - ); - - assert(result.count >= 1); - assert(result.count <= 3); -} - -static void test_combined_hindcast_filter(void) -{ - EarthquakeCatalog source; - EarthquakeCatalog result; - int status; - size_t index; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/valid_catalog.csv", - &source - ); - - assert(status == CAMEFF_CATALOG_OK); - - status = catalog_filter_hindcast_window( - &source, - (time_t)1299600000, - (time_t)1299822384, - 38.297, - 142.372, - 100.0, - &result - ); - - assert( - status == - CAMEFF_CATALOG_FILTER_OK - ); - - assert(result.count == 2); - - for (index = 0; index < result.count; index++) - { - double distance_km; - - assert( - result.events[index].timestamp < - (time_t)1299822384 - ); - - distance_km = - earthquake_surface_distance_km( - 38.297, - 142.372, - result.events[index].latitude, - result.events[index].longitude - ); - - assert(distance_km <= 100.0); - } -} - -static void test_invalid_filter_arguments(void) -{ - EarthquakeCatalog source; - EarthquakeCatalog result; - - catalog_initialize(&source); - - assert( - catalog_filter_time_range( - &source, - (time_t)100, - (time_t)100, - &result - ) == - CAMEFF_CATALOG_FILTER_INVALID_TIME_RANGE - ); - - assert( - catalog_filter_radius( - &source, - 100.0, - 0.0, - 50.0, - &result - ) == - CAMEFF_CATALOG_FILTER_INVALID_COORDINATES - ); - - assert( - catalog_filter_radius( - &source, - 0.0, - 0.0, - -1.0, - &result - ) == - CAMEFF_CATALOG_FILTER_INVALID_RADIUS - ); -} - -int main(void) -{ - test_catalog_initialization(); - test_valid_catalog_loading(); - test_invalid_catalog_rejection(); - test_missing_catalog_rejection(); - - test_time_range_filtering(); - test_cutoff_prevents_future_leakage(); - test_surface_distance(); - test_radius_filtering(); - test_combined_hindcast_filter(); - test_invalid_filter_arguments(); - - return 0; -} \ No newline at end of file diff --git a/tests/equivalence/run_equivalence.py b/tests/equivalence/run_equivalence.py new file mode 100644 index 0000000..0035478 --- /dev/null +++ b/tests/equivalence/run_equivalence.py @@ -0,0 +1,83 @@ +from __future__ import annotations + +import csv +import json +import math +import subprocess +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +CLI = ROOT / "build" / "cameff_cli" +CATALOGS = ROOT / "tests" / "fixtures" / "catalogs" +ORACLE = ROOT / "tests" / "fixtures" / "oracle" / "P34J_P34F_NORMATIVE_ETAS_ORACLE.csv" + +ABS_K = 1e-12 +REL_K = 1e-6 +ABS_BRANCHING = 1e-12 +REL_BRANCHING = 1e-6 + +def mixed_ok(a: float, b: float, abs_tol: float, rel_tol: float) -> bool: + return abs(a - b) <= max(abs_tol, rel_tol * max(abs(a), abs(b))) + +def main() -> int: + rows = list(csv.DictReader(ORACLE.open(newline=""))) + passed = 0 + failures = [] + + for row in rows: + case_id = row["case_id"] + proc = subprocess.run( + [ + str(CLI), + "etas-csv", + str(CATALOGS / f"{case_id}.csv"), + row["decision_time_days"], + ], + check=False, + capture_output=True, + text=True, + timeout=180, + ) + payload = json.loads(proc.stdout.strip()) if proc.stdout.strip() else {"status": "NO_OUTPUT"} + + checks = {} + if row["status"] != "AVAILABLE": + checks["status"] = payload.get("status") != "AVAILABLE" + else: + checks["status"] = payload.get("status") == "AVAILABLE" + if checks["status"]: + checks["mc"] = abs(float(row["mc"]) - float(payload["mc"])) <= 1e-12 + checks["b"] = abs(float(row["b_value"]) - float(payload["b_value"])) <= 1e-10 + checks["alpha"] = float(row["alpha"]) == float(payload["alpha"]) + checks["c"] = float(row["c"]) == float(payload["c"]) + checks["p"] = float(row["p"]) == float(payload["p"]) + checks["mu"] = mixed_ok(float(row["mu"]), float(payload["mu"]), 0.0, 1e-6) + checks["k"] = mixed_ok(float(row["k"]), float(payload["k"]), ABS_K, REL_K) + checks["loglik"] = abs(float(row["loglik"]) - float(payload["loglik"])) <= 1e-6 + checks["branching"] = mixed_ok( + float(row["branching_proxy"]), + float(payload["branching_proxy"]), + ABS_BRANCHING, + REL_BRANCHING, + ) + checks["raw_probability"] = abs( + float(row["raw_probability"]) - float(payload["raw_probability"]) + ) <= 1e-8 + + if all(checks.values()): + passed += 1 + else: + failures.append({"case_id": case_id, "checks": checks, "payload": payload}) + + summary = { + "cases": len(rows), + "passed": passed, + "failed": len(failures), + "status": "PASS" if not failures else "FAIL", + "failures": failures, + } + print(json.dumps(summary, indent=2)) + return 0 if not failures else 1 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/fixtures/catalogs/case_001_background_low_800d.csv b/tests/fixtures/catalogs/case_001_background_low_800d.csv new file mode 100644 index 0000000..298bbf8 --- /dev/null +++ b/tests/fixtures/catalogs/case_001_background_low_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.022094156122902 +1.0,2.11104482562913 +2.0,2.4155292136925968 +3.0,2.8169035347293923 +4.0,2.083793472632041 +5.0,3.9498567474353865 +6.0,2.4111957583067642 +7.0,2.556275749332294 +8.0,2.0001063452959205 +9.0,2.281842648879241 +10.0,2.268207227603424 +11.0,2.1663356620931933 +12.0,2.020841957955999 +13.0,2.518458436885923 +14.0,2.119317549278077 +15.0,2.0124320113204455 +16.0,2.19394523216554 +17.0,2.101828352165978 +18.0,2.5043412229713704 +19.0,2.026933687453351 +20.0,2.141162814031773 +21.0,3.0798582189278942 +22.0,2.1400572607989643 +23.0,2.181032065891428 +24.0,2.1964458831332787 +25.0,2.249744713173458 +26.0,2.520830149032041 +27.0,2.03652297703522 +28.0,2.96432135248059 +29.0,2.1268617613717717 +30.0,2.582301720830804 +31.0,2.0587793582623486 +32.0,2.4760091494971253 +33.0,2.0841365875454025 +34.0,2.0849583541429486 +35.0,2.3399009843587013 +36.0,2.096541473270793 +37.0,2.859802744396903 +38.0,2.232280356512355 +39.0,2.323762203584065 +40.0,2.26547328701614 +41.0,2.3889855778450886 +42.0,2.5018016782621726 +43.0,2.141041818714325 +44.0,2.297159606367031 +45.0,3.0615012690998284 +46.0,2.2248134129920185 +47.0,2.2936059485783264 +48.0,2.49710270241609 +49.0,2.0476808873681334 +50.0,2.0690628107827713 +51.0,3.368983800641669 +52.0,2.653430909232903 +53.0,3.8678743842720937 +54.0,2.0071601961803456 +55.0,2.153237730064405 +56.0,2.0492940301543 +57.0,2.4678836625775773 +58.0,2.248629859143316 +59.0,2.128894254832653 +60.0,2.539559300759907 +61.0,2.504822589957764 +62.0,2.364166406510457 +63.0,2.1297168355044676 +64.0,2.5081867682095873 +65.0,2.572006772764055 +66.0,2.4876088118805733 +67.0,2.235704033452392 +68.0,2.090777580743097 +69.0,2.5406659368054196 +70.0,2.745518317283133 +71.0,2.2453444882971425 +72.0,2.1148580956363325 +73.0,2.0676976559721147 +74.0,2.7796346490668244 +75.0,2.0474184167546516 +76.0,2.4910162362618595 +77.0,2.1304029467285783 +78.0,2.9377738206536037 +79.0,2.2543583539851215 +80.0,2.210906719076277 +81.0,2.0923011973775134 +82.0,2.1533580769995453 +83.0,2.09487509172335 +84.0,2.2388003071440057 +85.0,2.799759965394598 +86.0,2.0851996871115803 +87.0,2.575416693123021 +88.0,2.0114976213675355 +89.0,2.4932464673529786 +90.0,2.10334222252546 +91.0,2.7895011080753793 +92.0,2.0493382580638935 +93.0,2.036361539254378 +94.0,2.284790474121869 +95.0,2.11837562931711 +96.0,2.6445226165967055 +97.0,2.3674505493626095 +98.0,2.5760699831844507 +99.0,2.6215956905233377 +100.0,2.274726072497043 +101.0,2.2513344187559214 +102.0,2.3284580265277977 +103.0,2.049742577980368 +104.0,2.0665478959157815 +105.0,2.680899165053403 +106.0,2.2378167225984433 +107.0,2.3265631800399174 +108.0,2.1465019503537817 +109.0,2.330626575829462 +110.0,2.1013010722671623 +111.0,2.2685552701232874 +112.0,2.1116578299511044 +113.0,2.182377757276238 +114.0,2.3019410296669123 +115.0,2.599810009972513 +116.0,2.3442911195633647 +117.0,2.027272206360879 +118.0,2.385268826448434 +119.0,2.2122369135050075 +120.0,2.2605550164114994 +121.0,2.1465812244878903 +122.0,2.1474232958200816 +123.0,2.1044075208308475 +124.0,2.2972804724517886 +125.0,2.1952523758574127 +126.0,2.1708834908147874 +127.0,2.4801624370274067 +128.0,2.3519394363887978 +129.0,2.178426709318569 +130.0,2.704220158485276 +131.0,2.1109372111958384 +132.0,3.1247263945371704 +133.0,2.0946153359998037 +134.0,2.156163681082254 +135.0,2.066915440184286 +136.0,2.369645188911831 +137.0,2.0595241589555555 +138.0,2.56164189710813 +139.0,2.199732194524865 +140.0,2.3931270464850805 +141.0,2.737402297074225 +142.0,2.3026260246694474 +143.0,2.3779524924891007 +144.0,2.767698402011099 +145.0,2.0015668381182126 +146.0,2.631949109911563 +147.0,2.424650587351713 +148.0,2.287960487418888 +149.0,2.6804101329730297 +150.0,2.01025573253411 +151.0,2.377014764268183 +152.0,2.136464244509397 +153.0,2.6712154578395326 +154.0,2.882651615071725 +155.0,2.3613573956184517 +156.0,2.4369700277752715 +157.0,2.4108261124360646 +158.0,2.0285869144041855 +159.0,2.500837538381476 +160.0,2.3131587704022833 +161.0,2.0502298985943916 +162.0,3.1638869894532515 +163.0,2.0051920032507957 +164.0,2.075960854378744 +165.0,2.0335682207855306 +166.0,2.1501822445930547 +167.0,2.8162969548656815 +168.0,2.227138452721017 +169.0,2.01771744054009 +170.0,2.5460280855177206 +171.0,2.0216050869590614 +172.0,2.865918983374697 +173.0,2.6912571622448955 +174.0,2.033639368361743 +175.0,2.18125211643805 +176.0,2.0280744062009215 +177.0,2.354571368450495 +178.0,2.303915851473236 +179.0,2.1995735999030344 +180.0,2.108265774629956 +181.0,2.0540001908699037 +182.0,2.624692925683055 +183.0,2.5273818129821546 +184.0,2.0365352310765337 +185.0,2.3739836194066015 +186.0,2.649449664757886 +187.0,2.362718447693155 +188.0,3.254404982047589 +189.0,2.2139747118026207 +190.0,2.0583275872535762 +191.0,2.087785352637 +192.0,2.6387471522840356 +193.0,2.3210893072740553 +194.0,2.5401244090819004 +195.0,2.3507282428378877 +196.0,2.6895825813874032 +197.0,2.05832823120748 +198.0,2.0709121418456435 +199.0,2.0230379002166057 +200.0,3.726821175325897 +201.0,2.1620904456221344 +202.0,2.083706202907155 +203.0,2.398062406549783 +204.0,2.0682318473534655 +205.0,2.3730160996593854 +206.0,2.299529595126285 +207.0,2.677878213551066 +208.0,2.214803725220501 +209.0,2.7388306750729567 +210.0,2.020490788394537 +211.0,2.086611072663627 +212.0,2.2477926506663897 +213.0,2.7002822268874658 +214.0,2.02987080814973 +215.0,4.072596814126557 +216.0,2.0621801657172543 +217.0,2.3779699773883447 +218.0,3.1167087426993367 +219.0,2.316545655905677 +220.0,2.2852402293785934 +221.0,2.0403646299215774 +222.0,2.1842702586771057 +223.0,2.1240513532777276 +224.0,2.3164536103242543 +225.0,2.382826031275387 +226.0,3.3616033108157506 +227.0,2.1841595971371057 +228.0,2.812740358327795 +229.0,2.029337281167389 +230.0,2.2792311235881573 +231.0,2.2508501586498024 +232.0,2.367020303636542 +233.0,2.58406578817113 +234.0,2.2672530983992267 +235.0,3.6372078532368866 +236.0,2.4388100270709083 +237.0,2.2904610628299116 +238.0,2.159818511419986 +239.0,3.3794262240502317 +240.0,2.621250598781776 +241.0,2.0466309691215967 +242.0,2.225892976638247 +243.0,2.6692511244820993 +244.0,2.189322751363484 +245.0,2.02310273633219 +246.0,2.061995323113464 +247.0,2.0138093506548205 +248.0,2.272745343050483 +249.0,2.219952037676607 +250.0,2.581590347986082 +251.0,2.5936905303364988 +252.0,2.4723992615413173 +253.0,2.7630234455908 +254.0,2.2594898091087794 +255.0,2.102582132440222 +256.0,2.1672397807804984 +257.0,2.5070424630477373 +258.0,2.589249338154947 +259.0,2.0068930537369347 +260.0,2.2666937004914685 +261.0,2.246699150800365 +262.0,2.2128423841237677 +263.0,2.5135501970948146 +264.0,2.8495071864639856 +265.0,2.3923250869422574 +266.0,2.538736078100052 +267.0,2.308817656400232 +268.0,2.135628572921427 +269.0,2.6177838461257656 +270.0,2.346101449099993 +271.0,2.249241720605528 +272.0,2.7031301613378993 +273.0,2.2001113084804187 +274.0,2.2900191093120434 +275.0,2.1284380666916007 +276.0,2.0610429290733703 +277.0,2.1989076102656835 +278.0,2.5157299078791793 +279.0,2.242929957094793 +280.0,2.3730138155511025 +281.0,2.6424644881744683 +282.0,2.2883305428635894 +283.0,2.578069941247754 +284.0,3.1708631162522245 +285.0,2.919841022112663 +286.0,2.154391809130441 +287.0,2.2819132852994626 +288.0,2.4712213646409236 +289.0,2.516643294344814 +290.0,2.015889364219009 +291.0,2.015953803561707 +292.0,2.0314558897943393 +293.0,2.137494116161044 +294.0,2.5325232093081715 +295.0,2.57130401041053 +296.0,2.2805549460009185 +297.0,2.985448482862481 +298.0,2.337179065627365 +299.0,2.1377660432212644 +300.0,2.2825161867409314 +301.0,2.1235084396041937 +302.0,2.570483059349967 +303.0,2.004846329503562 +304.0,2.0979857770478714 +305.0,2.053407344930084 +306.0,3.112141953734096 +307.0,3.2189622580563126 +308.0,2.4977955667387866 +309.0,2.1776726956246764 +310.0,2.343413812700654 +311.0,2.371309298146905 +312.0,2.091231570807446 +313.0,2.313139195760359 +314.0,2.510696275305284 +315.0,2.0531426693897643 +316.0,2.382080327643874 +317.0,2.8951288883251607 +318.0,2.6122346056949852 +319.0,2.3560497966674157 +320.0,2.0550398364359097 +321.0,2.511844407328889 +322.0,2.198189861107283 +323.0,2.030353482574584 +324.0,2.63207118396576 +325.0,2.3952339405005776 +326.0,2.197657813223483 +327.0,2.2839947626730273 +328.0,2.431305527960949 +329.0,2.228911738019739 +330.0,3.173932571864097 +331.0,2.0561926453865134 +332.0,2.1087714813860057 +333.0,2.170333094676047 +334.0,2.0020846053894568 +335.0,2.213701755094664 +336.0,2.1707605971736523 +337.0,2.2038614670995442 +338.0,3.0232257588272997 +339.0,2.3257059905533137 +340.0,2.4440793949883806 +341.0,2.405354137505039 +342.0,2.1049212852496955 +343.0,2.0224750772123765 +344.0,2.685976240560915 +345.0,2.030123075309168 +346.0,2.2660402179077934 +347.0,2.29310646672603 +348.0,3.2189192909989446 +349.0,2.0603691594594107 +350.0,2.0290593912989654 +351.0,3.1395170896561995 +352.0,2.098862337673566 +353.0,2.058972496709026 +354.0,2.3925240805975156 +355.0,2.4271459780065814 +356.0,2.290768815782492 +357.0,2.0065882134692585 +358.0,2.636114435520419 +359.0,2.0125493490702207 +360.0,2.1437238295460377 +361.0,2.1473714557584107 +362.0,2.046084317585599 +363.0,2.409452224446822 +364.0,2.460233372185624 +365.0,2.32680834275138 +366.0,2.072639858820422 +367.0,2.0879395998736534 +368.0,2.006656928928034 +369.0,2.1025282368278577 +370.0,2.2629968163011083 +371.0,2.1519216171374898 +372.0,2.791972382168467 +373.0,2.138531562679848 +374.0,2.2274142739014664 +375.0,2.551607410636564 +376.0,2.5069987838515733 +377.0,2.0112794993117777 +378.0,2.530394757644636 +379.0,2.1337022784580726 +380.0,2.2387458622139103 +381.0,2.1973501576533336 +382.0,2.5835164916100957 +383.0,2.0670712017244477 +384.0,2.0130164885970783 +385.0,2.155012080595036 +386.0,2.8698796876447075 +387.0,2.0145866572456845 +388.0,2.23028483508216 +389.0,2.5082267789801174 +390.0,2.4881624618054725 +391.0,2.65092854170393 +392.0,2.314657045390192 +393.0,2.0142986507020186 +394.0,2.0261391015152217 +395.0,2.1943091411837785 +396.0,2.1413739210025384 +397.0,2.276803962444015 +398.0,2.14944520772946 +399.0,2.211473003392544 +400.0,2.7372042726053483 +401.0,2.381853298071493 +402.0,2.406018757182477 +403.0,3.382728121715288 +404.0,2.0363924730126617 +405.0,2.1474821183721975 +406.0,2.180735389385011 +407.0,2.261699479172097 +408.0,2.229809299310704 +409.0,2.0276378461213804 +410.0,2.308328192154847 +411.0,3.3049135876396805 +412.0,2.5630851057466426 +413.0,2.9384921143438003 +414.0,2.6359182012530633 +415.0,2.016215279728882 +416.0,2.0552837417737395 +417.0,2.1109941737814264 +418.0,2.0285130486187852 +419.0,2.228945618775964 +420.0,2.095033579765924 +421.0,3.009216881919942 +422.0,2.188471019439704 +423.0,2.2702626274877153 +424.0,2.6081367485683895 +425.0,2.006459205954775 +426.0,3.0017214668290917 +427.0,2.075796441624245 +428.0,2.297975191914638 +429.0,2.2953102119277293 +430.0,2.2511057315473253 +431.0,2.253844719498159 +432.0,2.9028343631304487 +433.0,2.3855265619902006 +434.0,2.1438693693245647 +435.0,2.6628984884392732 +436.0,2.579872006164151 +437.0,2.0353823589236977 +438.0,2.251332296557357 +439.0,2.2512991080569758 +440.0,2.5816620032712363 +441.0,2.2320325438566266 +442.0,3.1339662184619836 +443.0,2.079396550258941 +444.0,2.172809981477871 +445.0,2.0775821423456433 +446.0,2.130633194757276 +447.0,2.899645153987385 +448.0,2.1756140415685414 +449.0,2.1858208450914076 +450.0,2.053114425648637 +451.0,2.241561343219015 +452.0,3.1119803077955916 +453.0,2.1562175690634433 +454.0,2.1684553759617575 +455.0,2.4891556407038062 +456.0,2.0516100575741203 +457.0,2.3941719375965818 +458.0,2.1606533760278968 +459.0,2.103657928994322 +460.0,2.1203077606951233 +461.0,2.0618973460596686 +462.0,2.4715786761557967 +463.0,2.0606067087706825 +464.0,2.1917640031165577 +465.0,2.4434965791913514 +466.0,2.02853124714099 +467.0,2.9778359305357833 +468.0,3.8445615503169166 +469.0,2.013796491476462 +470.0,2.46364403527716 +471.0,3.228880968797439 +472.0,2.254624831876984 +473.0,2.2672366828372916 +474.0,2.5066701786497982 +475.0,2.2744480386381634 +476.0,2.4048846270517723 +477.0,2.0000324314534623 +478.0,3.073944926503681 +479.0,2.3878858390966347 +480.0,2.5485731112769106 +481.0,2.59447567352064 +482.0,2.1319330246929287 +483.0,2.294545713069678 +484.0,2.424584726600039 +485.0,2.357209268817767 +486.0,2.0091537461633555 +487.0,2.1088856752636103 +488.0,2.6655363250302564 +489.0,2.4052046481624947 +490.0,2.7695542789400474 +491.0,2.010571112681816 +492.0,2.075230132630028 +493.0,2.1883203154930326 +494.0,2.4265404301974374 +495.0,2.156901640499024 +496.0,2.1307005072544505 +497.0,2.7295092957268716 +498.0,3.1183581544153984 +499.0,2.035108311770917 +500.0,2.111774105678145 +501.0,2.3855869611873834 +502.0,2.742989326116858 +503.0,2.317608092401474 +504.0,2.2148516148649557 +505.0,2.3514654710333773 +506.0,2.7186201071091993 +507.0,2.244936536130888 +508.0,2.0619490510974523 +509.0,2.9102400170538596 +510.0,2.642089396144609 +511.0,2.3764243001600867 +512.0,2.093484837074623 +513.0,2.1223826366703795 +514.0,2.1690534899636176 +515.0,2.2787020128589712 +516.0,2.2450924654790216 +517.0,2.0134703624739134 +518.0,2.0293313946926057 +519.0,2.4960597809308083 +520.0,2.161315872072197 +521.0,2.1344319777451872 +522.0,2.5219225294818504 +523.0,2.338776924357694 +524.0,2.0135381970492157 +525.0,3.4967118163350643 +526.0,2.636847697911826 +527.0,2.4416982241016676 +528.0,3.522372618493186 +529.0,2.5040158045816225 +530.0,2.6132916375390614 +531.0,2.117517994065358 +532.0,2.1334166971913087 +533.0,2.169087342645145 +534.0,2.2366738106072406 +535.0,2.143172754212159 +536.0,2.615912532793422 +537.0,2.222056216059602 +538.0,2.704773103822079 +539.0,2.4629710783802934 +540.0,2.083437272179696 +541.0,2.1619072845324983 +542.0,2.1301622593146496 +543.0,2.01931549088803 +544.0,2.688993362750643 +545.0,2.025435697543625 +546.0,3.080573483703871 +547.0,2.1909385045251484 +548.0,2.1853438834448244 +549.0,2.067491796393927 +550.0,2.418009622218736 +551.0,2.7915556528227934 +552.0,2.361297986401446 +553.0,2.0115454868051357 +554.0,2.058930939322151 +555.0,2.6045384262146323 +556.0,2.4059514270453572 +557.0,2.1700464226428986 +558.0,2.068927581900615 +559.0,2.1693562534459216 +560.0,4.037297462072544 +561.0,2.1860103294115536 +562.0,2.743669601943969 +563.0,2.7567402591984087 +564.0,2.3110302078667964 +565.0,2.1444212357944172 +566.0,2.3850935253288976 +567.0,2.084891391235651 +568.0,2.007558076264465 +569.0,3.195425613896788 +570.0,2.426374096118247 +571.0,2.2365004560418327 +572.0,2.6141540023217473 +573.0,2.361157672188852 +574.0,2.4627255770397642 +575.0,2.240510888549584 +576.0,2.216008187602099 +577.0,2.585364484259192 +578.0,2.283168460728808 +579.0,2.1973513068336645 +580.0,2.021105066187105 +581.0,2.918064022815159 +582.0,2.3656580789928965 +583.0,2.0042522721081526 +584.0,2.582799367349636 +585.0,2.0727051132101577 +586.0,2.745635422710646 +587.0,2.4760481042572557 +588.0,2.1824037813747412 +589.0,2.3594938591859576 +590.0,2.1489809783224607 +591.0,2.2958021958582675 +592.0,3.0276983092190735 +593.0,2.1008856757069134 +594.0,2.0894258344683907 +595.0,2.33145427470613 +596.0,2.072174968340971 +597.0,2.307581279295028 +598.0,2.2783014668236166 +599.0,2.3419858966053964 +600.0,2.065808419609201 +601.0,2.1145373935929506 +602.0,2.1124446946355473 +603.0,2.87738012103449 +604.0,2.4083896931960886 +605.0,2.121575488888939 +606.0,3.120347776057155 +607.0,2.207989290180249 +608.0,2.3553826957614925 +609.0,2.309946136508737 +610.0,2.7255820977523904 +611.0,2.0546909800309705 +612.0,2.002686414048517 +613.0,2.230635047095993 +614.0,2.031031385233793 +615.0,2.8182461401315226 +616.0,2.0324830405596948 +617.0,2.149702990170489 +618.0,2.27555175359074 +619.0,2.1858462722794236 +620.0,2.499057274067935 +621.0,2.0279371425683608 +622.0,2.2541212164081603 +623.0,2.1991363984581698 +624.0,2.2012097180310604 +625.0,2.090005090734428 +626.0,2.203713453793849 +627.0,2.0926296674996117 +628.0,2.0790380823679193 +629.0,2.087397639312391 +630.0,2.2826747626080497 +631.0,2.168740437615984 +632.0,2.154716088694724 +633.0,2.1037875736348868 +634.0,2.122824548091244 +635.0,2.3327675573595252 +636.0,2.4162936940448283 +637.0,2.3624320829466425 +638.0,2.229815989656167 +639.0,3.141256302074928 +640.0,2.7878173054234385 +641.0,3.3106162444029126 +642.0,2.1390654243141793 +643.0,2.1581719034039537 +644.0,2.578417370117282 +645.0,2.1280398343223585 +646.0,2.1478082659132687 +647.0,2.220736861577552 +648.0,2.1049547726672837 +649.0,2.112782030106627 +650.0,2.7941620169042345 +651.0,2.127116410866673 +652.0,2.2850250899934403 +653.0,2.5522691690888646 +654.0,3.1810034126623217 +655.0,2.416364963107198 +656.0,2.0452591321598717 +657.0,2.200543983189793 +658.0,2.4693143249487077 +659.0,2.546831750946031 +660.0,2.0888165249994333 +661.0,2.928050124197558 +662.0,2.0749766108710546 +663.0,2.9816597073684767 +664.0,2.2607652440590478 +665.0,2.8119511757624123 +666.0,2.125123387273624 +667.0,2.146053732461421 +668.0,2.94119084629176 +669.0,2.3992042816607806 +670.0,2.4687966518426316 +671.0,2.5635812443174038 +672.0,2.0517114118266884 +673.0,2.388696489286069 +674.0,2.426348745461519 +675.0,2.339989452964665 +676.0,2.021000815136243 +677.0,2.734482953632481 +678.0,2.365100688452634 +679.0,2.6206183961475786 +680.0,2.763777014755609 +681.0,2.0992150207637232 +682.0,2.3373284472842792 +683.0,2.145441878947904 +684.0,2.3273430276856466 +685.0,3.05306298852726 +686.0,2.0625140876563335 +687.0,2.3697618728959133 +688.0,2.4301259484918467 +689.0,2.3896598041154697 +690.0,2.1696446359254544 +691.0,2.43764189552285 +692.0,2.6577477426054044 +693.0,2.4923453755872336 +694.0,2.0848820169611915 +695.0,3.248172033013362 +696.0,2.4588813146351063 +697.0,3.156022299217616 +698.0,2.005190369324134 +699.0,2.4465492443776395 +700.0,2.0527235256749643 +701.0,2.028209809906326 +702.0,2.193771327157556 +703.0,2.0161007120905556 +704.0,2.065174279225608 +705.0,2.201523061857277 +706.0,2.309649293573324 +707.0,2.6496984520787934 +708.0,2.212309115951145 +709.0,2.149722839203404 +710.0,2.134538658777028 +711.0,2.2097872653225434 +712.0,2.0172097783636556 +713.0,2.002672126746677 +714.0,2.1349002901066725 +715.0,2.413303355209403 +716.0,2.3262101656920295 +717.0,2.1712195120127213 +718.0,2.0273725788181522 +719.0,2.3062091002589846 +720.0,2.510206658552946 +721.0,2.184827393821702 +722.0,2.646112662687617 +723.0,2.384739649736395 +724.0,2.184272722993564 +725.0,2.0618531881793905 +726.0,2.19089970326636 +727.0,2.007894677757967 +728.0,2.087144074431838 +729.0,2.32801509868193 +730.0,2.6081389896109832 +731.0,2.08537649713454 +732.0,2.794161250878459 +733.0,2.0953802861986457 +734.0,2.0924253878978316 +735.0,2.144526391604581 +736.0,2.644862801548551 +737.0,2.8027070591260763 +738.0,2.4979948497872617 +739.0,2.100420785752504 +740.0,2.014816343455591 +741.0,2.015679210654568 +742.0,2.303076335595735 +743.0,2.5373239488346955 +744.0,2.0508702371631053 +745.0,2.280524285388674 +746.0,2.978394245217281 +747.0,2.3762370504954093 +748.0,2.9146217534140106 +749.0,2.6397040416679864 +750.0,2.1411668517199463 +751.0,2.0708086562499703 +752.0,2.191638901951104 +753.0,2.1705652622790534 +754.0,2.013733963932438 +755.0,2.0488517444363503 +756.0,2.132136763553155 +757.0,2.2200062359597545 +758.0,2.1528114757639343 +759.0,2.061239895650908 +760.0,2.3026120087575785 +761.0,2.3875795358616925 +762.0,2.084914915676463 +763.0,2.0514613620192157 +764.0,4.499144213868387 +765.0,2.1679388625130303 +766.0,2.206853042337364 +767.0,3.0568675909440692 +768.0,2.0543778203712795 +769.0,2.3169995146689533 +770.0,2.4889393951725274 +771.0,2.0211540584497656 +772.0,2.1183639922292867 +773.0,2.0209499172770666 +774.0,2.226545297640391 +775.0,2.829588323179923 +776.0,2.5567728324012986 +777.0,2.4547786656863053 +778.0,2.8968211416681173 +779.0,2.3517554343523894 +780.0,2.179147393699214 +781.0,2.157853205661377 +782.0,2.427969919973842 +783.0,2.1593920788992977 +784.0,2.9524461884789734 +785.0,2.268056097448913 +786.0,2.0174765511339796 +787.0,2.31576553340751 +788.0,2.0876327883808417 +789.0,2.2742571638398688 +790.0,2.098316442671783 +791.0,2.158420927180389 +792.0,2.5868293104358733 +793.0,2.612207550960402 +794.0,2.1158015720504446 +795.0,2.220623130068383 +796.0,2.37530394724929 +797.0,2.311819402583197 +798.0,2.126633851800396 +799.0,2.3475017597273204 diff --git a/tests/fixtures/catalogs/case_002_background_medium_800d.csv b/tests/fixtures/catalogs/case_002_background_medium_800d.csv new file mode 100644 index 0000000..87e8399 --- /dev/null +++ b/tests/fixtures/catalogs/case_002_background_medium_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.909580913413093 +1.0,2.906085666904494 +2.0,2.7444443913088272 +3.0,2.404801115409425 +4.0,2.7375268363891463 +5.0,2.400429909980285 +6.0,2.4751761253493916 +7.0,2.5077889499750223 +8.0,2.6029673797705426 +9.0,2.500005466311779 +10.0,2.4348792330144904 +11.0,2.4830165439902134 +12.0,3.8936434467457586 +13.0,2.445253068512555 +14.0,2.6106930841737217 +15.0,2.445514786865806 +16.0,3.059895840290336 +17.0,2.998811900305487 +18.0,2.829020533887735 +19.0,2.7992325802560716 +20.0,3.228824596823295 +21.0,3.2312483506096012 +22.0,2.420169617050284 +23.0,2.911040259806904 +24.0,3.188416937463057 +25.0,2.7058161036766006 +26.0,4.860768880978695 +27.0,2.8152228543123714 +28.0,3.1596723867926 +29.0,2.543994574551603 +30.0,3.1633989383155234 +31.0,2.5134702836707468 +32.0,3.4064101728871137 +33.0,3.1830618742471812 +34.0,2.439580217388912 +35.0,3.1091385756888745 +36.0,2.7958863686339357 +37.0,3.3368531257192227 +38.0,2.7931425678805377 +39.0,3.6479133735684477 +40.0,3.0544674840007575 +41.0,3.2445937679374692 +42.0,2.460463968615688 +43.0,2.5054891381638513 +44.0,2.9186803332106157 +45.0,3.0336556492538587 +46.0,2.4037699278966116 +47.0,2.8523633612225785 +48.0,2.7442093826204985 +49.0,2.4438945044417166 +50.0,2.7308519250097665 +51.0,3.2675963128117576 +52.0,2.4690583455820447 +53.0,5.142992103508062 +54.0,2.9210799706377046 +55.0,2.8849078536562054 +56.0,2.9791145566425876 +57.0,2.5765859316923962 +58.0,3.1789273600897165 +59.0,3.1795204126333614 +60.0,2.589582263725098 +61.0,2.68589915588382 +62.0,2.9536636527358016 +63.0,3.206795425947905 +64.0,3.3981673399570598 +65.0,2.6029103052767546 +66.0,3.377245584691871 +67.0,2.748956616213843 +68.0,2.9573092467178586 +69.0,2.6337775263641703 +70.0,2.4376551279760865 +71.0,2.428466289230703 +72.0,3.247905025615167 +73.0,2.527992837182108 +74.0,3.2433479549651825 +75.0,2.4398306022360905 +76.0,3.1387800453665196 +77.0,2.689415373944967 +78.0,2.5038078677706608 +79.0,3.4140222823565796 +80.0,3.2449405529394 +81.0,2.427028836445617 +82.0,2.447702771997561 +83.0,3.2027281312423983 +84.0,2.566195696030913 +85.0,2.7187618623789556 +86.0,2.5873042259529324 +87.0,2.7726517215111266 +88.0,2.4044907289256026 +89.0,2.4287911094208323 +90.0,2.435812129862679 +91.0,2.479592838324417 +92.0,2.6283533480089765 +93.0,3.4714914469949987 +94.0,2.549067928411119 +95.0,2.5628649161366814 +96.0,2.462162794294287 +97.0,4.083055525542852 +98.0,2.5065486739454643 +99.0,2.7611133578571847 +100.0,2.6711235915724294 +101.0,2.704986781601744 +102.0,2.6121073149062113 +103.0,2.7674491938866965 +104.0,2.7396165188687402 +105.0,2.5856435543944416 +106.0,2.7553266483026526 +107.0,2.6492868698744374 +108.0,2.903881839278297 +109.0,2.4907427163545193 +110.0,3.2689075039256243 +111.0,2.6747117653127535 +112.0,2.567553809983215 +113.0,3.4960325280039912 +114.0,2.649755978621979 +115.0,2.5821069950574653 +116.0,3.8778461412581517 +117.0,2.9349017828340416 +118.0,2.828049445999186 +119.0,2.5920901430334973 +120.0,2.876764848719474 +121.0,3.5455835213500206 +122.0,3.5044478715286145 +123.0,2.4207341734279804 +124.0,3.351270521178451 +125.0,2.981128012850769 +126.0,2.636575544844244 +127.0,2.775592303862875 +128.0,2.428336749667403 +129.0,2.460175907096551 +130.0,2.6757619244036377 +131.0,2.651550628507412 +132.0,2.5527340103454357 +133.0,3.893625935913218 +134.0,2.6934379872051584 +135.0,4.706388114470037 +136.0,2.681582030832878 +137.0,2.5082196901222136 +138.0,2.5413694842147754 +139.0,2.460687160785038 +140.0,5.692985857384704 +141.0,2.5603440927518455 +142.0,2.579848616149097 +143.0,2.403039348998817 +144.0,2.8262564959582317 +145.0,2.693022136245538 +146.0,2.8206306013392806 +147.0,2.7281003320663633 +148.0,3.053319258171401 +149.0,2.6905195052615065 +150.0,2.514931562741864 +151.0,2.603350442759783 +152.0,3.909864359511344 +153.0,4.2964631977914 +154.0,2.650108559931895 +155.0,2.5231144501055107 +156.0,2.426097152001339 +157.0,2.9607268361648655 +158.0,3.2141058508276013 +159.0,3.036214400167515 +160.0,4.53192686928504 +161.0,2.8396580230728317 +162.0,3.597043005362872 +163.0,2.405609837213058 +164.0,2.556643012743677 +165.0,2.5013940621935196 +166.0,2.5188259979998806 +167.0,2.490072061365793 +168.0,2.5846579267424654 +169.0,2.6858398151055463 +170.0,2.590284909844932 +171.0,2.695505566400038 +172.0,2.9867045984663685 +173.0,2.5856577707124777 +174.0,2.592674949339202 +175.0,2.5889130637342532 +176.0,2.521666093706949 +177.0,2.6768207399955672 +178.0,2.425227964315982 +179.0,2.455928716096112 +180.0,2.641038753849259 +181.0,2.618720357786253 +182.0,3.127647698404548 +183.0,2.7653246558752143 +184.0,2.7523751260747455 +185.0,3.3090882741971126 +186.0,2.9573080758398405 +187.0,2.4124062998862965 +188.0,2.457027597035547 +189.0,3.691167640246378 +190.0,2.4047530499357848 +191.0,3.1085817576623405 +192.0,2.404937427525546 +193.0,2.4818950148643935 +194.0,2.9352163203993165 +195.0,2.4281341050189855 +196.0,2.609879704112023 +197.0,4.718437443143932 +198.0,2.4191208559059985 +199.0,2.5623574749500797 +200.0,3.011054558367085 +201.0,2.409928676890135 +202.0,3.037033754013173 +203.0,2.6470915433306272 +204.0,3.8727342186961473 +205.0,2.4266794413745756 +206.0,2.9124231529327718 +207.0,3.309952178142631 +208.0,2.4703031209339916 +209.0,2.603120731627039 +210.0,2.543129355482819 +211.0,2.5754660535188387 +212.0,2.5801880866815843 +213.0,2.5724333959188246 +214.0,3.343373761796413 +215.0,2.4131106319374074 +216.0,2.4384333122032067 +217.0,2.4550893997878918 +218.0,2.5806455973297378 +219.0,2.445035686068672 +220.0,2.4548698727577603 +221.0,2.4347653235465683 +222.0,3.621613118323447 +223.0,4.108111887979174 +224.0,4.467222385376871 +225.0,2.451020285083085 +226.0,2.6609056590625304 +227.0,3.867846269683972 +228.0,2.7409285113103232 +229.0,2.5985642718294355 +230.0,2.4917587571439053 +231.0,2.662052251266651 +232.0,2.435580901647223 +233.0,3.633155433846678 +234.0,2.777043905139917 +235.0,2.5982809741890636 +236.0,2.4002055416073964 +237.0,2.833597507980687 +238.0,2.620160382083408 +239.0,2.6815542142212503 +240.0,3.009533765358669 +241.0,2.8840821396108813 +242.0,4.180090260311273 +243.0,2.6714903967853343 +244.0,2.5533253317664872 +245.0,2.456905455210194 +246.0,3.580721423458587 +247.0,2.646724692222981 +248.0,2.917874305144185 +249.0,2.6645152733417574 +250.0,2.4928905376393824 +251.0,2.89680070788586 +252.0,4.001042130514948 +253.0,3.7204296520625015 +254.0,2.4680631120996885 +255.0,3.063656258668746 +256.0,2.7345122336844123 +257.0,2.4647196308560497 +258.0,2.5722293182157774 +259.0,2.4085042453690373 +260.0,2.663458605284908 +261.0,2.705635065500569 +262.0,2.814313342847374 +263.0,2.7096083232498698 +264.0,3.8025993070141624 +265.0,3.30803404829327 +266.0,2.59403713967938 +267.0,3.660198704839643 +268.0,3.741339950483107 +269.0,3.0709493759840187 +270.0,3.1718188534014224 +271.0,3.174534309563663 +272.0,2.774218056545481 +273.0,2.4671181850242787 +274.0,3.0579178044078676 +275.0,2.8559133259002505 +276.0,2.5804534602532327 +277.0,3.0630139890419765 +278.0,2.8912556224740142 +279.0,2.630180261484112 +280.0,2.41828410111638 +281.0,2.9484603838731456 +282.0,4.030030111780199 +283.0,2.743552022996361 +284.0,2.4483351273160414 +285.0,2.4364496273650382 +286.0,3.1454604780885482 +287.0,3.0283389284856757 +288.0,3.7317530630197107 +289.0,2.5106201359991793 +290.0,3.3974715937709403 +291.0,2.439065414875532 +292.0,3.0648972924826055 +293.0,2.5195041374178913 +294.0,2.936480175414266 +295.0,2.7948454862126235 +296.0,3.169311521087507 +297.0,3.7811464090799993 +298.0,2.9680854872458293 +299.0,2.774272623348775 +300.0,3.4220083413458307 +301.0,2.60197531344735 +302.0,3.3229646058671873 +303.0,3.3620598414947303 +304.0,2.8510636428167464 +305.0,2.5757439916590097 +306.0,3.236724962751958 +307.0,2.410958296683373 +308.0,3.7308868859054716 +309.0,2.5968001496095723 +310.0,2.6338774720397655 +311.0,2.71852615119659 +312.0,2.6207525820632833 +313.0,3.1527201681997283 +314.0,2.55056553038166 +315.0,3.6709307920663026 +316.0,2.922188023088416 +317.0,2.543925847697581 +318.0,2.42004513015689 +319.0,3.175666333051808 +320.0,3.3422414080199725 +321.0,3.86030510894889 +322.0,2.679005647993696 +323.0,2.8173034231023166 +324.0,2.468100267603676 +325.0,2.6722764745446486 +326.0,2.9473989133607166 +327.0,2.8249546610179084 +328.0,3.4768900516064933 +329.0,3.4261338509822195 +330.0,2.9049214121525995 +331.0,2.894033390287303 +332.0,2.9119860168367744 +333.0,2.469321121224735 +334.0,2.9472564428067827 +335.0,2.6128529486242895 +336.0,2.4941807531148843 +337.0,2.8016100387818907 +338.0,2.508862368937303 +339.0,2.6827588159714 +340.0,2.5936418797922802 +341.0,2.4134972011918925 +342.0,3.4436864842461645 +343.0,2.5151528951428364 +344.0,3.375151861372662 +345.0,3.610360071735183 +346.0,2.9578285427310647 +347.0,2.715721981223486 +348.0,2.5926637640019465 +349.0,3.34998871848492 +350.0,2.785145247284723 +351.0,4.192568313370012 +352.0,2.5817583447593635 +353.0,2.405529052442331 +354.0,2.470006103603467 +355.0,4.001058225993514 +356.0,4.475674658868652 +357.0,2.4196948152290108 +358.0,3.8182046975881114 +359.0,2.8081860251198183 +360.0,2.787006138333118 +361.0,2.465284641753502 +362.0,3.212146794538489 +363.0,3.2285369550807395 +364.0,2.4422447013645314 +365.0,3.6224170481824682 +366.0,2.6285789129327877 +367.0,2.8592070336219937 +368.0,3.7078469589706655 +369.0,2.7899340959581838 +370.0,2.778100110720552 +371.0,2.4051946508972812 +372.0,2.4897045182720436 +373.0,3.069704556083611 +374.0,2.7325049990212786 +375.0,2.7079512391619334 +376.0,3.8808364789068337 +377.0,2.5219165446334664 +378.0,3.3250842681352943 +379.0,2.7392124955224038 +380.0,3.489271439236597 +381.0,2.519855789267884 +382.0,2.4442732195115777 +383.0,2.696712735182515 +384.0,2.464857734539482 +385.0,3.5362949781452713 +386.0,2.864588040042186 +387.0,3.9694443819684913 +388.0,3.1659589502942165 +389.0,2.479843556026425 +390.0,2.492037506649155 +391.0,2.629423630712668 +392.0,2.5916639398398535 +393.0,2.938460531305552 +394.0,2.839901134360087 +395.0,2.525842886946509 +396.0,3.534707320335311 +397.0,2.628134223042489 +398.0,2.4792953557117547 +399.0,3.6820308205277876 +400.0,2.4013057328190257 +401.0,3.277100967828922 +402.0,2.93068253358806 +403.0,2.542307538186664 +404.0,2.584142449869171 +405.0,2.5356994131522574 +406.0,2.660662480624572 +407.0,2.9845204604405597 +408.0,2.6779402288457135 +409.0,3.1003161851655032 +410.0,2.443745772935694 +411.0,2.5113081546498592 +412.0,2.747213111561995 +413.0,2.5859224759165707 +414.0,2.5926521047225703 +415.0,2.5774189587488237 +416.0,2.5268716178764485 +417.0,2.9315680526554306 +418.0,2.6133607086134045 +419.0,3.981210278770188 +420.0,3.3991104616427013 +421.0,2.5057315142327456 +422.0,2.609807211525405 +423.0,3.639226015827321 +424.0,2.9944812753056436 +425.0,2.6505614092546015 +426.0,3.1861111756344855 +427.0,2.441205570825348 +428.0,2.882318312890755 +429.0,3.1424135160944426 +430.0,2.900391888813112 +431.0,2.8920544695731216 +432.0,3.4902705392804316 +433.0,2.51360514384015 +434.0,2.703156182860236 +435.0,2.4548547528652853 +436.0,2.55903910085143 +437.0,3.1643601123539637 +438.0,2.5885100410248394 +439.0,3.3102424521625946 +440.0,3.1482044355313867 +441.0,2.740025616363471 +442.0,2.8620288678477017 +443.0,3.140540706445294 +444.0,2.4641506478844715 +445.0,2.4724523811101373 +446.0,2.5086804309442776 +447.0,2.4199490244686612 +448.0,2.4027193174348223 +449.0,3.6164878785172894 +450.0,2.4348572176919427 +451.0,2.871007887137363 +452.0,2.5912612052284807 +453.0,2.9219753302487885 +454.0,2.823168162518736 +455.0,2.4766449655364755 +456.0,2.691540478857914 +457.0,2.401222741975766 +458.0,2.462832714354469 +459.0,2.6088756527859878 +460.0,3.2987885025311385 +461.0,3.4985490671829504 +462.0,2.563718070207993 +463.0,3.6606092887941277 +464.0,4.239798410726387 +465.0,2.442051635126316 +466.0,2.7946886964861313 +467.0,2.9722390686367346 +468.0,2.4562916978921887 +469.0,2.9597640039287945 +470.0,2.900624563112181 +471.0,2.598211282968414 +472.0,3.077933614650844 +473.0,2.493206983811651 +474.0,2.609982904141671 +475.0,2.876482641023425 +476.0,2.4529189748988616 +477.0,2.4162154016470763 +478.0,2.6267913153541866 +479.0,2.8009886309975838 +480.0,2.6144121421536197 +481.0,2.627222550156475 +482.0,3.7496492752039314 +483.0,2.4942854398652172 +484.0,2.4654211792853613 +485.0,2.596795078061613 +486.0,3.2701031245458734 +487.0,3.908810001214217 +488.0,3.5402074302108426 +489.0,3.279753510183352 +490.0,2.507830921830875 +491.0,2.6299033406026715 +492.0,2.691054593370352 +493.0,2.4418832146410114 +494.0,3.096114060594477 +495.0,2.592005779642973 +496.0,2.684775300273903 +497.0,2.796898853613387 +498.0,3.739416767241618 +499.0,2.5627285523753747 +500.0,3.892099808598185 +501.0,2.567491003367874 +502.0,2.5462365374638227 +503.0,3.3855893157362917 +504.0,2.5381175326322998 +505.0,3.5912232451956054 +506.0,2.4821174163323496 +507.0,2.6556812130535903 +508.0,2.5157076645195153 +509.0,3.0140546769595895 +510.0,2.441898240748589 +511.0,3.0877746669734107 +512.0,3.001036190012341 +513.0,2.567652270655454 +514.0,2.7912754184859994 +515.0,2.74796350142543 +516.0,2.962320980629368 +517.0,2.5053376608683586 +518.0,2.460716091938728 +519.0,2.601645949721536 +520.0,3.367035121665096 +521.0,2.476306198919452 +522.0,3.2937800870062732 +523.0,2.834756239559241 +524.0,2.714537438459575 +525.0,2.467851442479831 +526.0,3.031005715191952 +527.0,2.4553032239460357 +528.0,2.895459037616485 +529.0,2.9516389611900276 +530.0,2.6222073927867235 +531.0,2.4190251666451825 +532.0,2.589960734105452 +533.0,2.835095490843142 +534.0,2.4784261749076806 +535.0,3.389812276179198 +536.0,4.251980783506162 +537.0,2.799067117664889 +538.0,2.472515071234961 +539.0,3.3105899583100165 +540.0,2.577291917215071 +541.0,3.3907126040286393 +542.0,3.133941874548208 +543.0,3.534106241172232 +544.0,2.790695941151757 +545.0,2.409131283177202 +546.0,2.416540941140743 +547.0,2.5895580940818723 +548.0,2.8765898652189748 +549.0,2.474480522244058 +550.0,2.9037897148989114 +551.0,4.224623101116845 +552.0,2.6712706441958387 +553.0,2.5042307242869564 +554.0,3.1472316549317676 +555.0,3.2389987696411175 +556.0,2.4500186517472757 +557.0,3.9721408275567986 +558.0,2.8532329015966074 +559.0,3.5689321557647897 +560.0,2.40803731877475 +561.0,2.5899932416445304 +562.0,3.3477342852299747 +563.0,3.202307143414531 +564.0,2.6557070942015235 +565.0,2.6039826836180153 +566.0,2.624669803406959 +567.0,2.719952705072849 +568.0,4.126349141734516 +569.0,2.5600106728057046 +570.0,4.291365099250577 +571.0,2.683874785770901 +572.0,3.4637051377469 +573.0,3.146849403406705 +574.0,2.5740973768339828 +575.0,3.8426764116848 +576.0,2.9474908500206287 +577.0,2.625229339495992 +578.0,3.9355606670189505 +579.0,3.6250422688955175 +580.0,2.6988147534309244 +581.0,2.5768187618100487 +582.0,2.6236876818193937 +583.0,2.420201976345694 +584.0,2.8679502124341147 +585.0,3.13189509252495 +586.0,3.354781944153438 +587.0,2.5840597313747367 +588.0,2.893189251434346 +589.0,2.891889534033438 +590.0,2.4323569690679085 +591.0,2.7481961276032005 +592.0,2.908240465971043 +593.0,3.5505643272742833 +594.0,3.924879743481568 +595.0,2.4880333159114554 +596.0,2.4867314322021774 +597.0,2.5400634550225116 +598.0,2.660409473357332 +599.0,2.426699371081951 +600.0,2.4236965357351488 +601.0,2.5935282883714468 +602.0,2.8324056876726287 +603.0,3.4838654408301872 +604.0,2.4364758769868087 +605.0,2.9054723938868103 +606.0,3.2853988334077164 +607.0,2.534380377312684 +608.0,2.6416362953638335 +609.0,2.7011011393332747 +610.0,3.0003282685525168 +611.0,2.9497942048342067 +612.0,2.9183266722056476 +613.0,2.687255353023556 +614.0,2.5047831595431402 +615.0,3.199588472079801 +616.0,2.8200343581033893 +617.0,2.484033791763988 +618.0,2.814179070685786 +619.0,2.791395087292814 +620.0,4.832705898114268 +621.0,2.544633224765549 +622.0,2.4233204805308555 +623.0,2.5028312789178453 +624.0,2.449343686696209 +625.0,3.151024609154082 +626.0,2.44061968538874 +627.0,2.879673063811584 +628.0,3.085399814052413 +629.0,2.456238996776901 +630.0,3.1089904660754115 +631.0,2.4444751630388084 +632.0,2.9858640488388772 +633.0,2.4560413595127932 +634.0,2.5286239544994746 +635.0,3.2357242537928195 +636.0,2.5810923159979176 +637.0,3.375888693580505 +638.0,2.8462138581542185 +639.0,3.5152227771112345 +640.0,2.9254309906034797 +641.0,4.109315147695343 +642.0,2.8807673400641303 +643.0,2.5445743492172372 +644.0,4.032231405722879 +645.0,2.630011984084097 +646.0,2.57852969969485 +647.0,3.0154835435498604 +648.0,4.1297299798980465 +649.0,2.6519386597164956 +650.0,2.410076179326251 +651.0,2.5411195492895526 +652.0,4.325090730731736 +653.0,2.4470596686641404 +654.0,2.4088695519929413 +655.0,2.8568372335296712 +656.0,3.58298612119595 +657.0,2.844233549161557 +658.0,2.45978580034037 +659.0,2.5117632445457025 +660.0,2.80991602531154 +661.0,2.5233163618411405 +662.0,2.492796273068095 +663.0,2.9180540883849737 +664.0,2.464758754025099 +665.0,2.741171302463591 +666.0,3.528122899268042 +667.0,3.9718749898094243 +668.0,2.920207875836198 +669.0,3.422994082110173 +670.0,2.6907214451607047 +671.0,2.7493366743025938 +672.0,2.5197043944496986 +673.0,3.1954442805384957 +674.0,2.838416808134477 +675.0,3.008344478980707 +676.0,3.213516783937628 +677.0,2.838063059463567 +678.0,3.8174989437294906 +679.0,2.8394783936895185 +680.0,2.513673539053588 +681.0,2.4800893188896973 +682.0,2.7081035943595744 +683.0,3.0188896047370584 +684.0,2.472181567600286 +685.0,3.343113130774964 +686.0,2.685877720297032 +687.0,2.4437541188111447 +688.0,2.7818761012786983 +689.0,2.41616234073217 +690.0,2.556782591603071 +691.0,2.8056344839875305 +692.0,2.6796524946430376 +693.0,2.682092462936716 +694.0,3.033937634103136 +695.0,2.68823741019245 +696.0,4.039691328006838 +697.0,2.6180520001377694 +698.0,2.9921120399513783 +699.0,2.4367975952601513 +700.0,3.0563523705039115 +701.0,3.310992356013654 +702.0,2.4299115893259002 +703.0,3.299617383769578 +704.0,2.4965401479612446 +705.0,2.434420950405152 +706.0,3.023741001566328 +707.0,2.546104142442271 +708.0,2.779246668218332 +709.0,3.052196827752962 +710.0,2.5216764646389933 +711.0,2.5071290491176796 +712.0,3.2346614274293115 +713.0,3.2270688932961678 +714.0,2.745286793123788 +715.0,2.58350370275729 +716.0,2.7808256590654694 +717.0,2.9190789700250765 +718.0,2.4889913569642683 +719.0,2.6416236746870734 +720.0,3.9025066288689674 +721.0,3.9048935149136126 +722.0,3.4298756328739453 +723.0,2.889274392004877 +724.0,2.6257405654501715 +725.0,2.869076188232533 +726.0,3.7034280598517584 +727.0,2.555293849438651 +728.0,2.509146746071087 +729.0,3.126462075153202 +730.0,3.349321743973711 +731.0,2.7560831134275072 +732.0,2.8670473129597527 +733.0,2.5686068291243163 +734.0,2.765134800624785 +735.0,2.6739403315578367 +736.0,3.342315297354239 +737.0,4.112939855428342 +738.0,3.7838190859965035 +739.0,2.883576218718259 +740.0,3.0958650665703273 +741.0,2.741714929741941 +742.0,2.7119155303809244 +743.0,2.400387600356132 +744.0,2.9065749760890762 +745.0,2.4705142640499433 +746.0,3.1558927599097713 +747.0,3.115325283834521 +748.0,3.039118519508789 +749.0,2.4781234464592488 +750.0,2.5183199127197393 +751.0,2.778889331667088 +752.0,2.612339668490413 +753.0,2.5851660275488375 +754.0,2.5342172943630614 +755.0,2.8629231392690278 +756.0,2.7270921421153904 +757.0,3.1964692819773504 +758.0,2.674218533694952 +759.0,3.019481149066264 +760.0,2.436972019088051 +761.0,2.713427724031884 +762.0,2.467613016704919 +763.0,2.7555411350224794 +764.0,2.8871334632883605 +765.0,2.734098254775622 +766.0,2.591173242368815 +767.0,2.6675473056875383 +768.0,2.415817520751876 +769.0,2.637058779856581 +770.0,3.2218422404687255 +771.0,2.894048948098586 +772.0,2.6541640856586652 +773.0,2.4030765088499275 +774.0,2.8008651214291227 +775.0,2.729862732738979 +776.0,2.5288776226819127 +777.0,2.9029823392315324 +778.0,2.6442795276962143 +779.0,3.2311271459942765 +780.0,2.6644283707667604 +781.0,2.823609560710135 +782.0,2.4956430659918056 +783.0,2.9715304231320268 +784.0,2.4263164799974772 +785.0,2.7566454340439024 +786.0,2.7507570628091065 +787.0,2.585720653131798 +788.0,2.5887452964404876 +789.0,2.733650727701002 +790.0,2.527284966528541 +791.0,2.4572967315525855 +792.0,2.4652183015286786 +793.0,2.6094693487910803 +794.0,3.7578846683787592 +795.0,2.783556308237227 +796.0,3.083872022844355 +797.0,3.418419750123881 +798.0,2.5198525775060134 +799.0,2.462442820318702 diff --git a/tests/fixtures/catalogs/case_003_background_high_800d.csv b/tests/fixtures/catalogs/case_003_background_high_800d.csv new file mode 100644 index 0000000..59931b8 --- /dev/null +++ b/tests/fixtures/catalogs/case_003_background_high_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,3.2811202577464877 +1.0,4.523695551007737 +2.0,4.077701829102532 +3.0,3.221930253477602 +4.0,3.2651935044804685 +5.0,3.673076761721938 +6.0,4.001520297860183 +7.0,3.336983302216328 +8.0,3.401350318827468 +9.0,3.069899321063997 +10.0,3.8625022340422746 +11.0,4.517932913086826 +12.0,3.0846791326360523 +13.0,3.5787726439125995 +14.0,4.473850481001112 +15.0,4.438918409669342 +16.0,4.336958337415895 +17.0,3.1701563580049066 +18.0,3.6451445186369815 +19.0,3.321937160772232 +20.0,3.5819742765222253 +21.0,3.508635608890837 +22.0,3.8469558628025213 +23.0,3.076107602764404 +24.0,3.064557862987687 +25.0,3.7218505661902803 +26.0,3.1303562824415687 +27.0,3.5840076662379086 +28.0,3.9473985031869345 +29.0,4.5039746921462065 +30.0,3.024123273349913 +31.0,3.3523082798221875 +32.0,3.923808250470801 +33.0,4.137454895787668 +34.0,3.0011635859600694 +35.0,3.5293360045290765 +36.0,3.4460756081977713 +37.0,5.329763329514214 +38.0,3.545247990106032 +39.0,3.3561392110334904 +40.0,3.2196642499661103 +41.0,4.105006524045972 +42.0,3.148973465782889 +43.0,3.149063925002128 +44.0,4.560864444601066 +45.0,4.207169921059288 +46.0,3.1748655084870063 +47.0,3.272298510216305 +48.0,4.083767046216497 +49.0,4.5357142126638745 +50.0,3.721389155286092 +51.0,3.2623757993843383 +52.0,3.152234809608331 +53.0,3.2542904262005163 +54.0,3.353474584038752 +55.0,3.2571101610739577 +56.0,3.3048457885449274 +57.0,4.638630850467686 +58.0,3.3599494580095555 +59.0,3.509785205487937 +60.0,3.0254662443145386 +61.0,3.0651305897473424 +62.0,3.107876939746161 +63.0,3.6803133692645034 +64.0,3.265513042831539 +65.0,3.732565866872255 +66.0,3.0607613373556175 +67.0,3.56741142620327 +68.0,3.499920712843532 +69.0,3.5312058726886937 +70.0,3.1662560816862833 +71.0,3.2109890556210687 +72.0,3.1718168233158375 +73.0,3.5323246960043972 +74.0,3.0473295711089037 +75.0,4.921179536273798 +76.0,3.168292631737797 +77.0,3.6772422393106186 +78.0,3.3100395428612073 +79.0,3.1213408165936762 +80.0,3.5648448484901056 +81.0,4.389661137607162 +82.0,3.7069925527639818 +83.0,3.8594107407451896 +84.0,3.9380068339982173 +85.0,3.2009859763302053 +86.0,3.1333938839856206 +87.0,4.293347217563124 +88.0,3.378971151489928 +89.0,3.0494301056741713 +90.0,3.469178287606641 +91.0,4.548897699393931 +92.0,3.3267884710950946 +93.0,3.0317677761999704 +94.0,4.214635019471883 +95.0,4.096834392191799 +96.0,3.81003646518052 +97.0,3.178519763344167 +98.0,3.7457679203179515 +99.0,3.442272830664919 +100.0,3.211571769878574 +101.0,3.5331289285738126 +102.0,3.657973452719264 +103.0,3.3610520869112666 +104.0,3.040530703401431 +105.0,3.037062434379247 +106.0,3.837556087960158 +107.0,5.083496276156062 +108.0,3.0986321149153944 +109.0,3.2434899119410985 +110.0,3.3457108515144043 +111.0,3.0963181959854764 +112.0,3.3919188289419475 +113.0,3.1569118749795013 +114.0,3.044820238452272 +115.0,3.507650920507535 +116.0,3.4181058569120557 +117.0,3.613040278473356 +118.0,3.324956045398463 +119.0,3.0061588509099204 +120.0,3.603935202458245 +121.0,3.0635908696868577 +122.0,3.675514106937503 +123.0,3.0490049373337706 +124.0,5.032897252718624 +125.0,3.12721179786718 +126.0,3.1076365219755955 +127.0,3.666472692381705 +128.0,3.2347720286491577 +129.0,3.8500973420590245 +130.0,3.5695519492349144 +131.0,3.382517142647694 +132.0,3.216489474075267 +133.0,3.0414819967387254 +134.0,3.187625891869433 +135.0,4.543325863381559 +136.0,3.3420702776127538 +137.0,3.0720449106244945 +138.0,3.2646707969774518 +139.0,3.6776470432913566 +140.0,3.6383076902097238 +141.0,3.3762102021159213 +142.0,3.226179475669723 +143.0,3.948675395230709 +144.0,3.2176635542132845 +145.0,4.023453927889641 +146.0,3.313978495064821 +147.0,3.490391164823798 +148.0,3.4121838587299327 +149.0,3.3078278055021815 +150.0,3.101152100061397 +151.0,3.249030537174578 +152.0,3.0410255199339717 +153.0,3.0495989970589306 +154.0,3.7217464782701075 +155.0,3.380670929756122 +156.0,3.8186482894424887 +157.0,3.0726467897307934 +158.0,3.3031541120300854 +159.0,3.592240680296284 +160.0,4.730502207165621 +161.0,3.03062751881342 +162.0,3.190519866949579 +163.0,3.62718878380125 +164.0,3.8405530962878847 +165.0,4.024720241064361 +166.0,3.557838116271479 +167.0,3.4060521505481356 +168.0,4.895301030414631 +169.0,3.0298972752957876 +170.0,3.678492488522784 +171.0,3.552141206420432 +172.0,3.1116950013095184 +173.0,3.2113755840044473 +174.0,4.728775942485992 +175.0,3.1720770562984004 +176.0,3.2717320267616437 +177.0,3.5230552152021537 +178.0,3.8424736970673767 +179.0,3.897417211730147 +180.0,3.040574098924671 +181.0,3.265291601185125 +182.0,3.197362670778066 +183.0,3.2334734816050767 +184.0,3.301499347275339 +185.0,3.3292724047125084 +186.0,3.142571714266378 +187.0,3.239016884921407 +188.0,3.6796437004639504 +189.0,3.2992816434657293 +190.0,3.105214898472354 +191.0,3.6514848697163274 +192.0,4.116350646279001 +193.0,3.043718335960018 +194.0,3.623744803073744 +195.0,3.517236489431119 +196.0,3.668986830260312 +197.0,3.2665557376185355 +198.0,4.697561758935449 +199.0,3.742506779470104 +200.0,3.367440080692445 +201.0,3.1714579880641107 +202.0,3.480593706170697 +203.0,3.3333711209059538 +204.0,3.1894373413789276 +205.0,3.4554955996553485 +206.0,3.7649944467770613 +207.0,4.664744451960092 +208.0,3.1311564032390025 +209.0,3.5878467934850615 +210.0,3.7975949540963825 +211.0,3.8999513587526637 +212.0,3.1786705678785454 +213.0,3.1047648330503597 +214.0,4.103785781989657 +215.0,3.2862924650483576 +216.0,3.03138584590299 +217.0,3.076036148587866 +218.0,4.621418529940119 +219.0,3.110572471057316 +220.0,3.0514010347643907 +221.0,3.5699765784436313 +222.0,3.7773292612180533 +223.0,4.004507812402005 +224.0,3.2490622480994342 +225.0,3.5289336301979732 +226.0,3.4932538946503606 +227.0,4.473234369447991 +228.0,3.3962648480877915 +229.0,3.1693425117325447 +230.0,3.348470988996695 +231.0,3.597152716958427 +232.0,4.127545480069069 +233.0,4.503252644337091 +234.0,3.009894634474698 +235.0,3.25435371516943 +236.0,3.873582254299266 +237.0,3.2295784173183337 +238.0,3.1693359498988825 +239.0,3.070955140531223 +240.0,4.442688129614446 +241.0,3.579540880259608 +242.0,3.078961728477369 +243.0,4.360018638211403 +244.0,3.282911990832694 +245.0,3.351125302650691 +246.0,3.261715779005712 +247.0,3.1187445263513305 +248.0,3.9454850306264873 +249.0,3.812962740445198 +250.0,3.008011124442188 +251.0,3.192072345126257 +252.0,3.1097145421224166 +253.0,3.0432263110043962 +254.0,3.288903301322697 +255.0,3.1106573493603413 +256.0,3.0878670531295827 +257.0,3.249447517944418 +258.0,3.344404528980983 +259.0,3.098148981283915 +260.0,3.7381249358941857 +261.0,3.314023764986627 +262.0,4.1776563026568585 +263.0,3.909834100846296 +264.0,3.0683472851014555 +265.0,3.4440950720829724 +266.0,3.2592362138031046 +267.0,3.3323540230949624 +268.0,3.5478705374592905 +269.0,3.5768970589679716 +270.0,3.052117877207705 +271.0,3.877292845552721 +272.0,3.1997802808045224 +273.0,4.474797354415232 +274.0,3.0231013810026166 +275.0,4.145215355534397 +276.0,4.545096385709821 +277.0,3.019228964989024 +278.0,3.731776826086564 +279.0,3.9650895650236575 +280.0,3.3996368111828468 +281.0,3.1720599301633876 +282.0,3.705570296411482 +283.0,3.176212590138919 +284.0,3.2713801456882137 +285.0,3.108973880227326 +286.0,4.651796211893272 +287.0,3.063343089384787 +288.0,3.8119548501982146 +289.0,3.870261352339146 +290.0,3.164484305467539 +291.0,3.473672503519799 +292.0,3.2240873390364095 +293.0,3.903771252283595 +294.0,3.0360978738306623 +295.0,3.4994790652883996 +296.0,3.010900630661567 +297.0,3.704414843132091 +298.0,3.2300438730227725 +299.0,3.2980403544981747 +300.0,3.229511107337197 +301.0,3.674630787606415 +302.0,3.6061267504873573 +303.0,4.415365544367473 +304.0,3.040420773519122 +305.0,3.4116832734465254 +306.0,3.1846181247018635 +307.0,3.587255656951341 +308.0,3.8046952967887933 +309.0,3.101730996150752 +310.0,4.627562306704078 +311.0,4.008697522084258 +312.0,4.208490390009782 +313.0,3.0682485496767864 +314.0,3.556181838110635 +315.0,3.4459167565664655 +316.0,4.4651709133674995 +317.0,3.5480036058588906 +318.0,3.2937461090217486 +319.0,3.1764922487382297 +320.0,3.897596544999711 +321.0,3.406382222890114 +322.0,3.2721813592195876 +323.0,5.565972054139172 +324.0,3.6986674602815723 +325.0,3.003189482746968 +326.0,3.50832215171881 +327.0,3.5382681745395046 +328.0,3.0312539935060365 +329.0,3.8082896001443554 +330.0,3.749922083952202 +331.0,3.160431631458749 +332.0,3.3319198776679952 +333.0,3.4225226818108743 +334.0,5.021398318898159 +335.0,4.063327784111186 +336.0,3.0341765674841334 +337.0,5.529572950007646 +338.0,3.7397289372586893 +339.0,3.021840433708766 +340.0,3.225111345386368 +341.0,3.391884608541545 +342.0,4.533090949964718 +343.0,4.2491436581962345 +344.0,3.196453889358766 +345.0,4.697137643982101 +346.0,3.812409753984473 +347.0,3.672503967035372 +348.0,3.2357157869682083 +349.0,3.2748394623484782 +350.0,3.797118818261792 +351.0,3.038076328967028 +352.0,3.5074098972570296 +353.0,3.1597509779044093 +354.0,3.2657211827283223 +355.0,3.911063893540424 +356.0,4.089227304837012 +357.0,3.588834773282718 +358.0,3.096017422418843 +359.0,3.702849959907033 +360.0,3.260660891065981 +361.0,3.6751047354527655 +362.0,3.3944338144345725 +363.0,3.4008455000508326 +364.0,3.0265630366542746 +365.0,3.0840584993615567 +366.0,4.232875716636128 +367.0,3.2866351939011835 +368.0,3.473214908885895 +369.0,4.295953706660335 +370.0,3.024328748849472 +371.0,3.4028877922445364 +372.0,3.235644122112629 +373.0,3.21128292315896 +374.0,3.036411925726477 +375.0,3.2790168995372895 +376.0,3.452352115837855 +377.0,3.159117043890959 +378.0,3.757001171174153 +379.0,3.6549041234960784 +380.0,3.0656264675515543 +381.0,3.5671874470279903 +382.0,3.0771425022400023 +383.0,3.338764267083123 +384.0,3.4431244356226034 +385.0,3.233700973994674 +386.0,3.18689484841888 +387.0,3.7064302466917827 +388.0,4.335211780886942 +389.0,3.3686508947095164 +390.0,3.1583983873356796 +391.0,4.845026336429733 +392.0,3.3097181210464686 +393.0,3.1686592265021933 +394.0,3.1990349759485386 +395.0,3.1788906300484987 +396.0,3.0505080691044224 +397.0,3.492320600154272 +398.0,3.1587694716192978 +399.0,3.872416515531722 +400.0,3.8021456465555294 +401.0,4.473165687988356 +402.0,3.6922145770185546 +403.0,3.132727125356691 +404.0,3.1886843327221803 +405.0,3.728635300050117 +406.0,3.346159655685116 +407.0,3.132279687907556 +408.0,3.5410259122594145 +409.0,3.862852634747734 +410.0,3.1167642296886804 +411.0,3.262565426636834 +412.0,4.341023714789171 +413.0,3.284755927234977 +414.0,3.003475897919814 +415.0,3.088747705712171 +416.0,3.410220738635049 +417.0,3.543593354343394 +418.0,3.3183554617281126 +419.0,4.68317319692691 +420.0,3.4105417178693402 +421.0,3.057675411103204 +422.0,3.7697033770648445 +423.0,3.32071862940249 +424.0,3.608157666626412 +425.0,3.375844182285306 +426.0,3.0450065583181933 +427.0,3.4185909978332947 +428.0,3.19856396249359 +429.0,3.8416378830474605 +430.0,3.4241267659514145 +431.0,3.9155397297382875 +432.0,3.3989489084919446 +433.0,3.72900537247536 +434.0,3.082860205755039 +435.0,3.1193460132814748 +436.0,4.517119029267207 +437.0,3.155478303253181 +438.0,3.0112735305172484 +439.0,3.210369838701357 +440.0,4.314748068421218 +441.0,3.8746588928267567 +442.0,4.004619939580728 +443.0,3.1637728012667408 +444.0,3.409848937430723 +445.0,3.3256809961331317 +446.0,3.5649433544898077 +447.0,3.7942532845279238 +448.0,4.196563616433872 +449.0,3.8163952254668936 +450.0,3.3682325555413555 +451.0,4.340020501530272 +452.0,4.794468378252261 +453.0,3.010316026671389 +454.0,3.083367010231695 +455.0,4.633392617437722 +456.0,3.267090860677325 +457.0,3.9441268781113354 +458.0,3.0455634540373 +459.0,4.0010331455487265 +460.0,3.2396478423870505 +461.0,3.45674989211666 +462.0,3.5856650868427025 +463.0,3.1432000273475684 +464.0,3.0874440965025665 +465.0,3.2372201497586683 +466.0,3.4806592325309795 +467.0,3.3465685268093086 +468.0,3.7682972708281124 +469.0,3.0929870769301018 +470.0,6.864435278887793 +471.0,3.1843042172259732 +472.0,3.188815359501266 +473.0,3.9647796709379395 +474.0,3.085779042766676 +475.0,4.996902416741822 +476.0,4.160625631875058 +477.0,3.206735569961885 +478.0,5.777298935632832 +479.0,4.594628759424608 +480.0,3.366120347666225 +481.0,3.2392003676274013 +482.0,3.520003437411088 +483.0,3.353458963856056 +484.0,3.4685522073751214 +485.0,3.0485642001547144 +486.0,3.365962958612454 +487.0,3.2913183379999396 +488.0,3.451632458977605 +489.0,3.6419459899974624 +490.0,3.3738770726675518 +491.0,3.8755230266133927 +492.0,5.24063995191848 +493.0,4.149033082930306 +494.0,3.276249840085828 +495.0,3.3806534058203392 +496.0,4.232786689258798 +497.0,3.2331599093185157 +498.0,3.486994091382851 +499.0,4.566468837007408 +500.0,3.4650560441486027 +501.0,3.0692670258202783 +502.0,3.1974240607742352 +503.0,3.306106459000171 +504.0,3.4228012760271747 +505.0,3.543509152037439 +506.0,5.455462238001289 +507.0,3.1359671624972947 +508.0,3.2760576655282496 +509.0,3.083640001455482 +510.0,4.169242335550013 +511.0,4.510234246412816 +512.0,3.066985954155872 +513.0,3.012608901936636 +514.0,3.0736011452937895 +515.0,3.909000113351703 +516.0,3.6830083449884228 +517.0,3.1234911783810992 +518.0,4.024311510372563 +519.0,4.027146555341346 +520.0,3.524205949457521 +521.0,3.0202189734903246 +522.0,5.409732531320271 +523.0,4.132918693399163 +524.0,3.19345043781806 +525.0,3.8088954553417453 +526.0,3.331748690568868 +527.0,3.4179793354779484 +528.0,3.6799901112920836 +529.0,4.323752276703507 +530.0,3.00636989949322 +531.0,3.4867194803629142 +532.0,4.193666783040033 +533.0,3.675419707679422 +534.0,3.0751996141463227 +535.0,3.537596513216103 +536.0,3.406501392157684 +537.0,3.2017582325248917 +538.0,3.2236125582087847 +539.0,3.094706118266996 +540.0,3.8728958794656383 +541.0,3.1672105227396035 +542.0,3.017880921511955 +543.0,3.103416217770024 +544.0,3.134306995169007 +545.0,3.0916250518286357 +546.0,3.052262201370423 +547.0,3.353199913210357 +548.0,3.7547487203254706 +549.0,3.1673932595149377 +550.0,4.468148727605698 +551.0,3.8341792422709062 +552.0,4.077345849420928 +553.0,3.149097598757085 +554.0,3.020217729169885 +555.0,3.16829226850804 +556.0,3.8644529310368982 +557.0,3.1405350248188086 +558.0,4.236964930030913 +559.0,3.8010493915080428 +560.0,3.0872542937805507 +561.0,5.441849185935278 +562.0,3.011070273687827 +563.0,3.276197210363522 +564.0,3.0862976176049384 +565.0,3.6850858409109017 +566.0,3.2702682918943937 +567.0,3.1984379351930783 +568.0,3.740207030504172 +569.0,3.1060067925068795 +570.0,3.4655872284657594 +571.0,4.058409057658725 +572.0,4.109097660022402 +573.0,3.3362454776689194 +574.0,3.099589577871698 +575.0,3.297966977935015 +576.0,4.755449869322056 +577.0,3.313553796860389 +578.0,3.0685626556253602 +579.0,3.598111623466434 +580.0,3.4565595671886826 +581.0,3.5507237366868027 +582.0,3.0134144339921267 +583.0,3.090646752467999 +584.0,4.520134766642151 +585.0,4.266439884998848 +586.0,3.7285556746794866 +587.0,3.0557561481106363 +588.0,3.580116673530648 +589.0,3.672940729667882 +590.0,3.0855325785090617 +591.0,4.4239724477317965 +592.0,3.015185097989766 +593.0,3.8880760823717453 +594.0,4.353301458081848 +595.0,3.0242963390369435 +596.0,4.068129350277978 +597.0,3.6523930609200606 +598.0,3.156723086401159 +599.0,3.207317087513377 +600.0,3.0614895934427526 +601.0,3.812609084061763 +602.0,3.163677969235587 +603.0,3.164850740154047 +604.0,3.2854610069516363 +605.0,3.346535598105764 +606.0,3.321461204442896 +607.0,3.1824711423886685 +608.0,3.914233175347737 +609.0,3.419995438469954 +610.0,3.18221704072727 +611.0,4.099247571931849 +612.0,3.3112860559267316 +613.0,3.171508994128433 +614.0,3.0823283034309856 +615.0,3.358739216288902 +616.0,3.005629326479645 +617.0,3.633504204335222 +618.0,3.3256138801092403 +619.0,3.6687784041386786 +620.0,3.4402495965960975 +621.0,5.145227639265427 +622.0,3.013195322720144 +623.0,3.3721475724270475 +624.0,3.4394318347108404 +625.0,3.485842919243982 +626.0,3.0605712090131214 +627.0,3.4491176457698733 +628.0,3.390100007890255 +629.0,5.223218968837544 +630.0,3.942766203914866 +631.0,3.226197986513236 +632.0,4.423968016757556 +633.0,3.1954177239413197 +634.0,3.008273886560708 +635.0,3.2425438335491417 +636.0,3.067184784607279 +637.0,3.757222974285603 +638.0,3.4666312037868225 +639.0,3.866658776756233 +640.0,3.055487861874574 +641.0,3.8806918268648274 +642.0,3.0888662786016168 +643.0,3.4208898208918366 +644.0,3.2958871052737573 +645.0,6.4074659403858725 +646.0,3.1961300201298477 +647.0,3.0024533256728807 +648.0,3.238112110881262 +649.0,3.4457950158396735 +650.0,4.689076686017947 +651.0,3.187810788102169 +652.0,4.337061941834374 +653.0,3.3315217690413634 +654.0,3.7505298877986273 +655.0,3.173694681158871 +656.0,4.578623662037524 +657.0,3.6045606090218953 +658.0,3.161244215415689 +659.0,3.6824215372452715 +660.0,3.938632383954431 +661.0,3.988779973619335 +662.0,3.570578612298766 +663.0,3.2247687097706432 +664.0,3.4150488478478245 +665.0,3.108055282818635 +666.0,3.5752547318877883 +667.0,4.8603321673839694 +668.0,4.509205335534771 +669.0,3.1086139526364 +670.0,4.347985692135659 +671.0,5.081420643163233 +672.0,3.984678390055421 +673.0,4.366887851697469 +674.0,3.2926959311154516 +675.0,3.7244094577182225 +676.0,3.5870507514688703 +677.0,4.684627043933462 +678.0,3.057211732193072 +679.0,3.5451413930729774 +680.0,3.8192616875024616 +681.0,3.3400371016001995 +682.0,3.2601067588407964 +683.0,3.4386066482167585 +684.0,3.179304245650562 +685.0,4.933269714074956 +686.0,3.248772978241434 +687.0,3.063417144132165 +688.0,3.490753507560555 +689.0,5.209077018648584 +690.0,3.221787579804616 +691.0,3.0728936955602264 +692.0,3.6926598848062437 +693.0,3.26221398211056 +694.0,3.298652306379486 +695.0,3.3013311400624294 +696.0,3.45681623244773 +697.0,3.191714429569626 +698.0,4.5174739508438355 +699.0,3.002557652736822 +700.0,3.278609994821099 +701.0,3.5877671319335023 +702.0,3.0737371448671107 +703.0,3.517279203101633 +704.0,3.527417955931386 +705.0,3.1177864365392844 +706.0,3.8474766520265735 +707.0,4.344756678930489 +708.0,3.4087423133423456 +709.0,4.676340819141669 +710.0,4.780072445833833 +711.0,4.08108082513882 +712.0,3.299497789331695 +713.0,3.4759602282794253 +714.0,4.795403946694267 +715.0,3.796884765312104 +716.0,3.0022329222179422 +717.0,4.446790953201049 +718.0,3.2756084543545425 +719.0,3.248359265282224 +720.0,3.0306881091684073 +721.0,3.1791703998451273 +722.0,4.438294689328117 +723.0,3.5668136868226403 +724.0,5.228583073065645 +725.0,4.574195156802346 +726.0,3.3274984444123987 +727.0,3.858735115622659 +728.0,3.16957545734495 +729.0,4.713307184801266 +730.0,3.511674875403043 +731.0,3.0001713095166105 +732.0,3.0178824160408655 +733.0,3.3146434972658305 +734.0,4.294383932442695 +735.0,3.2750111163838485 +736.0,3.295444326611643 +737.0,3.0619990317762134 +738.0,3.6862204229124096 +739.0,3.7256749396603284 +740.0,3.125676356788745 +741.0,3.192574252834121 +742.0,4.379598751841157 +743.0,3.2849806876899756 +744.0,4.305785042267309 +745.0,3.3863433273475776 +746.0,3.797729570546769 +747.0,3.1317609433777394 +748.0,4.008087765402738 +749.0,3.0651217488730604 +750.0,4.338016293788503 +751.0,3.263110346785546 +752.0,3.0888590222397845 +753.0,3.0541779907029065 +754.0,3.227993989433172 +755.0,3.3928463102998796 +756.0,4.3949824491903815 +757.0,3.3739549011480863 +758.0,3.346395658028791 +759.0,3.6241308331188544 +760.0,3.5177859550456057 +761.0,3.180879750307082 +762.0,3.7639884954171015 +763.0,3.793145039257487 +764.0,3.5998620871372626 +765.0,4.56740397048717 +766.0,3.1701109432340777 +767.0,3.714816706792938 +768.0,3.2338922541765656 +769.0,3.395429290494527 +770.0,3.242991950217424 +771.0,3.896550463508415 +772.0,3.0698263471127083 +773.0,3.094374053512486 +774.0,3.522017724181937 +775.0,4.167267425627973 +776.0,3.5474770976438896 +777.0,3.0708126629155763 +778.0,4.223324925231088 +779.0,3.072649185298642 +780.0,4.0997369564933805 +781.0,3.194406427130205 +782.0,3.640124176973178 +783.0,3.006173884645346 +784.0,3.9217918278274997 +785.0,3.3462538821529386 +786.0,3.357705900779412 +787.0,4.587548916943831 +788.0,3.7326741287040175 +789.0,3.14408050615191 +790.0,4.497527366834304 +791.0,3.208793954747472 +792.0,5.532108002543224 +793.0,3.8296388459459694 +794.0,4.851970782803596 +795.0,3.8107995841068703 +796.0,3.9090250581890427 +797.0,3.685118316686296 +798.0,3.87326077430363 +799.0,4.612468754152335 diff --git a/tests/fixtures/catalogs/case_004_periodic_800d.csv b/tests/fixtures/catalogs/case_004_periodic_800d.csv new file mode 100644 index 0000000..f55c90f --- /dev/null +++ b/tests/fixtures/catalogs/case_004_periodic_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.5003238861495447 +1.0,2.713813485921395 +2.0,2.8343167056392877 +3.0,3.044262380845671 +4.0,3.2013349888790055 +5.0,3.3650058613187976 +6.0,3.6210542559208414 +7.0,3.765265541085553 +8.0,3.9310488752922197 +9.0,4.16573731209704 +10.0,4.284081430933163 +11.0,4.430828915821841 +12.0,2.5190184724352314 +13.0,2.697066708931994 +14.0,2.859130298354613 +15.0,3.04711014599711 +16.0,3.271974230675064 +17.0,3.409178153783832 +18.0,3.5457023740562486 +19.0,3.7570783274488027 +20.0,3.9409916963828424 +21.0,4.126165273511274 +22.0,4.269918511230653 +23.0,4.451473577447025 +24.0,2.4997943673429366 +25.0,2.6786961134515272 +26.0,2.861317556215287 +27.0,3.0546706598915985 +28.0,3.232003695128658 +29.0,3.3884718779129983 +30.0,3.52616984131562 +31.0,3.797153030734887 +32.0,3.9102943890621655 +33.0,4.1527900527007695 +34.0,4.301547861797467 +35.0,4.456935244756121 +36.0,2.465468551115302 +37.0,2.695574113224456 +38.0,2.8763814461399524 +39.0,3.0059161896715842 +40.0,3.200711963288633 +41.0,3.3823436326869416 +42.0,3.5247760820717655 +43.0,3.7647555736900586 +44.0,3.982755226082089 +45.0,4.10265348844075 +46.0,4.297620899805435 +47.0,4.438970108922608 +48.0,2.499054262536335 +49.0,2.672678602685113 +50.0,2.839490791996663 +51.0,3.0723884560161228 +52.0,3.2238134240703267 +53.0,3.410246931858246 +54.0,3.5299946041956063 +55.0,3.772321092320346 +56.0,3.9067032540909037 +57.0,4.143446182504357 +58.0,4.335497301496409 +59.0,4.448354836503792 +60.0,2.553610765572954 +61.0,2.664571971161517 +62.0,2.857440141984745 +63.0,3.0480447425810735 +64.0,3.250477838836438 +65.0,3.404067093732985 +66.0,3.5615008291073003 +67.0,3.733577287176327 +68.0,3.9221832049152887 +69.0,4.096359762136779 +70.0,4.309077868174371 +71.0,4.479705927192593 +72.0,2.503476895194587 +73.0,2.6934974207309392 +74.0,2.8371151455488315 +75.0,3.001862263221062 +76.0,3.269639380182842 +77.0,3.4215222345723735 +78.0,3.569285656634809 +79.0,3.7570409495641326 +80.0,3.9464936239237005 +81.0,4.101816013885077 +82.0,4.290060982695575 +83.0,4.469075312005278 +84.0,2.4680551671705713 +85.0,2.7002177950748414 +86.0,2.882530845169396 +87.0,3.058300941206424 +88.0,3.266894416812195 +89.0,3.3775561397013094 +90.0,3.545565415415349 +91.0,3.7456585066916066 +92.0,3.928559435873502 +93.0,4.115778702845189 +94.0,4.326238316577478 +95.0,4.5033052812940175 +96.0,2.502744891699159 +97.0,2.6979275685000763 +98.0,2.8524792749605137 +99.0,3.033878938549288 +100.0,3.205841392223621 +101.0,3.3677822939224806 +102.0,3.577272730892623 +103.0,3.77274099750746 +104.0,3.926088509076492 +105.0,4.1496099292880295 +106.0,4.330351865681357 +107.0,4.513251030821838 +108.0,2.481879196823444 +109.0,2.615868186508093 +110.0,2.890737264215941 +111.0,3.0386882931863584 +112.0,3.246489195488403 +113.0,3.3788069603455164 +114.0,3.5346996871562477 +115.0,3.7056069366457947 +116.0,3.966562190761072 +117.0,4.067524749828889 +118.0,4.312719905062042 +119.0,4.497765553316976 +120.0,2.516276799025202 +121.0,2.6475584281560134 +122.0,2.828681236913552 +123.0,3.0283465786329598 +124.0,3.240534049879806 +125.0,3.3661750419745493 +126.0,3.5628147544691484 +127.0,3.7804572199094633 +128.0,3.896345579241706 +129.0,4.138581358951935 +130.0,4.28964897044954 +131.0,4.491475074357124 +132.0,2.507247236731482 +133.0,2.689181644901672 +134.0,2.867626921905467 +135.0,3.065792417560246 +136.0,3.1898376237221844 +137.0,3.398730136236904 +138.0,3.576959058699621 +139.0,3.794642926161519 +140.0,3.9447905788281132 +141.0,4.1717127641216765 +142.0,4.299602082643432 +143.0,4.490648532290798 +144.0,2.4585573339386784 +145.0,2.707751010795994 +146.0,2.8977941603677433 +147.0,3.053411759564674 +148.0,3.2517393262271517 +149.0,3.402822593980485 +150.0,3.60073733403305 +151.0,3.7350792710260556 +152.0,3.973919069904207 +153.0,4.1628803424853755 +154.0,4.315129997637799 +155.0,4.483672911549528 +156.0,2.5045976081286354 +157.0,2.6871525364393234 +158.0,2.856894686824085 +159.0,3.0707110286642294 +160.0,3.197042587354677 +161.0,3.3864230181784354 +162.0,3.571285311007063 +163.0,3.7872045943919543 +164.0,3.9404043890384495 +165.0,4.107261195490246 +166.0,4.277073674526993 +167.0,4.466039781321264 +168.0,2.47002603878602 +169.0,2.6869476092352986 +170.0,2.866307049666505 +171.0,3.038051570540792 +172.0,3.206417562153326 +173.0,3.3733575505456 +174.0,3.557091428005443 +175.0,3.785382767151644 +176.0,3.9576747261391882 +177.0,4.155256901502808 +178.0,4.26163639013905 +179.0,4.43625325313527 +180.0,2.4968174278508886 +181.0,2.6733609669269107 +182.0,2.8647111206900937 +183.0,3.0612637027680663 +184.0,3.244452906629047 +185.0,3.4440878471887375 +186.0,3.5937767373756406 +187.0,3.7425580207490734 +188.0,3.915270273757552 +189.0,4.121840555689247 +190.0,4.324426619794421 +191.0,4.486753030873965 +192.0,2.5097918850438967 +193.0,2.669615255992205 +194.0,2.9052003306746252 +195.0,3.0554340643923577 +196.0,3.2276625558212544 +197.0,3.3930305791145257 +198.0,3.610369095326684 +199.0,3.731345271022031 +200.0,3.913775262426347 +201.0,4.149053503798435 +202.0,4.283399043063905 +203.0,4.491360297053938 +204.0,2.4651745918196872 +205.0,2.6743973480570653 +206.0,2.883080005602697 +207.0,3.050475644039139 +208.0,3.229545802216866 +209.0,3.3227356026828327 +210.0,3.597080773681909 +211.0,3.725922783639802 +212.0,3.952385532914853 +213.0,4.1254144808536175 +214.0,4.3032044848825635 +215.0,4.471399064085131 +216.0,2.4808863611524767 +217.0,2.6839530989979763 +218.0,2.888718800091788 +219.0,3.0192108389370604 +220.0,3.225232452257886 +221.0,3.425293264678077 +222.0,3.5709121329345535 +223.0,3.8089195456077265 +224.0,3.9373276757717552 +225.0,4.159943878879958 +226.0,4.309691837107884 +227.0,4.4699210781025425 +228.0,2.4914658417154665 +229.0,2.6515023447817243 +230.0,2.87537462188026 +231.0,3.0012797697813967 +232.0,3.227298508398882 +233.0,3.3771078052639747 +234.0,3.580424952990714 +235.0,3.7370104098174073 +236.0,3.9063033527977087 +237.0,4.1196087218283886 +238.0,4.304587710683993 +239.0,4.53931399328706 +240.0,2.498274755931917 +241.0,2.711326618956901 +242.0,2.884302295935304 +243.0,3.04874424273633 +244.0,3.249135147395333 +245.0,3.4148270944526846 +246.0,3.5824384657666584 +247.0,3.7785220690874075 +248.0,3.954103323397038 +249.0,4.092439399790561 +250.0,4.267661914193892 +251.0,4.467767882433363 +252.0,2.497190070708734 +253.0,2.645825622329735 +254.0,2.837983738497904 +255.0,3.038687429330672 +256.0,3.194456690814289 +257.0,3.442265836889363 +258.0,3.618129670867477 +259.0,3.7761311933407873 +260.0,3.9476777469642537 +261.0,4.150804554193514 +262.0,4.335947265569785 +263.0,4.474257981284698 +264.0,2.4840776728879312 +265.0,2.6906641244708367 +266.0,2.8792986813731676 +267.0,2.9928560607723167 +268.0,3.1547456787125974 +269.0,3.4052953377725683 +270.0,3.607526328157129 +271.0,3.7878079704206877 +272.0,3.9037653114008593 +273.0,4.142143857396304 +274.0,4.274588201078465 +275.0,4.466550144361408 +276.0,2.463169201029782 +277.0,2.6720609541016884 +278.0,2.81812556715899 +279.0,3.070684384563053 +280.0,3.2436312288254894 +281.0,3.3963147889299368 +282.0,3.5487795899805015 +283.0,3.772570337113491 +284.0,3.893564438007791 +285.0,4.0793621048433035 +286.0,4.33731021839981 +287.0,4.488111083112545 +288.0,2.5098047973670545 +289.0,2.665944484396751 +290.0,2.8212476282901555 +291.0,3.0588230933163687 +292.0,3.2335393503825136 +293.0,3.4135958160512287 +294.0,3.582622646384111 +295.0,3.739395015244093 +296.0,3.9784298554732005 +297.0,4.091925998077733 +298.0,4.278648858662316 +299.0,4.487031350063184 +300.0,2.5268166511865013 +301.0,2.7171310174600696 +302.0,2.876695462221777 +303.0,3.081256543029461 +304.0,3.188834493005604 +305.0,3.399541771889912 +306.0,3.6085086954414334 +307.0,3.7773108832938225 +308.0,3.9489496644783113 +309.0,4.105513865225874 +310.0,4.2683931630770235 +311.0,4.475706496021665 +312.0,2.5290559266573664 +313.0,2.670538284247396 +314.0,2.880661043532433 +315.0,3.0538553644464193 +316.0,3.2116024368755873 +317.0,3.3625521204112188 +318.0,3.5571394577612265 +319.0,3.7301304193423688 +320.0,3.942855075484878 +321.0,4.1247527152138215 +322.0,4.278143590697101 +323.0,4.505304376318946 +324.0,2.492562159292465 +325.0,2.6657740506408603 +326.0,2.8649306244674206 +327.0,3.068633395228471 +328.0,3.210026408043425 +329.0,3.4275506324474114 +330.0,3.575342342502834 +331.0,3.741992252020889 +332.0,3.9565422582632697 +333.0,4.1169096387058515 +334.0,4.294736199053385 +335.0,4.48532739494007 +336.0,2.478757860467482 +337.0,2.661256020101085 +338.0,2.8418845229898073 +339.0,3.0648369298223095 +340.0,3.222962767329576 +341.0,3.3980203588401268 +342.0,3.5736546493601113 +343.0,3.747868873638644 +344.0,3.925552097177918 +345.0,4.1437267716090815 +346.0,4.323618229482206 +347.0,4.487523761030664 +348.0,2.496570942790786 +349.0,2.6794325095003293 +350.0,2.8637764343814167 +351.0,3.0036113299041385 +352.0,3.2269507663671115 +353.0,3.3988771400964013 +354.0,3.56293015039446 +355.0,3.778378925375659 +356.0,3.959232193920178 +357.0,4.133632276045114 +358.0,4.319791074908316 +359.0,4.464108635450182 +360.0,2.5209857329686103 +361.0,2.7069878543851185 +362.0,2.858996012064521 +363.0,3.007949324973711 +364.0,3.2382650356344307 +365.0,3.389244557839432 +366.0,3.5991356581881337 +367.0,3.7518823688364322 +368.0,3.9092602958146645 +369.0,4.1218296381192925 +370.0,4.351100589240487 +371.0,4.473089922530955 +372.0,2.4517918415932956 +373.0,2.6305554879875404 +374.0,2.872255339344531 +375.0,3.036579003544244 +376.0,3.2518090438772074 +377.0,3.4110224536058666 +378.0,3.5939603581158277 +379.0,3.811072934881809 +380.0,3.944115521893507 +381.0,4.120922458806 +382.0,4.325897502843376 +383.0,4.495848570966018 +384.0,2.464967645580154 +385.0,2.6662542817221784 +386.0,2.8339249549278156 +387.0,3.013472598863104 +388.0,3.1718720512920737 +389.0,3.459272067508805 +390.0,3.5812656988791463 +391.0,3.7404084698094326 +392.0,3.917264688553563 +393.0,4.072178207336504 +394.0,4.343685569549529 +395.0,4.5005737566529005 +396.0,2.4961579462985988 +397.0,2.66765019460724 +398.0,2.876475585098856 +399.0,3.0629708361690895 +400.0,3.2460263281825434 +401.0,3.422841111635908 +402.0,3.595860049421493 +403.0,3.801686492839401 +404.0,3.916196917857005 +405.0,4.088278102407456 +406.0,4.273150786443736 +407.0,4.4591458454256925 +408.0,2.467994977241885 +409.0,2.629908185124232 +410.0,2.8396689380383178 +411.0,3.060003803993503 +412.0,3.2281486394760632 +413.0,3.3823330573833563 +414.0,3.5633935523757145 +415.0,3.7669118470712606 +416.0,3.92609440242412 +417.0,4.143717939092759 +418.0,4.249089511992348 +419.0,4.470486559843214 +420.0,2.5188790445896996 +421.0,2.6803253180885642 +422.0,2.841548768106403 +423.0,3.010815304203775 +424.0,3.235173112752939 +425.0,3.403966594989162 +426.0,3.615926796490363 +427.0,3.786984700945477 +428.0,3.929921263907031 +429.0,4.134948121657836 +430.0,4.307831374830647 +431.0,4.504758442463806 +432.0,2.5404489013429723 +433.0,2.68326841332905 +434.0,2.89747266942578 +435.0,3.0623472742364184 +436.0,3.2444806184775175 +437.0,3.4208021045757775 +438.0,3.553564408338209 +439.0,3.7559102144044725 +440.0,3.969806057883733 +441.0,4.157582977703385 +442.0,4.300119044618957 +443.0,4.470838088099735 +444.0,2.4931764538638106 +445.0,2.620428316971939 +446.0,2.826131888380814 +447.0,3.0656002881947853 +448.0,3.2498877190945064 +449.0,3.395844898778783 +450.0,3.576545517941697 +451.0,3.7309931859915393 +452.0,3.9630110080103176 +453.0,4.135111491780285 +454.0,4.2776267336227605 +455.0,4.460625207535419 +456.0,2.5192280274697496 +457.0,2.6926017125257604 +458.0,2.867753693873123 +459.0,3.0012262851547673 +460.0,3.2118230131012773 +461.0,3.434203380995313 +462.0,3.6110143350559305 +463.0,3.7582592415787404 +464.0,3.9185657540390633 +465.0,4.149387511074246 +466.0,4.3427267316335545 +467.0,4.435761737828499 +468.0,2.525771150816763 +469.0,2.7020056009340525 +470.0,2.8681611650111485 +471.0,3.0388923382240556 +472.0,3.254366662712499 +473.0,3.396311717791649 +474.0,3.563525950602074 +475.0,3.7499334627621037 +476.0,3.974558799380939 +477.0,4.127998957429061 +478.0,4.273057579679123 +479.0,4.540630514742 +480.0,2.469321718757529 +481.0,2.6471253322200057 +482.0,2.866189583677323 +483.0,3.045465409500002 +484.0,3.2591531179649573 +485.0,3.402891904438034 +486.0,3.564454314509957 +487.0,3.759427256569826 +488.0,3.9391232566706886 +489.0,4.1640821114981765 +490.0,4.361033882462946 +491.0,4.468576216430237 +492.0,2.5620525794048197 +493.0,2.6554225466802297 +494.0,2.813871208227199 +495.0,3.069028720300112 +496.0,3.1900143722405248 +497.0,3.3766616445207354 +498.0,3.613626055857983 +499.0,3.7490799794288288 +500.0,3.966438165264349 +501.0,4.0788064781621065 +502.0,4.329984385280531 +503.0,4.502492231926157 +504.0,2.5394524636799884 +505.0,2.7115705027412833 +506.0,2.827341400472073 +507.0,3.0140082279203524 +508.0,3.2527761455665867 +509.0,3.388360838203414 +510.0,3.5672657402756762 +511.0,3.7605361821273315 +512.0,3.9576043964493826 +513.0,4.117294444800915 +514.0,4.306368685390926 +515.0,4.5146159839346165 +516.0,2.491812018656702 +517.0,2.6840638264428685 +518.0,2.8679349230186952 +519.0,3.050201080790412 +520.0,3.172240647947129 +521.0,3.4190563209912392 +522.0,3.5644620780299205 +523.0,3.7449004851597376 +524.0,3.927770076862487 +525.0,4.157137941145081 +526.0,4.3309470409591455 +527.0,4.473914038604458 +528.0,2.456351840951068 +529.0,2.6525097039304915 +530.0,2.8246517961711217 +531.0,3.0843253799560943 +532.0,3.2522761775843865 +533.0,3.3716880064319548 +534.0,3.5872829001452757 +535.0,3.762261163176956 +536.0,3.9227081568890845 +537.0,4.142377299629764 +538.0,4.3071175539468225 +539.0,4.491650987631175 +540.0,2.502196197722623 +541.0,2.6770587272610533 +542.0,2.8407267159011456 +543.0,3.0587210664454285 +544.0,3.22829479971384 +545.0,3.3708348369641477 +546.0,3.5858971177845573 +547.0,3.735881404682297 +548.0,3.914299779507502 +549.0,4.116570372312964 +550.0,4.284786686282725 +551.0,4.456302101857319 +552.0,2.452323105942825 +553.0,2.6856001059462056 +554.0,2.870321802618841 +555.0,2.996517417292302 +556.0,3.2550933558691604 +557.0,3.3943627826682468 +558.0,3.5714630331641573 +559.0,3.762941402153059 +560.0,3.910895182299235 +561.0,4.115696167991536 +562.0,4.24464679269664 +563.0,4.464961986861433 +564.0,2.5020057859656197 +565.0,2.6810641222765867 +566.0,2.8687935409222125 +567.0,3.041957985757459 +568.0,3.2227537649695623 +569.0,3.4019145199699015 +570.0,3.616434997013377 +571.0,3.790020630153946 +572.0,3.977194164394266 +573.0,4.123463318278959 +574.0,4.337438933181321 +575.0,4.470763140624878 +576.0,2.4577077468943145 +577.0,2.6836072138888696 +578.0,2.8384615174074925 +579.0,3.013535692102466 +580.0,3.2333792944493998 +581.0,3.4055608613163013 +582.0,3.5516788737345166 +583.0,3.767023823656627 +584.0,3.9204983696579423 +585.0,4.148473439260401 +586.0,4.2903633802838 +587.0,4.456242671345291 +588.0,2.489627760129887 +589.0,2.6807055141953215 +590.0,2.889506794505756 +591.0,3.061262811392568 +592.0,3.1638815200048422 +593.0,3.4219443593682883 +594.0,3.5509653884007144 +595.0,3.757888623119674 +596.0,3.948081536115543 +597.0,4.115583783752015 +598.0,4.280348794471728 +599.0,4.492946053988447 +600.0,2.5164128399119003 +601.0,2.693730445548138 +602.0,2.858532929036649 +603.0,3.051234697599949 +604.0,3.2051072498075177 +605.0,3.356552447799195 +606.0,3.5435625583134267 +607.0,3.7551144692274088 +608.0,3.9466800318385427 +609.0,4.127020201509701 +610.0,4.278103748739749 +611.0,4.501043259141295 +612.0,2.448296855355966 +613.0,2.665487526391723 +614.0,2.8960032246546605 +615.0,3.0548904248101825 +616.0,3.202433221483757 +617.0,3.407536083747115 +618.0,3.6295365601303584 +619.0,3.742376800266646 +620.0,3.932667964292977 +621.0,4.08969528738392 +622.0,4.297499980731361 +623.0,4.510703261315412 +624.0,2.46782713167109 +625.0,2.6402061845728486 +626.0,2.837170905219453 +627.0,3.063289309918018 +628.0,3.2018634671211026 +629.0,3.4070749246088328 +630.0,3.5991505482227546 +631.0,3.7710333324222955 +632.0,3.9696387928884325 +633.0,4.147281174690941 +634.0,4.318987481189171 +635.0,4.480448261129051 +636.0,2.506423629843457 +637.0,2.6858650700166944 +638.0,2.8406546576508824 +639.0,3.0191563465171796 +640.0,3.238289042712787 +641.0,3.36642930518667 +642.0,3.591338638025617 +643.0,3.7374432023616566 +644.0,3.941817683783966 +645.0,4.11018215313279 +646.0,4.296740481719344 +647.0,4.481268409093382 +648.0,2.5153460338616673 +649.0,2.6962456023731067 +650.0,2.8214206994924345 +651.0,3.038972773166187 +652.0,3.2343718003045603 +653.0,3.3401421273045617 +654.0,3.5600199607244147 +655.0,3.7685988164141673 +656.0,3.9008369149907867 +657.0,4.1215520274456265 +658.0,4.287080780206714 +659.0,4.496300821251797 +660.0,2.4912187501543595 +661.0,2.6610462839409994 +662.0,2.8484983757210043 +663.0,3.0972895998286005 +664.0,3.154227563136696 +665.0,3.3647252297478114 +666.0,3.5402769270299284 +667.0,3.7346799863407636 +668.0,3.9781939226929675 +669.0,4.100337806418671 +670.0,4.33182760028197 +671.0,4.461870565983497 +672.0,2.477342767401323 +673.0,2.623711391577578 +674.0,2.857009830877258 +675.0,3.0429039975703436 +676.0,3.1944606821078048 +677.0,3.4285348772081656 +678.0,3.572543194903453 +679.0,3.7788510905891903 +680.0,3.945331360502346 +681.0,4.137394833273226 +682.0,4.263117681065422 +683.0,4.4956297517363275 +684.0,2.5011685824222187 +685.0,2.6748372248313435 +686.0,2.8723947627315174 +687.0,3.0782006880241783 +688.0,3.192003988931848 +689.0,3.355730909793924 +690.0,3.6068557418429554 +691.0,3.7440232834057516 +692.0,3.932590798756534 +693.0,4.116699014867952 +694.0,4.301428925338854 +695.0,4.477883282648811 +696.0,2.5170394643446468 +697.0,2.691587291618203 +698.0,2.8427749115300656 +699.0,3.0218425952003805 +700.0,3.2261220274191773 +701.0,3.3865411840687742 +702.0,3.5864828438222847 +703.0,3.7341655168413648 +704.0,3.9570751760102563 +705.0,4.10741987800469 +706.0,4.284186433897001 +707.0,4.557515361487154 +708.0,2.396394217483041 +709.0,2.6785576302196556 +710.0,2.8413252708465473 +711.0,3.0131794659784514 +712.0,3.18130076669417 +713.0,3.3860154411996177 +714.0,3.5822485377537037 +715.0,3.7413997977395774 +716.0,3.928123788304049 +717.0,4.135974438158716 +718.0,4.29790610529246 +719.0,4.4804450199825405 +720.0,2.467972234946879 +721.0,2.6571379767357612 +722.0,2.854227761739399 +723.0,3.046211772464717 +724.0,3.2153108439494553 +725.0,3.3745233753137596 +726.0,3.5998946618583454 +727.0,3.716092988511677 +728.0,3.941511291092836 +729.0,4.12529652834974 +730.0,4.28623012220806 +731.0,4.468094182300989 +732.0,2.546915759097707 +733.0,2.730265840290293 +734.0,2.898723437117196 +735.0,3.0309281959545196 +736.0,3.2521714611547736 +737.0,3.417961367789122 +738.0,3.5815456260570384 +739.0,3.7690544814684417 +740.0,3.9597140818655268 +741.0,4.112965850457374 +742.0,4.280233365518609 +743.0,4.466565603774154 +744.0,2.4644774662004743 +745.0,2.74787473049207 +746.0,2.8707949664906707 +747.0,3.024169643643112 +748.0,3.209048638729923 +749.0,3.4245418854740284 +750.0,3.510042458377522 +751.0,3.80717011761181 +752.0,3.938194290259344 +753.0,4.146266328465983 +754.0,4.2822600501887855 +755.0,4.495092909670078 +756.0,2.5133650125333213 +757.0,2.7166769716319292 +758.0,2.853076303465212 +759.0,3.0131111996057087 +760.0,3.223180870320717 +761.0,3.3691257183690273 +762.0,3.573437672882339 +763.0,3.7887866283708314 +764.0,3.9637268801050047 +765.0,4.114220882405173 +766.0,4.264403269125969 +767.0,4.474166527786961 +768.0,2.473068836314974 +769.0,2.6687066157767436 +770.0,2.8530477739537266 +771.0,2.9981637071041067 +772.0,3.2428007186195784 +773.0,3.422484240807867 +774.0,3.604441621402441 +775.0,3.7573863797985916 +776.0,3.9092593080124143 +777.0,4.135845394233006 +778.0,4.272336872243733 +779.0,4.4587686410689225 +780.0,2.5114116898472627 +781.0,2.7147006606246507 +782.0,2.8076432963810727 +783.0,3.031345098221505 +784.0,3.1999482660615253 +785.0,3.41074121464096 +786.0,3.5212697614635213 +787.0,3.7713382283084367 +788.0,3.936433789707319 +789.0,4.109227599663952 +790.0,4.312805154829584 +791.0,4.446821183202013 +792.0,2.490938275997763 +793.0,2.655283661021917 +794.0,2.844929436030794 +795.0,3.0080223830766393 +796.0,3.1999571675367737 +797.0,3.3915568756258394 +798.0,3.584528806826819 +799.0,3.742822525715507 diff --git a/tests/fixtures/catalogs/case_005_clustered_800d.csv b/tests/fixtures/catalogs/case_005_clustered_800d.csv new file mode 100644 index 0000000..19eef8a --- /dev/null +++ b/tests/fixtures/catalogs/case_005_clustered_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.5354324796258867 +1.0,3.083496711098272 +2.0,3.1838205379630478 +3.0,2.3726938613113147 +4.0,2.5431777735086643 +5.0,3.278274567694452 +6.0,3.4526109658861164 +7.0,2.503014211999688 +8.0,2.559080142315266 +9.0,2.3430932613277995 +10.0,2.6977178776505664 +11.0,3.871158873396345 +12.0,2.65980054898159 +13.0,2.6577928293434927 +14.0,3.0807876532101206 +15.0,2.3624667280675324 +16.0,2.42571074989575 +17.0,2.3300725519290335 +18.0,4.202153727639454 +19.0,2.3263999212555424 +20.0,2.4389137598996022 +21.0,2.468935074695031 +22.0,3.053442297006457 +23.0,2.430371471201325 +24.0,2.414397839356031 +25.0,2.5863739900539064 +26.0,2.434478290382484 +27.0,2.372944822062286 +28.0,2.4202372350302017 +29.0,2.3210779006280267 +30.0,2.862361031921074 +31.0,2.4823535518628135 +32.0,2.567899496368221 +33.0,2.6551424623062814 +34.0,2.694268335444222 +35.0,2.7514262267453953 +36.0,2.4607554476298654 +37.0,4.507616105234012 +38.0,2.3902168762639233 +39.0,2.4347891594885054 +40.0,2.430094757728064 +41.0,2.4088094435164487 +42.0,2.550952413257118 +43.0,2.4075768228220253 +44.0,2.4311730376323313 +45.0,3.6554099957083026 +46.0,2.487413854465837 +47.0,2.796684632057695 +48.0,2.5876188395793007 +49.0,2.3265264611910443 +50.0,2.638124195432964 +51.0,3.177716412751083 +52.0,2.488782448960521 +53.0,2.9855463545051855 +54.0,3.099761868263162 +55.0,2.366741397854646 +56.0,3.4358156396434163 +57.0,2.8511211074564997 +58.0,2.336825020543137 +59.0,2.7369369101209635 +60.0,2.3016512114463104 +61.0,4.45418531850377 +62.0,2.5988068439136693 +63.0,2.3834548215359943 +64.0,2.9939382369547896 +65.0,3.6713341119592906 +66.0,2.4375759394188554 +67.0,2.874083971180438 +68.0,3.294096668830332 +69.0,2.481437440544411 +70.0,2.5254450366214667 +71.0,2.3440574438431905 +72.0,2.3659099730102944 +73.0,3.2171583071850214 +74.0,2.609794164926062 +75.0,4.431730929343943 +76.0,3.262321807423328 +77.0,3.3968441631853477 +78.0,2.342604582309053 +79.0,2.438386922129966 +80.0,2.679483864298249 +81.0,2.938166935923624 +82.0,2.3335166546164845 +83.0,2.553660585962551 +84.0,2.784257823879483 +85.0,2.520504689104508 +86.0,2.3094943997505637 +87.0,3.0747596072335055 +88.0,2.6735648208510687 +89.0,2.3488649161253816 +90.0,2.6492906842896913 +91.0,2.5956821547414957 +92.0,2.356878584760612 +93.0,2.629678077965324 +94.0,2.4673522621656003 +95.0,2.9344929504253683 +96.0,2.5646823059585473 +97.0,2.4992330707248533 +98.0,2.4294720301421253 +99.0,2.463152146792418 +100.0,2.3363961285878636 +101.0,2.519833170348999 +102.0,2.3759200691390645 +103.0,2.451358956266266 +104.0,2.308051651525022 +105.0,2.659684426759 +106.0,2.8459044086828547 +107.0,2.9146007182073457 +108.0,2.5101357949526646 +109.0,2.396651109632963 +110.0,2.368724606803261 +111.0,2.5318552397898437 +112.0,2.6406353557257987 +113.0,2.6970056673272476 +114.0,2.568719981168496 +115.0,2.465331766455126 +116.0,2.3410657008600206 +117.0,2.912058234086185 +118.0,2.3946920538789915 +119.0,2.4159618511564265 +120.0,2.669697374275619 +121.0,2.416992741074552 +122.0,2.3058744084798386 +123.0,2.400050166788243 +124.0,2.7608109997523074 +125.0,2.733038960472542 +126.0,2.7116124223145905 +127.0,2.30778915092898 +128.0,3.2027285568756083 +129.0,2.773979914807192 +130.0,3.0871842499122124 +131.0,2.512690641421762 +132.0,2.327540616185749 +133.0,2.4894904296420943 +134.0,2.389686306414059 +135.0,2.8984419259241294 +136.0,2.704544623517445 +137.0,2.3773195784393097 +138.0,2.362267627235911 +139.0,2.46475991313789 +140.0,3.721664159054779 +141.0,3.0796640282281045 +142.0,3.3741545113824616 +143.0,2.484067086760656 +144.0,2.492056930861393 +145.0,2.398848821646662 +146.0,3.0093048034911263 +147.0,3.784427954147764 +148.0,2.6299489492752217 +149.0,2.4838633626341236 +150.0,2.3317854969600478 +151.0,2.403281375845035 +152.0,2.5412850025631903 +153.0,2.5824539261707895 +154.0,2.5117210917495503 +155.0,2.5770201113135816 +156.0,3.33488574656796 +157.0,2.6474227391965903 +158.0,2.689305351631573 +159.0,3.233294728665476 +160.0,2.3756270059457996 +161.0,2.8993722922241623 +162.0,2.424685529107959 +163.0,2.491562588780622 +164.0,2.5447340114846915 +165.0,3.418417496345353 +166.0,3.227644663083997 +167.0,2.6801414845442744 +168.0,2.5019415729017047 +169.0,3.229701560451988 +170.0,2.310340255730595 +171.0,3.6237578376209427 +172.0,3.1163214715126646 +173.0,2.3072160470216088 +174.0,3.954630922324725 +175.0,2.599269956073724 +176.0,2.59965078857777 +177.0,2.489477717384692 +178.0,2.374962413459397 +179.0,2.308325778995021 +180.0,3.272161896994795 +181.0,2.9291205918754573 +182.0,2.303618366862445 +183.0,2.425294038471829 +184.0,3.0814066978108183 +185.0,2.591206283219108 +186.0,2.8049640835514613 +187.0,3.752279626867285 +188.0,4.376192587601168 +189.0,4.064899686047565 +190.0,3.9232274060737358 +191.0,2.5940448732614385 +192.0,3.691371798279249 +193.0,3.447208331514398 +194.0,3.5346846340691944 +195.0,5.277654446381513 +196.0,2.610014974073684 +197.0,2.84989151123241 +198.0,5.946467496073808 +199.0,3.269184805021413 +200.0,3.044586668113579 +201.0,4.357050388379607 +202.0,2.8549248354590144 +203.0,5.680243959042023 +204.0,3.4877058101864455 +205.0,4.094672114940574 +206.0,2.762683779303146 +207.0,4.128979096252086 +208.0,3.727781871175968 +209.0,4.034268358645271 +210.0,3.9804630268491925 +211.0,2.5323625637013376 +212.0,2.441986493303351 +213.0,5.640303809618191 +214.0,4.234559217990796 +215.0,3.1146275809317165 +216.0,4.826430338185658 +217.0,2.4070154032212514 +218.0,2.7916599814413763 +219.0,2.3172930041565936 +220.0,3.6069484490871186 +221.0,2.313315088292545 +222.0,3.4419157118400463 +223.0,2.4268777532321164 +224.0,2.3250728562580893 +225.0,2.4394898093106088 +226.0,2.335670189224407 +227.0,2.5068477971976386 +228.0,2.4171708509752357 +229.0,2.419721255575791 +230.0,3.2030336643635566 +231.0,2.931330841527167 +232.0,2.3005851794134364 +233.0,2.3870775598057534 +234.0,2.929909387871513 +235.0,2.989803014939098 +236.0,2.9845833959697954 +237.0,2.3422745004744048 +238.0,3.3435872927949655 +239.0,3.1842729733744863 +240.0,2.664752194034646 +241.0,2.5120479977597805 +242.0,2.4020318675721994 +243.0,2.408694217991716 +244.0,3.213172297518115 +245.0,2.3461364310481336 +246.0,2.3078392427798717 +247.0,2.32565636995356 +248.0,2.8639694287247695 +249.0,2.386464065487317 +250.0,2.5343859549127195 +251.0,3.2632136292160596 +252.0,2.3596749412792564 +253.0,3.039728696175006 +254.0,2.304444303293472 +255.0,2.5532069313490457 +256.0,2.338746295534279 +257.0,2.6693992460116487 +258.0,2.535349737935483 +259.0,3.1846023924777946 +260.0,2.3659752362867414 +261.0,2.877268368192926 +262.0,2.4649082083696476 +263.0,2.5062430728135063 +264.0,3.268585307894066 +265.0,2.501663205610673 +266.0,2.7995912081952876 +267.0,2.5433766922161363 +268.0,3.185361643250824 +269.0,2.7508621736860785 +270.0,2.8303215890749853 +271.0,2.940193294888493 +272.0,2.9020271586036284 +273.0,2.8120407955485 +274.0,2.879114477061355 +275.0,2.4516074991082553 +276.0,2.424737353137556 +277.0,3.7367075141681845 +278.0,3.3534823444149295 +279.0,2.8423030723979457 +280.0,2.6808449019604055 +281.0,2.576709617025221 +282.0,2.5184264189816257 +283.0,2.6190916693986774 +284.0,2.4324851842059703 +285.0,3.079312767891361 +286.0,3.441010225487133 +287.0,3.986574508050616 +288.0,3.188160120022421 +289.0,4.098610575045907 +290.0,2.629764036410808 +291.0,5.525501263640887 +292.0,5.856906572841694 +293.0,2.8284434137281993 +294.0,4.656157448615435 +295.0,2.796644216357323 +296.0,4.1771037250709115 +297.0,2.757113983563541 +298.0,3.3788088770366858 +299.0,2.664714860080036 +300.0,3.471507267160739 +301.0,3.2834978865885116 +302.0,3.045589129231751 +303.0,4.779757055159041 +304.0,3.401492135347681 +305.0,2.709685091499084 +306.0,2.936233155539493 +307.0,2.770040045265696 +308.0,3.2765423779836977 +309.0,2.8687808875052476 +310.0,4.18340415296394 +311.0,3.1817943976128986 +312.0,2.916940224617967 +313.0,2.6590411208115072 +314.0,2.781852452805278 +315.0,3.739866678350634 +316.0,2.339851527190643 +317.0,2.9627587566169598 +318.0,2.7064257470159827 +319.0,2.6877664377016557 +320.0,2.8397202072412826 +321.0,2.701158557762703 +322.0,3.5579176453920294 +323.0,2.301799609949184 +324.0,2.6666786839208316 +325.0,2.3476797482588005 +326.0,2.314214739663143 +327.0,2.5638763718853226 +328.0,2.413178738951978 +329.0,2.349410797732606 +330.0,3.2068779618610574 +331.0,2.569348059188722 +332.0,2.3708496216960486 +333.0,2.962812311332464 +334.0,2.5665285112277125 +335.0,2.993237538476115 +336.0,2.333052676397383 +337.0,2.553590602000305 +338.0,3.0172884745615995 +339.0,2.5247469486549594 +340.0,2.950848333099244 +341.0,2.8738728219313296 +342.0,2.456248857134846 +343.0,2.8864822544243167 +344.0,3.3093192966780944 +345.0,2.458376808743925 +346.0,3.0658588028614955 +347.0,2.486620843953025 +348.0,2.8676022928951195 +349.0,2.469461212731572 +350.0,4.110595556683625 +351.0,2.8146037977454643 +352.0,3.537873569394912 +353.0,2.5645337300140745 +354.0,2.3075840721753087 +355.0,2.7611915292997087 +356.0,2.4537243863344367 +357.0,2.4373133445535293 +358.0,2.3820433934343828 +359.0,2.3681369015109976 +360.0,3.035217946868694 +361.0,2.4361496907476545 +362.0,2.309841673579309 +363.0,2.6045208064665775 +364.0,2.3065838136224035 +365.0,2.416165015037772 +366.0,2.3070314863768973 +367.0,2.374382312647885 +368.0,2.348447366723925 +369.0,2.3043891334538844 +370.0,2.378341374980768 +371.0,2.478834799406104 +372.0,2.8259663645241586 +373.0,2.3734516929860434 +374.0,2.5958892403724643 +375.0,2.4685889107932946 +376.0,2.3199636958863983 +377.0,2.5871469222101293 +378.0,2.6056656712715993 +379.0,2.3518725041351685 +380.0,2.3371016599635164 +381.0,2.8858089222085996 +382.0,2.421100886905199 +383.0,2.7594640527646224 +384.0,3.8219055613054973 +385.0,2.586296461205592 +386.0,4.519651938988106 +387.0,3.3671750390245814 +388.0,4.020713790785611 +389.0,3.590559833138877 +390.0,5.3672811992958955 +391.0,2.9872053587008915 +392.0,3.3383774239418735 +393.0,3.7411147454942233 +394.0,2.728094271867894 +395.0,4.465275984663715 +396.0,4.215964272418728 +397.0,4.604756517229964 +398.0,5.071514304477038 +399.0,2.6412543757775633 +400.0,4.932510330186829 +401.0,2.501218870080019 +402.0,4.728518933396405 +403.0,3.366100500001538 +404.0,3.144278026671693 +405.0,4.072594920774817 +406.0,2.731644810692572 +407.0,2.87802788325182 +408.0,2.4218069863545644 +409.0,4.526843368927592 +410.0,3.8450929371979132 +411.0,4.363508673440635 +412.0,2.7416372561693465 +413.0,3.3183878715208013 +414.0,3.4288445029797465 +415.0,3.5118432620836324 +416.0,2.4700205785919223 +417.0,2.3876999400290684 +418.0,2.4399267704762537 +419.0,3.215077260116798 +420.0,3.8017146818283667 +421.0,2.671181719539831 +422.0,3.2187814141497193 +423.0,2.8838478966886587 +424.0,2.321816528803346 +425.0,2.5573928426618613 +426.0,2.3452580978817603 +427.0,2.8849491946343786 +428.0,2.8904077339029746 +429.0,2.4610036139998885 +430.0,3.4145560896546936 +431.0,2.5865421467178358 +432.0,2.3905419474703455 +433.0,2.7188542010291625 +434.0,3.121694785547831 +435.0,2.5421155446023183 +436.0,2.3663315689403497 +437.0,2.866334688075194 +438.0,2.6587507949732503 +439.0,2.3835718746302264 +440.0,2.3944746133085757 +441.0,2.3245969440085172 +442.0,2.317955481618262 +443.0,2.4781566816851908 +444.0,4.182214735531971 +445.0,2.9772037774997115 +446.0,2.8962255182373586 +447.0,2.7396848432682113 +448.0,2.316307787266307 +449.0,2.32343420250699 +450.0,2.6029475669786617 +451.0,2.8411465549512545 +452.0,2.645414604026524 +453.0,2.4057610027570804 +454.0,2.3013891389658423 +455.0,2.3479098339499003 +456.0,2.310657086544313 +457.0,2.5214767427626508 +458.0,2.545389972993123 +459.0,2.8473219723450227 +460.0,2.819727240413533 +461.0,2.3527490536635645 +462.0,2.385484778807011 +463.0,2.4059786062248785 +464.0,3.027260138057404 +465.0,2.9776445835557306 +466.0,2.3803667624115348 +467.0,2.8592582357857896 +468.0,2.4334946588192494 +469.0,2.3007716687321773 +470.0,2.7597092815156072 +471.0,2.6526903890733227 +472.0,2.9161554605657782 +473.0,2.8982697471235395 +474.0,2.862454224610924 +475.0,2.8086823659709945 +476.0,2.8528125701477824 +477.0,3.4953299276639385 +478.0,2.3458683906201627 +479.0,2.9186257033306067 +480.0,2.7353620658667337 +481.0,2.346867821231438 +482.0,3.1532235238870987 +483.0,4.1698264915416745 +484.0,2.4736956380265296 +485.0,2.478177662959839 +486.0,3.242689981543039 +487.0,2.9628969253984976 +488.0,3.313059531272305 +489.0,5.074685938013261 +490.0,3.631142063705023 +491.0,3.596640514859696 +492.0,6.672517086044724 +493.0,3.0173433078356418 +494.0,2.6739651696431945 +495.0,5.361733609108427 +496.0,2.529354567682703 +497.0,3.2587973497513776 +498.0,3.756536199244583 +499.0,3.218760740128012 +500.0,3.646757953989446 +501.0,3.1420978398837973 +502.0,6.046115228416732 +503.0,3.025263517306021 +504.0,4.033892218423021 +505.0,4.1015391981003715 +506.0,4.8435868225005105 +507.0,3.907711005714103 +508.0,4.568172716944584 +509.0,3.5667207940126655 +510.0,4.227592743305795 +511.0,4.29677113799823 +512.0,3.116408379096789 +513.0,4.980064792918 +514.0,2.5634250563210177 +515.0,2.68679385874446 +516.0,2.4761136076952672 +517.0,2.716506458778739 +518.0,2.5300450670518377 +519.0,3.061539825220803 +520.0,2.319662309957665 +521.0,2.5183230724907655 +522.0,2.609306139515305 +523.0,2.3439602224134015 +524.0,2.350186614418847 +525.0,2.8713385931738866 +526.0,3.1222432768191735 +527.0,3.0304952668214407 +528.0,2.3876808620267735 +529.0,2.5334719834344988 +530.0,2.691044915304681 +531.0,2.4840450694685807 +532.0,2.3430138089817603 +533.0,2.7911399520539972 +534.0,2.3031549135827456 +535.0,2.912657101579697 +536.0,2.3538187642060477 +537.0,2.3495618847367963 +538.0,2.3195535635623967 +539.0,3.4763314807425516 +540.0,2.6212465048503364 +541.0,2.3802134726573554 +542.0,2.715988119177634 +543.0,2.6028058257476365 +544.0,3.217459868328028 +545.0,2.6697715960786526 +546.0,2.565208216692442 +547.0,2.674171681440818 +548.0,2.3444406241717415 +549.0,2.306038314477998 +550.0,2.818309081231802 +551.0,2.7222128666111423 +552.0,2.668770912686022 +553.0,2.5145117400648673 +554.0,3.0208175857451605 +555.0,3.1864376901151372 +556.0,2.358860596713509 +557.0,2.3206497006119595 +558.0,2.5855524646687176 +559.0,2.6196704937304247 +560.0,2.3422639042620887 +561.0,3.33720850747776 +562.0,2.356578233694283 +563.0,2.5427927088756306 +564.0,2.862556024207258 +565.0,2.6345066508144104 +566.0,3.2036792980365636 +567.0,3.1827965824268167 +568.0,3.3901998011117773 +569.0,2.348683575682736 +570.0,2.6992983801053563 +571.0,2.6699201900487557 +572.0,2.5666484972898167 +573.0,2.823599692538468 +574.0,3.4183247267575942 +575.0,2.4732782467798664 +576.0,2.6724543296936036 +577.0,2.6200556288933137 +578.0,5.9175202062281524 +579.0,2.3666656934248116 +580.0,2.301514511021089 +581.0,2.604042232322321 +582.0,2.643731796937063 +583.0,3.3230293516468667 +584.0,2.655120615174032 +585.0,4.2967544725952225 +586.0,3.324573707129075 +587.0,2.4890173321745315 +588.0,2.676259993475559 +589.0,2.770085920824291 +590.0,3.438294513226152 +591.0,3.4390680105171385 +592.0,3.1624383828550884 +593.0,3.187617160521724 +594.0,3.9153151527536654 +595.0,4.156474048627845 +596.0,3.707547627857142 +597.0,2.6275579547359484 +598.0,3.0835597112303557 +599.0,3.6464371268914615 +600.0,3.070450782625649 +601.0,2.6962504855824867 +602.0,3.932499135907806 +603.0,3.0561634588278426 +604.0,3.9161631824124075 +605.0,2.8631316581162993 +606.0,5.938583251322113 +607.0,3.063074188451222 +608.0,4.492984751988144 +609.0,4.18048783760426 +610.0,2.7713659391733474 +611.0,4.299273343098227 +612.0,2.9727033558850446 +613.0,3.747373366210341 +614.0,4.296638154693926 +615.0,5.330232488472538 +616.0,4.1170100255581765 +617.0,3.228977610513009 +618.0,2.932053558040343 +619.0,3.5809307897968754 +620.0,2.3716420537976206 +621.0,2.6825638948586916 +622.0,2.3014069005158175 +623.0,2.310636130435262 +624.0,4.182855797264896 +625.0,2.4334498771923316 +626.0,2.5515419393460688 +627.0,2.349158796839891 +628.0,2.5380064500157666 +629.0,2.6127848621736938 +630.0,2.3601476365105283 +631.0,2.3031996764036458 +632.0,3.081579886364639 +633.0,2.632129487607892 +634.0,2.806912339567007 +635.0,2.405033744544646 +636.0,2.7263669991600943 +637.0,3.3527710820319934 +638.0,2.7923871419960147 +639.0,2.648665686396051 +640.0,3.241337330033542 +641.0,2.5297603001514815 +642.0,2.640844027291194 +643.0,2.605390527876361 +644.0,2.850527097459694 +645.0,2.462341267360502 +646.0,2.3951678546283226 +647.0,3.9004410102621825 +648.0,2.352526426757686 +649.0,3.113877909717088 +650.0,2.4916162890329843 +651.0,2.6760977407202873 +652.0,2.482233499995849 +653.0,2.458686820445859 +654.0,3.650402198748103 +655.0,2.5865840240224522 +656.0,2.477306397720013 +657.0,2.3983383267728358 +658.0,2.37419186024123 +659.0,2.5744132513859497 +660.0,3.044881635993364 +661.0,2.6660122252457015 +662.0,2.4003220682346877 +663.0,2.389757984154137 +664.0,2.327215524136716 +665.0,2.322713132209462 +666.0,3.2750451890944023 +667.0,2.7852119202879733 +668.0,2.5819278220202535 +669.0,2.8773577266631882 +670.0,2.329023953782424 +671.0,2.9457721341607006 +672.0,3.3733409620854315 +673.0,2.425920651026684 +674.0,2.6920824735698297 +675.0,2.9541403126044714 +676.0,2.5289746194999867 +677.0,2.613901888054846 +678.0,2.5100929646898527 +679.0,2.48272503276989 +680.0,2.3245614646740225 +681.0,2.460072473624594 +682.0,2.3632457644944473 +683.0,2.354326415480488 +684.0,2.4281323486157986 +685.0,3.7803053251217156 +686.0,2.6913742862663614 +687.0,2.4154383540912847 +688.0,2.5408622315146756 +689.0,2.399403727479868 +690.0,2.6314907988069645 +691.0,2.4043484243303306 +692.0,2.5869680644219026 +693.0,2.532582859688471 +694.0,2.6576298601829063 +695.0,2.8993300164454503 +696.0,2.564754668636088 +697.0,3.309398112845877 +698.0,4.0664864773046485 +699.0,2.446743738546225 +700.0,2.4200924427117 +701.0,2.6127236762133306 +702.0,2.448049849061908 +703.0,2.3368091752736824 +704.0,3.290797931049788 +705.0,2.6513828750849124 +706.0,2.554216334919732 +707.0,3.6355687452112404 +708.0,2.302976787583624 +709.0,2.306197113091259 +710.0,3.0130351507493356 +711.0,2.457126290897412 +712.0,2.358929604958504 +713.0,3.518568451008158 +714.0,2.4542403469298706 +715.0,2.3714570762983764 +716.0,2.8467034618656664 +717.0,3.1620714217145776 +718.0,2.3128571959845843 +719.0,2.9611773889073043 +720.0,2.7634400175154994 +721.0,2.356496009824683 +722.0,2.582527349504732 +723.0,2.4306477697341786 +724.0,2.3338298309782446 +725.0,2.5249408999950296 +726.0,2.7507674942030076 +727.0,2.490768961335239 +728.0,2.3194833548049933 +729.0,2.303355497325719 +730.0,2.502113698650097 +731.0,2.452132042231298 +732.0,4.071635219684605 +733.0,2.961408803692201 +734.0,2.820119035657293 +735.0,2.350908950721047 +736.0,3.065648514395243 +737.0,2.724887014142262 +738.0,2.6672622117219933 +739.0,2.8673818474812247 +740.0,2.3370341720304 +741.0,2.3074238623625156 +742.0,2.4828734867520597 +743.0,2.4457768768167973 +744.0,2.3550919827123993 +745.0,2.4844723872955092 +746.0,3.507587704500514 +747.0,2.349637891964932 +748.0,3.4253486849606687 +749.0,3.2567801501494147 +750.0,2.5078364026975044 +751.0,2.636350586936605 +752.0,2.4232780598070294 +753.0,3.261567813752322 +754.0,2.419870833071066 +755.0,2.836738144342016 +756.0,2.424816329898053 +757.0,3.6747863466125725 +758.0,2.6946798412682607 +759.0,2.480695689667829 +760.0,2.7274454249756883 +761.0,2.533318212538873 +762.0,2.426288269822548 +763.0,2.7510561076098194 +764.0,2.397472256277667 +765.0,2.54488360753569 +766.0,2.425390165122585 +767.0,3.060964517913744 +768.0,2.436793730583688 +769.0,2.3276992125239317 +770.0,3.3436305750745556 +771.0,2.5198370092525213 +772.0,2.555572755556688 +773.0,4.086699795084386 +774.0,2.314268036774284 +775.0,2.3110390518247454 +776.0,2.385686509542862 +777.0,2.59269465284664 +778.0,2.389474589707445 +779.0,3.4879375979087386 +780.0,2.3642760568372534 +781.0,2.6231151581217165 +782.0,2.8197750792418006 +783.0,2.4112452828552304 +784.0,2.308103958507173 +785.0,2.5054910370145036 +786.0,2.6218300490861663 +787.0,3.812071422423342 +788.0,2.421604888112098 +789.0,2.393764830396254 +790.0,2.3803150231272623 +791.0,2.9453180481022683 +792.0,3.1284578165918884 +793.0,2.5142431136570047 +794.0,2.9284904918288257 +795.0,2.5918850330641163 +796.0,2.44924214498699 +797.0,3.4985358085290175 +798.0,3.239217436803634 +799.0,2.545856256769232 diff --git a/tests/fixtures/catalogs/case_006_quiet_then_active_800d.csv b/tests/fixtures/catalogs/case_006_quiet_then_active_800d.csv new file mode 100644 index 0000000..2bf5476 --- /dev/null +++ b/tests/fixtures/catalogs/case_006_quiet_then_active_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.3401507202139755 +1.0,2.6500918474918533 +2.0,2.675194367009614 +3.0,2.3025533511478185 +4.0,2.3846318788076672 +5.0,3.0251199618672437 +6.0,2.9096885573527587 +7.0,2.3728670207088904 +8.0,2.631359705870317 +9.0,3.440716063868784 +10.0,3.1508889316759556 +11.0,2.6284126239048646 +12.0,2.8409263274513123 +13.0,3.3539309660061187 +14.0,2.6274646688418404 +15.0,2.675139319761947 +16.0,2.300199953905667 +17.0,2.3405195993444248 +18.0,2.5239518545185264 +19.0,2.6971188656033425 +20.0,3.290664194916028 +21.0,3.3544629677646673 +22.0,2.682179088677864 +23.0,2.3641972528261417 +24.0,2.689904414650525 +25.0,2.546097098428099 +26.0,3.2704668576506872 +27.0,2.5382083931437256 +28.0,2.5769778702873336 +29.0,3.1768537814557574 +30.0,2.3641643142745044 +31.0,2.4671545245745623 +32.0,2.5227082142076687 +33.0,2.5445517038196677 +34.0,2.888112448933847 +35.0,2.7756587593475426 +36.0,2.4959729350831625 +37.0,2.7643731431281005 +38.0,2.4178392487570806 +39.0,2.5734621265323563 +40.0,2.5135375111044556 +41.0,2.390957994697317 +42.0,2.63869162309145 +43.0,2.458559849926405 +44.0,2.3564219594071107 +45.0,2.3117615364259625 +46.0,2.3240590704833624 +47.0,2.4134442682994086 +48.0,3.794883099411612 +49.0,2.369965572238743 +50.0,2.3412754126877644 +51.0,2.3127269305137537 +52.0,2.5015779360298183 +53.0,2.8276456232792495 +54.0,2.4254794918004685 +55.0,3.369709737368641 +56.0,2.8803998107065114 +57.0,2.3349389155856475 +58.0,2.762531435178182 +59.0,2.5543534440997773 +60.0,2.3577717126256745 +61.0,2.3185171548159116 +62.0,2.538840333713388 +63.0,2.6558935703470343 +64.0,2.324561888325045 +65.0,2.6963037351939825 +66.0,2.4518310144558164 +67.0,2.3648744329957734 +68.0,2.3975512914196586 +69.0,2.7943973453185746 +70.0,2.6303600388473853 +71.0,2.300861138603869 +72.0,2.515245303767852 +73.0,2.3446532115525907 +74.0,2.64344710954562 +75.0,2.9824451693435674 +76.0,2.337838422869643 +77.0,2.4787727789062357 +78.0,2.415963054282391 +79.0,2.4408696300243777 +80.0,2.5606130691013123 +81.0,3.3861395085627275 +82.0,2.767886545500193 +83.0,2.947445002256208 +84.0,2.703712356407079 +85.0,3.262320658756346 +86.0,2.5047226075915314 +87.0,2.406898560071469 +88.0,2.7465994007218293 +89.0,2.5740194496890973 +90.0,2.539574213965959 +91.0,2.330897408500893 +92.0,3.4081180847238697 +93.0,2.437035088775761 +94.0,2.572932516177347 +95.0,2.725638591972929 +96.0,2.361590032109932 +97.0,2.5979354938590142 +98.0,3.0406837380451113 +99.0,2.9860650219139093 +100.0,2.318109114346234 +101.0,2.3273291152682836 +102.0,2.7932111560841557 +103.0,2.7462453767051853 +104.0,2.3547603801832855 +105.0,2.9529676110722938 +106.0,2.3460804212988466 +107.0,2.335616491617045 +108.0,2.4848331895822313 +109.0,2.358344144141646 +110.0,3.7706812349812164 +111.0,2.4585010679180335 +112.0,2.500753449652143 +113.0,2.530330937898152 +114.0,2.5644132806101596 +115.0,2.6621435409603773 +116.0,2.4552903177137093 +117.0,2.90346627581418 +118.0,2.3502663934388033 +119.0,2.875442310220836 +120.0,3.275591067039431 +121.0,2.6865859136058137 +122.0,2.574683468433716 +123.0,2.386013179078318 +124.0,2.398042406878207 +125.0,2.4235940365770965 +126.0,2.327695687198562 +127.0,2.3580417314232345 +128.0,2.3074390079855815 +129.0,2.744748940259961 +130.0,2.689200519192612 +131.0,2.6125830564998767 +132.0,3.028528894332572 +133.0,2.308615197458274 +134.0,3.108361230687302 +135.0,2.7958929282763902 +136.0,2.54789609552442 +137.0,2.5385239297043682 +138.0,2.409841953714552 +139.0,2.66611060331271 +140.0,2.521538640497819 +141.0,2.321595345258227 +142.0,2.408097613748032 +143.0,2.3015857041935166 +144.0,2.3886216437964922 +145.0,3.0660406151927195 +146.0,2.662479814961985 +147.0,2.4827514062416958 +148.0,2.431055547509563 +149.0,5.112033851678356 +150.0,2.614693187956968 +151.0,2.719069206204735 +152.0,2.49909601427772 +153.0,2.3117223455408857 +154.0,2.7992330305739577 +155.0,2.446840946637408 +156.0,2.5768255532715987 +157.0,2.3891520975417477 +158.0,3.1875041323333067 +159.0,3.1355472132466473 +160.0,3.294517806372192 +161.0,2.9908497834722425 +162.0,3.495401009582375 +163.0,2.401323372829965 +164.0,2.5142729766841696 +165.0,2.4471307197916814 +166.0,2.7366021714905444 +167.0,2.3219140258182445 +168.0,2.8187099598170775 +169.0,2.7175209792782598 +170.0,2.3508108300983994 +171.0,2.534986793140531 +172.0,2.3504196220821805 +173.0,2.3084498993715754 +174.0,2.3738062249273604 +175.0,2.6105844136812095 +176.0,2.312564170536788 +177.0,2.376485377366742 +178.0,2.634630471899404 +179.0,2.8259665122425037 +180.0,2.5003724130292913 +181.0,2.750265299285436 +182.0,2.5142272655129716 +183.0,2.54564345082539 +184.0,2.9480334627086835 +185.0,2.5739315248644883 +186.0,2.4261246329657626 +187.0,2.500341760386708 +188.0,2.3266967207597222 +189.0,2.3677043657205696 +190.0,2.5105853986901434 +191.0,2.5194624185734558 +192.0,2.5306687247624953 +193.0,2.3512988277739884 +194.0,2.5453027278097 +195.0,2.447137101296399 +196.0,2.392185752079743 +197.0,2.4566830509861606 +198.0,2.466467765133152 +199.0,3.453982791499206 +200.0,2.4282724998719685 +201.0,2.4904453614239195 +202.0,2.5015097343583235 +203.0,3.4767665321506676 +204.0,2.382223185287492 +205.0,2.3714737604946405 +206.0,2.6776603737677322 +207.0,3.2566972648313905 +208.0,2.4305276108803695 +209.0,2.6895336035764363 +210.0,2.905518774884005 +211.0,2.4650704324084893 +212.0,2.882372230277518 +213.0,2.4974628485487504 +214.0,2.498865148776313 +215.0,2.4861786895540474 +216.0,2.3378083982777293 +217.0,2.3907397874339096 +218.0,2.63693407921442 +219.0,2.6691038476205335 +220.0,2.9147010842731245 +221.0,2.724788152790612 +222.0,2.742627964452836 +223.0,2.3593170388280895 +224.0,2.310821857761378 +225.0,2.4561231656687204 +226.0,2.9289369267491088 +227.0,2.5295928507107828 +228.0,2.619853784778144 +229.0,2.5773382095645703 +230.0,2.4183252230604877 +231.0,2.6906461920510836 +232.0,2.702814259548765 +233.0,2.3758582397543555 +234.0,2.566424628131637 +235.0,3.2791884131455586 +236.0,2.645923924701943 +237.0,2.6726118237455503 +238.0,2.504283902088102 +239.0,2.5130200579475703 +240.0,2.6075164415837184 +241.0,3.0573534205650432 +242.0,2.6014008807631894 +243.0,2.5700923192703815 +244.0,2.503360290518283 +245.0,2.420437262979292 +246.0,2.415904184141369 +247.0,2.450750232355042 +248.0,2.44179857414595 +249.0,2.579919633755721 +250.0,2.5994824563752776 +251.0,2.638330268585892 +252.0,2.5323780555227975 +253.0,2.3625624508851435 +254.0,3.612427022585064 +255.0,2.3752835288232057 +256.0,2.741768794690443 +257.0,2.6166438562740213 +258.0,2.4413401960172343 +259.0,2.6798933239586558 +260.0,2.82759859526828 +261.0,2.4037510955102603 +262.0,2.476643514414963 +263.0,2.3042068672730207 +264.0,2.752846922967725 +265.0,2.56523348009341 +266.0,2.3451235924607428 +267.0,2.3853182834082234 +268.0,2.650633031615129 +269.0,3.046289465681352 +270.0,2.755911228360353 +271.0,2.3443116368409034 +272.0,2.339462205252799 +273.0,2.4185251178560625 +274.0,2.3983195959965897 +275.0,2.6790746150169427 +276.0,3.0592376531998045 +277.0,2.586761215194686 +278.0,2.338648636893789 +279.0,3.5839361613856746 +280.0,2.325067386127531 +281.0,2.4866786252542816 +282.0,2.322719525717946 +283.0,2.4241031675644424 +284.0,2.3593790027282022 +285.0,2.60150590039014 +286.0,2.4108463285307615 +287.0,2.6299024474067876 +288.0,2.4460129844325 +289.0,2.4787116277282926 +290.0,2.330073364729443 +291.0,2.6172432772259575 +292.0,2.385273986705031 +293.0,2.4983068970085456 +294.0,2.5343507055876957 +295.0,2.4553369270226053 +296.0,2.4603925250758385 +297.0,2.7130704643857237 +298.0,3.2502244574281605 +299.0,2.5955618001952163 +300.0,2.5006119030484713 +301.0,2.564858592505409 +302.0,2.5817922872596464 +303.0,2.696395569602314 +304.0,2.4432900399595647 +305.0,2.466967911282542 +306.0,2.3459193158395326 +307.0,2.3288322447729244 +308.0,3.431929343403342 +309.0,2.3558458377944995 +310.0,2.363847463794511 +311.0,2.883721696393139 +312.0,2.3244767729515425 +313.0,2.5014066008078735 +314.0,2.322265940993595 +315.0,2.6829325604981933 +316.0,2.762511963485612 +317.0,2.3922651337080083 +318.0,2.345612497174766 +319.0,2.5945354139670185 +320.0,2.3323151036627543 +321.0,2.327839512548232 +322.0,2.549516782009533 +323.0,2.582187697725356 +324.0,2.6587716134843284 +325.0,2.523055895217135 +326.0,2.3932389363716893 +327.0,2.6182688721963845 +328.0,2.3166103699059075 +329.0,2.6083297642025878 +330.0,2.3230007836715343 +331.0,2.471273080109869 +332.0,3.7260698556005023 +333.0,2.7202092602753467 +334.0,3.6677303841929954 +335.0,2.6796243194439464 +336.0,3.7014615164171722 +337.0,2.5544008824647544 +338.0,2.9271281173361414 +339.0,3.126700708209077 +340.0,2.524178004215124 +341.0,2.327870107143637 +342.0,2.4679530722023957 +343.0,2.383014064758942 +344.0,2.3319967205568664 +345.0,2.525207648452541 +346.0,2.4005651039104334 +347.0,2.757054562868325 +348.0,2.317288774098239 +349.0,2.3433372217129804 +350.0,2.315385293638734 +351.0,2.366320220921978 +352.0,2.7317599426488646 +353.0,2.3626186534058125 +354.0,2.362879129909456 +355.0,2.3562789392295245 +356.0,2.665096184576119 +357.0,3.197740367089908 +358.0,2.458970504118413 +359.0,2.562980807305245 +360.0,2.585676435946537 +361.0,2.315275053848744 +362.0,2.718564806901395 +363.0,2.6245490919753567 +364.0,3.404405369986036 +365.0,2.559848793716301 +366.0,2.5092430339745215 +367.0,2.7729683107319776 +368.0,2.6557787213025246 +369.0,3.0096803297140267 +370.0,3.1613095500734074 +371.0,2.510759596670344 +372.0,3.632241993073732 +373.0,2.3317082799388618 +374.0,2.6989286353839366 +375.0,2.3709198465166446 +376.0,2.6097723607529657 +377.0,2.328247122177619 +378.0,2.5586792295026735 +379.0,2.459888832112957 +380.0,2.495443367830913 +381.0,2.8967805558196082 +382.0,2.649739797408245 +383.0,2.420565680550249 +384.0,2.4340119334379837 +385.0,2.490801199532256 +386.0,3.261960774534116 +387.0,2.647571445268379 +388.0,2.449012455077841 +389.0,2.59881006582621 +390.0,2.4433901737489134 +391.0,2.457950018810533 +392.0,2.5234253667205673 +393.0,2.4582558020395124 +394.0,2.576821386168436 +395.0,2.3425767066223377 +396.0,2.9882704501609294 +397.0,3.994977996330732 +398.0,2.561481168982415 +399.0,2.6443061345906194 +400.0,2.3074430483123813 +401.0,2.7033935792168693 +402.0,2.637741135907333 +403.0,3.697850527008022 +404.0,2.697405612284299 +405.0,2.5442857357053144 +406.0,2.5794056893576562 +407.0,2.7202193121063636 +408.0,2.9286595595602227 +409.0,2.960705839643229 +410.0,2.829604505230034 +411.0,2.361091311875504 +412.0,2.5185210579953803 +413.0,2.453481996229848 +414.0,2.8634507475160067 +415.0,2.630683769946554 +416.0,2.6891767337793047 +417.0,2.3577839026122756 +418.0,2.500773935315095 +419.0,2.633318771051675 +420.0,2.643307382386364 +421.0,2.364328658851963 +422.0,2.7900984078369278 +423.0,2.5161887347189125 +424.0,2.7273535608744504 +425.0,2.399280898244797 +426.0,2.4295830283652387 +427.0,2.91842531693189 +428.0,2.8225739453651437 +429.0,2.3157787969155796 +430.0,2.714619834050798 +431.0,2.5779108769432746 +432.0,2.376226644095295 +433.0,2.9368992073318374 +434.0,2.5629633071200737 +435.0,2.562943875697725 +436.0,2.3352295964570224 +437.0,2.3078620865849224 +438.0,3.074494553051496 +439.0,2.4794873240833986 +440.0,2.632953696149091 +441.0,2.504222080037577 +442.0,2.6452814588830713 +443.0,2.554545833899301 +444.0,2.379934895992042 +445.0,2.6138008019399828 +446.0,2.8241872441358633 +447.0,2.3820927680107973 +448.0,2.9759713452534964 +449.0,2.3716179137283278 +450.0,2.5218399984246047 +451.0,2.3793808528149945 +452.0,2.752639709165787 +453.0,2.513536104533215 +454.0,2.4538486701908493 +455.0,3.4571242891927394 +456.0,2.968167790480075 +457.0,2.5864296711072505 +458.0,2.3798753853507355 +459.0,3.5689985708134655 +460.0,2.650604330620798 +461.0,3.281421493002858 +462.0,2.591907937276046 +463.0,3.2555957546496206 +464.0,2.7232459037419523 +465.0,3.8434819777254505 +466.0,2.719750849947201 +467.0,2.393336788576003 +468.0,2.3164742568105607 +469.0,2.6727350174146043 +470.0,2.674926823818562 +471.0,2.4597756266531015 +472.0,2.325204230732592 +473.0,2.3972026092564978 +474.0,2.4192487018613598 +475.0,2.9519247263298967 +476.0,2.5767710643351713 +477.0,2.5927737141649687 +478.0,2.942522926266978 +479.0,2.325326020728719 +480.0,2.67374012134199 +481.0,3.3139438858457337 +482.0,2.6972172641580467 +483.0,2.3815257997307455 +484.0,2.7843187643134852 +485.0,2.710287708531757 +486.0,3.0906790953542167 +487.0,2.5336414289669618 +488.0,2.3236298078980613 +489.0,2.6297862141144983 +490.0,2.5728362319254954 +491.0,2.3676964015209943 +492.0,2.648745284907714 +493.0,2.4980423438521653 +494.0,2.536311237012364 +495.0,2.5706465488963 +496.0,2.42869917600641 +497.0,2.5126038786905256 +498.0,2.367011616467697 +499.0,2.335299642899488 +500.0,2.607408673239455 +501.0,2.9275422301108414 +502.0,2.503324904310157 +503.0,3.541871128061796 +504.0,2.616605295218238 +505.0,2.5755658377994566 +506.0,2.464786071631807 +507.0,2.9801675113468913 +508.0,2.631361230302519 +509.0,2.514042473117215 +510.0,3.1273596854691736 +511.0,3.0092651961765013 +512.0,2.5484046213622666 +513.0,2.3860149743154198 +514.0,2.76526906143641 +515.0,2.525709956983535 +516.0,2.389564255872767 +517.0,2.755476134264113 +518.0,2.6925640353740996 +519.0,2.4904244595680076 +520.0,2.77163293546856 +521.0,2.33727946154684 +522.0,2.6989835837423533 +523.0,2.4084442639409365 +524.0,2.306693150098087 +525.0,2.3326021685307525 +526.0,2.4147408806216095 +527.0,2.558577804144686 +528.0,2.370291371116 +529.0,2.8918927898718056 +530.0,2.4338450125047335 +531.0,2.3771589413203635 +532.0,2.607124722859538 +533.0,2.3341394788453855 +534.0,2.410284537696123 +535.0,2.64337338247535 +536.0,2.677203850480947 +537.0,2.6665013926212926 +538.0,2.839402224077107 +539.0,2.6837220278853304 +540.0,2.654143781533108 +541.0,2.4113821702411844 +542.0,2.428976902337401 +543.0,2.6725300923342625 +544.0,2.5918200433558782 +545.0,2.740609956299063 +546.0,2.4562794878311163 +547.0,3.4864268967669396 +548.0,2.874336087885503 +549.0,2.415422818919145 +550.0,2.938519156144254 +551.0,2.4865167219955207 +552.0,2.458765208629713 +553.0,2.6549105524311374 +554.0,2.744072140973829 +555.0,2.5029157677070724 +556.0,2.306123714173101 +557.0,2.6450099217363605 +558.0,2.7649331829210815 +559.0,2.3916010974894446 +560.0,2.490030400678347 +561.0,2.524576292454028 +562.0,2.352647425967992 +563.0,2.996452704899304 +564.0,3.0107186844948934 +565.0,2.3687849161589853 +566.0,2.4481848789877048 +567.0,2.4237492633063926 +568.0,2.468137047881224 +569.0,3.019865724539142 +570.0,2.76468767577458 +571.0,2.358282974792817 +572.0,2.520775951468541 +573.0,2.322456353873004 +574.0,3.2446026411813937 +575.0,2.3478417055047283 +576.0,2.934034497325252 +577.0,2.77112691465505 +578.0,2.8918615941892956 +579.0,2.546192930276745 +580.0,3.0752732140026096 +581.0,3.710858302671152 +582.0,2.9108540944872185 +583.0,3.4510801179331363 +584.0,2.9721590705123457 +585.0,2.5226544232622268 +586.0,2.829247165282933 +587.0,3.878781233261201 +588.0,2.650889889498899 +589.0,4.049928558596207 +590.0,2.9846764162211605 +591.0,2.6858248781385052 +592.0,2.754984790349324 +593.0,2.9056095255924284 +594.0,3.336488636301868 +595.0,3.2753296576488307 +596.0,3.7873459187969214 +597.0,2.4340794657763403 +598.0,3.954429006462165 +599.0,4.356123057195544 +600.0,3.402424307112412 +601.0,3.0145176702276286 +602.0,2.5077908685673953 +603.0,3.578014948573844 +604.0,2.7365458487245564 +605.0,5.851359480261664 +606.0,2.7118345102901618 +607.0,4.315153760777506 +608.0,2.7910074655970125 +609.0,3.4310031301782806 +610.0,3.2628972372371665 +611.0,3.2745824678882722 +612.0,3.0289657373398446 +613.0,2.5578947629087767 +614.0,4.393532452818503 +615.0,5.018966113441532 +616.0,4.256117616334611 +617.0,3.785347965768673 +618.0,2.8799034897099123 +619.0,3.9427496184616224 +620.0,2.7956784824285177 +621.0,3.0630889420068086 +622.0,3.990244127347065 +623.0,3.6282311718406297 +624.0,3.632745763839777 +625.0,2.9944513280843412 +626.0,2.8739501914993655 +627.0,2.718779127645064 +628.0,4.75606728438549 +629.0,2.6148100240499628 +630.0,2.956112288985517 +631.0,3.0614626660143363 +632.0,4.335935175921314 +633.0,2.8856063470859765 +634.0,3.3783181448332265 +635.0,3.2960462101466796 +636.0,3.0409626180599654 +637.0,2.880635007929129 +638.0,2.5006973100233214 +639.0,4.185542940261831 +640.0,2.688165645209265 +641.0,4.150470048994047 +642.0,3.6973060734413448 +643.0,3.437242483206267 +644.0,3.672172283448944 +645.0,2.6976836456777584 +646.0,2.9001220123637346 +647.0,2.83585199493178 +648.0,3.1557848829357016 +649.0,4.804032713234746 +650.0,3.179940241273999 +651.0,3.3082253489205256 +652.0,3.3742435712329635 +653.0,3.052146024101604 +654.0,3.6983134106965596 +655.0,2.773546484894132 +656.0,3.070415686804407 +657.0,3.5817249873071866 +658.0,2.620819422430548 +659.0,4.079106481961212 +660.0,3.0787842913503756 +661.0,4.4130046238233485 +662.0,5.646794047962681 +663.0,2.6990582368326006 +664.0,4.881782753984581 +665.0,2.5828468849584723 +666.0,3.2847563083852567 +667.0,6.37765668812289 +668.0,2.710636968079563 +669.0,2.8130960375911833 +670.0,3.665295497913764 +671.0,2.602167234339666 +672.0,3.459905321809771 +673.0,2.9756889433232825 +674.0,4.488428608570179 +675.0,4.30671142691657 +676.0,3.375959693793553 +677.0,3.5817380584682135 +678.0,3.4708801934997213 +679.0,2.769711482801013 +680.0,3.094940634708485 +681.0,3.6847493955603405 +682.0,3.008082873179401 +683.0,5.432922421059938 +684.0,3.088700078189784 +685.0,3.253385007426166 +686.0,2.636506107945374 +687.0,3.5523614616783155 +688.0,2.9958446160267993 +689.0,3.619038808401696 +690.0,3.0148044007753105 +691.0,3.7004961697439556 +692.0,2.902056683627883 +693.0,4.205708315802408 +694.0,6.0692628478439365 +695.0,3.3147291063776283 +696.0,3.802915082283544 +697.0,3.6826904461653385 +698.0,2.938735902670154 +699.0,2.807611809464837 +700.0,3.1882898210084263 +701.0,3.3389786728763884 +702.0,3.185296141839352 +703.0,3.030129416663987 +704.0,3.4276909675916163 +705.0,3.0205532930483217 +706.0,4.668191002450568 +707.0,2.7050501592855105 +708.0,3.882970307388394 +709.0,3.6787819747036163 +710.0,2.7510687367499598 +711.0,3.134096836282676 +712.0,4.6689941311426715 +713.0,2.879209244926346 +714.0,4.934470158688688 +715.0,2.7301162696140473 +716.0,3.7177070725481416 +717.0,2.508245203410912 +718.0,5.891603678111736 +719.0,2.5432272852087845 +720.0,3.001896889028994 +721.0,2.8242783731004986 +722.0,4.380276431736597 +723.0,3.15200651768767 +724.0,4.180185361005973 +725.0,3.022449680586055 +726.0,3.047434008321051 +727.0,3.4178948662369253 +728.0,3.813021359067535 +729.0,2.695256655348413 +730.0,2.880875318149873 +731.0,2.882774706292115 +732.0,3.877303007413335 +733.0,3.7454609733568294 +734.0,4.0272775092954864 +735.0,3.0947930413599423 +736.0,4.53445963916951 +737.0,2.6437008143911336 +738.0,3.9731237828543122 +739.0,3.4871371559366047 +740.0,3.922832172552388 +741.0,2.800393277649508 +742.0,2.9615427772368035 +743.0,2.8377532890480794 +744.0,4.585565661125165 +745.0,2.84827130448988 +746.0,3.597397857207355 +747.0,3.512042797374227 +748.0,4.380021249459691 +749.0,7.454269554273865 +750.0,2.885901125538334 +751.0,4.528301655595828 +752.0,2.7805414060485005 +753.0,3.07414868800633 +754.0,2.763238147038308 +755.0,3.094046257494541 +756.0,2.4892523208133035 +757.0,2.9933161468125986 +758.0,4.690494528419017 +759.0,3.9693732901403447 +760.0,2.9336455210723686 +761.0,2.493310237037767 +762.0,3.307222443963298 +763.0,5.208084221783913 +764.0,4.1146307544366625 +765.0,4.21918378069056 +766.0,3.1459677637238066 +767.0,3.292205995342698 +768.0,3.4097179147637253 +769.0,2.471212344556306 +770.0,3.5775391565375463 +771.0,3.783561805680593 +772.0,4.401542693416237 +773.0,3.1318631090265736 +774.0,4.480343779245144 +775.0,2.469811669600816 +776.0,3.10458451842607 +777.0,3.4603533957626262 +778.0,2.836689985182613 +779.0,3.216016932587748 +780.0,3.1825130317570243 +781.0,3.126213468312529 +782.0,6.13195830226225 +783.0,2.625741897726608 +784.0,3.228052328471545 +785.0,4.53480275568751 +786.0,3.1271101318234775 +787.0,2.590841610840108 +788.0,7.325360094130758 +789.0,3.6637845057317593 +790.0,6.0375572138927485 +791.0,2.416079360301831 +792.0,6.015594628230041 +793.0,3.2624525285758317 +794.0,2.6030546645190027 +795.0,2.7477138419959988 +796.0,3.404341777761143 +797.0,3.4605128483947216 +798.0,2.3895068138231754 +799.0,2.389110436377083 diff --git a/tests/fixtures/catalogs/case_007_active_then_quiet_800d.csv b/tests/fixtures/catalogs/case_007_active_then_quiet_800d.csv new file mode 100644 index 0000000..94b7def --- /dev/null +++ b/tests/fixtures/catalogs/case_007_active_then_quiet_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,3.591712870444712 +1.0,2.7129371544351586 +2.0,3.3870941629731006 +3.0,2.3171727322428013 +4.0,4.269483232147048 +5.0,4.2776104803172 +6.0,4.10166178179498 +7.0,3.634388384662337 +8.0,3.0706390515470376 +9.0,3.245784449487338 +10.0,3.7779240814616557 +11.0,4.209003839129388 +12.0,3.482132585281269 +13.0,4.709014241512907 +14.0,4.996118223004354 +15.0,4.248283095272287 +16.0,2.513912727183208 +17.0,3.1005338301806438 +18.0,2.586000829663854 +19.0,2.500549030080871 +20.0,3.2658901107992664 +21.0,2.627279988843126 +22.0,2.544984147077827 +23.0,2.6317929757574334 +24.0,4.694450971230287 +25.0,3.3660552592646007 +26.0,6.941999780535509 +27.0,5.362413650915571 +28.0,2.6540576322892413 +29.0,2.792163530998902 +30.0,3.3439879527229324 +31.0,5.900992687170849 +32.0,4.328764479928873 +33.0,2.530078375844979 +34.0,2.7745426327271643 +35.0,3.2684570803119866 +36.0,2.6536964360642656 +37.0,4.990136812919287 +38.0,3.4147167253701056 +39.0,4.732175904422224 +40.0,3.335976110885311 +41.0,5.19979386055078 +42.0,2.626914507016769 +43.0,3.893381646663091 +44.0,3.3000400389206606 +45.0,2.864588764345135 +46.0,3.0189069430329822 +47.0,2.686671198974908 +48.0,4.978270853072116 +49.0,3.400515209756326 +50.0,3.272110223821899 +51.0,3.488159211618639 +52.0,3.707118846528937 +53.0,3.980082974289479 +54.0,3.3798720491162153 +55.0,2.4481825453650536 +56.0,2.416567813963917 +57.0,4.005714439793618 +58.0,5.028071673837453 +59.0,3.2498021421799645 +60.0,3.258589443071052 +61.0,2.8275697707502077 +62.0,3.811732289867363 +63.0,2.9325840583304634 +64.0,3.696663862548985 +65.0,2.5662392579451723 +66.0,2.494289591564981 +67.0,3.773212392455677 +68.0,2.483523400385009 +69.0,2.4403962532395926 +70.0,3.6483108637639363 +71.0,3.6570768000167337 +72.0,2.5746612071379356 +73.0,3.521315666051499 +74.0,2.5154364355508627 +75.0,4.261183376117231 +76.0,2.8743989717546836 +77.0,4.432031691404909 +78.0,2.598784349524216 +79.0,3.8863056848773736 +80.0,2.849686018275624 +81.0,2.520702188390223 +82.0,2.429320885079035 +83.0,2.661978945914023 +84.0,4.30988761180784 +85.0,3.2412192099871397 +86.0,3.2823170921629576 +87.0,3.50400318147797 +88.0,2.8009826880283955 +89.0,3.7542474939927173 +90.0,4.46333094690883 +91.0,4.013879654731304 +92.0,2.873266791727692 +93.0,4.047910174047729 +94.0,4.446059026307048 +95.0,4.290910599278231 +96.0,4.587750273030101 +97.0,3.399546246174467 +98.0,2.9274218900897027 +99.0,2.6423561513419727 +100.0,4.869312906925796 +101.0,3.1870281850451985 +102.0,4.106527278921918 +103.0,4.512930529542384 +104.0,3.093648374598466 +105.0,2.8498546649416516 +106.0,2.79648090807951 +107.0,6.0220822453539 +108.0,3.0935869106675087 +109.0,2.902111305569134 +110.0,3.8845048039450965 +111.0,3.0020989463693866 +112.0,5.241857580303211 +113.0,3.164569450421612 +114.0,2.8242004022556615 +115.0,2.6871515190566604 +116.0,4.559588914555673 +117.0,4.244020272943285 +118.0,2.741449099844464 +119.0,3.4442286753489015 +120.0,4.076195783914516 +121.0,3.6651234164632265 +122.0,2.6751209204262985 +123.0,4.088540817639626 +124.0,2.7801724437490973 +125.0,4.517819328784977 +126.0,5.046348286236173 +127.0,3.704267626493613 +128.0,4.322038509724562 +129.0,3.172606994359287 +130.0,3.4472045903961597 +131.0,2.361282310350751 +132.0,3.0199182934392534 +133.0,2.354069078816697 +134.0,3.1289686718090266 +135.0,3.060563703167092 +136.0,2.468421960894417 +137.0,2.9193569412113627 +138.0,3.0615488839024327 +139.0,3.7062964778600063 +140.0,3.071018398708651 +141.0,4.458800762322136 +142.0,4.489257855016882 +143.0,4.07885184412762 +144.0,2.6058290581732497 +145.0,3.4930447301186254 +146.0,4.567281155366513 +147.0,3.9390819610313175 +148.0,2.9128104778234913 +149.0,3.282138780648541 +150.0,2.7002597966881376 +151.0,3.2786107064995167 +152.0,4.116078822659266 +153.0,4.076224839109541 +154.0,2.62123369039759 +155.0,2.739766324788397 +156.0,4.720810786670313 +157.0,2.8531465998342496 +158.0,2.8235631491664983 +159.0,2.795381120285252 +160.0,2.6123122564032033 +161.0,3.6740306876716184 +162.0,3.10376070369784 +163.0,3.281571206035625 +164.0,4.695179132368255 +165.0,5.142336932168799 +166.0,3.656263177168767 +167.0,2.6182914671651076 +168.0,2.96120142093338 +169.0,4.776452015118382 +170.0,3.7101299229700038 +171.0,2.9402357752363057 +172.0,3.1212710042636376 +173.0,4.336069675496622 +174.0,3.135958288865352 +175.0,3.4197032189472547 +176.0,3.550227999913836 +177.0,3.13341299213999 +178.0,2.7517172223430126 +179.0,3.419135564844882 +180.0,3.298993376675029 +181.0,3.6671522948756277 +182.0,3.8201394143808685 +183.0,4.207831212208623 +184.0,2.7203222501322983 +185.0,2.7746757073504273 +186.0,4.405160064037722 +187.0,2.937047144527016 +188.0,2.8142901957079216 +189.0,2.994956736706912 +190.0,2.7945743710798383 +191.0,3.0416921038917453 +192.0,2.8498605636687024 +193.0,3.3134345717817584 +194.0,2.4441892339266507 +195.0,3.5891017904837312 +196.0,2.3757193321874817 +197.0,2.9672876085429367 +198.0,2.9223304205136316 +199.0,2.8340581263900884 +200.0,3.5050144156932763 +201.0,2.7672114979710587 +202.0,2.7103227229838525 +203.0,3.0769833394526915 +204.0,4.100451672002258 +205.0,3.8367863494983405 +206.0,3.760518191288684 +207.0,2.922444146659041 +208.0,3.1358698426269584 +209.0,2.6796293451247384 +210.0,3.4566714694082163 +211.0,4.369752332487065 +212.0,2.677670809736845 +213.0,3.540612937934835 +214.0,2.8309493764005578 +215.0,3.1166534639935204 +216.0,5.159397904225512 +217.0,3.1533089934406933 +218.0,3.3226116828037084 +219.0,3.9533219641024866 +220.0,2.8241064802063143 +221.0,3.8609876159680483 +222.0,4.131884871065161 +223.0,2.7962034462935663 +224.0,3.186134178847797 +225.0,2.584948713985399 +226.0,2.7338808372676797 +227.0,2.525204291542072 +228.0,2.4505875720185815 +229.0,2.690497073363911 +230.0,2.352300866247686 +231.0,2.559193589372235 +232.0,2.9611446192386772 +233.0,2.442858925677485 +234.0,2.380654040904511 +235.0,2.3500134118300093 +236.0,2.3120432025154565 +237.0,2.613117830504845 +238.0,2.4388441128735225 +239.0,2.517055198407566 +240.0,2.3560700122166387 +241.0,3.3946673598123684 +242.0,2.980738959798843 +243.0,2.5057584212489994 +244.0,2.5296671800294512 +245.0,2.454471526166544 +246.0,2.318686400481069 +247.0,2.8695169388328536 +248.0,2.5509651910919007 +249.0,2.3120245728455506 +250.0,2.5548139891407136 +251.0,2.513252588533741 +252.0,2.368827849662936 +253.0,2.4346348341851693 +254.0,2.4829828865104195 +255.0,2.598487910631098 +256.0,2.3659784768427445 +257.0,2.347584479064758 +258.0,2.4135568577450255 +259.0,2.6990014663008024 +260.0,2.516938620826736 +261.0,2.6737152569824634 +262.0,2.4230021600551206 +263.0,2.609717112394812 +264.0,2.50054335354317 +265.0,2.54445315501022 +266.0,2.6452955547875114 +267.0,2.453503510561191 +268.0,2.4127976489587923 +269.0,2.4936458134929573 +270.0,3.0974654245592546 +271.0,2.3289941900457722 +272.0,2.3367048432135444 +273.0,2.419121118753313 +274.0,2.810484475852147 +275.0,2.433211761385778 +276.0,2.558374959718671 +277.0,2.7827378550132735 +278.0,2.6463111760088704 +279.0,2.315855427011991 +280.0,2.55008743154706 +281.0,2.3251859365971517 +282.0,2.398323137330226 +283.0,2.489434450315405 +284.0,2.8859847728898385 +285.0,2.7693498954068585 +286.0,2.8521314334826733 +287.0,2.4505169976189203 +288.0,2.4976539891217326 +289.0,2.9560469066699095 +290.0,2.756825861120618 +291.0,2.3915342704551015 +292.0,2.3093780433018547 +293.0,2.908665117474356 +294.0,2.378369974059303 +295.0,2.3274726303687108 +296.0,2.511696620634438 +297.0,2.917169568379003 +298.0,2.61720599606337 +299.0,2.605214587306416 +300.0,2.420728932709991 +301.0,2.8413523780789385 +302.0,2.546684022294678 +303.0,2.382427272437304 +304.0,2.8135508772491793 +305.0,2.871617493809274 +306.0,2.4386001428967585 +307.0,2.389939744283998 +308.0,2.3772503495107484 +309.0,2.501225156767112 +310.0,2.4477381484766623 +311.0,2.5343350381929026 +312.0,2.7329286437362597 +313.0,2.512002135036538 +314.0,2.5665628463245693 +315.0,2.419529143033698 +316.0,2.326721983980167 +317.0,2.6918781141937527 +318.0,2.35707527603128 +319.0,2.745423327324589 +320.0,2.3027843509571113 +321.0,2.7725127727872287 +322.0,2.4271483443385917 +323.0,2.3130720611794526 +324.0,3.709818378670269 +325.0,2.4021086551449193 +326.0,2.51249546840412 +327.0,2.580418655589023 +328.0,2.3432546170154245 +329.0,2.3473246471536764 +330.0,2.3615259579612013 +331.0,2.5005480195370104 +332.0,2.450300765857772 +333.0,2.3683740623640337 +334.0,2.4507498509342165 +335.0,2.4574730853118534 +336.0,2.364460010936231 +337.0,2.586546361198021 +338.0,2.5240286852815084 +339.0,2.47158442523052 +340.0,3.116093948586193 +341.0,2.3387843107534745 +342.0,2.465894973081939 +343.0,3.0509442066205352 +344.0,3.6874318078488573 +345.0,2.6015981226568026 +346.0,2.517283999551238 +347.0,2.4428219428563995 +348.0,2.336336074010277 +349.0,2.5980353418631164 +350.0,2.7109807839349775 +351.0,2.6325860945320656 +352.0,2.668861922227595 +353.0,2.315901934328806 +354.0,2.5644789101383174 +355.0,2.5382305360104715 +356.0,2.5430226639165845 +357.0,3.3593657710038256 +358.0,2.414543347825862 +359.0,2.5568613746420437 +360.0,2.3622817747068976 +361.0,2.3869049676468994 +362.0,2.4219414725430215 +363.0,2.773544013434586 +364.0,2.5337731369576932 +365.0,2.7240676582654864 +366.0,2.3204642238356437 +367.0,2.723034228326324 +368.0,2.367884315024685 +369.0,2.834930264182492 +370.0,2.401528926962667 +371.0,2.720817986295631 +372.0,2.7600812327039725 +373.0,2.3939930389107 +374.0,2.373171113078765 +375.0,2.4249141372320024 +376.0,3.4578567996681695 +377.0,2.3611191004792724 +378.0,2.827657984303755 +379.0,2.3831037957707455 +380.0,2.5149770495424684 +381.0,2.4470372400159155 +382.0,2.989170161117433 +383.0,3.38497166549125 +384.0,2.783130427066504 +385.0,2.5036012413443585 +386.0,2.476007186779567 +387.0,2.3892335807980634 +388.0,3.3346161597119575 +389.0,2.4878055426657615 +390.0,2.357024865911572 +391.0,2.462851764635205 +392.0,2.4039770920899755 +393.0,3.44792277205881 +394.0,2.3707161109249086 +395.0,2.361833645710797 +396.0,2.6168791104909497 +397.0,2.3458420328302703 +398.0,2.611310454851714 +399.0,2.6414557195386434 +400.0,2.524180473257979 +401.0,2.7370761872461253 +402.0,3.36878168338439 +403.0,2.412274614778093 +404.0,2.5877528895944764 +405.0,2.5733515675985323 +406.0,2.328212152225722 +407.0,2.9051174741090655 +408.0,3.1539978186882722 +409.0,2.3918840658586737 +410.0,2.602708790070814 +411.0,2.5829063621346435 +412.0,3.6329559238094937 +413.0,3.0430987955835027 +414.0,2.785374841534157 +415.0,2.999046059107788 +416.0,2.684090889161604 +417.0,2.510896588320185 +418.0,2.4524897073154857 +419.0,2.6501017491776966 +420.0,4.028593184093878 +421.0,2.414522368313253 +422.0,2.661088386485374 +423.0,2.708320378814947 +424.0,2.4080744042784517 +425.0,2.914630268626173 +426.0,2.350260779650112 +427.0,2.3526955513761236 +428.0,2.499670824549305 +429.0,2.604149705837223 +430.0,2.3815283125379048 +431.0,3.1010342528039296 +432.0,2.418473186520361 +433.0,2.762924101847852 +434.0,2.460425823284386 +435.0,2.30730556918515 +436.0,2.4527538000278155 +437.0,2.37704106599397 +438.0,2.3022085406907973 +439.0,2.468648856918307 +440.0,3.613167074653509 +441.0,3.5653453607757966 +442.0,2.4625753141116102 +443.0,2.3414436158715763 +444.0,2.3073615004006642 +445.0,2.4711451472995036 +446.0,2.5923258547154253 +447.0,2.5670751608376814 +448.0,2.5414510511650117 +449.0,2.4588029923653476 +450.0,2.679302731629158 +451.0,2.31065206307848 +452.0,2.4645859329145337 +453.0,2.5312693343163857 +454.0,2.5940436510028415 +455.0,2.5148638232198763 +456.0,2.4061551388504014 +457.0,2.396471686830273 +458.0,2.4165372427508878 +459.0,2.9153715320608633 +460.0,2.6019404920970994 +461.0,3.5367864035369685 +462.0,2.3805722331883605 +463.0,2.340289757771906 +464.0,2.7519676338165535 +465.0,2.883612769029353 +466.0,2.322536510530196 +467.0,2.3895550437074506 +468.0,2.365001791138178 +469.0,2.8157671965873083 +470.0,2.5908655940765377 +471.0,3.0487350247725256 +472.0,2.3464642635453083 +473.0,2.3877689865825547 +474.0,2.6122905301017547 +475.0,2.661030066085105 +476.0,2.4542938369078184 +477.0,3.699186332369172 +478.0,2.4416744282063987 +479.0,2.5096449499106255 +480.0,2.698143313034368 +481.0,2.5433784555068595 +482.0,2.466644675280605 +483.0,2.3283682115305013 +484.0,2.389760764584045 +485.0,2.4837121633502304 +486.0,2.4996327453624123 +487.0,2.777068255722795 +488.0,2.315587202879242 +489.0,2.4581298327604038 +490.0,2.304618756045941 +491.0,2.8225798418108123 +492.0,2.3140230443612584 +493.0,2.3217352434452385 +494.0,2.4698974349242633 +495.0,2.9745434985411903 +496.0,2.341077953874276 +497.0,2.349327261952088 +498.0,2.364024716133793 +499.0,2.694125683669974 +500.0,2.331368868999243 +501.0,2.368616801803353 +502.0,2.3399114276516038 +503.0,2.528163727187108 +504.0,2.3678503799384774 +505.0,2.7804732954725466 +506.0,2.3254390366838247 +507.0,2.6018956241937787 +508.0,2.335272472496471 +509.0,2.5257329573471816 +510.0,2.3938802246240773 +511.0,2.3865969768378887 +512.0,2.699489390403378 +513.0,2.43840896280305 +514.0,2.4121973577683318 +515.0,2.3833544745935487 +516.0,3.058054285957571 +517.0,2.423509204803341 +518.0,2.5268125819811935 +519.0,2.914490861478339 +520.0,2.399144783022136 +521.0,2.4734157237428844 +522.0,2.429162777718436 +523.0,2.668169961399931 +524.0,2.403155136750432 +525.0,2.469152206783958 +526.0,2.782034246598693 +527.0,2.46408131600269 +528.0,2.382038788290515 +529.0,2.3795330101114907 +530.0,2.370312748982485 +531.0,2.342493748597346 +532.0,2.4505981433832402 +533.0,2.665631180627834 +534.0,2.3897358714817383 +535.0,2.347378527900386 +536.0,2.343587018085758 +537.0,3.215134760932549 +538.0,3.242995616446235 +539.0,2.3209610853308025 +540.0,2.7935543106735237 +541.0,2.702801998264244 +542.0,2.6647464069919495 +543.0,2.801929500960359 +544.0,2.334009642417716 +545.0,2.6906776173073284 +546.0,2.5412873008004335 +547.0,2.5901223948891436 +548.0,2.3849359472331653 +549.0,2.792480222708084 +550.0,2.8088244853337483 +551.0,2.7571710314689444 +552.0,2.3125633734753652 +553.0,2.391852413528432 +554.0,2.4790174603601782 +555.0,2.455767254360921 +556.0,2.330602578591957 +557.0,2.583731068134342 +558.0,3.2103651211866784 +559.0,2.5961675085069826 +560.0,2.4487742835066806 +561.0,2.563867122539559 +562.0,2.4445692688559504 +563.0,2.330749916356964 +564.0,2.702795635346498 +565.0,2.5221986117944715 +566.0,2.722016806178896 +567.0,2.4039250962537864 +568.0,2.348951050575408 +569.0,2.7349562290899265 +570.0,2.372699217853636 +571.0,3.129514925298234 +572.0,2.4198960457035574 +573.0,2.3590115567954855 +574.0,3.3591984401063764 +575.0,3.0713755426977483 +576.0,2.6267538567119035 +577.0,2.354830064805427 +578.0,2.400812683028371 +579.0,2.581126686281513 +580.0,2.6521905413412625 +581.0,2.632380511529884 +582.0,2.3700626349154708 +583.0,3.026659427680021 +584.0,2.347728834244127 +585.0,3.101142467111971 +586.0,2.785164557951811 +587.0,2.3400550164949947 +588.0,2.4361547466477256 +589.0,2.3940318319386686 +590.0,2.3912921399207048 +591.0,2.9859737277819547 +592.0,2.712354936112937 +593.0,2.4963449521322145 +594.0,2.5416959408957562 +595.0,2.3330084128626414 +596.0,2.9945901613594725 +597.0,2.5860490951881205 +598.0,2.480229305803544 +599.0,2.3244766431329946 +600.0,2.464418307172184 +601.0,2.484293637602612 +602.0,2.916631001467232 +603.0,2.6639506579303744 +604.0,2.5186920669858495 +605.0,2.3759112517315923 +606.0,2.5498819601323355 +607.0,2.312910938541954 +608.0,2.3449268889022727 +609.0,2.5403831538654327 +610.0,2.4905300841809304 +611.0,2.560041857966762 +612.0,2.3938058533331223 +613.0,2.310052552918772 +614.0,2.9496471012236176 +615.0,2.367308164244782 +616.0,2.3131031901743633 +617.0,4.275418774274897 +618.0,2.513331973678523 +619.0,2.368253434073527 +620.0,2.5262572578643057 +621.0,2.3633595336456823 +622.0,2.449531558288558 +623.0,3.0997209230191345 +624.0,2.329694749473093 +625.0,2.358521404592472 +626.0,2.7165846188407023 +627.0,2.3061517569389975 +628.0,2.51173841529462 +629.0,2.5215342158343557 +630.0,2.376506732228477 +631.0,2.5427752557112586 +632.0,2.7386382127350393 +633.0,2.5958565506708418 +634.0,3.234988117638694 +635.0,2.3390607076603476 +636.0,3.3235612760970437 +637.0,2.7536246629628134 +638.0,2.4315117335221283 +639.0,2.300946241884216 +640.0,2.666466527121398 +641.0,2.3277080026997767 +642.0,2.4569115847501632 +643.0,2.4150608578460413 +644.0,2.493716346519509 +645.0,2.388464288333079 +646.0,3.050078779801865 +647.0,2.5981424166099103 +648.0,2.3050539604063403 +649.0,2.639872923011627 +650.0,2.4285228025175387 +651.0,2.3001359860063118 +652.0,2.3906307718232793 +653.0,2.7910217082541826 +654.0,2.4592457031480235 +655.0,2.7687550423976806 +656.0,2.691989085147258 +657.0,2.489287442051709 +658.0,2.738773126102656 +659.0,2.652070682497573 +660.0,2.479170560124178 +661.0,2.4022343999318667 +662.0,2.495877338443749 +663.0,2.7092726836032406 +664.0,2.685045299849413 +665.0,2.3694423076589484 +666.0,3.6231744555100054 +667.0,2.5599599501689227 +668.0,2.7371291415090044 +669.0,2.7264270720521866 +670.0,2.6119397877720365 +671.0,2.3944411937927352 +672.0,2.450498907426685 +673.0,2.467693537432002 +674.0,3.2563354801087696 +675.0,2.9183685051167467 +676.0,2.4959702772389623 +677.0,2.8816174681922915 +678.0,2.4848860064295937 +679.0,2.351411496414012 +680.0,2.3271068418080594 +681.0,2.71337536329621 +682.0,2.3837376266778385 +683.0,2.4373402956618313 +684.0,2.406411574244829 +685.0,2.3890364176768992 +686.0,2.4121072349510766 +687.0,2.6579255714199563 +688.0,2.7107456212662715 +689.0,2.439519699660115 +690.0,2.6457537369791297 +691.0,3.321849717284667 +692.0,3.1860815937842357 +693.0,2.434191336657684 +694.0,2.5610134404896923 +695.0,2.508339131991117 +696.0,2.615349479387059 +697.0,2.528749581697913 +698.0,2.3384919432528135 +699.0,3.4358557068281694 +700.0,2.4656255534355966 +701.0,2.7573974223992717 +702.0,2.432612706193019 +703.0,2.607410830882809 +704.0,2.7692931330104225 +705.0,2.355131781791522 +706.0,2.664987219701673 +707.0,2.444547941261549 +708.0,2.52190817840912 +709.0,2.3819635844167317 +710.0,2.4277621164303267 +711.0,3.3088891311526663 +712.0,2.876511235295398 +713.0,2.3600004983934784 +714.0,2.5285188122081053 +715.0,2.960608999465659 +716.0,2.8931770387551805 +717.0,2.5419356617933926 +718.0,2.48618866351825 +719.0,2.644671991114561 +720.0,2.3654835593992467 +721.0,2.8058332227206395 +722.0,2.7111868600343616 +723.0,2.3141535681889915 +724.0,2.5958150726034583 +725.0,2.631987914811827 +726.0,2.4244384221892066 +727.0,2.354968025936937 +728.0,2.4655411683707706 +729.0,2.390223171468563 +730.0,2.3565615614901585 +731.0,2.8839721130654112 +732.0,2.539810690791113 +733.0,2.613145275484982 +734.0,2.6652468807045735 +735.0,2.339883507311505 +736.0,2.329333616914797 +737.0,3.4068118019110933 +738.0,2.4532847715731805 +739.0,2.772001762173033 +740.0,2.6468251529741655 +741.0,2.5270432129128895 +742.0,3.0938012677916658 +743.0,2.5640234895318197 +744.0,2.396291645919729 +745.0,2.3266751374108186 +746.0,2.4604154044590167 +747.0,2.5057594495673787 +748.0,2.424246721510267 +749.0,2.3978352188224097 +750.0,2.3071406909834358 +751.0,2.8608686889136097 +752.0,3.9021298250325773 +753.0,2.304942390299359 +754.0,2.367928986378816 +755.0,2.462435515229402 +756.0,2.7137899214355756 +757.0,2.9121730753693287 +758.0,2.3609129407842944 +759.0,3.097769301041471 +760.0,2.912027221375541 +761.0,2.7692079283435995 +762.0,2.4405770001890974 +763.0,2.451186131453157 +764.0,2.396566497440921 +765.0,2.738791470924688 +766.0,2.5816865836019636 +767.0,3.0231327268819745 +768.0,2.416575352967664 +769.0,2.4102184225770387 +770.0,2.6023984389688306 +771.0,2.4966831974038626 +772.0,4.372906799636403 +773.0,2.8612180052998637 +774.0,2.41647450097806 +775.0,2.58319239769222 +776.0,2.414505122528304 +777.0,2.3665608124105044 +778.0,2.859615277471595 +779.0,2.5564340811065662 +780.0,2.5163853953113464 +781.0,2.392375213693596 +782.0,2.3298614958612096 +783.0,2.3535880733034844 +784.0,3.641664509023588 +785.0,2.726659641929618 +786.0,2.3611873858221513 +787.0,2.3570272339208747 +788.0,2.4607721062706296 +789.0,2.3484328240532957 +790.0,2.323874990726211 +791.0,2.5577671187152613 +792.0,2.3814384374868105 +793.0,2.565377118021582 +794.0,2.310393419212004 +795.0,2.498998924799712 +796.0,3.539934215731492 +797.0,2.7688086032786456 +798.0,2.4257965238906456 +799.0,2.3597833091520055 diff --git a/tests/fixtures/catalogs/case_008_near_stationary_boundary_800d.csv b/tests/fixtures/catalogs/case_008_near_stationary_boundary_800d.csv new file mode 100644 index 0000000..7de5161 --- /dev/null +++ b/tests/fixtures/catalogs/case_008_near_stationary_boundary_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.7139926695016876 +1.0,3.1573524362445315 +2.0,2.613920564961946 +3.0,2.461964785354475 +4.0,2.5090884372764095 +5.0,3.124575618117109 +6.0,2.7926780691788275 +7.0,3.4663063279682462 +8.0,2.642996507247411 +9.0,2.45936114177085 +10.0,3.2073979374148607 +11.0,2.8212181951673294 +12.0,2.6335140464343008 +13.0,2.8225703262710113 +14.0,2.671798712679956 +15.0,2.5600200750328663 +16.0,4.04912268119911 +17.0,2.6398036586949147 +18.0,2.4946623312488416 +19.0,3.710682398488658 +20.0,2.703060986909871 +21.0,2.917708750481891 +22.0,2.4789108767176278 +23.0,2.6927996724158927 +24.0,2.587301956152401 +25.0,2.8519384272536126 +26.0,2.7143600873468032 +27.0,3.2037872344081806 +28.0,2.6206104422363476 +29.0,2.700453396545214 +30.0,3.472574921366672 +31.0,4.045793020666621 +32.0,2.982444761598971 +33.0,2.910218854308849 +34.0,2.6287242426387647 +35.0,2.842683813575316 +36.0,3.4404101358505375 +37.0,3.2351120755820997 +38.0,2.6029373105564457 +39.0,2.462674661633705 +40.0,2.62965975580523 +41.0,2.648700143140412 +42.0,2.9832398338463904 +43.0,2.7910844655652025 +44.0,3.5277754901858636 +45.0,2.8967867945290293 +46.0,3.2454543274745618 +47.0,3.6017183796918406 +48.0,2.504850747707862 +49.0,2.7849770995753507 +50.0,3.066279074549568 +51.0,2.4928207740624777 +52.0,3.0667207290028133 +53.0,2.524174501453918 +54.0,2.639704024175006 +55.0,4.136385100759977 +56.0,3.4551296760268007 +57.0,3.3664524892240806 +58.0,3.429606331975893 +59.0,2.612675204158088 +60.0,4.194058757017956 +61.0,2.773069612300727 +62.0,2.476141305115039 +63.0,2.4899733682980028 +64.0,2.722459775902333 +65.0,2.4811834984433343 +66.0,2.5950320182619815 +67.0,2.951767669638368 +68.0,2.86634943986908 +69.0,2.6921894135126125 +70.0,2.8296244646727984 +71.0,2.615276906172779 +72.0,2.5169176443898884 +73.0,2.512311747798632 +74.0,2.572381111254154 +75.0,2.498940336312347 +76.0,2.5181216424337203 +77.0,2.629093735876551 +78.0,3.050909122770471 +79.0,2.45604823777317 +80.0,3.6219371703767287 +81.0,2.4664624637622072 +82.0,2.792429666349312 +83.0,2.5946841667279985 +84.0,2.4554016096796207 +85.0,3.59932533372315 +86.0,2.6955625152110443 +87.0,2.5794739174419705 +88.0,3.236617749777689 +89.0,2.7853587666633075 +90.0,4.466876860441165 +91.0,4.095729028119072 +92.0,3.3593363145327872 +93.0,2.934008001078915 +94.0,3.433093880619763 +95.0,2.5430262283499334 +96.0,4.208501284253309 +97.0,2.5070582794664085 +98.0,2.9501601893837046 +99.0,2.961289771070967 +100.0,2.8017662795004 +101.0,2.4581974644995883 +102.0,2.5779893680885233 +103.0,3.135936257151167 +104.0,3.5394934778460074 +105.0,2.5643818764842163 +106.0,3.1871599219358018 +107.0,2.6676960156425027 +108.0,2.530854592021047 +109.0,2.669908236675825 +110.0,2.5128889331248208 +111.0,2.4500338905644625 +112.0,2.7139849439941206 +113.0,3.1849237417392624 +114.0,3.1098234546769787 +115.0,3.2594971453425177 +116.0,2.91730832411221 +117.0,3.3630739001065413 +118.0,2.6558302787461336 +119.0,2.8068114001521005 +120.0,2.58655244315286 +121.0,2.8889071141066203 +122.0,2.7184273639346035 +123.0,2.9761903586858955 +124.0,2.8005175354739067 +125.0,3.6047134308604303 +126.0,2.4515415765871116 +127.0,2.5006374641446647 +128.0,2.5287768616541886 +129.0,2.9307861330138874 +130.0,2.518487758573233 +131.0,3.264436252802582 +132.0,2.838788673607063 +133.0,3.124927094197126 +134.0,2.775143459755916 +135.0,2.7440745074356316 +136.0,3.9069929495753613 +137.0,2.4861894811382736 +138.0,2.7068002680899483 +139.0,2.5455534360080536 +140.0,3.5918277926267366 +141.0,3.351450406750457 +142.0,3.8592989645420097 +143.0,6.285002448105359 +144.0,4.6983656038258585 +145.0,4.971420523968186 +146.0,3.470606280187507 +147.0,3.1471002667179406 +148.0,3.2668977636170315 +149.0,2.8968748297678686 +150.0,4.106288706190673 +151.0,3.483734475803632 +152.0,3.484781545586958 +153.0,2.641598746883957 +154.0,2.692597869890297 +155.0,2.8205956633798177 +156.0,3.0117432244640856 +157.0,3.147810440728532 +158.0,6.167870816618763 +159.0,2.8310997910739943 +160.0,3.242022376021466 +161.0,3.2303888024394762 +162.0,3.5839989044566214 +163.0,2.7013320206119125 +164.0,2.731252062005579 +165.0,3.0848761661268473 +166.0,3.2096052437203233 +167.0,2.545173787661556 +168.0,3.2857176329087228 +169.0,3.2055657520394343 +170.0,3.7190562653868833 +171.0,4.489184438366641 +172.0,2.760172988767094 +173.0,2.7339327231194215 +174.0,3.1889804224866776 +175.0,2.9060458133106657 +176.0,2.736588273758381 +177.0,2.714850233078039 +178.0,2.8991202083194536 +179.0,2.8431419902869397 +180.0,3.6964886776332984 +181.0,2.5029224230845046 +182.0,4.276610448405329 +183.0,2.6639251883753143 +184.0,2.602246709395512 +185.0,2.7581778841142794 +186.0,2.794578651490622 +187.0,2.92523498483593 +188.0,2.9377069491730325 +189.0,2.5361603990758654 +190.0,2.5042671673743984 +191.0,2.785633023755574 +192.0,2.556161995781729 +193.0,2.4742268146456157 +194.0,4.021508663411964 +195.0,2.724361505257983 +196.0,2.9054769670288687 +197.0,2.6514165501797846 +198.0,3.9576585312473846 +199.0,2.6445743428958606 +200.0,3.487534478170688 +201.0,2.6459851370269525 +202.0,3.050940089762124 +203.0,2.6673883673925607 +204.0,2.493381754582996 +205.0,3.528237864215249 +206.0,2.6103007602013086 +207.0,2.9068174001618505 +208.0,3.015250283804863 +209.0,3.0720940976694617 +210.0,2.7182769867491934 +211.0,3.2136170459022724 +212.0,2.7483080264310034 +213.0,2.761447106263559 +214.0,2.7006619412311355 +215.0,2.579678291576027 +216.0,3.0722895695504104 +217.0,2.770526492712755 +218.0,3.639891450574941 +219.0,3.095021912293164 +220.0,2.720298371549201 +221.0,2.5507320529822772 +222.0,2.6500706907273432 +223.0,2.4745336121969452 +224.0,2.5557895644148485 +225.0,2.926467530496308 +226.0,2.8315590840880587 +227.0,3.212355267105667 +228.0,2.609045306412167 +229.0,2.5201521171133012 +230.0,2.572164849729377 +231.0,5.306300111565796 +232.0,3.7691998773412534 +233.0,2.939055043838588 +234.0,2.469814830223767 +235.0,2.6217695307654543 +236.0,2.595213358156522 +237.0,3.5825484661340936 +238.0,2.83132316178134 +239.0,2.797599317508221 +240.0,2.4996167426811944 +241.0,2.980339950782576 +242.0,2.7460565129915167 +243.0,2.555573052002432 +244.0,2.4625811611489303 +245.0,2.4851649747660622 +246.0,2.8563191146906424 +247.0,2.8020168594559705 +248.0,2.9341200993378465 +249.0,2.5077541876885316 +250.0,4.612844920548625 +251.0,2.500550664312227 +252.0,2.710923837554758 +253.0,3.04959670360589 +254.0,2.638872814715193 +255.0,3.1944091688085994 +256.0,2.684026190502344 +257.0,2.841931466192941 +258.0,2.6646247284926736 +259.0,3.4525953490449472 +260.0,3.610328335300954 +261.0,2.7403704211694886 +262.0,2.8237292581608595 +263.0,2.7392623289709124 +264.0,2.6568433979219863 +265.0,2.5697824758602974 +266.0,2.6675185910548134 +267.0,2.6876549861957173 +268.0,4.060650796109502 +269.0,2.8692777346783105 +270.0,2.565119181867688 +271.0,3.244134820968518 +272.0,2.803311536110976 +273.0,2.575990470939683 +274.0,2.4667912434741557 +275.0,3.3547576267784143 +276.0,4.095521585021105 +277.0,2.788441286391951 +278.0,3.5804586497413218 +279.0,2.751617009307931 +280.0,2.975035083795442 +281.0,3.0259757682362887 +282.0,2.834646075514544 +283.0,2.88858513807046 +284.0,2.491615606088942 +285.0,3.1013226243198515 +286.0,2.9972649029866254 +287.0,2.9061791870335973 +288.0,2.94819281178397 +289.0,2.46422353135031 +290.0,2.8083117457710154 +291.0,2.499211572870853 +292.0,2.6864660354654264 +293.0,3.020491591487091 +294.0,2.645339807187485 +295.0,3.4588555841015864 +296.0,2.8213181601059216 +297.0,2.69822429669675 +298.0,2.765279759346769 +299.0,2.5935035169965976 +300.0,2.4789227585756413 +301.0,2.987427696427164 +302.0,2.758754232741873 +303.0,2.845333880148387 +304.0,3.120517995639108 +305.0,2.6727662446172533 +306.0,2.5095017180817836 +307.0,3.411106149035863 +308.0,2.7258546654536597 +309.0,2.557497811379248 +310.0,2.728674711620396 +311.0,2.4585894198477773 +312.0,2.624063820323513 +313.0,4.499818914039331 +314.0,2.6694298152967115 +315.0,2.604284072789428 +316.0,2.690409547508393 +317.0,2.4654645591383813 +318.0,3.0452887124350396 +319.0,3.269341224964692 +320.0,2.471070220451394 +321.0,3.226378102735249 +322.0,2.680699522854015 +323.0,2.7944781271352364 +324.0,2.83691018232637 +325.0,2.833779749712109 +326.0,2.6459790333369213 +327.0,3.0054885423242483 +328.0,2.7571596079485943 +329.0,3.0284710511313233 +330.0,2.6715431968696732 +331.0,2.8111703613592898 +332.0,2.770827976323332 +333.0,2.5316468470106814 +334.0,2.4607377528510814 +335.0,2.5145419905488278 +336.0,2.466713949559719 +337.0,3.2042012893697756 +338.0,3.532244800969668 +339.0,2.909818322888218 +340.0,4.38131355265439 +341.0,2.505203592595186 +342.0,2.857163815187919 +343.0,2.902371705416205 +344.0,3.2777232117680724 +345.0,2.65501765579034 +346.0,2.754360030464209 +347.0,2.6151636863568406 +348.0,2.475978866696288 +349.0,4.03602879846835 +350.0,3.194096004837104 +351.0,3.6080405689561674 +352.0,2.537241274091247 +353.0,2.46073206879053 +354.0,2.6896889739591816 +355.0,2.9228109376854854 +356.0,2.820729803434612 +357.0,5.3549937642965 +358.0,2.5320470391270007 +359.0,3.6446754655930627 +360.0,3.517742140080478 +361.0,2.5857208844421553 +362.0,3.253535685612146 +363.0,2.627128707294243 +364.0,3.094554425595292 +365.0,3.8802709428301614 +366.0,3.961425008895628 +367.0,2.570700360396458 +368.0,2.682739181724516 +369.0,2.5211552548899507 +370.0,2.8444573151360726 +371.0,2.868224744752471 +372.0,2.9695404863992985 +373.0,3.6979736631967324 +374.0,3.1035192726250815 +375.0,2.4741549493558095 +376.0,2.485400516506962 +377.0,3.099963647030743 +378.0,3.3034390261253623 +379.0,3.0992192780802563 +380.0,2.8604873983329897 +381.0,3.141490107329602 +382.0,2.7113407414282515 +383.0,2.5062810325127067 +384.0,3.1815361480084228 +385.0,2.614571454794221 +386.0,3.8039014416083554 +387.0,3.089130333886555 +388.0,2.4948080444210095 +389.0,3.123274014501133 +390.0,3.274861643722281 +391.0,3.0839307316782976 +392.0,3.8885827175617034 +393.0,3.1083567686249527 +394.0,3.0549094196902664 +395.0,2.9331724514123008 +396.0,3.000355195063919 +397.0,2.630007683570291 +398.0,3.4143714278893644 +399.0,3.6275957471539977 +400.0,2.914876530276401 +401.0,3.760201854603805 +402.0,3.513987833445012 +403.0,3.4858930048501615 +404.0,3.1980694468653645 +405.0,3.7445617770115716 +406.0,2.6240834366255203 +407.0,3.7261212837191056 +408.0,4.7053145154045986 +409.0,3.7664142877035296 +410.0,4.164727132296175 +411.0,3.013745736575303 +412.0,2.5561968974418785 +413.0,2.8355459334480035 +414.0,2.974415134624932 +415.0,3.208422246105105 +416.0,3.7182561578712576 +417.0,2.5185289479755766 +418.0,2.611741152342953 +419.0,2.862523069387296 +420.0,2.5870820040617453 +421.0,2.8545383018335757 +422.0,2.493462590565431 +423.0,3.251809869112053 +424.0,2.5542047927836165 +425.0,2.5156491501264195 +426.0,3.708369250448291 +427.0,2.6147386008124838 +428.0,3.0184023552744517 +429.0,2.703658970505692 +430.0,2.561089043745241 +431.0,3.380348130044902 +432.0,2.763935947317796 +433.0,2.8306002273654056 +434.0,2.71840229055894 +435.0,3.091981273529255 +436.0,3.475841644926435 +437.0,2.8831214537859378 +438.0,2.7065331380389863 +439.0,3.8474422092076166 +440.0,2.564496448173502 +441.0,2.8333106153628864 +442.0,2.538306167225336 +443.0,2.9287717129041884 +444.0,3.8819506767974445 +445.0,2.8418426312160863 +446.0,2.610047169613912 +447.0,2.7616105035076024 +448.0,3.917236385010163 +449.0,2.852718547500497 +450.0,2.6429927898409282 +451.0,2.509728197288484 +452.0,3.148569060379401 +453.0,3.1485123323983877 +454.0,2.458473184058281 +455.0,2.9098661407010007 +456.0,2.559149324901387 +457.0,4.247858287714567 +458.0,2.5016998397277237 +459.0,4.101485281919292 +460.0,3.0531326707918995 +461.0,2.6297907959111826 +462.0,2.935239129481042 +463.0,2.676162603612815 +464.0,2.7216415899519215 +465.0,2.6432363341383986 +466.0,2.7610460304058337 +467.0,2.5745235914586324 +468.0,2.5446768007834395 +469.0,2.523669426545315 +470.0,3.269254702426037 +471.0,3.5873431236192097 +472.0,2.805911460133337 +473.0,2.6420511330164835 +474.0,2.475867273815311 +475.0,2.913968195249532 +476.0,2.6215180825913302 +477.0,3.4014204045611307 +478.0,3.867522357452618 +479.0,2.4700883665166153 +480.0,2.6567360690900457 +481.0,3.0834406801820196 +482.0,2.7963429269211537 +483.0,2.6121682738770753 +484.0,4.1300827665424364 +485.0,2.6910759415257868 +486.0,2.471068433253635 +487.0,3.8270083928254692 +488.0,3.745839171286213 +489.0,3.34841729866429 +490.0,4.040183423406453 +491.0,2.609821171589007 +492.0,4.011932749390716 +493.0,2.959280912988569 +494.0,2.803181863853253 +495.0,3.2399078341973278 +496.0,3.0921749114347636 +497.0,2.847966347305762 +498.0,2.4893009772998567 +499.0,2.4763438033309626 +500.0,2.4528982474866474 +501.0,2.9041281053745083 +502.0,3.166107267598613 +503.0,2.9279036406882883 +504.0,2.453411633140229 +505.0,2.9316359056485037 +506.0,3.548643904970163 +507.0,2.5573487058700217 +508.0,2.463992380648601 +509.0,2.703182424676486 +510.0,2.455462046895064 +511.0,2.5304823123203297 +512.0,2.914562165079185 +513.0,2.9495330941111235 +514.0,2.51830676264459 +515.0,2.8102609145688335 +516.0,2.628511317994686 +517.0,2.5706067418231444 +518.0,2.586715414713198 +519.0,3.739786396154597 +520.0,2.8422124794196697 +521.0,2.7082959893293914 +522.0,3.1184553159618233 +523.0,3.0705127405200585 +524.0,3.738297286133892 +525.0,2.649974135862454 +526.0,2.859895883280806 +527.0,2.4699475908070223 +528.0,2.472537961899138 +529.0,2.47433548578634 +530.0,2.9536078492430806 +531.0,2.6000664730903984 +532.0,3.2807049251063667 +533.0,2.6127718788457526 +534.0,2.9669244220978768 +535.0,2.746532302250711 +536.0,2.491443269793221 +537.0,2.7092170815097867 +538.0,2.902560648757758 +539.0,2.932558889995306 +540.0,2.567243247663332 +541.0,2.708133328896084 +542.0,3.5388081364703874 +543.0,2.6516694828036913 +544.0,2.4511274872601043 +545.0,3.3050660315528146 +546.0,2.5038650230735664 +547.0,3.7281285418300705 +548.0,3.0291377902171477 +549.0,2.8911226530058745 +550.0,3.845623825039609 +551.0,2.6253751265790304 +552.0,3.647124600077905 +553.0,2.8958756440792097 +554.0,3.107192221250888 +555.0,2.996964539661435 +556.0,2.5411251236094596 +557.0,2.7712505771312976 +558.0,3.6788682117621 +559.0,2.537125481422214 +560.0,2.6589594307137596 +561.0,2.8732369672481988 +562.0,2.7927782543799893 +563.0,2.569661306178296 +564.0,4.429710634072737 +565.0,3.2965243263591555 +566.0,2.6704521311602036 +567.0,2.604248209214713 +568.0,3.056291233443206 +569.0,3.933987486323176 +570.0,3.168816286347183 +571.0,2.633409286550486 +572.0,2.6906411199868496 +573.0,2.726056779565164 +574.0,2.6253168283791224 +575.0,2.8139253235646753 +576.0,3.3834517156340107 +577.0,2.493251723417535 +578.0,2.6703271720142827 +579.0,2.569224088851282 +580.0,2.915708614568043 +581.0,2.5220549390304616 +582.0,3.0161100908462735 +583.0,2.5901409521166525 +584.0,2.452156138752022 +585.0,3.1972345697727764 +586.0,3.1864926987593654 +587.0,2.7688178317658974 +588.0,2.5912282656214347 +589.0,2.7101977993954622 +590.0,4.184263087274466 +591.0,5.958437917898294 +592.0,3.64609095863291 +593.0,4.11679851322065 +594.0,3.3447577298434337 +595.0,2.468982525478441 +596.0,2.63939651393307 +597.0,2.5540543669264677 +598.0,2.524490988834886 +599.0,2.9082560814404212 +600.0,2.6992872693960397 +601.0,2.8733856097472 +602.0,2.689809012920171 +603.0,2.8610292642246384 +604.0,2.524682986535936 +605.0,3.162692103462249 +606.0,2.5323916035524037 +607.0,2.5111868790346032 +608.0,5.180444338694127 +609.0,3.1166563229480824 +610.0,3.449145946873902 +611.0,2.4861193477081174 +612.0,3.2287505155109644 +613.0,2.4612850199078324 +614.0,2.7368845668290676 +615.0,2.759774226498956 +616.0,2.8236091823698066 +617.0,2.5880988063991763 +618.0,4.3132382889681455 +619.0,2.6669428087262865 +620.0,2.795500818221149 +621.0,2.7343129529300945 +622.0,3.045254858117143 +623.0,2.7230798087903287 +624.0,3.6976582647034935 +625.0,3.3394355370658735 +626.0,2.6015482642428736 +627.0,2.5105136333835048 +628.0,2.4594366716895593 +629.0,2.551693941264398 +630.0,3.687283245886282 +631.0,3.4213326583284633 +632.0,2.6507698658835035 +633.0,2.668254198631349 +634.0,2.509532594781054 +635.0,2.5409850666421905 +636.0,3.485374302096456 +637.0,4.07465075453288 +638.0,2.621148004352319 +639.0,2.5927331509794955 +640.0,4.519255046046104 +641.0,3.7657648089005034 +642.0,3.7888721525063733 +643.0,2.928376342677284 +644.0,3.0183578512804097 +645.0,4.882878237179492 +646.0,3.4441326191246677 +647.0,2.9753106249549 +648.0,3.0442436792663754 +649.0,2.634549982229679 +650.0,3.0948304189689346 +651.0,2.639594149125803 +652.0,3.8129131293953518 +653.0,3.7255912009348595 +654.0,3.166189055040401 +655.0,2.865297238072267 +656.0,2.6354909484813454 +657.0,3.5356109619468197 +658.0,3.4029585278907257 +659.0,4.115003935067778 +660.0,3.401583617963772 +661.0,2.746124942797181 +662.0,2.4630026368180533 +663.0,2.6965817173724513 +664.0,2.6441600728741776 +665.0,2.589185416188577 +666.0,2.7210331941662167 +667.0,2.9407234857419 +668.0,2.52723159586506 +669.0,3.0806321373345833 +670.0,2.6309831753789696 +671.0,2.8203735714090143 +672.0,3.0353511101511135 +673.0,3.6359349475641234 +674.0,2.609307468996244 +675.0,2.5018474987012462 +676.0,2.5578576443423584 +677.0,4.667142903526308 +678.0,2.493278491842899 +679.0,2.5582047385486826 +680.0,2.790078554665521 +681.0,2.511293089895641 +682.0,2.4880912643083195 +683.0,3.3153386798905147 +684.0,3.704554748825461 +685.0,2.824099560845434 +686.0,3.18044071821138 +687.0,2.6640856478805994 +688.0,2.606544663570294 +689.0,2.642123162834372 +690.0,2.5499283752944444 +691.0,2.592641065655411 +692.0,2.6881479774113415 +693.0,2.5242180822618656 +694.0,2.962101412089748 +695.0,3.2237871239845752 +696.0,3.2893799561411474 +697.0,2.528627492020394 +698.0,2.7002290732676273 +699.0,2.5516782225456724 +700.0,4.6567749662679105 +701.0,2.5601186456856673 +702.0,2.7653218936365924 +703.0,3.73305561556274 +704.0,2.6749010429505433 +705.0,2.4541813297571737 +706.0,2.4717547962269157 +707.0,2.7020459440167603 +708.0,2.569561739230967 +709.0,2.727013020542796 +710.0,2.817139305357553 +711.0,3.5333049130739203 +712.0,3.3316188706878904 +713.0,2.8297539661993003 +714.0,2.483537072390136 +715.0,2.545967078328709 +716.0,3.2084183920499285 +717.0,2.6383987059128184 +718.0,2.910143635676885 +719.0,2.4948587484535327 +720.0,3.4621461619724956 +721.0,3.002712413929324 +722.0,2.7163120465580604 +723.0,4.037101371707652 +724.0,2.6218273004362667 +725.0,3.324857093228472 +726.0,3.6805985001115307 +727.0,2.7874135786101712 +728.0,2.529006012177698 +729.0,2.5616871294602648 +730.0,3.604958774935602 +731.0,2.731247176398364 +732.0,2.8749713099344216 +733.0,2.490720778113547 +734.0,5.295033806794461 +735.0,3.3608518353430696 +736.0,3.3325492092445135 +737.0,2.5822045548321118 +738.0,2.5830860571752705 +739.0,3.206925691849828 +740.0,3.398858459524146 +741.0,3.914720574984643 +742.0,2.6310392623662615 +743.0,2.6395028972659706 +744.0,3.1072854796345544 +745.0,3.007944870507596 +746.0,2.616909320720959 +747.0,2.796275697548492 +748.0,2.575563828802913 +749.0,2.6068377738658697 +750.0,2.6473981120425343 +751.0,2.864656626662921 +752.0,2.6374813193758406 +753.0,3.0857091473717215 +754.0,3.178280411924895 +755.0,2.46104466223291 +756.0,2.718539450297212 +757.0,2.5906867686957007 +758.0,3.0135593559678178 +759.0,2.534803853695232 +760.0,2.6858783312081562 +761.0,2.727359001146777 +762.0,3.310676902659028 +763.0,3.046572859093867 +764.0,2.7720406182423742 +765.0,3.085269421247064 +766.0,2.4679529890916347 +767.0,2.4509514383439255 +768.0,3.07390069407798 +769.0,2.9654388770694897 +770.0,2.4682822561295508 +771.0,2.881788257128422 +772.0,2.4658973772192043 +773.0,2.451583439706956 +774.0,2.6398230865497467 +775.0,2.785747979779923 +776.0,3.430695778028354 +777.0,3.3745812720753294 +778.0,2.9830554400482026 +779.0,4.449756429879097 +780.0,3.524298657762777 +781.0,2.6527661915321015 +782.0,3.081671845447135 +783.0,2.8316278446874388 +784.0,2.836416411967533 +785.0,2.66848500912054 +786.0,4.240805360793024 +787.0,3.0970489963333305 +788.0,2.4646053698576993 +789.0,3.1498246917945627 +790.0,2.7363438442382835 +791.0,2.6113323540421476 +792.0,2.7197260185969228 +793.0,2.9932737902868625 +794.0,2.7310913302639537 +795.0,2.5558241796465544 +796.0,3.030674363203842 +797.0,2.6759795785923717 +798.0,3.105015782019107 +799.0,2.586649827602067 diff --git a/tests/fixtures/catalogs/case_009_high_mc_800d.csv b/tests/fixtures/catalogs/case_009_high_mc_800d.csv new file mode 100644 index 0000000..b5d52cd --- /dev/null +++ b/tests/fixtures/catalogs/case_009_high_mc_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,4.15254906025969 +1.0,4.033598688214438 +2.0,3.4870732799588926 +3.0,3.5413976281687156 +4.0,4.027206511332125 +5.0,4.503096870479044 +6.0,3.9853562116564736 +7.0,5.096566989099294 +8.0,3.4333509960605935 +9.0,3.4999540726315796 +10.0,3.6230991996398942 +11.0,3.647006631994277 +12.0,3.6834504004325086 +13.0,3.5151308025163925 +14.0,3.7231631083582992 +15.0,3.5746529828622764 +16.0,4.672113654744037 +17.0,3.6082595971915477 +18.0,3.7091592129121596 +19.0,3.846895226388631 +20.0,4.315268103592912 +21.0,3.6529078948717153 +22.0,3.4380074149157567 +23.0,3.5658032885233735 +24.0,3.7722702722574817 +25.0,3.58383574165552 +26.0,3.70135313742992 +27.0,4.086953340365772 +28.0,3.5561982251043895 +29.0,3.474052511202344 +30.0,4.620586933827489 +31.0,4.994833337532347 +32.0,4.01070838408539 +33.0,3.5817965501687588 +34.0,3.5967893937958593 +35.0,3.607268551213876 +36.0,3.6540109592023384 +37.0,5.2961111429663585 +38.0,3.493293202176016 +39.0,3.6922594296472364 +40.0,3.4528456744282887 +41.0,3.5560920472568855 +42.0,6.267307719370516 +43.0,3.827434182715178 +44.0,3.7656654440620807 +45.0,4.515035672654461 +46.0,4.441213804023902 +47.0,4.348681184464452 +48.0,3.638395933353526 +49.0,5.609219291391892 +50.0,3.9061570332114544 +51.0,3.7095112462727866 +52.0,4.14636695167496 +53.0,3.792323594077531 +54.0,4.069504833176671 +55.0,3.4783668476453404 +56.0,3.4242126884674087 +57.0,4.928406819861021 +58.0,4.49587668532895 +59.0,3.413062156032838 +60.0,3.430583423674483 +61.0,4.641789748981231 +62.0,3.766005191380591 +63.0,4.015293592243392 +64.0,4.2097188044349245 +65.0,3.605699581406374 +66.0,3.6055625120457555 +67.0,4.056139110686703 +68.0,4.385372160576564 +69.0,4.0576333261272675 +70.0,4.103181190230958 +71.0,3.8477564001846525 +72.0,3.6191640230195765 +73.0,4.078325642126355 +74.0,4.1791721430101845 +75.0,3.500674507662318 +76.0,3.6414938234545025 +77.0,3.430282099121752 +78.0,3.998226399202124 +79.0,3.518186837669395 +80.0,5.337995151717859 +81.0,3.7499147133455812 +82.0,4.094733167072307 +83.0,3.759945818688119 +84.0,4.870414946705271 +85.0,3.4975161143215105 +86.0,3.455953961704539 +87.0,3.4304854466871237 +88.0,4.207277675016539 +89.0,3.4060160307273466 +90.0,5.015142389447047 +91.0,3.4082068174866076 +92.0,3.535302366144827 +93.0,3.568255763077229 +94.0,3.6252567155667945 +95.0,3.4707946196352193 +96.0,3.8870651264330744 +97.0,3.529979906160185 +98.0,3.7521145290323785 +99.0,4.389784699649766 +100.0,3.5367258775708845 +101.0,3.694189335557452 +102.0,3.514517328411071 +103.0,4.181494965297165 +104.0,3.5182692038279533 +105.0,3.4463282101235024 +106.0,3.46352343554513 +107.0,3.5189210613943436 +108.0,3.5978969923872297 +109.0,3.9938797832532256 +110.0,3.9745350501415295 +111.0,3.556177285015608 +112.0,3.4256290835197483 +113.0,3.453404135255811 +114.0,3.661368493745749 +115.0,4.222314753529737 +116.0,3.517162764138028 +117.0,3.6065902700895767 +118.0,4.5038411943960615 +119.0,3.5577339702358635 +120.0,4.727175276787854 +121.0,3.9356318115034052 +122.0,3.833666841163437 +123.0,4.125541668406424 +124.0,3.6100859319534635 +125.0,4.457237153930057 +126.0,4.16622693367486 +127.0,3.993810165894729 +128.0,3.4567046375729475 +129.0,3.444401680138522 +130.0,3.702982677841931 +131.0,4.348903502486512 +132.0,4.104561679720801 +133.0,3.4703829616620725 +134.0,5.587002123943544 +135.0,3.495441133303531 +136.0,3.506434123369328 +137.0,4.5513855928190186 +138.0,3.6912200006606652 +139.0,3.697600119681228 +140.0,3.745957695249226 +141.0,3.9952112016132513 +142.0,3.682610744420666 +143.0,3.410820653552141 +144.0,3.4406002980083685 +145.0,3.7386907367859856 +146.0,3.488252292855591 +147.0,3.505311179548044 +148.0,3.720028862081898 +149.0,3.939196412539302 +150.0,4.08331875111496 +151.0,3.6270409806942236 +152.0,3.471907611090245 +153.0,3.876734281572883 +154.0,3.556967156188971 +155.0,3.480195933314018 +156.0,4.663282405827595 +157.0,3.4645778859591494 +158.0,3.535637866246522 +159.0,3.5896197370069998 +160.0,5.621747629948408 +161.0,3.674443747892267 +162.0,3.6025689144663597 +163.0,3.460362124874361 +164.0,4.048759380564869 +165.0,3.643953897061791 +166.0,3.549155344497852 +167.0,4.305927883463001 +168.0,3.837458612045683 +169.0,3.771612257881128 +170.0,3.9568223038133246 +171.0,4.404582295511305 +172.0,3.740651992587527 +173.0,3.5116554191003773 +174.0,4.01011387188669 +175.0,3.6568548329153194 +176.0,4.438613495085822 +177.0,3.7162613812902285 +178.0,3.5750804148918403 +179.0,3.6549081058103177 +180.0,3.44629772784053 +181.0,3.759445393788285 +182.0,3.9976155149924706 +183.0,3.449295446031984 +184.0,3.6355457134961537 +185.0,4.186670797586606 +186.0,3.4700008088969003 +187.0,3.6236591097753124 +188.0,3.844516385246756 +189.0,3.615404797714925 +190.0,3.5359009794790763 +191.0,3.594838081855769 +192.0,3.6039974599655418 +193.0,3.7394791613942657 +194.0,4.516198838063685 +195.0,4.185759169535456 +196.0,3.621679029836412 +197.0,3.413808237350956 +198.0,4.067597634317712 +199.0,3.8587623754019904 +200.0,3.5549346602425107 +201.0,3.4491641566496716 +202.0,3.874225174953495 +203.0,4.01015033382141 +204.0,4.631763102860663 +205.0,4.016408302112047 +206.0,3.7145918134449025 +207.0,3.9471636585363594 +208.0,3.6059938379938474 +209.0,3.560381639832972 +210.0,3.442219236678341 +211.0,3.66330921949439 +212.0,4.009967957626874 +213.0,4.300880983849086 +214.0,3.5001350969443084 +215.0,3.741965769159206 +216.0,3.4593588513541627 +217.0,3.8903475655652695 +218.0,3.5731261998662935 +219.0,3.4897630198634673 +220.0,3.518051054935656 +221.0,3.43521561292095 +222.0,3.430271360135188 +223.0,4.091333995935432 +224.0,3.477728384903351 +225.0,3.543433376863235 +226.0,5.039271049538508 +227.0,4.484721255305717 +228.0,3.9785818381418374 +229.0,3.7568870898410833 +230.0,3.885297490033336 +231.0,3.4982583858913694 +232.0,4.092380959899827 +233.0,4.694949029785376 +234.0,3.644054377040474 +235.0,3.4919206380243453 +236.0,3.4521897113384092 +237.0,3.534562777827609 +238.0,4.3980581943787485 +239.0,3.4294068919698915 +240.0,3.502527011220373 +241.0,3.9620244410637513 +242.0,3.801677610667729 +243.0,3.8939111825935653 +244.0,3.5536804170079415 +245.0,3.496532212608209 +246.0,3.435789819041319 +247.0,3.47962209017916 +248.0,3.59907501314618 +249.0,3.5660400036138453 +250.0,3.8541103841133926 +251.0,3.4475881073919132 +252.0,3.4098568881295144 +253.0,3.5020319527650017 +254.0,3.5152795498903355 +255.0,3.407474309701973 +256.0,4.263047624677987 +257.0,3.7052784388344886 +258.0,4.3002101516624816 +259.0,3.864128030612987 +260.0,3.4179859135417034 +261.0,3.8112438614077107 +262.0,3.560291429596335 +263.0,3.460628992047859 +264.0,3.825351194365384 +265.0,3.6507855811675496 +266.0,3.442045295326591 +267.0,3.5387750373969755 +268.0,3.4631080817643234 +269.0,4.27226598322835 +270.0,3.450289725026453 +271.0,3.715612845892366 +272.0,3.8022280901608463 +273.0,3.586320554953463 +274.0,3.6727459557898254 +275.0,3.5660280317922326 +276.0,3.7787746355287326 +277.0,3.708754720299055 +278.0,4.112476576454031 +279.0,3.500643439537399 +280.0,4.546541134995669 +281.0,3.617536509745019 +282.0,3.5336062539141837 +283.0,4.615102538207882 +284.0,4.162372699503811 +285.0,3.9267656794164254 +286.0,3.8576239742581286 +287.0,3.6646845764121445 +288.0,3.8512150370840286 +289.0,3.983274270908854 +290.0,3.957186685327959 +291.0,4.148603409296616 +292.0,3.6253842127649287 +293.0,3.697656023495779 +294.0,3.4667235639538228 +295.0,3.929008743541143 +296.0,3.6934668769992607 +297.0,3.9539519576442324 +298.0,3.5606455669450465 +299.0,4.070719871290201 +300.0,3.7796163618503944 +301.0,3.5771017397812743 +302.0,4.197623334393765 +303.0,3.4168344874553656 +304.0,3.896099752875309 +305.0,3.593450366273612 +306.0,3.405756098074946 +307.0,3.512128144665361 +308.0,3.54943035068706 +309.0,3.8219250112644882 +310.0,4.567052062199178 +311.0,4.005042093042052 +312.0,3.995391833233374 +313.0,3.7825254714316716 +314.0,3.5425742882021467 +315.0,4.116853459107098 +316.0,3.410642031913715 +317.0,3.4744745160209294 +318.0,3.418354836705556 +319.0,3.6105392573693265 +320.0,3.950744710869445 +321.0,3.4124054755785687 +322.0,3.615868269783128 +323.0,3.475776219231349 +324.0,4.049696204693261 +325.0,3.978153003018197 +326.0,3.6144677686454165 +327.0,3.5663184615154653 +328.0,3.750728930800637 +329.0,4.23323056643842 +330.0,4.328828117688012 +331.0,3.9314842650366133 +332.0,4.00199012719972 +333.0,3.7774580866124774 +334.0,3.835620337783943 +335.0,3.699442974157596 +336.0,3.8730127698796073 +337.0,4.1059857917581075 +338.0,3.788334126425058 +339.0,3.598248009472446 +340.0,3.618542395519765 +341.0,3.4641159252692626 +342.0,3.9043021179595856 +343.0,3.490261778163121 +344.0,3.4737419017686975 +345.0,4.2787383339536325 +346.0,3.8303672832606823 +347.0,3.7264153039104158 +348.0,3.9139147409354393 +349.0,3.926365010877013 +350.0,3.688336118087241 +351.0,4.226571725186863 +352.0,3.5985937061703557 +353.0,3.8882999991719784 +354.0,3.700073892334675 +355.0,3.6532868090729145 +356.0,3.7843821897118355 +357.0,3.529346712161249 +358.0,3.6649006962830346 +359.0,3.4389305851314593 +360.0,3.497336032602612 +361.0,4.456980957555246 +362.0,3.4337894264929942 +363.0,3.430987018874394 +364.0,3.439000314500409 +365.0,3.696447756979962 +366.0,3.666295514459035 +367.0,3.5008728745294952 +368.0,4.02448915663211 +369.0,4.055325094636766 +370.0,3.6289667379008033 +371.0,4.061479778229177 +372.0,4.191645094269969 +373.0,3.6342051360083802 +374.0,3.4920574386964334 +375.0,3.903568797365848 +376.0,3.57704773390934 +377.0,4.581975388809862 +378.0,3.723963213085936 +379.0,3.665118636651764 +380.0,3.4097753833729207 +381.0,3.87416293587551 +382.0,3.649967460526044 +383.0,3.401954748853711 +384.0,3.4544482884128094 +385.0,3.7378179008060726 +386.0,3.413896272756742 +387.0,4.602121904786008 +388.0,3.605194609260898 +389.0,3.998101029059588 +390.0,3.7200046129669655 +391.0,3.496290221715405 +392.0,3.4310240371203617 +393.0,3.7547345829651295 +394.0,4.133096871663178 +395.0,3.4334007734472514 +396.0,3.422020399331891 +397.0,3.455398097552367 +398.0,3.567075461020206 +399.0,3.9444591745847317 +400.0,3.4164910670656026 +401.0,4.515383159882999 +402.0,3.896202846853386 +403.0,4.633950962658182 +404.0,3.863580009923566 +405.0,4.501214967348288 +406.0,3.9321314425741014 +407.0,3.5467567754015246 +408.0,4.657462847108552 +409.0,4.054899368580225 +410.0,3.977194585361372 +411.0,4.113309441063907 +412.0,4.236070185333124 +413.0,3.708594739003432 +414.0,3.923971390965913 +415.0,3.4259546672110557 +416.0,3.5838017315604627 +417.0,3.9188822251656243 +418.0,3.7175588099015626 +419.0,3.424312865431473 +420.0,3.5471735993142515 +421.0,3.81048845611421 +422.0,3.7431399204768834 +423.0,3.504540483968663 +424.0,3.4270298500513015 +425.0,3.783641235744736 +426.0,3.4667498043166103 +427.0,3.4742647709895267 +428.0,3.451760219504699 +429.0,3.636410944446112 +430.0,4.297952090898947 +431.0,4.289555160786412 +432.0,3.5500028211243113 +433.0,3.4826294560770545 +434.0,3.4216046366994934 +435.0,4.296599890233266 +436.0,3.8644709515019637 +437.0,4.035647377263617 +438.0,3.5847574426330246 +439.0,3.706010226617379 +440.0,3.8294835360719675 +441.0,4.540539098096647 +442.0,3.5512176117068357 +443.0,3.9884724320938103 +444.0,3.503389050623337 +445.0,3.4925046210939534 +446.0,4.155722819568789 +447.0,3.6402450133700173 +448.0,3.949045993317549 +449.0,3.8230194612129758 +450.0,3.4638320452920484 +451.0,4.1920403447125665 +452.0,3.634172043503407 +453.0,4.240827380565669 +454.0,3.4080018725074566 +455.0,5.4820455899718095 +456.0,3.4461877968297197 +457.0,4.86444347980912 +458.0,3.717412190116538 +459.0,3.8055276856709144 +460.0,3.5924855537038316 +461.0,3.6701718608284004 +462.0,4.374124012127614 +463.0,3.9627273015665394 +464.0,4.057092052795527 +465.0,3.7847083369472942 +466.0,3.9630991163262816 +467.0,4.094863328226138 +468.0,3.8814800332528145 +469.0,3.889866973229872 +470.0,3.7208886282465037 +471.0,3.6861513443187164 +472.0,3.588476929186117 +473.0,4.090940697804545 +474.0,3.40108318345815 +475.0,3.514243182085638 +476.0,3.900319119738452 +477.0,3.6253885745722703 +478.0,4.292406313666771 +479.0,3.4916007237150515 +480.0,4.311644114848578 +481.0,3.7541176896912205 +482.0,3.935898064509062 +483.0,5.111625810338948 +484.0,3.9042525562200194 +485.0,3.7602380081787032 +486.0,3.5026937191304204 +487.0,3.40812367819291 +488.0,4.256643790642773 +489.0,3.8795001464997307 +490.0,3.6155425666587213 +491.0,3.876535369287152 +492.0,4.47597041751317 +493.0,4.040593423248075 +494.0,3.6795827134830366 +495.0,3.8233743235988635 +496.0,3.495470401071445 +497.0,3.6406768532572915 +498.0,3.771744800501369 +499.0,3.909311537881413 +500.0,3.8581259289930228 +501.0,3.960125333477857 +502.0,3.4778018242738695 +503.0,3.5668346825117876 +504.0,3.7212122941059125 +505.0,3.406533321188225 +506.0,3.460464937097453 +507.0,3.7340536407541034 +508.0,3.555040822976245 +509.0,3.680411915234461 +510.0,3.617234608234949 +511.0,3.6889788889452326 +512.0,4.805890856408199 +513.0,4.925160865221064 +514.0,3.4227978497303826 +515.0,3.82900240662754 +516.0,3.734721112000541 +517.0,3.8699201959327416 +518.0,3.8565450410203033 +519.0,3.9776633418588023 +520.0,3.6657394919930173 +521.0,3.5776201025900307 +522.0,5.127239058957496 +523.0,3.933649600861833 +524.0,4.2752594666741475 +525.0,3.4938505100129174 +526.0,3.415633978377039 +527.0,3.621495966960414 +528.0,3.811598244170412 +529.0,3.63768055111282 +530.0,3.5836707339596447 +531.0,3.4330903935697803 +532.0,3.663973524183069 +533.0,3.520663198253737 +534.0,4.545664560575287 +535.0,4.402386609278491 +536.0,3.5715984147528093 +537.0,3.573666632469113 +538.0,3.4343276266267155 +539.0,3.809068220175104 +540.0,3.6024131446261585 +541.0,3.718580507954341 +542.0,3.506736224293728 +543.0,3.934933368265636 +544.0,4.241443290254637 +545.0,3.470005830490486 +546.0,3.483922635160462 +547.0,4.077693350530256 +548.0,3.537153171199223 +549.0,3.492887300845311 +550.0,3.50738257900738 +551.0,3.538522018711694 +552.0,3.887978231718978 +553.0,3.891099559049993 +554.0,3.628921387237422 +555.0,4.044902413602195 +556.0,5.802207226507518 +557.0,3.66864748965824 +558.0,3.6493329735115867 +559.0,3.923588082449559 +560.0,3.9893736733019467 +561.0,3.486067416360835 +562.0,3.4512395452611417 +563.0,4.055964171062683 +564.0,3.68937517610453 +565.0,3.644857844131401 +566.0,4.358400469071696 +567.0,3.4465436559605283 +568.0,3.781188582803461 +569.0,4.397595238692311 +570.0,3.77254676649712 +571.0,3.578521929876597 +572.0,3.5781704799747494 +573.0,3.5601202155927347 +574.0,3.7547294531009583 +575.0,3.5362969065212853 +576.0,3.455979421266462 +577.0,3.4514454341605894 +578.0,3.6047741874853134 +579.0,4.668371352913069 +580.0,4.224922266035338 +581.0,3.7854810236784058 +582.0,3.438562970133635 +583.0,3.461080202107677 +584.0,3.9144025955498254 +585.0,3.8386733401534388 +586.0,3.5507586337666353 +587.0,3.8043317974908835 +588.0,4.195067841623402 +589.0,4.2372761103998995 +590.0,3.416469025735944 +591.0,4.996133268476953 +592.0,3.709682413060155 +593.0,4.397926850097853 +594.0,4.098989440063626 +595.0,4.117364787832716 +596.0,4.026149801055069 +597.0,3.664608176479772 +598.0,3.64217278702674 +599.0,3.779804220290444 +600.0,3.458268990351762 +601.0,3.540194461545511 +602.0,3.86889392262909 +603.0,3.470331099827872 +604.0,3.47989630648698 +605.0,4.46679700797415 +606.0,3.844942170994267 +607.0,3.9413593950827543 +608.0,3.5408408041376407 +609.0,4.361811588113112 +610.0,3.746940048943607 +611.0,3.4819638293465056 +612.0,4.123172523662079 +613.0,3.5011144446117752 +614.0,3.7913585600562594 +615.0,4.155001268962598 +616.0,3.7605102207898042 +617.0,3.4601744593658714 +618.0,3.6962598141686684 +619.0,3.8443496019978176 +620.0,3.443423683425334 +621.0,3.6045143093303658 +622.0,3.4770794003838255 +623.0,3.678057353231345 +624.0,3.5430905314980268 +625.0,3.781759855639229 +626.0,3.4557634626159808 +627.0,3.8139804550624077 +628.0,3.703084609330876 +629.0,3.69885676411655 +630.0,4.140095869875233 +631.0,3.5444192687126126 +632.0,4.155877785468458 +633.0,3.921490211563532 +634.0,3.519804783120511 +635.0,4.904968967778682 +636.0,3.7356667902174254 +637.0,3.536495819464219 +638.0,5.135103549627694 +639.0,3.7972326125637728 +640.0,3.5676918844667838 +641.0,3.4467284629536596 +642.0,4.016779919558287 +643.0,3.529734965924148 +644.0,4.10570886823599 +645.0,3.4754247239384264 +646.0,3.9522584329369113 +647.0,4.211958251151675 +648.0,4.468341760982087 +649.0,3.402946762566285 +650.0,3.6725882523617397 +651.0,4.7565313095399295 +652.0,3.4996421022871975 +653.0,4.486257834097685 +654.0,3.7522536249112863 +655.0,3.429951400238618 +656.0,3.553828185477921 +657.0,3.7178023690026287 +658.0,3.776205272063218 +659.0,3.4275599903379383 +660.0,3.4954367600161667 +661.0,3.4817371260728898 +662.0,3.4673490190624596 +663.0,3.43206843726067 +664.0,3.853123707948322 +665.0,4.159222259734964 +666.0,3.4729362443083884 +667.0,3.7045917353445 +668.0,3.707228799214519 +669.0,4.141170161203713 +670.0,3.479219367128894 +671.0,3.808350387453024 +672.0,3.7363738645720876 +673.0,3.4123433577142643 +674.0,4.300473748291925 +675.0,4.30179756011378 +676.0,3.856884571625135 +677.0,3.5687114109394984 +678.0,3.9856936736654935 +679.0,4.060491368028438 +680.0,3.5330266908063632 +681.0,4.778580419833426 +682.0,4.002973071784723 +683.0,3.505962241993717 +684.0,3.4774601179745996 +685.0,3.5767244038039108 +686.0,4.2358950348002775 +687.0,3.6007619807629996 +688.0,3.59117138318674 +689.0,5.409283848317568 +690.0,3.4574910669015915 +691.0,5.066114807609264 +692.0,5.552668876668844 +693.0,3.423979365784436 +694.0,3.4894880549233624 +695.0,5.200801959692858 +696.0,4.323933959623726 +697.0,4.252366379752126 +698.0,3.75085674471039 +699.0,3.6585869914297455 +700.0,3.7108719507818457 +701.0,3.5167849783304326 +702.0,3.6629637045523333 +703.0,3.515907687728854 +704.0,3.940139743417663 +705.0,4.10035976216917 +706.0,3.4302850680855665 +707.0,4.203949732965186 +708.0,3.4002801440466026 +709.0,4.611473401785174 +710.0,3.5088058032119784 +711.0,3.526015700046158 +712.0,3.6276221828245285 +713.0,3.59869072933274 +714.0,3.4250803559405534 +715.0,4.074875555271193 +716.0,3.9254796316051133 +717.0,4.095542125666723 +718.0,3.9477400630509196 +719.0,3.4292853937874765 +720.0,4.02222680358823 +721.0,3.53244211978252 +722.0,3.499987564619359 +723.0,3.524335764806063 +724.0,3.7317317633336216 +725.0,3.9552278651175596 +726.0,3.5230582987738264 +727.0,3.664533092993241 +728.0,3.6468075147026093 +729.0,3.7094783867151566 +730.0,4.099585774827469 +731.0,4.667227456615425 +732.0,3.5165945198931126 +733.0,4.265392727357517 +734.0,3.4620364411964757 +735.0,3.4028360668097744 +736.0,3.8096895484997515 +737.0,3.4761221133598887 +738.0,3.872576508644893 +739.0,3.8662995384678727 +740.0,3.446014610330785 +741.0,3.6811681308774222 +742.0,3.6649527223642635 +743.0,3.8736945841432857 +744.0,4.1589508198870435 +745.0,5.852040445948447 +746.0,3.4997144240511733 +747.0,3.8861349701734205 +748.0,4.214504832607379 +749.0,3.9539063989768812 +750.0,3.6568811430134955 +751.0,3.6194712484423985 +752.0,4.823658869825226 +753.0,3.583862472227515 +754.0,3.648046210910387 +755.0,3.4620351143544332 +756.0,3.625389170548196 +757.0,3.888190783112161 +758.0,3.72628464642128 +759.0,3.778121427507497 +760.0,3.588297529856817 +761.0,3.8909156780893484 +762.0,3.7950100426210103 +763.0,3.7051080122392235 +764.0,3.688713319011528 +765.0,4.081297491645664 +766.0,3.487214912323859 +767.0,4.602308223658387 +768.0,3.4441635280539074 +769.0,3.6032736922970656 +770.0,4.266392984111526 +771.0,5.023518754039155 +772.0,3.464436940897091 +773.0,3.5385574507888213 +774.0,3.7239077823012816 +775.0,3.844785412472559 +776.0,4.3310028778702385 +777.0,4.070972936445407 +778.0,3.4002573627114985 +779.0,3.947401026590972 +780.0,3.4143999411168826 +781.0,4.01773583654243 +782.0,3.519779200152878 +783.0,3.4204516985959357 +784.0,3.487215847658696 +785.0,4.137123254381564 +786.0,3.474605675599928 +787.0,3.837252770434157 +788.0,4.8041505601256285 +789.0,3.542635419962683 +790.0,3.786572302072995 +791.0,3.760175489794866 +792.0,3.461362016906906 +793.0,3.524642305557073 +794.0,4.739018318773427 +795.0,3.5041242047214816 +796.0,4.136720079170577 +797.0,5.5672546817177295 +798.0,3.7348861406771015 +799.0,6.094354975772427 diff --git a/tests/fixtures/catalogs/case_010_low_count_800d.csv b/tests/fixtures/catalogs/case_010_low_count_800d.csv new file mode 100644 index 0000000..c329bba --- /dev/null +++ b/tests/fixtures/catalogs/case_010_low_count_800d.csv @@ -0,0 +1,78 @@ +time_days,magnitude +17.0,3.7017857892436083 +35.0,3.7458153368742186 +41.0,2.9901821176755305 +59.0,2.5413434424193784 +74.0,4.433640826274839 +76.0,3.29758663674058 +90.0,2.5973157407419754 +95.0,2.8189708108622806 +102.0,2.6639866782067845 +110.0,2.744912070470557 +122.0,2.880225118071709 +129.0,2.5068676626107678 +133.0,3.4106213014611955 +146.0,4.164422397335958 +173.0,3.856957569293418 +174.0,2.8322451637420865 +196.0,2.604104228295749 +197.0,3.030599252616563 +198.0,2.8997906273367384 +206.0,4.043807342933451 +221.0,2.6758925900673405 +245.0,2.5294965475041375 +249.0,2.549253034362354 +270.0,3.35720082301824 +275.0,2.6622259789262874 +293.0,2.661971057445145 +297.0,2.676926402988235 +310.0,2.748295103248054 +321.0,2.645193076870439 +332.0,3.33205419171587 +333.0,2.9234323487106533 +342.0,2.8610867058090084 +343.0,2.694068461892843 +368.0,2.506476497916643 +420.0,3.7296547124728994 +422.0,3.285085896632045 +432.0,2.996976597852284 +436.0,2.775133268424436 +449.0,2.833410894500827 +491.0,2.835499344242404 +512.0,2.8707804532192136 +518.0,2.8814648260210958 +520.0,2.7248041024455 +522.0,2.5996656087813634 +529.0,2.6466936837885466 +530.0,3.01389056129287 +547.0,3.440131754687969 +564.0,2.579729313101626 +566.0,2.6195635535685877 +567.0,2.74204500109492 +591.0,2.750753377612012 +592.0,2.540687051277475 +595.0,2.703825718246762 +605.0,2.9137913785558687 +628.0,2.839622233484563 +649.0,2.831563159103297 +670.0,3.546441905811388 +674.0,2.512893769806115 +678.0,2.548037739832226 +685.0,2.7166322839575505 +687.0,3.1303352104752 +700.0,3.5872825779645536 +710.0,2.6173994999538195 +712.0,3.4126688980725928 +713.0,3.2715554507310443 +720.0,2.8186550433426794 +728.0,2.763553549029856 +733.0,3.49901670191115 +750.0,2.591442717786795 +755.0,2.813269226381256 +762.0,2.617083957551523 +775.0,2.5597278908220273 +781.0,2.8611300476945267 +783.0,2.6687455736155004 +786.0,2.51169325734742 +788.0,2.547703495315352 +791.0,2.533170706932314 diff --git a/tests/fixtures/catalogs/case_011_burst_end_800d.csv b/tests/fixtures/catalogs/case_011_burst_end_800d.csv new file mode 100644 index 0000000..681cd60 --- /dev/null +++ b/tests/fixtures/catalogs/case_011_burst_end_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.5025881623648987 +1.0,2.6236023564394415 +2.0,2.4825398820096782 +3.0,2.4030605006258967 +4.0,3.0418845829526022 +5.0,3.2948054039299057 +6.0,2.7321511391667737 +7.0,2.508206296274492 +8.0,2.9981922778286743 +9.0,2.783232888140544 +10.0,2.4087430739923383 +11.0,2.4685248104674127 +12.0,3.122072164219822 +13.0,2.5013735698962702 +14.0,2.65517679221407 +15.0,2.4996990150552065 +16.0,2.6623287768770902 +17.0,2.445629980693586 +18.0,3.367313781207635 +19.0,2.928159075188368 +20.0,2.699157838276157 +21.0,3.818379100156573 +22.0,3.0000623525602568 +23.0,2.4984077447477206 +24.0,2.5290995523197584 +25.0,2.824651252815743 +26.0,2.6147186696444913 +27.0,3.106369499983529 +28.0,2.8174902299178033 +29.0,2.455568947939763 +30.0,2.5073795657261053 +31.0,2.4894531962377315 +32.0,2.4664695562639602 +33.0,2.5076642451763282 +34.0,2.7653671954322316 +35.0,2.4271334240078106 +36.0,2.524610922993844 +37.0,2.6406279699732753 +38.0,2.635797531727202 +39.0,2.461168525653945 +40.0,2.9504669651159348 +41.0,2.5734634572302992 +42.0,2.613567432504454 +43.0,2.7394940496838154 +44.0,2.4069519454909694 +45.0,2.6102114161167256 +46.0,2.416663470805478 +47.0,3.170753550254343 +48.0,2.8585985164903227 +49.0,2.827931238658092 +50.0,2.9025154141833998 +51.0,2.8269036646273507 +52.0,2.657433660597407 +53.0,2.5304760298539435 +54.0,2.974416549275676 +55.0,3.2658755435317266 +56.0,2.478085990203388 +57.0,3.2128892037835364 +58.0,2.478660910175291 +59.0,2.696054534928866 +60.0,2.428690749574427 +61.0,2.483234626664682 +62.0,3.0443493764215517 +63.0,2.780159939245934 +64.0,2.505516378765382 +65.0,2.434650624601109 +66.0,2.741038251963772 +67.0,2.8346443868524105 +68.0,2.924074442689788 +69.0,2.4607164105418775 +70.0,2.6506631894995074 +71.0,2.6331292350915785 +72.0,2.702570467388465 +73.0,3.9160480783072478 +74.0,2.806979195787662 +75.0,2.7817423075581056 +76.0,2.5438566991511706 +77.0,2.463217854860465 +78.0,2.4770134050143238 +79.0,2.431633102733219 +80.0,2.6880783076274652 +81.0,2.8542528768057895 +82.0,2.642039259679549 +83.0,3.075518436265522 +84.0,2.651313437340801 +85.0,2.6357437034304976 +86.0,2.7523642774505483 +87.0,2.6259472929206478 +88.0,2.585784565715892 +89.0,2.8609874866976526 +90.0,2.768633389250798 +91.0,2.5886555859290206 +92.0,3.036668148989844 +93.0,2.5427469164510734 +94.0,2.573708914083922 +95.0,2.5508652681935633 +96.0,2.4489138846709357 +97.0,3.00087492713082 +98.0,2.441118706000284 +99.0,2.490139796246377 +100.0,2.9226366856363732 +101.0,2.5781590216971604 +102.0,2.571217068924607 +103.0,2.420120379379533 +104.0,2.714444301752254 +105.0,2.6902959071592973 +106.0,3.306010908969519 +107.0,2.8780542438886707 +108.0,2.7911774809106285 +109.0,3.086674610682045 +110.0,2.4803957129675562 +111.0,2.408584574612113 +112.0,2.451126069894519 +113.0,2.5901669618889382 +114.0,3.0392248866236335 +115.0,3.6368656327116407 +116.0,2.4661197641273267 +117.0,2.6198229744806003 +118.0,2.4077457549472525 +119.0,2.4179821602504123 +120.0,2.6261905699390526 +121.0,2.614495463828055 +122.0,2.780638686452017 +123.0,2.8516093395873425 +124.0,2.5253803847213048 +125.0,2.666458371900105 +126.0,3.226545447375312 +127.0,2.480835374153333 +128.0,2.470557047990026 +129.0,2.6428942576548087 +130.0,2.6806658680894935 +131.0,2.6707770990484327 +132.0,2.6233156938279407 +133.0,2.665976779363922 +134.0,3.0818214609756023 +135.0,2.671856609172533 +136.0,2.6549979672291837 +137.0,2.74247367770007 +138.0,3.004069043830293 +139.0,3.169815105158054 +140.0,2.591776833992843 +141.0,2.4156888192132886 +142.0,2.9748968430726563 +143.0,2.6057992955039686 +144.0,2.437681025706609 +145.0,2.5876837427551407 +146.0,2.9458487112901195 +147.0,4.070024219773333 +148.0,2.4772299660884984 +149.0,2.6629415203880864 +150.0,2.890516170189338 +151.0,2.673394740189281 +152.0,2.468904539344258 +153.0,2.9230886353776713 +154.0,2.5871183123787214 +155.0,2.7832586943145667 +156.0,2.9940074477377268 +157.0,2.7970948186430022 +158.0,3.4179748311412066 +159.0,2.9280613845934838 +160.0,2.463768722417269 +161.0,2.693427530301612 +162.0,2.454940263774209 +163.0,2.9748658116406865 +164.0,2.437865731481718 +165.0,3.7967610831189886 +166.0,2.802913900903031 +167.0,2.5772137262349624 +168.0,2.8575661060848665 +169.0,2.5390629262637323 +170.0,2.5625832507305026 +171.0,2.509905323521825 +172.0,3.187694503921577 +173.0,2.5904904247408815 +174.0,2.632730874399976 +175.0,2.474702670105204 +176.0,2.5073838509765216 +177.0,3.402347250227778 +178.0,2.5061574204068764 +179.0,2.73195452147709 +180.0,2.7972524255039977 +181.0,2.5664660367401124 +182.0,2.470764957699759 +183.0,2.5088800757305494 +184.0,2.609635896662813 +185.0,2.5545967097652222 +186.0,2.716119222650142 +187.0,2.439382564805573 +188.0,2.476391663277179 +189.0,2.80785258715821 +190.0,2.858485753361841 +191.0,2.7567796092550396 +192.0,2.654414760467347 +193.0,2.7350888800676634 +194.0,2.6967436614696765 +195.0,2.4572776862262695 +196.0,2.453395144883601 +197.0,2.4674333704018436 +198.0,2.5196169481372466 +199.0,2.6569814612199703 +200.0,2.559538144165831 +201.0,2.808389787491115 +202.0,2.4652299059001646 +203.0,2.4930339881537593 +204.0,2.4633238633833257 +205.0,2.407194640845123 +206.0,3.187440504952986 +207.0,2.7505451120492532 +208.0,2.4551258792601423 +209.0,2.56438250894989 +210.0,2.905116786791845 +211.0,2.6075821837327813 +212.0,2.626459460957321 +213.0,3.918063881997718 +214.0,2.5424251539984337 +215.0,2.5661998092084928 +216.0,2.9124645603486625 +217.0,3.7185554055088126 +218.0,2.4073747044366276 +219.0,2.5917792437839493 +220.0,2.734370429223357 +221.0,2.5386456817611283 +222.0,2.76131367453103 +223.0,2.604395743535877 +224.0,2.7135185838824514 +225.0,2.677150046065491 +226.0,2.548979368634486 +227.0,2.7049832537897593 +228.0,2.5432781996108336 +229.0,3.7367884420097157 +230.0,2.486879118424712 +231.0,2.4596396823636786 +232.0,2.767129485635486 +233.0,2.6895208904075942 +234.0,2.41664190138737 +235.0,2.782668882776605 +236.0,3.2535518563779644 +237.0,3.304272776236074 +238.0,2.7646332833899403 +239.0,2.875964635199961 +240.0,2.6752971961640535 +241.0,2.516764306428249 +242.0,2.736349561811323 +243.0,2.4655063472112895 +244.0,2.418031326552954 +245.0,4.174085482041745 +246.0,2.5683786487653832 +247.0,2.7231394655492815 +248.0,3.1230337317678627 +249.0,2.870556675804869 +250.0,2.699036795906438 +251.0,2.5046802359432907 +252.0,2.4225539550465176 +253.0,2.54817962580512 +254.0,3.297499156848377 +255.0,3.4215977797446815 +256.0,2.4248683813715797 +257.0,3.1071139272371746 +258.0,2.6492214184089233 +259.0,2.533066801800868 +260.0,2.6031301402401446 +261.0,2.631132163547406 +262.0,2.459529859284609 +263.0,2.9904286545993433 +264.0,2.57344791257169 +265.0,2.957273603017809 +266.0,2.881800358004806 +267.0,2.753003655221642 +268.0,3.1406045733512338 +269.0,2.731860852690623 +270.0,2.7395821902347643 +271.0,2.528947202638883 +272.0,3.2734190442678353 +273.0,2.5045528392898215 +274.0,2.8348098697118966 +275.0,2.82845669437606 +276.0,3.1163822819702376 +277.0,3.560359501927919 +278.0,3.1952118373864487 +279.0,2.9862651734907746 +280.0,2.409318946657261 +281.0,2.9505448506438867 +282.0,2.4589330491881416 +283.0,3.04924636259849 +284.0,2.4706594227632657 +285.0,2.445765044753131 +286.0,3.125847826385442 +287.0,2.4577239813771836 +288.0,2.852387631643845 +289.0,2.5640544570613772 +290.0,2.4182068048630003 +291.0,2.519481567166845 +292.0,2.617374422923309 +293.0,3.4499702762786186 +294.0,2.77451179681832 +295.0,2.560116630203061 +296.0,2.957918112205211 +297.0,2.713910814440201 +298.0,2.422256331036846 +299.0,2.637267682987884 +300.0,2.4836462569962303 +301.0,2.448235225920435 +302.0,2.478791241669979 +303.0,2.726994087046176 +304.0,2.6914793480745174 +305.0,3.0821049627280357 +306.0,3.0618518717978818 +307.0,2.812517227716504 +308.0,2.4160433658275613 +309.0,2.8953199625580597 +310.0,2.770616055240642 +311.0,2.468768510544377 +312.0,2.409935310370916 +313.0,2.416592694220175 +314.0,2.471523979481752 +315.0,2.5775881366887097 +316.0,2.4169933908346755 +317.0,2.6833102668503095 +318.0,2.4271292960827004 +319.0,2.54565944921302 +320.0,2.737523983646555 +321.0,3.689772336214642 +322.0,2.4980026553365953 +323.0,2.7595267288708043 +324.0,2.8562743997933815 +325.0,2.448447139490502 +326.0,3.4384686482083424 +327.0,2.6854388751018607 +328.0,2.4421306840170875 +329.0,2.4740840152373793 +330.0,2.9510650669143357 +331.0,2.614923346522358 +332.0,2.641780504420091 +333.0,2.5112550873095913 +334.0,2.9706747605728676 +335.0,2.4443732744888695 +336.0,2.634034870081652 +337.0,2.5581936365185065 +338.0,2.7520633559815324 +339.0,2.4960868615805394 +340.0,3.614518477806161 +341.0,2.5687214758569303 +342.0,2.4207592393161836 +343.0,2.410392729489613 +344.0,2.502519690842809 +345.0,2.528833246048335 +346.0,2.6021605105746337 +347.0,2.5148735725940616 +348.0,2.508414665526427 +349.0,2.6802902093882905 +350.0,2.460856362004066 +351.0,2.9820273593822857 +352.0,2.67484547370944 +353.0,2.4165004955727682 +354.0,2.515877441691228 +355.0,2.5554423828807895 +356.0,3.3822849092505716 +357.0,2.6699403501893264 +358.0,2.6742733350253873 +359.0,2.6087895968167896 +360.0,3.0548409632938367 +361.0,2.47710279246283 +362.0,2.7752592168031245 +363.0,2.457621339686608 +364.0,2.5108328317498607 +365.0,2.679489737258169 +366.0,2.4542782644036376 +367.0,3.058571136659303 +368.0,2.6049926083773975 +369.0,4.5042869787077295 +370.0,3.231780595016813 +371.0,2.5838039133815327 +372.0,3.343298144853404 +373.0,2.570281784702296 +374.0,2.7406727411090728 +375.0,2.4038145235787356 +376.0,2.4790125394155393 +377.0,2.8276298852156745 +378.0,3.6706801078497637 +379.0,3.1705149811114035 +380.0,3.7031424039365426 +381.0,2.7349729266703524 +382.0,3.1289599111363917 +383.0,2.416993098547983 +384.0,2.806843658585735 +385.0,3.4516001683367983 +386.0,2.442948179937605 +387.0,3.4597006413711062 +388.0,2.6591238213132264 +389.0,2.743056420937052 +390.0,2.481103934999389 +391.0,2.608065430104425 +392.0,2.667521041393617 +393.0,2.645946018904375 +394.0,2.4066706797064192 +395.0,3.2274338971990586 +396.0,2.855550279289871 +397.0,2.9173845434324637 +398.0,2.8327937141063613 +399.0,3.1044248864096877 +400.0,2.4285519904800026 +401.0,2.6117565942518324 +402.0,2.7056696255397585 +403.0,2.654204226820639 +404.0,2.869053226484282 +405.0,2.435174830298451 +406.0,2.465311993693886 +407.0,2.493185617793616 +408.0,2.457074931204845 +409.0,2.4411103494012596 +410.0,3.1086023015648263 +411.0,2.6391718380132176 +412.0,2.4269926293599267 +413.0,2.676433695871494 +414.0,2.6462882994819785 +415.0,2.691738712310236 +416.0,2.5727839562721924 +417.0,2.418694371328207 +418.0,2.424050632230418 +419.0,2.753101091937179 +420.0,3.362040775823519 +421.0,2.6466528349089176 +422.0,2.515555871286008 +423.0,2.6214023559801807 +424.0,3.322938744853027 +425.0,2.4293720384461888 +426.0,3.1663509153617926 +427.0,2.7099131022296947 +428.0,2.89264798894763 +429.0,2.463374313128239 +430.0,2.4682505932182863 +431.0,2.5597036708472523 +432.0,2.505250924533911 +433.0,2.567338507905312 +434.0,2.423882217426073 +435.0,2.562859944897063 +436.0,2.701656466849826 +437.0,2.6449001353521857 +438.0,4.326302296975802 +439.0,2.521719651114033 +440.0,2.8284710630884238 +441.0,2.632966958943411 +442.0,2.5717962498996303 +443.0,2.9180167824715193 +444.0,2.4802239152979637 +445.0,2.9849160785957984 +446.0,2.907417068879874 +447.0,2.541971854389469 +448.0,2.5155852565020598 +449.0,2.9691683616156364 +450.0,2.5239965458171785 +451.0,2.568494605448835 +452.0,2.6422905582175296 +453.0,2.5837932024799612 +454.0,2.656303829718228 +455.0,2.6287874377058755 +456.0,2.7550283498772545 +457.0,2.7438213067402564 +458.0,2.426672196624556 +459.0,2.4109058245113615 +460.0,2.7307335657170637 +461.0,2.756108633714802 +462.0,2.5985409248788702 +463.0,3.12095174494367 +464.0,2.986936044853629 +465.0,2.4856851775035205 +466.0,2.6251208623328517 +467.0,2.662842564298053 +468.0,2.4964006173795945 +469.0,3.0866442113897183 +470.0,2.6063731692659475 +471.0,2.8955940572527075 +472.0,2.41565876349449 +473.0,2.9090584346592196 +474.0,2.7236239070793853 +475.0,2.7492573074420372 +476.0,2.6240119686890715 +477.0,2.685941433312606 +478.0,2.5386598472573927 +479.0,2.4226896536059765 +480.0,2.4689148725691443 +481.0,2.8331513608816086 +482.0,2.438023567851863 +483.0,2.664937892168198 +484.0,2.5203323246991522 +485.0,2.4214973867123413 +486.0,2.4745187182275257 +487.0,3.4449745506615326 +488.0,2.6560514871998593 +489.0,2.4292407236704476 +490.0,3.1725781382505103 +491.0,2.4655741209307114 +492.0,2.4596759431947204 +493.0,2.70263517945475 +494.0,2.7092600175033352 +495.0,2.490430039478199 +496.0,2.6482894168475934 +497.0,2.601771855525191 +498.0,2.870785091812162 +499.0,2.432529765603538 +500.0,2.623216957987372 +501.0,2.866919242866415 +502.0,3.2110399713865307 +503.0,2.581091606596607 +504.0,2.53498387525687 +505.0,3.722599368192389 +506.0,2.469072391122078 +507.0,2.8909770504252266 +508.0,2.6114083750503285 +509.0,2.883210040747153 +510.0,2.9066348426822124 +511.0,2.9218453472676593 +512.0,3.3961580356614203 +513.0,2.81990753723108 +514.0,2.768251618839884 +515.0,3.5917026695760477 +516.0,2.9916550325886284 +517.0,2.9296468642255515 +518.0,3.0737234980868284 +519.0,2.5989846391736258 +520.0,2.537503765460404 +521.0,2.598766203611058 +522.0,2.6202929246037128 +523.0,2.69352912726487 +524.0,2.47336761902742 +525.0,2.40301016719669 +526.0,2.419546387145956 +527.0,3.0894424491489945 +528.0,3.3875449443954966 +529.0,2.4002519700779037 +530.0,2.7685431939335965 +531.0,2.549084800494132 +532.0,2.553749680009511 +533.0,2.7192715508874516 +534.0,2.499595186672063 +535.0,2.728265360379497 +536.0,2.923875618514754 +537.0,2.6842760671249817 +538.0,2.4013264633640463 +539.0,2.6717157234511055 +540.0,2.5507644363070794 +541.0,4.1885623530356675 +542.0,2.612010229363378 +543.0,2.657333538135501 +544.0,2.4384193364049196 +545.0,2.4359966816827283 +546.0,2.637180499515022 +547.0,2.5667765981698327 +548.0,3.206320121412288 +549.0,2.667840294659313 +550.0,3.1235411930384496 +551.0,2.582881025533976 +552.0,2.806996110935244 +553.0,2.5079317162515613 +554.0,2.4162236621733686 +555.0,2.515533244086884 +556.0,2.5445949519456463 +557.0,2.7540834321718064 +558.0,3.0117913812068338 +559.0,2.4922525028268923 +560.0,2.751642896276267 +561.0,2.560510425689733 +562.0,2.814702067127307 +563.0,2.8495695205129383 +564.0,3.2339600262671335 +565.0,3.010643951234002 +566.0,2.8678633834424097 +567.0,2.4079334211951267 +568.0,2.9505830903743955 +569.0,2.6918507082108287 +570.0,2.5254831211307587 +571.0,2.469922894948326 +572.0,2.761840054457166 +573.0,2.666733220519532 +574.0,2.649022058515944 +575.0,2.7256775653493466 +576.0,2.5492986389808916 +577.0,2.6190169361696105 +578.0,2.8909903427460155 +579.0,2.661265023650712 +580.0,3.2047580336292834 +581.0,2.513323935256225 +582.0,2.441110997882913 +583.0,2.45143875514346 +584.0,3.2418683947106315 +585.0,2.876236568791283 +586.0,2.746513608698445 +587.0,2.9197852272991716 +588.0,2.6152510935519935 +589.0,2.9811270828309313 +590.0,2.491854331108387 +591.0,2.5376652374334068 +592.0,2.572524180488076 +593.0,2.4596413575494216 +594.0,3.1004568532362544 +595.0,2.5762205470873094 +596.0,2.588600874442698 +597.0,2.6888853025509234 +598.0,2.617052100888023 +599.0,2.6356970141950495 +600.0,2.462628329071025 +601.0,4.093293199779067 +602.0,2.6974467438597074 +603.0,2.552918798200597 +604.0,3.2273247064741932 +605.0,2.686682742698066 +606.0,2.7714200680471137 +607.0,2.68315884955416 +608.0,2.716536020564517 +609.0,2.627798648424756 +610.0,2.492151153343222 +611.0,3.393937688141544 +612.0,2.663802827780386 +613.0,2.6223333245952274 +614.0,2.710904807701974 +615.0,2.7154033596635254 +616.0,3.0212912600093436 +617.0,2.7840296376940175 +618.0,2.5371225986369677 +619.0,3.035931019603479 +620.0,2.7724761288688313 +621.0,2.8198938757092056 +622.0,2.432396683819536 +623.0,3.055066613636126 +624.0,2.8259478757511043 +625.0,2.508092668402776 +626.0,3.312157897841014 +627.0,2.5052400293020733 +628.0,2.6399191752184565 +629.0,2.460897081758098 +630.0,2.599205563093936 +631.0,2.6381809318796843 +632.0,2.456630625749533 +633.0,2.455867342466253 +634.0,3.275925769883833 +635.0,2.4601188583883644 +636.0,2.5227074504521716 +637.0,2.612142723230663 +638.0,2.6675379581470198 +639.0,2.4993919373659264 +640.0,2.8689941714891596 +641.0,2.7622919234130903 +642.0,2.883322525637943 +643.0,3.842452948483693 +644.0,2.722710605444628 +645.0,2.733409395400009 +646.0,2.6785254758513344 +647.0,2.794211524391193 +648.0,2.8059405994733204 +649.0,4.184696899229081 +650.0,2.4745311614994394 +651.0,2.7095432109210345 +652.0,2.6698649152200145 +653.0,2.466907822281838 +654.0,2.522159785208139 +655.0,2.5543011087668726 +656.0,2.7408044834478713 +657.0,2.5734362526648726 +658.0,3.349182005806559 +659.0,3.269697814991943 +660.0,2.5105683174333264 +661.0,2.486126751047625 +662.0,2.563430598127775 +663.0,2.740296587017871 +664.0,3.753029764433978 +665.0,2.7137629302863377 +666.0,2.8777484724583076 +667.0,2.669971280068284 +668.0,2.5235219285432193 +669.0,3.4137553641394134 +670.0,2.7369730770141336 +671.0,2.5640719874222024 +672.0,2.49304528406554 +673.0,2.5311249686446846 +674.0,2.595086965549764 +675.0,2.6097317233629904 +676.0,2.472819472645711 +677.0,2.4800750487649754 +678.0,2.899413538147266 +679.0,2.673571940775788 +680.0,2.406083028669688 +681.0,2.8773548820420705 +682.0,2.7858518574033395 +683.0,2.6981498906422208 +684.0,2.993504754847051 +685.0,2.6034953937842094 +686.0,2.725890980221467 +687.0,2.950481563175523 +688.0,3.0252350623592146 +689.0,2.558965962909694 +690.0,2.5569550523578224 +691.0,2.5088289552036 +692.0,2.4454311886742337 +693.0,3.591797217353985 +694.0,3.3581360157941083 +695.0,3.7115693682581026 +696.0,2.843795385569267 +697.0,2.5718812334996266 +698.0,2.5354333394750763 +699.0,2.7106902155634485 +700.0,2.7260781514141303 +701.0,2.8438416792659647 +702.0,2.439551560323678 +703.0,2.541201991253842 +704.0,2.417931198616251 +705.0,2.8431199240630964 +706.0,3.088605451166266 +707.0,2.5803642140259773 +708.0,2.736520774964887 +709.0,2.4597891825102707 +710.0,2.4693969576321693 +711.0,3.2074986417726263 +712.0,2.4201363366756734 +713.0,2.4499672450318073 +714.0,2.6998508208236567 +715.0,2.8114659160006163 +716.0,3.0605577739076115 +717.0,2.6672747271676167 +718.0,4.042067076720556 +719.0,2.6965257862775425 +720.0,2.565992991899573 +721.0,2.9592860840867448 +722.0,2.7011316675906585 +723.0,3.6282594642216965 +724.0,2.66686736904716 +725.0,3.000071077939756 +726.0,2.6097947546690587 +727.0,2.692218674985825 +728.0,2.419878552080705 +729.0,2.539602641210728 +730.0,3.298773166528287 +731.0,2.56939103212624 +732.0,2.744607938111642 +733.0,2.4017479323857307 +734.0,3.6069862296610475 +735.0,2.859905052892364 +736.0,2.6981526985178577 +737.0,2.8496372969306054 +738.0,3.05419535208846 +739.0,2.6420154271295075 +740.0,2.4662812158149814 +741.0,2.5773050928314056 +742.0,2.6976280820410516 +743.0,3.135354264475157 +744.0,2.554383924369616 +745.0,2.4488193916755896 +746.0,2.8714064768315004 +747.0,2.829965963577398 +748.0,3.219057785062881 +749.0,2.4766194742462693 +750.0,2.5179947513430405 +751.0,2.6759467511473476 +752.0,3.3209945202698776 +753.0,2.5559836615718345 +754.0,2.5010581368372446 +755.0,3.293986467273532 +756.0,6.754269203853452 +757.0,2.9113990224799493 +758.0,3.497261322308975 +759.0,3.51751509758106 +760.0,2.9054490374479434 +761.0,3.087189756663882 +762.0,4.61974950287151 +763.0,3.625187085656405 +764.0,6.704667204246324 +765.0,3.3197955609220227 +766.0,3.003804939016515 +767.0,5.069664241202897 +768.0,9.124385714130021 +769.0,4.007755923429436 +770.0,2.6785903649821994 +771.0,4.15309163448178 +772.0,3.8796251643627326 +773.0,3.144805162034865 +774.0,3.359846717659149 +775.0,4.839136192289076 +776.0,2.561809877485394 +777.0,6.875178202713234 +778.0,5.62774158840059 +779.0,4.943419567815573 +780.0,3.7229813452226876 +781.0,4.519331788577778 +782.0,4.241429770644639 +783.0,3.8686143394502466 +784.0,4.140795378886168 +785.0,3.508146982927286 +786.0,4.074671631222298 +787.0,2.7447301712925327 +788.0,3.691465285838534 +789.0,2.473884751173297 +790.0,4.5551497160118615 +791.0,3.6997774389887432 +792.0,2.8928685342447147 +793.0,2.8240669320554352 +794.0,3.0111053160376495 +795.0,3.2641926641264347 +796.0,5.073426189801383 +797.0,3.812927942597428 +798.0,2.577987338083599 +799.0,3.024750068914223 diff --git a/tests/fixtures/catalogs/case_012_burst_middle_800d.csv b/tests/fixtures/catalogs/case_012_burst_middle_800d.csv new file mode 100644 index 0000000..f8601d4 --- /dev/null +++ b/tests/fixtures/catalogs/case_012_burst_middle_800d.csv @@ -0,0 +1,801 @@ +time_days,magnitude +0.0,2.7893075797973514 +1.0,2.6320253463228482 +2.0,2.4242919948463526 +3.0,3.1716190799649686 +4.0,2.848017429304022 +5.0,2.4813166513761913 +6.0,3.051984714953907 +7.0,3.864103885654899 +8.0,3.2562723796350985 +9.0,2.4603292339914136 +10.0,2.8495800676234864 +11.0,2.801763702400171 +12.0,3.296499422054456 +13.0,2.4030393275696826 +14.0,2.6449360390114447 +15.0,2.4736410139134004 +16.0,3.191015945006054 +17.0,2.4856096976645032 +18.0,3.5915256552199457 +19.0,2.4145147598289842 +20.0,2.619444902810817 +21.0,2.668480510980746 +22.0,2.5391065803383595 +23.0,2.894235253797989 +24.0,2.4669277225997694 +25.0,2.6250073465632324 +26.0,2.4329858704937215 +27.0,2.8374385715694452 +28.0,2.495942358317724 +29.0,3.2191370924051923 +30.0,2.579907581309518 +31.0,3.3661339160675383 +32.0,3.1255873806202032 +33.0,2.564622511177326 +34.0,2.496175940915893 +35.0,2.759201949077281 +36.0,3.930153617541495 +37.0,2.5027808654559474 +38.0,3.752545489976492 +39.0,2.582350750467511 +40.0,2.9345213070879144 +41.0,2.7443495417661645 +42.0,2.53792194480738 +43.0,2.971421545700036 +44.0,2.4702369451938093 +45.0,2.4201887760123295 +46.0,2.9525063281481705 +47.0,2.4226740896220726 +48.0,2.587644701059025 +49.0,2.41671167550216 +50.0,2.495979124313647 +51.0,3.2056653544523637 +52.0,2.434002514515574 +53.0,3.5268218374789884 +54.0,2.7433288551298305 +55.0,2.75205783491695 +56.0,2.5939780769085017 +57.0,2.6930505496590316 +58.0,2.5853491770873074 +59.0,2.6050924780430877 +60.0,2.437733110644993 +61.0,2.7459914673833037 +62.0,2.5162660025331203 +63.0,3.007905318198897 +64.0,2.4387972595249514 +65.0,2.4365760356103374 +66.0,2.601219311988064 +67.0,2.5744860631081132 +68.0,3.0930488635508477 +69.0,2.4052750349419845 +70.0,2.4556705177039464 +71.0,2.4831188078094097 +72.0,2.919292548561274 +73.0,2.5072432984027175 +74.0,2.443018858559393 +75.0,3.7463115749007896 +76.0,2.457087253573704 +77.0,2.520537490959625 +78.0,2.7527426037930764 +79.0,2.4126348477249144 +80.0,2.5746429364403465 +81.0,2.769339840089589 +82.0,2.7770260618964078 +83.0,2.43683043958598 +84.0,3.9672438132927965 +85.0,2.9093452361450813 +86.0,2.913399777860759 +87.0,3.031162561400554 +88.0,3.433417976091026 +89.0,3.060851218157125 +90.0,2.615559797050747 +91.0,2.6929052033757306 +92.0,2.9465882100217864 +93.0,3.00273261238487 +94.0,2.617645406983302 +95.0,2.5465099207163164 +96.0,2.7089356895301457 +97.0,2.608012269163384 +98.0,2.5962862218970475 +99.0,2.8561429906411284 +100.0,2.48735373808557 +101.0,2.65439729910115 +102.0,2.7420043070138056 +103.0,2.5356792935146117 +104.0,2.777793092095989 +105.0,2.648155983380541 +106.0,2.657864012529849 +107.0,3.150376949303159 +108.0,2.7705438200411345 +109.0,2.982233271169956 +110.0,2.625700121662823 +111.0,2.545666940190286 +112.0,2.8768255615302105 +113.0,3.303223278893558 +114.0,3.4709532910171808 +115.0,2.418892086811206 +116.0,2.484884405502615 +117.0,2.4661427491541525 +118.0,2.902945119540801 +119.0,3.090259159460893 +120.0,2.438682674321754 +121.0,3.2535481552097254 +122.0,2.650280700009844 +123.0,2.5873456140754127 +124.0,3.198920038567824 +125.0,2.635027882066148 +126.0,2.5571412616190505 +127.0,2.6774495696820715 +128.0,2.4619093886533423 +129.0,2.530974195794279 +130.0,3.033722178056638 +131.0,2.7220488853555707 +132.0,2.647891943631121 +133.0,2.7606229353415186 +134.0,2.6225371942003806 +135.0,2.6293581098664993 +136.0,3.017092962284323 +137.0,2.4779279992887187 +138.0,2.634363973278835 +139.0,2.401045013613589 +140.0,3.136823038380319 +141.0,2.4230778851775763 +142.0,2.5980775517007 +143.0,2.4406894466773625 +144.0,2.5691741843409566 +145.0,2.645252937993629 +146.0,2.53408031329899 +147.0,3.1837963296147986 +148.0,2.4778123978652027 +149.0,2.800399947584586 +150.0,2.444543950235102 +151.0,2.840983702036427 +152.0,2.87570590163665 +153.0,2.4286888357607084 +154.0,2.564872193549286 +155.0,3.0813779797757457 +156.0,2.8788334666709705 +157.0,2.6364145161249253 +158.0,3.6798529464395315 +159.0,3.056626446487358 +160.0,3.1165774672631787 +161.0,2.6504822380832644 +162.0,2.6113044960563094 +163.0,2.5738225021448518 +164.0,2.897303000820363 +165.0,2.592259302260605 +166.0,2.4347319403009022 +167.0,2.4799897701375717 +168.0,2.801782762295931 +169.0,2.6588700327108628 +170.0,2.5333639987100143 +171.0,2.5718084406865254 +172.0,2.829106003597132 +173.0,2.4846911392539424 +174.0,3.127590564236014 +175.0,2.749833663773747 +176.0,2.4213521543997683 +177.0,2.458859650557862 +178.0,2.560563710162621 +179.0,2.4122896159159732 +180.0,3.2403860565983904 +181.0,2.591926486894127 +182.0,2.4231179520215296 +183.0,4.881420788544387 +184.0,2.795953585591045 +185.0,2.6686092716777017 +186.0,2.4784364253076383 +187.0,2.8777737252505555 +188.0,2.9336374016665596 +189.0,2.8300880813271467 +190.0,3.0918664593974574 +191.0,2.57735431713578 +192.0,2.5573671653883645 +193.0,2.674944702588176 +194.0,2.8687191511895285 +195.0,2.4749936802851353 +196.0,2.4259419897260366 +197.0,2.6385113969902796 +198.0,2.658144373377826 +199.0,2.4063780782221365 +200.0,2.7231875996164847 +201.0,2.432948645064658 +202.0,2.8501286754783526 +203.0,3.4096264751648073 +204.0,2.7020937864920604 +205.0,2.548075423748774 +206.0,2.6852987829676063 +207.0,2.959346286571377 +208.0,2.641317113515316 +209.0,2.5372958394158593 +210.0,2.761623292501915 +211.0,2.6340264429881506 +212.0,2.955077393834544 +213.0,2.674737142473099 +214.0,2.5161811074990448 +215.0,2.4546065302943734 +216.0,2.436635147303388 +217.0,2.7560994621403556 +218.0,2.499513266087458 +219.0,2.534198251672656 +220.0,2.6896631396140602 +221.0,2.853203487649094 +222.0,2.745635818024613 +223.0,2.4196700497670274 +224.0,2.8886176024043824 +225.0,2.4101302537569307 +226.0,2.513662496872668 +227.0,2.613423324499439 +228.0,3.026642802372374 +229.0,2.421999317083359 +230.0,2.984589846794556 +231.0,2.844695434912663 +232.0,2.5033275080645354 +233.0,2.564448689916154 +234.0,2.408984899433979 +235.0,2.801282049622909 +236.0,2.828817527346159 +237.0,2.8941601104969408 +238.0,3.3322627705711243 +239.0,2.5599979243796738 +240.0,2.688226656744839 +241.0,2.9934075170509793 +242.0,3.618133207302017 +243.0,2.717645022344339 +244.0,3.3215379066854958 +245.0,3.833812550576606 +246.0,2.455559174252436 +247.0,2.4921050398286466 +248.0,2.429694090255515 +249.0,2.4973249173665404 +250.0,2.4222918787746672 +251.0,2.409503969938744 +252.0,2.602281900247515 +253.0,2.6362363843604975 +254.0,2.565392829496871 +255.0,2.6008431124982585 +256.0,2.684462219721263 +257.0,3.0336034862255814 +258.0,2.6747869621778904 +259.0,2.423462638825254 +260.0,2.9684427193526055 +261.0,3.310686306052771 +262.0,2.4587889534255307 +263.0,2.5680137287117746 +264.0,3.231578365481559 +265.0,2.4379828982009646 +266.0,2.877970570233862 +267.0,2.5565018698235007 +268.0,2.7056068192452294 +269.0,2.5475086251263246 +270.0,2.8028139514226056 +271.0,2.6346536009364625 +272.0,2.501414452345009 +273.0,2.4241960351965255 +274.0,2.8345563891027328 +275.0,2.843784922613693 +276.0,2.5009718488045443 +277.0,2.917764017135486 +278.0,2.4578054031627903 +279.0,2.594215140668979 +280.0,2.6487734472424562 +281.0,2.7887966534453987 +282.0,2.819810652053471 +283.0,2.6379210596445795 +284.0,2.539259308714792 +285.0,2.5478857177695966 +286.0,2.5297231027973894 +287.0,2.578094355994152 +288.0,2.6196510824944585 +289.0,2.6823604739771647 +290.0,2.465118022636245 +291.0,2.5228573466760142 +292.0,2.41272940052505 +293.0,2.637849606655776 +294.0,2.723377173827506 +295.0,2.4749958556587996 +296.0,2.547606553617797 +297.0,2.4607164403455233 +298.0,2.6320177496463413 +299.0,2.5724832483872726 +300.0,2.6724631597102504 +301.0,2.6602309881691784 +302.0,2.6584266339979807 +303.0,2.4887277404901598 +304.0,2.4776082410736966 +305.0,2.677418099412699 +306.0,2.5833005417154293 +307.0,2.600369183855403 +308.0,3.0388535181308565 +309.0,2.6330774552878653 +310.0,2.7071619137617704 +311.0,2.5892754959423514 +312.0,2.6325909321107392 +313.0,3.221733207650998 +314.0,2.421066573426607 +315.0,2.4780612973467147 +316.0,3.6079186649634805 +317.0,2.5381907758147424 +318.0,4.005079871049509 +319.0,2.5458605801322 +320.0,2.528761882460376 +321.0,2.661260527284092 +322.0,2.745333553417436 +323.0,2.557526763797068 +324.0,2.62221506600772 +325.0,3.4673177295296687 +326.0,3.4968717937801888 +327.0,3.082502163321507 +328.0,2.7031580110498474 +329.0,2.4282917429052806 +330.0,2.6673382009564275 +331.0,2.415200649491236 +332.0,2.599880823951326 +333.0,2.4850924309378213 +334.0,2.687827063453583 +335.0,2.6663950608187084 +336.0,2.620349006064942 +337.0,2.467025721662773 +338.0,2.769102550076099 +339.0,2.628982704551093 +340.0,2.510190760558855 +341.0,2.593435777220501 +342.0,3.4723584711557933 +343.0,2.634524248629664 +344.0,3.4205903233856043 +345.0,2.4445833891821946 +346.0,3.09839622737568 +347.0,2.6659613909852906 +348.0,3.554236267330551 +349.0,2.5131202594437974 +350.0,2.4860815261576237 +351.0,2.710767091827095 +352.0,2.4538099207134487 +353.0,2.6353350509795823 +354.0,2.7677515132525534 +355.0,2.4422958737928635 +356.0,2.460562320001707 +357.0,3.102489977756276 +358.0,3.5327298305319523 +359.0,2.714483903109696 +360.0,2.5474073492703626 +361.0,2.8412856806501905 +362.0,2.568500893186939 +363.0,2.438653500165564 +364.0,2.43850221817543 +365.0,2.543885569355972 +366.0,2.4308118507444605 +367.0,2.4000670897809457 +368.0,2.7549777129064443 +369.0,4.224409441512672 +370.0,3.5422269938211457 +371.0,4.412619022214518 +372.0,2.720088987285506 +373.0,4.7834525279649185 +374.0,4.8918721454767375 +375.0,3.220694251978357 +376.0,2.711004224685674 +377.0,3.4616100418508164 +378.0,3.555781012176511 +379.0,4.154840742693292 +380.0,4.056289644495883 +381.0,2.606605252421879 +382.0,5.670561600314949 +383.0,3.8636473097365283 +384.0,2.4844881399489314 +385.0,2.6226241581556176 +386.0,3.2526549430671334 +387.0,3.219140666287829 +388.0,5.254836406390578 +389.0,3.0228748595581503 +390.0,2.823677751183092 +391.0,2.6371701221251325 +392.0,3.8133944842714955 +393.0,3.1635073201493875 +394.0,2.848791841334052 +395.0,3.652091961706759 +396.0,4.725274503146768 +397.0,2.6614957476423857 +398.0,4.670518537578943 +399.0,2.981178635193288 +400.0,3.091388848855744 +401.0,6.7466786803798575 +402.0,3.1173582976759273 +403.0,3.022931747109242 +404.0,5.204054652138418 +405.0,5.115993359308456 +406.0,3.5259022131829276 +407.0,4.162224596131322 +408.0,4.570068922771935 +409.0,3.090853001169481 +410.0,4.041660335380546 +411.0,2.946958262451742 +412.0,2.946652853960911 +413.0,7.44675043089592 +414.0,2.9798260819325604 +415.0,4.613468456460437 +416.0,3.5058531705413642 +417.0,2.474535678814163 +418.0,3.620899826580617 +419.0,5.25531835626939 +420.0,2.9022116066882107 +421.0,4.241893035317355 +422.0,4.150860424440412 +423.0,2.5648958210214965 +424.0,3.5035333005321614 +425.0,3.1828031825613565 +426.0,3.3208441746338306 +427.0,4.087955296402512 +428.0,2.9519765678132743 +429.0,4.7955613435215785 +430.0,2.8434152497018306 +431.0,2.519106561194507 +432.0,3.2495212083778515 +433.0,2.689137113823333 +434.0,2.632569666404044 +435.0,2.4085865593123414 +436.0,2.536026811904489 +437.0,3.001463848672847 +438.0,2.566749096283606 +439.0,3.223101184962246 +440.0,2.6108377205173054 +441.0,2.6031458364882276 +442.0,3.2950117375520733 +443.0,2.8672610855140874 +444.0,3.189982671505288 +445.0,2.7440045239048683 +446.0,2.5321242831675828 +447.0,2.949441411687248 +448.0,2.4401706489876434 +449.0,2.8058132008796908 +450.0,2.4812409214218305 +451.0,2.4158689332590115 +452.0,2.793641453746127 +453.0,2.498710850906214 +454.0,3.3046561724890764 +455.0,2.5383727608793873 +456.0,2.9138016924742516 +457.0,2.802329515501852 +458.0,3.6564185484524776 +459.0,3.2113769413924933 +460.0,2.6395706620345956 +461.0,2.5836501390941784 +462.0,2.418842204026571 +463.0,2.788077251628722 +464.0,2.6312565635027516 +465.0,5.134595433006227 +466.0,2.7513616286150784 +467.0,3.335884372120165 +468.0,2.7119791691866078 +469.0,2.8939697727335862 +470.0,3.401694529690247 +471.0,2.6620850932837423 +472.0,2.741999088215507 +473.0,2.780049833736212 +474.0,3.305157483438071 +475.0,2.6148816496933547 +476.0,2.852641695833849 +477.0,2.9368844400876215 +478.0,2.43378208915615 +479.0,2.6758812332547324 +480.0,2.6930130066205127 +481.0,2.4847895748370963 +482.0,2.451144240796652 +483.0,2.459736282854335 +484.0,2.411717201708993 +485.0,3.0902385232514726 +486.0,3.190230205014088 +487.0,2.6616909839631875 +488.0,3.0943087213245954 +489.0,2.7619080172649775 +490.0,2.666918441501381 +491.0,2.747844856264654 +492.0,2.434449989450477 +493.0,3.0501841442161015 +494.0,2.5354998961049193 +495.0,3.2788003476266154 +496.0,2.424612312997295 +497.0,2.552294605850938 +498.0,2.490488885949218 +499.0,2.4143941817705827 +500.0,2.80409084690326 +501.0,3.3172329926797857 +502.0,2.407804075176709 +503.0,2.921205720796289 +504.0,2.739133882161227 +505.0,2.9560412083003076 +506.0,2.7269346119476445 +507.0,2.5036995015112944 +508.0,2.416673057534989 +509.0,3.21025949027647 +510.0,2.8395960987685505 +511.0,2.636676916817982 +512.0,2.6167667639539607 +513.0,2.922329242847837 +514.0,2.733180625421809 +515.0,2.6183453845113287 +516.0,4.0869642139119655 +517.0,3.0567009138545895 +518.0,2.441418396510338 +519.0,3.337217366150918 +520.0,2.7518927292799207 +521.0,2.488033735983804 +522.0,2.4454733263275528 +523.0,2.901419833561686 +524.0,2.4145654159780165 +525.0,2.4040699335917632 +526.0,2.6291344791694318 +527.0,3.1436122824189026 +528.0,3.5173899838614275 +529.0,4.286641997339995 +530.0,3.2114232434595853 +531.0,2.739170442141635 +532.0,3.6768315053537486 +533.0,2.745751794967957 +534.0,2.5812080569435367 +535.0,3.2336728645199213 +536.0,2.488515835675908 +537.0,2.5150786497641686 +538.0,2.950476925346624 +539.0,3.1085314838447715 +540.0,2.5651430336214602 +541.0,2.5163192911879535 +542.0,2.7568421318982637 +543.0,3.048244357118048 +544.0,3.329063816728134 +545.0,2.4428296411723283 +546.0,2.6460251126533705 +547.0,2.855625259521742 +548.0,2.413835254021033 +549.0,2.8943427108587803 +550.0,2.522903689467187 +551.0,2.656325351939117 +552.0,2.660056874617127 +553.0,3.199224815847187 +554.0,2.4358120666701213 +555.0,2.6531177212372183 +556.0,2.4018377841572045 +557.0,2.6446273590194997 +558.0,2.6538149744108392 +559.0,2.5520805875243284 +560.0,2.743646579317156 +561.0,2.575320368037652 +562.0,3.1587288958327226 +563.0,2.5643816479439527 +564.0,2.7600160587911233 +565.0,2.538943881129809 +566.0,2.8198576877887547 +567.0,2.805455974416276 +568.0,3.4280121760694247 +569.0,3.170122674733156 +570.0,2.470294749406177 +571.0,2.4456168503367692 +572.0,2.4452046097511744 +573.0,3.2138090571754394 +574.0,2.5816689117187233 +575.0,2.5187030920358553 +576.0,3.2787143701625214 +577.0,2.4457062220841723 +578.0,3.0765561411085263 +579.0,2.5675398792395816 +580.0,3.4273001937650758 +581.0,2.4552950357797476 +582.0,2.6545606352632696 +583.0,2.677000474337807 +584.0,2.506717753774304 +585.0,4.1202991966183315 +586.0,2.490305668532423 +587.0,2.470568261267717 +588.0,2.408487242406416 +589.0,2.7460900209126438 +590.0,2.4371796380750994 +591.0,2.4320180977539696 +592.0,2.766025141852832 +593.0,2.8112691602543407 +594.0,2.5521921318899436 +595.0,2.590468545997435 +596.0,2.5675287641373745 +597.0,2.457921304330026 +598.0,2.44917886612504 +599.0,3.254772438193209 +600.0,2.662234842401661 +601.0,2.5651725518800763 +602.0,2.5803843184792967 +603.0,2.4636485013804235 +604.0,2.500551543217957 +605.0,2.400463866595829 +606.0,2.783844291971807 +607.0,3.394602467911912 +608.0,2.787422661968291 +609.0,2.6077603163967664 +610.0,2.9363550149366513 +611.0,2.4716100110116126 +612.0,2.678111127511496 +613.0,2.5376938461413436 +614.0,2.4159705476346067 +615.0,2.7249634453195064 +616.0,2.9113343218535856 +617.0,2.7143581238711816 +618.0,3.134302537460157 +619.0,2.426532048727601 +620.0,2.7876570027568452 +621.0,2.4396982439498545 +622.0,2.8705882873614152 +623.0,2.427478939126917 +624.0,2.403887989685131 +625.0,2.818113507877428 +626.0,2.4001221262566075 +627.0,2.6429329479945167 +628.0,2.401829458735943 +629.0,2.4972429147315496 +630.0,2.4706735817328247 +631.0,2.9313432788811706 +632.0,2.412996818347196 +633.0,4.830835402455002 +634.0,2.459118888673668 +635.0,3.292251387881583 +636.0,3.196359983880095 +637.0,2.4052786966909867 +638.0,2.4484075741695683 +639.0,3.0979131923072245 +640.0,2.658510098612529 +641.0,2.9595232535970823 +642.0,2.626327392143538 +643.0,3.0233721061672023 +644.0,3.196141239896929 +645.0,2.633843075295244 +646.0,2.683158851132929 +647.0,2.5817679606636488 +648.0,2.565865471391156 +649.0,3.028564926942861 +650.0,2.42553540637821 +651.0,2.4406296953432727 +652.0,2.7946410044729433 +653.0,3.1919439938572616 +654.0,2.906707653111791 +655.0,3.1954415514699965 +656.0,3.370866811501064 +657.0,2.634894715408925 +658.0,2.6748384412803756 +659.0,3.701420144951792 +660.0,2.586715674680391 +661.0,3.054584846557045 +662.0,2.5562322449128145 +663.0,2.5111400591253767 +664.0,2.9949448395831135 +665.0,2.826729910666494 +666.0,2.6206950859563394 +667.0,2.762694043253162 +668.0,2.42697990902662 +669.0,2.6370308505407065 +670.0,2.643356610246727 +671.0,2.971907188478732 +672.0,2.6244584850297863 +673.0,2.514935590110691 +674.0,3.24538849220282 +675.0,2.6480034744577443 +676.0,3.2374572800695858 +677.0,2.8301890684702125 +678.0,2.474752895639652 +679.0,2.7504042342309987 +680.0,3.202383359923775 +681.0,2.545764391428887 +682.0,2.450538740464345 +683.0,2.582365511848827 +684.0,3.4849941930697366 +685.0,2.714416333202266 +686.0,2.5511898394365256 +687.0,2.8495713765367094 +688.0,2.4939221680457972 +689.0,2.4419374178399122 +690.0,3.1008542483920447 +691.0,2.5484893595420073 +692.0,2.4841347419741115 +693.0,2.8927142088831124 +694.0,3.213497706035829 +695.0,2.627660689222167 +696.0,2.5009811288680917 +697.0,2.5472597867698545 +698.0,2.7271037912723854 +699.0,2.957359587462591 +700.0,2.641320525713864 +701.0,3.813902702563919 +702.0,2.4099520971591173 +703.0,2.898579550641059 +704.0,3.070266987763742 +705.0,2.5775512211621536 +706.0,2.4482808645452914 +707.0,2.642940257863557 +708.0,3.2715899277834604 +709.0,2.5943333180129824 +710.0,2.6876849457286993 +711.0,3.653167110993153 +712.0,3.390479390587079 +713.0,2.426340719451264 +714.0,2.523896368487927 +715.0,3.0739742986192717 +716.0,2.403705120633661 +717.0,3.8892585038254524 +718.0,2.744539767369139 +719.0,2.6399013271692917 +720.0,2.63973106557357 +721.0,2.9342708547589185 +722.0,2.504680827979292 +723.0,2.4880374228088855 +724.0,2.9968711696703547 +725.0,2.556280712370182 +726.0,2.4532090439938288 +727.0,3.993957084343357 +728.0,3.1789921576809634 +729.0,2.8734577628975577 +730.0,2.9679402791517635 +731.0,2.4559330417615577 +732.0,3.1043380724829728 +733.0,2.602546391337676 +734.0,2.4837900347879613 +735.0,3.2519713114665127 +736.0,2.4260284354736705 +737.0,3.1172674231253032 +738.0,2.4609015061302544 +739.0,2.6675668434604147 +740.0,2.475472957373329 +741.0,2.560524308101573 +742.0,2.732987116385216 +743.0,2.844472522714327 +744.0,2.4605339337736907 +745.0,2.49037957618986 +746.0,2.686208482342136 +747.0,2.4891567521719624 +748.0,2.8462559907674243 +749.0,2.4025517189528336 +750.0,2.6469582554994573 +751.0,2.4407490311089304 +752.0,2.8400510462241817 +753.0,2.5629332136071583 +754.0,2.4120405845648025 +755.0,2.789842013659629 +756.0,3.0919709949797642 +757.0,2.44353334520083 +758.0,2.6052337294708154 +759.0,2.48473937650794 +760.0,2.414118327686265 +761.0,3.308748459601942 +762.0,2.597604031599284 +763.0,2.6213842871899 +764.0,3.0766732475205503 +765.0,2.507585601864004 +766.0,2.508499588769287 +767.0,3.2399582865757512 +768.0,2.475225838499827 +769.0,2.5408195998075507 +770.0,3.2233890840780326 +771.0,3.0085799706087535 +772.0,2.9795843818385217 +773.0,2.706554684085987 +774.0,2.7343935671355135 +775.0,2.5484454894458346 +776.0,2.6336665006141615 +777.0,2.6247062813867816 +778.0,2.6072392198091316 +779.0,2.4423305102355792 +780.0,2.5918145639123598 +781.0,2.7860373719914597 +782.0,2.4816398137315767 +783.0,2.934997692900321 +784.0,2.443738675913227 +785.0,2.64309173628996 +786.0,2.6781231587599854 +787.0,2.938892159132829 +788.0,2.604948742489083 +789.0,2.5197369976038626 +790.0,2.5461283293942603 +791.0,2.5560596223761687 +792.0,2.573928979315026 +793.0,2.637462409486753 +794.0,2.863668567531669 +795.0,2.4307692600119255 +796.0,2.6548759251631484 +797.0,2.4809041156780562 +798.0,2.5001785739233244 +799.0,2.892881966323028 diff --git a/tests/fixtures/catalogs/case_013_background_low_1400d.csv b/tests/fixtures/catalogs/case_013_background_low_1400d.csv new file mode 100644 index 0000000..796d686 --- /dev/null +++ b/tests/fixtures/catalogs/case_013_background_low_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,2.756252440401468 +1.0,2.622586215549207 +2.0,2.010744769627373 +3.0,2.0846807014478292 +4.0,2.0964683882764525 +5.0,2.3409368634483734 +6.0,2.0630557329419155 +7.0,2.6626687416612214 +8.0,2.360236026359914 +9.0,2.2049074519134466 +10.0,2.0102296378170053 +11.0,3.2758155680260534 +12.0,2.75325601801882 +13.0,2.2175296825986486 +14.0,2.170101804087169 +15.0,2.511088945890518 +16.0,2.36563498654248 +17.0,2.0284096173923745 +18.0,2.1230214334778776 +19.0,4.232187241966206 +20.0,2.6120679412707157 +21.0,2.3473906536573903 +22.0,2.180242708541722 +23.0,2.9468505294933705 +24.0,2.1972931582533537 +25.0,2.385611001916906 +26.0,2.1365286601075697 +27.0,2.2069446087003435 +28.0,2.2962613090444406 +29.0,2.010507619160527 +30.0,2.1250377373347917 +31.0,2.0124115773590274 +32.0,2.317233597046057 +33.0,2.977305404970102 +34.0,2.579989925883618 +35.0,2.1189824722438337 +36.0,2.0057630849154764 +37.0,3.0782000154330884 +38.0,2.062907928328327 +39.0,2.730755342724101 +40.0,2.170564864113081 +41.0,3.2135637877430936 +42.0,2.159785671632098 +43.0,2.1858414383426554 +44.0,2.374326320224208 +45.0,2.004039394329384 +46.0,2.1594463142108387 +47.0,3.3770251408902263 +48.0,2.226908451540755 +49.0,4.914682008093209 +50.0,2.871944524626225 +51.0,2.01277135329915 +52.0,2.949799683568144 +53.0,2.943153732873508 +54.0,2.2163031949220855 +55.0,2.6263967802065484 +56.0,2.0608122581986064 +57.0,4.05005093162624 +58.0,2.003439969901138 +59.0,2.3878436350047587 +60.0,2.411945669436305 +61.0,2.050595578391574 +62.0,2.392260581900718 +63.0,2.0244435051257565 +64.0,2.3349046159095828 +65.0,2.1452321181928546 +66.0,2.423491614334025 +67.0,2.067932086283853 +68.0,2.870817566000614 +69.0,2.0487780789266923 +70.0,2.4258211952987594 +71.0,2.5946456634669772 +72.0,2.0451190488333673 +73.0,2.274023631790707 +74.0,2.2214353484176557 +75.0,2.4520461784779934 +76.0,2.0841577669589775 +77.0,2.025532115989048 +78.0,2.8494553182155418 +79.0,2.1540370838369314 +80.0,2.1497135253823787 +81.0,2.1233430053889446 +82.0,2.00564821960532 +83.0,2.690410813231229 +84.0,2.4471372364848483 +85.0,2.349583242728155 +86.0,2.407086668523791 +87.0,2.1009794932520394 +88.0,2.375066224628483 +89.0,2.518656084179387 +90.0,2.8773325606393225 +91.0,2.368510272005562 +92.0,2.332358597249243 +93.0,2.1158073659380374 +94.0,2.2214603968474678 +95.0,2.229322501126701 +96.0,2.096305750729872 +97.0,2.479586879785769 +98.0,2.4587327212967622 +99.0,2.0355312305333357 +100.0,2.114217461096554 +101.0,2.387001273300571 +102.0,2.0528238682607873 +103.0,2.4146793557402764 +104.0,2.9237996378083757 +105.0,2.319661566910252 +106.0,2.0889031420161572 +107.0,2.1321022444974083 +108.0,2.1771004143052135 +109.0,2.110830492979479 +110.0,2.14794913922407 +111.0,2.207451626598003 +112.0,2.039668033305287 +113.0,2.4041772984244276 +114.0,3.145246471146403 +115.0,2.3391392367823802 +116.0,2.3497837407961324 +117.0,2.3217868329221374 +118.0,2.2025689647330666 +119.0,2.0702599755001447 +120.0,2.382323448711722 +121.0,2.1957670777346316 +122.0,2.219515716495462 +123.0,2.01482484556312 +124.0,2.1411613313495543 +125.0,2.268713492263448 +126.0,3.053901306450766 +127.0,2.4713520568694065 +128.0,2.0348297486769447 +129.0,2.7855977116191535 +130.0,2.089790178818466 +131.0,2.5906068649009963 +132.0,2.0116051983526195 +133.0,2.224299499694826 +134.0,2.4813921435010515 +135.0,2.3093466222075567 +136.0,2.293757267335564 +137.0,2.444881456366567 +138.0,2.367523732923912 +139.0,2.0098095067321156 +140.0,2.1881591462178083 +141.0,4.291581634357434 +142.0,2.5828967216129763 +143.0,2.3051346958127654 +144.0,3.5014307402854055 +145.0,2.1628979311036303 +146.0,2.0180448507176214 +147.0,2.5772609871341348 +148.0,2.5229015078786974 +149.0,2.4109835793976915 +150.0,2.235629089375304 +151.0,2.0091673943940163 +152.0,2.1190333988433143 +153.0,2.324768637102568 +154.0,2.28602899798946 +155.0,2.4763139770545814 +156.0,2.54044115715576 +157.0,2.2799513310193746 +158.0,2.0119972152454135 +159.0,2.076716320918352 +160.0,2.8660703780194403 +161.0,2.417585168864547 +162.0,2.0810308340957717 +163.0,2.500032533939021 +164.0,2.3708284128682697 +165.0,2.0982498353623753 +166.0,2.7605106959917816 +167.0,2.53707097546041 +168.0,2.092661213827884 +169.0,2.6841560282310284 +170.0,2.623917357981172 +171.0,2.4867610939063134 +172.0,2.329311140961464 +173.0,2.615746220415291 +174.0,2.1074527355039874 +175.0,2.5278520060524956 +176.0,2.122218934003182 +177.0,2.226004550122283 +178.0,3.062002149713059 +179.0,2.020595029869362 +180.0,2.1645787164715657 +181.0,2.1365104292613393 +182.0,2.5773318983761992 +183.0,2.1149206806603615 +184.0,2.082983748168969 +185.0,2.006302740204701 +186.0,3.5136757486737067 +187.0,2.421137712775784 +188.0,2.3260611464326715 +189.0,2.856682729549563 +190.0,2.1421583651272584 +191.0,2.286162973577777 +192.0,2.111424121528016 +193.0,3.2387841690775976 +194.0,2.072626853502797 +195.0,2.015136110679428 +196.0,2.057963485280199 +197.0,2.248973911823282 +198.0,2.1483363203172345 +199.0,2.285531991126073 +200.0,2.5129344294518994 +201.0,2.560945672846569 +202.0,2.0216348812475537 +203.0,2.38731636424045 +204.0,2.718920991841127 +205.0,2.0190237323844924 +206.0,2.7189760860764483 +207.0,2.0710578790777614 +208.0,3.174803202667066 +209.0,3.41923674149185 +210.0,2.25805803929743 +211.0,2.299524955743876 +212.0,2.695029087310474 +213.0,2.107363656037106 +214.0,2.079259984587264 +215.0,2.150536919255877 +216.0,2.1316399698099535 +217.0,2.0478047269736512 +218.0,2.190001827994529 +219.0,2.16736254293241 +220.0,2.244000341634833 +221.0,2.060408661911347 +222.0,2.0054810041127054 +223.0,2.002657886347272 +224.0,3.392510692638843 +225.0,2.1904642316503558 +226.0,2.022871367091502 +227.0,2.078288852996773 +228.0,2.2850773820709724 +229.0,2.0421994500247815 +230.0,2.1440026015949787 +231.0,2.1138537055821764 +232.0,2.147723183126809 +233.0,2.826324066397176 +234.0,2.0092616135179515 +235.0,2.01181461248961 +236.0,2.186121757586465 +237.0,2.3816001982842483 +238.0,2.641306262751671 +239.0,2.0370633113382053 +240.0,2.3641274730790944 +241.0,2.033984280493909 +242.0,2.735708618536081 +243.0,2.1026981192867256 +244.0,2.5829166977692926 +245.0,2.1202005429365403 +246.0,2.0688063243341244 +247.0,2.6891140198606243 +248.0,2.2026069646873565 +249.0,2.059445860729971 +250.0,2.5654129705894553 +251.0,2.5791306536119762 +252.0,2.2203951880528146 +253.0,2.051025147085122 +254.0,2.069061223377052 +255.0,2.4870231443917694 +256.0,2.9311288946749534 +257.0,2.466608950211637 +258.0,2.016297732692327 +259.0,2.4570746598132938 +260.0,2.08499163873994 +261.0,2.3535982248678833 +262.0,2.192068302377102 +263.0,2.0661827714568934 +264.0,2.3326336005839536 +265.0,2.110534321174095 +266.0,2.084634849122015 +267.0,2.280224656069745 +268.0,2.4387236915026818 +269.0,2.2117209057398086 +270.0,2.3991233637195433 +271.0,3.182804763315992 +272.0,2.248795543860019 +273.0,2.139737451088559 +274.0,2.3871141083263447 +275.0,2.133489367035113 +276.0,2.165838310180862 +277.0,2.0233999174339994 +278.0,2.0047690899307278 +279.0,2.0805452404016536 +280.0,2.021348368161285 +281.0,2.160325720664118 +282.0,2.1132087633365373 +283.0,2.380550686716001 +284.0,2.065401318216331 +285.0,2.3746129216200504 +286.0,2.402604429803704 +287.0,2.160619803028055 +288.0,2.201028301999054 +289.0,2.808958865924674 +290.0,2.5658913369573626 +291.0,2.419021887549585 +292.0,2.2611623776596073 +293.0,2.2995612910305603 +294.0,2.2533080896409654 +295.0,2.598858632147692 +296.0,2.2917792477139765 +297.0,2.074295648905897 +298.0,2.250881125523284 +299.0,2.8793702972390864 +300.0,2.8127922805064522 +301.0,2.020651691033684 +302.0,2.1970925338476244 +303.0,2.858764241408285 +304.0,3.012684924841114 +305.0,2.2998705339324377 +306.0,2.7697228586367544 +307.0,2.0544091908344946 +308.0,2.1331659305948 +309.0,2.8439611841789327 +310.0,2.3465127139265336 +311.0,2.1276071108424133 +312.0,2.15245478901701 +313.0,2.563695183910164 +314.0,2.8476389378860536 +315.0,2.5916204993357774 +316.0,3.2902445377684746 +317.0,2.514182596538753 +318.0,2.40453332019773 +319.0,2.1956597144003727 +320.0,2.6691646167576324 +321.0,2.3411912312110372 +322.0,2.0626886347544504 +323.0,2.101753920344073 +324.0,2.1034867186281248 +325.0,2.6070051511920758 +326.0,2.608195861927904 +327.0,2.33035131481972 +328.0,2.0289945811391723 +329.0,2.0765164611117046 +330.0,3.2281661709077323 +331.0,2.4545410426537795 +332.0,2.176279160862325 +333.0,2.234845187554009 +334.0,2.249741539833659 +335.0,2.254375886078638 +336.0,2.046546051806394 +337.0,2.149304337509031 +338.0,2.1882431856262357 +339.0,2.238385850898182 +340.0,2.276677527834159 +341.0,2.870917658377558 +342.0,2.1836456163885165 +343.0,2.115504643540903 +344.0,2.4377925746883116 +345.0,3.6888388567193626 +346.0,2.783633235134669 +347.0,2.087652590521105 +348.0,2.1091445739319763 +349.0,2.38835777837932 +350.0,2.0856372411793487 +351.0,2.6366420734790808 +352.0,2.5414299702579823 +353.0,2.321921131774361 +354.0,2.0322150096080085 +355.0,2.2414313301724342 +356.0,2.2438898677684076 +357.0,2.0353118193221547 +358.0,2.2561419376955794 +359.0,2.131756407270363 +360.0,2.0241166910440715 +361.0,2.304005883529877 +362.0,2.5926778665547925 +363.0,2.142487697934828 +364.0,2.0009062468734 +365.0,2.4679337102566574 +366.0,2.0818846787548315 +367.0,2.00847206757586 +368.0,2.4619384296253495 +369.0,2.4522114107449093 +370.0,2.2628691884520067 +371.0,2.0710925296460805 +372.0,2.266801799164536 +373.0,2.3752504552471563 +374.0,2.0084383269837454 +375.0,2.0443792366044753 +376.0,2.250982052999908 +377.0,2.5130181011810864 +378.0,2.727989553650529 +379.0,2.006559514266159 +380.0,3.3313692894318083 +381.0,2.3340762834385633 +382.0,2.041135392396121 +383.0,2.285863242172521 +384.0,2.071456285200297 +385.0,2.060001961784333 +386.0,2.627423229151262 +387.0,2.521905640392476 +388.0,2.264500564386192 +389.0,2.044364470348447 +390.0,2.5127910689114485 +391.0,2.359619433651144 +392.0,2.073463971798246 +393.0,2.6113143459983035 +394.0,2.172850358846204 +395.0,2.188692745477477 +396.0,2.0462188582015783 +397.0,2.3935641891204322 +398.0,2.3264693797647276 +399.0,2.104614150746158 +400.0,2.036520909322337 +401.0,2.1060704279607325 +402.0,2.0069955670283903 +403.0,2.3418408640992223 +404.0,2.1875998893941015 +405.0,2.1652367588954475 +406.0,2.114973306417338 +407.0,2.36152238146425 +408.0,2.0647427459767114 +409.0,2.049665141929921 +410.0,2.043087610964884 +411.0,2.1282095645533463 +412.0,2.1138495218232856 +413.0,2.332961442211008 +414.0,2.8329724153971476 +415.0,2.0009862058314263 +416.0,2.0182650001121196 +417.0,2.156164338524543 +418.0,2.118034022249109 +419.0,2.1990359949687868 +420.0,2.959564975010653 +421.0,2.0815264269345874 +422.0,2.192847037912822 +423.0,2.0938323053848493 +424.0,2.247217185874489 +425.0,2.2610534164694482 +426.0,2.82734107114534 +427.0,2.433240493926437 +428.0,2.1097402452257135 +429.0,2.00874571832396 +430.0,2.9480114163129856 +431.0,2.318962470148953 +432.0,2.4079830612958917 +433.0,2.7676831737816388 +434.0,2.014356787535986 +435.0,2.1105421629874894 +436.0,2.797312455459028 +437.0,2.1327720582468706 +438.0,3.4977078855386994 +439.0,2.5506350014444448 +440.0,2.4337288338210237 +441.0,2.3329183859447755 +442.0,2.428366197974856 +443.0,2.1410501471095595 +444.0,2.0406617410647425 +445.0,2.4277940144241055 +446.0,2.4690291207300525 +447.0,2.1053587654519403 +448.0,2.476794260957717 +449.0,2.495325210624801 +450.0,2.224780293137632 +451.0,2.63895493730452 +452.0,2.04586128029109 +453.0,2.09996653002972 +454.0,2.158665523605422 +455.0,2.7361744914097352 +456.0,2.1373566256659577 +457.0,3.7523865817671567 +458.0,2.0724834145491573 +459.0,2.2369342490025326 +460.0,2.033293235942653 +461.0,2.059007684450642 +462.0,2.016730255646663 +463.0,3.6524394738575987 +464.0,2.0186835065253215 +465.0,2.3331690943160814 +466.0,2.1729021307448977 +467.0,2.5850438222813166 +468.0,3.279622117293762 +469.0,2.3092938177344347 +470.0,2.0193457839313793 +471.0,2.2892552548556995 +472.0,2.0358398255004073 +473.0,2.166209785143602 +474.0,2.0555206673993918 +475.0,2.1066786362530596 +476.0,2.736685305409895 +477.0,2.414995968862252 +478.0,2.034583374665588 +479.0,2.6260652856845277 +480.0,2.4338531068198823 +481.0,2.7278630784580247 +482.0,2.221581874713079 +483.0,2.132851677300241 +484.0,2.9399379837721114 +485.0,2.399226402550477 +486.0,2.117341462742159 +487.0,2.0153663779905684 +488.0,2.4013692979993597 +489.0,2.6790531883288864 +490.0,2.0500686502784906 +491.0,2.1960944141626184 +492.0,2.4341856082403295 +493.0,2.1288429834241467 +494.0,2.0196477957080448 +495.0,2.344904929449547 +496.0,3.4758920258633696 +497.0,2.130200293411186 +498.0,2.1487345674426686 +499.0,2.0322567939865843 +500.0,2.0265593661751735 +501.0,2.7077198588609717 +502.0,2.1964153464884237 +503.0,2.408544287564933 +504.0,2.007178498139963 +505.0,2.8035385069019743 +506.0,2.798854842006621 +507.0,2.13112732823207 +508.0,2.332355357037275 +509.0,2.06099015293817 +510.0,2.046425573329807 +511.0,2.2248112204642285 +512.0,2.0110550434378656 +513.0,2.260615976650551 +514.0,2.680768224308476 +515.0,2.0716071315214544 +516.0,2.130266294359163 +517.0,2.292572601199893 +518.0,2.1728585702618077 +519.0,2.073304646375447 +520.0,3.8927172542738426 +521.0,2.281011909787677 +522.0,2.827352291318315 +523.0,2.3386756623894995 +524.0,2.343052645398309 +525.0,2.7763089460716 +526.0,2.1073071163666337 +527.0,2.2577637474913037 +528.0,2.0771321106159895 +529.0,2.371126647587568 +530.0,2.0789838285200113 +531.0,2.207638223960577 +532.0,2.0463914245626342 +533.0,2.014232710242345 +534.0,2.1173934560674863 +535.0,3.3394337749388185 +536.0,2.6498924408277085 +537.0,2.13309062337601 +538.0,2.1052779612866734 +539.0,2.719707137878643 +540.0,2.054440423220064 +541.0,2.1997502797526742 +542.0,2.1958663926880573 +543.0,2.2714114965209213 +544.0,2.210927389747729 +545.0,2.2100400188654827 +546.0,2.180163693804272 +547.0,2.0627482258088827 +548.0,2.092198563231718 +549.0,4.219157422806752 +550.0,2.0339307312570933 +551.0,2.3751321482810837 +552.0,2.4106601400346355 +553.0,2.015564351867233 +554.0,2.261529348919118 +555.0,3.618070744018567 +556.0,2.442818641650501 +557.0,2.060687843701871 +558.0,2.121475334532303 +559.0,3.345417356626747 +560.0,2.123047385724871 +561.0,2.1466773585762193 +562.0,2.1164460761682724 +563.0,2.4728651812740607 +564.0,2.03535479935644 +565.0,2.2717931655296173 +566.0,2.141543098575986 +567.0,2.042433833161902 +568.0,2.110963910607981 +569.0,2.047334969245834 +570.0,3.837647991675216 +571.0,2.18969192246105 +572.0,2.269035938978313 +573.0,2.518692572213462 +574.0,2.3296839839574126 +575.0,2.0071500416667867 +576.0,2.108120236681047 +577.0,2.2330623288194227 +578.0,2.559491768344379 +579.0,2.439477667620803 +580.0,2.804505631276329 +581.0,2.6228678235121925 +582.0,2.3311432480325327 +583.0,2.4161602738823675 +584.0,2.079276150058582 +585.0,2.0420895084513 +586.0,2.2713553420479258 +587.0,2.31382842025471 +588.0,2.2792556014789 +589.0,2.163258243708417 +590.0,2.2206471406102675 +591.0,2.0089303849672255 +592.0,2.2663147695273516 +593.0,2.2067892580055237 +594.0,2.289554787543342 +595.0,2.1743619463768247 +596.0,2.0618346305129767 +597.0,2.344778714861408 +598.0,3.09674654868207 +599.0,2.006293655682766 +600.0,2.2093109307783454 +601.0,2.0724031558759255 +602.0,2.4792806633346425 +603.0,2.4537262576323373 +604.0,2.4884386137143375 +605.0,2.751935217625932 +606.0,3.151102825809672 +607.0,2.0067396311665084 +608.0,2.614277937479775 +609.0,2.180252273690572 +610.0,2.163384017273834 +611.0,2.273206030057645 +612.0,2.8154029436641346 +613.0,2.1163317397470864 +614.0,3.368596300294402 +615.0,2.1796669071272667 +616.0,2.7781341730413778 +617.0,2.446826335574225 +618.0,2.290547873180508 +619.0,2.00311349782952 +620.0,2.1690468359614568 +621.0,2.028847546017787 +622.0,2.4379934203816154 +623.0,2.3290041472395098 +624.0,2.2387261043124203 +625.0,2.373756314983775 +626.0,2.7591970200237004 +627.0,2.4261638046984615 +628.0,2.295197026969959 +629.0,2.999311791374434 +630.0,2.0113645819097745 +631.0,2.8015274462241075 +632.0,2.1829813204727806 +633.0,2.35278805874231 +634.0,2.556965961743936 +635.0,2.7359261416375364 +636.0,2.1235790424613126 +637.0,2.0468177925870243 +638.0,2.3589407830296643 +639.0,2.473272006931348 +640.0,2.4684207334279216 +641.0,2.4798562959265356 +642.0,2.06353625291568 +643.0,2.0511033885301373 +644.0,2.214387885085064 +645.0,2.236830679878061 +646.0,2.1318889469007605 +647.0,2.015257900059714 +648.0,2.0890068546059486 +649.0,2.364572750125405 +650.0,2.160340891424489 +651.0,2.032227718117292 +652.0,2.204084944302194 +653.0,3.0967164569810635 +654.0,2.0355197649998793 +655.0,2.3255425977314075 +656.0,2.4171925603235214 +657.0,2.0082693369203986 +658.0,2.121624517770067 +659.0,2.368183124756963 +660.0,2.528855364049449 +661.0,2.245267139448732 +662.0,2.1525337704141227 +663.0,2.243746876693308 +664.0,2.2338867286956776 +665.0,2.0705982110542904 +666.0,2.083693500432623 +667.0,2.530216987271975 +668.0,2.7698469244514032 +669.0,2.1454521325694142 +670.0,2.208173425691826 +671.0,2.0668994852684857 +672.0,2.4345367866416217 +673.0,2.2667685661412436 +674.0,2.09583027415058 +675.0,2.2041836156781742 +676.0,2.8462422103154568 +677.0,2.1023006160520508 +678.0,2.2188310762878216 +679.0,2.3741103969879664 +680.0,2.2036806028169185 +681.0,2.0166353780759825 +682.0,3.5279531210777177 +683.0,2.2653072161570473 +684.0,2.127901581816224 +685.0,2.255138456536595 +686.0,2.131423665905581 +687.0,2.1706955844701348 +688.0,2.3093149157175787 +689.0,2.528354466786177 +690.0,2.7256135861205704 +691.0,2.1476679001869687 +692.0,2.636631579347046 +693.0,2.6708854371403286 +694.0,2.023460066152513 +695.0,2.2512052736616686 +696.0,2.443772592690984 +697.0,2.313716334851598 +698.0,2.2667216263525862 +699.0,2.1634449463841037 +700.0,2.1937666923326233 +701.0,2.112773858660736 +702.0,2.1224413495708725 +703.0,2.394265401317401 +704.0,2.938675992869133 +705.0,2.1211026973124847 +706.0,2.1680395272486175 +707.0,2.0149212506979133 +708.0,2.1498760158682804 +709.0,2.1644025874562227 +710.0,2.5093163553221145 +711.0,2.891120838769721 +712.0,2.4569328325023148 +713.0,2.4445576537411218 +714.0,2.4325794198704944 +715.0,2.3105418967703213 +716.0,2.1691055187540673 +717.0,2.040554494233244 +718.0,2.1391197856614137 +719.0,3.0959778422759827 +720.0,2.4434744346257373 +721.0,2.002519577751577 +722.0,2.2694242463203986 +723.0,2.007081293141289 +724.0,2.259666055706483 +725.0,2.7717398841076095 +726.0,2.5671258055283106 +727.0,2.172781576513672 +728.0,3.007117395594893 +729.0,2.8040696136980077 +730.0,2.332289291577044 +731.0,2.2190285640683602 +732.0,2.3231492385409203 +733.0,2.168130554179603 +734.0,2.5251364231474502 +735.0,2.040023852559562 +736.0,2.0005723371349635 +737.0,2.2070570624433525 +738.0,2.0284479233320902 +739.0,2.150047574351926 +740.0,2.150424228317137 +741.0,2.4884849700487686 +742.0,2.0578058098030056 +743.0,2.1382822591799124 +744.0,2.5775652024917726 +745.0,2.215370255346114 +746.0,2.236669436264053 +747.0,2.2130880301530595 +748.0,2.0956447604827644 +749.0,2.384206066135797 +750.0,2.3343437977421733 +751.0,2.6007950410340634 +752.0,2.265338690414403 +753.0,2.580757181519032 +754.0,2.2476319505886377 +755.0,2.1949656890840465 +756.0,2.44704370353906 +757.0,2.7032509336747363 +758.0,3.187944960125126 +759.0,2.3016853117717444 +760.0,2.4018521895257305 +761.0,2.5033424369848314 +762.0,2.266922123110082 +763.0,2.0296608709954067 +764.0,2.580189726021954 +765.0,3.281929872354972 +766.0,2.321854901099849 +767.0,3.230700162567129 +768.0,2.1318407787550857 +769.0,2.693333206087323 +770.0,2.7535594988516943 +771.0,2.424830689041602 +772.0,2.050569652431977 +773.0,2.1518704837768254 +774.0,2.3584543409599 +775.0,2.6520221944223183 +776.0,2.105975257297248 +777.0,2.4996182786162833 +778.0,2.150032460028996 +779.0,2.0365797247723703 +780.0,2.2177499350792687 +781.0,2.2174370678678987 +782.0,2.007955396124101 +783.0,2.6761344651668555 +784.0,2.0437978041395493 +785.0,2.068542776504668 +786.0,2.041581158073039 +787.0,2.101464211891081 +788.0,2.1101780436481907 +789.0,2.7188739886008024 +790.0,2.048013325641487 +791.0,2.036575021191506 +792.0,2.729402106298512 +793.0,2.124298889424927 +794.0,2.3144215215137858 +795.0,3.671102112641788 +796.0,2.0914233568862253 +797.0,2.125377760250906 +798.0,3.013050950257737 +799.0,2.327508593311263 +800.0,2.103958345921768 +801.0,2.016875230053272 +802.0,2.3122420984294854 +803.0,3.1218274779397124 +804.0,2.3294079332219964 +805.0,2.7997416511591617 +806.0,2.84467247285089 +807.0,2.7227265752923118 +808.0,2.239422231219446 +809.0,2.014507824266443 +810.0,2.3832498981046593 +811.0,2.3579651830395605 +812.0,2.0552993637333064 +813.0,2.032717342426438 +814.0,2.0253838268473916 +815.0,2.5005319883084063 +816.0,2.1203057317719978 +817.0,2.2719789648931945 +818.0,2.251656184523485 +819.0,3.089052675020408 +820.0,2.4785009682820824 +821.0,2.255279712865964 +822.0,2.2650284377155763 +823.0,2.125563173368617 +824.0,2.024112025264326 +825.0,2.624626678097456 +826.0,2.681639995308149 +827.0,2.0418316781191104 +828.0,2.184421257710692 +829.0,2.4736656732638345 +830.0,3.248347332804925 +831.0,2.475934553693661 +832.0,3.0279831267374933 +833.0,2.6931869862768836 +834.0,2.051175359858678 +835.0,2.21218446464771 +836.0,2.267884862857331 +837.0,2.2754393479410155 +838.0,2.192886179178739 +839.0,2.3645588320870337 +840.0,2.2767297058813356 +841.0,2.116236979521373 +842.0,2.062886760827433 +843.0,2.0043324410762944 +844.0,2.5194444800359284 +845.0,2.0930041782828837 +846.0,2.905612381452863 +847.0,2.0211098183139358 +848.0,2.082635400957658 +849.0,2.044866849138093 +850.0,2.0194770248660614 +851.0,2.3348802912393753 +852.0,2.0461057002099823 +853.0,2.6732750976047632 +854.0,2.116627422215736 +855.0,2.1679806571341915 +856.0,2.0087048777756897 +857.0,2.4745213121519756 +858.0,2.0243509660206045 +859.0,2.02470730143739 +860.0,2.0934552860109616 +861.0,2.4578749593169262 +862.0,2.3079398087222356 +863.0,2.8315729206597746 +864.0,2.1324708606021394 +865.0,2.617197517490106 +866.0,2.174172137119749 +867.0,2.1889314976633787 +868.0,2.1422779788210256 +869.0,2.1821890215256996 +870.0,3.4201835627826673 +871.0,2.311502186133334 +872.0,2.7470473834803384 +873.0,2.362242043444882 +874.0,2.3035356071358724 +875.0,2.071748781755038 +876.0,2.7825865873427054 +877.0,2.0365647319458096 +878.0,2.1760522732878127 +879.0,2.8387724957799523 +880.0,2.1608479503999347 +881.0,2.8199917984989584 +882.0,2.0910065037266543 +883.0,2.303007845841512 +884.0,2.105515286876473 +885.0,2.7126813028366614 +886.0,2.1014244060720033 +887.0,2.491270162515246 +888.0,2.1179004874818377 +889.0,2.0717104707677123 +890.0,2.6075774709174815 +891.0,2.5474473087655145 +892.0,2.4199332088486614 +893.0,2.1914307611667905 +894.0,2.272327183964823 +895.0,2.1785849499672203 +896.0,2.3835095922504594 +897.0,2.2105585844667504 +898.0,2.7922412887790795 +899.0,2.9859050738719297 +900.0,2.256908945987403 +901.0,2.1803897639729284 +902.0,2.6586192275456466 +903.0,2.082713528526161 +904.0,2.600015741882636 +905.0,2.193157064604376 +906.0,2.0323123996756665 +907.0,2.123623746499896 +908.0,2.1508420140107525 +909.0,2.8278640026209585 +910.0,2.0293195906198105 +911.0,2.1072123809028365 +912.0,2.3956982380251226 +913.0,4.528793460262649 +914.0,2.6204698069151124 +915.0,2.1887274619555006 +916.0,2.362380806332269 +917.0,2.3961968008141468 +918.0,2.0998439771564144 +919.0,2.5339555559613016 +920.0,2.10332231056924 +921.0,2.0597377004973123 +922.0,2.4821203291481817 +923.0,2.0244046830440134 +924.0,2.196918425891964 +925.0,2.1920539208429375 +926.0,2.680880858725872 +927.0,2.50397205274648 +928.0,2.488725349499822 +929.0,2.287454335711029 +930.0,2.2568249653065413 +931.0,2.7957909478847585 +932.0,2.0606683173219444 +933.0,2.0354904433895977 +934.0,2.1327537403076486 +935.0,2.5937076749548953 +936.0,3.7913471220300767 +937.0,2.660570453110985 +938.0,2.7487064744634906 +939.0,2.4304932824063714 +940.0,2.253395504856896 +941.0,2.316652329893623 +942.0,3.4978314232111805 +943.0,2.2044449635746632 +944.0,2.89117894581649 +945.0,2.091422574033239 +946.0,2.1362773344556625 +947.0,3.0365655130373517 +948.0,2.0829914596409176 +949.0,2.314549368100011 +950.0,2.6810814147173074 +951.0,2.165492417663547 +952.0,2.2537806286305857 +953.0,2.0516062186147206 +954.0,2.012856092881307 +955.0,2.4506467139456714 +956.0,2.436634666471973 +957.0,2.988941737775873 +958.0,2.0123405035401594 +959.0,2.5023043142057317 +960.0,2.2563769476420896 +961.0,2.0465405359349798 +962.0,2.6575176277792973 +963.0,3.2213363313002263 +964.0,2.6354884634981808 +965.0,2.44213195068756 +966.0,2.292568626844404 +967.0,2.1282005819706153 +968.0,2.132156559952142 +969.0,2.0372570941813186 +970.0,2.077587237402404 +971.0,2.3996056489104043 +972.0,2.0369552853121995 +973.0,2.0800644254274254 +974.0,2.1957962439833865 +975.0,2.0173969785515804 +976.0,2.275095733419887 +977.0,2.0137189610523625 +978.0,2.003629767705022 +979.0,2.109117257435211 +980.0,2.1749531357747935 +981.0,2.0877247879456355 +982.0,2.028577210544919 +983.0,2.1161247379810924 +984.0,3.372993794438937 +985.0,2.160963456928024 +986.0,2.817584996065065 +987.0,2.914248079281284 +988.0,2.2513462716266055 +989.0,2.035660745005536 +990.0,2.2135690872807463 +991.0,2.1809532479050233 +992.0,2.6456998976564012 +993.0,2.4692008290999445 +994.0,2.5253268159558395 +995.0,2.0553587910923077 +996.0,2.5359176220529642 +997.0,2.9939706370671635 +998.0,2.0550252009837844 +999.0,2.0030202819878293 +1000.0,2.55775422560359 +1001.0,2.3257850272510776 +1002.0,2.0832654615879993 +1003.0,2.5564780169794727 +1004.0,2.4743483256584398 +1005.0,2.061787030378068 +1006.0,2.12376931012916 +1007.0,2.158613626087659 +1008.0,2.2156178454781696 +1009.0,2.24495017235796 +1010.0,2.177743901726351 +1011.0,2.467534775745462 +1012.0,2.454265702679151 +1013.0,2.16846351974897 +1014.0,2.6040251777663097 +1015.0,2.5664187685170825 +1016.0,2.1294922870157187 +1017.0,2.5639420802955906 +1018.0,2.9723647438241776 +1019.0,2.8195293631299014 +1020.0,3.5817977803756893 +1021.0,2.0315577877583637 +1022.0,2.266819234405445 +1023.0,2.9013158307745437 +1024.0,2.0381484115434945 +1025.0,2.16922058620839 +1026.0,3.122878725700108 +1027.0,2.230319313695193 +1028.0,2.05369713599882 +1029.0,2.03381644217229 +1030.0,2.5304061432744867 +1031.0,2.1154480262828104 +1032.0,2.406551664418283 +1033.0,2.1343943386100395 +1034.0,2.196699462001716 +1035.0,2.2908837181261803 +1036.0,2.462157809089108 +1037.0,2.0378847171318597 +1038.0,2.3448507512526446 +1039.0,2.0500589448721263 +1040.0,2.7551176312192345 +1041.0,2.041704862452272 +1042.0,2.182123426218811 +1043.0,2.595178263856026 +1044.0,2.236246928482227 +1045.0,2.148415260206666 +1046.0,2.282823949954616 +1047.0,2.355566662194923 +1048.0,2.1255518161657134 +1049.0,2.001586219890484 +1050.0,3.2358705729018924 +1051.0,2.555823212026697 +1052.0,2.0361142402357246 +1053.0,2.1709103655546063 +1054.0,2.294258452257245 +1055.0,2.208792366047429 +1056.0,2.2664472672820475 +1057.0,2.1726808558218815 +1058.0,2.3740907904466018 +1059.0,2.493651734596642 +1060.0,2.07683019912849 +1061.0,2.4584673597678246 +1062.0,2.2314244279196322 +1063.0,2.840286306799991 +1064.0,2.1620797780695864 +1065.0,2.1653905259994657 +1066.0,2.176897120535118 +1067.0,2.1977280754286137 +1068.0,2.962754781486899 +1069.0,2.7552565510996008 +1070.0,2.1007523381560613 +1071.0,2.2421431873255853 +1072.0,2.01275916247649 +1073.0,2.2799726561614904 +1074.0,2.186620510767008 +1075.0,3.0873931973744355 +1076.0,2.1440842925406365 +1077.0,2.0654781900693657 +1078.0,2.5473142700827602 +1079.0,2.1162380111738797 +1080.0,2.4123112847004182 +1081.0,2.7320373492006826 +1082.0,2.3259466722749234 +1083.0,2.041003653892905 +1084.0,4.5266385674125935 +1085.0,2.232284987246394 +1086.0,2.3808913908181766 +1087.0,2.0593073940843127 +1088.0,2.7339281834181026 +1089.0,2.376246561944043 +1090.0,2.4897832950244956 +1091.0,2.087359629593576 +1092.0,2.3881282886142854 +1093.0,2.077945594555369 +1094.0,2.3063162280040252 +1095.0,2.1977355357320336 +1096.0,2.2123381215351894 +1097.0,2.1516489782484594 +1098.0,2.4020924625741484 +1099.0,2.200079168714126 +1100.0,2.1184292478781717 +1101.0,2.0839693569616378 +1102.0,2.1269001234088782 +1103.0,2.43733118311258 +1104.0,2.074382566632831 +1105.0,2.103665607709819 +1106.0,2.232319117437786 +1107.0,2.046664743332881 +1108.0,2.756900048332318 +1109.0,2.297397549394297 +1110.0,2.27973425080316 +1111.0,2.067531320529329 +1112.0,2.6284313800903734 +1113.0,2.8179164746948504 +1114.0,2.99360428998385 +1115.0,2.211461302460331 +1116.0,2.1923470006791623 +1117.0,2.1284803104503394 +1118.0,2.4366863499660965 +1119.0,2.040535547659381 +1120.0,2.0364226524598448 +1121.0,2.4535448178107746 +1122.0,2.004309135765552 +1123.0,2.371586216983178 +1124.0,2.187115287508597 +1125.0,2.817375206946491 +1126.0,2.357136361893673 +1127.0,2.166009263769749 +1128.0,2.431178585536475 +1129.0,2.028263526534433 +1130.0,2.331219510598595 +1131.0,2.0893920033564566 +1132.0,2.3598037151275757 +1133.0,2.1167576502761505 +1134.0,2.241204257237991 +1135.0,2.282783606117695 +1136.0,2.004904648986812 +1137.0,2.846645996640316 +1138.0,2.1751208443102543 +1139.0,2.0378070500976992 +1140.0,2.6819944938039946 +1141.0,2.063054641193274 +1142.0,3.220871724919598 +1143.0,2.055021452012054 +1144.0,2.002288979893342 +1145.0,2.234429400940201 +1146.0,2.418986157918914 +1147.0,2.3770155242504294 +1148.0,2.530563945577512 +1149.0,3.3640858919259307 +1150.0,2.2405237835550675 +1151.0,2.177447628105598 +1152.0,2.0691576511234855 +1153.0,2.0037231318596107 +1154.0,2.057485915602244 +1155.0,2.2899594045491165 +1156.0,2.3461178016724946 +1157.0,2.624181779955541 +1158.0,2.315031365998116 +1159.0,2.0170335571723137 +1160.0,2.403433111575421 +1161.0,2.276377979924894 +1162.0,2.3438155611414895 +1163.0,2.021888072247698 +1164.0,2.0692298598482495 +1165.0,2.3201043399055 +1166.0,2.0065018755283535 +1167.0,2.2310652103824347 +1168.0,2.8845067552263464 +1169.0,2.1184226404393405 +1170.0,2.4279808079885514 +1171.0,2.0814551311629317 +1172.0,2.0277913770751335 +1173.0,2.199573732601172 +1174.0,2.520573995583978 +1175.0,2.345297159937591 +1176.0,2.4183981858051924 +1177.0,2.015729498825139 +1178.0,2.2125817094975 +1179.0,3.7981482711766335 +1180.0,2.3595528884924946 +1181.0,2.0663395721852607 +1182.0,2.0306307860102777 +1183.0,2.0799850457472915 +1184.0,2.4571626417970203 +1185.0,2.4566937524620966 +1186.0,2.365390117093999 +1187.0,2.0488836865411995 +1188.0,3.5492080619597055 +1189.0,2.2524204778886405 +1190.0,2.1910951930764595 +1191.0,2.1599445161516866 +1192.0,2.7362277865791373 +1193.0,2.03457918086991 +1194.0,2.154883364616168 +1195.0,2.8297110853075997 +1196.0,2.853686709697082 +1197.0,2.21310086087987 +1198.0,2.220407484589775 +1199.0,3.543187386060387 +1200.0,2.0004618829555825 +1201.0,2.3303052246451244 +1202.0,2.038494311336701 +1203.0,2.73832873853534 +1204.0,2.3718187863456963 +1205.0,2.1211890792924537 +1206.0,2.358694732677954 +1207.0,2.8418456344039784 +1208.0,2.4176765789916836 +1209.0,2.3108575769040014 +1210.0,2.102559044208239 +1211.0,2.0120678748476517 +1212.0,2.8305272109998016 +1213.0,2.0704284791848897 +1214.0,2.016387096343615 +1215.0,2.26482479296728 +1216.0,2.263336912957982 +1217.0,2.188120045113945 +1218.0,2.424725133581374 +1219.0,2.2687565900870252 +1220.0,2.013336248576757 +1221.0,2.067347796661831 +1222.0,2.131705765402313 +1223.0,2.1357733930778737 +1224.0,2.1115336113587535 +1225.0,2.0795337513944907 +1226.0,2.7871779975309527 +1227.0,2.119167265232025 +1228.0,2.300044948471418 +1229.0,2.2142625078414255 +1230.0,2.071035136297675 +1231.0,2.055417749197299 +1232.0,2.6366727614157774 +1233.0,2.0453282495809737 +1234.0,2.3496081657634016 +1235.0,2.1083907326134246 +1236.0,2.451842671200584 +1237.0,2.011965085694004 +1238.0,2.895065601475123 +1239.0,2.029711765066884 +1240.0,2.6907925349476502 +1241.0,2.0180928259483384 +1242.0,2.1530232399960814 +1243.0,2.0515066228892054 +1244.0,2.202451828839632 +1245.0,2.1925587638228694 +1246.0,2.0444367224887796 +1247.0,3.1137550398276526 +1248.0,2.0993322774925733 +1249.0,2.310440210653069 +1250.0,2.9507445259394443 +1251.0,2.971525265996035 +1252.0,3.05713661299017 +1253.0,2.4805547474537777 +1254.0,2.0001943323338542 +1255.0,3.770826587252463 +1256.0,2.5974907001081813 +1257.0,2.3314915935222453 +1258.0,3.2604486320019803 +1259.0,2.352650868780269 +1260.0,2.185430193756555 +1261.0,2.169453341941401 +1262.0,2.482373892589166 +1263.0,2.1150655971511845 +1264.0,2.0372229762905105 +1265.0,2.460995793749738 +1266.0,2.1389425651442266 +1267.0,3.1085740228506697 +1268.0,2.21903617224745 +1269.0,2.5629972098603715 +1270.0,2.1755975515448784 +1271.0,2.0563211576623 +1272.0,2.1312289418166954 +1273.0,2.2927527884588144 +1274.0,2.581864093013796 +1275.0,2.3209201605700613 +1276.0,2.0501050494701927 +1277.0,2.686727142317152 +1278.0,3.0270795567874664 +1279.0,2.456982280882798 +1280.0,2.5020410003412668 +1281.0,2.0422208954669965 +1282.0,2.0659144784953605 +1283.0,2.2041335449964947 +1284.0,2.8917422636888723 +1285.0,2.368793717582081 +1286.0,2.342311590139486 +1287.0,2.0735338528447733 +1288.0,2.1650870223940766 +1289.0,2.9721231733748454 +1290.0,2.0508761368084185 +1291.0,2.8308385901957576 +1292.0,2.2220221224194043 +1293.0,3.006507798158772 +1294.0,2.3550431897850177 +1295.0,2.946117008541114 +1296.0,2.825106246419164 +1297.0,2.407628520450828 +1298.0,2.8890587049798 +1299.0,2.41638491471541 +1300.0,2.0149807596939007 +1301.0,2.075923115086631 +1302.0,2.0872105961693 +1303.0,2.003187731790003 +1304.0,2.5345739441142388 +1305.0,2.3612018445992162 +1306.0,2.3867050914266663 +1307.0,2.0065395265439587 +1308.0,2.0301135120927243 +1309.0,2.9283007890348864 +1310.0,2.5761331095676816 +1311.0,2.0078797191389737 +1312.0,2.507456357303241 +1313.0,2.0096208338901866 +1314.0,2.164441580543127 +1315.0,2.188346568897232 +1316.0,2.311302324248314 +1317.0,2.231129271357711 +1318.0,2.810170107754325 +1319.0,2.039960266465328 +1320.0,2.2426236044743804 +1321.0,2.0081169373340453 +1322.0,2.383192235660498 +1323.0,2.0550290929250616 +1324.0,2.374113501865841 +1325.0,2.1977324220917605 +1326.0,2.5488544976911265 +1327.0,2.2881943993365383 +1328.0,2.492703577406761 +1329.0,2.1517392377237834 +1330.0,2.6099283832072606 +1331.0,2.0491130026860267 +1332.0,2.0389369069244885 +1333.0,2.4448120097558093 +1334.0,2.25628657344363 +1335.0,2.1306433987994544 +1336.0,2.1482616059975927 +1337.0,2.106620474084239 +1338.0,3.339990025956875 +1339.0,2.387550614690972 +1340.0,2.1310469115708743 +1341.0,2.0184146947271415 +1342.0,2.2260555973760043 +1343.0,2.192549957375152 +1344.0,2.053118964215535 +1345.0,2.4036588294006576 +1346.0,2.1468712363735034 +1347.0,2.171594790643489 +1348.0,2.097048420393643 +1349.0,2.1361052220555607 +1350.0,2.03341589648016 +1351.0,2.004648759093718 +1352.0,2.0904056934738824 +1353.0,2.968940511840429 +1354.0,2.4879368766680274 +1355.0,2.2914017826179416 +1356.0,2.169005592846251 +1357.0,3.2446938051013556 +1358.0,2.7056978977716355 +1359.0,2.0852929722490927 +1360.0,2.0335297462201276 +1361.0,2.0483972417738068 +1362.0,2.579891198489125 +1363.0,2.0221256644741854 +1364.0,2.176754731363675 +1365.0,2.5423614568787456 +1366.0,3.8474394113547925 +1367.0,2.4024282104945742 +1368.0,2.049646362868493 +1369.0,2.4401516118286395 +1370.0,2.421447601033914 +1371.0,2.4469312662606852 +1372.0,3.5006263076273108 +1373.0,2.099998492593582 +1374.0,2.084504362486441 +1375.0,2.0169603383119643 +1376.0,2.1903808296705294 +1377.0,2.264507786568692 +1378.0,2.0998873051439304 +1379.0,2.164771966279091 +1380.0,2.3892348971588033 +1381.0,2.3225727906314315 +1382.0,2.0419528043508257 +1383.0,2.3729717233028036 +1384.0,2.889224310812077 +1385.0,2.8623973024165794 +1386.0,2.6864456885459935 +1387.0,2.7291702931971265 +1388.0,2.2688816323165697 +1389.0,2.4214243477708717 +1390.0,2.127587674284369 +1391.0,2.315316718574218 +1392.0,2.104923401025549 +1393.0,2.172750748909919 +1394.0,2.66135483699348 +1395.0,2.211490463242751 +1396.0,2.079118712634377 +1397.0,2.243963680920836 +1398.0,2.7330518403569273 +1399.0,2.2308461103528643 diff --git a/tests/fixtures/catalogs/case_014_background_medium_1400d.csv b/tests/fixtures/catalogs/case_014_background_medium_1400d.csv new file mode 100644 index 0000000..7dd18a2 --- /dev/null +++ b/tests/fixtures/catalogs/case_014_background_medium_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,3.325625488953301 +1.0,2.9917433601000605 +2.0,2.606525469141129 +3.0,2.460347702232731 +4.0,2.955843913678666 +5.0,2.584852502534737 +6.0,2.909560143768923 +7.0,2.544402056912438 +8.0,3.605149473478897 +9.0,2.800766051031853 +10.0,2.9614732937164527 +11.0,2.4190085556410335 +12.0,3.0942777000233495 +13.0,3.239089146877352 +14.0,2.4511487480335967 +15.0,2.8097198294523116 +16.0,2.4103836939414385 +17.0,2.4179075969794583 +18.0,2.4438448378481463 +19.0,2.690796078741592 +20.0,3.684004484711899 +21.0,2.4561138911164453 +22.0,3.8207830267410143 +23.0,3.1463783448211045 +24.0,2.428498116711002 +25.0,2.4458354680657615 +26.0,2.403419448266111 +27.0,3.500419029396319 +28.0,2.447489513223451 +29.0,2.4417764886031668 +30.0,2.756298538332017 +31.0,3.024427740007219 +32.0,2.4229543679169536 +33.0,2.508465001322595 +34.0,2.8553587444496475 +35.0,2.8356407031354665 +36.0,2.96401880063579 +37.0,2.6431695734780485 +38.0,2.5183923674292577 +39.0,2.4319439718579585 +40.0,2.9278400729185177 +41.0,2.6241654775242313 +42.0,2.5144234782696366 +43.0,2.5531926847678323 +44.0,2.846634952821623 +45.0,2.7230555093425073 +46.0,2.4457689777780276 +47.0,4.872935962471551 +48.0,2.464367017000508 +49.0,3.2594779238174865 +50.0,2.7227883681375453 +51.0,2.944629157796945 +52.0,2.6625141334921802 +53.0,3.115368625947326 +54.0,3.0002920571252165 +55.0,2.5525774314330283 +56.0,2.48884130256907 +57.0,2.7781493338635745 +58.0,3.7495108639088204 +59.0,2.8287898740982143 +60.0,3.06760115125759 +61.0,2.522703199435076 +62.0,3.4417229329055052 +63.0,2.479247300242397 +64.0,2.5522387417098993 +65.0,2.4059591189009035 +66.0,2.62783550070795 +67.0,3.2470382312357113 +68.0,3.1963815805861824 +69.0,2.536741181348833 +70.0,2.4062043078406656 +71.0,2.8132333796845646 +72.0,4.191494930133345 +73.0,2.546602189248616 +74.0,2.5009977966890404 +75.0,3.316966488934855 +76.0,2.978862674331035 +77.0,3.8778320119850918 +78.0,3.26403661835817 +79.0,2.508569002869336 +80.0,3.1934334696963456 +81.0,2.4614864073821257 +82.0,2.708272276204738 +83.0,2.529553656581645 +84.0,2.663897138916705 +85.0,2.4107578697488035 +86.0,2.4926834535718636 +87.0,3.0214649082849743 +88.0,2.7329361928455893 +89.0,2.419814503587682 +90.0,2.817495887074261 +91.0,2.436330517642505 +92.0,4.359941967184204 +93.0,2.468670094213688 +94.0,3.402218800937646 +95.0,2.4736882575860633 +96.0,2.6430316132540006 +97.0,2.5115156453596903 +98.0,2.469223952143359 +99.0,2.7252301859240387 +100.0,3.0643594854641223 +101.0,3.4327668791910937 +102.0,2.59629629889178 +103.0,2.6235044169190633 +104.0,2.481653729756655 +105.0,2.503295234400344 +106.0,2.4738446771836893 +107.0,2.454438442104422 +108.0,2.6802245427177107 +109.0,2.434660482259874 +110.0,2.5454071215602045 +111.0,2.401705970826545 +112.0,4.218748320057234 +113.0,2.7545503570875387 +114.0,3.6845563656535787 +115.0,3.2108060144863737 +116.0,2.528243775515917 +117.0,3.0425056214024573 +118.0,2.685256580564406 +119.0,2.738677866079574 +120.0,3.3107593824780563 +121.0,3.493159594995093 +122.0,2.4209146839348725 +123.0,2.531317048376902 +124.0,2.5461712972357495 +125.0,3.4887884802680222 +126.0,2.4914755439353873 +127.0,2.5397872167178392 +128.0,2.7526365728343465 +129.0,2.766625973906173 +130.0,2.7347635841820837 +131.0,3.9078169533751512 +132.0,2.6463701188728086 +133.0,2.763653836431256 +134.0,2.546451547952682 +135.0,2.7848546714138216 +136.0,2.590746714546073 +137.0,4.832907797801555 +138.0,3.1727849185883086 +139.0,2.7868208801793157 +140.0,3.5888354604675743 +141.0,2.5534851578760196 +142.0,2.6022831774837383 +143.0,3.5464299215484454 +144.0,2.610817708981777 +145.0,2.8347269665271773 +146.0,2.96647885434234 +147.0,3.0040334946622727 +148.0,2.5153745772933265 +149.0,2.4967287575849055 +150.0,2.50667120258619 +151.0,2.5617898642969155 +152.0,4.329090625321008 +153.0,2.7520573274403373 +154.0,3.203695093188603 +155.0,2.4300823830180995 +156.0,2.704570471721973 +157.0,2.498496838576902 +158.0,2.487649783853655 +159.0,2.576715547057686 +160.0,2.7266188661795705 +161.0,3.3707639649032464 +162.0,2.94432762395783 +163.0,2.467906595054994 +164.0,2.4104969728543417 +165.0,2.4801139929809186 +166.0,2.4228844008247123 +167.0,2.7264584022238054 +168.0,4.103416500062563 +169.0,2.5008937499716417 +170.0,2.615764401616533 +171.0,2.404595092570513 +172.0,2.486151541699365 +173.0,2.4232113639369235 +174.0,2.746737684347706 +175.0,3.1612634309331513 +176.0,3.036244435789637 +177.0,2.8839968041153936 +178.0,2.7776965104192213 +179.0,2.4623233923422094 +180.0,2.727846363875802 +181.0,2.512985998016579 +182.0,2.4777371786329487 +183.0,2.5398122298273837 +184.0,2.450643861321987 +185.0,2.9373406904462738 +186.0,2.8046990194333654 +187.0,2.4686676329154102 +188.0,2.7996334247027175 +189.0,3.730495014039466 +190.0,6.208084969424684 +191.0,3.6908122700752624 +192.0,2.552209611986671 +193.0,3.8124488931751257 +194.0,2.758347320625648 +195.0,2.5520176814617077 +196.0,2.565111202349201 +197.0,3.2062723487945166 +198.0,3.1954017076927315 +199.0,2.744697082405587 +200.0,2.5252280939529643 +201.0,2.715198718193302 +202.0,2.45685662174641 +203.0,3.5229995885762744 +204.0,2.5292715932489642 +205.0,2.585584082492113 +206.0,2.7004515016765858 +207.0,3.0440111133271257 +208.0,2.927618316879777 +209.0,2.8143577976513816 +210.0,3.235660552232683 +211.0,3.3167652915082337 +212.0,2.8363514939729773 +213.0,2.5529166314104934 +214.0,3.8921380537213994 +215.0,2.6826875948542033 +216.0,2.656301428221798 +217.0,2.7316123646865518 +218.0,2.781983743790721 +219.0,2.409794639728362 +220.0,2.5939045420799234 +221.0,2.694372803702721 +222.0,2.598759883406483 +223.0,3.6423885122844153 +224.0,3.293213999835075 +225.0,3.173394365080103 +226.0,3.2642145363121537 +227.0,2.6817993505005773 +228.0,3.1568013453330197 +229.0,3.0792092646129876 +230.0,2.6108799407372936 +231.0,2.7285760161926906 +232.0,3.168372238374513 +233.0,3.18919782038126 +234.0,2.4436912443282592 +235.0,2.437816601056796 +236.0,2.864049667595951 +237.0,3.236363860700748 +238.0,2.470786888760926 +239.0,3.100836859921259 +240.0,4.8174630230167 +241.0,3.641447370423369 +242.0,2.613740444266488 +243.0,4.896841047657734 +244.0,2.7376442819651245 +245.0,3.356745273758831 +246.0,3.1365711357375012 +247.0,2.6225978541786668 +248.0,2.4119472856368582 +249.0,2.775378886084523 +250.0,3.3927381814606736 +251.0,3.2910358815583156 +252.0,3.054523341241299 +253.0,2.455277322686415 +254.0,3.537086404493973 +255.0,2.483714691472572 +256.0,2.664016716962626 +257.0,2.7992607712544757 +258.0,2.538595227988774 +259.0,3.6220356341516515 +260.0,2.5107127030373326 +261.0,2.7296522935207137 +262.0,3.1755013646036288 +263.0,2.6213429303326556 +264.0,2.525615672976933 +265.0,2.4859081718666904 +266.0,3.6044339072244354 +267.0,3.247787605414331 +268.0,2.935771873558444 +269.0,3.242071340373946 +270.0,3.0060045946003955 +271.0,3.624264776165636 +272.0,2.573842446619095 +273.0,2.501932125745701 +274.0,2.793643452444218 +275.0,3.2731516354752292 +276.0,2.8331393190411536 +277.0,3.8817931947315083 +278.0,2.7225665338156926 +279.0,2.85046184976023 +280.0,2.496343521237673 +281.0,2.767033490286977 +282.0,3.5327457116501955 +283.0,2.8088098982696557 +284.0,2.5840469215004864 +285.0,3.7901831521316565 +286.0,2.4368823998690003 +287.0,3.8494024077065983 +288.0,2.9630674361181386 +289.0,2.6403358944597355 +290.0,2.615628210584307 +291.0,3.2500583844507704 +292.0,2.604085314312284 +293.0,2.4814188896069225 +294.0,2.4269677925824578 +295.0,2.772276480670921 +296.0,2.4809534728885243 +297.0,2.6782722545991393 +298.0,3.104051211935096 +299.0,2.771106037862401 +300.0,3.3364990410341284 +301.0,2.5624512801221635 +302.0,2.7970441712940333 +303.0,2.744206506338923 +304.0,2.5598268524777303 +305.0,2.7697363867413247 +306.0,2.6236644708239685 +307.0,4.553477202299398 +308.0,2.4903780736706485 +309.0,2.939968527681942 +310.0,2.6910127027680977 +311.0,2.527881764595671 +312.0,2.4115420084417134 +313.0,2.698135767788154 +314.0,2.74542871073197 +315.0,2.844931463135075 +316.0,2.700807563824424 +317.0,2.7219178205083443 +318.0,2.594955192085419 +319.0,2.47374949513305 +320.0,2.71097586924461 +321.0,2.4469339706984834 +322.0,2.4462498602601905 +323.0,2.5673649988694707 +324.0,2.4276904887882402 +325.0,4.169288565217207 +326.0,2.8993228364799952 +327.0,2.6093991429460925 +328.0,2.4451306015016194 +329.0,2.4653581804801683 +330.0,2.532540428874616 +331.0,2.9251432657564864 +332.0,3.463613517237463 +333.0,3.0148398469024382 +334.0,2.4396715281302224 +335.0,2.5101159653997214 +336.0,2.4378416572400665 +337.0,2.9375904780354003 +338.0,2.745780679527907 +339.0,2.4065181948977017 +340.0,3.056404495080884 +341.0,4.421347122459838 +342.0,2.4191363855137578 +343.0,2.801426964176751 +344.0,2.415648958043965 +345.0,3.3045934406926136 +346.0,3.3618449075422285 +347.0,3.0364054419421747 +348.0,3.369225703294995 +349.0,4.723751983991753 +350.0,2.4616684135708504 +351.0,3.1620828515888957 +352.0,3.1827151914963947 +353.0,2.7774605235643164 +354.0,2.9772969626389374 +355.0,2.8099389834351722 +356.0,2.554475160826486 +357.0,2.5469083384265585 +358.0,2.4214812217002715 +359.0,2.7966172624674157 +360.0,2.4658164231978716 +361.0,3.337822329445581 +362.0,4.548741553262507 +363.0,2.785290141585386 +364.0,2.928350076898827 +365.0,3.8062369196104786 +366.0,2.7205375055081897 +367.0,2.6788579721622185 +368.0,2.8225758930106055 +369.0,2.6374633678677304 +370.0,3.424410247829527 +371.0,3.6594553189575416 +372.0,3.226745842184288 +373.0,3.3582729846346884 +374.0,2.9423907122192268 +375.0,2.831475816248692 +376.0,3.823789010663786 +377.0,2.7509203927476933 +378.0,2.5018747294491206 +379.0,3.406755266111464 +380.0,2.806910656558598 +381.0,2.517290958719765 +382.0,2.442244687914731 +383.0,2.449447917088581 +384.0,2.949025598050269 +385.0,2.6279634673462637 +386.0,2.527177733263834 +387.0,3.0100866094331904 +388.0,2.6296004576645515 +389.0,2.6012513490454037 +390.0,2.623493323751374 +391.0,2.4006998977596257 +392.0,2.725263221298665 +393.0,2.4693539240032907 +394.0,3.1675122197081307 +395.0,2.5089475552665235 +396.0,3.67087751955426 +397.0,2.737620770906641 +398.0,2.8291478660932237 +399.0,2.432270843598523 +400.0,2.578773780876089 +401.0,2.6148352609671544 +402.0,2.6060958503058114 +403.0,2.4597527796877166 +404.0,2.402668979200284 +405.0,3.138937919640679 +406.0,3.1792739938553956 +407.0,3.5918327294781633 +408.0,3.22433998132456 +409.0,2.567266056292119 +410.0,3.0090428074261566 +411.0,3.7133179822067572 +412.0,3.249013491367067 +413.0,3.173204419293843 +414.0,2.921045072211651 +415.0,2.5763328960927407 +416.0,3.1993497204569623 +417.0,2.6215344495656807 +418.0,2.520013572879027 +419.0,2.6241682638281785 +420.0,3.0246346195719847 +421.0,2.440005817649842 +422.0,2.4484482480183978 +423.0,2.563051724070161 +424.0,2.5516139185221762 +425.0,3.0665685603397543 +426.0,2.744793273772221 +427.0,2.816786192342356 +428.0,2.6959990686982485 +429.0,3.7253190641622833 +430.0,2.460607409263724 +431.0,2.7982916393778092 +432.0,2.780796800146652 +433.0,2.99054798747867 +434.0,3.282852073975412 +435.0,2.4830031498641816 +436.0,2.4787294076969335 +437.0,3.1052117949723446 +438.0,3.1053583371701157 +439.0,4.777698647084156 +440.0,2.5519702336295262 +441.0,3.0484814420504938 +442.0,2.4584338894412108 +443.0,3.0528474032890776 +444.0,3.487257454543185 +445.0,2.699799701341334 +446.0,2.499380121678141 +447.0,2.5309410082550494 +448.0,3.0743287633550866 +449.0,2.8415792687986525 +450.0,2.4871363291490405 +451.0,2.836580900686201 +452.0,2.974761921216465 +453.0,3.6074778078763354 +454.0,3.0528911114921637 +455.0,2.699951435891719 +456.0,2.638742227733168 +457.0,2.686018860140922 +458.0,2.4642471815664755 +459.0,2.5651772156813273 +460.0,2.5291794217783305 +461.0,2.7364886291356547 +462.0,2.5269967663182458 +463.0,2.522453069830179 +464.0,2.472335113618533 +465.0,2.4951844873744853 +466.0,2.430872900908187 +467.0,2.5451591702911505 +468.0,3.0991011907491774 +469.0,2.7291767726355034 +470.0,3.0541805811382243 +471.0,2.502890244013434 +472.0,2.7992106741400202 +473.0,3.182819887716359 +474.0,2.717149066341951 +475.0,2.7944986384750172 +476.0,3.1161719805226875 +477.0,2.675897995331216 +478.0,2.6260209303830093 +479.0,2.638645025313411 +480.0,2.4690919669919844 +481.0,2.681741694983931 +482.0,2.980312424225857 +483.0,2.7000119213714386 +484.0,2.8392833719559256 +485.0,3.3015219311568194 +486.0,4.686903721831957 +487.0,2.6112337982670177 +488.0,2.8573448473235015 +489.0,2.532705560445931 +490.0,2.4414144527479817 +491.0,3.073406978460103 +492.0,2.420759736710524 +493.0,2.4005793633562926 +494.0,3.2470883590574924 +495.0,2.424396583393946 +496.0,3.7069665427418794 +497.0,3.269145219360072 +498.0,2.5059436525366494 +499.0,2.8369804497048756 +500.0,4.415280527799773 +501.0,2.472844340787607 +502.0,4.072126903747417 +503.0,2.7832028342788235 +504.0,4.175690053729892 +505.0,2.4453705918646373 +506.0,2.900643636873246 +507.0,2.5009432865096075 +508.0,2.416573738123857 +509.0,2.5087002262233153 +510.0,2.5888993377615157 +511.0,2.7802849268721834 +512.0,2.6402024783123577 +513.0,2.5205891016178006 +514.0,3.080682619514616 +515.0,3.627356772657533 +516.0,2.4739195476240092 +517.0,3.085840227376847 +518.0,2.6343644464978406 +519.0,3.547234515607509 +520.0,2.755220313148518 +521.0,3.418450512692782 +522.0,2.549186500139462 +523.0,3.6452388090630006 +524.0,2.639203279319037 +525.0,2.586998855193964 +526.0,2.4518566844281597 +527.0,2.802757268927591 +528.0,2.7235429153411035 +529.0,2.8170369104284196 +530.0,3.6667045397836295 +531.0,2.572406707128158 +532.0,3.499948929492416 +533.0,2.4272100878750926 +534.0,2.7454625150898693 +535.0,2.819928699736816 +536.0,2.8755128141822848 +537.0,2.485090268839572 +538.0,2.7674230666205117 +539.0,2.831937861730981 +540.0,2.4229346552514843 +541.0,2.410741496050331 +542.0,3.2625343370113074 +543.0,3.0201232721785134 +544.0,3.515421100819268 +545.0,2.5929593769518595 +546.0,2.8800016742459174 +547.0,3.0010664101602345 +548.0,3.468173516442466 +549.0,2.5928809390380865 +550.0,2.6857555074800423 +551.0,2.885485222862795 +552.0,2.4671848157540657 +553.0,2.924545843318906 +554.0,2.583884166440507 +555.0,2.6307131264653356 +556.0,2.568476988304893 +557.0,2.4027948646500183 +558.0,2.775330525070833 +559.0,3.1296247888016 +560.0,2.414270752741536 +561.0,3.6013110428816177 +562.0,2.507255083816625 +563.0,4.664938628778011 +564.0,2.5946616050146347 +565.0,2.535601214894094 +566.0,2.461250741547383 +567.0,2.9167140564295577 +568.0,2.5413924947321465 +569.0,2.7796294266276553 +570.0,4.229666933615528 +571.0,2.5020927312253027 +572.0,3.8687047408380657 +573.0,2.741116209991358 +574.0,2.4276334626235205 +575.0,2.7816634442857153 +576.0,5.46029643544777 +577.0,2.8681186004464734 +578.0,2.635043017023752 +579.0,2.88295755089834 +580.0,2.475835517324526 +581.0,2.9081748896803914 +582.0,2.4631428713653607 +583.0,2.9362283449670548 +584.0,2.53227324658584 +585.0,2.4218888278505917 +586.0,3.4537692124979413 +587.0,3.952214880450305 +588.0,2.6122472090402913 +589.0,3.042757265312968 +590.0,2.636080238369833 +591.0,3.3505056816089134 +592.0,2.4366052485391547 +593.0,2.7849465571015886 +594.0,2.6055909894470863 +595.0,2.5995807201881 +596.0,2.6384657092634574 +597.0,2.78565113005246 +598.0,2.7421778028972508 +599.0,2.5061738327791208 +600.0,2.729093661706256 +601.0,2.7499242912739805 +602.0,2.412251919909254 +603.0,5.28438994343033 +604.0,2.454602325782978 +605.0,4.31215373309986 +606.0,3.059931301488245 +607.0,2.690164774162449 +608.0,3.593204987167545 +609.0,2.5038422793621087 +610.0,2.8968923889522724 +611.0,2.607612337219219 +612.0,2.6115157099054005 +613.0,2.4076906882222193 +614.0,2.400383652566887 +615.0,2.4892424640033695 +616.0,2.44855856315127 +617.0,2.718587609450827 +618.0,2.489652208676234 +619.0,3.6201859238181875 +620.0,3.2291611131377493 +621.0,2.841377805450788 +622.0,2.518622024979114 +623.0,3.7900059402009654 +624.0,3.141090237491846 +625.0,2.618364042598809 +626.0,2.550393989138602 +627.0,2.421258217121689 +628.0,2.5162272795537812 +629.0,4.006023879402603 +630.0,2.730677575993411 +631.0,2.503193777892208 +632.0,3.595618159958491 +633.0,2.6848250219911454 +634.0,2.8933374974860766 +635.0,2.548265535668918 +636.0,2.4519406817214073 +637.0,2.5906610807113233 +638.0,2.476004358788353 +639.0,2.5229703700393613 +640.0,3.5546245437605037 +641.0,3.0863806377102496 +642.0,3.143793309935412 +643.0,3.897986156566458 +644.0,2.7131649672982476 +645.0,2.531120091803116 +646.0,2.912533756132662 +647.0,2.450355688453413 +648.0,2.5746869165718547 +649.0,4.335949942250984 +650.0,2.486883407899638 +651.0,2.788173204153217 +652.0,3.17268998914293 +653.0,2.5184109969129627 +654.0,2.751726882441436 +655.0,3.059850106403008 +656.0,4.755241631061801 +657.0,2.4689893331088966 +658.0,2.5893280490880657 +659.0,2.6385119364242415 +660.0,2.4190591758383717 +661.0,2.5834973684583558 +662.0,2.958909111539339 +663.0,3.9691097135214886 +664.0,3.820461853507613 +665.0,2.4007960761303035 +666.0,3.3661852463361224 +667.0,2.705498566492993 +668.0,2.6332112803869943 +669.0,3.1699145364554617 +670.0,3.1222576104279565 +671.0,2.4659176597582375 +672.0,2.974030478226232 +673.0,2.553010138690155 +674.0,3.556110102018774 +675.0,2.4286137156213545 +676.0,2.758689960291496 +677.0,2.66763155804755 +678.0,2.5783487198513333 +679.0,4.9548823581708294 +680.0,2.5655627728067123 +681.0,3.1293584996705435 +682.0,2.6340813998700896 +683.0,2.555705521309717 +684.0,2.4136621409678 +685.0,3.004885849974463 +686.0,2.4691178958384645 +687.0,2.4552185776404714 +688.0,2.541653902774922 +689.0,3.3627013336237104 +690.0,2.5761725952688206 +691.0,2.894067502071053 +692.0,3.425201874415957 +693.0,2.886009707735847 +694.0,3.824174243809642 +695.0,3.4573680135782285 +696.0,2.962569955260001 +697.0,2.9433579915135284 +698.0,2.4617040863062347 +699.0,3.073589669482538 +700.0,2.475833154081087 +701.0,2.6509587600138826 +702.0,2.6916650728670124 +703.0,3.226387683449394 +704.0,2.7067875041009115 +705.0,2.9351312116931942 +706.0,2.752517860750339 +707.0,2.900344568777972 +708.0,2.4436012705886045 +709.0,2.608365556222727 +710.0,2.5564029763330955 +711.0,2.6568040452659214 +712.0,2.735056262790178 +713.0,3.466130262882031 +714.0,3.8971496987115195 +715.0,2.491504725222666 +716.0,3.1736395186446074 +717.0,2.647406811613041 +718.0,3.533094872376342 +719.0,2.4518384921405456 +720.0,2.506527125978202 +721.0,2.584571475330653 +722.0,2.809349163740582 +723.0,3.5120925177965123 +724.0,3.2396297542937225 +725.0,2.6957323861151914 +726.0,2.787344198810874 +727.0,2.4482046684816443 +728.0,2.6421721623744077 +729.0,2.8863990366315315 +730.0,2.598482469711611 +731.0,2.8115159548117004 +732.0,2.613931408335755 +733.0,2.409728418886708 +734.0,2.7619388232110604 +735.0,2.830640003874516 +736.0,2.764195996631458 +737.0,2.5453708739515695 +738.0,2.5659676150095017 +739.0,2.653911690901649 +740.0,2.7308808674190184 +741.0,2.5289740774093916 +742.0,2.439589410848573 +743.0,3.2333777371841426 +744.0,3.0130580966468354 +745.0,4.128415635033842 +746.0,2.6108866065802037 +747.0,2.5823768351800136 +748.0,3.077201569507478 +749.0,2.4460365898167122 +750.0,2.6401623120778406 +751.0,3.068795428308589 +752.0,2.4446829499776 +753.0,3.066087021584401 +754.0,2.698767198962722 +755.0,3.180688881322663 +756.0,2.541234328101701 +757.0,2.621723481327098 +758.0,2.8753042545847456 +759.0,2.739184663936855 +760.0,3.3755097985457185 +761.0,3.0491127425253692 +762.0,2.411186799678899 +763.0,2.7295438145976436 +764.0,3.048987409167534 +765.0,2.457321959851577 +766.0,3.198019099711099 +767.0,2.9564579399119046 +768.0,2.711745524460327 +769.0,2.5303363049668595 +770.0,2.748224333838827 +771.0,2.767151802163275 +772.0,2.8525505787042955 +773.0,2.500992714241593 +774.0,2.4308821998505605 +775.0,2.621442210810871 +776.0,2.5444041368739225 +777.0,3.355849432357214 +778.0,3.1969096027385002 +779.0,3.2367155779472676 +780.0,2.5705486000429802 +781.0,2.4829125728569132 +782.0,2.705502436111277 +783.0,3.462176746094379 +784.0,2.6175607756133914 +785.0,3.1230892876127907 +786.0,2.408931550862618 +787.0,2.450986163803264 +788.0,2.4645386950191814 +789.0,4.168906142294522 +790.0,3.0957836785097808 +791.0,2.704965860350417 +792.0,3.2820355035460826 +793.0,2.4624995678186994 +794.0,2.5895153505065984 +795.0,2.408498554463898 +796.0,3.067232991452565 +797.0,3.587488696905919 +798.0,2.5410552987042774 +799.0,2.467400180824533 +800.0,2.9492566556580098 +801.0,2.4053955644672236 +802.0,2.9053804296232943 +803.0,2.5636653110271888 +804.0,3.534380730209314 +805.0,2.478656743310862 +806.0,3.2343384943651294 +807.0,2.876049674227856 +808.0,2.9191551281389048 +809.0,3.1572755490568576 +810.0,3.4586838565072866 +811.0,4.725292265220695 +812.0,2.570271914498218 +813.0,2.413399780579457 +814.0,2.407968964279049 +815.0,2.669411703279732 +816.0,2.8118666505342857 +817.0,2.960454359117424 +818.0,2.854875846944964 +819.0,2.553235510424804 +820.0,5.498127345902239 +821.0,2.519508371684331 +822.0,2.4571301056060526 +823.0,2.530235988373155 +824.0,3.2526593298383175 +825.0,2.7944619079431274 +826.0,2.7295548871680477 +827.0,2.8628021484582797 +828.0,3.0121124729078277 +829.0,2.4201956027376355 +830.0,2.713882951110394 +831.0,2.7558864720799114 +832.0,3.5460198375349496 +833.0,2.874066857381033 +834.0,3.2245743681428714 +835.0,2.698579397968027 +836.0,3.624377185669269 +837.0,2.893851807219325 +838.0,2.827961832927071 +839.0,2.4172418833498135 +840.0,2.527523142703482 +841.0,2.4573562551200467 +842.0,2.796438963830481 +843.0,3.504846747357755 +844.0,2.4400462549618958 +845.0,2.688520016693852 +846.0,2.651889732009084 +847.0,2.4039569278212345 +848.0,2.729734453933816 +849.0,3.347381854168497 +850.0,2.843455976175935 +851.0,2.4108425453725704 +852.0,2.8896500845268887 +853.0,3.068262193511422 +854.0,3.1323530527139023 +855.0,3.1116634260845686 +856.0,2.929127415125958 +857.0,3.6093020323371503 +858.0,2.4750359788974343 +859.0,2.5249352477797986 +860.0,2.7927569047454033 +861.0,2.6830835840163934 +862.0,3.836035930642862 +863.0,3.24956364935414 +864.0,3.2560798648671696 +865.0,2.5946418587520754 +866.0,2.804671657904884 +867.0,2.673041870724006 +868.0,4.384911699960639 +869.0,3.383350174064107 +870.0,2.464046610482743 +871.0,4.7082297644420485 +872.0,3.3618656230776516 +873.0,2.7580619664623267 +874.0,2.4367964012687984 +875.0,2.5638152403154315 +876.0,2.962417802169642 +877.0,3.699178524869746 +878.0,2.4508154193980807 +879.0,2.5644236012064336 +880.0,3.671586440915976 +881.0,2.8917520089890765 +882.0,2.7296239458677336 +883.0,2.8086355067381996 +884.0,3.466794575460532 +885.0,3.285064936865684 +886.0,2.610683494158378 +887.0,2.8660106119901374 +888.0,2.6392814471807573 +889.0,2.849407769128213 +890.0,2.6214956004701446 +891.0,3.887095877167252 +892.0,2.8173983243800262 +893.0,2.401599478015839 +894.0,2.431550783337908 +895.0,2.453812397474914 +896.0,2.6498352609172944 +897.0,2.677498626177671 +898.0,2.7519170134697273 +899.0,3.4502393813998813 +900.0,2.527782367736636 +901.0,3.645078203355931 +902.0,2.5128001969708436 +903.0,2.8283967846135707 +904.0,2.4511984436127947 +905.0,2.457759798920262 +906.0,2.7258358773226075 +907.0,2.402104088481035 +908.0,2.8006736542407507 +909.0,2.5031788617140256 +910.0,2.752927426392476 +911.0,4.010226476337057 +912.0,3.8086293955655166 +913.0,4.023680253801592 +914.0,3.427992011633834 +915.0,2.5522030417724406 +916.0,2.9471239125108046 +917.0,2.534991601740521 +918.0,3.466264677554636 +919.0,4.4734379276640786 +920.0,2.583150364013809 +921.0,4.442375112372787 +922.0,3.2677700272400605 +923.0,2.8978625652097865 +924.0,2.78339391623137 +925.0,2.559325056848772 +926.0,2.4133131726539996 +927.0,2.610404446903676 +928.0,2.710072730549614 +929.0,3.8215006824838618 +930.0,2.4276018121676284 +931.0,2.73989831357438 +932.0,2.5749041148982994 +933.0,2.85648651346861 +934.0,2.774229663345197 +935.0,2.5523668408199267 +936.0,3.039434100893924 +937.0,2.8218430388079963 +938.0,2.5906325386566373 +939.0,2.4166953671109233 +940.0,2.576687777151176 +941.0,2.913136821475608 +942.0,2.549700798918036 +943.0,3.1243120719966258 +944.0,2.441438730378704 +945.0,2.5135350553377207 +946.0,2.710431596687781 +947.0,3.5923309513226203 +948.0,2.5712767764967017 +949.0,3.247705681748723 +950.0,2.6115172816596606 +951.0,2.4657213387367976 +952.0,3.074797259748838 +953.0,4.246473524485626 +954.0,2.7538970547427475 +955.0,2.7435850458485653 +956.0,2.5008261430019947 +957.0,3.1105522118306546 +958.0,2.4182392100007513 +959.0,2.4420765536660185 +960.0,3.2839279106772254 +961.0,2.5335226229327703 +962.0,2.8259506808151396 +963.0,4.54601103028091 +964.0,3.0936197866675212 +965.0,3.1020498192028283 +966.0,2.569012347616321 +967.0,2.8235505072958005 +968.0,2.8321874261700404 +969.0,2.9933310291109123 +970.0,4.066177607664187 +971.0,2.4797508385172904 +972.0,2.862163953980236 +973.0,2.823005195170036 +974.0,2.5858946042411435 +975.0,2.839844200491204 +976.0,2.54417179482087 +977.0,2.4060336866221457 +978.0,3.1360958004684947 +979.0,2.418224516104561 +980.0,3.5387683357351185 +981.0,2.4733390203823715 +982.0,2.7621502782452763 +983.0,2.679435721381129 +984.0,2.4003474027493654 +985.0,4.589446245102625 +986.0,2.424097693693375 +987.0,3.0162238156719154 +988.0,2.459937398490816 +989.0,2.5141743785268065 +990.0,2.420094432161973 +991.0,3.549907791504233 +992.0,2.5235126142238467 +993.0,3.2839352183475783 +994.0,2.4121093276233974 +995.0,3.017405940660896 +996.0,2.799901488157581 +997.0,2.608730243586388 +998.0,2.8307190515203797 +999.0,2.6715192516972213 +1000.0,2.4375400548617403 +1001.0,3.2271695079674596 +1002.0,2.755518654696088 +1003.0,3.0920725568430605 +1004.0,2.717888363024393 +1005.0,2.482317240847247 +1006.0,3.424217765583351 +1007.0,3.662337007547821 +1008.0,2.594725753370535 +1009.0,2.971751175526175 +1010.0,2.8816076335775285 +1011.0,2.942755495872592 +1012.0,2.544882644339124 +1013.0,2.450027237980807 +1014.0,2.5322240636931674 +1015.0,3.2968428894279267 +1016.0,3.3335799737163323 +1017.0,3.3231483904608305 +1018.0,2.6365333177786434 +1019.0,2.9013076641122937 +1020.0,2.504408766384891 +1021.0,4.729705430269023 +1022.0,2.4989290342759785 +1023.0,2.418999224031185 +1024.0,2.7865166711016602 +1025.0,2.8000517470888417 +1026.0,3.063857759680654 +1027.0,3.3919040458053487 +1028.0,2.480873907120432 +1029.0,2.904170305853298 +1030.0,2.460891141027562 +1031.0,2.504199958058136 +1032.0,2.969985238517586 +1033.0,2.9777219310828036 +1034.0,2.782048579845314 +1035.0,2.8986111678384834 +1036.0,2.487024901353308 +1037.0,2.7159347530836064 +1038.0,2.4869327112849295 +1039.0,2.7122985976423486 +1040.0,2.780091262194046 +1041.0,2.5221872144507373 +1042.0,2.8140787650948393 +1043.0,2.5959939781022046 +1044.0,3.070119831826692 +1045.0,2.483962600843655 +1046.0,2.858426329999049 +1047.0,3.591149140949477 +1048.0,3.264560020682469 +1049.0,2.9193765923065604 +1050.0,3.173831828019288 +1051.0,2.768664937542567 +1052.0,2.8679964894177563 +1053.0,2.5970584581999687 +1054.0,2.437076331867861 +1055.0,2.9142852402988995 +1056.0,2.4866751950246493 +1057.0,2.4746807944222877 +1058.0,2.6793476338882396 +1059.0,2.4045068294324645 +1060.0,2.4999606280735716 +1061.0,3.752277728578915 +1062.0,2.891393243808538 +1063.0,2.8958703945580284 +1064.0,2.999984925010227 +1065.0,2.4087550350745635 +1066.0,2.9491818230029425 +1067.0,2.425107255642259 +1068.0,2.7538698171482747 +1069.0,3.4155494779892526 +1070.0,2.4486393732059213 +1071.0,2.7743737282410263 +1072.0,2.7773146436003175 +1073.0,3.761035060122576 +1074.0,2.7826968392943523 +1075.0,2.473886957627989 +1076.0,3.7223074338185613 +1077.0,2.6934756054581372 +1078.0,2.5431133633628056 +1079.0,3.3301438545326256 +1080.0,3.057437745538334 +1081.0,2.5516657102125087 +1082.0,3.268316426859922 +1083.0,2.7835364679978554 +1084.0,2.861915686868455 +1085.0,2.5660751685849985 +1086.0,3.880385121808782 +1087.0,3.187365654701947 +1088.0,3.745424681587191 +1089.0,2.7837009875037375 +1090.0,2.4748816956360247 +1091.0,2.8884265834432004 +1092.0,2.4976097268579642 +1093.0,3.4062148103201535 +1094.0,2.552508133946703 +1095.0,2.90737264036435 +1096.0,3.0885678552964464 +1097.0,3.093679426294841 +1098.0,3.0165702752629606 +1099.0,3.5702946953826316 +1100.0,2.9727147924951773 +1101.0,3.3271446987875923 +1102.0,2.493888531957886 +1103.0,2.4080276376391536 +1104.0,2.631664816113345 +1105.0,2.7221191786527674 +1106.0,2.7505049786606683 +1107.0,3.1191906846191597 +1108.0,2.980588822364094 +1109.0,3.1435272618110783 +1110.0,3.1753850065335123 +1111.0,3.2255475572774226 +1112.0,2.598830533669774 +1113.0,2.6041201603601047 +1114.0,2.413931213229231 +1115.0,3.1833807744956104 +1116.0,2.786050759772592 +1117.0,2.526335547983725 +1118.0,3.069192160602257 +1119.0,4.596110845954279 +1120.0,3.996367015518124 +1121.0,2.499554915504142 +1122.0,3.2594533136061044 +1123.0,2.9958170126795975 +1124.0,2.812468870652169 +1125.0,2.581724441314683 +1126.0,3.5443385114223354 +1127.0,2.5027680200171214 +1128.0,2.5847623167972853 +1129.0,2.495763521423091 +1130.0,2.8423191666288252 +1131.0,2.6011515573855952 +1132.0,2.67659212269007 +1133.0,2.4678979841544515 +1134.0,2.5978031769595713 +1135.0,2.885825817815227 +1136.0,2.850269989378754 +1137.0,2.400204394473209 +1138.0,3.1549683132206594 +1139.0,3.498301746120002 +1140.0,2.705675963635391 +1141.0,2.4550554012527592 +1142.0,2.4486157126757457 +1143.0,2.694606648267098 +1144.0,2.5650280238534124 +1145.0,2.9952868574383045 +1146.0,2.6630851339259425 +1147.0,2.726642125129404 +1148.0,2.5850607258008953 +1149.0,2.653354488238456 +1150.0,2.7190659422136347 +1151.0,2.6156792959899837 +1152.0,3.2283070302318038 +1153.0,2.818660303480795 +1154.0,2.495669331645712 +1155.0,2.838792104406384 +1156.0,2.831515477794583 +1157.0,3.6833607141746167 +1158.0,2.4247804241905055 +1159.0,2.845223083422103 +1160.0,2.8157982775935926 +1161.0,2.991550110796782 +1162.0,2.931573413906844 +1163.0,3.1530172550911804 +1164.0,2.4718061681485786 +1165.0,2.776248767935365 +1166.0,2.430954498921324 +1167.0,4.831997313769335 +1168.0,2.7130494397095832 +1169.0,2.6379630462509613 +1170.0,2.519945566531506 +1171.0,2.588914260410057 +1172.0,3.4279100869637866 +1173.0,3.0562432757266533 +1174.0,2.7803525437003747 +1175.0,2.671278175676708 +1176.0,2.5607118442231522 +1177.0,3.0173529357473274 +1178.0,2.9377646201490695 +1179.0,2.463247049143815 +1180.0,3.3325175725069327 +1181.0,2.487211734679645 +1182.0,2.4564298611553603 +1183.0,2.4699899595895896 +1184.0,3.275383812960763 +1185.0,3.032911489256735 +1186.0,2.4262336854673268 +1187.0,2.828535950715742 +1188.0,3.4883340433484906 +1189.0,3.2550268999870013 +1190.0,3.7217180403062944 +1191.0,2.4735996913642233 +1192.0,2.845624185502575 +1193.0,3.1133385169286654 +1194.0,3.518190389848678 +1195.0,3.429753081794672 +1196.0,2.7394243453954585 +1197.0,2.4458945787210125 +1198.0,2.9589519993213598 +1199.0,2.46790903551287 +1200.0,3.6715564276881656 +1201.0,2.5860314877847905 +1202.0,3.080929963839718 +1203.0,2.419482133229199 +1204.0,2.4711327936550864 +1205.0,2.9589524634776243 +1206.0,3.870208415733261 +1207.0,2.829767321461742 +1208.0,4.040866023066293 +1209.0,2.6910722335785757 +1210.0,2.8129552722921916 +1211.0,2.467259130145249 +1212.0,2.4522058023701994 +1213.0,2.9171517330930583 +1214.0,2.610436922310177 +1215.0,2.4535932183658793 +1216.0,2.7308794003372583 +1217.0,2.5091168402500252 +1218.0,2.5630197912743324 +1219.0,4.000525504386597 +1220.0,2.452827821437374 +1221.0,2.43168131731165 +1222.0,2.5772214328243916 +1223.0,2.428587362944932 +1224.0,2.431878495877997 +1225.0,2.4935957578433166 +1226.0,2.5238340554708274 +1227.0,2.7316026412854466 +1228.0,2.8366360170753993 +1229.0,2.9740321705465225 +1230.0,2.54315507371917 +1231.0,2.9497996931363657 +1232.0,2.4314492327753476 +1233.0,2.7197207511694397 +1234.0,2.4116573897360136 +1235.0,2.7973570913249977 +1236.0,2.541712156338822 +1237.0,2.7274731540673995 +1238.0,3.6463000737825975 +1239.0,3.918405417438591 +1240.0,3.2447503981307873 +1241.0,2.863916088101259 +1242.0,2.7423796190618335 +1243.0,2.71414510969372 +1244.0,2.726055970085129 +1245.0,2.948508226469865 +1246.0,2.524405931483509 +1247.0,2.5643326045408794 +1248.0,3.5056249262210546 +1249.0,3.2186042239333528 +1250.0,3.0686914697438636 +1251.0,2.7059432089953908 +1252.0,2.98105324140917 +1253.0,2.672877061884139 +1254.0,2.9304668870026593 +1255.0,2.491753459547754 +1256.0,4.415792703687298 +1257.0,2.7921744090325684 +1258.0,3.243377752800254 +1259.0,3.456307489172696 +1260.0,2.5666255587432225 +1261.0,2.711156479543941 +1262.0,3.1947034614662915 +1263.0,4.535735688145261 +1264.0,3.1073346858814803 +1265.0,2.921113438198309 +1266.0,2.9394866749791886 +1267.0,2.747664296386664 +1268.0,3.5279123388204403 +1269.0,2.6821109466119926 +1270.0,2.712260845417836 +1271.0,2.8091344861355125 +1272.0,2.5726602504911043 +1273.0,3.0999734783564508 +1274.0,2.7829295564719394 +1275.0,2.5999180509360142 +1276.0,2.4701864151665003 +1277.0,2.6311721471746004 +1278.0,2.5997035383109606 +1279.0,2.437131667343413 +1280.0,3.3115209326740183 +1281.0,2.930685630678547 +1282.0,3.598937619783347 +1283.0,3.0564740890909703 +1284.0,2.4099377677457063 +1285.0,2.4979712080419754 +1286.0,2.7893852981557083 +1287.0,3.174761018800952 +1288.0,2.816970670242723 +1289.0,2.5386894928262107 +1290.0,4.203405375510405 +1291.0,3.0184364443249687 +1292.0,2.6181115042833025 +1293.0,2.416607266969451 +1294.0,2.4236993903017097 +1295.0,3.194518780970155 +1296.0,2.63442795231585 +1297.0,2.790256126141119 +1298.0,2.5596580620778724 +1299.0,3.028252491862771 +1300.0,2.6186050389701965 +1301.0,2.566361845503352 +1302.0,3.0773315828137005 +1303.0,2.7240660696175083 +1304.0,3.1217655131081417 +1305.0,2.707805365702917 +1306.0,2.6103483306794066 +1307.0,2.5058534722444614 +1308.0,4.330306082307417 +1309.0,2.7018466652459616 +1310.0,2.6293383789210956 +1311.0,3.6771660792559517 +1312.0,2.9857421541936655 +1313.0,3.3634675167139294 +1314.0,2.6440273782055366 +1315.0,2.6290689957324203 +1316.0,2.582903976996149 +1317.0,2.5434150436043543 +1318.0,4.449449967611846 +1319.0,2.40034342136658 +1320.0,3.0094494517079218 +1321.0,2.6230710467211327 +1322.0,2.7280460580767034 +1323.0,2.6161839105238873 +1324.0,2.441052015926745 +1325.0,2.658447138733842 +1326.0,3.072638031510028 +1327.0,2.5562543737964507 +1328.0,2.799988814113493 +1329.0,2.7470431797996633 +1330.0,2.5337302074545422 +1331.0,3.4043201846353623 +1332.0,2.796050853409127 +1333.0,3.030701495359597 +1334.0,2.4649212772242217 +1335.0,3.4072338686274026 +1336.0,2.4363553466071224 +1337.0,2.8984166311871933 +1338.0,2.5778052361960486 +1339.0,4.072848318338584 +1340.0,2.515821266299299 +1341.0,3.1863321774521953 +1342.0,3.8874316091092367 +1343.0,2.5405904094781118 +1344.0,2.5755296481758703 +1345.0,2.434886478770655 +1346.0,2.460840666524503 +1347.0,2.463860364765715 +1348.0,2.5238218869554636 +1349.0,4.126912192440595 +1350.0,2.4509821185444065 +1351.0,2.6028923533585773 +1352.0,3.2721611324924464 +1353.0,2.6325845529355067 +1354.0,2.5581410763683117 +1355.0,2.6373973027737727 +1356.0,3.713136612390568 +1357.0,2.7264242847053333 +1358.0,3.0223191119886312 +1359.0,2.965757174429291 +1360.0,2.895257126052559 +1361.0,2.752379852851238 +1362.0,2.480812214807022 +1363.0,3.052092916210416 +1364.0,2.6361130900498364 +1365.0,3.57065480980301 +1366.0,3.2867344627071935 +1367.0,3.675163499279163 +1368.0,2.6389032157475976 +1369.0,2.440565057305572 +1370.0,2.5563912918747027 +1371.0,2.733539644305896 +1372.0,2.6281326735258235 +1373.0,2.982328250281339 +1374.0,2.4148177592021103 +1375.0,2.459601908593139 +1376.0,2.5427431381710974 +1377.0,2.4511073782161685 +1378.0,2.6563758960807786 +1379.0,2.5114144826737057 +1380.0,2.843607480032599 +1381.0,2.7538789145482507 +1382.0,2.450817050252027 +1383.0,2.6511390435276176 +1384.0,2.4528672445335276 +1385.0,3.2945487010213443 +1386.0,2.5363811281506563 +1387.0,2.7078247112847724 +1388.0,2.8374033889073917 +1389.0,2.6119278824190446 +1390.0,2.512697231470896 +1391.0,2.504840254843251 +1392.0,3.4372199118418933 +1393.0,3.7262844246739255 +1394.0,2.6744446761328495 +1395.0,2.502280435863302 +1396.0,2.4839902937820977 +1397.0,2.587361945365699 +1398.0,2.6280828789957176 +1399.0,2.756316913256975 diff --git a/tests/fixtures/catalogs/case_015_background_high_1400d.csv b/tests/fixtures/catalogs/case_015_background_high_1400d.csv new file mode 100644 index 0000000..62e8751 --- /dev/null +++ b/tests/fixtures/catalogs/case_015_background_high_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,3.964250868757508 +1.0,3.8716424390227107 +2.0,3.32735213601944 +3.0,4.18275267292844 +4.0,3.5772098792716 +5.0,3.9072037913706144 +6.0,3.0813630490917885 +7.0,3.0536333992868974 +8.0,3.8155786794554314 +9.0,4.3650336293832455 +10.0,3.5215365234073444 +11.0,3.709519238714517 +12.0,3.2252841688181997 +13.0,3.3436936616534387 +14.0,3.1693594836411774 +15.0,3.172174530573049 +16.0,3.2570609895154936 +17.0,3.332877232534594 +18.0,3.853490113581883 +19.0,3.0273095024844294 +20.0,3.08804881050734 +21.0,3.1753750412510926 +22.0,3.8045364042503853 +23.0,5.454465698189707 +24.0,3.777728261239411 +25.0,3.345125435864623 +26.0,3.521793664344104 +27.0,3.067726999696334 +28.0,3.0098482152935158 +29.0,3.9814366575658613 +30.0,3.394977842528297 +31.0,3.2135669326165415 +32.0,3.6291999306685936 +33.0,3.8831400299175294 +34.0,3.13343644434938 +35.0,3.498046378725177 +36.0,3.032122555553204 +37.0,3.72326210732659 +38.0,3.0723137753704193 +39.0,3.851670278599792 +40.0,3.1151885307027243 +41.0,3.218498110503324 +42.0,3.3366204809637807 +43.0,3.007520492070223 +44.0,4.247623787687864 +45.0,3.0951278484432168 +46.0,3.1891068699824032 +47.0,3.3359603143042156 +48.0,3.1158735535123587 +49.0,4.563238433045619 +50.0,3.795713982432055 +51.0,3.037989130617824 +52.0,4.926852607241234 +53.0,3.5928118019294604 +54.0,3.6547893608009154 +55.0,3.0463534463510453 +56.0,3.467524599846662 +57.0,4.138305319520919 +58.0,3.02506842969185 +59.0,3.401415023651499 +60.0,3.2267599143526042 +61.0,3.3810499905375284 +62.0,3.4142451496437505 +63.0,3.4096187282209804 +64.0,3.5595395540017085 +65.0,3.653125329625224 +66.0,3.1419989438121685 +67.0,3.036260423640505 +68.0,3.038686845868309 +69.0,3.3998297546930383 +70.0,3.6564581186124387 +71.0,3.2527947331641607 +72.0,3.70560996379724 +73.0,3.6483332531495147 +74.0,3.120811614971205 +75.0,3.6700932030899125 +76.0,3.136189159319792 +77.0,3.346054030853853 +78.0,3.936216536903297 +79.0,3.999702136743043 +80.0,3.0531713427964746 +81.0,3.0194791554298694 +82.0,3.1350481608113636 +83.0,3.2154944467943896 +84.0,3.8271319535875667 +85.0,3.218980241875158 +86.0,3.5209846493839834 +87.0,3.1761512643682037 +88.0,4.182936170018532 +89.0,3.2382668031476527 +90.0,3.882638908995732 +91.0,3.402571411100753 +92.0,3.9677196611772487 +93.0,3.058862589382006 +94.0,3.2191361593128627 +95.0,4.269605413470012 +96.0,3.7817036775089075 +97.0,4.207837817864165 +98.0,3.241368812609973 +99.0,3.6935392867082912 +100.0,3.777372053012791 +101.0,3.622836437881382 +102.0,3.9995927734840615 +103.0,3.815485996232325 +104.0,3.569075558008012 +105.0,3.0255632664154377 +106.0,4.507567216186145 +107.0,3.1127878872543566 +108.0,3.0626085014216233 +109.0,3.4390990762191427 +110.0,3.5163901300368803 +111.0,3.3758682658379078 +112.0,3.6538847920747033 +113.0,3.2722335885265075 +114.0,3.0813930735620914 +115.0,3.3187528599026828 +116.0,4.073770246265986 +117.0,4.177642203129638 +118.0,3.6412025935561347 +119.0,3.0637606235162043 +120.0,3.997625919886146 +121.0,3.584551361130123 +122.0,3.0236957845082624 +123.0,3.4064934198337316 +124.0,3.483124316133801 +125.0,3.4031107667044793 +126.0,3.6190834929897444 +127.0,3.0016624672756884 +128.0,3.53953581786112 +129.0,3.020236907095285 +130.0,3.507320594771924 +131.0,3.2529297597192808 +132.0,3.242711465031206 +133.0,3.0941673038925033 +134.0,3.0150746040845515 +135.0,3.0799526040067673 +136.0,5.295436942348975 +137.0,3.197485397339594 +138.0,3.208007646093549 +139.0,3.802954178985146 +140.0,3.072990217725211 +141.0,3.0284474757752826 +142.0,4.860648244223984 +143.0,3.6907039599096083 +144.0,3.3979674912408666 +145.0,3.0370732406586227 +146.0,3.49650978345625 +147.0,8.3752480808513 +148.0,3.7456994028864665 +149.0,3.332736215511059 +150.0,3.794826254051131 +151.0,4.680582705318649 +152.0,3.3341378530391244 +153.0,3.127819391435797 +154.0,3.1997528873474743 +155.0,3.905704294604102 +156.0,4.5690060337513305 +157.0,4.677924807792618 +158.0,3.504284021378511 +159.0,3.3706807215109693 +160.0,4.497749384684092 +161.0,3.6280074498346564 +162.0,3.221262255803889 +163.0,3.197592087091247 +164.0,4.749031131003378 +165.0,4.358709820640523 +166.0,3.310823042563206 +167.0,4.183988350824774 +168.0,3.095026740118154 +169.0,3.3011339157053765 +170.0,3.0883272207725954 +171.0,3.047561612193452 +172.0,3.030517218285525 +173.0,3.277576869948136 +174.0,3.6155581249359803 +175.0,3.1536816717722083 +176.0,4.143469010053707 +177.0,4.214419339861145 +178.0,3.2462438845407857 +179.0,3.2625130034233614 +180.0,3.046903321749958 +181.0,3.9950478621671914 +182.0,3.221328085297574 +183.0,5.036711626222461 +184.0,3.145375395319954 +185.0,3.0193987020404993 +186.0,3.0239764694861324 +187.0,4.058457931127671 +188.0,3.4282407007850364 +189.0,3.6553596574446576 +190.0,3.087828978348015 +191.0,3.8768596883736413 +192.0,3.0160086103264785 +193.0,3.130305159118152 +194.0,3.6480026958128615 +195.0,3.27192295817353 +196.0,3.3258053565547563 +197.0,3.087410830659808 +198.0,3.371606482134302 +199.0,3.953474971980861 +200.0,3.1552312056059115 +201.0,3.31545336944255 +202.0,3.0282447985460568 +203.0,3.3463202981596423 +204.0,3.2840651188801284 +205.0,3.061973097582196 +206.0,3.0180870598419034 +207.0,3.5163764843868064 +208.0,4.741134304530021 +209.0,3.30548344359035 +210.0,3.3009950003462714 +211.0,3.6036578605923335 +212.0,3.052725642029103 +213.0,4.737767946508051 +214.0,3.055065816728497 +215.0,3.4612575670234693 +216.0,3.390165266076685 +217.0,3.0123052507398214 +218.0,3.1553186326661065 +219.0,3.603412522025434 +220.0,3.1294682899155033 +221.0,3.0289934061112436 +222.0,3.1839738203114543 +223.0,3.085366784516911 +224.0,3.1912349771496085 +225.0,3.046719855670294 +226.0,5.301847788989426 +227.0,3.037062874481567 +228.0,3.3415172289162265 +229.0,3.60280929398878 +230.0,3.9786584936567464 +231.0,3.1027266622373575 +232.0,3.1844611993990735 +233.0,3.028582396357906 +234.0,3.2040867555074253 +235.0,3.7793339229283553 +236.0,3.224131688024131 +237.0,3.349197738603115 +238.0,4.16613635628463 +239.0,3.0719472096238527 +240.0,3.2809041213635193 +241.0,3.07015453826372 +242.0,3.3393028581605044 +243.0,3.157900793677028 +244.0,3.622694455338855 +245.0,3.553243840614577 +246.0,3.3811224393187995 +247.0,4.321932137054762 +248.0,3.9575167497519583 +249.0,3.4737602450607636 +250.0,3.637621316365948 +251.0,3.764859561154203 +252.0,3.014416143814655 +253.0,3.020509569762527 +254.0,3.1517783871575125 +255.0,3.4463130872339347 +256.0,3.4265030993080403 +257.0,3.0742875718599625 +258.0,3.088402609728119 +259.0,3.46841707527238 +260.0,3.351535089033516 +261.0,3.021307196056985 +262.0,3.2476850365413785 +263.0,3.5041824975074363 +264.0,3.4730326848663484 +265.0,4.996584511722637 +266.0,3.270863211934417 +267.0,4.44434719621447 +268.0,3.4096872079498564 +269.0,3.217019048167659 +270.0,3.055199011560278 +271.0,3.020479422521377 +272.0,3.093675851153285 +273.0,3.029482557441502 +274.0,3.4578534608435905 +275.0,3.5420893999885026 +276.0,3.1273526372524527 +277.0,3.114208575837365 +278.0,3.3348523717985015 +279.0,3.931803603099843 +280.0,3.0313016120615233 +281.0,3.319850741477145 +282.0,3.1870996603488377 +283.0,3.32565532032786 +284.0,3.1336811047196633 +285.0,3.199963185202512 +286.0,3.346560953414636 +287.0,3.6911332016104907 +288.0,3.1013377902201418 +289.0,3.6145331414243302 +290.0,5.078152337302546 +291.0,3.229444131312004 +292.0,3.0774670367439287 +293.0,3.648317875325533 +294.0,3.090211801499153 +295.0,3.2009787536978176 +296.0,3.368836743409995 +297.0,3.8784402666067477 +298.0,3.6735685353506042 +299.0,3.662808063954791 +300.0,3.6599723475086163 +301.0,3.0096701333121945 +302.0,3.2887645414354902 +303.0,3.209400806424697 +304.0,3.3881776338376275 +305.0,3.409477252640076 +306.0,3.2013631337177526 +307.0,4.139892172115623 +308.0,3.4853224543995105 +309.0,3.2824388181832744 +310.0,4.159046082492546 +311.0,3.494050473958288 +312.0,3.7993685605648517 +313.0,3.2553215862800653 +314.0,4.358195590787356 +315.0,3.480273294291076 +316.0,3.0421872940606494 +317.0,3.252914808787705 +318.0,3.756779929286187 +319.0,3.7881919551402072 +320.0,4.3435549757956124 +321.0,3.3131320549024528 +322.0,3.979109423448821 +323.0,4.476119185286499 +324.0,3.2531224211187695 +325.0,4.530078061081076 +326.0,3.7720605211169778 +327.0,3.2771633689938096 +328.0,4.209771271022249 +329.0,3.0930497986962124 +330.0,3.082528697834726 +331.0,3.1278297037802085 +332.0,3.43048651244711 +333.0,3.4139221216642626 +334.0,3.3133000954229175 +335.0,3.98370865764035 +336.0,3.0226415527850543 +337.0,3.7441006717761445 +338.0,3.2561707799756627 +339.0,5.534189712553548 +340.0,3.3758742217821363 +341.0,3.7458638684809427 +342.0,3.2621335520648964 +343.0,3.06475418746251 +344.0,4.025386189680539 +345.0,3.497720696374628 +346.0,3.8723148616436203 +347.0,4.3011993762143925 +348.0,3.1319319368429976 +349.0,3.856928153546977 +350.0,3.5789033858752033 +351.0,3.2109047067232943 +352.0,3.7309438200026483 +353.0,3.819464159681896 +354.0,4.015143227948819 +355.0,3.0967349802921715 +356.0,3.3905992742541105 +357.0,3.9910670731603526 +358.0,4.3462753145823445 +359.0,3.256896310833353 +360.0,3.829186707600721 +361.0,3.0388865470612116 +362.0,4.213194538563793 +363.0,3.628507364346398 +364.0,3.4026518717914334 +365.0,3.0139902428222007 +366.0,3.1804794775970953 +367.0,3.055720056530519 +368.0,3.6745730226979667 +369.0,3.964092683420993 +370.0,3.302364708965271 +371.0,3.349592859978764 +372.0,3.136807638324188 +373.0,3.0797617564544373 +374.0,3.1001267954004 +375.0,3.3320875378726704 +376.0,4.593513441480363 +377.0,3.2266919947697406 +378.0,3.002679138709309 +379.0,3.5808452257310717 +380.0,3.0235983903762143 +381.0,3.0075488124701613 +382.0,3.3488144450275326 +383.0,3.2907285945176863 +384.0,3.4796380410793435 +385.0,3.959287984401389 +386.0,3.8106128058705555 +387.0,3.234911333408735 +388.0,3.1263372344061624 +389.0,4.502619869873519 +390.0,3.198015056864093 +391.0,3.4010840544615117 +392.0,3.4799262506448057 +393.0,4.002918455460183 +394.0,3.130826822159108 +395.0,3.3570594264400397 +396.0,3.505030043664977 +397.0,3.453251518538456 +398.0,3.556341528616497 +399.0,3.3636480372520827 +400.0,3.256829969657568 +401.0,3.1851016805900745 +402.0,3.212062805640237 +403.0,3.5718512249097314 +404.0,3.3342157944756092 +405.0,3.068146244404618 +406.0,3.4258875026989477 +407.0,3.316220009318379 +408.0,4.0630027347774975 +409.0,4.2461235652947575 +410.0,3.2198605342337996 +411.0,3.0268140034239073 +412.0,3.3785575285980984 +413.0,3.0759895929584067 +414.0,3.002716085407099 +415.0,3.626929046960401 +416.0,3.594678754534778 +417.0,4.111333562846206 +418.0,3.815693337065091 +419.0,3.2845338534741186 +420.0,3.001405078803291 +421.0,4.701922847062335 +422.0,3.097643882693887 +423.0,3.5789527764599756 +424.0,3.99162587690801 +425.0,3.214259958826106 +426.0,3.5345346440457828 +427.0,3.178759857185168 +428.0,3.10155533317516 +429.0,3.5525751144256272 +430.0,3.2994385445979484 +431.0,3.259336366583556 +432.0,3.148947902252874 +433.0,3.5151432533279388 +434.0,3.231813191051556 +435.0,3.407823027370663 +436.0,3.0893124682126425 +437.0,3.0504889058994835 +438.0,3.300820774941493 +439.0,3.169951265313838 +440.0,3.0156048171107774 +441.0,4.011060676215671 +442.0,3.8204135448387806 +443.0,3.2527942479765604 +444.0,5.609356051746225 +445.0,3.929621231717678 +446.0,3.407090764118457 +447.0,3.3743985273375356 +448.0,3.5157963615593286 +449.0,4.436755349173571 +450.0,3.2175967495128424 +451.0,3.2132253571864773 +452.0,3.9548709925946888 +453.0,3.0535762881809845 +454.0,4.299519517026097 +455.0,3.3017097193381995 +456.0,3.615079150352728 +457.0,3.7758347787632247 +458.0,3.0324604233346792 +459.0,3.3027944775560747 +460.0,3.070653005406673 +461.0,4.957906070452468 +462.0,4.0391968432632845 +463.0,3.185060298810927 +464.0,3.096674034098335 +465.0,3.234066409381355 +466.0,3.281341532603391 +467.0,3.170905198382307 +468.0,3.413784645594724 +469.0,3.135073898571407 +470.0,3.0558228446495677 +471.0,3.5030555413479023 +472.0,3.6340254772318255 +473.0,3.4916744030914226 +474.0,3.983508913405107 +475.0,3.5408220562467587 +476.0,4.2597532810197265 +477.0,3.8877072632487026 +478.0,3.0645838790821816 +479.0,3.7662458021860985 +480.0,3.322288176962115 +481.0,3.897649692153694 +482.0,3.0032876162896036 +483.0,3.3254961364645506 +484.0,3.080880242719829 +485.0,3.648112955833529 +486.0,3.6427745981406994 +487.0,3.171886290403493 +488.0,4.336174359628695 +489.0,3.5753852709798344 +490.0,3.5297197328193355 +491.0,3.2529682451886175 +492.0,4.194512593407917 +493.0,3.284972815645036 +494.0,3.2375261166969493 +495.0,3.7667917717957797 +496.0,3.1022467818447805 +497.0,3.219862966860537 +498.0,3.6421100970492986 +499.0,3.3491397635649522 +500.0,3.329564632266252 +501.0,3.2433646143805506 +502.0,3.428012406694262 +503.0,3.17197144666291 +504.0,3.171753855160359 +505.0,3.544024156507747 +506.0,3.0635688487642305 +507.0,4.858220463593511 +508.0,3.1987371798300086 +509.0,3.3757032842670522 +510.0,3.647370997924715 +511.0,3.486991237624384 +512.0,3.3235428029839067 +513.0,3.0049029672954033 +514.0,3.4858209201857204 +515.0,3.6762462387112245 +516.0,5.133860787011955 +517.0,3.1859770553911546 +518.0,3.9674223929295156 +519.0,3.94670156403345 +520.0,3.2716634069296444 +521.0,3.397716562840898 +522.0,4.698031383030498 +523.0,3.4414852606549085 +524.0,3.608170282574269 +525.0,3.9053129930349857 +526.0,3.678845724081688 +527.0,3.197162220018486 +528.0,3.374102331890918 +529.0,3.910380585141379 +530.0,3.0348988090261106 +531.0,3.8942205007890087 +532.0,4.112231571844947 +533.0,3.069645248626861 +534.0,3.114272844231231 +535.0,3.6139442643154265 +536.0,4.179056016412819 +537.0,3.06467738006572 +538.0,3.685628279174666 +539.0,3.1191824202729426 +540.0,3.6132025655543196 +541.0,3.7613570834756693 +542.0,3.1132681810571405 +543.0,3.5395504196935232 +544.0,3.242222837107039 +545.0,3.723425432019437 +546.0,3.9765103380460416 +547.0,4.213536765444566 +548.0,3.0350666074728094 +549.0,3.071111929469018 +550.0,3.1251725794052403 +551.0,4.00677104643976 +552.0,3.2307067223782893 +553.0,3.131680430481609 +554.0,3.0111346544167388 +555.0,4.899770553337949 +556.0,3.050036158157805 +557.0,3.3781571631242473 +558.0,3.1740171032731044 +559.0,3.074908172206967 +560.0,3.234712338209845 +561.0,3.006275599700778 +562.0,3.8421978540071944 +563.0,4.189859217824399 +564.0,3.21830283711273 +565.0,4.905564394735059 +566.0,3.24862383722017 +567.0,3.5835259085085767 +568.0,4.56062037489348 +569.0,3.0990920688867964 +570.0,4.440101247827282 +571.0,4.051951453417201 +572.0,3.1725356192452883 +573.0,3.118597351022614 +574.0,3.706132254219149 +575.0,3.0343777343570544 +576.0,3.958205691080962 +577.0,3.4048447268230477 +578.0,4.163819313880334 +579.0,3.8958191874992796 +580.0,3.0230788115753593 +581.0,3.372679951594509 +582.0,3.933139065311912 +583.0,3.3444984257827555 +584.0,3.016266765347365 +585.0,3.7953406862174384 +586.0,3.21158169383512 +587.0,3.987115282588986 +588.0,3.4824986374229865 +589.0,3.570181945892475 +590.0,3.3332724108332132 +591.0,3.2731730540392454 +592.0,3.852713278392586 +593.0,3.4458758651801644 +594.0,3.2478504559060495 +595.0,3.859026586953367 +596.0,3.1336467178195786 +597.0,3.5262887307754283 +598.0,4.798642092216241 +599.0,3.2442840124487295 +600.0,3.405293498528349 +601.0,3.5889065175526955 +602.0,3.0725928593485183 +603.0,3.815948634693871 +604.0,3.625825873424827 +605.0,4.016730044814794 +606.0,3.576274700915244 +607.0,3.5505817156787507 +608.0,3.1638743654704764 +609.0,3.4023457616517465 +610.0,3.08920262008704 +611.0,3.677679858866161 +612.0,3.008075762683137 +613.0,3.18890458826241 +614.0,3.0061766994057146 +615.0,3.135261817823049 +616.0,3.269421888686497 +617.0,4.531464438409434 +618.0,3.4609405757211475 +619.0,3.1768791565102803 +620.0,3.3896068196275313 +621.0,3.705589826078749 +622.0,3.035955593312763 +623.0,3.86305396253895 +624.0,3.875055312678704 +625.0,3.56251824496237 +626.0,4.395250062265914 +627.0,4.348259554704349 +628.0,3.1276120369971188 +629.0,3.126569039199179 +630.0,3.464405335634729 +631.0,3.624668161221964 +632.0,3.1973540357412578 +633.0,3.570648895159362 +634.0,3.1237316951536482 +635.0,3.3200907116284735 +636.0,3.138516745493303 +637.0,3.060887830522269 +638.0,3.071744654499768 +639.0,4.094277501406094 +640.0,3.436326582503687 +641.0,3.396185061478963 +642.0,3.087764335537247 +643.0,5.091846001821063 +644.0,3.3287338390116 +645.0,3.7910204451790817 +646.0,3.028325159133961 +647.0,4.125192650768529 +648.0,3.121234643176787 +649.0,3.0980819768061383 +650.0,3.6332549172397446 +651.0,3.472374202530809 +652.0,3.1962158362248902 +653.0,3.0843780820544704 +654.0,3.0010389496595904 +655.0,3.021394015219843 +656.0,3.0054487384609847 +657.0,3.842255964462363 +658.0,3.0735055791720147 +659.0,3.3934555237783433 +660.0,4.204289952856613 +661.0,3.6988799141185345 +662.0,3.1359547673670685 +663.0,3.9701683218916566 +664.0,3.1752513773709476 +665.0,4.169476475325405 +666.0,3.3196877807640854 +667.0,3.343175305797349 +668.0,3.4661629429911067 +669.0,3.037614962701617 +670.0,3.0508998518709265 +671.0,3.6153393722643083 +672.0,3.202911197174607 +673.0,3.6178503962784427 +674.0,4.884700687887046 +675.0,3.279025375338798 +676.0,3.0154444303055463 +677.0,3.0122735122620568 +678.0,3.1265944944257393 +679.0,3.2445880457524066 +680.0,3.003366910888715 +681.0,3.2935533357635025 +682.0,4.148802421823413 +683.0,3.0689600957183267 +684.0,3.026347612497716 +685.0,3.225344386018745 +686.0,3.071867286906938 +687.0,3.197756708794165 +688.0,3.174713854003564 +689.0,3.1132767119292986 +690.0,3.0350352274950447 +691.0,3.385559993766043 +692.0,3.771119185931745 +693.0,3.0445163348231703 +694.0,4.058881200095828 +695.0,3.2005700299141107 +696.0,3.2605926854969542 +697.0,3.0727602904422944 +698.0,3.2298858041192196 +699.0,3.492928343635077 +700.0,3.1118476123127605 +701.0,3.00683560620753 +702.0,3.323823429373183 +703.0,3.5401637394936603 +704.0,3.152163796240968 +705.0,3.0200192327902875 +706.0,5.132093112018307 +707.0,3.0089984764474114 +708.0,3.084489460106491 +709.0,3.4440517931727452 +710.0,3.4005814214664913 +711.0,3.524790442092984 +712.0,3.0558694098357453 +713.0,3.2800561884133415 +714.0,3.5414640609285453 +715.0,3.356925448036395 +716.0,3.1890455021940567 +717.0,4.349214844405137 +718.0,3.8432420412738333 +719.0,3.5151674327779845 +720.0,3.4444405767723643 +721.0,3.00974032441966 +722.0,3.041931171195876 +723.0,3.465784486763237 +724.0,4.270448333321654 +725.0,4.93587640330381 +726.0,3.878602994299375 +727.0,3.243136262214031 +728.0,3.7282720163238814 +729.0,3.0174652826955026 +730.0,3.9436683401404853 +731.0,4.512017454430799 +732.0,4.3205712471685285 +733.0,3.0520494671202503 +734.0,3.380718141283642 +735.0,3.305236194671076 +736.0,3.002865232419829 +737.0,3.3023754992333196 +738.0,4.12083609565761 +739.0,3.260659757262761 +740.0,3.466123329764768 +741.0,3.6698263478483906 +742.0,3.7966798774023056 +743.0,3.1905660972586194 +744.0,4.5575531066538835 +745.0,4.103831810744361 +746.0,3.056710885016799 +747.0,3.106568259291926 +748.0,3.098475270847437 +749.0,3.1505218670099246 +750.0,5.011813123078168 +751.0,3.432551628051947 +752.0,3.291684138702491 +753.0,3.1856244019331927 +754.0,3.818163183082245 +755.0,3.0330499116233085 +756.0,3.6378171526582053 +757.0,3.0271485296972 +758.0,4.334347212135965 +759.0,4.533232691781234 +760.0,3.145753601931182 +761.0,3.891255986273843 +762.0,3.3828920629953707 +763.0,5.096181650564891 +764.0,3.0564237186799588 +765.0,3.3479704949094082 +766.0,3.168106256154664 +767.0,3.1433795292569884 +768.0,3.5304960105235765 +769.0,4.642668199728957 +770.0,4.837641743125763 +771.0,3.402243791939723 +772.0,3.109182794766388 +773.0,3.157652703336028 +774.0,3.041057769890387 +775.0,3.109925198728546 +776.0,3.00134483186031 +777.0,3.1975935259277843 +778.0,3.1471538855336103 +779.0,3.6387401461746283 +780.0,3.9566798762493542 +781.0,3.453929068536672 +782.0,4.1700602739585015 +783.0,3.0892776793900585 +784.0,3.122082377287446 +785.0,3.744224578952313 +786.0,3.1308244830382037 +787.0,3.5821341036793863 +788.0,3.274731783728496 +789.0,3.2423261757203043 +790.0,3.0965066161955312 +791.0,3.048634183554693 +792.0,3.0098360779039517 +793.0,3.459179534815603 +794.0,3.5410336127860376 +795.0,3.399041722836606 +796.0,3.3168381266093077 +797.0,3.743768470655828 +798.0,3.388021711161547 +799.0,3.0622169784208952 +800.0,3.164981981180702 +801.0,3.1624784048208685 +802.0,3.1115768219833617 +803.0,3.696049766943113 +804.0,5.20926618742358 +805.0,3.7435736519317313 +806.0,3.427028688111836 +807.0,3.789571058997967 +808.0,3.2472161652996174 +809.0,4.1145814177141435 +810.0,3.1653918077291565 +811.0,4.371797180384735 +812.0,3.086796974854992 +813.0,3.441764599734229 +814.0,3.6171251903719983 +815.0,3.3257325684067682 +816.0,3.00434537451712 +817.0,3.168649912154965 +818.0,3.177193827418786 +819.0,3.9291967396578493 +820.0,4.869777602350557 +821.0,3.5455952680767577 +822.0,3.222156475751797 +823.0,3.569314548653681 +824.0,3.5962013983972216 +825.0,4.185118716082346 +826.0,4.1884574406526855 +827.0,3.0133893581869704 +828.0,3.01623618102705 +829.0,3.1672975557739225 +830.0,3.0172945050367055 +831.0,3.4923693404625946 +832.0,3.097292089561629 +833.0,3.021862631878547 +834.0,3.8076975685842984 +835.0,3.5338005357456828 +836.0,5.745476409126155 +837.0,6.7954534223407395 +838.0,3.629190143108755 +839.0,4.759377170323225 +840.0,3.6613181120084093 +841.0,3.0500388498921542 +842.0,3.8650817770702446 +843.0,3.4394032732008055 +844.0,3.050700034363634 +845.0,3.321883909013475 +846.0,3.0237783385104473 +847.0,3.36022485548986 +848.0,4.918110000836256 +849.0,3.16303094348036 +850.0,3.1556509606862884 +851.0,3.487283526598438 +852.0,3.2081883497474193 +853.0,3.022112582905993 +854.0,3.002278832116231 +855.0,3.303579599951961 +856.0,3.5551291138001533 +857.0,3.451602163992693 +858.0,3.8934043274269325 +859.0,3.871869699834873 +860.0,5.311438660878046 +861.0,3.653015256810402 +862.0,3.2298141567810057 +863.0,3.4106645575939982 +864.0,3.177699003131663 +865.0,3.763399739183751 +866.0,5.286920050299118 +867.0,3.069721444506521 +868.0,3.2070127442616645 +869.0,3.602245385441531 +870.0,5.036634081463028 +871.0,3.730904263494985 +872.0,3.8912611811691726 +873.0,3.3705902281609537 +874.0,3.8303772830213774 +875.0,4.0068008043939365 +876.0,3.1411172030423344 +877.0,3.3571914168975425 +878.0,3.3522392930690144 +879.0,3.282935970802799 +880.0,3.347834072746454 +881.0,3.6243014547742933 +882.0,4.5295502666426115 +883.0,4.049502498845666 +884.0,3.027199256847907 +885.0,3.1907914871043683 +886.0,3.222773430244492 +887.0,3.8981499491034453 +888.0,3.0212754685909773 +889.0,3.33966457955521 +890.0,3.717242604526114 +891.0,3.074023656909894 +892.0,3.102867648728247 +893.0,3.0706158065660265 +894.0,3.0280305670703136 +895.0,3.6487139415803513 +896.0,4.755969256405923 +897.0,3.659962464869624 +898.0,5.428286194689335 +899.0,3.314909586829169 +900.0,3.002649319007247 +901.0,3.137397597620594 +902.0,3.902640916242101 +903.0,3.04288445669706 +904.0,3.8206072484180615 +905.0,3.450318483317577 +906.0,3.006774422191863 +907.0,3.3736489741949183 +908.0,3.033857992106687 +909.0,3.8223096120384983 +910.0,3.168491648701072 +911.0,4.574487148853605 +912.0,3.2067572812147587 +913.0,3.409931837493462 +914.0,3.2433138361301155 +915.0,3.341242841166699 +916.0,3.0425595552799747 +917.0,3.523863427687361 +918.0,3.4561738280301713 +919.0,3.220303297996806 +920.0,3.0117675870291705 +921.0,3.1747813861298972 +922.0,3.4813979467971325 +923.0,3.087009391277604 +924.0,3.718737253488602 +925.0,3.811763695886036 +926.0,4.1623000820822735 +927.0,4.866288166658539 +928.0,3.1146164316684497 +929.0,3.28374842949762 +930.0,3.1818327178018486 +931.0,3.8553284161825996 +932.0,4.106797536379196 +933.0,3.4736336376089127 +934.0,3.9729661340129403 +935.0,3.847869711886805 +936.0,3.063719091494448 +937.0,3.2735674860383197 +938.0,3.013989186297447 +939.0,3.034306237535995 +940.0,3.2827376162979642 +941.0,4.036148227846375 +942.0,3.346169057699054 +943.0,3.1852508327603837 +944.0,3.5135294528935272 +945.0,5.143903987037676 +946.0,4.538808485930053 +947.0,3.1749540383668453 +948.0,3.1503537382637457 +949.0,3.1061403058241353 +950.0,5.003612843541189 +951.0,4.049949864094845 +952.0,3.6528140622749206 +953.0,3.099922279008473 +954.0,3.700740761849958 +955.0,3.470012022891372 +956.0,4.243374517141909 +957.0,3.2102912681573246 +958.0,4.703943534800217 +959.0,3.606376857782368 +960.0,4.07152906887595 +961.0,3.4234151160634956 +962.0,4.048441057522783 +963.0,3.7231572802484845 +964.0,3.3098196460875915 +965.0,3.29501144669405 +966.0,3.185970690308462 +967.0,4.11747699616733 +968.0,3.1876010047298435 +969.0,3.389688014768752 +970.0,3.1294000486124514 +971.0,3.2821062956818516 +972.0,3.0778832722001397 +973.0,3.0266803195833165 +974.0,3.5043605257816277 +975.0,4.860099405225844 +976.0,3.1138064015759497 +977.0,3.767119568655181 +978.0,3.83269833084812 +979.0,3.1748367469183396 +980.0,3.0248662891451583 +981.0,3.0985958857450955 +982.0,3.4037825820507557 +983.0,3.220013187250757 +984.0,3.2407153252527245 +985.0,3.7214866247486214 +986.0,3.995202989623516 +987.0,3.3481359597254396 +988.0,3.0892257160406014 +989.0,3.250599476861349 +990.0,3.275713678698317 +991.0,3.4180563803957997 +992.0,5.644948040401712 +993.0,3.232071872878686 +994.0,3.548247247054052 +995.0,3.8666868108152412 +996.0,3.571003764356287 +997.0,3.240946373735437 +998.0,3.15748195637147 +999.0,3.011313440583796 +1000.0,3.2572705824925614 +1001.0,3.9797623319892903 +1002.0,4.482491271402387 +1003.0,3.1474166688899254 +1004.0,3.085962478240528 +1005.0,3.53259707304529 +1006.0,3.4542353788839004 +1007.0,3.5168677632713856 +1008.0,3.5375736976359553 +1009.0,3.047673421448135 +1010.0,3.2661867723187084 +1011.0,3.042839973087525 +1012.0,3.9355066472550506 +1013.0,3.1513942581078096 +1014.0,3.0446114023544477 +1015.0,3.1093882215434365 +1016.0,3.2976560143558884 +1017.0,3.340244025089063 +1018.0,3.3714810998935643 +1019.0,3.3532356908260277 +1020.0,3.342315677429573 +1021.0,4.719312949816923 +1022.0,3.6927011781315358 +1023.0,3.273308107113021 +1024.0,3.354914894334236 +1025.0,3.6809175362366604 +1026.0,3.2706651328274288 +1027.0,3.481108894275763 +1028.0,3.309426278485836 +1029.0,4.151144993247243 +1030.0,3.4141751538102505 +1031.0,3.1267122700127663 +1032.0,3.3509133416608203 +1033.0,3.093084375074887 +1034.0,4.453316395424115 +1035.0,3.512095731330887 +1036.0,3.6586100131937593 +1037.0,3.6105600866272756 +1038.0,3.251678921438649 +1039.0,3.0680025178615304 +1040.0,3.971639272278139 +1041.0,3.2643237561736433 +1042.0,3.4746822362702416 +1043.0,3.458638859578307 +1044.0,3.2247316913378725 +1045.0,4.233080277778157 +1046.0,3.1243409593616676 +1047.0,3.2085175424103025 +1048.0,3.1823869771418036 +1049.0,3.4641452752590447 +1050.0,3.08536422742335 +1051.0,3.0884040069945953 +1052.0,3.2335542582262007 +1053.0,3.8016392125974634 +1054.0,3.12021540925553 +1055.0,3.6007408321153376 +1056.0,4.49270601617139 +1057.0,3.9074181580711747 +1058.0,3.593018862750779 +1059.0,3.1606309738745315 +1060.0,3.1438509265809755 +1061.0,3.6309886295004397 +1062.0,4.302773773081832 +1063.0,3.1655646626256875 +1064.0,5.104355177768541 +1065.0,3.1175390802455345 +1066.0,3.6841957212114314 +1067.0,3.098991237606497 +1068.0,4.569895100225462 +1069.0,3.0122235586898256 +1070.0,3.480967442208407 +1071.0,3.4946569194825314 +1072.0,3.9568514260479732 +1073.0,3.446930166144158 +1074.0,3.7861965670531217 +1075.0,3.5587911167703186 +1076.0,3.465164723942279 +1077.0,3.0391947374527413 +1078.0,3.041512405437567 +1079.0,3.38844984631126 +1080.0,4.189346732676676 +1081.0,3.359261414493743 +1082.0,3.743026752515083 +1083.0,3.566097695045306 +1084.0,3.060168062377608 +1085.0,3.2657708670424754 +1086.0,3.2727361700551696 +1087.0,4.088017895438569 +1088.0,3.935756910989404 +1089.0,3.6202869991492532 +1090.0,3.516968896701204 +1091.0,3.550543553620454 +1092.0,3.2232065062526254 +1093.0,3.03088952142468 +1094.0,3.2196418214716473 +1095.0,4.47201182515104 +1096.0,3.0051540561089247 +1097.0,4.579851355832026 +1098.0,3.17542627145563 +1099.0,3.070201863171853 +1100.0,3.6612392726323595 +1101.0,3.230690309291253 +1102.0,3.1173472404331917 +1103.0,3.0792505552391507 +1104.0,3.3510634531744654 +1105.0,3.518566730841212 +1106.0,3.0598348974077325 +1107.0,3.3818333487334757 +1108.0,3.179344296303576 +1109.0,3.0870806293309148 +1110.0,3.6257977971252124 +1111.0,3.1231489777152635 +1112.0,3.061344587042238 +1113.0,3.433668562006553 +1114.0,4.421690594300236 +1115.0,3.0269033647762478 +1116.0,3.167550633123788 +1117.0,3.7956585436159394 +1118.0,3.8460227298778356 +1119.0,3.2109742990232317 +1120.0,3.380758943606791 +1121.0,3.040827561950878 +1122.0,3.0049210107771724 +1123.0,3.180154713208136 +1124.0,3.0424035270689935 +1125.0,4.4997023058509145 +1126.0,3.154977024709608 +1127.0,3.364327761094653 +1128.0,3.026825005563962 +1129.0,3.605784829095369 +1130.0,4.190688325498741 +1131.0,3.561669417866381 +1132.0,3.0845232483898344 +1133.0,4.21066520041816 +1134.0,3.263628938968186 +1135.0,3.7562941974250523 +1136.0,3.1573264474151426 +1137.0,3.069876761362896 +1138.0,4.401831874002964 +1139.0,3.700518951112998 +1140.0,3.1502979327692073 +1141.0,3.784849208334812 +1142.0,3.1102482153392703 +1143.0,3.3381782740151147 +1144.0,3.1682138896795404 +1145.0,3.2224116823756455 +1146.0,3.003447332605459 +1147.0,4.008541346669413 +1148.0,3.1244540528170357 +1149.0,3.1167180293692667 +1150.0,3.1328472549065784 +1151.0,3.8499384986314245 +1152.0,3.687126301553464 +1153.0,3.268229862219253 +1154.0,3.6785351938638398 +1155.0,3.0947479498957753 +1156.0,3.6096609504133133 +1157.0,3.8561071253236916 +1158.0,3.239683001203126 +1159.0,3.0252388107773927 +1160.0,3.222018617105141 +1161.0,4.88514412634431 +1162.0,3.0787850029872312 +1163.0,3.2539365685353294 +1164.0,4.484313787098877 +1165.0,3.342656784771944 +1166.0,3.851800034101239 +1167.0,3.138097623667379 +1168.0,3.4189578210983034 +1169.0,3.1955891721280403 +1170.0,3.1203665076652034 +1171.0,4.1014087183934915 +1172.0,3.3583909142148536 +1173.0,3.764546636336073 +1174.0,3.729199935965114 +1175.0,3.5070036702391945 +1176.0,4.250505432617253 +1177.0,3.003011990935687 +1178.0,3.7021233654222203 +1179.0,3.352574508262186 +1180.0,4.495478745005609 +1181.0,3.570946513011539 +1182.0,3.2424475168762394 +1183.0,3.366497192452846 +1184.0,3.3952301989848466 +1185.0,3.276132148504937 +1186.0,3.4913457239262398 +1187.0,3.4916467650428618 +1188.0,4.450627411794212 +1189.0,3.3988748491890686 +1190.0,3.001604568820731 +1191.0,3.3310941578521756 +1192.0,3.063171069520264 +1193.0,5.089785582232934 +1194.0,4.0464479008710486 +1195.0,3.3157115701419766 +1196.0,3.0609628200818086 +1197.0,3.4113763940657744 +1198.0,3.5830373636750164 +1199.0,3.4887403410775217 +1200.0,3.13623176178869 +1201.0,3.187633100869758 +1202.0,3.43689997419451 +1203.0,4.114560828872078 +1204.0,4.945687398190413 +1205.0,3.4532563698588947 +1206.0,3.1347733290749673 +1207.0,3.635917538116857 +1208.0,3.7278474443310072 +1209.0,3.290370190748758 +1210.0,3.0363502775461484 +1211.0,3.0684663344734906 +1212.0,3.1040558509320393 +1213.0,3.7450036945432372 +1214.0,3.0860997441151237 +1215.0,3.092978586749853 +1216.0,3.0619748491075964 +1217.0,4.524687575477248 +1218.0,3.2287047491796095 +1219.0,3.7282244271996285 +1220.0,3.134391699334427 +1221.0,3.3568904747438872 +1222.0,3.027707361692073 +1223.0,4.004578639894339 +1224.0,3.8096385553776315 +1225.0,3.1566565133013107 +1226.0,3.4808725920765915 +1227.0,4.083040743391018 +1228.0,3.058524136767321 +1229.0,3.520536134914578 +1230.0,4.663033360720978 +1231.0,3.0146554360764033 +1232.0,3.3457367894197567 +1233.0,3.8307192991496346 +1234.0,3.2754883759485707 +1235.0,3.667378886067164 +1236.0,3.2045783029776245 +1237.0,3.305865197796062 +1238.0,3.0207213297388944 +1239.0,4.414752847651988 +1240.0,3.296554597665123 +1241.0,3.5198674570563355 +1242.0,4.245593195143208 +1243.0,3.92086202605189 +1244.0,3.968475650334549 +1245.0,4.492282323346087 +1246.0,4.563838011167608 +1247.0,3.1738554830912156 +1248.0,3.045494754450789 +1249.0,3.0347490288151984 +1250.0,3.2807594351508365 +1251.0,3.209936030004858 +1252.0,3.0870438659007227 +1253.0,3.2988015589930204 +1254.0,3.808343221679703 +1255.0,3.1077850901004376 +1256.0,3.8823314058711524 +1257.0,3.8717490268991392 +1258.0,3.5535547647616097 +1259.0,3.297506716529176 +1260.0,4.0081998833275065 +1261.0,4.01853512294466 +1262.0,3.3617547776059133 +1263.0,3.5667990688732125 +1264.0,3.4540481918288366 +1265.0,3.178187886809347 +1266.0,3.3537684789636986 +1267.0,3.4587957344815297 +1268.0,3.379553111756251 +1269.0,3.2284515877361284 +1270.0,4.110981747557978 +1271.0,3.4698753199917745 +1272.0,3.2588478904136555 +1273.0,3.043772402267922 +1274.0,3.829059309243327 +1275.0,3.382260553421721 +1276.0,3.3179555252776822 +1277.0,3.634147134366642 +1278.0,3.158912411332671 +1279.0,3.2603513224026073 +1280.0,3.064868011172988 +1281.0,3.2851328886226736 +1282.0,3.0186975852334372 +1283.0,3.760578337709124 +1284.0,3.0337200271892937 +1285.0,4.14830720651454 +1286.0,3.319484054463353 +1287.0,3.5173960397752477 +1288.0,3.1440470221325727 +1289.0,3.9101568195999947 +1290.0,3.7406014456280494 +1291.0,3.2097294540361903 +1292.0,3.30163443122435 +1293.0,4.6068689154984614 +1294.0,3.320988783964212 +1295.0,4.150156018376467 +1296.0,3.540496571310102 +1297.0,3.85358916116286 +1298.0,3.216541658096542 +1299.0,3.9334517932499375 +1300.0,4.415469045114924 +1301.0,3.7229972933835427 +1302.0,3.699217421674477 +1303.0,3.2212764543793457 +1304.0,3.3964900807039955 +1305.0,3.2391700341480485 +1306.0,4.691092227243874 +1307.0,3.0058045703761214 +1308.0,3.300475299641229 +1309.0,3.1181254985878155 +1310.0,3.838486174244022 +1311.0,4.692766748060205 +1312.0,3.4237258995046664 +1313.0,3.5916447478068165 +1314.0,3.064746236358102 +1315.0,3.271962671670826 +1316.0,3.4371585872880575 +1317.0,3.512317776766671 +1318.0,3.2116491351759744 +1319.0,3.2504298735937005 +1320.0,4.023108212233245 +1321.0,3.465097976069972 +1322.0,3.230263564483961 +1323.0,3.016799532310886 +1324.0,3.1393278711261625 +1325.0,3.2784127631486464 +1326.0,3.1094936874403367 +1327.0,3.087543429132465 +1328.0,3.657317608810306 +1329.0,3.9664362615183144 +1330.0,4.163203134136381 +1331.0,3.4242305173465453 +1332.0,3.780806681011892 +1333.0,3.084676165783164 +1334.0,3.7150864781246877 +1335.0,3.549024170949552 +1336.0,3.809704077824345 +1337.0,3.9906413366921094 +1338.0,3.718764857669041 +1339.0,3.1073656758245294 +1340.0,3.2699869150317813 +1341.0,3.578144598589807 +1342.0,3.0315192507230297 +1343.0,4.327987508360545 +1344.0,3.2108557729281757 +1345.0,3.5862429569340892 +1346.0,3.085151802615788 +1347.0,3.2970392753953464 +1348.0,6.151174820369388 +1349.0,3.0011579385557114 +1350.0,3.753842222163398 +1351.0,3.2181746626769203 +1352.0,3.438636569983792 +1353.0,3.397061723237244 +1354.0,3.0261223586391788 +1355.0,3.0180739921844655 +1356.0,3.0194123850988976 +1357.0,3.950985916890116 +1358.0,3.450452619557074 +1359.0,3.4362722992681234 +1360.0,3.5556336996909685 +1361.0,4.828443715043785 +1362.0,3.32246188932277 +1363.0,3.296717404867569 +1364.0,4.2616012809175245 +1365.0,4.223685831107147 +1366.0,3.5542596900758108 +1367.0,3.1711283747961625 +1368.0,3.4526629512079694 +1369.0,4.275430355390843 +1370.0,3.60832041000425 +1371.0,3.826345139122679 +1372.0,4.306063708176102 +1373.0,3.604056452265232 +1374.0,3.337546148728099 +1375.0,3.174146222196265 +1376.0,3.3341171195705446 +1377.0,3.3252128042729963 +1378.0,3.0969363474375533 +1379.0,3.0482426689168896 +1380.0,3.133394035176561 +1381.0,3.889698670202239 +1382.0,4.099908971486943 +1383.0,3.2948436999521 +1384.0,3.4626703222861743 +1385.0,4.126567577865346 +1386.0,4.351792621727651 +1387.0,3.776126869785931 +1388.0,3.111580550469516 +1389.0,4.098867183920902 +1390.0,3.2570030665218903 +1391.0,3.0756589083766888 +1392.0,3.6550438635810987 +1393.0,3.1920951795019086 +1394.0,3.6117567299180577 +1395.0,3.962732984078243 +1396.0,4.410637109776962 +1397.0,3.569451049649678 +1398.0,3.0727684995978515 +1399.0,3.7541558581145122 diff --git a/tests/fixtures/catalogs/case_016_periodic_1400d.csv b/tests/fixtures/catalogs/case_016_periodic_1400d.csv new file mode 100644 index 0000000..2b4c661 --- /dev/null +++ b/tests/fixtures/catalogs/case_016_periodic_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,2.518113499516965 +1.0,2.702493242176648 +2.0,2.849653756932129 +3.0,3.0206344202515565 +4.0,3.221363601251453 +5.0,3.4000721571500216 +6.0,3.5858706052121407 +7.0,3.7603642598891533 +8.0,3.9763392808380527 +9.0,4.1201542616159585 +10.0,4.347072002668441 +11.0,4.461889644439726 +12.0,2.486703232765872 +13.0,2.6924760262371774 +14.0,2.876641760554741 +15.0,3.0323643175038 +16.0,3.2407627179142717 +17.0,3.4182320012292347 +18.0,3.588178558178598 +19.0,3.7659787206772783 +20.0,3.9427777064731626 +21.0,4.107027799268443 +22.0,4.332481526916785 +23.0,4.4690656812166605 +24.0,2.498505604860122 +25.0,2.67995494780773 +26.0,2.856975303141208 +27.0,3.050554182348387 +28.0,3.2310709770397006 +29.0,3.369434154835904 +30.0,3.6110563787758254 +31.0,3.7379860682500374 +32.0,3.9477129264162136 +33.0,4.127554595684272 +34.0,4.317069835533538 +35.0,4.450074478120881 +36.0,2.4948324114712146 +37.0,2.6333314523997857 +38.0,2.900928250929089 +39.0,3.0633058567365516 +40.0,3.211687051534503 +41.0,3.4183822903584162 +42.0,3.5933974739096155 +43.0,3.7469267948815754 +44.0,3.9432315988234548 +45.0,4.111620235935657 +46.0,4.284931844006753 +47.0,4.446834634399673 +48.0,2.5549227425935457 +49.0,2.7107464019323926 +50.0,2.843300517927358 +51.0,3.051803417869634 +52.0,3.2275949394481978 +53.0,3.4169419860108823 +54.0,3.587673018388763 +55.0,3.7326699311515434 +56.0,3.9646018677020782 +57.0,4.142722345657993 +58.0,4.299081719212515 +59.0,4.438304043774378 +60.0,2.5259448693485367 +61.0,2.633141216975785 +62.0,2.8768065981128244 +63.0,3.033750146241993 +64.0,3.232035367049546 +65.0,3.3864855619115195 +66.0,3.591391007174692 +67.0,3.7691233914749365 +68.0,3.921203003558861 +69.0,4.10002916334679 +70.0,4.335905022009288 +71.0,4.445402353461442 +72.0,2.5252430753642994 +73.0,2.6897057032917933 +74.0,2.837129147039251 +75.0,3.0214792152997143 +76.0,3.22406151228579 +77.0,3.413952227195595 +78.0,3.5869099327579503 +79.0,3.7539664110936624 +80.0,3.970494826181468 +81.0,4.052446595617005 +82.0,4.3230771363549545 +83.0,4.440877321325486 +84.0,2.526473788321405 +85.0,2.6786225282053504 +86.0,2.877057878586189 +87.0,3.0327893879426635 +88.0,3.2605418105969237 +89.0,3.410867149513805 +90.0,3.5891020771383677 +91.0,3.7923707281739905 +92.0,3.9334123206095533 +93.0,4.110796035354653 +94.0,4.29095676689746 +95.0,4.48019034712669 +96.0,2.4801312277953795 +97.0,2.710802211888249 +98.0,2.843878040046922 +99.0,3.044713687120985 +100.0,3.229576466595492 +101.0,3.3626365251610046 +102.0,3.5594363341224855 +103.0,3.8014126134432646 +104.0,3.9810996259923765 +105.0,4.132932079864898 +106.0,4.301971563265747 +107.0,4.482853049262361 +108.0,2.476256433570839 +109.0,2.659500365097434 +110.0,2.8808523739383833 +111.0,3.036260884157831 +112.0,3.203250517910536 +113.0,3.4114419357205747 +114.0,3.584484194035826 +115.0,3.7828749372537342 +116.0,3.9315785569650545 +117.0,4.120179806275867 +118.0,4.297782803429348 +119.0,4.4465223454724905 +120.0,2.5091379997516667 +121.0,2.687002042269007 +122.0,2.8865225702139594 +123.0,3.083437901965699 +124.0,3.2260796955321136 +125.0,3.39489182752276 +126.0,3.5724270668564206 +127.0,3.7587343451633153 +128.0,3.9275889978591905 +129.0,4.1434306392748255 +130.0,4.302173534163437 +131.0,4.451267344111784 +132.0,2.505298150976311 +133.0,2.690302169949134 +134.0,2.8359300046855553 +135.0,3.039931108465723 +136.0,3.2053885000806295 +137.0,3.4520370336146433 +138.0,3.5688195554345747 +139.0,3.766181819721343 +140.0,3.9164077342959724 +141.0,4.130253798578047 +142.0,4.288428618668335 +143.0,4.490928721634443 +144.0,2.5312517865014494 +145.0,2.65784368280769 +146.0,2.867032882765555 +147.0,3.022419915625542 +148.0,3.2435096739005362 +149.0,3.4142529962475687 +150.0,3.549573603433109 +151.0,3.7757284097224075 +152.0,3.9294193740041687 +153.0,4.115431201968419 +154.0,4.275586756119046 +155.0,4.473338891398262 +156.0,2.4841786085582513 +157.0,2.6769699003149916 +158.0,2.843612516030601 +159.0,3.064794695712691 +160.0,3.196116273784594 +161.0,3.4008771125230868 +162.0,3.583166500440052 +163.0,3.7698041972258083 +164.0,3.9714104009368465 +165.0,4.122021434634491 +166.0,4.312452466007794 +167.0,4.4828515311938135 +168.0,2.4973347285119614 +169.0,2.687154856732247 +170.0,2.8846304286252256 +171.0,3.031878391234892 +172.0,3.2190174783618097 +173.0,3.438475669734277 +174.0,3.5732745386028877 +175.0,3.743910149771829 +176.0,3.9105929023205945 +177.0,4.143726303075965 +178.0,4.304248584661994 +179.0,4.492878057334458 +180.0,2.447783670254602 +181.0,2.6915549453328724 +182.0,2.8896997882198407 +183.0,3.0369935688368557 +184.0,3.2007042807806383 +185.0,3.389873751143578 +186.0,3.599778106278751 +187.0,3.7511962008942383 +188.0,3.9685568446341444 +189.0,4.098611600074188 +190.0,4.306194318409069 +191.0,4.492119572029908 +192.0,2.5421483173723387 +193.0,2.649397965491367 +194.0,2.860072332170429 +195.0,3.041159672085572 +196.0,3.2167984017938145 +197.0,3.3662968817327945 +198.0,3.5919794693835883 +199.0,3.7371889392649558 +200.0,3.90793404374984 +201.0,4.1163992581221365 +202.0,4.316196284425716 +203.0,4.470292990530786 +204.0,2.468234601964186 +205.0,2.692330735120501 +206.0,2.8373394630531164 +207.0,3.048120979320551 +208.0,3.238758398563253 +209.0,3.424561921234689 +210.0,3.5546879597593 +211.0,3.75194473497535 +212.0,3.957751422987912 +213.0,4.083352526338075 +214.0,4.3058616753011965 +215.0,4.446010406099724 +216.0,2.4869654774738303 +217.0,2.663150217842645 +218.0,2.848954128054349 +219.0,3.001947953577816 +220.0,3.196193102394347 +221.0,3.3762052171360644 +222.0,3.615308024216104 +223.0,3.727980618306126 +224.0,3.9275021278901048 +225.0,4.120577595212752 +226.0,4.225406917370945 +227.0,4.4960179588457425 +228.0,2.4892603523028427 +229.0,2.666386106408642 +230.0,2.88577155471992 +231.0,3.013462049459265 +232.0,3.2450785688195873 +233.0,3.4152740769117864 +234.0,3.5726984662477297 +235.0,3.7775362801374226 +236.0,3.958203344348252 +237.0,4.130452412611405 +238.0,4.283760077482081 +239.0,4.4924391494127205 +240.0,2.512102255979638 +241.0,2.699776369773394 +242.0,2.8441027728821546 +243.0,3.0267362534190156 +244.0,3.218433402251754 +245.0,3.385566613128386 +246.0,3.6289426442974397 +247.0,3.7402685668045477 +248.0,3.895653150474828 +249.0,4.104193862249753 +250.0,4.298931439107845 +251.0,4.5087267368226085 +252.0,2.5169926072146858 +253.0,2.7297924319950466 +254.0,2.859616881752895 +255.0,3.030140055047421 +256.0,3.204476674745186 +257.0,3.4030803955529128 +258.0,3.568348390042102 +259.0,3.7572242451649496 +260.0,3.9422203212125093 +261.0,4.132499180565412 +262.0,4.285857297657615 +263.0,4.485514666927817 +264.0,2.493984890052561 +265.0,2.7117635949883 +266.0,2.864962599686057 +267.0,3.069023677560909 +268.0,3.2382325604956264 +269.0,3.4309500872092045 +270.0,3.587404362871786 +271.0,3.7747308442046204 +272.0,3.93122261819332 +273.0,4.094343101388684 +274.0,4.282813291872279 +275.0,4.467316328209857 +276.0,2.4817837874014623 +277.0,2.648769872011976 +278.0,2.8540477713079713 +279.0,3.036110855210246 +280.0,3.227522360169648 +281.0,3.433174558844328 +282.0,3.5731589537770505 +283.0,3.80837912122362 +284.0,3.944063496505557 +285.0,4.114615262421385 +286.0,4.289716448627852 +287.0,4.493957913883873 +288.0,2.4932229508671746 +289.0,2.7100431373221734 +290.0,2.882779957194205 +291.0,3.0606017101825893 +292.0,3.2557605323804135 +293.0,3.4038888175668154 +294.0,3.594016027182962 +295.0,3.739749565758904 +296.0,3.9455284241167723 +297.0,4.124141180420216 +298.0,4.301922831461374 +299.0,4.444847322312049 +300.0,2.5229022098861202 +301.0,2.679803057423086 +302.0,2.8441493385511603 +303.0,3.051525796211356 +304.0,3.223012553237075 +305.0,3.428827720890436 +306.0,3.5721069530480163 +307.0,3.7792676226956647 +308.0,3.9342877503607396 +309.0,4.130361401263913 +310.0,4.302143754740172 +311.0,4.495627529481721 +312.0,2.486719206871818 +313.0,2.662513323960069 +314.0,2.8767896255786787 +315.0,3.0437184545184044 +316.0,3.2124048159855203 +317.0,3.3807311298849596 +318.0,3.5405461856291263 +319.0,3.7399480077171288 +320.0,3.9295540830049798 +321.0,4.138406581426723 +322.0,4.299695893293004 +323.0,4.455085022496243 +324.0,2.5540532498458353 +325.0,2.685209753513625 +326.0,2.8783349448160824 +327.0,3.00690535094212 +328.0,3.2373100314023615 +329.0,3.3739789080480453 +330.0,3.595965325726045 +331.0,3.762077224544331 +332.0,3.9527157311208816 +333.0,4.12000168633408 +334.0,4.329752748115642 +335.0,4.465883153930036 +336.0,2.488013170715907 +337.0,2.693102980887633 +338.0,2.84962175131363 +339.0,3.009818762976293 +340.0,3.2458546965700106 +341.0,3.4008197155370876 +342.0,3.5835154944415883 +343.0,3.7486280333434783 +344.0,3.983845981097342 +345.0,4.128878159224214 +346.0,4.2818730034817385 +347.0,4.481906974881004 +348.0,2.5282176733746766 +349.0,2.6413236005833234 +350.0,2.854475168367194 +351.0,3.079573951540926 +352.0,3.1898412307679536 +353.0,3.4215815983736544 +354.0,3.5794785224549086 +355.0,3.7335259948854853 +356.0,3.879344619537777 +357.0,4.136429599192935 +358.0,4.308844988018281 +359.0,4.427252809075581 +360.0,2.45566322917937 +361.0,2.6664830976355165 +362.0,2.868393613513723 +363.0,3.047407591239888 +364.0,3.2939748258920742 +365.0,3.3971626379209106 +366.0,3.594394400084272 +367.0,3.7428833041410137 +368.0,3.9233749750781586 +369.0,4.119211295051737 +370.0,4.331593814966021 +371.0,4.510650812572588 +372.0,2.510369238525808 +373.0,2.7165242564676864 +374.0,2.8489201776380684 +375.0,3.0421481462159803 +376.0,3.228695383531874 +377.0,3.349208186534363 +378.0,3.539563337053371 +379.0,3.7583513090323835 +380.0,3.9379142586525777 +381.0,4.075544955851298 +382.0,4.306093064418945 +383.0,4.469073280319226 +384.0,2.49899714959954 +385.0,2.685219371429471 +386.0,2.885856846257742 +387.0,3.028841721825483 +388.0,3.211017458484978 +389.0,3.4148719870981044 +390.0,3.5768709105621093 +391.0,3.7463769863965592 +392.0,3.93989297153808 +393.0,4.096466868987148 +394.0,4.2823646096130155 +395.0,4.45012400601833 +396.0,2.502194929151034 +397.0,2.6638306458238117 +398.0,2.8970813322148836 +399.0,3.0043447557687686 +400.0,3.208030360059503 +401.0,3.3756983605849404 +402.0,3.5904032081719697 +403.0,3.7428482010365602 +404.0,4.0012813821043105 +405.0,4.131649069402109 +406.0,4.305974073018906 +407.0,4.464365958568135 +408.0,2.468755092615837 +409.0,2.6363231551523696 +410.0,2.8543135100423527 +411.0,3.0562054226021758 +412.0,3.2067502365505183 +413.0,3.4287273185305343 +414.0,3.598617870826161 +415.0,3.7738328901870317 +416.0,3.9094435170037376 +417.0,4.077261136175575 +418.0,4.286433044497677 +419.0,4.549892360712652 +420.0,2.4745116354349173 +421.0,2.662277390968945 +422.0,2.8698862769718154 +423.0,3.0326846282560957 +424.0,3.2149502458227155 +425.0,3.4177619435918394 +426.0,3.544997194084589 +427.0,3.771496620200444 +428.0,3.914013955296466 +429.0,4.093356715928491 +430.0,4.2709182898653975 +431.0,4.506329300186871 +432.0,2.502531904957153 +433.0,2.6850901928862294 +434.0,2.8572384666532966 +435.0,3.0959763620651524 +436.0,3.2142114413889322 +437.0,3.407295005361053 +438.0,3.607450833132259 +439.0,3.752055310157399 +440.0,3.9468411807917185 +441.0,4.128355643143312 +442.0,4.328765856067489 +443.0,4.4118615908238885 +444.0,2.4961717379568564 +445.0,2.721876483598435 +446.0,2.8770181598346967 +447.0,3.0725688477962416 +448.0,3.238871646147805 +449.0,3.4079162455584413 +450.0,3.631389216162445 +451.0,3.718807874765593 +452.0,3.925868660271805 +453.0,4.10460939030092 +454.0,4.307848592985696 +455.0,4.470940796452533 +456.0,2.5139868121378637 +457.0,2.6669226932435866 +458.0,2.866889813500323 +459.0,3.036628262512333 +460.0,3.2104542218174594 +461.0,3.3912757213335287 +462.0,3.581054781598697 +463.0,3.740786427607313 +464.0,3.9186394354742378 +465.0,4.160791719965884 +466.0,4.318425110086369 +467.0,4.458304751087784 +468.0,2.517842666858424 +469.0,2.694106726363803 +470.0,2.8644950152364212 +471.0,3.036434998901197 +472.0,3.232495881045329 +473.0,3.3988906011791484 +474.0,3.5945531380313254 +475.0,3.7473294826048003 +476.0,3.941943025007313 +477.0,4.107442768955512 +478.0,4.289056257188336 +479.0,4.493848241408006 +480.0,2.4834470228084298 +481.0,2.693526400120044 +482.0,2.8565578675099172 +483.0,3.0143357765938115 +484.0,3.2207339772341794 +485.0,3.3744464617473935 +486.0,3.5575385438175524 +487.0,3.779018865776055 +488.0,3.976781986209982 +489.0,4.113264644943783 +490.0,4.303533862209262 +491.0,4.467301974501241 +492.0,2.450102984393787 +493.0,2.6908113547430994 +494.0,2.910549957380341 +495.0,3.02616880610109 +496.0,3.249944872962417 +497.0,3.415860131130475 +498.0,3.554282798431384 +499.0,3.7937100643037147 +500.0,3.948377173451799 +501.0,4.087928136945772 +502.0,4.32185449277847 +503.0,4.470404938862913 +504.0,2.482794779750405 +505.0,2.7072315070734674 +506.0,2.890706435215833 +507.0,3.0306988456482644 +508.0,3.2482264515469916 +509.0,3.4070719606550286 +510.0,3.587425274540743 +511.0,3.741493290699938 +512.0,3.9930857813701253 +513.0,4.153214818211516 +514.0,4.306933068512672 +515.0,4.461442799752927 +516.0,2.4900068717042894 +517.0,2.6886948637877928 +518.0,2.828359803791985 +519.0,3.046643880857334 +520.0,3.2103420067675876 +521.0,3.3757603575629527 +522.0,3.6084530712884844 +523.0,3.744428996791345 +524.0,3.905558426626629 +525.0,4.145273755310938 +526.0,4.336860803771995 +527.0,4.517373178732175 +528.0,2.4832718114990278 +529.0,2.6809194810126304 +530.0,2.84474880148597 +531.0,3.008004386010295 +532.0,3.2245479981213907 +533.0,3.381915988969801 +534.0,3.527478824331091 +535.0,3.8031442088910166 +536.0,3.962096831585439 +537.0,4.134322752993639 +538.0,4.295084828627972 +539.0,4.441864982901105 +540.0,2.489673350899454 +541.0,2.6649504569545406 +542.0,2.8776540231254226 +543.0,3.0324439636522826 +544.0,3.2462753684380306 +545.0,3.4212860708507296 +546.0,3.5504012568028545 +547.0,3.7528679161111067 +548.0,3.9495616514806824 +549.0,4.093412777995507 +550.0,4.292811083411675 +551.0,4.451809386216691 +552.0,2.5031676169253205 +553.0,2.669139713157916 +554.0,2.8818078768234607 +555.0,3.0542799904727036 +556.0,3.252293444207739 +557.0,3.386052261793619 +558.0,3.5988257107947694 +559.0,3.7632052653653556 +560.0,3.9255338389802072 +561.0,4.155117837091496 +562.0,4.287528173192206 +563.0,4.480307318563248 +564.0,2.5047340087433483 +565.0,2.664177371413811 +566.0,2.8380720769656937 +567.0,3.037276658197283 +568.0,3.22303364195746 +569.0,3.380832783406885 +570.0,3.54061515841295 +571.0,3.775054987924622 +572.0,3.997898384102509 +573.0,4.160345946675269 +574.0,4.31459346814289 +575.0,4.470965757471151 +576.0,2.4845140641471986 +577.0,2.6719600252958435 +578.0,2.9275933844280986 +579.0,3.024924071364113 +580.0,3.231023715011634 +581.0,3.388650156892281 +582.0,3.542851098752297 +583.0,3.7495231624986496 +584.0,3.9606553603736803 +585.0,4.145822928535257 +586.0,4.292194408749304 +587.0,4.474279396561937 +588.0,2.5183534413252238 +589.0,2.6796271803746756 +590.0,2.8686893146057977 +591.0,3.0627687006059108 +592.0,3.2054687244565168 +593.0,3.398383884097795 +594.0,3.5794135616835567 +595.0,3.755861493187611 +596.0,3.977015392002289 +597.0,4.121454993848202 +598.0,4.309596578178463 +599.0,4.487725815695019 +600.0,2.4940528176915966 +601.0,2.6354943356681657 +602.0,2.895970786531126 +603.0,3.0699053431528958 +604.0,3.2189254940430216 +605.0,3.4287919640754967 +606.0,3.5441920566015126 +607.0,3.7804028431122085 +608.0,3.9276748863592625 +609.0,4.11870793784038 +610.0,4.270718264918749 +611.0,4.471188774538261 +612.0,2.4811774805188915 +613.0,2.6656457381177754 +614.0,2.8609113694136052 +615.0,3.0372521359613 +616.0,3.236102953731761 +617.0,3.3569289393066106 +618.0,3.6038088001330175 +619.0,3.7866080017418664 +620.0,3.920246983279179 +621.0,4.095632900811022 +622.0,4.277676971539032 +623.0,4.496383868523715 +624.0,2.500987483413618 +625.0,2.680250893759438 +626.0,2.8347391667021995 +627.0,3.0043504262275134 +628.0,3.197752437098604 +629.0,3.4299501309145124 +630.0,3.5926449590920395 +631.0,3.7486413622743764 +632.0,3.9203153355598306 +633.0,4.093424574186489 +634.0,4.2939457459515245 +635.0,4.454449407093799 +636.0,2.5294249639254027 +637.0,2.6745690085832408 +638.0,2.8466802493604115 +639.0,3.012728011432402 +640.0,3.234247701311838 +641.0,3.3446822501387303 +642.0,3.569577632729532 +643.0,3.7829465839169103 +644.0,3.888896001031912 +645.0,4.128632177040159 +646.0,4.318596336701157 +647.0,4.484516627591571 +648.0,2.460201773299315 +649.0,2.6537725560433096 +650.0,2.8636940586532016 +651.0,3.0042633508768777 +652.0,3.2293442873090874 +653.0,3.4069327748019123 +654.0,3.6133637828543574 +655.0,3.732731797971072 +656.0,3.943643468067177 +657.0,4.1648313783112645 +658.0,4.296556143350498 +659.0,4.505102466248577 +660.0,2.5172882044274245 +661.0,2.7008634580728454 +662.0,2.853088416014228 +663.0,3.0102490844509937 +664.0,3.2193293320330674 +665.0,3.4216277084903925 +666.0,3.5623505190665754 +667.0,3.788349099212191 +668.0,3.8668599810161557 +669.0,4.1400698324110925 +670.0,4.297697128031308 +671.0,4.453293291853975 +672.0,2.4683491202201813 +673.0,2.72274832209574 +674.0,2.8657928758980735 +675.0,3.019748111191613 +676.0,3.189741797269081 +677.0,3.4054005681907755 +678.0,3.552298437168115 +679.0,3.733948324729118 +680.0,3.9492887531542697 +681.0,4.134922391723218 +682.0,4.336062293500345 +683.0,4.4745244366993555 +684.0,2.4787965286246276 +685.0,2.6487000160185907 +686.0,2.878263858486445 +687.0,3.003727409410198 +688.0,3.2023015526730476 +689.0,3.404895538256104 +690.0,3.564237348056 +691.0,3.7346885624801636 +692.0,3.9614437056052414 +693.0,4.120124454717032 +694.0,4.323938287717504 +695.0,4.504726546197773 +696.0,2.473740840619596 +697.0,2.6845150242734657 +698.0,2.8530664923732374 +699.0,3.011735039352186 +700.0,3.2117457974275 +701.0,3.3565468348904917 +702.0,3.540333698216091 +703.0,3.7939855520406556 +704.0,3.979369308886968 +705.0,4.164894779740395 +706.0,4.2953011862895805 +707.0,4.493490895284717 +708.0,2.463861599492029 +709.0,2.6561430147921024 +710.0,2.8589279900529205 +711.0,3.048755352585298 +712.0,3.2222107029704112 +713.0,3.363126583068073 +714.0,3.661010618527066 +715.0,3.7458514245720647 +716.0,3.9418866108379094 +717.0,4.143117476941424 +718.0,4.348921675304515 +719.0,4.4562025064644875 +720.0,2.5034785665592314 +721.0,2.6449331504500426 +722.0,2.8803668909848996 +723.0,3.053273750759895 +724.0,3.214762609499959 +725.0,3.403510411719416 +726.0,3.57656679257141 +727.0,3.727577947020201 +728.0,3.9192770722012877 +729.0,4.127420967831663 +730.0,4.260680163934254 +731.0,4.4690166487072505 +732.0,2.5365225033228525 +733.0,2.7009413769514836 +734.0,2.84465533450266 +735.0,3.0465251797665442 +736.0,3.2176947933047786 +737.0,3.422013222695783 +738.0,3.606280426654954 +739.0,3.698187941823093 +740.0,3.912919553808904 +741.0,4.141435787089005 +742.0,4.281473226122001 +743.0,4.483685434561985 +744.0,2.5028906780175704 +745.0,2.692662247362499 +746.0,2.847628860823355 +747.0,3.0205323273384725 +748.0,3.192110843354605 +749.0,3.3617035933282553 +750.0,3.565475054555908 +751.0,3.782897629049558 +752.0,3.8869480398255645 +753.0,4.1279682864717815 +754.0,4.347375185747693 +755.0,4.4953998738586165 +756.0,2.483957119924402 +757.0,2.6892342213824896 +758.0,2.9156501766013423 +759.0,3.098698482676498 +760.0,3.2060598395603876 +761.0,3.3640005322625206 +762.0,3.6160402139399053 +763.0,3.8035536260002547 +764.0,3.9324013495088836 +765.0,4.12673301210482 +766.0,4.321095504919177 +767.0,4.51924031337014 +768.0,2.474148307248057 +769.0,2.7148542603575816 +770.0,2.9014554906743037 +771.0,3.0398195018418592 +772.0,3.226523325361331 +773.0,3.389333686588772 +774.0,3.5675418372521412 +775.0,3.7145047058064846 +776.0,3.9009745815201775 +777.0,4.140443622230138 +778.0,4.285118659651962 +779.0,4.501179684800466 +780.0,2.5432686135381255 +781.0,2.68082048198052 +782.0,2.906858249453451 +783.0,3.0246411086742873 +784.0,3.249003785633783 +785.0,3.3683603060374643 +786.0,3.54508827820653 +787.0,3.7905195963128784 +788.0,3.9590526800363812 +789.0,4.103427145144948 +790.0,4.312609645794056 +791.0,4.503501607136925 +792.0,2.4586271557599195 +793.0,2.676831518456262 +794.0,2.856758778369012 +795.0,3.017221443670569 +796.0,3.190352747913968 +797.0,3.3695016943589002 +798.0,3.570236946225541 +799.0,3.771577033333419 +800.0,3.930327003856496 +801.0,4.140863534296084 +802.0,4.319891025728043 +803.0,4.472778273754379 +804.0,2.5486946189893955 +805.0,2.68500755659266 +806.0,2.849119735287356 +807.0,3.0374399079629284 +808.0,3.234126097864206 +809.0,3.4375275393420064 +810.0,3.5493400463814515 +811.0,3.770704446562066 +812.0,3.9234619704324007 +813.0,4.126007657795155 +814.0,4.315142049156713 +815.0,4.477855437293293 +816.0,2.478380836436017 +817.0,2.644753420199602 +818.0,2.880351904047314 +819.0,3.020345344488929 +820.0,3.2527068445565774 +821.0,3.431318313248892 +822.0,3.583279492069689 +823.0,3.7299892188256045 +824.0,3.916569299921101 +825.0,4.163330200345721 +826.0,4.29679579937311 +827.0,4.469396841873097 +828.0,2.4734880914790813 +829.0,2.705631720984146 +830.0,2.8829125445999777 +831.0,3.050279764496419 +832.0,3.199929380218195 +833.0,3.3791283319380865 +834.0,3.606320623607078 +835.0,3.7545025079003755 +836.0,3.95026652829664 +837.0,4.130280040028966 +838.0,4.3140100698963195 +839.0,4.49288905524739 +840.0,2.5097089634077094 +841.0,2.675900896774966 +842.0,2.840059750057085 +843.0,3.074398678914513 +844.0,3.1979302219506334 +845.0,3.423653488481786 +846.0,3.6162994758951 +847.0,3.7006168702576536 +848.0,3.9362063754965813 +849.0,4.083308351821883 +850.0,4.271867276504173 +851.0,4.484467372151774 +852.0,2.4975225827504897 +853.0,2.7034080245368117 +854.0,2.8376422482963943 +855.0,3.050003716414646 +856.0,3.1646976041256716 +857.0,3.4150727116001 +858.0,3.5952682609578437 +859.0,3.749683982921698 +860.0,3.968787744632956 +861.0,4.122425194347255 +862.0,4.32105845833469 +863.0,4.421812991287732 +864.0,2.4701706670260695 +865.0,2.675593889452479 +866.0,2.84119146885387 +867.0,3.037927138281973 +868.0,3.2414001239259673 +869.0,3.407404967858862 +870.0,3.6043512922432552 +871.0,3.791300281861921 +872.0,3.939794099487079 +873.0,4.098220649871836 +874.0,4.329935587384174 +875.0,4.434330293216348 +876.0,2.513947732182991 +877.0,2.6699829516925297 +878.0,2.8573226853853084 +879.0,2.993886922325807 +880.0,3.2499040697526453 +881.0,3.38238745037217 +882.0,3.584532174712581 +883.0,3.7633749749670327 +884.0,3.8816739355402627 +885.0,4.121145527971006 +886.0,4.276014455852778 +887.0,4.482595146771687 +888.0,2.500061853857281 +889.0,2.721629527147932 +890.0,2.8629772041222803 +891.0,3.0336358787089104 +892.0,3.1978508247702626 +893.0,3.4168894026184398 +894.0,3.6609451381970306 +895.0,3.7427398288398326 +896.0,3.929076673245968 +897.0,4.131698632846013 +898.0,4.259284321641243 +899.0,4.482753477978821 +900.0,2.4779956829417524 +901.0,2.6864699412710453 +902.0,2.8502231843292405 +903.0,3.0562794803687416 +904.0,3.2369424487540903 +905.0,3.3815695393061667 +906.0,3.5898030346261987 +907.0,3.7632340090525638 +908.0,3.9457721617153516 +909.0,4.083810612003265 +910.0,4.300744929328507 +911.0,4.469779745305911 +912.0,2.4745047340202384 +913.0,2.685997626974709 +914.0,2.83597457577503 +915.0,3.0630209146678573 +916.0,3.2389686196238996 +917.0,3.377091096574059 +918.0,3.57802788709554 +919.0,3.719109907086017 +920.0,3.9234991140030364 +921.0,4.091811283762182 +922.0,4.321837979582581 +923.0,4.452408090652307 +924.0,2.515901727922386 +925.0,2.6860191828324558 +926.0,2.8946982169451565 +927.0,3.0209022668764747 +928.0,3.2149110271731125 +929.0,3.393725888681269 +930.0,3.528318828228439 +931.0,3.7666994612097517 +932.0,3.914415920243197 +933.0,4.096559063811374 +934.0,4.301828619605468 +935.0,4.516103030185177 +936.0,2.50560629505283 +937.0,2.6946089953270302 +938.0,2.8646425470768504 +939.0,3.044588338722052 +940.0,3.2162771961745973 +941.0,3.4097913885848654 +942.0,3.554088162385259 +943.0,3.7597090662874333 +944.0,3.939122876294067 +945.0,4.124132183291868 +946.0,4.3089062230312125 +947.0,4.4504636479882596 +948.0,2.5083588532352135 +949.0,2.665521666450351 +950.0,2.8357336482739806 +951.0,3.0448735783221337 +952.0,3.197412394160413 +953.0,3.3753680373037978 +954.0,3.6102812581390387 +955.0,3.752901639832279 +956.0,3.9561914406501675 +957.0,4.146317702741989 +958.0,4.2991640602714085 +959.0,4.470244535079984 +960.0,2.4637418139868346 +961.0,2.7044247167211983 +962.0,2.842647491846016 +963.0,3.0567944751028446 +964.0,3.2295971931929506 +965.0,3.4350931089463956 +966.0,3.5548188931121656 +967.0,3.7499897374481095 +968.0,3.9313338628426906 +969.0,4.139112169819302 +970.0,4.317385733635028 +971.0,4.5024292724698265 +972.0,2.526444551687992 +973.0,2.698266631169755 +974.0,2.8620110656354223 +975.0,3.0125598238596725 +976.0,3.223876574733359 +977.0,3.387994172045898 +978.0,3.607259418688071 +979.0,3.7551520143515047 +980.0,3.9194798585937503 +981.0,4.154542833458907 +982.0,4.2827577755204995 +983.0,4.463041753798853 +984.0,2.501493064801118 +985.0,2.6277189233116105 +986.0,2.8810332719007374 +987.0,3.0127454535449982 +988.0,3.1868947652595607 +989.0,3.420468630075085 +990.0,3.5722466752172926 +991.0,3.7715868687216325 +992.0,3.9430234906917447 +993.0,4.150283109391929 +994.0,4.312099707904054 +995.0,4.493508438938814 +996.0,2.5030512848689916 +997.0,2.69543462362686 +998.0,2.8683114130025005 +999.0,3.0583956237955405 +1000.0,3.2025834772971016 +1001.0,3.3409082583797534 +1002.0,3.6006983552509277 +1003.0,3.7573545263578545 +1004.0,3.9841268224399387 +1005.0,4.151348719154398 +1006.0,4.318496794890049 +1007.0,4.485556351618029 +1008.0,2.4929984704705985 +1009.0,2.672192239833285 +1010.0,2.843252001778947 +1011.0,3.0620477156748467 +1012.0,3.254996447041389 +1013.0,3.3757452912381147 +1014.0,3.568477154515719 +1015.0,3.7094111531212026 +1016.0,3.9469242092982952 +1017.0,4.116917833666344 +1018.0,4.3010748433622 +1019.0,4.4843453061594545 +1020.0,2.5318693433938537 +1021.0,2.6858223946322766 +1022.0,2.8236287842655896 +1023.0,2.9987362254693233 +1024.0,3.264182163137326 +1025.0,3.4017709218051806 +1026.0,3.546674131367992 +1027.0,3.768110197557631 +1028.0,3.898432059613558 +1029.0,4.1396789223446016 +1030.0,4.268516990400623 +1031.0,4.515599538738148 +1032.0,2.5109700879667645 +1033.0,2.6316652396983344 +1034.0,2.8974847477687757 +1035.0,3.0493678554035886 +1036.0,3.2121410520126177 +1037.0,3.3946460960791294 +1038.0,3.5931560575221133 +1039.0,3.7847279369400737 +1040.0,3.9779652862650154 +1041.0,4.122612512030129 +1042.0,4.320884443310563 +1043.0,4.493401024956076 +1044.0,2.4909885022130664 +1045.0,2.7223264736775192 +1046.0,2.8402869566823945 +1047.0,3.04150371627285 +1048.0,3.2291454993623137 +1049.0,3.387577573978322 +1050.0,3.6303883956445206 +1051.0,3.7791523742114426 +1052.0,3.9610219235158595 +1053.0,4.1157388620642275 +1054.0,4.331574324642083 +1055.0,4.4607126389701675 +1056.0,2.5071593501408804 +1057.0,2.681389075657363 +1058.0,2.863008915409148 +1059.0,2.9815979105009816 +1060.0,3.252708080078049 +1061.0,3.407636253127601 +1062.0,3.593219920528715 +1063.0,3.7220544382491267 +1064.0,3.901321532985989 +1065.0,4.122209230291337 +1066.0,4.335765220562263 +1067.0,4.414078907459463 +1068.0,2.442244072068761 +1069.0,2.6451056196059075 +1070.0,2.867665578296945 +1071.0,3.02623750736028 +1072.0,3.2219295745275947 +1073.0,3.3526429225026693 +1074.0,3.5496581780941763 +1075.0,3.7978958796411444 +1076.0,3.892597421432015 +1077.0,4.096435052564136 +1078.0,4.270993109194185 +1079.0,4.47627350426673 +1080.0,2.4893888202895664 +1081.0,2.652276055986577 +1082.0,2.8727755240256436 +1083.0,3.0080477174065408 +1084.0,3.230892811048767 +1085.0,3.4269477996877207 +1086.0,3.5597936226683116 +1087.0,3.7745406062541016 +1088.0,3.976769492890418 +1089.0,4.10195541914751 +1090.0,4.344005513768708 +1091.0,4.428937633493991 +1092.0,2.514933168528724 +1093.0,2.6537878430743995 +1094.0,2.869864759570362 +1095.0,3.0887235233633943 +1096.0,3.231101125989544 +1097.0,3.426104768341424 +1098.0,3.566558392963785 +1099.0,3.775561497093943 +1100.0,3.9137664334640334 +1101.0,4.091499672377881 +1102.0,4.24365869110558 +1103.0,4.451923846810984 +1104.0,2.493110954343836 +1105.0,2.678450872490042 +1106.0,2.830428591257638 +1107.0,3.0345796961271736 +1108.0,3.222706698658754 +1109.0,3.4061855347120176 +1110.0,3.5727965753804636 +1111.0,3.742641253439174 +1112.0,3.9784750289783606 +1113.0,4.089182693457512 +1114.0,4.311035187363325 +1115.0,4.490803518710943 +1116.0,2.5127678685149064 +1117.0,2.689027426446765 +1118.0,2.8121322612152104 +1119.0,3.0257207880787274 +1120.0,3.18976316637861 +1121.0,3.4025164121694225 +1122.0,3.5983044154481725 +1123.0,3.7696986994543376 +1124.0,3.955705080625068 +1125.0,4.108080642913478 +1126.0,4.299036269072617 +1127.0,4.469307592799898 +1128.0,2.5000643451190294 +1129.0,2.668003191548907 +1130.0,2.878754253784036 +1131.0,3.060652099116128 +1132.0,3.1632837069263178 +1133.0,3.3952030909955964 +1134.0,3.5800662351064303 +1135.0,3.7960949597643325 +1136.0,3.919822113527507 +1137.0,4.080951165946959 +1138.0,4.26660727290111 +1139.0,4.531593926440818 +1140.0,2.513115524838241 +1141.0,2.663077959353743 +1142.0,2.842310228002353 +1143.0,3.0361283992163437 +1144.0,3.2195705533793655 +1145.0,3.406085074428195 +1146.0,3.558862155016819 +1147.0,3.753572879334592 +1148.0,3.882228363647655 +1149.0,4.063812290415745 +1150.0,4.303717312100791 +1151.0,4.4932082776944595 +1152.0,2.5038662851050506 +1153.0,2.6529909292574088 +1154.0,2.8370154528539553 +1155.0,3.061160037423518 +1156.0,3.236380074859899 +1157.0,3.396068537158455 +1158.0,3.5634571942642372 +1159.0,3.7990822101680983 +1160.0,3.9523229860904223 +1161.0,4.118889027895501 +1162.0,4.293415468418259 +1163.0,4.45211534174205 +1164.0,2.523198694327016 +1165.0,2.660062853627018 +1166.0,2.8548897895736265 +1167.0,3.052071639606313 +1168.0,3.194102628761343 +1169.0,3.3740503790486795 +1170.0,3.5273754571425546 +1171.0,3.7463602384518957 +1172.0,3.9742075426133314 +1173.0,4.103675058933114 +1174.0,4.319585621179993 +1175.0,4.493376806882445 +1176.0,2.4998239454141733 +1177.0,2.6781026470126714 +1178.0,2.8276648100654818 +1179.0,3.0599883007684108 +1180.0,3.221058466136025 +1181.0,3.393598166955268 +1182.0,3.591807108550666 +1183.0,3.7519262354710117 +1184.0,3.9792002009190677 +1185.0,4.113887433560739 +1186.0,4.2978531608313855 +1187.0,4.51497474757737 +1188.0,2.4854914442283946 +1189.0,2.663370138009992 +1190.0,2.899594568902688 +1191.0,3.031579808567496 +1192.0,3.196456612925619 +1193.0,3.405173388711196 +1194.0,3.5922161155993444 +1195.0,3.739589704630938 +1196.0,3.9372460996942005 +1197.0,4.138167906005074 +1198.0,4.319236708210854 +1199.0,4.462812193804612 +1200.0,2.500465699419345 +1201.0,2.6763153257389725 +1202.0,2.820291330765958 +1203.0,2.979114247196547 +1204.0,3.169985452123492 +1205.0,3.4076317397591063 +1206.0,3.570478771191048 +1207.0,3.800773924684677 +1208.0,3.944215416510326 +1209.0,4.113473696385538 +1210.0,4.32679177026559 +1211.0,4.450331258476781 +1212.0,2.487426286670474 +1213.0,2.6925385430369144 +1214.0,2.854236775345036 +1215.0,3.0244275090578525 +1216.0,3.2036954887104967 +1217.0,3.3855279911308434 +1218.0,3.5869071755811657 +1219.0,3.7125840652817392 +1220.0,3.9181895397726008 +1221.0,4.067978897309824 +1222.0,4.314220194044366 +1223.0,4.489098187269977 +1224.0,2.5268204393524445 +1225.0,2.6972644984387992 +1226.0,2.8406303510963555 +1227.0,3.057880664113966 +1228.0,3.2090845198288838 +1229.0,3.386033704815757 +1230.0,3.5694784079333775 +1231.0,3.746927044490351 +1232.0,3.925900374705541 +1233.0,4.147198406081863 +1234.0,4.319930341704804 +1235.0,4.426316505103355 +1236.0,2.51947390076537 +1237.0,2.7019811396520153 +1238.0,2.8771987077746446 +1239.0,3.0737882404940446 +1240.0,3.2274799067447364 +1241.0,3.4056836732981446 +1242.0,3.5748033278236533 +1243.0,3.7373552888520605 +1244.0,3.9220388960882495 +1245.0,4.118855084356041 +1246.0,4.283351894534894 +1247.0,4.485672910890357 +1248.0,2.4847593879917245 +1249.0,2.6804107450430834 +1250.0,2.886839010434623 +1251.0,3.04809024081183 +1252.0,3.1987506750200665 +1253.0,3.367179276870724 +1254.0,3.519425653571819 +1255.0,3.7847513800410586 +1256.0,3.9691197474107245 +1257.0,4.143803623601507 +1258.0,4.261798604841047 +1259.0,4.513616270176483 +1260.0,2.4589004488009096 +1261.0,2.6823615733680124 +1262.0,2.8815928157594315 +1263.0,3.0463162888525654 +1264.0,3.2257609869069266 +1265.0,3.434193000371085 +1266.0,3.6205065889010672 +1267.0,3.7504464114168945 +1268.0,3.878676563815594 +1269.0,4.141999089453926 +1270.0,4.293052833944821 +1271.0,4.446837228544945 +1272.0,2.500585882921906 +1273.0,2.6757106312080348 +1274.0,2.8564822127241625 +1275.0,3.0617330879938573 +1276.0,3.2098473964344323 +1277.0,3.3739783556173415 +1278.0,3.557451125073002 +1279.0,3.753163358192856 +1280.0,3.915877189199613 +1281.0,4.14168257998772 +1282.0,4.314968641071771 +1283.0,4.4625633142253704 +1284.0,2.4664332273455147 +1285.0,2.653601090321089 +1286.0,2.823393518349229 +1287.0,3.0679482010661006 +1288.0,3.2464393230351494 +1289.0,3.3933944410307255 +1290.0,3.590818930477901 +1291.0,3.755135782258812 +1292.0,3.9278539945206585 +1293.0,4.110272213333915 +1294.0,4.26415068597264 +1295.0,4.481082079107723 +1296.0,2.564314114583374 +1297.0,2.736213286310831 +1298.0,2.8607688664256297 +1299.0,3.0522905225099377 +1300.0,3.262858250325008 +1301.0,3.3476517150822653 +1302.0,3.5962327231880025 +1303.0,3.7559596322687137 +1304.0,3.912598046912749 +1305.0,4.094463660895883 +1306.0,4.324275598686541 +1307.0,4.46771732481694 +1308.0,2.5083865103830947 +1309.0,2.6947664100604567 +1310.0,2.847813468080516 +1311.0,3.0821524359381614 +1312.0,3.160491805930579 +1313.0,3.4137074425526586 +1314.0,3.567803154686059 +1315.0,3.7719092117911797 +1316.0,3.9505253309974995 +1317.0,4.0668090540819515 +1318.0,4.289054905729083 +1319.0,4.475471456939268 +1320.0,2.5494725965149283 +1321.0,2.721946652095794 +1322.0,2.83853024309736 +1323.0,3.0315536127648968 +1324.0,3.191126444550255 +1325.0,3.4298377907745694 +1326.0,3.5526713506813064 +1327.0,3.79468801183222 +1328.0,3.9478243339384704 +1329.0,4.096706257010559 +1330.0,4.261951861894201 +1331.0,4.472095394998676 +1332.0,2.5134214026398127 +1333.0,2.690027743937996 +1334.0,2.869265028150592 +1335.0,3.017364629883224 +1336.0,3.2374149704420048 +1337.0,3.4445254568028343 +1338.0,3.5213204331352155 +1339.0,3.7745391313418115 +1340.0,3.920639495977547 +1341.0,4.1182842091402065 +1342.0,4.3420310137002085 +1343.0,4.453588906736334 +1344.0,2.50825608658304 +1345.0,2.683887487221007 +1346.0,2.8586737250680265 +1347.0,3.041277371235602 +1348.0,3.2019766970085106 +1349.0,3.4038896108633683 +1350.0,3.5995009461733294 +1351.0,3.740889626295565 +1352.0,3.9809670384673783 +1353.0,4.1092156711397285 +1354.0,4.292227063434024 +1355.0,4.48826808155795 +1356.0,2.528817787427576 +1357.0,2.6555726184474664 +1358.0,2.862070892484986 +1359.0,3.025491794350242 +1360.0,3.204678060167469 +1361.0,3.3934516310490306 +1362.0,3.549686673625653 +1363.0,3.767210343464017 +1364.0,3.954476935027273 +1365.0,4.104451911966621 +1366.0,4.358498143263415 +1367.0,4.491018696293187 +1368.0,2.5032787176821296 +1369.0,2.6698126645084095 +1370.0,2.891333184293964 +1371.0,3.050343810487613 +1372.0,3.2168951800238808 +1373.0,3.406390495820961 +1374.0,3.504328952294436 +1375.0,3.781297562186046 +1376.0,3.930531976563142 +1377.0,4.146188930913645 +1378.0,4.310290369259957 +1379.0,4.474403643502058 +1380.0,2.4850946698725913 +1381.0,2.6613675330968363 +1382.0,2.848363989915676 +1383.0,3.0357156090772115 +1384.0,3.2199588683925153 +1385.0,3.44919473222526 +1386.0,3.549749850051494 +1387.0,3.7629917001978446 +1388.0,3.9580066958641935 +1389.0,4.086759286306523 +1390.0,4.351717040395364 +1391.0,4.481320378162934 +1392.0,2.495163261535333 +1393.0,2.6627510351086117 +1394.0,2.86734504243935 +1395.0,3.001184929714108 +1396.0,3.2576659298375588 +1397.0,3.4331878081121254 +1398.0,3.5692129203225242 +1399.0,3.734672301139342 diff --git a/tests/fixtures/catalogs/case_017_clustered_1400d.csv b/tests/fixtures/catalogs/case_017_clustered_1400d.csv new file mode 100644 index 0000000..92757a6 --- /dev/null +++ b/tests/fixtures/catalogs/case_017_clustered_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,2.4856618008182276 +1.0,2.661716000388748 +2.0,2.306372858838645 +3.0,2.834301790276167 +4.0,3.1048988026558177 +5.0,2.7937490415127932 +6.0,2.5870466400955996 +7.0,2.617468570223335 +8.0,2.5505627900111336 +9.0,2.614759409465111 +10.0,2.681096562070718 +11.0,3.4970757973726423 +12.0,2.6567277077271214 +13.0,2.3871955121550323 +14.0,2.5929293161860327 +15.0,2.9976676432999363 +16.0,2.634899166428555 +17.0,2.3838479306653606 +18.0,3.7557516987678365 +19.0,2.6054773577928554 +20.0,2.8542482715867123 +21.0,2.3246699531512243 +22.0,2.586039910568267 +23.0,2.341632766506669 +24.0,2.9384983113686927 +25.0,2.367885179577631 +26.0,2.373418493811999 +27.0,3.00350496917534 +28.0,3.0001696962965 +29.0,2.746775164857107 +30.0,2.7429791473162815 +31.0,2.4768856949109246 +32.0,2.873870765679677 +33.0,3.698866194678337 +34.0,2.379729672977022 +35.0,3.0694153961970705 +36.0,2.4717054800238136 +37.0,2.89463195748667 +38.0,3.251120583770742 +39.0,2.6847556925761484 +40.0,2.512969717447323 +41.0,2.4887456980692697 +42.0,2.7713871867521562 +43.0,2.602081588182074 +44.0,2.5496605690198026 +45.0,2.7005832768397227 +46.0,2.3068604856681354 +47.0,2.5928289396257393 +48.0,2.593581810280614 +49.0,2.4799988689638117 +50.0,2.577590652367643 +51.0,2.3867388043505144 +52.0,2.44937555477816 +53.0,2.4161748252600406 +54.0,2.4970699000185475 +55.0,2.8005079299853888 +56.0,2.775265492459199 +57.0,2.3818401130807088 +58.0,2.7568070571450907 +59.0,2.7712663995755364 +60.0,2.4007707753354435 +61.0,3.2116274582644917 +62.0,2.402244114633495 +63.0,2.630098023711373 +64.0,2.6298436458950136 +65.0,2.631660331224982 +66.0,2.3200897670367664 +67.0,2.653240719280534 +68.0,3.001645877292755 +69.0,2.5292817499411178 +70.0,2.544737932303045 +71.0,2.6862060005032258 +72.0,2.7364870915650297 +73.0,2.4800011118986895 +74.0,2.4424321254727714 +75.0,4.096550338864518 +76.0,2.7774881211741493 +77.0,2.4737755830004557 +78.0,2.321475841913688 +79.0,2.3455265415802593 +80.0,2.369848956623208 +81.0,2.7225303325816426 +82.0,2.9161064491182085 +83.0,3.2207371394478543 +84.0,3.291082846705017 +85.0,2.3208491365155686 +86.0,2.3094236893027236 +87.0,2.3070740351265413 +88.0,2.9458923764602454 +89.0,4.343829819895507 +90.0,2.3080463660429245 +91.0,2.4979622241732096 +92.0,2.4862588360461504 +93.0,3.322588582439579 +94.0,2.334598547894426 +95.0,2.302106229550564 +96.0,2.379409169615675 +97.0,2.5097276295595883 +98.0,2.5811446585198388 +99.0,2.386246285357488 +100.0,2.9340466307189326 +101.0,2.407184382544916 +102.0,2.368765989469747 +103.0,4.740739151008712 +104.0,2.489919285167021 +105.0,2.4486083803960805 +106.0,4.386764582380387 +107.0,2.4171853425138132 +108.0,2.6879322116020874 +109.0,2.5583909226784063 +110.0,2.9210016004876613 +111.0,3.7190977669258185 +112.0,2.665287480684052 +113.0,2.3362526567485435 +114.0,2.497017307866755 +115.0,4.662262365507576 +116.0,2.575168917295257 +117.0,2.919377002485548 +118.0,3.1304312023492518 +119.0,4.058256123205507 +120.0,2.395423507514905 +121.0,2.474695303133328 +122.0,3.2082103658516807 +123.0,2.988854768019808 +124.0,2.6211604575719845 +125.0,2.771840748058436 +126.0,2.530889007953141 +127.0,2.7594709979940477 +128.0,2.6726724678312586 +129.0,3.23508454128019 +130.0,2.3565385852244103 +131.0,2.519200828531407 +132.0,2.429973826669595 +133.0,3.9606809468678126 +134.0,2.616292210645908 +135.0,2.312235503121695 +136.0,2.3744520427084783 +137.0,2.442817479963643 +138.0,2.5418053770919595 +139.0,3.068053392770926 +140.0,2.5054373712754954 +141.0,4.3755010224005115 +142.0,2.514211291823598 +143.0,3.0928933287667983 +144.0,2.3377931092472806 +145.0,3.990767010787711 +146.0,2.517358440279896 +147.0,2.562821386535672 +148.0,3.295955922521005 +149.0,2.3266019814136754 +150.0,2.3980617052573114 +151.0,2.6010009821273927 +152.0,2.4104997037420066 +153.0,3.3641698948647685 +154.0,2.5012926564957043 +155.0,2.449583185995249 +156.0,2.6130278914673397 +157.0,3.252906767229081 +158.0,2.33401393367474 +159.0,2.3615996425324264 +160.0,2.521890778326051 +161.0,5.582694399844176 +162.0,3.002232623487297 +163.0,2.4957899753245743 +164.0,2.4056335026012468 +165.0,2.430861910470948 +166.0,2.443876529892072 +167.0,2.63334920672063 +168.0,2.5587302206087608 +169.0,3.61423970981184 +170.0,2.7776486627245918 +171.0,3.177690303842794 +172.0,3.742568612561998 +173.0,3.0090120953801156 +174.0,2.4735518146596824 +175.0,2.437233257203384 +176.0,2.44405837543998 +177.0,2.3170894306744607 +178.0,3.3715671604267525 +179.0,3.414040766019892 +180.0,2.8087616595780514 +181.0,3.0976272878519135 +182.0,2.7209516360809243 +183.0,2.316577015780797 +184.0,2.3142387382142577 +185.0,3.73092158441307 +186.0,3.0768972294859696 +187.0,3.718733365111811 +188.0,3.2291021671774893 +189.0,3.505917640011659 +190.0,4.092325346104336 +191.0,2.7189423861691817 +192.0,3.315715362948829 +193.0,3.312474874073167 +194.0,3.027946032473519 +195.0,3.365594565871727 +196.0,2.7567731307144294 +197.0,3.4023816901070694 +198.0,3.007307862443613 +199.0,3.1789003593383502 +200.0,2.959653004474937 +201.0,3.077438926802584 +202.0,3.450858548382472 +203.0,4.112664928590662 +204.0,3.076531507429393 +205.0,2.6219545065950647 +206.0,4.239980947174729 +207.0,4.703596045138363 +208.0,3.2032520711857253 +209.0,2.906781158776271 +210.0,2.6885251886003836 +211.0,3.6469460451378355 +212.0,2.7697873877544836 +213.0,3.297746319107752 +214.0,2.8411726904440076 +215.0,4.020686166327003 +216.0,2.331667892683557 +217.0,2.7741552663851508 +218.0,2.353245662202232 +219.0,3.164175509657663 +220.0,2.679080332846548 +221.0,2.528394928407891 +222.0,2.5345716591190643 +223.0,2.43280972555393 +224.0,2.3538274269320354 +225.0,2.806851883661565 +226.0,3.1394047167952555 +227.0,2.5868625329267623 +228.0,2.4298764369431805 +229.0,2.4101435934503748 +230.0,2.4295581505481523 +231.0,2.7034527226885667 +232.0,2.344483951577565 +233.0,2.9054535549540024 +234.0,2.5809920774823207 +235.0,2.4778835968194803 +236.0,2.530883145618863 +237.0,2.67961790201438 +238.0,2.583331500554044 +239.0,3.6223192363949144 +240.0,2.7459880459045527 +241.0,2.644867843267625 +242.0,3.282479346594541 +243.0,2.4491955284653604 +244.0,2.483831174916297 +245.0,2.406407937270486 +246.0,2.4126676060917185 +247.0,2.3042174862793 +248.0,2.390337575532166 +249.0,2.409716981982382 +250.0,2.6540718154440857 +251.0,3.6077637095770685 +252.0,3.632309720018936 +253.0,2.4557840747231605 +254.0,2.5557139177611066 +255.0,2.556673302396886 +256.0,2.698976401435061 +257.0,2.308679782155264 +258.0,2.526839971300418 +259.0,2.356267678129828 +260.0,3.1207646233913184 +261.0,2.645606153547333 +262.0,2.7101352207758778 +263.0,2.338759746056336 +264.0,2.411798288580632 +265.0,2.3189349494416835 +266.0,2.588888558915339 +267.0,2.337369495790054 +268.0,2.5344529581869324 +269.0,3.008990237365192 +270.0,2.5943525489526342 +271.0,2.4039483847353553 +272.0,2.565239303015832 +273.0,2.306677771388908 +274.0,3.0872839378254358 +275.0,3.1711614570906685 +276.0,2.9764700021125945 +277.0,2.435523010833912 +278.0,3.480028415930488 +279.0,2.308967726235251 +280.0,2.321168140630133 +281.0,2.644278009351523 +282.0,2.582696433682936 +283.0,2.569647219599089 +284.0,3.766816975539128 +285.0,2.5904668082720903 +286.0,2.4390509256157955 +287.0,2.7269041820652045 +288.0,2.348213634066888 +289.0,2.327779493663421 +290.0,2.452993500649064 +291.0,2.7147532914123147 +292.0,2.7098545031950163 +293.0,3.077803286492081 +294.0,2.9074205382266713 +295.0,2.3742170157796934 +296.0,2.4261138096534007 +297.0,2.3098504065099554 +298.0,2.8187358168800256 +299.0,2.45983765853612 +300.0,2.512501695044839 +301.0,2.5916060675311305 +302.0,2.690884316375193 +303.0,3.3576500669632834 +304.0,2.503171756536381 +305.0,2.554413936465635 +306.0,2.7344104450008313 +307.0,2.4800529936969964 +308.0,2.4050213249592205 +309.0,2.4771096545450817 +310.0,2.3487172123608726 +311.0,2.664113433288807 +312.0,3.0344970579674717 +313.0,2.4753980743872854 +314.0,3.4569270274892228 +315.0,2.5157061282801667 +316.0,2.6968269729237377 +317.0,2.3823943465104693 +318.0,3.881958159914771 +319.0,3.1024934447659973 +320.0,2.3870274797424154 +321.0,2.4221159372323062 +322.0,3.0406097084759582 +323.0,2.3553663947110697 +324.0,2.7538104092045383 +325.0,2.6426801477156054 +326.0,2.6178216316176264 +327.0,2.835203185804108 +328.0,2.3575506260567707 +329.0,2.5980270679141926 +330.0,3.5903243676671157 +331.0,2.5990356904808802 +332.0,2.3807406211909763 +333.0,2.77547149288096 +334.0,2.406712652729978 +335.0,2.3685583978509466 +336.0,2.476590894845317 +337.0,2.8490716551927893 +338.0,2.3064769099948816 +339.0,3.1808697576194755 +340.0,2.829830516648326 +341.0,2.4258959399575835 +342.0,2.311076149814372 +343.0,2.7335288432859652 +344.0,2.5466804552781523 +345.0,4.380079753069295 +346.0,2.427153576457614 +347.0,2.536844562077288 +348.0,2.89507049462241 +349.0,2.5266569520386843 +350.0,2.686305151004411 +351.0,2.8699216945328336 +352.0,2.7161907496533764 +353.0,2.406984156961346 +354.0,2.7567630159899856 +355.0,2.6235160470682626 +356.0,2.4574978201501785 +357.0,2.4338682553527415 +358.0,2.7744963148877195 +359.0,2.4766563984615972 +360.0,2.426482557847408 +361.0,2.3164080339446596 +362.0,2.660859653498 +363.0,2.6547737089475087 +364.0,2.3441727041041 +365.0,2.4612059263779824 +366.0,2.5900957536491296 +367.0,2.737944726482366 +368.0,2.3760845485603155 +369.0,2.5263905280350047 +370.0,2.9336700794952857 +371.0,2.88904932896456 +372.0,2.5307167635646164 +373.0,2.3607270601358965 +374.0,2.3040902842438253 +375.0,2.8014601822451373 +376.0,2.930851748603124 +377.0,3.1450054244869556 +378.0,2.622057043491772 +379.0,2.38040300425736 +380.0,2.519809154123097 +381.0,3.299040701566891 +382.0,2.7079850823021605 +383.0,2.3212888206507114 +384.0,3.326653189478839 +385.0,2.7765139798526555 +386.0,2.3391481998173815 +387.0,3.282418896372893 +388.0,2.924722232161243 +389.0,2.5608838998109693 +390.0,2.311770171758481 +391.0,4.136240212195242 +392.0,2.3919542510030154 +393.0,2.7640482599375638 +394.0,2.861277710583735 +395.0,2.359583013957623 +396.0,2.4239092056335263 +397.0,2.359525634106534 +398.0,3.1442958796275273 +399.0,2.3133166089861277 +400.0,2.806695594353541 +401.0,2.4512706867804037 +402.0,2.4644480971148535 +403.0,2.529624885922811 +404.0,2.645635551326616 +405.0,2.4437703519255503 +406.0,3.2776892381811944 +407.0,2.562141115069215 +408.0,2.498961839552285 +409.0,3.234423682523204 +410.0,2.848322500965903 +411.0,2.618175459022731 +412.0,2.4913417614626123 +413.0,3.0259943522818387 +414.0,2.7933478073140883 +415.0,2.784875849235076 +416.0,2.425736494861182 +417.0,2.318470313343179 +418.0,2.4138657668598285 +419.0,2.332925795004528 +420.0,2.494383676754631 +421.0,3.4406734781289394 +422.0,2.365399773962307 +423.0,2.5835961351868626 +424.0,3.0709489724870167 +425.0,4.437121996668104 +426.0,2.4057532431247073 +427.0,2.6698624567772615 +428.0,2.4236946917139344 +429.0,2.4562448898551614 +430.0,2.3215660280826396 +431.0,2.72595527059124 +432.0,2.64014797143208 +433.0,2.7984188890221233 +434.0,2.5200232669122875 +435.0,3.6754304724305795 +436.0,5.434146364112001 +437.0,2.955642287540109 +438.0,3.393702984895981 +439.0,3.5280148017094013 +440.0,3.634135270277871 +441.0,2.527303259679636 +442.0,2.8081648893037654 +443.0,2.7283881813176247 +444.0,5.521620136853043 +445.0,2.9094671332805877 +446.0,2.4663046181510246 +447.0,3.2898924258702085 +448.0,2.6152709062812574 +449.0,2.980229285228571 +450.0,2.9780457622616923 +451.0,3.330313837963539 +452.0,6.0893607800586445 +453.0,2.9601026987298513 +454.0,2.9723023953936454 +455.0,3.06781517190921 +456.0,3.8125455171566123 +457.0,4.591133087153546 +458.0,3.724058928764339 +459.0,3.245180208141904 +460.0,4.345370824423558 +461.0,3.225212832782988 +462.0,3.157000484324122 +463.0,2.9930750761690126 +464.0,2.8162354434194605 +465.0,4.23545176972454 +466.0,2.5529397195466683 +467.0,2.878883629499563 +468.0,2.4401743876465156 +469.0,2.3578236546392364 +470.0,3.042613852941118 +471.0,3.0331423784612643 +472.0,2.7105851650927497 +473.0,2.819659043021406 +474.0,2.8724835831466624 +475.0,2.313165375491125 +476.0,2.5516208913032616 +477.0,2.7008054564202433 +478.0,3.0223537623369 +479.0,2.3828339242363605 +480.0,2.948234332876735 +481.0,2.4097779890922735 +482.0,2.7116526100905505 +483.0,2.6362410102356253 +484.0,2.333621807629912 +485.0,2.503226380195511 +486.0,2.708575364389861 +487.0,2.3472362940017772 +488.0,2.386621312194013 +489.0,2.3617706340528404 +490.0,2.3818241304252408 +491.0,2.3677959359598626 +492.0,2.461854452005216 +493.0,2.4306556105799606 +494.0,3.1199104178751424 +495.0,3.0659429471230424 +496.0,2.7308104564625926 +497.0,2.5862948064370963 +498.0,2.716417620871235 +499.0,2.8297845917623983 +500.0,3.819784858272508 +501.0,3.1276227615585057 +502.0,3.45651161913837 +503.0,2.777690385705308 +504.0,2.3232915628231314 +505.0,2.4700160317393958 +506.0,3.016941636268263 +507.0,3.499936505350866 +508.0,2.578611164832104 +509.0,2.4852999634943127 +510.0,2.5612779747519077 +511.0,3.3663053027915755 +512.0,3.4307023711050393 +513.0,2.5029911126432913 +514.0,2.8461253061026888 +515.0,2.933407438274842 +516.0,2.4194390314257688 +517.0,2.449858876522866 +518.0,2.3285832544939145 +519.0,2.4920134397308535 +520.0,2.6106698276887026 +521.0,2.523228117954827 +522.0,2.31402433092508 +523.0,2.3589172167750836 +524.0,2.8048832422272665 +525.0,2.462885622681351 +526.0,3.2070678171576996 +527.0,3.089217642789604 +528.0,2.7774670892070876 +529.0,2.481255631716374 +530.0,2.439533613211817 +531.0,2.486426575413449 +532.0,2.456843059379793 +533.0,2.9152250965119144 +534.0,2.3892592266130857 +535.0,2.962131918883766 +536.0,2.791356865926777 +537.0,2.687099022407769 +538.0,2.3980145327289843 +539.0,2.915250687035424 +540.0,3.5276907124196093 +541.0,2.4584765653627327 +542.0,2.3740094888271055 +543.0,2.3395172760356395 +544.0,3.041077076702674 +545.0,3.572743341109283 +546.0,2.670150854714585 +547.0,2.7705235469883758 +548.0,2.7247526923523 +549.0,2.9644124123160127 +550.0,4.217789491923727 +551.0,2.911794821001767 +552.0,2.3780545015074095 +553.0,4.338723535882897 +554.0,2.3739797197074473 +555.0,2.312806999730332 +556.0,2.464452531049378 +557.0,2.840668058147002 +558.0,2.36297454469032 +559.0,3.032169725604648 +560.0,2.4499016939330254 +561.0,2.5829418701635163 +562.0,2.6637414513310977 +563.0,2.3194818957288574 +564.0,3.2526881619752017 +565.0,2.6634618142463737 +566.0,2.3288444364299443 +567.0,3.5816275499821986 +568.0,2.539633963588534 +569.0,2.5218807497286737 +570.0,2.415512726509477 +571.0,2.542019763462382 +572.0,2.569078951275225 +573.0,2.446251262938793 +574.0,2.6086643354080117 +575.0,2.4076721306606896 +576.0,2.314948987773724 +577.0,2.5304360602190403 +578.0,2.3768943382275447 +579.0,2.8560584113652863 +580.0,2.933529529274205 +581.0,2.6122990286695873 +582.0,3.885695284667148 +583.0,2.923507994164456 +584.0,2.6598312784516716 +585.0,3.3376891144047542 +586.0,2.613631293836948 +587.0,4.5798110023675065 +588.0,2.3815110451798884 +589.0,2.7169153463963474 +590.0,2.839105309520232 +591.0,2.3082571686285096 +592.0,2.798854414341589 +593.0,2.4652018257454813 +594.0,3.194458507901822 +595.0,3.261218418749024 +596.0,2.5393951346946197 +597.0,2.4203499804884605 +598.0,2.6611943901025534 +599.0,3.1560452851765497 +600.0,2.43469055741421 +601.0,2.5043040964734082 +602.0,2.44636745488715 +603.0,2.629647332325441 +604.0,2.9739341480429866 +605.0,2.444820269678703 +606.0,3.736976671046566 +607.0,2.4508860624406807 +608.0,2.410305041618897 +609.0,2.735106123249593 +610.0,3.1686750970432893 +611.0,2.38565025420859 +612.0,2.435742364828653 +613.0,2.385899764488449 +614.0,2.580399520465938 +615.0,2.507174326425868 +616.0,2.430195782400462 +617.0,3.6573966270686618 +618.0,2.376338354916213 +619.0,2.946948742131958 +620.0,2.474563148173337 +621.0,2.5308689351746807 +622.0,2.845944058965699 +623.0,2.7253896968635374 +624.0,2.80480583427583 +625.0,2.620839189925229 +626.0,2.4763838720864846 +627.0,3.937377093866467 +628.0,2.4118644722945737 +629.0,2.740945707286469 +630.0,3.3722999918376706 +631.0,2.3426020882364393 +632.0,2.515836092056637 +633.0,2.3735914590454437 +634.0,2.4135373926704924 +635.0,2.336151977438625 +636.0,2.3200526369768824 +637.0,2.3346047495659663 +638.0,2.6865656320603004 +639.0,2.3818598344979347 +640.0,2.4942158193337525 +641.0,2.9190674949328934 +642.0,2.672475791350033 +643.0,2.41012297944932 +644.0,3.018918212812524 +645.0,3.6279073346710877 +646.0,2.623566354905512 +647.0,3.6160624899992833 +648.0,2.7650888030020324 +649.0,2.7596289504592546 +650.0,2.3177025265874036 +651.0,2.3602823825424264 +652.0,3.3320788828649714 +653.0,2.4061233110579914 +654.0,2.4743378982546886 +655.0,2.6612589908662163 +656.0,2.358378437138643 +657.0,3.647484306698014 +658.0,2.400584684775513 +659.0,3.228347322532013 +660.0,2.4974222318838746 +661.0,2.557843771207403 +662.0,2.415608726203455 +663.0,2.4519493323649337 +664.0,2.683370752846758 +665.0,2.8595726204459915 +666.0,2.6235846376174243 +667.0,2.3726482366435993 +668.0,3.432646172183838 +669.0,2.365849687329177 +670.0,2.941643831686416 +671.0,2.864467538094017 +672.0,3.1393180883735847 +673.0,2.8273156586974584 +674.0,2.7032289315834 +675.0,2.3970552360036557 +676.0,2.5375115028625577 +677.0,2.957311479815955 +678.0,3.2487783899613145 +679.0,2.944732757121448 +680.0,2.3720453485182302 +681.0,2.3433897254512197 +682.0,2.492993400772203 +683.0,2.3104925906319544 +684.0,2.424982161987048 +685.0,3.829523713937545 +686.0,3.795408766541242 +687.0,4.0341424975925975 +688.0,8.390208185630913 +689.0,3.656965614844726 +690.0,2.51878524184289 +691.0,4.167509625035726 +692.0,3.6868518540729767 +693.0,2.4890766251964624 +694.0,3.6332355630612554 +695.0,3.966269549829386 +696.0,3.1960502725071422 +697.0,4.161941471985513 +698.0,3.05750237788272 +699.0,3.5704942412529306 +700.0,2.7391948798651358 +701.0,3.6822970133289306 +702.0,3.8085056991577804 +703.0,2.584850374117441 +704.0,4.570644346204205 +705.0,3.4202149500070593 +706.0,2.8111775482085863 +707.0,3.885644676114555 +708.0,2.7329058894991762 +709.0,5.2738515357699125 +710.0,3.5071746168889444 +711.0,4.453953221387578 +712.0,4.88838133355637 +713.0,3.0229072874319702 +714.0,3.141792031737517 +715.0,2.8644699906953264 +716.0,2.5814293520770444 +717.0,2.3031500822109714 +718.0,2.443132684410547 +719.0,3.184320750315517 +720.0,2.6414596927769307 +721.0,2.3411277050869974 +722.0,2.4533157035399866 +723.0,2.837171727813934 +724.0,2.759722129129011 +725.0,2.822135090761728 +726.0,2.506739343948101 +727.0,2.633783436425578 +728.0,2.7729059480854907 +729.0,2.613847437883855 +730.0,2.4958413403163284 +731.0,2.3069610319398635 +732.0,3.4099085445075072 +733.0,2.6693919543890208 +734.0,2.4156309109224083 +735.0,2.686213262334154 +736.0,2.3135200955182444 +737.0,2.55297368670252 +738.0,3.037448437868074 +739.0,2.720489113400231 +740.0,2.5544535721228305 +741.0,3.3345720200835682 +742.0,2.3501409101655404 +743.0,2.6969794210607043 +744.0,2.459492851087037 +745.0,3.9601116987275624 +746.0,2.5641677914676784 +747.0,3.073234451248986 +748.0,2.761474096714964 +749.0,2.3391445545854563 +750.0,2.4147771505801456 +751.0,2.445739431465942 +752.0,2.563104171847745 +753.0,2.3433592924554594 +754.0,2.3807763917103055 +755.0,2.753187788470322 +756.0,2.7478327990926434 +757.0,2.5316086478474378 +758.0,3.047978000954343 +759.0,2.3838641360349997 +760.0,2.5261186797184383 +761.0,2.710269766727846 +762.0,2.799400133842324 +763.0,2.43197943559252 +764.0,2.7750095293428076 +765.0,2.4176887669534697 +766.0,3.174704794395812 +767.0,3.2308318079293654 +768.0,3.482795452720965 +769.0,2.6505740289171085 +770.0,2.7776617982848997 +771.0,2.8671683526361362 +772.0,2.335225802384865 +773.0,3.3752237565000724 +774.0,3.2124995092220883 +775.0,3.432314845995953 +776.0,3.0281761800152367 +777.0,2.481480934678859 +778.0,2.6659664987779044 +779.0,2.6946454392079446 +780.0,3.561614823489837 +781.0,2.497643440529874 +782.0,2.828754638284918 +783.0,2.352387421404104 +784.0,3.129383218203141 +785.0,2.9473960309466913 +786.0,2.3472351521191603 +787.0,2.679905251145878 +788.0,2.592974022013498 +789.0,2.4144219234528395 +790.0,5.054758827053708 +791.0,2.371650149370595 +792.0,2.3835819193729537 +793.0,2.486060364766085 +794.0,2.596840967326336 +795.0,2.906577958633659 +796.0,2.3402260914329647 +797.0,2.761392159782423 +798.0,3.3092612419804976 +799.0,2.56237943151174 +800.0,2.542430101843891 +801.0,2.4963115975203793 +802.0,2.567355274072565 +803.0,3.4120045828847267 +804.0,2.5661576078439423 +805.0,2.4369518742656977 +806.0,2.5250074517721552 +807.0,2.348708189355365 +808.0,2.7387698846190434 +809.0,3.4136471831885222 +810.0,3.259909321130414 +811.0,3.180940952815377 +812.0,2.6100955767698237 +813.0,3.033713198289024 +814.0,3.1185614742523606 +815.0,2.433219423751253 +816.0,3.1145418115077694 +817.0,2.5662474098404213 +818.0,2.9252003537725124 +819.0,3.1247012600463786 +820.0,2.533480866098924 +821.0,2.5368179525171795 +822.0,2.5177685858652765 +823.0,3.0066098939166395 +824.0,3.116545659581033 +825.0,2.4203017152816924 +826.0,2.488512233271542 +827.0,2.4534358048024405 +828.0,2.4762627485969424 +829.0,2.3665087660052104 +830.0,2.3907206179906266 +831.0,3.0139750074619336 +832.0,2.4747659379272946 +833.0,2.6105327948667783 +834.0,2.305029041571409 +835.0,2.4204713226959016 +836.0,3.255284983395176 +837.0,3.0103757167770024 +838.0,2.628130884090465 +839.0,2.881578642913331 +840.0,2.351369745745011 +841.0,2.93378703889915 +842.0,5.419376090126503 +843.0,2.7206084775937045 +844.0,2.590210009089767 +845.0,2.3238939856378296 +846.0,3.031422152217701 +847.0,2.3509505162891453 +848.0,3.169887435669212 +849.0,2.543811988671628 +850.0,2.575383878107106 +851.0,2.307039271043551 +852.0,3.2411172523914233 +853.0,3.1713892240890695 +854.0,2.5507588034857873 +855.0,2.4481352243879164 +856.0,2.792517158570239 +857.0,2.3463473791428373 +858.0,2.7242669592663793 +859.0,2.352351380450291 +860.0,3.1565208931651108 +861.0,2.5541274610953257 +862.0,2.3481580985933244 +863.0,2.9899705384626274 +864.0,2.5779026095370945 +865.0,2.786736399419039 +866.0,5.008741570571587 +867.0,2.567400067553102 +868.0,4.257249114795911 +869.0,2.475027276236633 +870.0,2.3390428731611252 +871.0,2.379201982247546 +872.0,2.5052904437743013 +873.0,2.820618844105189 +874.0,2.3453256905981053 +875.0,2.5689110643371893 +876.0,2.4558330300840003 +877.0,2.8456431935993756 +878.0,3.3554908781319863 +879.0,2.385327457830728 +880.0,2.607006811849778 +881.0,2.4355198899623303 +882.0,2.6869789746260975 +883.0,2.402952594030034 +884.0,2.4683789392190096 +885.0,2.5578423398617502 +886.0,2.5228229054727667 +887.0,3.422887866600071 +888.0,2.5866496752140806 +889.0,2.480609006656323 +890.0,3.6058904692983123 +891.0,2.4150377355515014 +892.0,2.820340722713569 +893.0,2.583101819637178 +894.0,2.810144722093024 +895.0,3.770596431519813 +896.0,2.780129673602722 +897.0,2.931193619783435 +898.0,3.082994780796864 +899.0,3.3844175372419 +900.0,2.402906081968675 +901.0,3.0846897698703075 +902.0,3.3535813556703493 +903.0,2.785529113617317 +904.0,2.43141699104178 +905.0,2.508280140437717 +906.0,2.4512435968888653 +907.0,3.5923502231451874 +908.0,2.638157046205505 +909.0,2.4329941095140795 +910.0,2.4938421702749856 +911.0,2.7515332453933206 +912.0,2.6661052152504183 +913.0,2.3762153030213287 +914.0,3.395876277694171 +915.0,2.4567077743946832 +916.0,2.616896373444887 +917.0,3.0247013150096564 +918.0,3.215564945679644 +919.0,2.455670067555284 +920.0,3.4323426971282727 +921.0,2.574140974491862 +922.0,2.623585698569705 +923.0,2.5381375329426565 +924.0,2.3370530796731255 +925.0,2.7587952558829865 +926.0,2.3546506570025834 +927.0,2.5970548729780427 +928.0,2.421386012042903 +929.0,2.7018471909853656 +930.0,2.486655986871221 +931.0,2.474599127784004 +932.0,2.4322912430759533 +933.0,3.0262611287453876 +934.0,2.3964843445848656 +935.0,2.7912616006932964 +936.0,3.252706076290571 +937.0,3.956192092674378 +938.0,3.511959755396383 +939.0,5.181300666248417 +940.0,2.539628480871425 +941.0,3.4101778925332207 +942.0,3.5828035471339224 +943.0,3.3254911351241416 +944.0,2.392329720214513 +945.0,2.3572414037754528 +946.0,5.639461032602792 +947.0,2.9327235928459703 +948.0,2.604761572612127 +949.0,3.251778646787718 +950.0,3.55731860454399 +951.0,2.7309379538695047 +952.0,4.188346107694462 +953.0,3.9615393939367243 +954.0,2.4095656368537326 +955.0,3.4538479782718348 +956.0,3.8280600026369167 +957.0,3.5958090511752525 +958.0,3.479862539448542 +959.0,4.446682391721945 +960.0,3.1709774465122043 +961.0,2.5998163383961574 +962.0,3.0475934519723924 +963.0,3.235354285350477 +964.0,2.580411370623941 +965.0,3.6669452007750563 +966.0,2.5161486681756853 +967.0,2.5612538311258466 +968.0,2.3703826429251285 +969.0,2.4053438108669853 +970.0,2.7205846490714394 +971.0,3.5465313231304068 +972.0,2.383000085416318 +973.0,2.3822509460818884 +974.0,2.784616094920634 +975.0,2.47388096488622 +976.0,2.738600904260048 +977.0,2.439198975246219 +978.0,3.1632452601850143 +979.0,2.612409668722886 +980.0,2.442349319404035 +981.0,2.6478708248385994 +982.0,3.2187370655244028 +983.0,2.3457089361082635 +984.0,2.3690280507199817 +985.0,2.3403916319446987 +986.0,2.7318333182576873 +987.0,2.7199611704580966 +988.0,2.4732785563448374 +989.0,2.9802654201085232 +990.0,2.5714629150838295 +991.0,2.7930855674559902 +992.0,2.3348342105439865 +993.0,2.546510381697738 +994.0,2.3070531423689546 +995.0,2.6570946932141357 +996.0,2.6373491292894986 +997.0,2.5319950239742077 +998.0,2.6316408289184037 +999.0,2.3781592871073545 +1000.0,2.50715946610462 +1001.0,2.3886879766347744 +1002.0,2.370585118602653 +1003.0,3.38850517250381 +1004.0,2.4695344885140904 +1005.0,3.062666822319876 +1006.0,2.8327964366799763 +1007.0,3.046015977814256 +1008.0,2.387806490135276 +1009.0,2.310735692677994 +1010.0,2.5931803203598944 +1011.0,3.705217674971891 +1012.0,2.352846073139892 +1013.0,2.4970418651458584 +1014.0,3.9049863229899895 +1015.0,2.395203066206248 +1016.0,2.310522532467034 +1017.0,2.9768071935732214 +1018.0,2.4402995590528938 +1019.0,2.3013695083190413 +1020.0,2.3257460025017234 +1021.0,2.871497134915837 +1022.0,2.884257028383245 +1023.0,2.4081885829723833 +1024.0,2.787451693934069 +1025.0,2.5479776453331433 +1026.0,2.5158308572778156 +1027.0,2.3158623721966998 +1028.0,2.3620270449303775 +1029.0,2.3433868953440977 +1030.0,2.3105157302643824 +1031.0,2.3109492900287654 +1032.0,2.3804584189446247 +1033.0,2.4568933663652337 +1034.0,2.6983898119595526 +1035.0,2.659910222623254 +1036.0,3.0299458603644105 +1037.0,2.779148378008429 +1038.0,2.635978074773837 +1039.0,3.1653346003114287 +1040.0,3.328770093868904 +1041.0,3.1318597262351715 +1042.0,3.6332552927746855 +1043.0,2.7415080191028935 +1044.0,2.7337358252827073 +1045.0,2.425654921718281 +1046.0,2.559877392655816 +1047.0,2.3272581200327194 +1048.0,2.453523759946796 +1049.0,2.306820930455916 +1050.0,2.920603545795672 +1051.0,2.4565656776914597 +1052.0,2.874390980336298 +1053.0,2.3086410770833883 +1054.0,2.3958093676251937 +1055.0,2.673039087537699 +1056.0,2.79509245742318 +1057.0,2.4236144627577016 +1058.0,4.457206483701302 +1059.0,2.3564461872125855 +1060.0,2.5060878470637324 +1061.0,2.3942994181470456 +1062.0,2.6791578678747987 +1063.0,2.7010288314175406 +1064.0,2.853232301566639 +1065.0,2.342686523566943 +1066.0,2.4487011054929972 +1067.0,2.505481227575502 +1068.0,2.8625977339202664 +1069.0,2.93415773141776 +1070.0,2.308372470991865 +1071.0,2.643741916268307 +1072.0,2.3624294012711906 +1073.0,2.938961870781702 +1074.0,2.4626593626843047 +1075.0,2.8935734481128432 +1076.0,2.703736802637959 +1077.0,2.8766665607920454 +1078.0,2.851449494849321 +1079.0,2.7194729339685075 +1080.0,2.8685737848336026 +1081.0,2.875426287955937 +1082.0,2.3621116424273096 +1083.0,2.790407504863447 +1084.0,2.612060380112787 +1085.0,2.499711703356896 +1086.0,2.4056234821334543 +1087.0,2.3603665937353533 +1088.0,2.328494337516052 +1089.0,2.4344418347068197 +1090.0,2.9682347056138005 +1091.0,2.5016660520341594 +1092.0,3.199993093228398 +1093.0,2.767413478237538 +1094.0,2.778643955930604 +1095.0,2.491191759822215 +1096.0,2.8218390714747748 +1097.0,4.026331185304409 +1098.0,2.368583482514228 +1099.0,3.3460985284099625 +1100.0,2.6860534198690296 +1101.0,2.4093134938978906 +1102.0,2.742782781448958 +1103.0,2.6307658052689353 +1104.0,2.7872224513347046 +1105.0,2.405305961214258 +1106.0,2.338201778124809 +1107.0,2.4260607771002256 +1108.0,2.688432328141312 +1109.0,2.752263444929849 +1110.0,2.6789760689927666 +1111.0,2.6660739156475852 +1112.0,2.5978153483946733 +1113.0,2.815872879851759 +1114.0,2.336695213605947 +1115.0,2.4960707570963905 +1116.0,2.32052965679748 +1117.0,2.3139913687211893 +1118.0,2.310276615084837 +1119.0,2.7653193395632094 +1120.0,3.236599831840258 +1121.0,2.723151135555887 +1122.0,2.372547748753398 +1123.0,2.462546906379308 +1124.0,3.652045793388684 +1125.0,2.72122565531456 +1126.0,2.422400461576066 +1127.0,2.3184164368362694 +1128.0,2.321811621837563 +1129.0,2.4235394639859633 +1130.0,3.1943861789041263 +1131.0,2.9375017957553293 +1132.0,2.4341118186018855 +1133.0,3.0530449730237192 +1134.0,3.1539899224258345 +1135.0,3.365806287960714 +1136.0,2.6936933398253684 +1137.0,3.2209708894874822 +1138.0,2.331858448741669 +1139.0,2.470151589492738 +1140.0,2.353939251269141 +1141.0,2.4578171382059106 +1142.0,3.1506315499166453 +1143.0,2.9278512271327197 +1144.0,2.5071558317842633 +1145.0,2.9815263367138987 +1146.0,3.2603914482514895 +1147.0,2.520603554162562 +1148.0,2.461342114445607 +1149.0,3.0270243261151673 +1150.0,2.462739608252964 +1151.0,2.91403488605771 +1152.0,2.4690926903504886 +1153.0,2.343682111225092 +1154.0,2.581119676687691 +1155.0,2.3231378026422957 +1156.0,2.3763023828459424 +1157.0,2.7475203561891934 +1158.0,2.7735696953170503 +1159.0,3.3122664637223465 +1160.0,2.978107623177644 +1161.0,3.2251483809066968 +1162.0,2.603227373638573 +1163.0,2.3211897557854404 +1164.0,2.4104768567706643 +1165.0,2.607585313727172 +1166.0,2.3978749354253437 +1167.0,3.630204345101377 +1168.0,2.5092181120072876 +1169.0,2.326513690940687 +1170.0,2.414874794612896 +1171.0,3.0276712554518004 +1172.0,2.439284653140066 +1173.0,2.371451446755297 +1174.0,2.9595867927802018 +1175.0,3.0117717662891894 +1176.0,2.346174767248952 +1177.0,2.616155406984495 +1178.0,3.613914264474613 +1179.0,2.3556305275803964 +1180.0,3.111634038338778 +1181.0,2.3121798039905928 +1182.0,2.6097408344840223 +1183.0,2.3832799136078937 +1184.0,2.7918133942235253 +1185.0,5.700012003928238 +1186.0,2.627335666742438 +1187.0,3.291757036414545 +1188.0,5.702323229946366 +1189.0,2.8016392384729953 +1190.0,2.5276018865857335 +1191.0,2.8401779648927765 +1192.0,2.7265915400757734 +1193.0,3.7482226720116993 +1194.0,4.685897717564956 +1195.0,2.882190822327893 +1196.0,7.096620689824729 +1197.0,3.8389755503201064 +1198.0,4.266306247621031 +1199.0,3.5575836317813136 +1200.0,4.393778764540317 +1201.0,4.119495969271987 +1202.0,2.7457901800427287 +1203.0,2.618645025567976 +1204.0,3.5035925514465482 +1205.0,2.8520282052719588 +1206.0,3.8317617496479466 +1207.0,2.432412491916255 +1208.0,3.9108511121416143 +1209.0,2.493230300913686 +1210.0,2.707951210705568 +1211.0,3.5653612963720667 +1212.0,3.031624897534196 +1213.0,2.3965388354824264 +1214.0,2.9011805441788576 +1215.0,2.529396648602023 +1216.0,2.4621525741172703 +1217.0,2.321734856752728 +1218.0,2.8701978871361034 +1219.0,2.671543061358549 +1220.0,2.5720181051512214 +1221.0,2.9116096017940265 +1222.0,3.3032369492877045 +1223.0,2.8451733373128536 +1224.0,2.416113054999457 +1225.0,2.3589709438468294 +1226.0,2.419261838178731 +1227.0,2.560977051723673 +1228.0,2.678233126423935 +1229.0,2.664694615683547 +1230.0,2.5149133853443084 +1231.0,2.772525055017404 +1232.0,2.404479742816037 +1233.0,2.4809526713968024 +1234.0,2.4011866538542552 +1235.0,2.417242825629866 +1236.0,2.5205539496800613 +1237.0,2.5886811308026565 +1238.0,2.9015356054968686 +1239.0,2.4302158522602126 +1240.0,2.4625846081495157 +1241.0,2.3066866213139554 +1242.0,2.7093591334115814 +1243.0,2.5039550539346207 +1244.0,2.399372296069177 +1245.0,2.5499367442015495 +1246.0,2.6609353248248504 +1247.0,3.1846587178226464 +1248.0,2.470672855345097 +1249.0,2.568987722630988 +1250.0,2.497397781119602 +1251.0,2.339784165241103 +1252.0,2.8088505177232777 +1253.0,3.2274240517294697 +1254.0,2.481919562360895 +1255.0,2.3264582989541633 +1256.0,2.578298894354811 +1257.0,3.0581099171968242 +1258.0,2.300192993526639 +1259.0,3.7782886572175434 +1260.0,2.9006115817753275 +1261.0,2.5106764109010444 +1262.0,2.852469132416092 +1263.0,2.352022079690239 +1264.0,3.374369108666782 +1265.0,2.4026748843952204 +1266.0,2.440081570231508 +1267.0,2.7117100411223207 +1268.0,3.299573751003285 +1269.0,2.603882353919684 +1270.0,2.564760457912964 +1271.0,2.6109794908530133 +1272.0,2.85193932728827 +1273.0,2.770530798886958 +1274.0,3.062674449143233 +1275.0,2.5560065217753483 +1276.0,2.8840060594605097 +1277.0,2.563863806766446 +1278.0,2.6836781305130306 +1279.0,2.3903792174800946 +1280.0,2.303882044407435 +1281.0,2.4888863735733446 +1282.0,3.3523655511574173 +1283.0,2.48524676536413 +1284.0,2.3481549242782216 +1285.0,2.459584632596231 +1286.0,2.5872367851341056 +1287.0,2.6106959953760276 +1288.0,2.621262328182402 +1289.0,2.3567744752246433 +1290.0,3.232838552909302 +1291.0,2.304512949950438 +1292.0,2.68840406510624 +1293.0,2.445079408345222 +1294.0,2.3026212459147213 +1295.0,2.3294042179237096 +1296.0,2.3825952393803305 +1297.0,2.369571741688847 +1298.0,2.539410534476382 +1299.0,2.3130665800622663 +1300.0,2.6375369868587026 +1301.0,3.586972278975632 +1302.0,3.279506690856831 +1303.0,3.2747790036300284 +1304.0,2.7187840984236336 +1305.0,2.5226317602891033 +1306.0,2.8603684366633964 +1307.0,2.50483215709191 +1308.0,2.548323824189559 +1309.0,2.5233617099517236 +1310.0,2.443736687851374 +1311.0,2.604858106626698 +1312.0,2.5856553327779532 +1313.0,2.315719813438041 +1314.0,2.9424550327484837 +1315.0,3.026237838332506 +1316.0,3.0372309178537873 +1317.0,2.4873218679203797 +1318.0,2.3867506745853935 +1319.0,2.5986882602041725 +1320.0,2.3348719212839817 +1321.0,2.4724116551727935 +1322.0,4.1817315214411 +1323.0,3.0221005685999507 +1324.0,2.973981532974711 +1325.0,2.403464565563776 +1326.0,2.682943729523444 +1327.0,2.510766028474979 +1328.0,3.0360290418463043 +1329.0,2.331982522197905 +1330.0,2.6004630770525416 +1331.0,2.688257518494325 +1332.0,2.7985344215751713 +1333.0,3.1345081423823875 +1334.0,2.510297326438516 +1335.0,2.433132627005659 +1336.0,3.1098316939997344 +1337.0,2.5112224618502688 +1338.0,2.817536224273149 +1339.0,2.742247108685878 +1340.0,2.7339734283223014 +1341.0,2.778944118100598 +1342.0,2.305615805404024 +1343.0,2.3531834518633143 +1344.0,2.3127041961529824 +1345.0,2.629132228121528 +1346.0,2.6861150826968068 +1347.0,2.8604859605696653 +1348.0,2.8580438418831795 +1349.0,2.8369498134370144 +1350.0,4.226919373325615 +1351.0,2.8662727456526222 +1352.0,2.3576863578494605 +1353.0,2.456830240031885 +1354.0,2.3097070316506536 +1355.0,2.5038328717709817 +1356.0,2.9310522788038953 +1357.0,2.3189613102212125 +1358.0,2.9203301801557293 +1359.0,2.502664334827992 +1360.0,2.891707785179709 +1361.0,2.9017672282268725 +1362.0,2.3269548340554853 +1363.0,2.460050663903866 +1364.0,3.677178947672668 +1365.0,2.996600368802341 +1366.0,2.7807491985318245 +1367.0,2.3847689708951547 +1368.0,2.349276187394469 +1369.0,3.1882353203696026 +1370.0,2.4448124437733036 +1371.0,2.627228473914626 +1372.0,2.4561730478770607 +1373.0,2.6700674864604923 +1374.0,2.3020382280560097 +1375.0,4.7405353265348005 +1376.0,2.7397319469099504 +1377.0,2.6902076470499217 +1378.0,2.3216949922582955 +1379.0,2.5169161738689474 +1380.0,2.5102541894703427 +1381.0,2.8660724857908737 +1382.0,2.8551212517287294 +1383.0,3.245017402716535 +1384.0,2.5177047826895778 +1385.0,3.2379878643918 +1386.0,2.384091016739955 +1387.0,2.3613228355911127 +1388.0,3.031663405519958 +1389.0,2.997828575620682 +1390.0,2.3374297059430074 +1391.0,2.4169560846296263 +1392.0,2.3370863414517005 +1393.0,2.349951928869658 +1394.0,2.9003002209017392 +1395.0,2.786620275957245 +1396.0,2.710947134166762 +1397.0,2.447059218337252 +1398.0,2.5528863948182714 +1399.0,2.3520152658209748 diff --git a/tests/fixtures/catalogs/case_018_quiet_then_active_1400d.csv b/tests/fixtures/catalogs/case_018_quiet_then_active_1400d.csv new file mode 100644 index 0000000..804a24c --- /dev/null +++ b/tests/fixtures/catalogs/case_018_quiet_then_active_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,2.4889121742045406 +1.0,3.524061158462348 +2.0,2.329754210616561 +3.0,2.4883737301551485 +4.0,2.4464470171078414 +5.0,2.5501441732316485 +6.0,2.3179221057481287 +7.0,2.5197889368187525 +8.0,2.365667260711019 +9.0,2.35380085347059 +10.0,3.28003057802527 +11.0,2.7070582945142787 +12.0,2.425393663750324 +13.0,2.4161348873853306 +14.0,2.321824707416744 +15.0,2.6656004383654697 +16.0,2.374893913357624 +17.0,2.3213194538383672 +18.0,2.702292378936824 +19.0,2.523913011174929 +20.0,2.362416440331796 +21.0,2.485074460754623 +22.0,2.6229570377692175 +23.0,2.5653603662567996 +24.0,2.759222222825061 +25.0,2.904993211814778 +26.0,2.5398877201226298 +27.0,2.42453476708927 +28.0,2.4426759003245926 +29.0,2.350833678713661 +30.0,2.522318580070266 +31.0,2.595921961650708 +32.0,2.5736996465215767 +33.0,2.374416174982491 +34.0,2.734256921951565 +35.0,2.317562793349355 +36.0,2.3777688568721476 +37.0,2.575103646044968 +38.0,2.4924173032498667 +39.0,2.8195952339153774 +40.0,2.3386533456318097 +41.0,2.4133485482908608 +42.0,2.3877531079108896 +43.0,3.1366416050125587 +44.0,2.978127078000513 +45.0,2.489262346852657 +46.0,2.528138535824365 +47.0,2.327346396489785 +48.0,2.6896957546027918 +49.0,2.4786995719877476 +50.0,2.96452035015831 +51.0,2.5050064217677885 +52.0,2.447230409739645 +53.0,2.8981015324519865 +54.0,2.3924279971327858 +55.0,2.4027951933959213 +56.0,2.4121016267077158 +57.0,2.633887790341552 +58.0,2.3578479576569116 +59.0,2.3144112798676453 +60.0,3.1715674317907028 +61.0,2.4014441485431344 +62.0,3.017335496145054 +63.0,2.4272829847068405 +64.0,2.465209917965052 +65.0,2.723340534826026 +66.0,2.4009027972793793 +67.0,2.5425194447849906 +68.0,2.4282630090849793 +69.0,2.765410822403245 +70.0,3.2453442563357893 +71.0,2.5674610494159045 +72.0,2.322638042380536 +73.0,2.680497188847606 +74.0,2.4305656766738615 +75.0,2.417917141953 +76.0,2.4226299211951376 +77.0,2.6116768454850643 +78.0,2.757224612448058 +79.0,2.5197049619029643 +80.0,2.4256549494321433 +81.0,2.5285487419400297 +82.0,3.325689040014847 +83.0,2.501454267891207 +84.0,2.4748274212168324 +85.0,2.4428935245181727 +86.0,2.3050975864134995 +87.0,3.2395850379977533 +88.0,2.8564048438595426 +89.0,2.6994679415373133 +90.0,2.5442756541979774 +91.0,2.6075613237839974 +92.0,2.5420803543977133 +93.0,2.5241744150438783 +94.0,3.313456072620121 +95.0,3.4196420787634962 +96.0,2.542215250872321 +97.0,2.6348765840275465 +98.0,2.9285635063854043 +99.0,2.3748201664977344 +100.0,2.3464842209868655 +101.0,2.5860738964838212 +102.0,2.6167710407660976 +103.0,2.4325081342461403 +104.0,2.363540091755344 +105.0,2.480540446651983 +106.0,2.3738504889640675 +107.0,3.0633390305208805 +108.0,2.7961017821074323 +109.0,2.65370033026001 +110.0,2.7298683060668667 +111.0,2.522628759039297 +112.0,2.4188063940377558 +113.0,3.4946428421099105 +114.0,2.3686847018517683 +115.0,2.384181138473647 +116.0,3.1455755814025563 +117.0,2.594036022916683 +118.0,2.634490966645451 +119.0,2.8256369722649164 +120.0,2.37061554142102 +121.0,2.863675136230755 +122.0,2.6296094080297308 +123.0,2.3649683793941336 +124.0,3.068266981067043 +125.0,2.4944521200845964 +126.0,2.460694952960392 +127.0,2.4408056390260215 +128.0,2.4344812769296347 +129.0,2.3022068255800305 +130.0,3.05305680162205 +131.0,2.640959177662879 +132.0,2.6087922627252307 +133.0,2.4535618785271645 +134.0,3.085886522614577 +135.0,2.3070493113437123 +136.0,2.339967161985114 +137.0,2.5032065659851708 +138.0,2.4683773771963335 +139.0,2.7116665142894925 +140.0,2.550820595048786 +141.0,2.6449362454304395 +142.0,2.8638004700015225 +143.0,2.4711799487082926 +144.0,2.4710412246547593 +145.0,2.3409770603824525 +146.0,2.3910008299183323 +147.0,2.8758703633427602 +148.0,2.714109493446358 +149.0,2.4603675181229994 +150.0,2.6413843072519434 +151.0,2.4379148963323067 +152.0,2.3295604399051615 +153.0,2.698651456623506 +154.0,2.324307735114309 +155.0,2.4004620081928874 +156.0,2.7257266830721747 +157.0,3.4449418039524717 +158.0,2.5455772957361353 +159.0,2.6354550144106885 +160.0,2.7532635368504397 +161.0,2.3719122419137078 +162.0,2.667919664518844 +163.0,2.4384824843281616 +164.0,2.515839807004893 +165.0,2.673724550412225 +166.0,2.506037303419624 +167.0,2.6911957048619906 +168.0,2.5297807672504193 +169.0,2.8699864875489163 +170.0,2.3601836857597798 +171.0,2.529579160391163 +172.0,2.7186288354907955 +173.0,2.4887918415219867 +174.0,2.3373988143666002 +175.0,2.4787433887424846 +176.0,2.5499417126448445 +177.0,2.3144699682411924 +178.0,2.958789555203729 +179.0,2.6329851793008734 +180.0,2.538157606734967 +181.0,2.8123248131972787 +182.0,3.207285279213326 +183.0,2.393949503083529 +184.0,2.939906144849324 +185.0,2.3494571496264185 +186.0,2.3259293028624053 +187.0,2.3960121459617847 +188.0,2.6350326500653938 +189.0,2.3823909600800564 +190.0,2.5576608228119087 +191.0,2.4165533119044875 +192.0,3.6514250215174693 +193.0,2.393147862908748 +194.0,2.5742247659579727 +195.0,2.4363359847810866 +196.0,2.498421874483714 +197.0,2.311036032026653 +198.0,2.7111161861979984 +199.0,2.306339750730447 +200.0,2.5274776210639027 +201.0,2.3416139078508826 +202.0,2.9028380417360444 +203.0,2.3542315764152817 +204.0,2.5845623188402054 +205.0,2.662742115671886 +206.0,2.7628014097719182 +207.0,2.340025179306302 +208.0,2.306467650851138 +209.0,2.605926898938288 +210.0,2.4759793575312066 +211.0,2.7190389685162883 +212.0,2.433532737647288 +213.0,3.126989273927324 +214.0,2.378615874355625 +215.0,2.7834660044496755 +216.0,2.407816007442363 +217.0,2.6747109927319763 +218.0,2.546265316677076 +219.0,2.3686243408884846 +220.0,2.5058289034098458 +221.0,2.673151917569889 +222.0,2.328351058637067 +223.0,2.654885563092219 +224.0,2.9650445778476158 +225.0,2.3511841833039395 +226.0,2.7756408390901592 +227.0,2.509561619537173 +228.0,2.5792731697223537 +229.0,2.3481423691643752 +230.0,2.990576960940812 +231.0,2.520317580016506 +232.0,2.61459921442485 +233.0,2.7374433409560694 +234.0,2.4112790089514347 +235.0,2.548517193338968 +236.0,2.372794515128694 +237.0,2.3062242453940263 +238.0,3.594297343657936 +239.0,2.3179138730476248 +240.0,3.0727815019787124 +241.0,3.026310370469263 +242.0,2.392331092265873 +243.0,2.5228863270903084 +244.0,2.347436094171847 +245.0,3.387883758549095 +246.0,2.4982811597726085 +247.0,2.4257369323024216 +248.0,2.736570494911764 +249.0,2.336051138484498 +250.0,3.0059635668744913 +251.0,2.59198202174103 +252.0,2.659624816641282 +253.0,2.9788468230961085 +254.0,2.457750842227096 +255.0,2.459124790393359 +256.0,2.3225465300491552 +257.0,2.962547843821011 +258.0,2.3520729239777167 +259.0,2.617343488529512 +260.0,2.877957218303936 +261.0,2.324305919624546 +262.0,2.3453423518107215 +263.0,2.4959086612726047 +264.0,2.534254524944044 +265.0,2.3217833553813154 +266.0,2.3028179699379674 +267.0,2.41217039439313 +268.0,2.816649542694867 +269.0,2.403786551245441 +270.0,2.5162540856563846 +271.0,2.612966233602372 +272.0,2.5014178660515025 +273.0,2.374762833603368 +274.0,2.3184349793004464 +275.0,2.364070024974736 +276.0,2.5105414730481517 +277.0,2.953468576632809 +278.0,2.3549651121439528 +279.0,2.4028666722618497 +280.0,3.008339091918274 +281.0,2.3068406903470047 +282.0,2.637969857208982 +283.0,2.4437912834366653 +284.0,2.6520567785269753 +285.0,2.730552501888016 +286.0,3.1098790228946243 +287.0,2.540034304259825 +288.0,2.7948545197458787 +289.0,2.4002332529564696 +290.0,2.677533049167237 +291.0,2.480052241113152 +292.0,2.4577279655088486 +293.0,2.3206704546834183 +294.0,2.4185375490566114 +295.0,3.041360976681128 +296.0,2.4381659594569856 +297.0,2.473220956658293 +298.0,2.420742269878341 +299.0,2.3162948303907873 +300.0,2.81609882880102 +301.0,2.512885480253892 +302.0,2.443348876319969 +303.0,2.3646654820320077 +304.0,2.378908464329401 +305.0,2.4747826213642665 +306.0,2.6115745888181365 +307.0,2.361030038151229 +308.0,3.014992364536307 +309.0,2.3071241655123647 +310.0,2.343836849207417 +311.0,2.445304213850445 +312.0,2.3721344683234435 +313.0,2.3121066986999845 +314.0,2.4035766855145324 +315.0,2.77133094791587 +316.0,2.4150773665485343 +317.0,2.3144594024890996 +318.0,2.457225261102963 +319.0,2.3985428958239763 +320.0,2.635707845666445 +321.0,2.506739348388989 +322.0,2.4800326817058194 +323.0,2.3374988093931535 +324.0,2.40667425487409 +325.0,2.8985109364635564 +326.0,2.420391083879447 +327.0,2.530685576009857 +328.0,2.4896580462677953 +329.0,2.6620069160494264 +330.0,2.34074010663091 +331.0,2.444372430456378 +332.0,2.826335015843502 +333.0,2.753969850563739 +334.0,3.231549054186145 +335.0,2.6276959149844816 +336.0,2.550594153476941 +337.0,2.5212503375526714 +338.0,2.587931254837885 +339.0,2.3775023743238672 +340.0,2.598099511377056 +341.0,2.4140501488090647 +342.0,2.844133797528766 +343.0,2.314931153923947 +344.0,2.4623606933575197 +345.0,2.3847575956412066 +346.0,2.3473677265289634 +347.0,2.5296355369740944 +348.0,2.6543125917326695 +349.0,2.620109984589318 +350.0,2.5764388497809394 +351.0,2.5684184361443076 +352.0,2.682372326692939 +353.0,4.224628861154603 +354.0,2.341734575928366 +355.0,2.8120179379640877 +356.0,2.623270522254401 +357.0,2.537774840684681 +358.0,2.644464077200695 +359.0,3.3767954593231613 +360.0,2.4392838470313145 +361.0,2.379226954593169 +362.0,2.558467054377913 +363.0,3.2581062920711377 +364.0,3.3101669308362376 +365.0,2.511868833525315 +366.0,3.5944554369252604 +367.0,2.4994109992059235 +368.0,2.4155972401705026 +369.0,2.4020181662774527 +370.0,2.441754920026628 +371.0,3.1471135781467314 +372.0,2.392226188253115 +373.0,2.6313566315479564 +374.0,2.3405274513442067 +375.0,2.403028197308627 +376.0,2.8695556486377716 +377.0,2.488140541609203 +378.0,2.4536527669715786 +379.0,2.491300330701695 +380.0,2.4236260652560064 +381.0,2.390569734563369 +382.0,3.446212461225339 +383.0,2.6424358163209716 +384.0,2.7764432372385337 +385.0,2.456577080780122 +386.0,2.8997949267555923 +387.0,2.3276533185515356 +388.0,2.524764617548776 +389.0,2.7216549899741302 +390.0,2.311052944475618 +391.0,2.330388960960684 +392.0,2.422466745644694 +393.0,2.3608487751062563 +394.0,2.308573953879097 +395.0,2.443393364248288 +396.0,2.8291138175174027 +397.0,2.435078298474481 +398.0,2.400716713193257 +399.0,2.7247977065407185 +400.0,2.3217523516788754 +401.0,2.418640660446203 +402.0,2.43705810026846 +403.0,2.4011305652499626 +404.0,2.6333492117185404 +405.0,2.9653376275768295 +406.0,2.3971812900519414 +407.0,3.2425323977806864 +408.0,2.4659638304924103 +409.0,2.7707222558408895 +410.0,2.723247811965919 +411.0,2.508852280738683 +412.0,2.4841034132062085 +413.0,2.302860725902268 +414.0,2.5721876755084017 +415.0,2.395901813694122 +416.0,2.4095221838624665 +417.0,2.496156652185161 +418.0,2.4117695540065216 +419.0,2.76369847766367 +420.0,2.418613884807746 +421.0,2.693373095301346 +422.0,3.1158487993420003 +423.0,2.391807357934741 +424.0,2.363267782930541 +425.0,2.3950768340949034 +426.0,2.3218898606877643 +427.0,2.3746484083557142 +428.0,2.8480939450801652 +429.0,3.3462919914053315 +430.0,2.7286607340293654 +431.0,2.7682005733756934 +432.0,2.6183133164560766 +433.0,2.31690636367533 +434.0,2.4549237599315865 +435.0,2.9382106294544648 +436.0,3.0317616915898147 +437.0,2.4210790114482226 +438.0,2.526685224916793 +439.0,2.6624309547822977 +440.0,2.344073942824321 +441.0,2.5583172805167207 +442.0,2.85957538936967 +443.0,2.5164074416557938 +444.0,2.77065815479634 +445.0,2.4066212158096385 +446.0,2.309483608119292 +447.0,2.8660450858789153 +448.0,2.581357186514101 +449.0,2.3646792802912238 +450.0,2.758745292668256 +451.0,2.4034870698022144 +452.0,2.332461101952909 +453.0,2.672000417056354 +454.0,2.476058179223891 +455.0,2.544388115597543 +456.0,2.3518290717684556 +457.0,2.4295649220874003 +458.0,2.726266200097278 +459.0,2.396030321457616 +460.0,2.4030625361398066 +461.0,2.3104250018258 +462.0,2.4227064939390237 +463.0,2.5146680550477014 +464.0,2.317996103790429 +465.0,3.427073460477838 +466.0,2.9400547081959854 +467.0,2.567354225418059 +468.0,2.390648466300965 +469.0,2.503860651386201 +470.0,2.310585128343464 +471.0,2.785663859047469 +472.0,2.442315231690998 +473.0,2.4332103008911634 +474.0,2.4299684743288283 +475.0,2.569068286882329 +476.0,2.5237481794142704 +477.0,2.339156564678042 +478.0,2.512660129447377 +479.0,2.3254751228770543 +480.0,2.3231060619260937 +481.0,2.4884752433804995 +482.0,3.3755671246989967 +483.0,2.3337843901332938 +484.0,2.313125985037281 +485.0,2.5772547600651547 +486.0,2.608057816291048 +487.0,2.3016303511492553 +488.0,2.3549612906265835 +489.0,2.4067751830041093 +490.0,2.537988554621867 +491.0,2.498765461739869 +492.0,2.9062670558073305 +493.0,2.5471875854383237 +494.0,2.4442983735840564 +495.0,2.3737572006693903 +496.0,2.5866119999118475 +497.0,2.508981159266402 +498.0,2.374720004154577 +499.0,2.4433075498905996 +500.0,3.0769084414009487 +501.0,2.4004312701016963 +502.0,2.7786550199149267 +503.0,3.5259314797203425 +504.0,2.8123366903667835 +505.0,2.3197285739784848 +506.0,3.095269463503989 +507.0,2.8112360602393403 +508.0,2.31098867403308 +509.0,2.3393730628792926 +510.0,2.4577297919007717 +511.0,2.397909751294172 +512.0,2.3193587540622778 +513.0,2.4990552329272977 +514.0,2.798083001372985 +515.0,2.6342073896704683 +516.0,2.710267744658557 +517.0,2.5575762863488722 +518.0,2.4541834549644697 +519.0,2.6795733461681164 +520.0,2.612593166027122 +521.0,2.315539632536919 +522.0,2.3204305174317725 +523.0,2.6600972623775343 +524.0,2.4313232319577756 +525.0,2.641965808091065 +526.0,2.838570794822049 +527.0,2.3858839329949673 +528.0,2.46007530523707 +529.0,2.549898784762916 +530.0,3.0446058670948855 +531.0,2.311613664761899 +532.0,2.9133422205212063 +533.0,2.5450864771615644 +534.0,2.3716987685189523 +535.0,2.611247866785894 +536.0,2.319328876531781 +537.0,2.829319499596518 +538.0,3.2217172307159188 +539.0,2.7731709038046866 +540.0,2.4645060735292796 +541.0,2.501957573237735 +542.0,2.4994551182463978 +543.0,3.343059703363375 +544.0,2.6160869966012177 +545.0,2.424340051031827 +546.0,3.127730802565612 +547.0,2.3292498023220136 +548.0,2.333598980746036 +549.0,2.55104525851892 +550.0,2.928289154937902 +551.0,2.7790465381077185 +552.0,2.5039241915007278 +553.0,2.543758596335917 +554.0,2.426681991885867 +555.0,2.4188470190470297 +556.0,2.3911825272942897 +557.0,2.5112275975857097 +558.0,3.0513418235048055 +559.0,2.447752098529248 +560.0,2.575844899262285 +561.0,2.3347727887120118 +562.0,2.7218214279676713 +563.0,2.559560518139781 +564.0,2.336927356921765 +565.0,2.3580050073710264 +566.0,2.3653733782642896 +567.0,3.749584808121436 +568.0,2.4734409958544825 +569.0,2.363054502818533 +570.0,2.3193921941087017 +571.0,2.92567955597948 +572.0,2.688375251893004 +573.0,2.595330945299972 +574.0,2.5249394631985727 +575.0,2.8375015724558303 +576.0,2.7784106586811035 +577.0,3.6335594556984026 +578.0,2.5759235024387204 +579.0,2.3406701474397167 +580.0,2.3348894531844353 +581.0,3.0093891968703623 +582.0,3.00979495273102 +583.0,2.9923817331205167 +584.0,2.6042902793606104 +585.0,3.0103660014366063 +586.0,3.1633269314154697 +587.0,2.51610101752799 +588.0,2.7321323192754865 +589.0,2.7770736558077482 +590.0,3.206204851117193 +591.0,2.4305709697553493 +592.0,3.8956008846598342 +593.0,2.3014647921717297 +594.0,2.5861958278466304 +595.0,2.8848999324474676 +596.0,3.7453134021593955 +597.0,2.447837646753043 +598.0,2.3809316412539108 +599.0,2.40831211313176 +600.0,3.2371456385618784 +601.0,2.4820273930753927 +602.0,2.9019512561859995 +603.0,2.5374130527236085 +604.0,2.3299460097144924 +605.0,2.549959365468979 +606.0,2.3883862020518687 +607.0,3.4146693989638037 +608.0,2.305765442327667 +609.0,2.4758575703642594 +610.0,2.316116050505807 +611.0,2.4790024563199236 +612.0,3.2971843158754464 +613.0,2.815201912423409 +614.0,2.3407634408575966 +615.0,2.63766771518294 +616.0,2.4342216623854482 +617.0,3.4162441779742956 +618.0,2.547716094278389 +619.0,2.539652049437396 +620.0,2.4021879458905495 +621.0,2.6271383209505608 +622.0,2.454863019857707 +623.0,2.387269371496867 +624.0,2.682495070535764 +625.0,2.84910937768627 +626.0,2.5913717656840114 +627.0,2.371372987899865 +628.0,2.5730997062655776 +629.0,3.464774725296113 +630.0,2.884038452312443 +631.0,2.4293948323001207 +632.0,2.410925924844493 +633.0,2.5255683999981318 +634.0,2.3634018640371712 +635.0,2.902105353230332 +636.0,2.5547317622775116 +637.0,2.8544833434721317 +638.0,2.5265996861071773 +639.0,2.425386192727569 +640.0,2.594023307496338 +641.0,2.399203593267907 +642.0,2.642816377878719 +643.0,2.5975026064680944 +644.0,2.3538032707053964 +645.0,2.3430561529733755 +646.0,2.4710892988992197 +647.0,2.7782579218875822 +648.0,3.0640203276484543 +649.0,2.399960731642419 +650.0,2.4912476722033876 +651.0,2.6580051441288535 +652.0,2.3507083273424487 +653.0,2.7039816251640945 +654.0,2.6102083263747202 +655.0,2.3128188474147224 +656.0,2.699568711302821 +657.0,2.641736482205662 +658.0,2.346336540418568 +659.0,2.3461945746180106 +660.0,2.4151618809397655 +661.0,2.348241262227047 +662.0,3.325337671751069 +663.0,2.728690969280747 +664.0,2.4102996485038415 +665.0,2.3957767551547886 +666.0,2.5362697914222303 +667.0,2.596377820133697 +668.0,2.3061691183430897 +669.0,2.496147950371266 +670.0,2.4469392285816545 +671.0,2.734643382385194 +672.0,2.40725838528968 +673.0,2.353145139625383 +674.0,2.4778665127345447 +675.0,2.490031083909256 +676.0,2.429888448153436 +677.0,2.5617458578800543 +678.0,2.40026710153587 +679.0,2.347217535516761 +680.0,2.62566604284282 +681.0,3.754294296740663 +682.0,2.494972455103778 +683.0,3.3493852703545683 +684.0,2.717445387442119 +685.0,2.390441131787715 +686.0,2.8693059358797965 +687.0,2.332628649601811 +688.0,2.3837176777598654 +689.0,2.3363035993315293 +690.0,2.992728873193056 +691.0,3.2183460523926515 +692.0,2.423446894485242 +693.0,2.6408586665771288 +694.0,2.3737341921983948 +695.0,2.501979401401464 +696.0,2.6946275104325115 +697.0,2.9510349178696016 +698.0,3.951627931024789 +699.0,2.34239983068794 +700.0,2.300490539143464 +701.0,2.660861858031788 +702.0,2.508697222993118 +703.0,2.3425921034647157 +704.0,2.3049503774379136 +705.0,2.741816525183409 +706.0,2.390650274575503 +707.0,2.5990427940445944 +708.0,2.3876622772203535 +709.0,2.421862503816495 +710.0,3.307084205589709 +711.0,2.306050548041121 +712.0,2.7227037273170924 +713.0,2.908634082785329 +714.0,2.456662172434191 +715.0,2.623363321915223 +716.0,2.3129562602153917 +717.0,2.3129743579936273 +718.0,2.717899624642845 +719.0,2.584418582554148 +720.0,2.87300251151681 +721.0,2.453174545693584 +722.0,2.9094876620714896 +723.0,2.619055493361834 +724.0,2.33736997288301 +725.0,2.355512270521238 +726.0,2.637592524278697 +727.0,2.8496809534886958 +728.0,2.5578996614808296 +729.0,2.660451284698182 +730.0,2.952083675844893 +731.0,3.70196561244597 +732.0,2.35317272554375 +733.0,2.3303672200253933 +734.0,2.5857421475614677 +735.0,2.548116731791001 +736.0,2.3761219433315492 +737.0,2.3025462514603263 +738.0,2.378347746842144 +739.0,2.3915104290057205 +740.0,3.692469579841945 +741.0,2.5114745306320954 +742.0,2.716019105439019 +743.0,2.4682880626920225 +744.0,2.378148399021047 +745.0,2.8973485806406143 +746.0,2.4187793251517804 +747.0,3.1895675199341023 +748.0,2.408698792504027 +749.0,2.3672118359624466 +750.0,2.4957981795090562 +751.0,2.4148017160174353 +752.0,2.322236180542336 +753.0,2.3722861805017876 +754.0,2.4783169699328123 +755.0,2.8088942112257933 +756.0,2.8003196377928425 +757.0,2.669646532903753 +758.0,2.6569226275975306 +759.0,2.865943027749499 +760.0,3.0401748821826313 +761.0,2.302866406122229 +762.0,2.56210522231092 +763.0,2.9046200616299513 +764.0,2.624845784840489 +765.0,2.323274163925246 +766.0,2.5658602101688452 +767.0,2.9181021495724937 +768.0,2.940059460050599 +769.0,2.4447647363029374 +770.0,2.3356227168728014 +771.0,2.446633340229861 +772.0,3.2014240928938023 +773.0,2.5249682985785613 +774.0,2.3800772001740365 +775.0,2.3128174682189195 +776.0,2.7240703407267177 +777.0,2.9029277738475674 +778.0,2.502145453457971 +779.0,2.4657719740570756 +780.0,2.884258361400424 +781.0,2.3271358865601375 +782.0,2.441369091011505 +783.0,2.580464377783526 +784.0,2.3090190586581767 +785.0,3.1444633304935894 +786.0,3.0981587833883646 +787.0,3.1637231575819293 +788.0,2.340508412776191 +789.0,2.606903328056254 +790.0,2.3695266256664005 +791.0,2.494944316891 +792.0,2.647602351648758 +793.0,2.4397737490819646 +794.0,2.396826949132731 +795.0,2.5631568486875707 +796.0,3.1536660967356993 +797.0,2.438890266329424 +798.0,2.419895031539199 +799.0,2.647577354933731 +800.0,2.3028826346707607 +801.0,2.9448798608435425 +802.0,2.318020311606945 +803.0,2.36955166213783 +804.0,3.0522901204072004 +805.0,2.983550415922334 +806.0,2.8368013683855997 +807.0,2.4450199400279837 +808.0,2.932060520838535 +809.0,2.301928089748466 +810.0,2.5616086802762084 +811.0,2.622416079189489 +812.0,2.69512261350994 +813.0,2.356088404537477 +814.0,2.7156766382578206 +815.0,2.335787575990972 +816.0,2.573843091389381 +817.0,2.5937133578855027 +818.0,2.806340143399625 +819.0,2.6735033371891084 +820.0,2.6451843343030528 +821.0,2.645313759479874 +822.0,2.4980766410918704 +823.0,2.478672656860479 +824.0,2.8448862988631696 +825.0,2.4032080982223967 +826.0,2.3579372324050465 +827.0,3.0115501241421603 +828.0,2.4478740215508297 +829.0,2.332342525397037 +830.0,2.759617816089316 +831.0,2.497963497547542 +832.0,2.3711516470799157 +833.0,2.7653404702615 +834.0,2.837279510764885 +835.0,2.6055325472599042 +836.0,2.450899005809546 +837.0,3.087658071557386 +838.0,2.4438035929432345 +839.0,2.744047104335445 +840.0,2.3331966642649102 +841.0,2.419731040534753 +842.0,2.4175010349644825 +843.0,2.7324260251243655 +844.0,2.357814360710457 +845.0,2.390354690679849 +846.0,2.3522611627600805 +847.0,2.613585466438711 +848.0,3.0730639960697776 +849.0,2.3867487193508232 +850.0,2.395269177508888 +851.0,2.7800134163277113 +852.0,2.5662950902737642 +853.0,2.641224462964532 +854.0,2.3988290780350607 +855.0,2.4294790940832516 +856.0,2.77196600296921 +857.0,2.312333456316244 +858.0,3.714233029176246 +859.0,2.340893130835432 +860.0,2.403953351201523 +861.0,2.37221452582518 +862.0,3.267701003575324 +863.0,2.7607731276993706 +864.0,2.7141028590639893 +865.0,3.329396898493719 +866.0,2.6497299211646146 +867.0,2.4453693964586916 +868.0,2.408836557746668 +869.0,2.3286486783727858 +870.0,2.532123479060576 +871.0,2.3557675677071486 +872.0,2.405886028294868 +873.0,2.95333203991072 +874.0,2.424758506164559 +875.0,2.3355055896958956 +876.0,2.9315507796084366 +877.0,2.464191882324024 +878.0,2.5148748060738075 +879.0,2.7638453293821112 +880.0,2.733515792527357 +881.0,2.598821889639215 +882.0,2.3654106904118053 +883.0,2.3102192518351443 +884.0,2.5285464162251037 +885.0,2.882491608614539 +886.0,2.6754326824184385 +887.0,2.507390334721903 +888.0,2.4702330696289083 +889.0,2.755569598939246 +890.0,2.5822842360055493 +891.0,2.5958224239678414 +892.0,2.7065815633792116 +893.0,3.530171681086058 +894.0,2.6206635408710506 +895.0,2.447916116724037 +896.0,2.332561928387769 +897.0,2.3160765209178993 +898.0,2.4135805943158646 +899.0,3.060669623871608 +900.0,2.4202798808467207 +901.0,2.6459174977017486 +902.0,2.557321579875077 +903.0,2.4925888125683713 +904.0,2.9058720002645853 +905.0,3.1864341023538842 +906.0,2.4228331330493122 +907.0,2.3156273933218783 +908.0,2.3416693263838573 +909.0,2.8016872612380843 +910.0,2.4702077394316357 +911.0,2.841013333357899 +912.0,2.3423560813391457 +913.0,2.366603194065606 +914.0,2.3874904890460797 +915.0,2.54520484592896 +916.0,3.370067705202055 +917.0,2.522307334396333 +918.0,2.936102811387181 +919.0,2.4689378345961845 +920.0,2.667968522850455 +921.0,2.3329641740743305 +922.0,2.873765410088436 +923.0,2.4757465693144995 +924.0,2.563282917791519 +925.0,2.3751456287143164 +926.0,2.6717987102214718 +927.0,2.350124326560511 +928.0,2.8124532563562195 +929.0,3.264641543657772 +930.0,2.508110635782228 +931.0,2.336710315661505 +932.0,2.3250609869899823 +933.0,2.3069541511540645 +934.0,2.837046575334268 +935.0,2.39736817270291 +936.0,2.4666778968776137 +937.0,2.6864941367473665 +938.0,2.405093524360511 +939.0,2.3942925276243168 +940.0,2.5975751907975684 +941.0,2.3730792671716543 +942.0,2.362172379484554 +943.0,2.8161395867841543 +944.0,2.4060359793935837 +945.0,2.3489853881149503 +946.0,2.52511559888075 +947.0,2.8076339784888007 +948.0,2.646624071974082 +949.0,3.089193675692078 +950.0,2.6421169980304877 +951.0,3.222072122151012 +952.0,2.339058568042847 +953.0,2.411847208086856 +954.0,2.3277447822741575 +955.0,2.530199195298938 +956.0,2.669781395132903 +957.0,2.4518614218233963 +958.0,2.306159940938239 +959.0,2.3665904642233766 +960.0,2.501293474029878 +961.0,2.3544646031569885 +962.0,2.3054477996174887 +963.0,2.5564036413665523 +964.0,3.066079108111553 +965.0,2.460254200506117 +966.0,2.908501215071413 +967.0,2.452596971338611 +968.0,2.858381552749059 +969.0,2.513661886098816 +970.0,2.3089932806788775 +971.0,2.495754531615598 +972.0,2.328980019687322 +973.0,2.681747726231249 +974.0,2.763916716627407 +975.0,2.4935897321512472 +976.0,2.518363597285341 +977.0,2.740600824698034 +978.0,2.6214831803690295 +979.0,2.3085961164752957 +980.0,2.320081723098334 +981.0,2.6792521288482734 +982.0,2.459262097192591 +983.0,2.4020574779473787 +984.0,2.7162837479570543 +985.0,2.597595545431341 +986.0,2.403910345831128 +987.0,2.4324052112451584 +988.0,2.6412671516294677 +989.0,2.556521556524909 +990.0,2.5215642277265937 +991.0,2.3167552480751072 +992.0,2.710909134702162 +993.0,2.814313906957474 +994.0,3.631546888622724 +995.0,2.450242405155222 +996.0,2.339110952787079 +997.0,2.592920490080228 +998.0,2.5743739495706555 +999.0,2.4717162117348352 +1000.0,2.5569374386000456 +1001.0,2.7039078582616787 +1002.0,2.8018655597512083 +1003.0,2.4587078797513287 +1004.0,2.418557581780469 +1005.0,2.628297647590617 +1006.0,2.3069140900578655 +1007.0,2.792282514198442 +1008.0,3.0825540875101973 +1009.0,4.45599209308473 +1010.0,3.584764854691832 +1011.0,2.6940867194254743 +1012.0,3.289866391120111 +1013.0,3.5712275374219127 +1014.0,4.509132243216973 +1015.0,3.2027190843574043 +1016.0,2.336024986214713 +1017.0,2.711148116217533 +1018.0,2.9191624305999464 +1019.0,3.1008765199055075 +1020.0,2.934870949905087 +1021.0,2.8134207549014594 +1022.0,2.6107761577912916 +1023.0,2.318533180896544 +1024.0,4.052021428348669 +1025.0,3.004339473110446 +1026.0,2.5658767380704024 +1027.0,3.2706599657464146 +1028.0,4.664365761568856 +1029.0,3.4199578871596126 +1030.0,3.4169139966913367 +1031.0,3.1348955534897907 +1032.0,2.7893735783024463 +1033.0,2.6752055338049936 +1034.0,4.766071985349141 +1035.0,3.7359385760078347 +1036.0,3.159951153332115 +1037.0,6.714439935859673 +1038.0,3.488326712430397 +1039.0,3.5481596634567056 +1040.0,3.102338853408921 +1041.0,2.3748454132805548 +1042.0,2.4444529022698958 +1043.0,4.761636410874041 +1044.0,5.532220807193982 +1045.0,3.368137668628425 +1046.0,2.8095892828593083 +1047.0,2.7548115056088287 +1048.0,2.4554062863304975 +1049.0,2.390779261962437 +1050.0,2.6107988318670983 +1051.0,2.6517842254458253 +1052.0,3.305452575325452 +1053.0,2.411431970044547 +1054.0,2.6318161557781377 +1055.0,3.1257556469746794 +1056.0,3.662262237411726 +1057.0,4.3755634192088095 +1058.0,2.4291371284223464 +1059.0,2.7240228244180815 +1060.0,3.373679820540226 +1061.0,2.3414701693869295 +1062.0,2.598908357872723 +1063.0,3.831647148990005 +1064.0,2.9276556971745014 +1065.0,4.036508065848555 +1066.0,2.7655416979252245 +1067.0,3.5819970735718885 +1068.0,2.8100355538792785 +1069.0,4.224717237532943 +1070.0,2.7712691774286484 +1071.0,5.0438903775709925 +1072.0,3.664746672947281 +1073.0,3.1223020560293673 +1074.0,2.498832019537016 +1075.0,4.1136178248663455 +1076.0,2.565269945174861 +1077.0,5.715721962820703 +1078.0,2.75010239640224 +1079.0,3.08005000821316 +1080.0,2.68246638001111 +1081.0,3.117901419420118 +1082.0,2.7945956150552487 +1083.0,2.512704518812608 +1084.0,3.352016540753488 +1085.0,3.787113390722297 +1086.0,4.974412001359889 +1087.0,3.287623515272385 +1088.0,4.053541630515369 +1089.0,3.884664999379006 +1090.0,2.722973318245829 +1091.0,2.9445273566806707 +1092.0,3.7830454362532766 +1093.0,2.8218282834126076 +1094.0,4.339892871014811 +1095.0,3.86815800161932 +1096.0,5.22442885318098 +1097.0,3.8279039010023417 +1098.0,3.693669501502103 +1099.0,6.0423842994783605 +1100.0,2.9515610292912564 +1101.0,3.25686655827084 +1102.0,2.9331422552416377 +1103.0,2.708385793326074 +1104.0,2.9335690320131027 +1105.0,2.8059083285609345 +1106.0,2.558607587541825 +1107.0,3.1981260361680235 +1108.0,2.35637008393963 +1109.0,3.8432779258417598 +1110.0,4.606985839792814 +1111.0,3.2897373927980627 +1112.0,5.389194709817252 +1113.0,2.8733221829205977 +1114.0,2.7744744834046573 +1115.0,4.160542435044739 +1116.0,3.0604091216592177 +1117.0,2.453667759504944 +1118.0,3.073983030173464 +1119.0,2.7511975290397186 +1120.0,2.641007781878853 +1121.0,5.973726733450529 +1122.0,2.661364393092003 +1123.0,3.4778238996950384 +1124.0,4.6114403412732425 +1125.0,2.807490349704254 +1126.0,4.208707668888028 +1127.0,2.461514757378898 +1128.0,3.659745818002869 +1129.0,3.238833745602508 +1130.0,2.6669677766639093 +1131.0,2.9216942556805483 +1132.0,4.640528449703879 +1133.0,6.778433512798193 +1134.0,4.6185418243820715 +1135.0,4.516281312808186 +1136.0,3.08870559543914 +1137.0,3.1220151709331354 +1138.0,2.4684110778618127 +1139.0,3.2766491886603277 +1140.0,3.308568960537228 +1141.0,2.7564122790550663 +1142.0,2.473712082135134 +1143.0,3.6494094184481316 +1144.0,2.9114179452736333 +1145.0,3.4996873841314957 +1146.0,2.804923699317717 +1147.0,2.870391237554899 +1148.0,3.8702381559185524 +1149.0,3.122829264125552 +1150.0,5.229215626634398 +1151.0,2.7714084102131675 +1152.0,3.0225343360208683 +1153.0,3.8755554106011822 +1154.0,2.5785146879840464 +1155.0,2.6050705957204885 +1156.0,3.9411777357770967 +1157.0,2.8005448162066466 +1158.0,2.814896642315298 +1159.0,3.7132628966989025 +1160.0,4.694456789169602 +1161.0,2.825429245491484 +1162.0,3.713683442035051 +1163.0,3.0432928838219118 +1164.0,2.778616268943374 +1165.0,2.5050680736064135 +1166.0,4.604230226231292 +1167.0,2.7725623243776485 +1168.0,2.7324964809709007 +1169.0,3.3804588154928275 +1170.0,3.5998332369859227 +1171.0,3.452436024629824 +1172.0,3.1957402837139752 +1173.0,3.539525934390626 +1174.0,4.939925108200239 +1175.0,3.7069208005231964 +1176.0,2.753706347987013 +1177.0,2.7068636126015626 +1178.0,3.753150158847519 +1179.0,4.533935447726275 +1180.0,3.3801325377397595 +1181.0,4.612664591497955 +1182.0,3.636131913285033 +1183.0,2.4239805422208014 +1184.0,3.4249941179725636 +1185.0,2.4471475499185242 +1186.0,4.759541319125313 +1187.0,2.7171799512252095 +1188.0,4.767367393222046 +1189.0,2.6053501832500885 +1190.0,2.329513295437002 +1191.0,2.8671191947832426 +1192.0,2.4836880198069378 +1193.0,2.958870691377272 +1194.0,3.4498447718169984 +1195.0,2.477296557538395 +1196.0,3.3447657494861707 +1197.0,2.728383104608537 +1198.0,2.6574772711441743 +1199.0,2.3310255654316503 +1200.0,3.0016197437889325 +1201.0,4.4695694578532095 +1202.0,4.34061861598827 +1203.0,3.397713521794209 +1204.0,2.748211242508091 +1205.0,3.879131249676073 +1206.0,3.2065135138337273 +1207.0,2.8347947311882935 +1208.0,2.3881284624727956 +1209.0,2.9943026463147815 +1210.0,2.863694971836887 +1211.0,4.145810878019739 +1212.0,3.2049852736682416 +1213.0,5.061194500293388 +1214.0,3.2432315533573255 +1215.0,2.9419456735022553 +1216.0,5.525280527810741 +1217.0,2.8909381148189337 +1218.0,5.231391112595391 +1219.0,3.2678195452531917 +1220.0,3.6042314621104437 +1221.0,4.180050589949308 +1222.0,3.553355501796622 +1223.0,3.0384011349956204 +1224.0,3.5846242336059495 +1225.0,2.4556806174979955 +1226.0,3.0583370666612772 +1227.0,2.7349496084915828 +1228.0,3.3925366616982435 +1229.0,5.048229660189897 +1230.0,4.309904151754806 +1231.0,3.0113481036591967 +1232.0,4.072050668246224 +1233.0,4.004334036754681 +1234.0,4.175090228613714 +1235.0,2.581881475214012 +1236.0,4.050419969813834 +1237.0,2.7681195681770188 +1238.0,2.8734253181457947 +1239.0,3.414285234589559 +1240.0,3.6413498883888398 +1241.0,2.69633200418149 +1242.0,3.024492670277311 +1243.0,2.9419648415221973 +1244.0,2.5173994288330985 +1245.0,2.3476891415557533 +1246.0,3.0542519608824734 +1247.0,2.427635866345364 +1248.0,3.3736758960289164 +1249.0,2.842309478975469 +1250.0,3.3893196784446897 +1251.0,3.2123502871608554 +1252.0,3.8302319593490455 +1253.0,3.574964414357514 +1254.0,3.2262374406654053 +1255.0,2.859010704244181 +1256.0,3.1698104694239744 +1257.0,2.610453376713882 +1258.0,3.524662751187043 +1259.0,2.352231533260369 +1260.0,2.53983470747197 +1261.0,2.502573929158857 +1262.0,3.3804458217737965 +1263.0,4.5878419237509185 +1264.0,3.22493240825656 +1265.0,4.14611480826032 +1266.0,3.9096253022744145 +1267.0,3.689417355071333 +1268.0,2.6784911336941066 +1269.0,2.4967475286146223 +1270.0,3.4683769998742218 +1271.0,2.7334880974385305 +1272.0,3.9865750795084898 +1273.0,2.4093515733167483 +1274.0,2.8849875568682033 +1275.0,2.959632337116795 +1276.0,3.6513097101624927 +1277.0,4.227410318104962 +1278.0,3.3410699778072654 +1279.0,2.8669443738398592 +1280.0,3.609202420253506 +1281.0,2.5024617724972638 +1282.0,2.961414629965433 +1283.0,3.095723886897788 +1284.0,4.3902016782495235 +1285.0,3.1993198067844966 +1286.0,2.9992575223916442 +1287.0,2.5393636537304536 +1288.0,2.969674175257245 +1289.0,2.8294584630067514 +1290.0,2.670512378459585 +1291.0,2.559403913585713 +1292.0,3.1391833078605718 +1293.0,3.007335436255736 +1294.0,2.9321109941081884 +1295.0,3.291360920201276 +1296.0,2.902980063129824 +1297.0,4.332554297768991 +1298.0,2.9290062376032693 +1299.0,2.503423886565893 +1300.0,2.7270793967522593 +1301.0,2.9237587354038705 +1302.0,3.1830109332101673 +1303.0,3.6266494544622403 +1304.0,3.60610191961147 +1305.0,3.7959714532631477 +1306.0,2.6417058140270626 +1307.0,2.97317697127487 +1308.0,3.7791649272199206 +1309.0,2.5327813607876637 +1310.0,2.456255935973487 +1311.0,3.266329570744174 +1312.0,2.5665619623361104 +1313.0,3.077650097675421 +1314.0,2.745088210067292 +1315.0,2.6538397020657856 +1316.0,3.5802927386822736 +1317.0,2.8077807310180907 +1318.0,3.9196524869840017 +1319.0,3.9776874168134575 +1320.0,2.8615174694577465 +1321.0,2.813943117572647 +1322.0,2.940918496768907 +1323.0,3.5254149409235707 +1324.0,2.9967730073241188 +1325.0,4.241015121997412 +1326.0,3.7264539667967274 +1327.0,4.301363103478922 +1328.0,3.5763103051054053 +1329.0,4.867487085403304 +1330.0,2.9958631320103692 +1331.0,4.408690717199416 +1332.0,2.5885637312382364 +1333.0,2.7002950460596176 +1334.0,2.8118671955070145 +1335.0,4.927145174875485 +1336.0,3.2124895238910147 +1337.0,3.169983311253764 +1338.0,3.360506108959571 +1339.0,2.9501164062748386 +1340.0,2.6983361179047 +1341.0,2.3973390741896483 +1342.0,3.375080438506329 +1343.0,2.8736808951097266 +1344.0,5.673176991187403 +1345.0,3.0406783327356237 +1346.0,2.7212112826264216 +1347.0,3.5821225359680158 +1348.0,2.530922970478487 +1349.0,2.4827790237719656 +1350.0,3.2358417886286333 +1351.0,6.404697535572103 +1352.0,4.558024074440317 +1353.0,2.5973163933537267 +1354.0,2.7627363912223135 +1355.0,2.692033526121803 +1356.0,7.668949866794657 +1357.0,3.185872641208796 +1358.0,2.6601441635076983 +1359.0,4.4111129637616715 +1360.0,5.491512061094484 +1361.0,2.739148288949016 +1362.0,3.241536453859026 +1363.0,3.0921469027841684 +1364.0,2.5157369894390045 +1365.0,3.457376148950685 +1366.0,3.9152059476832495 +1367.0,3.6467736456159225 +1368.0,3.7712215196207657 +1369.0,2.843456146422745 +1370.0,2.600287204966958 +1371.0,5.557403623183401 +1372.0,3.273960404056916 +1373.0,4.372574955637594 +1374.0,4.2121484628530785 +1375.0,3.5240706889515327 +1376.0,2.70723875297965 +1377.0,4.453442813584953 +1378.0,4.378648045933888 +1379.0,2.940757832424481 +1380.0,3.3692774069864546 +1381.0,2.7641161366895592 +1382.0,2.7866731095699397 +1383.0,2.5851686485763903 +1384.0,2.741574560700755 +1385.0,3.9174745551128214 +1386.0,3.2900717557268173 +1387.0,2.3820130768923913 +1388.0,3.152017667821563 +1389.0,2.450838424801932 +1390.0,2.661698134498003 +1391.0,3.460828679568163 +1392.0,3.1377184613115108 +1393.0,3.6306958564936793 +1394.0,3.2544788542255847 +1395.0,4.871631771333869 +1396.0,2.6928296999906065 +1397.0,2.8940366619440474 +1398.0,2.5554624671402757 +1399.0,2.49058753825561 diff --git a/tests/fixtures/catalogs/case_019_active_then_quiet_1400d.csv b/tests/fixtures/catalogs/case_019_active_then_quiet_1400d.csv new file mode 100644 index 0000000..89a15bf --- /dev/null +++ b/tests/fixtures/catalogs/case_019_active_then_quiet_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,3.1052663590900917 +1.0,2.690527476422548 +2.0,2.64837278145359 +3.0,3.4821387884713575 +4.0,6.136328664057432 +5.0,2.5289647266017607 +6.0,3.297221573883983 +7.0,2.795340791191633 +8.0,3.6957617292442855 +9.0,2.727570266612557 +10.0,2.7543555453202138 +11.0,2.3389086095907734 +12.0,2.92814444527042 +13.0,3.4368870133235414 +14.0,3.224963807985156 +15.0,2.8203833752236975 +16.0,2.6937807234486906 +17.0,3.437745402648795 +18.0,2.794459442903999 +19.0,4.057561449638348 +20.0,2.5605124060132174 +21.0,2.785382539714446 +22.0,2.9813358429324364 +23.0,2.633181854882662 +24.0,6.039663981064178 +25.0,2.8908010400152064 +26.0,3.441074874982733 +27.0,3.1526969795481494 +28.0,2.8125858975383484 +29.0,2.374471425510577 +30.0,2.4708383126385263 +31.0,4.190089077042847 +32.0,3.90727721711503 +33.0,4.009392327586969 +34.0,3.0869380236135933 +35.0,4.042526897171375 +36.0,3.146824318642677 +37.0,3.020956786440258 +38.0,3.5472404488787657 +39.0,3.0547048538145556 +40.0,6.010701235098635 +41.0,5.724510163801964 +42.0,3.5358312507266216 +43.0,5.414152555425094 +44.0,3.1228600581977615 +45.0,2.565456175694796 +46.0,3.3912475822688233 +47.0,2.9654557931695247 +48.0,2.482383214751054 +49.0,3.8696708004979192 +50.0,3.8846296205315234 +51.0,5.1479981693045875 +52.0,3.3694018326308566 +53.0,4.257172495921103 +54.0,2.6684432648267222 +55.0,3.2240727091360957 +56.0,2.6090904039620404 +57.0,5.235495768842569 +58.0,3.3096899992071926 +59.0,2.5671491177153887 +60.0,3.170555356796466 +61.0,3.4035201125790664 +62.0,3.4516962478054136 +63.0,2.4725574247620377 +64.0,2.610745854496036 +65.0,2.770667376047397 +66.0,2.4909324130839106 +67.0,3.31579316634304 +68.0,2.764185530054417 +69.0,2.6762407035106484 +70.0,2.7988898566641183 +71.0,3.122378149628379 +72.0,3.0306250220549513 +73.0,2.6352209221264506 +74.0,3.6868272063703786 +75.0,2.5502885395756874 +76.0,3.843553575405318 +77.0,5.579717501254194 +78.0,2.8237813733298918 +79.0,3.296847193939314 +80.0,3.135979589189807 +81.0,3.776775622190663 +82.0,2.6009136253615406 +83.0,2.5205067289119047 +84.0,2.833208107291522 +85.0,2.731796084658356 +86.0,3.180464806742346 +87.0,3.2722751505536687 +88.0,2.765303519608939 +89.0,3.0988656755626813 +90.0,3.622928793510973 +91.0,4.127043052644622 +92.0,3.133489324227 +93.0,2.88101111814706 +94.0,3.114618111354099 +95.0,2.936498281819253 +96.0,4.070368503861563 +97.0,2.7638299975434597 +98.0,3.220328937944474 +99.0,2.799566593362631 +100.0,2.595762046301822 +101.0,4.259354615619398 +102.0,4.197457477124562 +103.0,3.943923495816372 +104.0,2.599193365246508 +105.0,3.524338309675236 +106.0,3.2905140082553883 +107.0,2.674567784685064 +108.0,2.9900805395040413 +109.0,2.954878813080443 +110.0,4.375684778504938 +111.0,2.6197409294223033 +112.0,2.4774634043127217 +113.0,3.359340180720844 +114.0,2.815788337152876 +115.0,3.015750326122461 +116.0,4.166119706447856 +117.0,2.7288593288723555 +118.0,5.138086235966526 +119.0,5.1062792591621005 +120.0,3.256582703532817 +121.0,2.881275142505729 +122.0,2.644977254857033 +123.0,3.4803774105711067 +124.0,3.065743597410229 +125.0,3.266919588048669 +126.0,2.3539802892598782 +127.0,4.205229871466017 +128.0,2.4471596547177574 +129.0,3.4469518044547343 +130.0,3.5844558949576655 +131.0,2.5337869128138957 +132.0,4.23046493653267 +133.0,4.942577184534619 +134.0,3.5433292517413277 +135.0,4.110829543320902 +136.0,3.0096940415910622 +137.0,3.096228882924808 +138.0,3.327037583786821 +139.0,3.129191374328644 +140.0,5.352845216847676 +141.0,4.1594193620583475 +142.0,3.2886340639362714 +143.0,2.7459409082230715 +144.0,2.372691576516484 +145.0,3.216437014721074 +146.0,2.7133839817532825 +147.0,3.660938210824786 +148.0,2.958890702770017 +149.0,2.663995847812112 +150.0,2.649479444973526 +151.0,4.352850732984359 +152.0,4.183608579353456 +153.0,2.636176899021253 +154.0,2.7444721380324433 +155.0,3.1779237701177308 +156.0,3.4607386142685947 +157.0,4.85274673819092 +158.0,3.4754703388747252 +159.0,5.657227119142167 +160.0,2.4741828179348464 +161.0,3.4965138311785093 +162.0,2.8084673340800927 +163.0,3.426644093839412 +164.0,3.2046839661368987 +165.0,3.7228971544477707 +166.0,3.034051458581021 +167.0,3.199483985086156 +168.0,3.0509937139365566 +169.0,2.7559002803574164 +170.0,2.9901240747078837 +171.0,3.871554370779148 +172.0,2.8374468830886075 +173.0,3.2265417227557 +174.0,3.658722009368881 +175.0,2.779841205380013 +176.0,3.302556230205079 +177.0,3.6305608840992685 +178.0,2.3963933105670474 +179.0,3.1934872757221524 +180.0,3.5001019662993444 +181.0,3.270793530811538 +182.0,3.2933547019996228 +183.0,2.5486222994210017 +184.0,3.8789278754924648 +185.0,3.6372196689794567 +186.0,3.868517240674671 +187.0,3.815831967911388 +188.0,4.080970115515898 +189.0,2.665827380181904 +190.0,2.755571846865449 +191.0,4.159735586427125 +192.0,3.1735869502059524 +193.0,2.5377454428887383 +194.0,3.9748158953957207 +195.0,2.664292765695399 +196.0,3.3371494569523072 +197.0,2.987556212461416 +198.0,4.202060565799481 +199.0,5.2705566575277105 +200.0,4.498796378969655 +201.0,2.6578337197236626 +202.0,4.189796036933047 +203.0,3.9612834925814795 +204.0,2.584567167413776 +205.0,2.932275916401877 +206.0,3.3299106232092095 +207.0,3.1500813341371097 +208.0,5.775967223214416 +209.0,2.7527037778666528 +210.0,2.9644655907761144 +211.0,3.413849641058488 +212.0,4.550352314413685 +213.0,3.1641022294610432 +214.0,2.8144089305630224 +215.0,2.9201962420172602 +216.0,2.7521679578368903 +217.0,3.2199404902792494 +218.0,2.686269562003802 +219.0,2.889993646570212 +220.0,2.678210886365225 +221.0,3.2326370075411335 +222.0,3.860548600928146 +223.0,4.203624341155186 +224.0,2.9835916097847 +225.0,5.851999181597651 +226.0,5.927782429847717 +227.0,5.31839587110591 +228.0,2.4710958039552264 +229.0,3.2740810802819524 +230.0,2.518221248010133 +231.0,2.346784430575903 +232.0,3.0604561412649867 +233.0,2.839640814019962 +234.0,2.9936508440058254 +235.0,2.373300512155504 +236.0,3.112886944658961 +237.0,2.926304630583566 +238.0,3.4983975469211614 +239.0,4.516691520337984 +240.0,3.5215184140089013 +241.0,3.385342512373808 +242.0,2.5771883015364008 +243.0,4.803183861587192 +244.0,2.901765348380187 +245.0,2.7868438358136367 +246.0,3.344223013915758 +247.0,3.619788166468564 +248.0,3.3469414242436604 +249.0,3.9498075024216512 +250.0,2.913812598302602 +251.0,3.340266778461714 +252.0,3.3113134687992805 +253.0,3.1316028541703247 +254.0,3.562341106712806 +255.0,2.565283542801783 +256.0,3.223789993183908 +257.0,3.072179545264532 +258.0,2.7247670710131953 +259.0,2.8435693472974726 +260.0,2.4978703315305375 +261.0,4.025204709661999 +262.0,4.3695227130323016 +263.0,2.674549487788296 +264.0,2.845178636400171 +265.0,4.974869256694418 +266.0,3.2905572191092323 +267.0,3.1222725248397687 +268.0,2.986795856347598 +269.0,3.188928871496504 +270.0,3.3443474417964736 +271.0,2.770059929561679 +272.0,3.4242305222126315 +273.0,2.626135838593408 +274.0,3.2690728235387168 +275.0,3.4950722782425983 +276.0,2.4962401530298526 +277.0,3.8985622021784083 +278.0,2.571508359813577 +279.0,2.954126457739474 +280.0,3.6448710272326403 +281.0,4.836475956331501 +282.0,3.4825367657618695 +283.0,2.508562368106795 +284.0,2.5576374538242583 +285.0,3.3612384547887872 +286.0,5.023717836212535 +287.0,3.922535938347015 +288.0,3.1124066552465566 +289.0,3.357633682995581 +290.0,2.6054423139112655 +291.0,3.738793673069938 +292.0,2.9877158885331 +293.0,3.1857954664620363 +294.0,4.80356870263142 +295.0,4.490352473312612 +296.0,4.187166310716211 +297.0,3.6827868020707397 +298.0,2.443202074660108 +299.0,3.7988890640137445 +300.0,2.7114016435342148 +301.0,3.2374627940235565 +302.0,2.9131279171576825 +303.0,2.5916086585775244 +304.0,5.713343928557133 +305.0,3.3651687479496575 +306.0,3.3003399240891396 +307.0,3.4875680785307774 +308.0,2.526777215310643 +309.0,4.908823727948533 +310.0,3.6192926326747967 +311.0,3.6724327969940265 +312.0,3.1815121702232783 +313.0,2.621895260433025 +314.0,2.6933853161249406 +315.0,4.548575556135679 +316.0,3.4342932675330315 +317.0,3.55245231502709 +318.0,2.528057114177321 +319.0,4.654242238115318 +320.0,3.562126801345968 +321.0,3.246008809671858 +322.0,3.6886088526911225 +323.0,2.5599321287828123 +324.0,3.124431656851554 +325.0,2.403344318513133 +326.0,3.1843399936600663 +327.0,2.650983831175976 +328.0,2.969046604772892 +329.0,5.525010501227527 +330.0,2.9626661622339956 +331.0,3.7290390756362344 +332.0,2.583631800591677 +333.0,2.821955755586732 +334.0,3.314402220208274 +335.0,3.2097161384390938 +336.0,3.153508268511218 +337.0,2.6316599710647792 +338.0,2.6680874543568325 +339.0,6.278875370706421 +340.0,3.196271262774101 +341.0,3.875468078037259 +342.0,2.5234653482042773 +343.0,4.273261820116612 +344.0,3.81484008133085 +345.0,3.5412973697750236 +346.0,2.420697953102618 +347.0,3.286575591370486 +348.0,4.8042147304678995 +349.0,2.5110493117241734 +350.0,2.705371130706863 +351.0,2.5988998649717976 +352.0,4.51767459755118 +353.0,3.115812350626136 +354.0,3.315033462717491 +355.0,2.436580331744909 +356.0,4.056047273838887 +357.0,2.8448395851883532 +358.0,3.6578682895782375 +359.0,3.3227162672835986 +360.0,3.1074939809425683 +361.0,3.2910551332208584 +362.0,3.5600955836153068 +363.0,3.4330092063872026 +364.0,4.360011406699995 +365.0,2.511871135364402 +366.0,2.5175888801426165 +367.0,4.036256234138676 +368.0,3.2193897203589543 +369.0,3.898672910235569 +370.0,3.5683571419882587 +371.0,2.981343866801668 +372.0,3.1455615172162004 +373.0,3.277989124561833 +374.0,2.6000425073316378 +375.0,2.834385339307954 +376.0,8.911315125470654 +377.0,3.125697384120743 +378.0,6.404334621129026 +379.0,2.420091468400012 +380.0,2.431380812048237 +381.0,3.8606540037454624 +382.0,2.37580511444857 +383.0,2.8369685455694187 +384.0,2.819615385969284 +385.0,4.3642519963364945 +386.0,3.5032901557672407 +387.0,3.316676712796846 +388.0,2.4706410289403573 +389.0,3.04881357581456 +390.0,3.8955861399704172 +391.0,3.1372663315323686 +392.0,2.585284253259296 +393.0,2.42957067361285 +394.0,2.3147492289955696 +395.0,3.054691099157729 +396.0,2.3761074613927966 +397.0,2.3202654768025943 +398.0,2.742043080252232 +399.0,2.331463811197154 +400.0,2.5803143702558966 +401.0,3.385392113744161 +402.0,3.3858152780356807 +403.0,2.327852347265756 +404.0,2.3083739769951834 +405.0,2.326700579902155 +406.0,2.541583827328759 +407.0,2.520532456279897 +408.0,2.462649715170875 +409.0,3.244118511123828 +410.0,2.302739399780737 +411.0,2.407629451451816 +412.0,2.4448760751978402 +413.0,2.7696829535031826 +414.0,2.447702634627067 +415.0,2.3153834672953737 +416.0,2.6892286599581774 +417.0,2.840609065524214 +418.0,2.669476510896502 +419.0,2.6194983391248847 +420.0,2.313710916673766 +421.0,2.424801311690116 +422.0,2.3828797966158053 +423.0,3.298335314010078 +424.0,2.607260476813567 +425.0,2.7809088340176666 +426.0,2.5783057232403945 +427.0,2.3765244922664435 +428.0,2.365066406932445 +429.0,2.371100632808772 +430.0,2.811244268635309 +431.0,2.476872685380016 +432.0,2.5440673468935207 +433.0,2.5262778701624278 +434.0,2.4512098922855374 +435.0,2.45283010255361 +436.0,3.561629674849053 +437.0,2.624893359283674 +438.0,2.6230553656214353 +439.0,2.630016157439891 +440.0,2.7692009504150965 +441.0,2.777596167976374 +442.0,2.9348589166952803 +443.0,2.411123746869548 +444.0,2.320008398687408 +445.0,2.3715341912649426 +446.0,2.9166983672176547 +447.0,2.4630367833804976 +448.0,2.6705503708617035 +449.0,2.307715793198198 +450.0,2.55066390637072 +451.0,2.330888082296952 +452.0,2.3289100519612913 +453.0,2.3076728484232696 +454.0,3.8663170312326485 +455.0,2.5189210908703092 +456.0,2.601498306994416 +457.0,2.310148456100951 +458.0,2.4660725882993 +459.0,3.5811934958864056 +460.0,2.318722840314187 +461.0,2.71553107708503 +462.0,2.6478607679529103 +463.0,2.8248781627833317 +464.0,2.350826750529091 +465.0,2.3308347373844813 +466.0,2.5407437403261923 +467.0,2.6819846767888738 +468.0,2.606010826127747 +469.0,4.687297270272074 +470.0,2.7794906998873214 +471.0,2.432685375726172 +472.0,3.936430880055206 +473.0,2.4685456348362127 +474.0,2.323574301690537 +475.0,2.332884014714233 +476.0,2.3195438193119116 +477.0,3.36747999137792 +478.0,2.5849907171996365 +479.0,2.301316935518622 +480.0,2.3477712784514093 +481.0,2.953377003206075 +482.0,2.656045430220965 +483.0,2.611500366510938 +484.0,2.8995504776093006 +485.0,2.885481498752754 +486.0,2.5039848792822927 +487.0,2.457882556416191 +488.0,2.5486682242536918 +489.0,2.3266523603404985 +490.0,2.438155234137561 +491.0,2.6807727376354284 +492.0,2.505731867613654 +493.0,2.6186791411073247 +494.0,2.354086387959496 +495.0,2.481189724223421 +496.0,2.5445214787443393 +497.0,2.345589442077515 +498.0,2.4278166331893747 +499.0,2.3700663975056817 +500.0,2.629496107291976 +501.0,2.7899870394134867 +502.0,2.415806523563172 +503.0,2.3359618886666045 +504.0,2.4245778118232746 +505.0,2.530160203069318 +506.0,3.1048499157823204 +507.0,2.557580736312319 +508.0,2.6538642959687246 +509.0,2.6679781982316193 +510.0,2.516714443930227 +511.0,2.920940586500704 +512.0,2.5038158804866226 +513.0,2.4492600311799646 +514.0,2.344820456386555 +515.0,2.747318181169746 +516.0,2.532405502497307 +517.0,2.3207369722801166 +518.0,2.5232995800598115 +519.0,2.5178266290867435 +520.0,2.438212713378029 +521.0,2.307289217244375 +522.0,2.3670183611225006 +523.0,2.305712398902488 +524.0,2.47626024381641 +525.0,2.3363444990051065 +526.0,2.36240203166642 +527.0,2.9723957451727494 +528.0,2.7343002102816962 +529.0,2.317557715391856 +530.0,3.4503416689563426 +531.0,2.3359943091579116 +532.0,2.3134693085864506 +533.0,2.3986134913264694 +534.0,2.5614536726694612 +535.0,3.108364379479477 +536.0,2.3829829042124446 +537.0,2.499136776859166 +538.0,2.7287499368283856 +539.0,2.645343411949309 +540.0,2.627701539098158 +541.0,2.3415007600633277 +542.0,2.3184301588174745 +543.0,2.3235529669752686 +544.0,2.8449964301171713 +545.0,2.404848997692258 +546.0,2.5587962453593347 +547.0,2.584393291569773 +548.0,2.347823855957257 +549.0,2.390346481571673 +550.0,2.350715744100928 +551.0,3.173108465803162 +552.0,2.746075644940692 +553.0,2.312823085854979 +554.0,2.404079657245479 +555.0,2.4621850256355007 +556.0,3.0180215214298896 +557.0,2.3248782024758103 +558.0,2.4641442919831436 +559.0,2.3579852608149032 +560.0,2.428331073757083 +561.0,2.675748368994939 +562.0,2.8642048434977445 +563.0,2.4855235874045296 +564.0,2.3845033691541007 +565.0,2.70153645424032 +566.0,2.6293211584891356 +567.0,2.479975634787091 +568.0,2.819738764300387 +569.0,2.3235391560957392 +570.0,2.4947631198601705 +571.0,2.6278485200870043 +572.0,2.4070642681743917 +573.0,2.5820721024673947 +574.0,2.3220618540443945 +575.0,2.9782747085152206 +576.0,2.306798442674179 +577.0,2.3404355591989723 +578.0,2.428371893009076 +579.0,2.333753601408635 +580.0,2.7181987641394683 +581.0,2.346025560400657 +582.0,2.4235723726446405 +583.0,3.166544150000186 +584.0,2.7342318077515047 +585.0,3.24572979005317 +586.0,2.3557877104182174 +587.0,2.4027201897692967 +588.0,2.683446470280695 +589.0,2.394303579512518 +590.0,2.380429362798421 +591.0,2.3515713344652527 +592.0,2.502635986242822 +593.0,2.7876094787179544 +594.0,2.4947430631516143 +595.0,2.3146875504206075 +596.0,2.3346110825504036 +597.0,2.322751967669426 +598.0,3.3432405048799914 +599.0,2.618017594758581 +600.0,2.7450475655434485 +601.0,2.705631215195602 +602.0,2.366327456779133 +603.0,2.9692012742445404 +604.0,2.5802414647017353 +605.0,2.542823008828096 +606.0,2.3779811793492627 +607.0,2.397959898341692 +608.0,2.3873254367072496 +609.0,2.459252569169708 +610.0,2.5451331906375487 +611.0,2.3580075119505723 +612.0,2.5162331813202545 +613.0,2.8340610262097066 +614.0,2.447313844706339 +615.0,2.329813060072535 +616.0,2.305235583779407 +617.0,2.671610549853834 +618.0,3.049777950487766 +619.0,2.514716748032684 +620.0,3.018312029153063 +621.0,3.4289989107684375 +622.0,2.967287660467579 +623.0,2.3151309612262376 +624.0,3.107262538543084 +625.0,2.3936833496501113 +626.0,2.5126445971499494 +627.0,2.390322512647866 +628.0,2.456747458960126 +629.0,2.381050282786047 +630.0,2.4504175221028754 +631.0,2.3695017515384476 +632.0,2.4922843997096407 +633.0,2.7217104129130973 +634.0,2.836899587794541 +635.0,2.403264070088945 +636.0,2.3478923567336016 +637.0,3.300236032575015 +638.0,2.6968806584548624 +639.0,3.2511697013901886 +640.0,2.533360143924873 +641.0,2.3943440739920874 +642.0,2.6387016027857664 +643.0,3.4263001459559357 +644.0,2.6091435795404387 +645.0,2.6654541859367082 +646.0,2.9313313153834653 +647.0,2.4807888807110614 +648.0,3.440821699080114 +649.0,2.6007587829026138 +650.0,2.747434663230275 +651.0,2.332652019456828 +652.0,2.7331323501302434 +653.0,2.726352127850303 +654.0,2.3825985032789383 +655.0,2.5776838005148455 +656.0,2.37358431065496 +657.0,2.3803585013279935 +658.0,2.3541217702350874 +659.0,2.629304133842737 +660.0,2.745541040578861 +661.0,2.660022040081034 +662.0,2.437635341195424 +663.0,2.3512844307195575 +664.0,2.485254086306133 +665.0,2.3493267395113433 +666.0,2.5573069426710604 +667.0,2.5681931617904072 +668.0,2.4420389403810283 +669.0,2.365902490152726 +670.0,2.3030611132145764 +671.0,2.386085279872045 +672.0,2.328838403275141 +673.0,2.445938524029965 +674.0,2.4532368784899736 +675.0,3.1011719395307096 +676.0,2.4338505747813035 +677.0,2.557766527480319 +678.0,2.34327809689915 +679.0,2.3642785189422737 +680.0,2.8127506538683553 +681.0,2.55709777471219 +682.0,2.5145767331459368 +683.0,2.3954355720310736 +684.0,4.346345198376381 +685.0,2.6039961325097196 +686.0,2.3208134814419803 +687.0,2.8557320010410367 +688.0,2.8168020292832585 +689.0,2.342060025372622 +690.0,2.38322152670616 +691.0,2.5910523569004513 +692.0,2.4122527414475066 +693.0,3.086106147649481 +694.0,2.9680869799426195 +695.0,2.409449632215545 +696.0,2.3208969839547415 +697.0,2.945826702413323 +698.0,2.4809050903793404 +699.0,2.377256750937649 +700.0,2.407599874233608 +701.0,2.6121251825907676 +702.0,2.459126274319214 +703.0,3.1318721945083197 +704.0,2.429645821783868 +705.0,2.643408927143926 +706.0,3.3894677790340335 +707.0,2.408138505770565 +708.0,2.788328718825636 +709.0,2.546218721734826 +710.0,2.9295906132718432 +711.0,2.39956492678188 +712.0,2.486966406654833 +713.0,2.681366043643789 +714.0,2.401327911481598 +715.0,2.314272973756246 +716.0,2.301670639382875 +717.0,2.587464831846544 +718.0,2.3957803449248707 +719.0,2.5676933876877293 +720.0,2.319521663259026 +721.0,2.32545285198321 +722.0,2.3473547114234656 +723.0,2.474205262451587 +724.0,3.067954849612025 +725.0,2.732231592197601 +726.0,2.479060791648675 +727.0,2.337511359253059 +728.0,2.4405147068035284 +729.0,2.589987660881348 +730.0,2.892786481773938 +731.0,2.5340490336200414 +732.0,3.62424887079207 +733.0,2.3076804981231986 +734.0,2.474670117884897 +735.0,2.901759349364684 +736.0,2.356209118261726 +737.0,2.380186717231114 +738.0,2.765884350237282 +739.0,2.335500866233525 +740.0,2.4749131899254864 +741.0,2.5482372502489827 +742.0,3.344962617183368 +743.0,2.5481484704781403 +744.0,2.3939395756123814 +745.0,2.5340332409738684 +746.0,2.481902470418646 +747.0,2.4771856275479003 +748.0,2.5866851750434625 +749.0,3.1701255727272333 +750.0,2.8631075472710013 +751.0,2.453559470191003 +752.0,2.3502019890485917 +753.0,3.644820056191156 +754.0,3.29132186923295 +755.0,2.3855015350189084 +756.0,2.6844467951580104 +757.0,2.54335440814014 +758.0,2.3332846364658764 +759.0,2.492381267832092 +760.0,2.793846574098907 +761.0,2.744479988108142 +762.0,2.3090388471810623 +763.0,2.4388288866766006 +764.0,2.3882288855550935 +765.0,2.572921888690154 +766.0,2.4032141475931947 +767.0,2.405243562226003 +768.0,2.6436387733884312 +769.0,2.8778137372303316 +770.0,2.4362502379993884 +771.0,2.84992225309123 +772.0,3.286963211043408 +773.0,2.81338895299901 +774.0,3.0087689720016613 +775.0,3.550490869971452 +776.0,2.372735612051213 +777.0,2.3877185009538593 +778.0,2.473848717173941 +779.0,2.3335719214091384 +780.0,2.4713451692227992 +781.0,2.5456957918738046 +782.0,2.575001436651109 +783.0,2.3385354473648277 +784.0,2.3045249145127413 +785.0,2.3204652006715776 +786.0,2.6574649381208113 +787.0,2.8488496380293986 +788.0,2.3596596913602355 +789.0,2.5844116601553124 +790.0,2.8731947631012047 +791.0,2.3788217974403376 +792.0,2.4303518948307783 +793.0,4.731821499859198 +794.0,2.48089912367415 +795.0,2.4263476512763402 +796.0,2.515856157150016 +797.0,2.5830160028451763 +798.0,2.4479492645743943 +799.0,2.600196604544107 +800.0,2.462297780440147 +801.0,2.513627322640218 +802.0,2.477284904810179 +803.0,2.994694074199305 +804.0,2.704064755115003 +805.0,3.021726402134683 +806.0,2.8488560100059854 +807.0,2.6042665002038916 +808.0,2.377306407760675 +809.0,3.078846061961703 +810.0,2.6609549300456132 +811.0,2.3747081495042135 +812.0,2.5506981918457488 +813.0,2.6235957185509755 +814.0,2.373780824724846 +815.0,2.3778285324240898 +816.0,2.428559462058238 +817.0,2.4509487368079474 +818.0,2.619965415490986 +819.0,2.547733723399539 +820.0,2.425108170662454 +821.0,2.4638508585131897 +822.0,2.6238323937534207 +823.0,2.92552998166923 +824.0,2.3421722543766403 +825.0,3.498000365889145 +826.0,3.012614547582177 +827.0,2.779153177200396 +828.0,2.4780795111186498 +829.0,2.393487658678646 +830.0,2.608059143484664 +831.0,2.8854939579683196 +832.0,2.4960827356742983 +833.0,2.539761560255016 +834.0,2.321347017301299 +835.0,2.300011308978738 +836.0,2.354179836286228 +837.0,2.4312803442847195 +838.0,2.4035335351622225 +839.0,2.5290790788548305 +840.0,2.3066919834261004 +841.0,2.4263064860320886 +842.0,2.6628130171236304 +843.0,2.566614694070911 +844.0,2.8785892620419626 +845.0,2.400233058957735 +846.0,2.4476290121701054 +847.0,2.686210429147214 +848.0,2.559567712108639 +849.0,2.3586600379760454 +850.0,2.430203487012572 +851.0,3.8570794511625066 +852.0,2.3181089036498363 +853.0,3.816265756255391 +854.0,2.414154593414475 +855.0,2.4198484720975966 +856.0,2.645388905296741 +857.0,2.57579548115945 +858.0,2.3526713553117853 +859.0,2.3496868477214305 +860.0,2.419033067463413 +861.0,2.5896118284986778 +862.0,2.5954747275797354 +863.0,3.492474245402195 +864.0,2.8232970239438235 +865.0,3.3065676665223265 +866.0,2.922096048534084 +867.0,2.348532418273023 +868.0,2.434096847075088 +869.0,2.686231241213754 +870.0,2.4894405588922304 +871.0,3.183578608520055 +872.0,2.449509717906825 +873.0,2.5539017861926547 +874.0,2.3438491747105306 +875.0,2.689553426447995 +876.0,2.321372348703426 +877.0,2.337100642756004 +878.0,2.5745795035677173 +879.0,2.393199320679674 +880.0,2.701982818977012 +881.0,2.441287796846101 +882.0,2.304231096792708 +883.0,3.7226908787109743 +884.0,2.4344064987740057 +885.0,2.6624883319877766 +886.0,2.7610336409540945 +887.0,2.4552479747714804 +888.0,2.6015915536274106 +889.0,2.306722905726378 +890.0,2.4362042071712002 +891.0,2.4239536524389638 +892.0,3.2506843821171314 +893.0,2.3737170837861337 +894.0,2.5270035005504923 +895.0,2.7109745128081095 +896.0,2.3992360022330033 +897.0,2.564085371839972 +898.0,3.3055270448369516 +899.0,2.3176593828239906 +900.0,2.4591906555168856 +901.0,3.728496713791798 +902.0,2.373737583656317 +903.0,2.8724172690420664 +904.0,2.328737133174355 +905.0,2.5338479837968495 +906.0,2.7387576096092636 +907.0,2.3764607224295093 +908.0,2.4763470808632793 +909.0,3.5543903189998334 +910.0,2.456969512267328 +911.0,2.536320605765261 +912.0,2.422576686654584 +913.0,2.3724585816645147 +914.0,2.6857390023561774 +915.0,2.663102213158508 +916.0,2.609067270344485 +917.0,2.413200087643414 +918.0,2.817158012923554 +919.0,2.864948007605146 +920.0,2.475053950792954 +921.0,2.4846056246079447 +922.0,2.3979211040296984 +923.0,2.3021796105266836 +924.0,3.1091715886109346 +925.0,2.6329850200765765 +926.0,2.4620895063285246 +927.0,2.478241641771604 +928.0,2.5108896824582803 +929.0,2.3119813586436933 +930.0,2.9030558239268904 +931.0,2.7867161230565793 +932.0,2.42908892486207 +933.0,2.7162986993881346 +934.0,2.3005693237422635 +935.0,2.8444051405944792 +936.0,2.3498599131547113 +937.0,2.7105478172472757 +938.0,2.387968131770465 +939.0,2.452624757866505 +940.0,2.9521445626610348 +941.0,2.5107547803171895 +942.0,2.3538144764974476 +943.0,2.50213092984096 +944.0,2.6390161449002436 +945.0,3.3590355818808626 +946.0,2.319267966657563 +947.0,3.1787287796294157 +948.0,2.475992393470928 +949.0,2.419242621441427 +950.0,2.6852401070149674 +951.0,2.541382543292 +952.0,2.366821909569245 +953.0,2.475495699078227 +954.0,2.7259692207460455 +955.0,2.9315855647586293 +956.0,2.985766571878662 +957.0,2.4589510132561734 +958.0,2.33698262684035 +959.0,2.8089060205896015 +960.0,2.525909065120043 +961.0,4.4897299034363405 +962.0,2.474144837992653 +963.0,2.6076782599705868 +964.0,2.517938959021054 +965.0,2.446564015112411 +966.0,2.9306516617242617 +967.0,2.7101322674319985 +968.0,2.380786163431171 +969.0,2.4405516213469274 +970.0,2.7255345346819366 +971.0,2.490005861815952 +972.0,2.345708374452523 +973.0,2.3110947142417944 +974.0,2.3618099009649103 +975.0,2.368572201923356 +976.0,2.7953492049513637 +977.0,3.029985402283016 +978.0,2.3123371064066935 +979.0,2.7534401277646925 +980.0,2.379076720924562 +981.0,2.779309324418693 +982.0,2.473036969422081 +983.0,2.3280078602996905 +984.0,2.754304051474186 +985.0,3.025893393244978 +986.0,3.3139873326952287 +987.0,2.668162977982816 +988.0,2.3009538630159296 +989.0,2.589676195641534 +990.0,2.571105064749696 +991.0,2.360807854986236 +992.0,2.7121341630257505 +993.0,3.7913935862478496 +994.0,2.3119431954336767 +995.0,2.373001886488151 +996.0,2.544185162536734 +997.0,2.485923942726383 +998.0,3.0427495388858743 +999.0,2.716360165282136 +1000.0,3.1667210639732555 +1001.0,2.7194708852214435 +1002.0,2.4811026747295855 +1003.0,2.3950274315907882 +1004.0,2.918941640620844 +1005.0,2.3181523299590494 +1006.0,2.5566891520580546 +1007.0,2.3120809522930643 +1008.0,2.5043455113953845 +1009.0,2.487012175485217 +1010.0,2.3249844695308743 +1011.0,3.305732618945771 +1012.0,2.4508326475369406 +1013.0,2.326555307969846 +1014.0,2.53816568911327 +1015.0,2.3410457707718217 +1016.0,2.426636493111215 +1017.0,2.4244889478252523 +1018.0,3.2335028372896266 +1019.0,2.5250912733865314 +1020.0,2.301737345132286 +1021.0,2.3178050503814664 +1022.0,2.4231341059028875 +1023.0,2.4031789040513796 +1024.0,4.0097923069193575 +1025.0,2.8837357088368067 +1026.0,2.6608828001417617 +1027.0,2.787200799603493 +1028.0,3.8093193214198697 +1029.0,2.4903970138700586 +1030.0,2.383258234202459 +1031.0,2.5727279234606075 +1032.0,3.2593660167909437 +1033.0,2.377946470058499 +1034.0,3.43419502047427 +1035.0,2.74874320536414 +1036.0,2.8312431129138913 +1037.0,2.7586644999910996 +1038.0,2.360656228036794 +1039.0,2.4030626327311855 +1040.0,2.308409169278368 +1041.0,2.5096724824813474 +1042.0,2.304882073854108 +1043.0,2.3135008623100126 +1044.0,3.039569769695359 +1045.0,2.596650948115645 +1046.0,3.0305061644413986 +1047.0,2.562683485035883 +1048.0,2.367460175586086 +1049.0,2.607066865935258 +1050.0,2.428469967753811 +1051.0,2.470479888458166 +1052.0,2.5500943776374574 +1053.0,2.450199378991426 +1054.0,2.5024844067082768 +1055.0,2.3154585961448304 +1056.0,2.353125327070023 +1057.0,2.617115545346145 +1058.0,2.6183260289128047 +1059.0,2.323519643329906 +1060.0,2.34877026963961 +1061.0,2.627206127402106 +1062.0,3.2694249082403863 +1063.0,2.311292607987617 +1064.0,2.5074979667469863 +1065.0,2.876103002527531 +1066.0,2.33178370775705 +1067.0,2.618213416650273 +1068.0,2.7322996221937745 +1069.0,2.4444005296683704 +1070.0,3.003589449865957 +1071.0,2.547902020942449 +1072.0,2.30254203452199 +1073.0,2.521104049200628 +1074.0,2.4064919820227213 +1075.0,2.899045344726919 +1076.0,2.5024549395420674 +1077.0,2.332389221555145 +1078.0,2.5331750215164237 +1079.0,2.4121075803803045 +1080.0,2.351424219204225 +1081.0,2.691085517537974 +1082.0,2.4259691221506734 +1083.0,2.6542979040548262 +1084.0,2.3497340268642897 +1085.0,2.8477621145021965 +1086.0,3.0579522496118634 +1087.0,2.5833623990506074 +1088.0,2.518330766131486 +1089.0,2.585066098642685 +1090.0,2.4912435322717292 +1091.0,2.5143993190701326 +1092.0,2.3191690561265634 +1093.0,2.363638923731328 +1094.0,3.3219814362183415 +1095.0,2.6656551347908946 +1096.0,2.327263010799478 +1097.0,2.52368635520483 +1098.0,2.5109473656563006 +1099.0,2.359171087096522 +1100.0,2.5437353812304497 +1101.0,2.9250249691008925 +1102.0,2.302073366504322 +1103.0,2.4330025454798725 +1104.0,2.4256655453717726 +1105.0,2.5215121197157138 +1106.0,2.7390040104390447 +1107.0,2.304991001946706 +1108.0,2.637363973413861 +1109.0,2.3696431136063167 +1110.0,2.3137215744309003 +1111.0,2.4317863731794347 +1112.0,2.5266040511514922 +1113.0,2.4208241367663956 +1114.0,2.5072022424695413 +1115.0,3.049419610989188 +1116.0,2.3830355548225572 +1117.0,2.339773198404443 +1118.0,2.769366475233626 +1119.0,2.422990622245852 +1120.0,3.198393089244862 +1121.0,3.3828512664087427 +1122.0,2.479809652328958 +1123.0,2.511106519815266 +1124.0,2.595716025895871 +1125.0,2.5529058034987684 +1126.0,2.3820857139438862 +1127.0,2.6213975204374393 +1128.0,3.277918329043448 +1129.0,2.512129739239898 +1130.0,2.625582727221931 +1131.0,2.3139640835572464 +1132.0,2.961915386649028 +1133.0,2.6298190028804527 +1134.0,3.4332465695857652 +1135.0,2.5308558136042683 +1136.0,2.536750727518889 +1137.0,2.785040783175003 +1138.0,2.4062956901341575 +1139.0,3.0089970321816435 +1140.0,2.3140042742897897 +1141.0,2.496716743031156 +1142.0,2.8528178550241985 +1143.0,2.45339255246493 +1144.0,2.7184645001658803 +1145.0,2.4286136709750656 +1146.0,2.6370660179730256 +1147.0,3.0239021895685188 +1148.0,2.3080056226017582 +1149.0,2.43241810088559 +1150.0,2.3216387383913135 +1151.0,2.3592988161567057 +1152.0,2.876657847427408 +1153.0,2.642956268801018 +1154.0,3.2084781777321663 +1155.0,2.3189556937957865 +1156.0,2.9598224218434948 +1157.0,2.450138923015338 +1158.0,2.3889066895720386 +1159.0,2.3205568522757574 +1160.0,3.3808701131967553 +1161.0,2.323929879376451 +1162.0,3.444188347218678 +1163.0,2.4589271349111765 +1164.0,2.3308858445508918 +1165.0,2.356424173575906 +1166.0,2.5075789615659 +1167.0,2.3654818686694394 +1168.0,2.3659240966314687 +1169.0,2.658162855282095 +1170.0,2.3664971605174236 +1171.0,2.4097354226390313 +1172.0,2.391054255279191 +1173.0,2.557314221723851 +1174.0,2.5216113215969864 +1175.0,2.5601604909631552 +1176.0,2.418525718664187 +1177.0,2.4993436798724495 +1178.0,2.585709297441394 +1179.0,2.4005097205426518 +1180.0,2.330038798576108 +1181.0,2.4833043273453876 +1182.0,2.4547287978697985 +1183.0,3.2339840231943997 +1184.0,2.3411785581276034 +1185.0,2.4169724008011158 +1186.0,2.3256352053896294 +1187.0,4.412209087819514 +1188.0,2.4399601332188947 +1189.0,2.3560784904591574 +1190.0,2.743855778355902 +1191.0,2.63139152745361 +1192.0,2.3981027007579483 +1193.0,2.396605886748259 +1194.0,2.498700271143058 +1195.0,3.447411162265632 +1196.0,2.43441227017722 +1197.0,2.4668316272396287 +1198.0,2.4529658773518026 +1199.0,2.468876978220213 +1200.0,2.364501852772996 +1201.0,2.6665443552215287 +1202.0,2.4116918191716454 +1203.0,2.3389353147273746 +1204.0,2.576673745714916 +1205.0,2.307101771405612 +1206.0,2.3364265753582383 +1207.0,2.560989367039304 +1208.0,2.6952704350708756 +1209.0,2.5437123065173455 +1210.0,2.3060682260805994 +1211.0,2.3570551268355233 +1212.0,2.8186039895051236 +1213.0,2.335617498782926 +1214.0,2.508861479268964 +1215.0,2.4152794529423645 +1216.0,2.737986821135068 +1217.0,2.338186770703254 +1218.0,2.86593992436167 +1219.0,2.434376744425098 +1220.0,2.35864103462265 +1221.0,2.3734996238359103 +1222.0,3.08448451896166 +1223.0,2.509775598256953 +1224.0,2.972811112181281 +1225.0,2.689660165724072 +1226.0,2.8596618156467173 +1227.0,2.9890683300177767 +1228.0,2.586466846927224 +1229.0,2.488578106598641 +1230.0,2.6342688134687373 +1231.0,2.517808961453754 +1232.0,2.712630638200658 +1233.0,3.218442550310654 +1234.0,2.5130391526914733 +1235.0,2.4380015956896655 +1236.0,2.3959088078196356 +1237.0,2.7009417559288535 +1238.0,2.3193304791164486 +1239.0,2.9106039611825527 +1240.0,2.982460664546123 +1241.0,2.4500740236983254 +1242.0,2.3243468551561994 +1243.0,2.5344165715667213 +1244.0,2.770500412281186 +1245.0,2.3173350429157624 +1246.0,3.189164573186975 +1247.0,2.447169983369925 +1248.0,2.501170651932365 +1249.0,2.334960217438214 +1250.0,2.9214463423341632 +1251.0,2.6574893459376363 +1252.0,2.5652949207115587 +1253.0,2.5094964565029407 +1254.0,2.8515924545812075 +1255.0,2.451205228874832 +1256.0,2.3957566568274546 +1257.0,2.7483851895864633 +1258.0,2.467771616856729 +1259.0,2.458988437344561 +1260.0,2.358249225622295 +1261.0,2.7061058421110245 +1262.0,2.533828713915224 +1263.0,2.5500713052473496 +1264.0,2.33564098917906 +1265.0,2.8368105072143255 +1266.0,2.4437051942527477 +1267.0,2.325042597686487 +1268.0,2.5489968797923814 +1269.0,2.5473806831633157 +1270.0,2.5398358943156345 +1271.0,2.3760882548488187 +1272.0,2.361267377629069 +1273.0,3.894297159153581 +1274.0,2.346469631837599 +1275.0,3.029998723401696 +1276.0,2.3569819572367257 +1277.0,2.574403851146905 +1278.0,2.3916320301916656 +1279.0,2.420276766620671 +1280.0,2.664371054072503 +1281.0,2.62956974541821 +1282.0,2.4302259496766934 +1283.0,2.365676060828366 +1284.0,2.3506991231856986 +1285.0,2.533466321570427 +1286.0,2.6741330807436934 +1287.0,2.673326952641476 +1288.0,2.5748370061178925 +1289.0,2.583370146222753 +1290.0,2.4681497625127653 +1291.0,2.7926731451015 +1292.0,3.0336033425055473 +1293.0,2.5696118559978913 +1294.0,2.6321356798078632 +1295.0,2.4696979856690926 +1296.0,2.452792704369638 +1297.0,2.350425907118559 +1298.0,2.347315842672489 +1299.0,2.7145761624812703 +1300.0,2.6474681565118026 +1301.0,2.536258028306809 +1302.0,2.319169529624356 +1303.0,2.3911114839748784 +1304.0,2.4605556524165686 +1305.0,2.826404548882671 +1306.0,2.3215833298155784 +1307.0,2.952647854713895 +1308.0,3.2326119773143276 +1309.0,2.426853375795341 +1310.0,2.3358747522664087 +1311.0,2.49164565109705 +1312.0,2.5211741841099373 +1313.0,2.4102486261101626 +1314.0,2.9442218953744206 +1315.0,3.5891939704362925 +1316.0,2.3669514522568664 +1317.0,2.4260704803659916 +1318.0,2.300345893243154 +1319.0,3.54172424944285 +1320.0,2.437188227434734 +1321.0,2.9533584848792405 +1322.0,2.30401050875102 +1323.0,3.195222456847881 +1324.0,2.5438203180491197 +1325.0,2.3712282625708068 +1326.0,2.365719079247238 +1327.0,2.45786441008938 +1328.0,2.910842573916933 +1329.0,2.5678972966494436 +1330.0,2.7614086994800857 +1331.0,2.346548599318703 +1332.0,2.3395288478087704 +1333.0,2.4061143024921763 +1334.0,2.3883066092352236 +1335.0,2.309505968329423 +1336.0,2.5146230579535627 +1337.0,3.345543530758313 +1338.0,2.83307536358373 +1339.0,2.337404574960556 +1340.0,2.8748566001789806 +1341.0,2.7575669068330644 +1342.0,2.7842935291591377 +1343.0,2.3402008809604466 +1344.0,2.3702064935709264 +1345.0,2.3930953767217376 +1346.0,2.4511119851290153 +1347.0,2.7455041660024286 +1348.0,2.375202350550818 +1349.0,3.027896983269287 +1350.0,2.6424081887065913 +1351.0,2.511063780298432 +1352.0,2.5185661952680953 +1353.0,2.490643923789957 +1354.0,2.833150152037868 +1355.0,2.4423506749784 +1356.0,2.410824095235872 +1357.0,2.570730905010175 +1358.0,2.3701666806661037 +1359.0,2.3950263130773006 +1360.0,2.800511518037167 +1361.0,2.701761458561834 +1362.0,2.462991565613884 +1363.0,2.666510855802273 +1364.0,2.3050657767557117 +1365.0,2.343550861272581 +1366.0,2.7474504991808284 +1367.0,2.5644256738565083 +1368.0,2.7129418978735593 +1369.0,2.4062956247073553 +1370.0,2.4037333432656376 +1371.0,2.603783874604211 +1372.0,2.5913145797175408 +1373.0,2.4385585966019008 +1374.0,2.3381083206974638 +1375.0,2.6270889625523735 +1376.0,2.340091983168028 +1377.0,2.482062084434131 +1378.0,3.093363423567513 +1379.0,2.344398331050794 +1380.0,2.426217144579438 +1381.0,2.445137364989815 +1382.0,2.911323538037994 +1383.0,2.3753287343281815 +1384.0,2.65068253210793 +1385.0,2.573707021918058 +1386.0,3.2672889276277637 +1387.0,2.588303810335121 +1388.0,2.3412489924644753 +1389.0,2.4822671847620135 +1390.0,3.0159047515552224 +1391.0,2.5324458461410444 +1392.0,2.7921354728128174 +1393.0,2.320869935778799 +1394.0,2.3921851430659724 +1395.0,2.575144322207108 +1396.0,2.405402796863611 +1397.0,2.39100842257966 +1398.0,2.4284285319794536 +1399.0,2.4281333903657267 diff --git a/tests/fixtures/catalogs/case_020_near_stationary_boundary_1400d.csv b/tests/fixtures/catalogs/case_020_near_stationary_boundary_1400d.csv new file mode 100644 index 0000000..c173fe4 --- /dev/null +++ b/tests/fixtures/catalogs/case_020_near_stationary_boundary_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,3.0594293301213544 +1.0,2.886328779152544 +2.0,2.512968337376926 +3.0,2.83196318365947 +4.0,2.6242286136631003 +5.0,2.460724145740592 +6.0,2.9616724349246764 +7.0,2.6714384569294856 +8.0,3.2133414303023216 +9.0,2.951877830682834 +10.0,2.631555399007119 +11.0,2.6285892298489686 +12.0,3.5041787572049943 +13.0,4.38161158734203 +14.0,2.5043057549668095 +15.0,2.907766932623642 +16.0,2.933468614080009 +17.0,3.49212505183263 +18.0,2.5811720259122537 +19.0,2.696568765536132 +20.0,3.366560805893901 +21.0,3.0606602849600715 +22.0,3.0080652406780817 +23.0,3.298903806994991 +24.0,2.470315677716089 +25.0,2.8639457895941693 +26.0,2.5053343206177257 +27.0,2.772971778263447 +28.0,2.663866058223437 +29.0,2.94681565952318 +30.0,3.2704301752703255 +31.0,2.7074381654792687 +32.0,2.7646490186697554 +33.0,2.498973565415886 +34.0,4.301638528750274 +35.0,2.5541716791630487 +36.0,2.7329867315367222 +37.0,5.991164954520952 +38.0,2.7576200354002736 +39.0,2.6000860072641996 +40.0,2.7804701183372442 +41.0,3.0670769579511847 +42.0,2.970820448376914 +43.0,2.6631169935392 +44.0,2.7769202156266335 +45.0,2.569136055752319 +46.0,2.977177577476764 +47.0,2.995412043554673 +48.0,2.6742862871014146 +49.0,2.6388473358194493 +50.0,2.5911181035732187 +51.0,2.5845723421883826 +52.0,3.2602995519599323 +53.0,3.054197411539754 +54.0,2.658207635491382 +55.0,2.91130189166552 +56.0,2.4517283929381435 +57.0,2.5085978960913184 +58.0,2.995278410403669 +59.0,3.0711171802896895 +60.0,2.470602878083979 +61.0,2.7063859397102594 +62.0,2.565384867564266 +63.0,3.1146411896348973 +64.0,3.8801462273266343 +65.0,3.173743835085972 +66.0,2.48836866398486 +67.0,3.379564318650443 +68.0,3.0016199097120393 +69.0,2.6092701084967485 +70.0,2.4564437226183142 +71.0,3.0469911241474525 +72.0,2.491639196835731 +73.0,3.471900757493425 +74.0,2.540478430599649 +75.0,3.7066825713511595 +76.0,2.5192003457036636 +77.0,2.8789753427131375 +78.0,5.644868323389248 +79.0,4.351902750772347 +80.0,2.8942892998829297 +81.0,3.221510671603724 +82.0,2.777014615792602 +83.0,2.905545200275044 +84.0,3.6875666855105935 +85.0,3.332867523246588 +86.0,2.455586850580841 +87.0,2.937429380513252 +88.0,2.586864938426844 +89.0,3.4687826300307467 +90.0,5.236400949303077 +91.0,2.5163941902866847 +92.0,2.6553135481766827 +93.0,2.5416194006904096 +94.0,3.5588610225293493 +95.0,2.5105145530393167 +96.0,2.8143898227866604 +97.0,5.769331423455163 +98.0,2.6472849670384666 +99.0,2.6120975749532684 +100.0,3.0429623557702543 +101.0,3.142966799442482 +102.0,2.499117271705931 +103.0,2.69912406773345 +104.0,2.7811447226449384 +105.0,2.980760679529967 +106.0,2.536036420048257 +107.0,2.6385900041468826 +108.0,2.478269418648592 +109.0,2.5268079472944662 +110.0,2.6932341099817565 +111.0,2.9693259181776788 +112.0,3.0917038434838817 +113.0,2.6774980320603685 +114.0,2.498453562051567 +115.0,2.4798352969807347 +116.0,2.4662875900220405 +117.0,5.367596718869969 +118.0,3.293467901085533 +119.0,3.60588574871172 +120.0,2.4666293557390264 +121.0,2.455822270291472 +122.0,3.0327129239769066 +123.0,3.6415334791132663 +124.0,3.617941326054315 +125.0,2.8342382178225582 +126.0,2.5612741404533117 +127.0,2.495790086592962 +128.0,2.467126583002685 +129.0,2.688150866231718 +130.0,3.1252124587876358 +131.0,3.164217955886904 +132.0,3.443740324515954 +133.0,3.4562405370004274 +134.0,3.615771501428601 +135.0,2.886060917508163 +136.0,2.4853421022022673 +137.0,3.1207861912925576 +138.0,3.00099905492187 +139.0,2.852597385128549 +140.0,4.8056159947773835 +141.0,2.8321884054469106 +142.0,2.7076764617208107 +143.0,3.051612988996345 +144.0,3.1414087968357003 +145.0,3.1223336302927516 +146.0,4.39270945088965 +147.0,2.82099495653196 +148.0,4.640451601479915 +149.0,2.778700150969579 +150.0,3.101178716238846 +151.0,4.160696049594084 +152.0,3.502809087584565 +153.0,2.5627176165235857 +154.0,2.983797115058865 +155.0,2.7243839861453045 +156.0,3.7200761879490503 +157.0,3.8537982651723315 +158.0,4.976151531601014 +159.0,2.9097552537387688 +160.0,2.7359606624649526 +161.0,3.274532294359699 +162.0,2.734050828858107 +163.0,2.476757847642055 +164.0,3.009538136576828 +165.0,2.493462647315566 +166.0,2.8838359343828657 +167.0,2.5088583139000407 +168.0,2.510436480872646 +169.0,3.0643048297606423 +170.0,2.913553409758175 +171.0,2.821057341582639 +172.0,2.624433288777288 +173.0,2.7985433267217745 +174.0,3.2877438874554143 +175.0,2.765728794507504 +176.0,2.7840197312852943 +177.0,2.6170017552907097 +178.0,2.8339608505157634 +179.0,2.6554657528840666 +180.0,2.7463858228094513 +181.0,2.786799516644882 +182.0,2.4693003854097815 +183.0,2.69263889438453 +184.0,2.6156831979681927 +185.0,2.840839008936265 +186.0,2.8883680399091403 +187.0,2.7702686391000646 +188.0,3.1678200021235687 +189.0,3.372225461617286 +190.0,2.547366112596445 +191.0,2.617137584463788 +192.0,2.790511782018882 +193.0,3.4730787348207586 +194.0,2.554661735153305 +195.0,2.5060651123457305 +196.0,2.7492751484765314 +197.0,3.4672334162210743 +198.0,2.500417856703845 +199.0,3.1564336673266293 +200.0,4.257750870000648 +201.0,2.7609376938054484 +202.0,2.648057560574682 +203.0,2.6622583927157257 +204.0,2.5195043046308085 +205.0,2.6170071671192976 +206.0,3.0247495932464274 +207.0,3.543472699464395 +208.0,2.672319825446713 +209.0,3.447157898012501 +210.0,2.8255490067718645 +211.0,3.4802559458129876 +212.0,2.791454571756179 +213.0,2.9249124718529513 +214.0,2.5377328322956196 +215.0,2.669139128820086 +216.0,2.9859653029905036 +217.0,2.900669479302388 +218.0,2.510093398440574 +219.0,2.8673490345150476 +220.0,3.094145161953083 +221.0,2.8034873742453263 +222.0,3.0861695712842963 +223.0,2.570012419744189 +224.0,2.5928144392574546 +225.0,2.4769044168761885 +226.0,2.5233543971063814 +227.0,3.1254250270748676 +228.0,2.509565229525089 +229.0,3.2878516328263014 +230.0,2.876766256616254 +231.0,2.5019225589788787 +232.0,2.621101763092462 +233.0,4.663984595676563 +234.0,4.315063558256966 +235.0,2.57706737520633 +236.0,3.301528858962635 +237.0,2.7207199917797773 +238.0,2.569407634551971 +239.0,2.610862732522608 +240.0,2.9356299631965674 +241.0,2.4691247189788283 +242.0,2.7783742995465377 +243.0,3.23962721061189 +244.0,3.0582755996756403 +245.0,2.490315593403098 +246.0,2.6138075623951877 +247.0,2.5398779444939055 +248.0,3.095958451873722 +249.0,3.470227993635862 +250.0,2.526837558525027 +251.0,3.872286057310639 +252.0,4.942646244735454 +253.0,2.7387901622296793 +254.0,2.5290216505601326 +255.0,3.3514705027622895 +256.0,2.652382812126782 +257.0,2.666385263193101 +258.0,2.8443114239975142 +259.0,3.5517939674914545 +260.0,2.635555855323477 +261.0,2.665613072256028 +262.0,2.6067276502446655 +263.0,3.4922009747863147 +264.0,2.838979124984717 +265.0,2.520517641908347 +266.0,2.8424488708686213 +267.0,2.574336289394863 +268.0,3.2414011785457464 +269.0,3.0611853828404296 +270.0,2.6426048810463123 +271.0,3.5758242735994026 +272.0,2.562670232776868 +273.0,3.537474847689393 +274.0,2.652309275101929 +275.0,3.07570263573293 +276.0,2.4794844396332776 +277.0,3.241817907929853 +278.0,2.84006446840883 +279.0,2.5567548773828155 +280.0,3.765298019675847 +281.0,2.5113489298459486 +282.0,2.4803192559137783 +283.0,2.8064033143206464 +284.0,2.775522373674137 +285.0,4.636045044715443 +286.0,2.7510172152324364 +287.0,2.693845432914783 +288.0,2.9838854994132826 +289.0,2.508216824992371 +290.0,3.503826054545681 +291.0,2.703908455220674 +292.0,2.5224753398335693 +293.0,2.4795120245086233 +294.0,2.78806888664935 +295.0,2.895297204605699 +296.0,2.4505962554605754 +297.0,2.747279553259363 +298.0,2.7047199950766325 +299.0,3.5241495614350806 +300.0,2.843136270225055 +301.0,2.7498051438308617 +302.0,2.7168461386580245 +303.0,2.532926569769076 +304.0,2.5060143914488706 +305.0,2.5375439193458225 +306.0,3.031123025395785 +307.0,2.6782157461388834 +308.0,4.210831315126178 +309.0,2.7936627812359998 +310.0,4.194328791590754 +311.0,3.1415771708141436 +312.0,2.9871663143952496 +313.0,2.957606134608293 +314.0,2.493839874521444 +315.0,2.6708160038106388 +316.0,2.855249314799529 +317.0,3.2486334006162028 +318.0,2.499713850926874 +319.0,4.202225521111178 +320.0,2.6553118088437455 +321.0,2.660123334258212 +322.0,3.501798056730683 +323.0,2.698959529464348 +324.0,3.1339282940195328 +325.0,2.461463101180631 +326.0,2.7700853324722043 +327.0,2.57723873676816 +328.0,2.527303615585185 +329.0,5.05347731316778 +330.0,4.324224227030369 +331.0,2.660975460647805 +332.0,2.5643670930872617 +333.0,2.5561381215232277 +334.0,2.6942547213840036 +335.0,2.561496866478984 +336.0,3.1914842153731553 +337.0,3.0884032054298145 +338.0,2.4517288013078016 +339.0,2.47442030982022 +340.0,2.697654429797389 +341.0,2.6275684985374856 +342.0,2.6513258397488877 +343.0,2.871978259129504 +344.0,2.8557577432813113 +345.0,3.3396926926178607 +346.0,3.667439780267776 +347.0,2.665209465497974 +348.0,2.7411759887451463 +349.0,3.0360036268828754 +350.0,2.488830904230874 +351.0,3.0829578253102565 +352.0,2.891146942101254 +353.0,2.630638751519468 +354.0,2.9049144417768664 +355.0,2.6638494479293784 +356.0,2.5202157472479616 +357.0,3.459339774005561 +358.0,2.642843607877109 +359.0,2.578317164493112 +360.0,2.5697646669899488 +361.0,3.012332759094201 +362.0,2.5427130323306018 +363.0,2.5853428413984596 +364.0,2.4870331713284424 +365.0,2.8843708420318848 +366.0,3.180089598976523 +367.0,2.7169759614121376 +368.0,2.4612191052834196 +369.0,2.4665412486798743 +370.0,2.543200183256506 +371.0,3.5757400174582483 +372.0,2.716226390259026 +373.0,2.972439740219874 +374.0,2.978552738915352 +375.0,2.6702694847324286 +376.0,2.728810375753669 +377.0,2.732349349584819 +378.0,2.919936946566228 +379.0,3.4134955460747114 +380.0,2.7686891675281204 +381.0,2.9101294309700507 +382.0,2.7624213951531313 +383.0,2.5360835096209735 +384.0,3.058033830243036 +385.0,2.6898561456673242 +386.0,3.024206999445834 +387.0,3.476937837763618 +388.0,2.803220321873759 +389.0,2.5648387085454707 +390.0,2.9299700123674297 +391.0,3.159205589427253 +392.0,3.5112860791117178 +393.0,3.820513408317332 +394.0,2.586892149720225 +395.0,4.413078348033846 +396.0,3.104617381907065 +397.0,2.9648600987822844 +398.0,2.843418188888405 +399.0,4.714519765685281 +400.0,3.148032817626691 +401.0,3.559108992396386 +402.0,4.000617793696882 +403.0,3.6087563488037624 +404.0,2.8976251074280417 +405.0,3.4565058794242765 +406.0,3.2467759259188202 +407.0,3.1532033787328078 +408.0,3.198983754094522 +409.0,4.7976904340906374 +410.0,5.387511904066947 +411.0,2.5186727037195276 +412.0,2.645784387820917 +413.0,2.635314102197317 +414.0,2.817028606689203 +415.0,2.6809211183795925 +416.0,2.4885217497644323 +417.0,2.588480346924804 +418.0,3.1275872722360254 +419.0,2.746175208181252 +420.0,2.4504020535801905 +421.0,3.384156417006989 +422.0,2.855050688112022 +423.0,3.1419312792953704 +424.0,2.4692723850353806 +425.0,2.4885617356546508 +426.0,2.4752328360367364 +427.0,3.6048776546612555 +428.0,2.6622949713658053 +429.0,3.7629223812210393 +430.0,2.60030744945361 +431.0,2.5057355718921928 +432.0,2.639122814643709 +433.0,4.711564578699965 +434.0,3.3608662149907604 +435.0,2.8455685934993085 +436.0,2.6654910955026914 +437.0,4.041938579470347 +438.0,2.587808553892825 +439.0,2.695880370434949 +440.0,2.8352011274926836 +441.0,2.554467538803187 +442.0,3.0645091719611477 +443.0,2.8977576124960662 +444.0,3.8743514237121177 +445.0,2.4561127427037572 +446.0,2.7230318500193866 +447.0,2.754842413149698 +448.0,2.6226167129209244 +449.0,2.5474207438113363 +450.0,3.146290722905179 +451.0,4.105137019754889 +452.0,3.3126869768954705 +453.0,2.565653792108825 +454.0,2.5643157110116537 +455.0,3.083701313549719 +456.0,2.7512316321346284 +457.0,2.700733761112987 +458.0,3.3310553267350897 +459.0,2.731083989590229 +460.0,2.766522915803463 +461.0,2.5260209559004974 +462.0,2.950430679260848 +463.0,3.872171568545794 +464.0,2.7644447952974662 +465.0,3.689232272417428 +466.0,4.1943121476384695 +467.0,3.079643818337724 +468.0,2.475056707458717 +469.0,2.931165031379006 +470.0,2.987727618596831 +471.0,2.4675866418010672 +472.0,3.0804394958997476 +473.0,3.5180095621792065 +474.0,2.633017544218982 +475.0,3.193047161984956 +476.0,2.6809796682289337 +477.0,3.865820403128639 +478.0,2.756779405023529 +479.0,2.4635132914914464 +480.0,2.518208793653557 +481.0,3.7336713974983313 +482.0,2.5150922894570127 +483.0,2.768694117941595 +484.0,2.5995856822456966 +485.0,2.5082529376808593 +486.0,2.472820145751763 +487.0,3.616378913172949 +488.0,3.4051947587499614 +489.0,2.922900635168446 +490.0,2.5812669344273225 +491.0,2.4976371992420434 +492.0,2.6296965557928846 +493.0,2.962728943607352 +494.0,2.4872023349833516 +495.0,2.696325431796124 +496.0,2.62940515702175 +497.0,3.590278121408252 +498.0,3.1786947299479014 +499.0,4.325419391227253 +500.0,2.571680599926493 +501.0,2.988048778135531 +502.0,2.5370606630451595 +503.0,3.3891174052614925 +504.0,3.069122058256568 +505.0,2.5601722917019916 +506.0,2.594093874867492 +507.0,3.1857416129662943 +508.0,2.822616278281549 +509.0,2.989772600636692 +510.0,2.7845180138648464 +511.0,2.720307776989708 +512.0,3.4679786279581393 +513.0,2.9620282946038587 +514.0,2.648473472968516 +515.0,3.7999525344754814 +516.0,2.719759815507089 +517.0,5.290310319979493 +518.0,3.8697843011646595 +519.0,2.8348932430797933 +520.0,3.4117924508999486 +521.0,3.6628861040732867 +522.0,2.568301570502685 +523.0,2.66201771570168 +524.0,2.722885214080936 +525.0,2.8502143419106463 +526.0,2.6232601883981865 +527.0,3.127706329154779 +528.0,2.5309519218482834 +529.0,2.4926774873527306 +530.0,2.7441281957614208 +531.0,2.672689383585763 +532.0,2.7960867288605815 +533.0,3.609717512969434 +534.0,2.9034175344195488 +535.0,2.8624353096772666 +536.0,2.5708110101509503 +537.0,3.395000603948758 +538.0,3.130239143408005 +539.0,4.120373619270861 +540.0,2.7033091412827424 +541.0,2.996995719304532 +542.0,2.5532183127667976 +543.0,2.6587754989282284 +544.0,3.311821886246478 +545.0,2.9027608598049337 +546.0,3.138750785507206 +547.0,2.996956566995138 +548.0,2.7763439519137734 +549.0,3.459531532814661 +550.0,3.464810579293208 +551.0,2.684695197773341 +552.0,4.098314275953244 +553.0,3.1903004945876647 +554.0,2.526453249508893 +555.0,2.7977996825390528 +556.0,2.655240312190284 +557.0,2.591093211210307 +558.0,4.068063354807784 +559.0,3.090199148683181 +560.0,2.98486185722268 +561.0,4.0732426143691605 +562.0,3.3370422312531267 +563.0,3.1730261227661103 +564.0,2.4995972305456244 +565.0,2.55602291757771 +566.0,2.513004015323959 +567.0,2.7730203291323905 +568.0,2.5006265749306387 +569.0,2.5652180032283924 +570.0,2.498350989699901 +571.0,2.5373767515017964 +572.0,2.7720330023648114 +573.0,2.8560591286638504 +574.0,2.6539148796411802 +575.0,3.2341387671419533 +576.0,3.5335609980487845 +577.0,3.6297345141773913 +578.0,2.593156227248845 +579.0,2.620806303192872 +580.0,3.956134107574967 +581.0,2.6504839340868704 +582.0,3.212954344083858 +583.0,3.1005246712395897 +584.0,2.8420071565104315 +585.0,2.686522503327041 +586.0,2.7462846714990183 +587.0,2.6749195451295735 +588.0,2.9038935707580538 +589.0,4.61024024422791 +590.0,2.6518837154953805 +591.0,2.8989705221301714 +592.0,2.6071195867017636 +593.0,2.744061074944478 +594.0,3.1950666652223836 +595.0,2.478187107608249 +596.0,2.613285679561893 +597.0,2.8189787827933848 +598.0,2.929417838692175 +599.0,3.674977024006277 +600.0,3.2137881635594345 +601.0,2.6805577361759094 +602.0,2.8551444718661445 +603.0,3.118428318792808 +604.0,2.451591397351845 +605.0,2.561655628073217 +606.0,2.562503147135676 +607.0,2.635771298920341 +608.0,2.7300927111102262 +609.0,2.588750980081284 +610.0,2.5380806880763593 +611.0,3.198010567866821 +612.0,3.801242603250018 +613.0,2.4502743591296268 +614.0,2.6410874476103503 +615.0,3.315627997184749 +616.0,3.659586832478791 +617.0,3.0013212008387975 +618.0,2.664112669603894 +619.0,3.2467413150904383 +620.0,3.113902531360974 +621.0,2.4522053649906175 +622.0,3.142432235881781 +623.0,2.5286293882656716 +624.0,2.4762525997134723 +625.0,2.680429475652565 +626.0,4.312330908157341 +627.0,2.581512293977365 +628.0,2.614360842304365 +629.0,2.5991515544619124 +630.0,4.0979054026972275 +631.0,2.7690698205561897 +632.0,2.614702199259337 +633.0,2.7321324630765145 +634.0,4.234155772386 +635.0,2.5157847862341307 +636.0,2.659248280499857 +637.0,2.8140741229096524 +638.0,2.851166285443964 +639.0,2.569366713300655 +640.0,3.382535324181171 +641.0,3.7202547613830603 +642.0,3.4491687413928305 +643.0,2.7722973211427235 +644.0,5.475450009106436 +645.0,4.619708191913128 +646.0,3.2114729063771277 +647.0,2.529671805453193 +648.0,2.965393584104536 +649.0,3.881635713479438 +650.0,3.492816531263721 +651.0,3.6319519216630005 +652.0,2.9035755200470086 +653.0,2.7198470990120525 +654.0,3.489334742033889 +655.0,4.842535848606438 +656.0,4.4250520028861065 +657.0,3.534979665688066 +658.0,3.8433307698094423 +659.0,2.65172351719083 +660.0,3.433223517748833 +661.0,2.729776853746522 +662.0,2.7250021115660803 +663.0,2.6773762095256965 +664.0,2.556884477476869 +665.0,3.028901895863062 +666.0,3.2505463176120566 +667.0,2.9675824523423775 +668.0,3.0257724994850745 +669.0,2.868859998063767 +670.0,2.774210336564943 +671.0,2.714553888071346 +672.0,2.765077570885266 +673.0,3.247802518361147 +674.0,2.701342972321367 +675.0,2.712095234980862 +676.0,2.8435746563720414 +677.0,3.1356012122426544 +678.0,2.4679625285014843 +679.0,3.037624407005585 +680.0,2.573304160092796 +681.0,3.045367594417403 +682.0,2.552103094775003 +683.0,4.921503437324853 +684.0,2.558933389693843 +685.0,2.9539617032301124 +686.0,2.6529242859204065 +687.0,2.8056294221353038 +688.0,2.5165326272495196 +689.0,2.5269093243239964 +690.0,2.789945376706373 +691.0,3.3760493826543376 +692.0,2.68671539337887 +693.0,2.6873316849060656 +694.0,2.598440569485621 +695.0,3.0165526480468614 +696.0,3.188506901467724 +697.0,2.6376840332552964 +698.0,3.8571012539992413 +699.0,2.7606418387178335 +700.0,3.7792974074264425 +701.0,2.5326933339542816 +702.0,2.487789203802319 +703.0,2.5978014030192207 +704.0,3.155008039356213 +705.0,2.70341254032787 +706.0,3.7136086202083582 +707.0,2.5108566219581094 +708.0,2.851662576762536 +709.0,2.49147688349528 +710.0,2.6142220706035437 +711.0,2.4510695040615627 +712.0,3.261326733390838 +713.0,2.6121116919548846 +714.0,3.316766941716499 +715.0,3.2328456663680343 +716.0,2.6870484250890416 +717.0,3.626790363329753 +718.0,2.6476572041990787 +719.0,2.451516741245796 +720.0,3.5128818181019428 +721.0,2.5427847487317137 +722.0,3.888665910967646 +723.0,2.5958125297005745 +724.0,2.500714853071029 +725.0,3.7991211456071774 +726.0,3.537540744421273 +727.0,2.6751198110278533 +728.0,2.8006034076682775 +729.0,3.841201412205245 +730.0,4.534927982632919 +731.0,2.677759796430927 +732.0,3.886942379063074 +733.0,3.240658181771364 +734.0,2.789423180486173 +735.0,2.5650014722605166 +736.0,3.6181296283552395 +737.0,3.765203774585565 +738.0,3.2122494407218465 +739.0,3.088135081915243 +740.0,2.9871561334771117 +741.0,2.7991955198975513 +742.0,2.5159413192213282 +743.0,3.5104210148793293 +744.0,2.5632058635681845 +745.0,3.010682073952704 +746.0,2.670679905129978 +747.0,2.5424057602525747 +748.0,3.339558031921031 +749.0,3.1972012347580554 +750.0,2.4932526346735124 +751.0,2.602288619720217 +752.0,2.650985296340799 +753.0,2.847472352654264 +754.0,2.906054572824738 +755.0,2.457444102449395 +756.0,2.5322247740035704 +757.0,3.1433029599668925 +758.0,3.391327796696543 +759.0,2.8433673168768254 +760.0,2.4789313670269246 +761.0,3.2505401369869396 +762.0,2.7175184654559965 +763.0,3.2920035561794294 +764.0,3.7305610143304184 +765.0,2.892048155773918 +766.0,2.621670365783864 +767.0,2.618796333746516 +768.0,2.5197184434251425 +769.0,2.7812940715454375 +770.0,2.559671786594881 +771.0,3.6647645191063845 +772.0,3.1692845294318674 +773.0,2.629698604264905 +774.0,3.377504063486323 +775.0,3.0464852797071864 +776.0,2.5044643929064145 +777.0,3.5193686566774853 +778.0,2.6271249643937677 +779.0,3.2321761030628755 +780.0,3.9255712073564704 +781.0,3.883599687620856 +782.0,2.6459529040184684 +783.0,2.82313645731346 +784.0,2.7641988739028682 +785.0,2.4908662149971237 +786.0,3.2905794727211735 +787.0,2.735536764705363 +788.0,2.6406918373052135 +789.0,3.699019032417135 +790.0,3.158035834720355 +791.0,2.643660835218444 +792.0,3.123233470601078 +793.0,4.66979888543392 +794.0,3.9981949082237134 +795.0,2.648988942589775 +796.0,3.241586155710558 +797.0,2.4906540106812347 +798.0,2.530118369938141 +799.0,2.796601418687614 +800.0,2.7539614591244828 +801.0,2.5231801713994635 +802.0,2.5180068676336766 +803.0,3.334916839638207 +804.0,3.408504618526515 +805.0,2.9015938562970263 +806.0,2.4915637708497997 +807.0,5.492326235759663 +808.0,2.5384268700616097 +809.0,2.892224459552539 +810.0,3.0548081169312025 +811.0,2.9870604268120964 +812.0,2.534430680786097 +813.0,4.106891755415052 +814.0,2.607139159300293 +815.0,4.19897663019152 +816.0,2.9007367753454867 +817.0,2.623915283075283 +818.0,2.483962733448025 +819.0,2.5858422074599567 +820.0,2.5241794007755773 +821.0,2.7293863515141683 +822.0,2.6592292917894613 +823.0,2.465113958478143 +824.0,3.016369547155118 +825.0,2.6433723385874024 +826.0,2.5129144466126716 +827.0,2.910158085622427 +828.0,3.0799819625064195 +829.0,2.482100122817709 +830.0,2.5836470321249756 +831.0,3.3826720082225616 +832.0,2.7930923309256803 +833.0,3.1240197570982557 +834.0,2.8664166871686025 +835.0,2.466790673114991 +836.0,2.518491099867842 +837.0,4.261119972470114 +838.0,2.737672622865405 +839.0,2.865954564722958 +840.0,2.579013625675224 +841.0,3.943860550332729 +842.0,2.550106916057598 +843.0,2.7690476504023724 +844.0,3.191603775996613 +845.0,2.6100943904157083 +846.0,2.568096156851825 +847.0,2.5578901954767446 +848.0,3.322854907422478 +849.0,3.481054081603558 +850.0,2.8116101311394153 +851.0,3.0395247727476296 +852.0,2.4759892815562434 +853.0,3.506802095478043 +854.0,2.8944214265521033 +855.0,2.483901692243808 +856.0,2.4585640543850986 +857.0,2.872560543576178 +858.0,2.462418835000071 +859.0,3.2760679688256458 +860.0,2.88797723573769 +861.0,2.74740863220915 +862.0,3.6508470777724646 +863.0,2.699711705311166 +864.0,3.085439291674809 +865.0,3.4155074929600344 +866.0,3.582260496645845 +867.0,2.62921796789751 +868.0,2.60754415983219 +869.0,3.1185797604898955 +870.0,2.9360846013345494 +871.0,2.8582672045469963 +872.0,3.015692737403098 +873.0,2.813389074616171 +874.0,2.5279315938902607 +875.0,2.483587706592536 +876.0,2.560811306863802 +877.0,2.534903916233529 +878.0,3.1240049306726103 +879.0,2.4887331631902905 +880.0,2.7306091693843273 +881.0,2.465243656643625 +882.0,2.64692068964117 +883.0,3.308700800071919 +884.0,2.670708695581909 +885.0,2.6916000620885363 +886.0,2.627419599243784 +887.0,2.468959343979584 +888.0,2.8312126858767828 +889.0,4.29025181421921 +890.0,3.791731055241367 +891.0,3.069713673196269 +892.0,2.7841444441889784 +893.0,2.9005720816085665 +894.0,3.222636164300779 +895.0,3.2110696933942973 +896.0,3.1228191571477626 +897.0,4.1968071838846175 +898.0,2.724994509224246 +899.0,3.833326234675791 +900.0,2.6174360153836336 +901.0,2.5899701322660658 +902.0,3.7656214928851197 +903.0,3.254558586474382 +904.0,2.856509026109035 +905.0,2.91039450978675 +906.0,3.942283595320722 +907.0,2.820055568639549 +908.0,4.104384282178555 +909.0,4.172295577412756 +910.0,3.0119204959084254 +911.0,3.6755326462857147 +912.0,4.568103948100324 +913.0,2.7094401911048074 +914.0,2.664188112570822 +915.0,2.7282328974614565 +916.0,2.5748610636181883 +917.0,4.546751933488018 +918.0,3.0742972639544197 +919.0,2.575869397639531 +920.0,2.5429960662409377 +921.0,2.7275148500242383 +922.0,2.9077571401883775 +923.0,3.1255119926376147 +924.0,2.7677497369882014 +925.0,2.459397412859127 +926.0,3.246424849684666 +927.0,2.648876036007907 +928.0,3.017743119881395 +929.0,2.6899757250134804 +930.0,2.4638179413498906 +931.0,2.895616343160418 +932.0,2.473434340931559 +933.0,2.6298728449737805 +934.0,2.616154851563519 +935.0,3.25956539790152 +936.0,4.0524118992220215 +937.0,2.618581049776105 +938.0,2.8644459656476426 +939.0,2.451381320919496 +940.0,3.465181253704968 +941.0,2.6255171136722546 +942.0,3.128741076042868 +943.0,3.309390788398518 +944.0,2.866975356909464 +945.0,2.48939172701898 +946.0,2.499633763635672 +947.0,2.4757417962380632 +948.0,3.5188098688623928 +949.0,3.1552253548654328 +950.0,2.572424467501553 +951.0,2.747440862852433 +952.0,3.7597600304809866 +953.0,2.774864484018042 +954.0,2.5781995943020815 +955.0,2.9391394972448177 +956.0,2.696335023864325 +957.0,2.4641617031019973 +958.0,3.0068119601049696 +959.0,2.842746505010464 +960.0,2.483966568086431 +961.0,3.55511314141049 +962.0,2.4780891180642626 +963.0,2.659524120219223 +964.0,2.5427800492642 +965.0,3.5343999670929946 +966.0,2.73544050173776 +967.0,2.964675779396914 +968.0,3.363699381513084 +969.0,2.472265170630364 +970.0,2.539134560177422 +971.0,2.702630118162732 +972.0,3.079808728704249 +973.0,2.7648075930745124 +974.0,3.234428764544007 +975.0,4.620059436991924 +976.0,2.8101894595984733 +977.0,3.7813034109341572 +978.0,3.155678970848616 +979.0,2.556367554899445 +980.0,2.741237093983721 +981.0,2.5889257826385275 +982.0,3.406395555311465 +983.0,3.269968903828738 +984.0,3.3110735629379793 +985.0,3.2291660161783096 +986.0,2.4716499493429045 +987.0,2.671056006862088 +988.0,4.120756769500515 +989.0,2.6668312754460337 +990.0,2.6028134436910175 +991.0,2.8957853228163017 +992.0,2.8225398026009687 +993.0,2.545571658216128 +994.0,2.7237047817668807 +995.0,2.735026143168659 +996.0,2.945051882958046 +997.0,3.0166421588003116 +998.0,2.638278858751487 +999.0,3.244391213567833 +1000.0,2.5004570873934 +1001.0,3.1511584391433516 +1002.0,3.015284126021599 +1003.0,2.504525088655307 +1004.0,2.7225887000560287 +1005.0,2.8992876141782147 +1006.0,2.4559281074937998 +1007.0,3.1132975692364973 +1008.0,2.7777909118662243 +1009.0,3.773848868399174 +1010.0,2.910033108333101 +1011.0,3.9919183328850965 +1012.0,2.831663856069596 +1013.0,3.5084929608629465 +1014.0,2.6568488429919968 +1015.0,2.7095138995215446 +1016.0,2.8179956315049504 +1017.0,3.153140848099218 +1018.0,2.725082462812932 +1019.0,2.9708003607084597 +1020.0,3.098416206493605 +1021.0,3.4975079513935903 +1022.0,3.336084256271324 +1023.0,4.150267830183253 +1024.0,2.7612607533012286 +1025.0,2.7200700234595865 +1026.0,2.570891119874683 +1027.0,2.562839591379748 +1028.0,2.991223733130513 +1029.0,3.2462210585196845 +1030.0,3.8685351484806287 +1031.0,2.6186573329222353 +1032.0,2.6436754803463227 +1033.0,2.509067777479055 +1034.0,3.8121121859434934 +1035.0,2.715290395791548 +1036.0,2.4524821744216165 +1037.0,2.6135314249542114 +1038.0,2.772888554034045 +1039.0,2.6408361662022077 +1040.0,2.55523046662801 +1041.0,2.4923291253149586 +1042.0,2.4917174756637532 +1043.0,2.607458361088905 +1044.0,3.0154651897356555 +1045.0,3.3995422757345404 +1046.0,2.7181523030196564 +1047.0,2.6700899816239305 +1048.0,2.6597185544335855 +1049.0,2.805093596243139 +1050.0,2.7185350589832322 +1051.0,2.649575610960192 +1052.0,3.5153282658283285 +1053.0,2.7375873431773408 +1054.0,3.159925427419137 +1055.0,4.234142357408356 +1056.0,5.28537019971534 +1057.0,2.946115075387653 +1058.0,2.546390261296301 +1059.0,2.6360285695841728 +1060.0,2.4519156425499857 +1061.0,2.452606295244949 +1062.0,3.520478549999368 +1063.0,2.463913539633133 +1064.0,5.012666194255289 +1065.0,2.9292626608665944 +1066.0,3.1920311278200133 +1067.0,3.0441834450986716 +1068.0,2.6930742778690377 +1069.0,3.217254988387522 +1070.0,2.545608496790944 +1071.0,3.139144135483132 +1072.0,3.1635084919664607 +1073.0,2.5019760779031968 +1074.0,3.6263629600788425 +1075.0,2.690050513162783 +1076.0,2.792531284611581 +1077.0,2.993899001511958 +1078.0,2.8897372029341155 +1079.0,2.584486569935943 +1080.0,2.5208651684673504 +1081.0,3.5135756337859076 +1082.0,2.5630907441022965 +1083.0,2.455810103161049 +1084.0,3.0351213453032586 +1085.0,3.1006239020600126 +1086.0,2.8012365395268874 +1087.0,2.739269175840013 +1088.0,2.5378220316676057 +1089.0,4.022147482293557 +1090.0,2.645747977409385 +1091.0,3.1535125706825884 +1092.0,2.5810319535370905 +1093.0,2.782051603552901 +1094.0,2.548394983154018 +1095.0,2.474004298336679 +1096.0,3.02652878354744 +1097.0,2.866477631650724 +1098.0,2.9773173103024746 +1099.0,2.5863351826272694 +1100.0,3.0668862952302876 +1101.0,3.1634467407612554 +1102.0,3.014700257967106 +1103.0,2.8204381529351004 +1104.0,2.473947486163465 +1105.0,3.3762858050774183 +1106.0,2.5493352912605296 +1107.0,2.997627771528486 +1108.0,2.7584854486623085 +1109.0,3.484567742078324 +1110.0,2.5377181538862583 +1111.0,3.1579347343261297 +1112.0,2.8859912697097174 +1113.0,2.8910959780404575 +1114.0,2.4505434456745623 +1115.0,3.183824198785582 +1116.0,3.851718346233382 +1117.0,2.6235452137148574 +1118.0,3.730171487170489 +1119.0,3.069781794702247 +1120.0,2.467825666390011 +1121.0,2.6743922393419646 +1122.0,3.0396951063203677 +1123.0,2.622191608277567 +1124.0,2.5879789801835806 +1125.0,2.830607367722564 +1126.0,3.181695584251505 +1127.0,2.779395234212092 +1128.0,2.9996522052391734 +1129.0,3.8132958821890277 +1130.0,2.778067600257605 +1131.0,2.7489712328463476 +1132.0,2.4728835535414038 +1133.0,3.3211842771314726 +1134.0,2.4800156923666705 +1135.0,2.6265612157776936 +1136.0,2.635276789073252 +1137.0,2.709244319209272 +1138.0,2.8662962687009053 +1139.0,2.810583876468193 +1140.0,2.6645819587317887 +1141.0,4.465337145217367 +1142.0,4.07734225662781 +1143.0,2.558215798773528 +1144.0,3.2609548590576933 +1145.0,3.4646266104052987 +1146.0,4.355247096116775 +1147.0,4.035816419676857 +1148.0,2.5370246044303872 +1149.0,5.472058932513111 +1150.0,4.055995702780973 +1151.0,2.8775580625154613 +1152.0,3.211034802960487 +1153.0,3.73116544234923 +1154.0,2.7916752284957465 +1155.0,5.281960215660518 +1156.0,2.7041433728846824 +1157.0,3.2872610594379754 +1158.0,3.3898708698005415 +1159.0,2.909736511738626 +1160.0,3.12329996260969 +1161.0,2.576953731566093 +1162.0,2.916962574483718 +1163.0,2.7574738551340996 +1164.0,2.7151341164812948 +1165.0,2.633224473807561 +1166.0,2.865356359806564 +1167.0,2.5469183092324537 +1168.0,3.3414209056229316 +1169.0,2.7716313803098553 +1170.0,3.3619172279573233 +1171.0,2.7728720594267946 +1172.0,2.7917796594814956 +1173.0,2.6076004993918764 +1174.0,3.1213789182363136 +1175.0,3.2889683475715508 +1176.0,3.3808881049383026 +1177.0,2.6289511776189745 +1178.0,2.872738776541994 +1179.0,2.919639877341783 +1180.0,3.180626424457024 +1181.0,2.4760027614554074 +1182.0,3.1576139063346655 +1183.0,3.1164636613647616 +1184.0,2.5241291371544063 +1185.0,2.9548484151387657 +1186.0,4.358284333873768 +1187.0,2.5948752306962826 +1188.0,2.5995489168501287 +1189.0,2.578557686087621 +1190.0,3.285451453103124 +1191.0,2.6750157302602653 +1192.0,2.63637495951196 +1193.0,2.5492341297239354 +1194.0,3.18359563027873 +1195.0,2.524466286232518 +1196.0,2.805071097710448 +1197.0,3.5955700003549085 +1198.0,2.5425350795325343 +1199.0,4.345588850805456 +1200.0,2.4599267040654254 +1201.0,3.103796990985528 +1202.0,2.6348251342044247 +1203.0,2.854966696714428 +1204.0,2.6503871868915443 +1205.0,2.5723360127195067 +1206.0,2.5262361643805726 +1207.0,3.1494294621753887 +1208.0,2.5942449638508642 +1209.0,2.7353463870331205 +1210.0,3.89594882698001 +1211.0,3.0028372106048478 +1212.0,2.6364232544181405 +1213.0,7.508097581755066 +1214.0,3.053027886396316 +1215.0,2.739355237378703 +1216.0,2.98853690545785 +1217.0,3.869709073730478 +1218.0,2.5127237966220934 +1219.0,3.1057319292076757 +1220.0,2.8690607722660695 +1221.0,2.5461838589269794 +1222.0,2.609582341716178 +1223.0,3.344345925221436 +1224.0,3.103911731961364 +1225.0,3.127764185867611 +1226.0,2.9019104102863773 +1227.0,2.9982329445636577 +1228.0,3.2599675044712537 +1229.0,3.113152273920866 +1230.0,3.6696748293220534 +1231.0,2.651539349279753 +1232.0,2.5983867332467927 +1233.0,2.561531083315181 +1234.0,2.5870557238303573 +1235.0,2.570517044219797 +1236.0,3.166751014127282 +1237.0,2.8155853273394458 +1238.0,2.7790861056294536 +1239.0,2.468874013936352 +1240.0,2.6352146991673298 +1241.0,3.1201815714514485 +1242.0,2.7398690648101662 +1243.0,2.8266774675184907 +1244.0,2.5795093318179037 +1245.0,3.6610576795058734 +1246.0,2.528636100771197 +1247.0,2.7024327294117083 +1248.0,3.1093356161962094 +1249.0,2.7278550602833707 +1250.0,2.725839153030921 +1251.0,2.516670451766612 +1252.0,2.767508611794813 +1253.0,3.0088594059963834 +1254.0,2.52349811642548 +1255.0,2.4958337442788525 +1256.0,2.6806848929669314 +1257.0,3.4233557676044746 +1258.0,2.5340553459617903 +1259.0,3.6963516842677517 +1260.0,2.9600595721047003 +1261.0,2.9722378874926667 +1262.0,2.8475933002963956 +1263.0,2.834483456997985 +1264.0,2.623564632362716 +1265.0,2.8010349540576307 +1266.0,2.58748922006468 +1267.0,2.7929454688657636 +1268.0,3.0246019085926656 +1269.0,3.0552712976619434 +1270.0,2.636444781625206 +1271.0,2.882047222921553 +1272.0,2.91799228176852 +1273.0,2.509327017510392 +1274.0,2.5657234480270708 +1275.0,2.6696038850315422 +1276.0,3.6350548220669014 +1277.0,3.8504156276459924 +1278.0,3.170372367399057 +1279.0,4.8958822383928045 +1280.0,3.8692764165630527 +1281.0,2.9191439719905703 +1282.0,3.139217822949572 +1283.0,2.9752782065157457 +1284.0,2.476733467895097 +1285.0,3.739877844456983 +1286.0,3.160500025402905 +1287.0,3.0663314392219743 +1288.0,2.5722459596300875 +1289.0,3.3625006958499486 +1290.0,2.450285007477892 +1291.0,2.7029722548956423 +1292.0,2.9709299791243 +1293.0,2.596837008074667 +1294.0,2.563755010392876 +1295.0,3.004328330989471 +1296.0,2.566559701410904 +1297.0,3.5653729951761233 +1298.0,2.8026404151664552 +1299.0,3.6179017404906526 +1300.0,2.5330381187876205 +1301.0,2.5402300518761067 +1302.0,2.8379668082256817 +1303.0,2.573861212217185 +1304.0,2.750833032957262 +1305.0,2.860774897007442 +1306.0,2.827888522022632 +1307.0,2.9851025780708222 +1308.0,2.6804423365399304 +1309.0,3.176315957551866 +1310.0,2.6116848095738403 +1311.0,3.678937004993788 +1312.0,2.950004903850677 +1313.0,2.676818928578845 +1314.0,2.5601058735561852 +1315.0,2.514277986160735 +1316.0,2.507732901869276 +1317.0,2.501570856388829 +1318.0,3.1024304383851926 +1319.0,2.5763800733371727 +1320.0,2.5698447495347265 +1321.0,2.4695331135118135 +1322.0,2.845802288920067 +1323.0,3.353613422055712 +1324.0,2.682402482227656 +1325.0,3.2798814353308585 +1326.0,3.36586258487361 +1327.0,4.426673317521013 +1328.0,2.5721758994696047 +1329.0,3.198592944023168 +1330.0,2.517326974068136 +1331.0,3.9185932614515884 +1332.0,2.695906093056129 +1333.0,2.7457168067512256 +1334.0,2.980943255722428 +1335.0,2.496105387131676 +1336.0,2.5313083754884387 +1337.0,2.617894207676863 +1338.0,2.5862148478074714 +1339.0,3.06418768153088 +1340.0,2.865081015453759 +1341.0,3.0484443471249683 +1342.0,2.9150743124916607 +1343.0,3.282394983270181 +1344.0,2.486441341159992 +1345.0,2.518414347026545 +1346.0,2.9578172515119485 +1347.0,2.631112421375207 +1348.0,2.6934886974901384 +1349.0,3.8687972134565456 +1350.0,2.479626426314714 +1351.0,2.9781119011318724 +1352.0,3.4941739279955737 +1353.0,2.717240843893202 +1354.0,2.676826771196759 +1355.0,2.6404239503560363 +1356.0,2.641849938858412 +1357.0,2.4575409003986204 +1358.0,2.6586131086287783 +1359.0,2.517347795745468 +1360.0,2.843246128220154 +1361.0,2.6391771697289905 +1362.0,3.38829802693037 +1363.0,4.076397509969766 +1364.0,2.570918873141557 +1365.0,2.6240207535774815 +1366.0,2.94369255271926 +1367.0,2.779257267551349 +1368.0,2.456368572556937 +1369.0,2.628624465183644 +1370.0,2.6515760148478655 +1371.0,3.4599494907005033 +1372.0,2.541381208394878 +1373.0,3.2428844106514605 +1374.0,2.720868566041217 +1375.0,3.1528491179297564 +1376.0,2.7354434215297654 +1377.0,2.4641439588917584 +1378.0,3.5033032876046857 +1379.0,2.5035749536084198 +1380.0,2.6675597078567814 +1381.0,4.314165956832431 +1382.0,3.4765243008913296 +1383.0,2.895090538735278 +1384.0,2.5610050136110782 +1385.0,2.4703867243936237 +1386.0,2.615113149271574 +1387.0,3.2098151647984094 +1388.0,2.7641085572581128 +1389.0,3.0699604632680355 +1390.0,4.916678278571883 +1391.0,2.9625513599709556 +1392.0,3.0298701588799934 +1393.0,2.623322920154423 +1394.0,4.31310796140669 +1395.0,2.5663894954370665 +1396.0,2.604121688149828 +1397.0,3.018825541111425 +1398.0,3.240662639306895 +1399.0,3.516033788939322 diff --git a/tests/fixtures/catalogs/case_021_high_mc_1400d.csv b/tests/fixtures/catalogs/case_021_high_mc_1400d.csv new file mode 100644 index 0000000..8590880 --- /dev/null +++ b/tests/fixtures/catalogs/case_021_high_mc_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,4.218582639772193 +1.0,3.793317490258087 +2.0,3.4017777897941595 +3.0,3.447612643866018 +4.0,3.46057890086582 +5.0,3.8881895316206476 +6.0,4.890305521705747 +7.0,3.479844005494798 +8.0,4.216903571891334 +9.0,3.9203557970136056 +10.0,4.001333299496004 +11.0,3.652449221774848 +12.0,3.639448471564079 +13.0,4.0510959970916325 +14.0,3.883443034192431 +15.0,3.9301368262296954 +16.0,3.608007510224895 +17.0,3.913514214087114 +18.0,3.738244198032218 +19.0,4.302822398032931 +20.0,4.176510800505517 +21.0,3.4123306651771967 +22.0,3.914181168070864 +23.0,3.442348645854822 +24.0,3.4365903181471102 +25.0,3.503963472297247 +26.0,3.409454513071384 +27.0,3.500055952435053 +28.0,3.7102511531815012 +29.0,3.8838937125355746 +30.0,4.349116395816453 +31.0,4.7380525605420365 +32.0,3.6688884999196203 +33.0,5.020931632032181 +34.0,4.092136933936306 +35.0,3.768626884624013 +36.0,3.983339003056952 +37.0,3.9820258884907505 +38.0,3.5778088495625795 +39.0,3.467369747620953 +40.0,3.5516964015267734 +41.0,3.564010672484696 +42.0,3.4555343814543744 +43.0,4.673926507418722 +44.0,3.51767147244853 +45.0,3.4853685828699823 +46.0,3.520565839745204 +47.0,3.415147141798301 +48.0,3.4264941009739913 +49.0,3.4925321839917336 +50.0,3.4748224123162528 +51.0,3.684107649111274 +52.0,3.8781615222796235 +53.0,3.542733446730869 +54.0,3.5749185566104287 +55.0,3.674810742771232 +56.0,3.6054037964211516 +57.0,3.774811622822604 +58.0,3.7927579960177797 +59.0,3.5073060169022723 +60.0,3.9435684134837965 +61.0,3.459429932707837 +62.0,3.996999783649615 +63.0,3.8826639456015415 +64.0,4.246523904853037 +65.0,3.605617252228869 +66.0,4.790676313149846 +67.0,3.8183692574055272 +68.0,3.6501854947478813 +69.0,3.63324330554696 +70.0,3.5837886008787945 +71.0,4.397404987296465 +72.0,3.6559475541284274 +73.0,4.417754405015055 +74.0,3.4481083280536193 +75.0,3.510759988734185 +76.0,4.12411218526745 +77.0,4.467162991341891 +78.0,4.417870201967483 +79.0,3.73734152819319 +80.0,3.729896978218863 +81.0,3.4782984129055032 +82.0,4.1087023220236 +83.0,3.6195160085379716 +84.0,3.4107950736510064 +85.0,3.4720982012404167 +86.0,3.585847045061564 +87.0,3.9691243036917454 +88.0,3.638519421048975 +89.0,4.79240394116899 +90.0,3.7503559554960013 +91.0,3.808182187758213 +92.0,3.733856823956518 +93.0,5.428135560378115 +94.0,3.551833208874494 +95.0,3.611524933577964 +96.0,3.705393801770242 +97.0,3.416851059607937 +98.0,4.200246489987856 +99.0,4.024862760387603 +100.0,4.302631464016005 +101.0,4.259731782945889 +102.0,3.4923767610281646 +103.0,3.981393846419765 +104.0,3.4164215337712864 +105.0,4.423703611939187 +106.0,3.5849997377116196 +107.0,3.7100809465781763 +108.0,3.6948953137293197 +109.0,4.338639253133216 +110.0,3.6294259020165787 +111.0,4.095337836641525 +112.0,3.8782201286191924 +113.0,3.6769358923639848 +114.0,3.52657225912887 +115.0,4.517489558479712 +116.0,3.6122021525831496 +117.0,4.126089266228214 +118.0,3.9378033871602067 +119.0,3.4872460613170797 +120.0,4.411712541504815 +121.0,3.5988295910975174 +122.0,3.4795977995725877 +123.0,3.799398690005768 +124.0,3.4189816399066624 +125.0,3.7517165482476913 +126.0,4.568456567557263 +127.0,3.749491137732645 +128.0,3.633460778225576 +129.0,3.695633674384118 +130.0,3.734262933736595 +131.0,4.313762903088591 +132.0,4.158181251981703 +133.0,3.5624871483787226 +134.0,3.708243832270945 +135.0,4.028903193821096 +136.0,3.411118728539294 +137.0,4.16092833455287 +138.0,3.5414606760689153 +139.0,3.499760838983049 +140.0,4.26607932845125 +141.0,5.0059738097916515 +142.0,4.334707727816058 +143.0,3.473886850308117 +144.0,3.4164659637131254 +145.0,3.689832533238096 +146.0,3.745639857706195 +147.0,3.4599638334521043 +148.0,3.6361872189594977 +149.0,4.506516601468962 +150.0,4.30911237293174 +151.0,3.4006557906868213 +152.0,3.6533524274511278 +153.0,4.209114339431942 +154.0,3.4540889708591993 +155.0,4.039397229575209 +156.0,3.7078596621684357 +157.0,3.469879117012418 +158.0,4.333291036965713 +159.0,4.537341800390722 +160.0,3.5664936501325037 +161.0,3.4446403498333424 +162.0,3.7551514022304318 +163.0,3.5044444547799896 +164.0,3.4870663147992675 +165.0,3.7386887653738183 +166.0,3.513327396157381 +167.0,3.414768249406595 +168.0,5.020441605039235 +169.0,3.589374942694119 +170.0,3.7924280152619043 +171.0,3.408748487617149 +172.0,3.5325321978553306 +173.0,4.1667102832801355 +174.0,3.438165820108131 +175.0,4.5586693815172445 +176.0,3.449550999125982 +177.0,4.209306297292797 +178.0,3.585095736317385 +179.0,4.0029362728676405 +180.0,3.575950977131605 +181.0,3.429674793688627 +182.0,3.833395726404539 +183.0,3.5071174869163717 +184.0,3.719800850744302 +185.0,4.539709553792595 +186.0,3.5368924780960955 +187.0,3.642150490748869 +188.0,3.4963226562051744 +189.0,3.5509004993510067 +190.0,3.8948674612816943 +191.0,3.566628907301298 +192.0,5.355563469755801 +193.0,3.602866364933625 +194.0,4.379916527920926 +195.0,5.023260944425559 +196.0,4.287309202501703 +197.0,3.597697546850766 +198.0,3.5221468312638176 +199.0,3.5388483562033226 +200.0,4.016057986688725 +201.0,3.7000147833053267 +202.0,3.607520003169965 +203.0,3.677472059439858 +204.0,3.8878813366111813 +205.0,4.079020398783792 +206.0,3.493339667945361 +207.0,3.6563477129363617 +208.0,3.5908668408543996 +209.0,3.424871893539276 +210.0,3.470044538308308 +211.0,4.819532427048015 +212.0,3.5232824039062702 +213.0,3.8893192279688016 +214.0,4.049646586530876 +215.0,3.741350919395053 +216.0,3.5822254168298238 +217.0,3.556250141096443 +218.0,4.838513963252513 +219.0,3.4568275758552582 +220.0,3.962365247647711 +221.0,3.4679228601261585 +222.0,3.853918372249143 +223.0,5.1213196703659305 +224.0,3.8045893154859134 +225.0,3.460801647184657 +226.0,3.5858544273875097 +227.0,3.4044347608871797 +228.0,3.632495917940865 +229.0,3.745177258260482 +230.0,3.4144233949606893 +231.0,3.8780479131568164 +232.0,3.853338347795936 +233.0,3.5446454648259107 +234.0,3.4846453082895716 +235.0,5.120611373331922 +236.0,3.4711537125992473 +237.0,3.6321004789683355 +238.0,4.752412957258338 +239.0,3.4479359196508943 +240.0,4.182833456854276 +241.0,3.962259875237351 +242.0,3.4092788027849945 +243.0,3.498777616064366 +244.0,3.894803490668449 +245.0,3.4807683303429764 +246.0,3.4882669917136733 +247.0,4.65726999903146 +248.0,3.430622196312027 +249.0,4.673655269631867 +250.0,4.252683591060979 +251.0,3.775959766814385 +252.0,3.5387090994316317 +253.0,3.440467711012008 +254.0,4.5709692814565175 +255.0,3.807076825074612 +256.0,3.542602661612629 +257.0,3.66522893913853 +258.0,3.749137693932179 +259.0,3.4840823204122437 +260.0,3.865580041987442 +261.0,3.792551757428766 +262.0,3.6503034931288303 +263.0,4.661800433900979 +264.0,3.614193290167139 +265.0,3.769133297787484 +266.0,3.4872305491608593 +267.0,4.059917904075898 +268.0,3.565319614131605 +269.0,3.443506656900433 +270.0,3.794056973397791 +271.0,3.430085411865917 +272.0,4.147887292734445 +273.0,3.9232062498064755 +274.0,4.7502625402204695 +275.0,4.5968513618877065 +276.0,3.9436971184277727 +277.0,4.368120750299201 +278.0,3.4419926128612297 +279.0,3.948355179938556 +280.0,4.5140384870392865 +281.0,4.079170315594836 +282.0,3.925963618904683 +283.0,3.988264326168475 +284.0,3.402451877009067 +285.0,3.814907291076262 +286.0,3.6756599601268825 +287.0,3.777093937547756 +288.0,3.4611001715918386 +289.0,3.5579432421455577 +290.0,3.5862182350042877 +291.0,3.5321613320917358 +292.0,3.4355451439171536 +293.0,4.795852808966 +294.0,4.331396495928897 +295.0,3.643084876215567 +296.0,3.4504630741610414 +297.0,3.652493136355656 +298.0,3.949428950994955 +299.0,3.458992509763862 +300.0,3.551894937213068 +301.0,4.757426837623811 +302.0,3.473432880530136 +303.0,3.864476799970994 +304.0,5.65627156437408 +305.0,4.022387020079401 +306.0,3.9677099502435427 +307.0,3.6673050496036756 +308.0,4.502993273765195 +309.0,4.042054583077293 +310.0,3.8780113036039996 +311.0,3.578412065164619 +312.0,3.548144510692732 +313.0,4.2026928824200676 +314.0,3.4684384894569114 +315.0,3.676746896034104 +316.0,5.297056854068536 +317.0,3.994719439671607 +318.0,3.6400225541346023 +319.0,4.145872021510829 +320.0,3.7956723338486467 +321.0,3.771630095877137 +322.0,4.064658516126138 +323.0,3.4835418087719066 +324.0,3.756882927550471 +325.0,4.402181447738288 +326.0,3.5618059861206675 +327.0,4.308191345214267 +328.0,4.120629142923993 +329.0,3.5106029656995696 +330.0,3.4678866786989877 +331.0,4.21445666986895 +332.0,3.419486117432905 +333.0,3.4962097614235144 +334.0,4.072050821734063 +335.0,3.749197693247976 +336.0,3.7983892550954335 +337.0,3.4928090768234967 +338.0,3.5567158340464533 +339.0,3.752657533838728 +340.0,3.626982687388768 +341.0,4.733630788711066 +342.0,4.039262910512102 +343.0,3.6152186340882753 +344.0,3.8482656628680663 +345.0,3.7459794462053413 +346.0,3.4184211892179537 +347.0,3.6067381857187693 +348.0,3.6001158235767696 +349.0,3.8214584940843186 +350.0,3.4018217987141623 +351.0,3.5914571231816406 +352.0,3.8792146852310885 +353.0,3.4724858591974366 +354.0,4.151366809516766 +355.0,3.8439309673597144 +356.0,3.495127800263709 +357.0,3.8369652425936107 +358.0,3.4453425264442137 +359.0,4.289766210693906 +360.0,3.7846236446859085 +361.0,3.4983906254376103 +362.0,3.4816366853515675 +363.0,4.739526133257792 +364.0,3.4242716475142143 +365.0,3.6796449370050057 +366.0,3.418053431527162 +367.0,3.972889355076199 +368.0,3.6973521964507894 +369.0,3.9793117328150545 +370.0,3.5450251131617523 +371.0,3.5906058490182087 +372.0,3.4186374492953098 +373.0,4.708223685157679 +374.0,3.575736452635169 +375.0,3.450745994075431 +376.0,3.659399345351474 +377.0,3.441659363559893 +378.0,3.889305376603022 +379.0,3.753736147183521 +380.0,5.1302528037000235 +381.0,3.4749388795724236 +382.0,3.5603118952365564 +383.0,4.297041654864205 +384.0,4.212482710718356 +385.0,3.6885076659810414 +386.0,3.8773421463869675 +387.0,3.935791501117333 +388.0,3.7998597531021034 +389.0,3.758547702588214 +390.0,3.5189485906740336 +391.0,3.4638580654695343 +392.0,3.996685477220443 +393.0,3.6076868060956797 +394.0,4.016124836069646 +395.0,4.477330669831768 +396.0,4.593444375573382 +397.0,3.7572660458460887 +398.0,3.742989101357351 +399.0,3.7376383074468222 +400.0,3.648480125020656 +401.0,3.5422335742345035 +402.0,4.743910807867496 +403.0,4.5638079655112715 +404.0,3.8712503087140178 +405.0,3.80038613192076 +406.0,3.4146553195302287 +407.0,3.902023538230507 +408.0,3.953927530424871 +409.0,4.336449157856823 +410.0,3.8893210485182834 +411.0,3.5701745314994784 +412.0,3.681792502287045 +413.0,3.764824609345953 +414.0,4.0215563624232535 +415.0,4.04261759055613 +416.0,3.7612738061811006 +417.0,4.524665349895144 +418.0,3.439516246806987 +419.0,3.4529726924540602 +420.0,4.17238889352443 +421.0,4.191151074800447 +422.0,4.2580815974806825 +423.0,3.409761485922101 +424.0,3.497786931341188 +425.0,3.9196296392618377 +426.0,3.6056019385990794 +427.0,3.473715689286347 +428.0,3.655348655911461 +429.0,4.030347764707882 +430.0,3.706998760965684 +431.0,3.53223105058174 +432.0,3.7614833766047777 +433.0,3.8201301944516857 +434.0,3.503299909589287 +435.0,4.113249395206 +436.0,3.4612198838333965 +437.0,4.0746331407512395 +438.0,3.6128503233447873 +439.0,3.675244750606999 +440.0,3.405198519195825 +441.0,3.799816036644741 +442.0,3.629524154637337 +443.0,3.821195845255582 +444.0,3.4169911390206096 +445.0,3.626786487729916 +446.0,3.699535287322723 +447.0,3.9134395620312485 +448.0,3.680727681399787 +449.0,3.5261035768805913 +450.0,3.7723775232812233 +451.0,3.6971109957676433 +452.0,4.076492609403196 +453.0,3.8159975985123986 +454.0,5.197956816418335 +455.0,4.007423720546549 +456.0,5.256009571812577 +457.0,4.331143840151057 +458.0,3.483632906910094 +459.0,4.082743439360093 +460.0,3.5711284012902973 +461.0,5.017521718804687 +462.0,3.5073390914304783 +463.0,3.4066653449314783 +464.0,3.6176373070488697 +465.0,3.962865944592911 +466.0,3.6156444764806372 +467.0,4.133590427280377 +468.0,3.490202573236225 +469.0,3.9258239122243523 +470.0,3.974847007035865 +471.0,3.551477814173714 +472.0,4.215793604087206 +473.0,3.789309204122 +474.0,3.4489454952662384 +475.0,3.505480059294633 +476.0,3.477764601687897 +477.0,4.249497225271192 +478.0,4.283901832188171 +479.0,3.5496398950674757 +480.0,3.9401527156380896 +481.0,3.4763806250953473 +482.0,3.528677058333438 +483.0,3.472287579146517 +484.0,3.4446475592948596 +485.0,3.5606792149100843 +486.0,3.5491728964876956 +487.0,3.4216482639287857 +488.0,4.316300099719475 +489.0,3.4929451672409617 +490.0,3.447346389669179 +491.0,3.4516091629547527 +492.0,4.0527709209524465 +493.0,3.5039745446789587 +494.0,3.588092793471318 +495.0,3.463286828897724 +496.0,3.608023960204991 +497.0,3.9192813820206176 +498.0,4.060303893248148 +499.0,3.8050336579066593 +500.0,3.9139853198004038 +501.0,3.577759183822623 +502.0,3.78481691038048 +503.0,4.209873895728968 +504.0,4.103171635453006 +505.0,4.884779150598032 +506.0,3.427298952393202 +507.0,3.473223722161064 +508.0,3.584322948567562 +509.0,3.9300288245835997 +510.0,3.466603219553998 +511.0,3.656459195454219 +512.0,3.54709202088889 +513.0,3.933091527979337 +514.0,3.916016706663937 +515.0,3.828282859870101 +516.0,3.6361819664381967 +517.0,3.7178295283935796 +518.0,4.19636628768101 +519.0,4.162533469629213 +520.0,3.4240095626509697 +521.0,4.304289905755006 +522.0,3.5244584174077778 +523.0,3.458521166885829 +524.0,3.506826515457275 +525.0,4.176908083701055 +526.0,3.7386710503559235 +527.0,3.4997562149503763 +528.0,4.2000920050548665 +529.0,3.4689350404142494 +530.0,3.534574834411911 +531.0,3.8360449771004537 +532.0,4.046445308256588 +533.0,3.6927712356587543 +534.0,3.518975148024774 +535.0,3.7481077365766513 +536.0,4.133040761266228 +537.0,4.344275410211138 +538.0,3.869104921602988 +539.0,3.731071380130076 +540.0,3.477720623607859 +541.0,3.6961154466026276 +542.0,3.735073330769503 +543.0,3.5368518328924825 +544.0,3.5366374876627438 +545.0,3.8253904089562196 +546.0,3.424666407892401 +547.0,4.55991206416258 +548.0,4.02985513621087 +549.0,4.559302080310094 +550.0,5.231755993794537 +551.0,3.971967436980951 +552.0,4.298432556179607 +553.0,3.470068366692871 +554.0,3.4030732434563156 +555.0,4.0839673118835655 +556.0,4.124074507309241 +557.0,4.566494913786714 +558.0,3.6537348288906966 +559.0,4.628475330586357 +560.0,3.935732947223794 +561.0,4.831210643726153 +562.0,3.4296628614518054 +563.0,3.6744975688845933 +564.0,4.430437059186369 +565.0,4.360714635299487 +566.0,4.051895331884509 +567.0,3.5372087507378516 +568.0,4.280779522492827 +569.0,4.564037147360007 +570.0,3.4474065024239597 +571.0,4.275854555340208 +572.0,3.687808684954762 +573.0,3.85974203366556 +574.0,3.9238218613308673 +575.0,3.4228642359681456 +576.0,3.421650130334562 +577.0,3.4017849602005326 +578.0,3.6603556176179906 +579.0,4.210300848399743 +580.0,3.8055630819248076 +581.0,3.446577960568376 +582.0,3.8327772737509487 +583.0,3.5957122155011763 +584.0,4.515952436363806 +585.0,3.5065695577268094 +586.0,3.6524117914026744 +587.0,3.7936883307360416 +588.0,3.5272908041687403 +589.0,3.9542451989779788 +590.0,3.9803092971365324 +591.0,4.579053924175093 +592.0,3.467469044323941 +593.0,3.9686923149254985 +594.0,3.615430981914919 +595.0,3.469807150572199 +596.0,3.501627325195223 +597.0,5.051842197161782 +598.0,3.4647312559218193 +599.0,4.682770378479419 +600.0,3.9574974450018043 +601.0,4.6746213458309605 +602.0,3.4122290734072016 +603.0,3.6042127601578957 +604.0,4.315296825439084 +605.0,3.4186549877736727 +606.0,3.6560946148464653 +607.0,3.485877651065184 +608.0,3.592513035825773 +609.0,3.784930382978791 +610.0,3.4184881798960753 +611.0,3.9191796296616666 +612.0,3.4670743978661243 +613.0,3.4129513088934726 +614.0,3.651017559658011 +615.0,3.6700399013304086 +616.0,3.603802081480413 +617.0,3.5059148541735623 +618.0,3.4635581409755742 +619.0,5.1294724634892965 +620.0,5.328635426582354 +621.0,3.920213728805153 +622.0,5.228224859821766 +623.0,3.519261897832978 +624.0,3.583397644197604 +625.0,3.482082908971285 +626.0,3.8116027884985977 +627.0,3.8219620868841657 +628.0,4.355766203763999 +629.0,3.7493427100940893 +630.0,4.352837440506756 +631.0,3.6662603075355524 +632.0,4.2382014075436025 +633.0,3.6563735478294856 +634.0,4.14069841019973 +635.0,3.865358466980942 +636.0,3.7088277743556737 +637.0,4.621137363542037 +638.0,3.413426127341899 +639.0,5.060233965010207 +640.0,4.4601451686956874 +641.0,3.4583243636551457 +642.0,3.5869130420375592 +643.0,3.626642251463503 +644.0,3.411876327347825 +645.0,4.6332854591536154 +646.0,3.7667852290663393 +647.0,3.581959317497312 +648.0,3.5674173589280698 +649.0,3.4169782829391964 +650.0,3.8914818973236636 +651.0,3.9258711247794915 +652.0,4.401009210674881 +653.0,3.7968487582195536 +654.0,3.7378085571078525 +655.0,3.7519050035694175 +656.0,3.623779718705189 +657.0,3.995333082829916 +658.0,3.4196018280307086 +659.0,3.5163657473085506 +660.0,3.5855461242147215 +661.0,3.5060615050671475 +662.0,3.608546521371088 +663.0,3.6557532448927024 +664.0,4.01040228912894 +665.0,3.7026577064030755 +666.0,3.933919779460689 +667.0,3.5172088522141642 +668.0,3.7906943648559492 +669.0,3.937711878344517 +670.0,3.5908107917291097 +671.0,4.481586439796315 +672.0,4.0576300301876564 +673.0,3.797880268850016 +674.0,4.158856412993598 +675.0,3.8198148840222053 +676.0,4.292577489155897 +677.0,3.403649965761374 +678.0,4.828812806655458 +679.0,4.0372889164999135 +680.0,3.510436444514993 +681.0,4.870529502011943 +682.0,3.763921028788392 +683.0,3.6021857146628844 +684.0,3.5917744760828247 +685.0,3.4402170480973417 +686.0,4.740694551969172 +687.0,4.619831675062712 +688.0,4.078155116489572 +689.0,3.6564135010420498 +690.0,3.6466683426250492 +691.0,3.972026430366401 +692.0,3.526683196958798 +693.0,3.5029916640153056 +694.0,4.822789999939605 +695.0,3.959905111937725 +696.0,4.001607880213172 +697.0,3.9859196225661817 +698.0,3.4799997491862893 +699.0,3.422823566150239 +700.0,3.8164083654674212 +701.0,4.090684078498681 +702.0,3.526912912839828 +703.0,3.7490733630910746 +704.0,3.92067525694347 +705.0,3.5544031887575147 +706.0,3.8437251907730983 +707.0,4.239388438519006 +708.0,3.7208988584557816 +709.0,3.4977688678144716 +710.0,6.533021772996076 +711.0,4.033568772537657 +712.0,3.4942345279700726 +713.0,3.511306658616022 +714.0,4.033338067601951 +715.0,3.808491158867767 +716.0,3.5767317206528455 +717.0,3.458464436206152 +718.0,3.724260968706565 +719.0,4.03278892513936 +720.0,3.7086315098319917 +721.0,3.628739279357217 +722.0,3.6565109552108668 +723.0,3.44091528200584 +724.0,3.4894287988548274 +725.0,3.9867298931841417 +726.0,3.493944909031217 +727.0,3.4441966976450686 +728.0,3.464349799986929 +729.0,3.966575269507924 +730.0,4.539116312464783 +731.0,3.834273014553437 +732.0,3.606281610277054 +733.0,3.6980889330897155 +734.0,4.017812678842711 +735.0,3.728610489813652 +736.0,3.6473792155551448 +737.0,3.641762095406401 +738.0,4.039272164824235 +739.0,3.6973635773103717 +740.0,3.5889872841788737 +741.0,3.7423052573868065 +742.0,3.6799763718044067 +743.0,4.975441371273302 +744.0,3.6960350727636686 +745.0,4.511690365615634 +746.0,3.4997886043304427 +747.0,3.6247677228619297 +748.0,4.423471209696727 +749.0,3.7088110449002136 +750.0,4.091867014908575 +751.0,3.8329677262330706 +752.0,3.516741831940855 +753.0,3.770750693272699 +754.0,3.50356832852992 +755.0,4.075784125045655 +756.0,3.6225378339437926 +757.0,4.194239395879786 +758.0,3.63133029565977 +759.0,3.608769425280358 +760.0,3.6729094540338267 +761.0,4.019000612865299 +762.0,3.7659998644106243 +763.0,3.5344551572473133 +764.0,4.486628784543469 +765.0,3.4065041272841308 +766.0,4.245785702501889 +767.0,3.836210432081136 +768.0,3.989005259201413 +769.0,4.429966424729752 +770.0,3.6994964793434337 +771.0,3.834380255267843 +772.0,4.436954024405139 +773.0,3.503253291526026 +774.0,3.5481128021869255 +775.0,3.6701416541385514 +776.0,3.728216477401228 +777.0,3.584899224646296 +778.0,5.948325095621696 +779.0,4.110060379798114 +780.0,3.978260154396394 +781.0,3.8321714405124125 +782.0,4.002480469772186 +783.0,3.8370100419307116 +784.0,3.8601750337470784 +785.0,3.878087081306455 +786.0,3.6107201471325725 +787.0,3.4418862340001004 +788.0,3.4135702541621176 +789.0,3.604414737005759 +790.0,3.503926192792658 +791.0,4.4039589768168925 +792.0,3.5396249899391083 +793.0,4.397559832348175 +794.0,3.8472103176025207 +795.0,4.588237568201063 +796.0,3.5830011887768505 +797.0,3.524646156102304 +798.0,3.4167829754620715 +799.0,4.297672198372021 +800.0,3.4272779294157907 +801.0,4.770695670373034 +802.0,4.101269389473836 +803.0,3.848092676891622 +804.0,3.7633162597281355 +805.0,5.170778700398458 +806.0,3.4526987662356574 +807.0,3.7648981442480554 +808.0,3.874151759768265 +809.0,4.3596801696343555 +810.0,3.4331640192766377 +811.0,3.61093729334454 +812.0,3.4652735120469607 +813.0,3.741084455354201 +814.0,3.484940914283328 +815.0,3.895378468998673 +816.0,3.8640434292680266 +817.0,5.190417068176513 +818.0,3.411166931704626 +819.0,4.564274910538852 +820.0,3.796714449937264 +821.0,3.713474268820329 +822.0,4.184986176326899 +823.0,3.4917623488376597 +824.0,3.573615301128927 +825.0,3.414475272623922 +826.0,3.7940127300980855 +827.0,3.9073086957190517 +828.0,3.4717782933377537 +829.0,3.421785491539599 +830.0,3.4593205651350716 +831.0,3.5711539375617454 +832.0,3.723226635120111 +833.0,3.4818470582374172 +834.0,3.504331663017444 +835.0,3.56108210419361 +836.0,4.046925565372508 +837.0,4.249664467384065 +838.0,3.888889551886909 +839.0,3.5169588438161865 +840.0,3.4276120561387566 +841.0,3.4487378556791386 +842.0,3.881196691811165 +843.0,3.493404095547151 +844.0,3.6120324309118192 +845.0,4.080830127939507 +846.0,4.492008753733608 +847.0,4.210405424001822 +848.0,3.6856819524503357 +849.0,4.010378724233978 +850.0,3.449263459093703 +851.0,4.006557828939869 +852.0,3.8647120855722914 +853.0,3.6821308983468155 +854.0,3.480154702375601 +855.0,3.5931763747766325 +856.0,3.4340487049396704 +857.0,3.678568967461389 +858.0,4.218784033296741 +859.0,3.588053662312609 +860.0,3.870335852684123 +861.0,4.5464892729418676 +862.0,3.6912657332164374 +863.0,3.829822386655671 +864.0,3.549959076931342 +865.0,3.637335174882509 +866.0,3.4386371220814484 +867.0,4.769637073468063 +868.0,4.243559924604148 +869.0,4.002965871544706 +870.0,3.6234427581620143 +871.0,3.9246377945728534 +872.0,3.6795403020137813 +873.0,3.5158391824198145 +874.0,3.4144001548653966 +875.0,3.4802122820841186 +876.0,3.582362867713406 +877.0,3.611688206724587 +878.0,3.902156799950034 +879.0,3.715729252580242 +880.0,3.6352166761535822 +881.0,3.6694507143160067 +882.0,3.9229256715593173 +883.0,3.417470958629331 +884.0,4.051869377944794 +885.0,3.7487342976855897 +886.0,3.6045587983206744 +887.0,3.5690959742526243 +888.0,4.928806921158916 +889.0,3.7293886120288833 +890.0,3.6546762721064994 +891.0,5.097152724415913 +892.0,3.5147019106720685 +893.0,3.4463765427564175 +894.0,3.9504714384438535 +895.0,3.852259706504177 +896.0,3.937433867899199 +897.0,3.7051692998418724 +898.0,4.823665979060671 +899.0,3.755583722270269 +900.0,3.5648112822301963 +901.0,3.5997028808814684 +902.0,3.5465693717683306 +903.0,3.724447272787706 +904.0,3.946390756683847 +905.0,3.7441932756550376 +906.0,3.834266291668247 +907.0,3.6194536144092995 +908.0,3.7636106090832744 +909.0,5.848668485979988 +910.0,3.675567335039012 +911.0,3.435785040503719 +912.0,3.855925306369656 +913.0,3.571391268543944 +914.0,3.824502272640292 +915.0,4.472177286637674 +916.0,3.7510670045529384 +917.0,3.857672492950036 +918.0,3.42139548076678 +919.0,3.5510537358652283 +920.0,3.846637124190214 +921.0,4.140493481278137 +922.0,3.81216793301559 +923.0,3.636457800260393 +924.0,3.4630378439860414 +925.0,4.909986268763715 +926.0,3.6698451164609263 +927.0,4.374107360907581 +928.0,3.66437794325642 +929.0,3.460055302287919 +930.0,3.4031948352175174 +931.0,3.7650423646517392 +932.0,3.5494313317228996 +933.0,3.584693280618684 +934.0,3.9872946097215136 +935.0,4.761884532611187 +936.0,3.553671328886637 +937.0,3.505923736419984 +938.0,3.7493999535811726 +939.0,3.687607696018155 +940.0,3.4843618450675553 +941.0,4.021804170059928 +942.0,3.8547969567061937 +943.0,3.7196989591051484 +944.0,3.518937674609619 +945.0,3.50681779385689 +946.0,3.6180611370169236 +947.0,3.944997918824048 +948.0,3.6729777123737213 +949.0,3.9134407996476033 +950.0,4.446910401597533 +951.0,3.783387763945936 +952.0,3.4511226244183826 +953.0,3.449410063004186 +954.0,3.850684964897903 +955.0,3.8451839215373305 +956.0,3.4561271048698425 +957.0,4.958314935041642 +958.0,4.198602846487274 +959.0,4.299496586159636 +960.0,4.023993336414552 +961.0,3.93503623104121 +962.0,4.554366754902416 +963.0,5.302524800380567 +964.0,4.457847535587078 +965.0,5.298217157023416 +966.0,4.567081786724413 +967.0,3.4997288548037355 +968.0,3.611253265761891 +969.0,3.5110931023381857 +970.0,4.916038039917564 +971.0,3.5998484807622444 +972.0,3.401870605716155 +973.0,3.710544782352546 +974.0,3.851562942990992 +975.0,3.4809475275093753 +976.0,4.563782048659735 +977.0,3.5151853936941695 +978.0,3.9718975803861625 +979.0,3.668323844135958 +980.0,3.4341027380575415 +981.0,3.708412974935462 +982.0,4.398838285134123 +983.0,4.836104046133851 +984.0,3.8880533576213674 +985.0,3.4605339041519425 +986.0,4.041615615706506 +987.0,5.715934500727915 +988.0,4.319852241133103 +989.0,3.531272927875907 +990.0,4.030725592556048 +991.0,3.6127152292684177 +992.0,3.466970286543244 +993.0,3.738505483354505 +994.0,4.141485124531013 +995.0,4.004205948304126 +996.0,3.819690171743557 +997.0,4.315560943888 +998.0,3.488237705526539 +999.0,3.45839210968298 +1000.0,3.4588505670369565 +1001.0,3.4759058143610746 +1002.0,3.4363477406549423 +1003.0,3.6306722716393747 +1004.0,3.8205598762325184 +1005.0,3.7810565722858045 +1006.0,3.4254168537357694 +1007.0,3.615634545232959 +1008.0,3.66023260729924 +1009.0,3.6535681298577236 +1010.0,3.4514636308260522 +1011.0,3.4184328373913355 +1012.0,3.732642871576972 +1013.0,3.677745891138951 +1014.0,3.4729655856776156 +1015.0,3.6088734064272687 +1016.0,3.8411945046333775 +1017.0,3.968321135192233 +1018.0,3.772277120372814 +1019.0,3.5211241686345276 +1020.0,3.7239825150310635 +1021.0,4.688386841984536 +1022.0,3.764588379544283 +1023.0,5.390455014737367 +1024.0,3.4984856774556756 +1025.0,3.713327259127741 +1026.0,3.492180438219051 +1027.0,3.74533424081618 +1028.0,3.68184918968963 +1029.0,4.9517964079538235 +1030.0,3.7449202424866606 +1031.0,3.4060007956477865 +1032.0,4.796190358481034 +1033.0,4.097765456340099 +1034.0,4.54380843158913 +1035.0,3.4186491785984465 +1036.0,3.4048742768373774 +1037.0,3.705201108313826 +1038.0,3.432990741469407 +1039.0,3.4598187986322793 +1040.0,3.4806028273344936 +1041.0,3.5174722925703605 +1042.0,3.871962808052219 +1043.0,4.880242642625331 +1044.0,3.607412247434576 +1045.0,3.82533483319672 +1046.0,4.414305186205003 +1047.0,3.488730978727931 +1048.0,3.5675188271282057 +1049.0,3.5938885045107347 +1050.0,3.4634797122651366 +1051.0,3.87316449193066 +1052.0,3.417083069485101 +1053.0,3.5944909062061527 +1054.0,3.728281995440904 +1055.0,3.7889954907313914 +1056.0,3.941446607587385 +1057.0,3.6052082988376677 +1058.0,3.465250269436322 +1059.0,3.4862194802592286 +1060.0,4.18054277529579 +1061.0,3.5611234726315826 +1062.0,3.793548252171005 +1063.0,5.4986501757929105 +1064.0,6.282253650431217 +1065.0,4.030463688028795 +1066.0,3.790057332950276 +1067.0,3.4966878639378915 +1068.0,3.8669525159205143 +1069.0,3.68740255426913 +1070.0,4.165621440978452 +1071.0,3.7149133745448752 +1072.0,4.016358253307738 +1073.0,3.4910382437428384 +1074.0,3.7399714158327613 +1075.0,3.5819240929219065 +1076.0,6.07635082191794 +1077.0,4.176176339371931 +1078.0,4.145524253334921 +1079.0,3.64311071427814 +1080.0,3.9808621705441465 +1081.0,3.4492626280821446 +1082.0,4.654589278769795 +1083.0,5.056936784223664 +1084.0,3.8066817030539566 +1085.0,4.732614422907536 +1086.0,3.716683145237407 +1087.0,4.013634476541248 +1088.0,4.704084316257717 +1089.0,4.68716529424695 +1090.0,3.5912866601285134 +1091.0,5.464482066741057 +1092.0,3.4958014645850737 +1093.0,3.6774978092331017 +1094.0,3.9593242721056474 +1095.0,3.6303661957571935 +1096.0,3.601228124246623 +1097.0,3.64985389451947 +1098.0,4.023611653633879 +1099.0,5.249078693986141 +1100.0,4.694413568664282 +1101.0,3.946954645247345 +1102.0,3.5866627569870135 +1103.0,3.5914054460069544 +1104.0,3.424900082983085 +1105.0,4.016558503652074 +1106.0,4.041673530806458 +1107.0,3.44329089148204 +1108.0,3.8408206105444083 +1109.0,4.187747968776529 +1110.0,3.5112736660452364 +1111.0,3.4384131468075734 +1112.0,4.100016604065274 +1113.0,3.439550110634038 +1114.0,3.662066443930787 +1115.0,3.5137663563960384 +1116.0,3.5882468085142545 +1117.0,4.055676052125656 +1118.0,3.436214180971195 +1119.0,3.4148731112424233 +1120.0,3.966691489884756 +1121.0,5.217840910733994 +1122.0,3.838930380315627 +1123.0,3.528991621821279 +1124.0,3.4704666714664367 +1125.0,4.706056422687273 +1126.0,3.702270649408495 +1127.0,4.047107086955055 +1128.0,4.5906309377511025 +1129.0,4.662538984443042 +1130.0,3.9533611717571517 +1131.0,3.5978468406768225 +1132.0,3.5820283563446176 +1133.0,3.800043102439168 +1134.0,4.011328423749563 +1135.0,3.745016245887571 +1136.0,3.9291538636078966 +1137.0,3.482057980909473 +1138.0,3.624494125820968 +1139.0,3.8269427409170698 +1140.0,3.9087867269380983 +1141.0,3.777478728247266 +1142.0,3.9705528612529415 +1143.0,3.826557913115381 +1144.0,3.7424687034519355 +1145.0,3.6949811946083986 +1146.0,3.526711094824957 +1147.0,3.4158718930257295 +1148.0,3.88725385908595 +1149.0,3.415640874617966 +1150.0,3.452747110819593 +1151.0,3.4725608771189966 +1152.0,3.40675265716695 +1153.0,3.6630083183557014 +1154.0,3.838365990814897 +1155.0,3.4083124338158894 +1156.0,3.5377065054658483 +1157.0,4.375991988810949 +1158.0,3.6352957880004495 +1159.0,3.4723267733356034 +1160.0,3.7533105561127416 +1161.0,3.445417048398064 +1162.0,3.467472700931028 +1163.0,3.8116724780934113 +1164.0,4.858606914509837 +1165.0,3.603273935523849 +1166.0,4.015540974722227 +1167.0,3.542812420390198 +1168.0,3.722176952693531 +1169.0,3.934934076478976 +1170.0,3.6322945899118437 +1171.0,3.5182625635126783 +1172.0,3.9915463779358347 +1173.0,4.73971048608314 +1174.0,4.1439294867808885 +1175.0,4.697543700662667 +1176.0,3.4427806010062105 +1177.0,3.534919650097377 +1178.0,3.5601008015356417 +1179.0,3.732550476920157 +1180.0,4.313593482113908 +1181.0,4.298899313551709 +1182.0,3.703237076634095 +1183.0,5.186139610977361 +1184.0,3.981565157828956 +1185.0,4.4436808322142145 +1186.0,3.6059784865831257 +1187.0,3.9151793149987673 +1188.0,3.646654063137509 +1189.0,3.467408495876192 +1190.0,3.40232359185116 +1191.0,5.252393661048634 +1192.0,3.4458254663364167 +1193.0,4.340866340869326 +1194.0,4.1902552913930124 +1195.0,4.07603989789349 +1196.0,3.4329212779615674 +1197.0,3.4971546585734195 +1198.0,3.695009601013452 +1199.0,4.1966133969229915 +1200.0,3.548662725011604 +1201.0,3.690279210956218 +1202.0,3.4487077701410107 +1203.0,4.104218904398734 +1204.0,3.5464468313793205 +1205.0,3.58643830160195 +1206.0,3.4067827900308587 +1207.0,4.581305666636958 +1208.0,3.6054749976399236 +1209.0,4.135505794132745 +1210.0,3.7115072344537325 +1211.0,3.8718108441144032 +1212.0,4.245204496787623 +1213.0,3.7081557392823896 +1214.0,3.474056698204197 +1215.0,3.6563773575697627 +1216.0,3.981265841881973 +1217.0,3.434439242562657 +1218.0,3.8149449294490303 +1219.0,3.859145478751227 +1220.0,3.4154970625758954 +1221.0,3.784836994543559 +1222.0,4.014736275695446 +1223.0,3.7314721832965416 +1224.0,4.892881802817005 +1225.0,4.693685983587123 +1226.0,3.4494338784860767 +1227.0,3.7039606591204626 +1228.0,3.5941633937032904 +1229.0,4.066105066068498 +1230.0,3.453773575113114 +1231.0,3.981072561959338 +1232.0,3.9961435119067428 +1233.0,3.9581353331680633 +1234.0,4.142014124681631 +1235.0,3.9964488595910983 +1236.0,3.937874207974207 +1237.0,3.801475822619741 +1238.0,4.724895274566192 +1239.0,3.5453366392806753 +1240.0,3.5765530185193017 +1241.0,3.562479347858151 +1242.0,3.66532238690424 +1243.0,3.7798165081997186 +1244.0,5.151580827390543 +1245.0,3.4741199302462658 +1246.0,3.6814595900152094 +1247.0,3.508175953909506 +1248.0,3.500387775745805 +1249.0,4.525333203724584 +1250.0,4.195837817064431 +1251.0,5.407276979953807 +1252.0,4.27801172723516 +1253.0,3.413521232103818 +1254.0,3.4316834302762476 +1255.0,3.6114480860210643 +1256.0,3.4377368898733023 +1257.0,3.900619986433252 +1258.0,4.379841460771701 +1259.0,3.9543059746687588 +1260.0,4.308103840766917 +1261.0,4.278464202858112 +1262.0,5.204496331480786 +1263.0,3.941544310583321 +1264.0,3.5262092878149107 +1265.0,3.4560566643858044 +1266.0,4.886874432533191 +1267.0,3.999422349732589 +1268.0,4.650510964056193 +1269.0,3.7642132566160016 +1270.0,4.690077832810692 +1271.0,3.887393363353608 +1272.0,4.78636452835294 +1273.0,3.5014574363202113 +1274.0,4.991953655243631 +1275.0,4.093564136100374 +1276.0,3.719825961867317 +1277.0,3.452633188300977 +1278.0,3.6134452470953224 +1279.0,3.6016919119738025 +1280.0,3.563124189877144 +1281.0,3.860922306228416 +1282.0,4.006860700058277 +1283.0,3.8783117792368063 +1284.0,3.4064935852072113 +1285.0,3.5276460473097813 +1286.0,4.174765447069447 +1287.0,4.398657842403786 +1288.0,4.2398833720865055 +1289.0,3.814775689825919 +1290.0,3.9282748605081785 +1291.0,3.406278971234087 +1292.0,4.507330898617924 +1293.0,4.130813110765374 +1294.0,3.551389996213299 +1295.0,3.4020147912923178 +1296.0,4.772073415955926 +1297.0,4.054127837607068 +1298.0,3.5762229745143697 +1299.0,3.9431810357546633 +1300.0,3.519727047469734 +1301.0,3.6783374261513027 +1302.0,4.030403124891931 +1303.0,3.4183702211643 +1304.0,3.4138484746612923 +1305.0,3.9153272279762565 +1306.0,3.4195208379576973 +1307.0,3.521862394180593 +1308.0,3.8102038951229487 +1309.0,3.950167342149733 +1310.0,3.4178787515785536 +1311.0,4.59529520886686 +1312.0,3.890622126250285 +1313.0,3.719808152742446 +1314.0,3.7504704393215937 +1315.0,3.7102545632882546 +1316.0,4.460860554849869 +1317.0,3.463501750737406 +1318.0,3.9288756023123677 +1319.0,4.617666345147936 +1320.0,3.8985550272476956 +1321.0,3.9696635411910344 +1322.0,3.823904378402129 +1323.0,3.4552312303078185 +1324.0,3.7986224956373222 +1325.0,3.553162146559196 +1326.0,3.515342724537765 +1327.0,3.8641109954100674 +1328.0,3.8860530973117737 +1329.0,5.806239534862509 +1330.0,3.52832981052479 +1331.0,4.372312687630116 +1332.0,3.8822081985152814 +1333.0,3.5533229845213277 +1334.0,3.592776603824363 +1335.0,3.615662657638297 +1336.0,3.7500225535120126 +1337.0,3.8388808459475534 +1338.0,3.4304674514456472 +1339.0,4.029647021335536 +1340.0,4.114236744798216 +1341.0,3.438778247664968 +1342.0,3.791596071356347 +1343.0,3.4156275805082763 +1344.0,3.6321770986078326 +1345.0,3.4094891175380435 +1346.0,3.784403340747831 +1347.0,3.497510628007355 +1348.0,3.5555841009163958 +1349.0,4.12685054959437 +1350.0,3.409943033563598 +1351.0,3.883540915302051 +1352.0,3.6665174803358753 +1353.0,3.7352446785707523 +1354.0,3.724481104847546 +1355.0,3.462664313777158 +1356.0,3.6067103207217226 +1357.0,3.428737483514356 +1358.0,4.120471403360774 +1359.0,3.4193103493479273 +1360.0,3.776775552946266 +1361.0,3.8653454610297437 +1362.0,3.471607002797 +1363.0,3.5839381001881714 +1364.0,4.536679972304974 +1365.0,3.8839151033841546 +1366.0,3.7679410603923618 +1367.0,3.615560197065587 +1368.0,4.392690729515694 +1369.0,4.168984891426649 +1370.0,4.025908630295282 +1371.0,4.591096524713135 +1372.0,3.5337814558370266 +1373.0,3.4027777705119497 +1374.0,3.427162299639724 +1375.0,4.9211298119015305 +1376.0,3.6752399298625016 +1377.0,4.150287513685338 +1378.0,4.02476025848513 +1379.0,3.5883778869874234 +1380.0,3.920788957910871 +1381.0,3.8106537085280534 +1382.0,4.490473864981294 +1383.0,4.099746395342562 +1384.0,3.401673618108789 +1385.0,4.517192248113066 +1386.0,3.926541864674488 +1387.0,3.6590525659209994 +1388.0,4.255473021551119 +1389.0,3.622342011661646 +1390.0,3.509995212445719 +1391.0,3.705508741299627 +1392.0,4.982740125821157 +1393.0,4.185561561628205 +1394.0,3.524739573103268 +1395.0,4.140350900969335 +1396.0,3.485058028944994 +1397.0,3.727485207017439 +1398.0,3.903572836931177 +1399.0,3.436535955362561 diff --git a/tests/fixtures/catalogs/case_022_low_count_1400d.csv b/tests/fixtures/catalogs/case_022_low_count_1400d.csv new file mode 100644 index 0000000..382fb9c --- /dev/null +++ b/tests/fixtures/catalogs/case_022_low_count_1400d.csv @@ -0,0 +1,161 @@ +time_days,magnitude +2.0,2.6636952170006913 +7.0,2.581816075772706 +17.0,3.0040046374160467 +24.0,3.0042988147257628 +30.0,2.7052823766577725 +35.0,2.578739511095674 +40.0,2.568192007046842 +67.0,3.8822144536175536 +68.0,2.80621892331079 +102.0,3.3903252707098996 +109.0,3.026899475639391 +110.0,2.7787079292335686 +114.0,2.8777733162341383 +125.0,3.083653118590912 +143.0,2.8629742587486993 +162.0,2.6867289653623097 +167.0,3.5546225867170222 +170.0,2.52745207517323 +176.0,2.7186418462311654 +196.0,3.115618716853305 +217.0,2.7319270392995842 +232.0,3.6211083272602345 +234.0,3.1946968885963676 +256.0,2.8280433650452004 +261.0,2.5188234064113084 +267.0,2.56137651468072 +269.0,2.7030416210626855 +292.0,2.6051003678923905 +295.0,2.7048621980100918 +302.0,3.0022996605613934 +309.0,2.8387423299770784 +316.0,2.67294317113408 +320.0,2.77100718978081 +328.0,2.6882964608325586 +350.0,2.6281962297916714 +354.0,2.766514376446923 +365.0,3.0061831260865497 +377.0,2.8369633149166833 +381.0,2.5965535537059883 +383.0,3.4253533440048147 +385.0,2.5755578961356163 +387.0,2.9497556185388945 +405.0,3.174524100894696 +406.0,2.817583490233597 +431.0,2.544311884043914 +437.0,2.5128358814018084 +445.0,2.770198154305312 +450.0,3.8673909808118503 +465.0,2.5712945683351243 +468.0,3.3779369218020943 +495.0,2.820827674525515 +502.0,2.850574351510182 +504.0,3.0567897642559028 +508.0,2.7598593280540915 +529.0,2.834953493709656 +538.0,3.694969885684012 +547.0,2.520198978704852 +573.0,3.0691169278373893 +588.0,2.6346337132900555 +596.0,2.6463322197177033 +605.0,2.722667869314359 +606.0,2.575421855989185 +610.0,2.9998165769641503 +621.0,2.8831997861417897 +629.0,2.54627179051566 +634.0,2.7030215641415865 +644.0,2.833165642334095 +658.0,3.9591857998218396 +671.0,3.363429342629687 +683.0,3.083894756473393 +687.0,3.0712543721060364 +691.0,2.9801000998813265 +709.0,3.097071761398742 +734.0,4.307783510720546 +738.0,3.2802012880648523 +747.0,2.614300424601213 +754.0,2.5302661275944924 +755.0,2.6440095942077977 +763.0,2.7344807791120878 +769.0,2.5079933501153855 +780.0,4.542010597922015 +789.0,2.7019526910560008 +791.0,2.6318118681475946 +805.0,2.5204898264725633 +811.0,3.0070361263948113 +814.0,2.530645426888156 +815.0,2.8263647435266535 +844.0,2.845440413749076 +854.0,2.579350342703989 +858.0,2.6076373473257184 +862.0,2.5448426465923397 +881.0,3.6171960107858476 +886.0,3.0230752558166274 +895.0,2.937158223360581 +903.0,2.8235710867835655 +951.0,2.603989357040176 +953.0,3.421845590966354 +956.0,3.8760090767939266 +957.0,2.819064408955046 +965.0,2.638994790929976 +973.0,3.617540180377506 +977.0,2.9695532337016166 +979.0,2.590841010041242 +983.0,2.8201809092764725 +986.0,2.674872541319929 +991.0,2.5823846968341386 +1017.0,2.9624814624042486 +1028.0,2.6703668198818997 +1029.0,2.9550859142747434 +1030.0,2.5483221997202823 +1035.0,2.5298775037799284 +1038.0,2.6738903170742927 +1047.0,3.519403782075946 +1048.0,2.8366582891750713 +1050.0,3.34853570852821 +1058.0,3.522861288962379 +1063.0,2.53383077884183 +1068.0,2.6605277189639773 +1088.0,2.531526639222146 +1103.0,3.7822875474486173 +1104.0,2.7428270325103976 +1127.0,4.066488753423689 +1130.0,3.0137787367657456 +1141.0,3.4785262270023005 +1148.0,2.5969611110134294 +1164.0,2.78317867808329 +1166.0,2.995808876599573 +1174.0,2.8656122923047183 +1185.0,3.119608485938488 +1189.0,2.519783290846051 +1190.0,2.5228587536483666 +1198.0,2.828719217022724 +1212.0,2.5108117190936032 +1214.0,2.605711566385332 +1224.0,2.8170701362821515 +1228.0,2.734246539335338 +1230.0,3.0849758852949787 +1234.0,2.7269774409996965 +1238.0,3.8152092687121373 +1239.0,2.9065050758975004 +1255.0,2.9932537335470926 +1260.0,2.5798967671377095 +1273.0,3.2202413118773023 +1284.0,2.7101113608661525 +1294.0,2.652273025393841 +1297.0,2.9057555753828885 +1301.0,2.5377674697567905 +1304.0,3.3089101125055542 +1315.0,2.618607877611675 +1317.0,2.5542745066959482 +1326.0,2.6573419572230716 +1328.0,2.7339438584040217 +1334.0,2.661218493646764 +1347.0,2.648282907282183 +1358.0,3.523097690587379 +1370.0,2.9073899627000444 +1374.0,2.552384992732452 +1377.0,2.520354757176134 +1391.0,2.556409629135891 +1392.0,2.7986853971677053 diff --git a/tests/fixtures/catalogs/case_023_burst_end_1400d.csv b/tests/fixtures/catalogs/case_023_burst_end_1400d.csv new file mode 100644 index 0000000..655d476 --- /dev/null +++ b/tests/fixtures/catalogs/case_023_burst_end_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,2.5254856578775056 +1.0,2.814262675133815 +2.0,2.6758249445302824 +3.0,2.626689624247355 +4.0,2.510392913217712 +5.0,2.7757492618001467 +6.0,2.6353203441363275 +7.0,3.2081400432108156 +8.0,2.763103601714078 +9.0,2.489692203074096 +10.0,2.6497377800172783 +11.0,3.327273904134218 +12.0,2.4868647568703777 +13.0,2.5880907346611832 +14.0,3.4841864419764814 +15.0,2.4753858254476113 +16.0,2.935947735057633 +17.0,2.4148499322974892 +18.0,3.087163987358422 +19.0,3.3295508151545476 +20.0,2.722062382499455 +21.0,2.5350091527162943 +22.0,2.6858594920169105 +23.0,3.0440327481225458 +24.0,2.5332607222659305 +25.0,3.1787317581717502 +26.0,2.9071579803790106 +27.0,2.8933931471598053 +28.0,2.4087717270813527 +29.0,2.5906543095743695 +30.0,2.9793314421250283 +31.0,3.166420079107825 +32.0,2.441207747829265 +33.0,2.802751275649171 +34.0,2.9451411781800574 +35.0,2.7163414719173162 +36.0,2.6529490039506904 +37.0,2.9465416006058818 +38.0,2.4953350766102287 +39.0,3.0491766591433063 +40.0,2.665173797507873 +41.0,2.408727817771786 +42.0,3.266542033499312 +43.0,2.7015764262129056 +44.0,2.4427222316913455 +45.0,2.573707291832691 +46.0,2.5153604271772414 +47.0,2.5850012254230057 +48.0,2.842070782070387 +49.0,2.485807887615465 +50.0,2.4612087968002196 +51.0,2.4883346293578623 +52.0,2.4874205142689827 +53.0,3.04966525990415 +54.0,3.1201465345883546 +55.0,2.9415520571632987 +56.0,2.4060057615246433 +57.0,2.4436423170567343 +58.0,2.5326646254407006 +59.0,2.7925710326040134 +60.0,3.113477103306482 +61.0,3.2661934700227784 +62.0,3.534038831395063 +63.0,3.3456491959060717 +64.0,3.526926817108069 +65.0,2.5175067613061137 +66.0,2.7348571633668786 +67.0,2.4489441923578674 +68.0,2.573647437167695 +69.0,3.476377436718113 +70.0,2.9952593852020466 +71.0,2.407624085483594 +72.0,2.965625406331056 +73.0,2.5118781199996816 +74.0,2.797802578675043 +75.0,2.6151431810209433 +76.0,2.965013418281965 +77.0,2.7643014449184213 +78.0,2.83894357312668 +79.0,2.5858250759144235 +80.0,3.010794541427175 +81.0,2.4766821868193833 +82.0,2.656166885649717 +83.0,3.520800459662788 +84.0,2.5587985126204367 +85.0,2.627019076658444 +86.0,2.4456616799543287 +87.0,3.080212248475686 +88.0,3.031517339301935 +89.0,2.9615639999324683 +90.0,3.1371730843763137 +91.0,2.4626338048465546 +92.0,3.1903152876152046 +93.0,2.476886574847735 +94.0,2.4262018837756405 +95.0,2.4793882570732766 +96.0,2.7146896274149652 +97.0,2.5925532273735814 +98.0,2.616937107631129 +99.0,2.475275004073224 +100.0,2.750701709832131 +101.0,2.8020882308323767 +102.0,2.54959458057226 +103.0,2.4001891720242554 +104.0,3.0749241658056303 +105.0,2.653049105017557 +106.0,3.1254142323198075 +107.0,2.4356642954855747 +108.0,2.9748986419860217 +109.0,3.270378787257968 +110.0,2.438579169448321 +111.0,2.7302481459217955 +112.0,2.6850601004938834 +113.0,2.417866547423155 +114.0,2.6509449488770715 +115.0,2.683501325504942 +116.0,3.6120929127941857 +117.0,2.5476831136186346 +118.0,2.6050654649849276 +119.0,2.6141299809055294 +120.0,2.5505669118257877 +121.0,3.0901126316319725 +122.0,3.825718998573241 +123.0,3.852774410941169 +124.0,2.4515216911532103 +125.0,2.5693252093891696 +126.0,2.7429012932044152 +127.0,3.178337465154397 +128.0,2.814676273012385 +129.0,2.655226283411477 +130.0,2.698870201872262 +131.0,2.916394116170426 +132.0,2.7676020294486596 +133.0,2.6662698686942305 +134.0,2.550623173137228 +135.0,2.800241123785608 +136.0,2.495478471648128 +137.0,2.825037023523708 +138.0,2.7878112180904453 +139.0,3.3667124266004906 +140.0,2.470043067131734 +141.0,3.4888764420463643 +142.0,2.4752463662519055 +143.0,3.1643511412458736 +144.0,2.550566883041266 +145.0,2.591719513183888 +146.0,2.527926502505748 +147.0,2.594196093842059 +148.0,2.420176310118968 +149.0,2.4833664676056513 +150.0,2.533994244868769 +151.0,2.4831740247541694 +152.0,2.546295606057194 +153.0,3.07605015540262 +154.0,2.814689683435227 +155.0,3.2307984427132137 +156.0,3.071373061142742 +157.0,2.4549165100812704 +158.0,2.795407355916841 +159.0,2.962383705674023 +160.0,2.703680198022643 +161.0,2.466066693686438 +162.0,2.4939225576620223 +163.0,2.8909918507332573 +164.0,2.5175359199494083 +165.0,2.9433295146550074 +166.0,2.626099307567719 +167.0,2.8341056344334175 +168.0,2.4092012570297205 +169.0,2.415448365060757 +170.0,2.6678846956837297 +171.0,3.312358006105641 +172.0,2.9094952219952717 +173.0,2.7635433254973445 +174.0,2.517203315455839 +175.0,2.9608021877353625 +176.0,2.421833232393362 +177.0,2.5105083577566973 +178.0,2.4391676175870205 +179.0,2.422821929019133 +180.0,2.446301349583202 +181.0,2.5033386348437454 +182.0,2.549366417670281 +183.0,2.6365865793433216 +184.0,2.575060588264853 +185.0,3.0236992910707845 +186.0,2.6035296417695557 +187.0,3.2237856062205363 +188.0,2.4200052057893817 +189.0,2.4893881347796434 +190.0,2.553739759463402 +191.0,2.5488007520527964 +192.0,2.432809189478667 +193.0,2.453209872752428 +194.0,2.4582417417599 +195.0,2.511836279218291 +196.0,2.4596662940728864 +197.0,2.68256065009212 +198.0,2.779102986382499 +199.0,2.4520606937105187 +200.0,2.4185712978725378 +201.0,2.51100251005687 +202.0,2.778370004863768 +203.0,2.4761852308295813 +204.0,2.4249204286094583 +205.0,2.609717104256966 +206.0,2.488735353050697 +207.0,3.063630543875361 +208.0,4.205145233150107 +209.0,2.43093737279864 +210.0,2.4327522993457187 +211.0,2.503045580357611 +212.0,2.801146275418289 +213.0,3.5528892410908783 +214.0,2.4734101287693235 +215.0,2.5452246016629685 +216.0,3.0376278116536417 +217.0,2.76157672206684 +218.0,3.3674461301961953 +219.0,2.5069260693031805 +220.0,3.16451197411941 +221.0,3.151433107645365 +222.0,2.517199837905641 +223.0,2.804251791205605 +224.0,3.0552493988969607 +225.0,2.802617983801886 +226.0,2.556643612082933 +227.0,2.79984792840874 +228.0,2.4622792757830583 +229.0,4.603465580910207 +230.0,4.437407897358982 +231.0,2.564022468811017 +232.0,2.8131852914252256 +233.0,2.5027246189219015 +234.0,2.4545464062470184 +235.0,2.535812355256164 +236.0,2.5140882652054906 +237.0,3.4090271617144148 +238.0,3.269561941949674 +239.0,2.555528528278333 +240.0,3.5996260138724643 +241.0,4.296548604153682 +242.0,2.453333458209462 +243.0,2.9446241491620126 +244.0,2.4871886375548242 +245.0,2.403798285713792 +246.0,2.5881317750089314 +247.0,2.446517343951621 +248.0,2.8269439033672272 +249.0,3.590615472178282 +250.0,2.427286389970511 +251.0,2.72311274143738 +252.0,3.26168494914192 +253.0,3.1040566180198326 +254.0,4.102054615825725 +255.0,3.5201689820258055 +256.0,2.5572829105993162 +257.0,2.9592422176206425 +258.0,2.68088937579765 +259.0,2.864007769253055 +260.0,2.6859214385111487 +261.0,2.8938703512778967 +262.0,2.7778825211194382 +263.0,2.539418629521994 +264.0,2.6560646438287248 +265.0,3.040906216571595 +266.0,3.700363343006216 +267.0,2.9669567190690795 +268.0,2.7644138364145876 +269.0,2.7901503804019003 +270.0,2.80525166613803 +271.0,2.4574356326373175 +272.0,2.434114202812211 +273.0,2.4943590761868615 +274.0,2.474116341156535 +275.0,2.831369203201165 +276.0,2.4831994131330517 +277.0,2.4885267867716365 +278.0,2.7095770612664896 +279.0,2.5241853943852037 +280.0,2.4940349246615217 +281.0,2.6836922901289095 +282.0,2.6574456112289733 +283.0,2.434543776419742 +284.0,2.735779634167349 +285.0,3.000108945029654 +286.0,2.7209736140284964 +287.0,3.1000783903757414 +288.0,2.9725143779097833 +289.0,2.9686801858067096 +290.0,2.9379783212294255 +291.0,3.4715975259280722 +292.0,2.717304041335399 +293.0,2.6507525133351106 +294.0,2.537232319762731 +295.0,2.742660469606032 +296.0,2.9916161733259985 +297.0,2.4122266580262925 +298.0,3.7738989226253254 +299.0,2.513507986437736 +300.0,3.1494731442772683 +301.0,2.5522064296647646 +302.0,2.4714723917207637 +303.0,2.482723013169792 +304.0,2.837213697139762 +305.0,2.4339749365642196 +306.0,2.5586159150383105 +307.0,2.5441699766860753 +308.0,2.4609352460252927 +309.0,2.6468417554272556 +310.0,2.999222064275777 +311.0,2.5188971099010926 +312.0,2.624475596138429 +313.0,2.6939442597550283 +314.0,2.401778629240464 +315.0,2.534734268221132 +316.0,2.427738430940604 +317.0,3.1835690643274885 +318.0,3.0838266171871034 +319.0,2.5860874223554586 +320.0,2.9939673864634635 +321.0,3.036675635936663 +322.0,2.9922609896330847 +323.0,2.5023841966213203 +324.0,2.5812762932438744 +325.0,2.5147630963825343 +326.0,2.6330346536049962 +327.0,3.478088072989671 +328.0,2.5596947111756965 +329.0,2.451877730463776 +330.0,3.570959374004252 +331.0,2.723597711380612 +332.0,2.4361583332282497 +333.0,2.566857748404088 +334.0,2.423022336114447 +335.0,2.5291402870399176 +336.0,2.4050813396085204 +337.0,2.5475926803216145 +338.0,2.5864126635681464 +339.0,2.5286883930710062 +340.0,2.5739241605637067 +341.0,3.063584721534398 +342.0,2.423988465137192 +343.0,2.807372334441478 +344.0,3.4519468150941304 +345.0,2.7345936531324706 +346.0,2.5306629747183 +347.0,2.5480863202627333 +348.0,2.668277571705223 +349.0,2.4831161477246493 +350.0,2.5607924835762907 +351.0,2.667246161996007 +352.0,2.4473665124512998 +353.0,2.49758233119305 +354.0,2.655980918321863 +355.0,2.409794095285224 +356.0,2.544600860933707 +357.0,2.6012097142062705 +358.0,2.7481335006803187 +359.0,2.5371009181269684 +360.0,2.422750769719978 +361.0,2.9010302622275423 +362.0,2.7578487906506393 +363.0,3.2483191938551905 +364.0,2.42503215801118 +365.0,2.7415630515723826 +366.0,2.7877239167767423 +367.0,3.2434851659838793 +368.0,2.699875844523688 +369.0,3.2893415680446205 +370.0,2.597638436692363 +371.0,2.4150470520522784 +372.0,2.5942553426210218 +373.0,2.507330981031696 +374.0,2.4522554243276447 +375.0,2.776687589909768 +376.0,3.161139612840836 +377.0,2.712062290154916 +378.0,2.7421911283891527 +379.0,3.4803800803948866 +380.0,3.218082770579186 +381.0,2.488948823785555 +382.0,2.4309096746398358 +383.0,2.8799712040166043 +384.0,2.4880791768569566 +385.0,2.615191273942851 +386.0,2.485699295150445 +387.0,3.5522727387919826 +388.0,2.4869349822893057 +389.0,2.495970111700453 +390.0,2.4160795182461654 +391.0,2.5100469464495627 +392.0,2.4928252720806823 +393.0,3.4828269516381827 +394.0,2.445138524383272 +395.0,2.7070825330011616 +396.0,2.6018536594722788 +397.0,2.476819982571551 +398.0,2.8594148458009063 +399.0,3.1941328848814274 +400.0,3.0209868792203425 +401.0,2.7933666238838772 +402.0,2.4751552660426333 +403.0,2.955811733732689 +404.0,2.495885467751746 +405.0,2.7275652405676274 +406.0,2.8019893359689485 +407.0,3.317704875873615 +408.0,2.6832431341189604 +409.0,2.427575954905635 +410.0,2.418258205311157 +411.0,2.563243462531768 +412.0,2.47210346849515 +413.0,2.881003308933315 +414.0,2.718113495361385 +415.0,2.747076593148584 +416.0,2.7516085063099434 +417.0,2.687109353221725 +418.0,2.5908045548742566 +419.0,2.988842168644518 +420.0,3.453937263541768 +421.0,2.724148851127757 +422.0,2.784103693274885 +423.0,2.4276474832961648 +424.0,2.6021587256704404 +425.0,2.480269121602266 +426.0,2.5381786059280596 +427.0,2.673524665366296 +428.0,2.586897068906613 +429.0,3.1398531078393823 +430.0,2.6943069307667855 +431.0,2.579902993492287 +432.0,2.8240123606669734 +433.0,2.842081785781451 +434.0,2.4225854739205004 +435.0,2.695799829017096 +436.0,2.528291336807764 +437.0,2.6934315276734373 +438.0,2.668441785692836 +439.0,2.5246547846037224 +440.0,2.773442843047439 +441.0,2.6706315042473445 +442.0,2.7272987677471003 +443.0,2.983849702202586 +444.0,2.7672889101492513 +445.0,2.883513046524788 +446.0,2.4151115288311256 +447.0,3.269845658887596 +448.0,2.5193984634646047 +449.0,2.415442852586632 +450.0,2.449279790904404 +451.0,3.215338798419902 +452.0,2.7144703989235315 +453.0,2.4558909865437983 +454.0,3.269131359139481 +455.0,2.4209167227963158 +456.0,2.408536573633331 +457.0,2.6125355580054452 +458.0,3.071733054130951 +459.0,2.966681739347172 +460.0,2.4656457885664516 +461.0,3.2034664858368203 +462.0,2.827996361547898 +463.0,2.512419523455642 +464.0,2.434155800021997 +465.0,2.6600688547970313 +466.0,2.7795440838139633 +467.0,2.672804262344451 +468.0,2.7685419207925968 +469.0,2.4381280386769593 +470.0,2.429471032004243 +471.0,3.0458680215537313 +472.0,2.7142802756601867 +473.0,2.4909212783212 +474.0,2.7949549199953494 +475.0,2.690140420318817 +476.0,2.6232284770033787 +477.0,2.8743970700417423 +478.0,2.609416238938016 +479.0,2.4938328044899007 +480.0,3.0670352012244724 +481.0,2.9308845194128157 +482.0,2.5299643049381775 +483.0,2.5618580061106107 +484.0,2.918302369448874 +485.0,2.8256028390549703 +486.0,2.8342102358548757 +487.0,2.8377981703656685 +488.0,2.408050493340636 +489.0,2.7434608482379104 +490.0,2.5967306030837145 +491.0,2.490227894165778 +492.0,2.467401442620331 +493.0,2.6897770178303193 +494.0,3.092277209410179 +495.0,3.1141888609751307 +496.0,2.674474588694906 +497.0,2.433847861345235 +498.0,2.432470445809603 +499.0,2.4873775026604448 +500.0,2.6004920007704233 +501.0,2.783526381416485 +502.0,2.497598169771483 +503.0,2.700000861433977 +504.0,2.8489238256634475 +505.0,2.4400133698065414 +506.0,2.5026012231857946 +507.0,2.5108447357192145 +508.0,2.7149092834366053 +509.0,2.614674321281257 +510.0,2.799169622472436 +511.0,2.4275897270262554 +512.0,2.467136849672588 +513.0,2.620921443630645 +514.0,2.6232778303658586 +515.0,4.158715275020913 +516.0,2.9797324174825777 +517.0,2.6716758308127435 +518.0,2.708647399975731 +519.0,2.581418306338259 +520.0,2.763000702544768 +521.0,2.5776901179905134 +522.0,2.4915833288970677 +523.0,2.7551664149229307 +524.0,2.7754703488533656 +525.0,2.8539049845127824 +526.0,3.2477192849232335 +527.0,3.3938270138753848 +528.0,2.832413355641208 +529.0,3.139653579595331 +530.0,2.7204068211246764 +531.0,2.5415809316259987 +532.0,2.9821166197537154 +533.0,2.732764268699459 +534.0,2.512409335729861 +535.0,2.500517402173854 +536.0,2.765297770916276 +537.0,2.7938339989113175 +538.0,3.2834934200925723 +539.0,3.557782966959431 +540.0,2.855543384513237 +541.0,3.4260012740547285 +542.0,3.0773040871890105 +543.0,2.530827359434757 +544.0,2.6442879270622464 +545.0,3.3931880346708763 +546.0,2.9942380132859934 +547.0,2.4666081997632054 +548.0,2.8889819069747467 +549.0,2.445605802642242 +550.0,2.4826404401392894 +551.0,3.3026094348466226 +552.0,2.7638126495444117 +553.0,2.438653099512301 +554.0,4.13948561666759 +555.0,2.825728818904098 +556.0,2.9308714011219412 +557.0,2.8214340773994335 +558.0,2.626363179227215 +559.0,2.613139542788243 +560.0,2.4500819622169887 +561.0,2.658542714614753 +562.0,2.862558215128074 +563.0,2.7155694639580465 +564.0,2.475448289501219 +565.0,2.6772227242717843 +566.0,3.4158802263810766 +567.0,3.034536810995207 +568.0,3.189368504340401 +569.0,3.7031014929622845 +570.0,2.9606566239814196 +571.0,2.434472095662299 +572.0,2.7186000096460643 +573.0,2.9244869909311455 +574.0,2.5000800099913727 +575.0,2.4732796270451542 +576.0,2.8634777543429637 +577.0,2.743788093829555 +578.0,2.4030511646556314 +579.0,2.439576417905962 +580.0,2.893533481065348 +581.0,2.4160906111675144 +582.0,2.5478078347785034 +583.0,2.621944211561296 +584.0,2.9409509781891083 +585.0,2.44002271129635 +586.0,2.947712935978447 +587.0,2.813594643461358 +588.0,2.5645241278126263 +589.0,2.4470165875854093 +590.0,2.6971777763518063 +591.0,2.432077199701917 +592.0,2.545845466502166 +593.0,2.547430004064144 +594.0,2.625039911913241 +595.0,2.7793572610100914 +596.0,2.4125142747940336 +597.0,2.723700050026189 +598.0,2.5037790646904816 +599.0,2.697378154509932 +600.0,2.4064526954298087 +601.0,2.7205761635603 +602.0,2.8956530650585206 +603.0,2.8449223997107347 +604.0,2.419828161352518 +605.0,2.559951944550086 +606.0,3.04906502498375 +607.0,2.729159483132253 +608.0,2.8183857707399054 +609.0,3.365783322860077 +610.0,2.5275899501464014 +611.0,2.664350303725567 +612.0,2.566094478242187 +613.0,2.5045838830567693 +614.0,2.8788147347917357 +615.0,2.961290532997543 +616.0,2.6670804226031444 +617.0,2.9950914144193583 +618.0,2.534854852351951 +619.0,2.8219468315349827 +620.0,2.59493832392195 +621.0,2.4750239798131544 +622.0,2.5929592517709628 +623.0,2.643267172620456 +624.0,2.4915360900247867 +625.0,2.7253652182767336 +626.0,2.9203997607133743 +627.0,2.6526014401145983 +628.0,2.4522186813066753 +629.0,2.450687231987676 +630.0,2.5664824821239924 +631.0,2.698903111573534 +632.0,2.7268659803692596 +633.0,2.4214868570598327 +634.0,2.4378916157832142 +635.0,2.962885572445338 +636.0,2.4703169377528704 +637.0,3.3478812343539617 +638.0,2.930521252496783 +639.0,2.4930880844288175 +640.0,2.6138354795172507 +641.0,2.9676135900292326 +642.0,2.431635849165379 +643.0,2.889615278311782 +644.0,2.8452494342355794 +645.0,3.2980583803011876 +646.0,2.4833591079040898 +647.0,3.401993807624409 +648.0,2.94012814814158 +649.0,3.2308743151288137 +650.0,2.5692474637848113 +651.0,2.875610457321387 +652.0,2.4155754213446423 +653.0,2.434692198740576 +654.0,2.7813761689045866 +655.0,2.4741708303555154 +656.0,2.6371575792190347 +657.0,2.4352086660588186 +658.0,2.8586202099270057 +659.0,2.439669427198197 +660.0,3.284347355648866 +661.0,2.493260701760337 +662.0,2.4645856663205623 +663.0,2.458134700730253 +664.0,2.748649609061003 +665.0,2.815676275986932 +666.0,2.582102642346434 +667.0,3.6507095320321064 +668.0,3.0691579839296073 +669.0,2.655534699154145 +670.0,3.5202102455262265 +671.0,2.581433475422688 +672.0,3.2082210659154766 +673.0,2.7452913612839414 +674.0,2.406582538346215 +675.0,2.789382997251663 +676.0,2.600068692646401 +677.0,2.485581679149722 +678.0,2.475864569359836 +679.0,3.56651448341152 +680.0,3.342757118045875 +681.0,3.5489834142509116 +682.0,2.418374728072434 +683.0,2.5651610921446175 +684.0,2.4980529794417485 +685.0,2.5420725936669912 +686.0,2.449630008255189 +687.0,2.4537217196060075 +688.0,2.4847099778842603 +689.0,2.4341590143068386 +690.0,2.5095196201032537 +691.0,2.6550804479095556 +692.0,2.6845697726905993 +693.0,2.9832664455987166 +694.0,3.3871547792709467 +695.0,2.982448029239878 +696.0,2.7102190853756225 +697.0,2.712935634062785 +698.0,2.787959529778373 +699.0,2.961149113994014 +700.0,2.64012053387247 +701.0,2.6618289031475855 +702.0,2.5047134033062237 +703.0,2.5576365981178117 +704.0,2.534731505376793 +705.0,2.4308326574626657 +706.0,2.8351942398829286 +707.0,2.6627482475139113 +708.0,2.4524937064849 +709.0,2.611349714267168 +710.0,2.6347349828025575 +711.0,2.535842935697365 +712.0,2.922744899214891 +713.0,2.547631173925153 +714.0,2.8712421794669134 +715.0,2.490015862679852 +716.0,2.8422463486667553 +717.0,2.8074285787841937 +718.0,3.438343840805852 +719.0,2.471213543224561 +720.0,3.2550493570370183 +721.0,2.6239986162115807 +722.0,2.665997788958597 +723.0,2.944192619092412 +724.0,2.5247019531455703 +725.0,2.4342116698978313 +726.0,3.571393265463368 +727.0,2.8348200448381227 +728.0,2.5879594234118715 +729.0,2.4487060201310755 +730.0,2.5355321601639083 +731.0,2.5491311838998287 +732.0,2.434646324327444 +733.0,2.823877037628389 +734.0,2.4710953872927295 +735.0,2.4761735955831807 +736.0,3.403783502368287 +737.0,3.121356327860374 +738.0,2.6319393051960334 +739.0,2.436959713846599 +740.0,2.5459679849141326 +741.0,2.6500531116056103 +742.0,2.607561336181392 +743.0,2.5658667861649236 +744.0,2.498281032401555 +745.0,2.589805798403361 +746.0,2.456537785730422 +747.0,2.423746404412521 +748.0,2.523046942362922 +749.0,2.585902838763111 +750.0,2.6001379235651028 +751.0,2.6328797597564777 +752.0,3.1710224629798995 +753.0,2.7123800413422776 +754.0,3.0156224909689078 +755.0,2.6301109490249472 +756.0,2.68219581582971 +757.0,2.5119031718980125 +758.0,2.489720429230964 +759.0,2.6162020930216165 +760.0,2.4890140266211245 +761.0,2.56666782585323 +762.0,2.701931539146866 +763.0,2.4448109823898307 +764.0,2.858141076376405 +765.0,2.513556187076395 +766.0,2.4957394709235743 +767.0,2.857173493204814 +768.0,2.5615358457263664 +769.0,2.4887018240816636 +770.0,2.589401763293634 +771.0,2.469037875841597 +772.0,2.78090265494361 +773.0,2.941664274333562 +774.0,2.401898459693629 +775.0,2.448074436703901 +776.0,2.834733593400908 +777.0,2.6003195332598352 +778.0,2.4248217106258503 +779.0,2.69080451947492 +780.0,2.92307421743808 +781.0,3.0599706960388047 +782.0,2.540226604355909 +783.0,2.5233616056507397 +784.0,2.530652319517368 +785.0,3.703067617045609 +786.0,2.5117430756616526 +787.0,2.4134343885697365 +788.0,2.923201027720835 +789.0,2.7970348601254305 +790.0,3.036624381015562 +791.0,2.721005906680256 +792.0,2.4489308912694234 +793.0,2.5423233480839467 +794.0,2.5030692643907058 +795.0,2.578513367217693 +796.0,3.2196033240474726 +797.0,2.698485953181084 +798.0,3.1547022782330494 +799.0,2.7227021719619664 +800.0,2.5132157319117057 +801.0,2.6738188155646783 +802.0,2.5223185105368517 +803.0,2.4740105052059884 +804.0,2.8357602256517103 +805.0,2.630131227750552 +806.0,2.76861016460228 +807.0,2.646956241490703 +808.0,2.6397523851703384 +809.0,2.5830665454171218 +810.0,2.565588144098523 +811.0,2.8305814120596824 +812.0,2.451480214273979 +813.0,2.6725760030018217 +814.0,2.826678227292548 +815.0,2.4228924565253935 +816.0,2.542867987437946 +817.0,2.5204285006674874 +818.0,2.7486490928637983 +819.0,2.773787014853468 +820.0,2.5380865416651166 +821.0,2.6087895968925827 +822.0,2.675458732629717 +823.0,2.9682794219061615 +824.0,2.4448865807654188 +825.0,2.8725843922558716 +826.0,2.563401718545746 +827.0,2.4644047227028074 +828.0,2.6726842279965832 +829.0,2.406182134058597 +830.0,2.9265614177473376 +831.0,2.6153995198922764 +832.0,2.691176095053001 +833.0,2.687123331918074 +834.0,2.4850308921873356 +835.0,3.4048477112659357 +836.0,2.5756417555381708 +837.0,2.586347032080742 +838.0,2.509203327911463 +839.0,2.6488981209150007 +840.0,2.8344015070395066 +841.0,2.4934545532150016 +842.0,2.551714332725626 +843.0,2.565040718345065 +844.0,3.5133633053975473 +845.0,2.5662763712489367 +846.0,2.7862454341387877 +847.0,2.4073406988251627 +848.0,2.7974681371702754 +849.0,2.8739760999581936 +850.0,4.401260895041027 +851.0,2.806519553705144 +852.0,2.5163254582939567 +853.0,3.297399427854354 +854.0,2.5500101083184985 +855.0,2.5482304794396504 +856.0,2.558255823712199 +857.0,2.541747651338284 +858.0,3.4153434274375343 +859.0,2.831000995220043 +860.0,2.4234348045663494 +861.0,2.756289583505556 +862.0,2.6795532647714557 +863.0,2.409597280193057 +864.0,2.57824382798415 +865.0,2.4399391336518255 +866.0,2.7412310386074505 +867.0,2.949872986515482 +868.0,2.6067522428175076 +869.0,2.9829658773631405 +870.0,2.6860243201823506 +871.0,2.4539203571585952 +872.0,2.564607914883861 +873.0,2.8102671806151784 +874.0,2.598723606912384 +875.0,2.6594431816946518 +876.0,3.4822474303890845 +877.0,2.7233309244738595 +878.0,3.3036678786329645 +879.0,3.4573482074218793 +880.0,2.5167719625531655 +881.0,3.2134838938619823 +882.0,2.481852302422217 +883.0,3.43823599898872 +884.0,2.5534207172328034 +885.0,3.2600673305640884 +886.0,2.5272512181165534 +887.0,3.2008672148320114 +888.0,2.9342566222775806 +889.0,2.7952770783840384 +890.0,2.4261027756961844 +891.0,2.5101114845472763 +892.0,2.404797961283822 +893.0,2.7972673785692135 +894.0,2.70395332808002 +895.0,2.609263929465081 +896.0,2.435723931335744 +897.0,2.5148719321195747 +898.0,2.7683116951139053 +899.0,2.690359081728681 +900.0,2.7764949208379233 +901.0,3.2010706245917877 +902.0,3.5563946690803925 +903.0,2.624523630576108 +904.0,2.7941703631545813 +905.0,2.8187036044865716 +906.0,2.4369052006969456 +907.0,2.766887882976809 +908.0,2.8444077273432042 +909.0,2.4526318397283347 +910.0,2.4884860680868797 +911.0,2.4979796420078064 +912.0,2.9497311616436424 +913.0,2.8078961931088613 +914.0,2.718018976782967 +915.0,2.5458448342201727 +916.0,2.9404438037496843 +917.0,2.7300347430880567 +918.0,2.74376662006238 +919.0,2.403471830803526 +920.0,3.054266369207054 +921.0,2.4822559924190477 +922.0,2.4009054024197405 +923.0,2.493861898516098 +924.0,2.4201605828316723 +925.0,2.8125673160009557 +926.0,2.7503580624289525 +927.0,2.4599860975636245 +928.0,2.474882266278707 +929.0,2.8227160113712735 +930.0,2.453474152663129 +931.0,2.656599213043898 +932.0,3.644499878892949 +933.0,3.0502695823383847 +934.0,2.564448296843868 +935.0,2.594167810399253 +936.0,2.608259288619056 +937.0,2.405845980812301 +938.0,2.456696201255062 +939.0,2.425324410527037 +940.0,2.4088001960983116 +941.0,4.018031710223224 +942.0,3.0459612562842833 +943.0,2.959689883684851 +944.0,2.8080226911802924 +945.0,2.6706818648278174 +946.0,2.4636711727949687 +947.0,3.117939873732527 +948.0,2.446710663827261 +949.0,2.580428714697649 +950.0,3.49568565901921 +951.0,2.5141945395249734 +952.0,3.530856332742463 +953.0,2.51134281540649 +954.0,2.8104170247909113 +955.0,3.0299806865464154 +956.0,2.632939654600051 +957.0,3.022983996617449 +958.0,2.787047145194251 +959.0,2.7934495647330535 +960.0,3.1656435577595343 +961.0,2.7211514873025666 +962.0,2.62737117018321 +963.0,3.2683635755113296 +964.0,2.4603442816529504 +965.0,2.847970966235367 +966.0,2.4108777060447473 +967.0,2.461937175477269 +968.0,2.58259938167678 +969.0,2.855051051168424 +970.0,2.4264455177050785 +971.0,2.4968483659032685 +972.0,2.5927064156983097 +973.0,2.437613191777747 +974.0,2.482790408687246 +975.0,2.4231118352736316 +976.0,2.7507029107103333 +977.0,2.463170561231125 +978.0,2.606870272372477 +979.0,2.7177014530051955 +980.0,2.6338316871230774 +981.0,2.454332504452751 +982.0,2.594171686250219 +983.0,2.555935498451309 +984.0,2.423862781597771 +985.0,3.4847762134099023 +986.0,2.6666990743835424 +987.0,2.989659628900772 +988.0,3.6567017882701993 +989.0,3.028246937095899 +990.0,3.041027316830279 +991.0,2.419335053752347 +992.0,3.085098856212187 +993.0,2.788560111602866 +994.0,2.876196617509879 +995.0,3.0096500919747853 +996.0,2.419625390093572 +997.0,2.854889084509596 +998.0,2.730493629013652 +999.0,2.6305000161778165 +1000.0,3.0943886130685074 +1001.0,2.9625322084216608 +1002.0,2.435346170929673 +1003.0,2.6995101560068724 +1004.0,2.4951411957552527 +1005.0,3.849076124448729 +1006.0,2.434347070061237 +1007.0,2.7694325196184204 +1008.0,2.6935907280136284 +1009.0,3.497632299359594 +1010.0,2.5013153839923894 +1011.0,2.693276851253571 +1012.0,2.4758802391868726 +1013.0,2.542271951814773 +1014.0,2.5860527146977996 +1015.0,2.437194942421928 +1016.0,2.4521329368112283 +1017.0,2.6458492349388685 +1018.0,2.481438627587622 +1019.0,2.5292467532478784 +1020.0,3.12514419011963 +1021.0,3.0856929069404835 +1022.0,2.8423892971224243 +1023.0,2.9448280789647368 +1024.0,2.791839116982888 +1025.0,2.6782667387884618 +1026.0,2.932806065582796 +1027.0,2.5101915941672783 +1028.0,2.665584922193012 +1029.0,2.413752461067205 +1030.0,2.5330031514964064 +1031.0,2.9027988243957923 +1032.0,2.58416890176513 +1033.0,2.4011869680359155 +1034.0,2.5603850052300547 +1035.0,2.608510580494651 +1036.0,2.836647797265114 +1037.0,3.1391360845379404 +1038.0,2.503856123544779 +1039.0,2.4784911224344683 +1040.0,2.530119221402347 +1041.0,3.120792344646241 +1042.0,2.507180214970021 +1043.0,2.46385800218482 +1044.0,2.555197724958568 +1045.0,2.4787240207112355 +1046.0,2.4517390996881345 +1047.0,2.912608290320485 +1048.0,2.961601273999647 +1049.0,2.5796713648090717 +1050.0,2.7394449212926375 +1051.0,2.5603081554515077 +1052.0,2.602314907005466 +1053.0,2.73346476144301 +1054.0,2.430292232109927 +1055.0,2.9561061967207682 +1056.0,3.215067598103045 +1057.0,2.8520037324462844 +1058.0,2.8977298435628756 +1059.0,2.811320859467102 +1060.0,2.672636846978218 +1061.0,3.1050543848830383 +1062.0,2.7599300872559245 +1063.0,3.147597238496722 +1064.0,3.08894285035523 +1065.0,2.5372155096313382 +1066.0,2.790029209898363 +1067.0,2.430083096176158 +1068.0,2.931061973550265 +1069.0,2.444962558350505 +1070.0,2.9148205621225425 +1071.0,2.5267171906073975 +1072.0,2.640276587573266 +1073.0,2.678931008603129 +1074.0,2.4101749503356693 +1075.0,2.6090886640307236 +1076.0,2.5370936682156793 +1077.0,2.447006844668565 +1078.0,2.535097125095519 +1079.0,2.6354992625820968 +1080.0,2.8403723244675434 +1081.0,2.419586844094949 +1082.0,2.5187630341502105 +1083.0,2.7798298143883207 +1084.0,2.9385133126893566 +1085.0,2.547085128443939 +1086.0,2.572448308111179 +1087.0,3.2602497708766407 +1088.0,2.9637486368070083 +1089.0,2.664864033067565 +1090.0,2.8614074737004858 +1091.0,2.53711959969189 +1092.0,3.366125222566141 +1093.0,2.8997961000148313 +1094.0,2.7955225289770294 +1095.0,2.4375571806547542 +1096.0,2.5872207018479734 +1097.0,2.7003420223115895 +1098.0,2.4114866765108527 +1099.0,2.7062861287319944 +1100.0,4.679696801108291 +1101.0,2.541673994734009 +1102.0,2.6541978684303023 +1103.0,2.85997644268475 +1104.0,2.416591732079683 +1105.0,2.5245943806743623 +1106.0,2.678929653544747 +1107.0,2.9252828850906973 +1108.0,2.494450144883359 +1109.0,3.142849611060549 +1110.0,3.129615411251976 +1111.0,2.43954343988845 +1112.0,3.008161115372533 +1113.0,2.4482822667749566 +1114.0,2.428307278247365 +1115.0,2.6182782856784894 +1116.0,2.5395293135146324 +1117.0,2.5014820429877935 +1118.0,2.411029812979927 +1119.0,2.5342476759275683 +1120.0,2.9819013100602665 +1121.0,2.616770371320974 +1122.0,2.4515193863791302 +1123.0,2.465357256313538 +1124.0,2.5374940556638155 +1125.0,2.6460579350715494 +1126.0,2.7278866924247276 +1127.0,3.3073984409664408 +1128.0,2.92185413004022 +1129.0,2.405668042956174 +1130.0,2.4712336342402765 +1131.0,2.5436415138075614 +1132.0,2.8170901766986867 +1133.0,2.517881990940611 +1134.0,2.6238389487355063 +1135.0,2.403262535723773 +1136.0,2.5071946595404033 +1137.0,3.2270981192062416 +1138.0,2.4574906610484284 +1139.0,2.547922866658966 +1140.0,2.4323368548164157 +1141.0,2.471707129237514 +1142.0,2.594601919820591 +1143.0,3.0896341200440745 +1144.0,2.8235520695182244 +1145.0,2.629257232279631 +1146.0,3.1909678179846743 +1147.0,2.4397569583475684 +1148.0,2.444983761773924 +1149.0,2.7047659183415687 +1150.0,2.4079828098116196 +1151.0,2.5201788256247193 +1152.0,2.4401762066682893 +1153.0,2.9461004990604014 +1154.0,2.60446569889754 +1155.0,2.4669106100350273 +1156.0,2.4975511633995513 +1157.0,2.549771753535201 +1158.0,2.5190170351343872 +1159.0,2.4099323684588616 +1160.0,2.449345511474664 +1161.0,3.2072686139828597 +1162.0,2.4369153184253043 +1163.0,2.9016203571554344 +1164.0,2.561957932732267 +1165.0,2.8647524487013865 +1166.0,2.533414823987591 +1167.0,2.5089170531541862 +1168.0,2.914873368105668 +1169.0,2.566195136615702 +1170.0,2.4797347255408297 +1171.0,2.7049324641992283 +1172.0,2.4304939514235806 +1173.0,3.1303025624368948 +1174.0,2.5099655965156202 +1175.0,2.735573655144381 +1176.0,2.9043321932784023 +1177.0,2.819771673962715 +1178.0,2.657229810748736 +1179.0,2.6821954361387124 +1180.0,2.7269974169441253 +1181.0,2.5610401198525707 +1182.0,2.7016389551595066 +1183.0,2.500419717014409 +1184.0,2.4345961625042865 +1185.0,2.6509263131817313 +1186.0,3.515601800594479 +1187.0,2.642833922821922 +1188.0,3.3366619870725605 +1189.0,2.5606290662607774 +1190.0,2.413704212052137 +1191.0,3.242419821357164 +1192.0,2.751582623550263 +1193.0,2.738132084498139 +1194.0,2.668900784504299 +1195.0,2.6938738524176005 +1196.0,2.741582667957961 +1197.0,2.474985595828186 +1198.0,2.4903002664528024 +1199.0,2.7758803466346023 +1200.0,3.4059635001659707 +1201.0,2.9729550162801663 +1202.0,3.4212883842906914 +1203.0,2.6214692007933875 +1204.0,2.5897813605837374 +1205.0,2.691840611418443 +1206.0,2.511321087842871 +1207.0,2.814826895399045 +1208.0,2.4452091918147616 +1209.0,2.533151110383632 +1210.0,2.571745996236967 +1211.0,2.643752178414875 +1212.0,2.9340368255697395 +1213.0,2.495907531254271 +1214.0,2.5139338773124953 +1215.0,2.706412396641215 +1216.0,2.616747903577157 +1217.0,2.888163084582205 +1218.0,2.7181369803217272 +1219.0,2.4752990139736157 +1220.0,2.9407771616042058 +1221.0,3.0724427952942825 +1222.0,2.474189268237885 +1223.0,2.722829760470537 +1224.0,2.842172905628378 +1225.0,3.073443292449284 +1226.0,2.781707821148828 +1227.0,2.821675879491339 +1228.0,2.4594513092677146 +1229.0,2.4715399697952187 +1230.0,2.4987652569873937 +1231.0,2.729322368398318 +1232.0,2.836045601135863 +1233.0,2.9049233495435076 +1234.0,2.6550691276882494 +1235.0,2.405215079551404 +1236.0,2.960550843569852 +1237.0,2.741436564055501 +1238.0,2.702503834270824 +1239.0,2.549025169525375 +1240.0,2.4325091030847794 +1241.0,2.4138762949475576 +1242.0,2.6647300938948195 +1243.0,2.63536390886625 +1244.0,2.438677869336649 +1245.0,2.799876635790447 +1246.0,2.735547944245677 +1247.0,3.88905708081948 +1248.0,2.7112587662974983 +1249.0,2.704034698548232 +1250.0,2.572338363454071 +1251.0,2.6731300474444906 +1252.0,2.840243062646889 +1253.0,2.4413867079192753 +1254.0,2.669617402535973 +1255.0,2.534433425849218 +1256.0,2.585062838706663 +1257.0,2.5734475674033455 +1258.0,2.8221180986803733 +1259.0,3.2845348356730617 +1260.0,2.702477914395557 +1261.0,3.1058104115958054 +1262.0,3.0180020636673137 +1263.0,3.3233729510845387 +1264.0,2.4799187795639615 +1265.0,2.4704119900706885 +1266.0,2.40261485927279 +1267.0,2.522279066775514 +1268.0,2.9895749953012496 +1269.0,2.81562005440666 +1270.0,2.501585691352024 +1271.0,2.939616109451511 +1272.0,2.54711391311476 +1273.0,2.874124217115764 +1274.0,2.576886368698882 +1275.0,2.6468462221195646 +1276.0,2.6196105288789835 +1277.0,2.9684315368309577 +1278.0,2.7867815571844776 +1279.0,2.8314605850520493 +1280.0,2.575717401840982 +1281.0,2.6527416051678125 +1282.0,2.8150724301072185 +1283.0,2.94370552631662 +1284.0,2.9388278117615982 +1285.0,2.587722913295458 +1286.0,2.480876434872891 +1287.0,3.6554676636562395 +1288.0,2.5795636620955205 +1289.0,2.582707656614361 +1290.0,3.356300963121889 +1291.0,2.931558423057222 +1292.0,2.8428509371513373 +1293.0,2.5159766804454553 +1294.0,3.275098910171047 +1295.0,2.6393619599874207 +1296.0,2.5068047912761466 +1297.0,2.570925612379315 +1298.0,3.125855146837682 +1299.0,2.411218090861597 +1300.0,2.497484031657776 +1301.0,2.669595076452743 +1302.0,2.4425870974547434 +1303.0,2.809523113075513 +1304.0,2.631772029979931 +1305.0,3.2515855607848745 +1306.0,2.8661836283094724 +1307.0,2.705588713277131 +1308.0,2.4500052541970234 +1309.0,2.92400810317649 +1310.0,2.496640346287466 +1311.0,2.9103780767163925 +1312.0,2.4489600909269504 +1313.0,2.5302674507136347 +1314.0,3.328766159133158 +1315.0,2.6083524052464337 +1316.0,2.498326542228311 +1317.0,3.1591113491331795 +1318.0,3.3856705140572947 +1319.0,3.687292017330959 +1320.0,3.063339333458403 +1321.0,2.47824610852772 +1322.0,2.5866371696043116 +1323.0,2.712029770904559 +1324.0,2.463183279824986 +1325.0,2.6365596786551593 +1326.0,2.7425958207969305 +1327.0,2.7322013564363994 +1328.0,2.984364685054989 +1329.0,2.439539166685091 +1330.0,2.7336210745127567 +1331.0,2.445684494005441 +1332.0,2.8846951118909057 +1333.0,2.545462435886342 +1334.0,2.9840022863430127 +1335.0,2.648784774890298 +1336.0,2.4259082483620182 +1337.0,2.707961735148931 +1338.0,2.424047314438906 +1339.0,2.849270096354867 +1340.0,2.405778089108987 +1341.0,2.434216765142866 +1342.0,2.496888489426864 +1343.0,3.9741110868784375 +1344.0,2.8676144524659795 +1345.0,2.6396881469984272 +1346.0,2.5224781286602282 +1347.0,2.4676731391950564 +1348.0,2.404460924903203 +1349.0,2.5820810839951163 +1350.0,2.782008378596996 +1351.0,2.643079823516425 +1352.0,2.4715017355035904 +1353.0,2.8995760633109855 +1354.0,2.846827680604683 +1355.0,3.953160621756186 +1356.0,3.661401787777451 +1357.0,2.7782089983771634 +1358.0,4.989392840302251 +1359.0,3.332680746116642 +1360.0,4.064558290347966 +1361.0,3.9349300879198807 +1362.0,3.8948774299421283 +1363.0,3.3311014547248807 +1364.0,3.0170806813477156 +1365.0,4.045887039797318 +1366.0,4.645567738599912 +1367.0,3.1463533016119376 +1368.0,3.909309006489154 +1369.0,2.682153210251302 +1370.0,3.7605982491839343 +1371.0,3.7276270180476936 +1372.0,3.293639872837764 +1373.0,3.374455126871507 +1374.0,2.5203579661331945 +1375.0,3.7765192556686844 +1376.0,5.0981096455239285 +1377.0,3.022455894803949 +1378.0,3.293803864347864 +1379.0,4.95116039721832 +1380.0,5.233957969660912 +1381.0,3.922406495078403 +1382.0,2.7375181885162783 +1383.0,4.46358938077722 +1384.0,2.5509606728302936 +1385.0,2.595858879849078 +1386.0,5.027014221203043 +1387.0,3.3544810067175965 +1388.0,2.879515448763141 +1389.0,3.8625418702993395 +1390.0,4.222500029938384 +1391.0,3.6228336157087004 +1392.0,4.4024194640363445 +1393.0,3.7314143833630933 +1394.0,4.356750804088925 +1395.0,2.5371537282405745 +1396.0,4.232659451452301 +1397.0,3.419545857407552 +1398.0,2.7607791501422008 +1399.0,5.639603764309351 diff --git a/tests/fixtures/catalogs/case_024_burst_middle_1400d.csv b/tests/fixtures/catalogs/case_024_burst_middle_1400d.csv new file mode 100644 index 0000000..7ebb98f --- /dev/null +++ b/tests/fixtures/catalogs/case_024_burst_middle_1400d.csv @@ -0,0 +1,1401 @@ +time_days,magnitude +0.0,2.444055028832721 +1.0,3.1115583251182937 +2.0,2.4168468936870013 +3.0,2.6032706753016965 +4.0,2.673233645133585 +5.0,2.6071601323516562 +6.0,2.669313284903886 +7.0,2.9527201246371093 +8.0,2.460818591564671 +9.0,2.4019848090570024 +10.0,2.704675733819937 +11.0,2.638108921981054 +12.0,2.424253151181065 +13.0,3.1203778818109678 +14.0,2.44628631190284 +15.0,2.7723417065617033 +16.0,2.5042971567609174 +17.0,2.8850032793013796 +18.0,2.4373671108987582 +19.0,2.99940991629396 +20.0,2.539869641992618 +21.0,2.475860068124912 +22.0,2.6731036205425647 +23.0,3.268018958566877 +24.0,3.585052178424979 +25.0,2.8034494878851737 +26.0,3.6685233271897624 +27.0,2.4426507118044287 +28.0,3.098260621311209 +29.0,2.6873543336661774 +30.0,3.1184492982455394 +31.0,2.542968810191725 +32.0,4.027766298558229 +33.0,2.4362216925241653 +34.0,3.035440508033504 +35.0,2.5176986548837013 +36.0,2.633077312390033 +37.0,2.810644009810869 +38.0,3.360475775009461 +39.0,2.9241121918978674 +40.0,2.431696341565636 +41.0,2.484899132964733 +42.0,2.5047421749529866 +43.0,2.6595026452057735 +44.0,2.5475860205691294 +45.0,2.8312056300906523 +46.0,2.7010716754548394 +47.0,2.9546986580541166 +48.0,4.287887133929512 +49.0,2.5507528786883316 +50.0,2.437066329552753 +51.0,2.6130636883720144 +52.0,2.8090810025672095 +53.0,2.978300247619364 +54.0,2.8329011264830264 +55.0,3.2237585225419574 +56.0,2.4987609774623105 +57.0,2.6112286031357623 +58.0,3.3944862142217787 +59.0,2.9298721861077732 +60.0,2.4453136969082827 +61.0,2.58359519894881 +62.0,2.8148645967933823 +63.0,2.532918761887852 +64.0,2.6215218211172147 +65.0,2.4008760829138422 +66.0,2.9280571896573564 +67.0,3.1274222893059176 +68.0,2.5797287785382785 +69.0,2.739698788742146 +70.0,2.580502940643579 +71.0,2.9851475620932177 +72.0,2.4410244537290273 +73.0,2.9362234786413692 +74.0,2.4497644507996963 +75.0,2.7031742900580067 +76.0,2.7312108414805736 +77.0,2.5001861385535813 +78.0,2.7911479838583357 +79.0,2.4517493602195155 +80.0,2.649584737769263 +81.0,2.5184599146936524 +82.0,2.5982528113187024 +83.0,2.8792964292333476 +84.0,2.5404714755349187 +85.0,2.4737360461193685 +86.0,3.4545858228193205 +87.0,2.505081501730072 +88.0,2.790477631739164 +89.0,2.6120330583269427 +90.0,2.6828617957404806 +91.0,2.532646219976637 +92.0,2.85951759950891 +93.0,2.5952706737538125 +94.0,2.460377932434184 +95.0,2.6248513026024205 +96.0,2.5863880415562557 +97.0,2.641637286070835 +98.0,2.520879070369295 +99.0,2.557620767655885 +100.0,3.112976630424854 +101.0,2.6896238641596373 +102.0,2.6271620140479426 +103.0,2.875217849869642 +104.0,2.9600008772001747 +105.0,2.639698871881508 +106.0,2.552821127512435 +107.0,2.405246419233243 +108.0,3.204253970952406 +109.0,3.404175819441356 +110.0,2.417426440059154 +111.0,2.4963233640359315 +112.0,2.4161168423902883 +113.0,2.445846298483852 +114.0,2.517732828471079 +115.0,2.407395135587794 +116.0,2.5850880884987397 +117.0,2.676161739669098 +118.0,2.928799377131461 +119.0,2.4031212603472945 +120.0,2.7250136648997056 +121.0,3.0042674337438835 +122.0,3.6359395198028266 +123.0,2.436597308758211 +124.0,2.4727848007169766 +125.0,2.589125623414373 +126.0,2.4732604371041464 +127.0,2.5711090240186523 +128.0,2.485690921519204 +129.0,2.604513347119654 +130.0,2.6026635341410103 +131.0,2.464699725538823 +132.0,2.41661955341377 +133.0,3.087689932302587 +134.0,2.8148645225268893 +135.0,2.4084224303502495 +136.0,2.906311624662117 +137.0,2.5599893702012726 +138.0,2.684097944985232 +139.0,2.486901642303951 +140.0,3.492295463732405 +141.0,2.5928518190705536 +142.0,2.622596231733879 +143.0,3.6400009320494693 +144.0,2.5145110953451666 +145.0,3.7286644718707156 +146.0,2.4810355104246296 +147.0,2.4009001771255933 +148.0,3.03911611621736 +149.0,2.730635381891438 +150.0,2.5755580008467462 +151.0,3.600159056285787 +152.0,3.0896372266647414 +153.0,2.5130900305594 +154.0,2.4039026691126746 +155.0,2.4750579125911476 +156.0,2.5122589559537816 +157.0,2.87644834070323 +158.0,2.5650442381133995 +159.0,3.0790503261850635 +160.0,2.7446680316323806 +161.0,2.5053845199665354 +162.0,2.845179460911399 +163.0,2.650820344741237 +164.0,2.406759987371106 +165.0,2.455645150536119 +166.0,3.3946096254178313 +167.0,2.6932589035900776 +168.0,2.453220157049868 +169.0,2.574042675063875 +170.0,2.4425462975175845 +171.0,2.9487234388255112 +172.0,2.7698384952531794 +173.0,2.572318092624649 +174.0,2.541713436669261 +175.0,2.591030790191219 +176.0,2.5390967465743697 +177.0,2.720907194459833 +178.0,2.4921357653573346 +179.0,2.8508573566400703 +180.0,3.861701887798503 +181.0,2.457256640907848 +182.0,2.455509901313751 +183.0,2.8287829375874534 +184.0,2.454754845774004 +185.0,2.991646510014252 +186.0,3.0909329730066624 +187.0,3.2373728977724587 +188.0,2.709458693993252 +189.0,4.8432519787888015 +190.0,3.1172791668636712 +191.0,2.460569485910793 +192.0,2.881459945017967 +193.0,4.0624834316442335 +194.0,2.5668953136007757 +195.0,2.439889634122369 +196.0,3.041105401076593 +197.0,2.8766089400250667 +198.0,2.610372198055849 +199.0,2.5944413369638224 +200.0,2.6189995674915947 +201.0,2.9890705488181344 +202.0,2.633725872787926 +203.0,2.648499432910476 +204.0,2.4905800279607253 +205.0,2.610580476096602 +206.0,2.4655426062215207 +207.0,2.594433892326743 +208.0,4.133701225463906 +209.0,2.548149128587434 +210.0,2.5615662202121317 +211.0,2.4357370019865425 +212.0,3.2800735292466894 +213.0,2.4315072336866534 +214.0,2.6893365434881202 +215.0,3.3051408742114665 +216.0,2.863313253059733 +217.0,2.623930316821094 +218.0,2.794700178475 +219.0,2.528751250953334 +220.0,2.726250225738595 +221.0,3.225332919056821 +222.0,2.666367094478164 +223.0,3.0813783799202135 +224.0,3.0909794388049256 +225.0,2.416792726921661 +226.0,3.2293064968186784 +227.0,2.467073998477196 +228.0,2.660941890090916 +229.0,2.5098033930253427 +230.0,2.9279717649886017 +231.0,2.637692948059989 +232.0,3.044984588052727 +233.0,2.4534854800628203 +234.0,2.4385376360418882 +235.0,2.438640213852826 +236.0,2.6646537397703125 +237.0,2.409162339721046 +238.0,2.632680799774665 +239.0,3.0531737586035455 +240.0,2.6270045339215264 +241.0,2.513601079416383 +242.0,2.5394239174991147 +243.0,2.452241927106412 +244.0,2.6776943794917236 +245.0,2.417714441516102 +246.0,3.8555683836616086 +247.0,2.423060241569758 +248.0,3.0376426219887507 +249.0,2.695712857367685 +250.0,2.977120975153213 +251.0,2.7452684860878267 +252.0,2.447265385584461 +253.0,2.5419128645207443 +254.0,2.421501431306695 +255.0,2.435445407889928 +256.0,2.75414515085713 +257.0,2.409491680582513 +258.0,2.4431236580810403 +259.0,3.579122225759539 +260.0,3.120087770977054 +261.0,2.8179506946945123 +262.0,2.4714176183773136 +263.0,2.740410062919727 +264.0,2.6683032338917503 +265.0,2.4853304502447227 +266.0,2.925043146110596 +267.0,2.5903656007327887 +268.0,2.463428647351631 +269.0,2.45164689429432 +270.0,2.655601964572577 +271.0,2.465268096985625 +272.0,2.513890611667876 +273.0,2.617493759647875 +274.0,3.522313549488321 +275.0,2.52893447888518 +276.0,2.7177837782487324 +277.0,3.070953698930225 +278.0,3.011903403006851 +279.0,3.283574724395448 +280.0,2.8064696476376914 +281.0,2.468665360698996 +282.0,2.5234235376697085 +283.0,2.480632705668582 +284.0,2.5168107723861173 +285.0,3.716259724870125 +286.0,2.5449601085444553 +287.0,2.5905823467107845 +288.0,2.5276428844212306 +289.0,2.900865411864668 +290.0,2.772788926545317 +291.0,2.513638567709584 +292.0,2.4580989025287976 +293.0,2.4547760585297347 +294.0,3.15853315642111 +295.0,2.6265986108620463 +296.0,2.463096171387902 +297.0,2.8539125088762667 +298.0,3.176155435002534 +299.0,2.6421316471763308 +300.0,2.495112671490198 +301.0,2.770701065987566 +302.0,2.480953167886256 +303.0,2.502748029694966 +304.0,2.7375480005678687 +305.0,2.9312912161922546 +306.0,2.9508784883278723 +307.0,2.4552670881070853 +308.0,2.763063862518977 +309.0,2.4602153894478227 +310.0,2.4655371587841035 +311.0,2.8154889950169366 +312.0,2.6524435634763233 +313.0,2.4555026164853238 +314.0,3.1778062873380923 +315.0,2.987737424411487 +316.0,2.513058129668758 +317.0,2.617305525861898 +318.0,2.7061020145185104 +319.0,2.7646025843211937 +320.0,2.671357564484306 +321.0,2.6409170592834323 +322.0,2.817257350610613 +323.0,2.498564311405345 +324.0,2.7474748255618158 +325.0,2.921984368382061 +326.0,2.437694750091322 +327.0,2.410376502408801 +328.0,3.5550900152639446 +329.0,3.6714624977087995 +330.0,2.5656998121212586 +331.0,2.655545328257224 +332.0,2.4351699356929633 +333.0,2.6484551222966313 +334.0,2.89802980316843 +335.0,2.477191789526147 +336.0,2.452847337976871 +337.0,2.4242235793373226 +338.0,2.503620224040781 +339.0,2.657239094842398 +340.0,2.712815131718633 +341.0,2.847479199010728 +342.0,2.4963913159425326 +343.0,2.704235152829389 +344.0,3.8932936123600816 +345.0,2.419150492527094 +346.0,2.4236016065642128 +347.0,2.6145375392579546 +348.0,2.575212715095924 +349.0,3.069997862624027 +350.0,2.6289296067662806 +351.0,3.197016285424341 +352.0,2.639342249904724 +353.0,2.7140655147748722 +354.0,3.3534517675449864 +355.0,2.5604606120727316 +356.0,3.113138969639153 +357.0,2.635764847529261 +358.0,2.557566299269918 +359.0,2.441018772161029 +360.0,2.7310270184007277 +361.0,2.6059483819742457 +362.0,2.441998065448809 +363.0,2.5951662411317775 +364.0,2.43307016405766 +365.0,3.1560269424396488 +366.0,2.522802859342102 +367.0,2.5831412802414273 +368.0,2.682766709466117 +369.0,2.8130733177978366 +370.0,2.759197189255364 +371.0,2.503703797450841 +372.0,2.4806443102058897 +373.0,3.448327896205255 +374.0,2.572974021075919 +375.0,2.412862509879605 +376.0,2.9886910359918057 +377.0,3.0197587589573986 +378.0,2.8209745486052684 +379.0,2.5372643207964893 +380.0,2.5121523904290983 +381.0,2.5255890971346946 +382.0,2.5993789053375367 +383.0,4.30455136582576 +384.0,2.976497959830448 +385.0,3.782580349802201 +386.0,2.797822591924788 +387.0,2.8904901726093604 +388.0,2.476819757852175 +389.0,2.922900542718919 +390.0,2.515578768347833 +391.0,2.6746714837710757 +392.0,2.719220751250045 +393.0,2.7580605700904632 +394.0,2.53514235505862 +395.0,2.4463225355739224 +396.0,2.5097448159534763 +397.0,2.5380654539890983 +398.0,3.149883541557809 +399.0,3.1596728946705714 +400.0,2.666618055036041 +401.0,2.9233904062351432 +402.0,2.436320655051347 +403.0,2.6470516657103236 +404.0,3.0519086882821393 +405.0,2.620836789121882 +406.0,2.47845114873732 +407.0,2.8049317615216918 +408.0,2.9495644592128296 +409.0,2.778564149809284 +410.0,2.6046486052214917 +411.0,2.548585584254494 +412.0,2.5067923621402377 +413.0,2.7943076995336873 +414.0,2.4544556042377006 +415.0,2.440565762455016 +416.0,3.091439788088517 +417.0,2.4786370089347898 +418.0,2.439064174026129 +419.0,2.48754042001024 +420.0,2.639762336081069 +421.0,3.2188620574827445 +422.0,2.6226719619610313 +423.0,2.600925111855636 +424.0,2.4928709528638215 +425.0,2.79387350701153 +426.0,2.4384482110391312 +427.0,2.402513136186481 +428.0,2.7696648933003174 +429.0,2.9857482766068473 +430.0,2.461560171956029 +431.0,2.4498832080701534 +432.0,2.406312899209163 +433.0,2.9152490541044913 +434.0,2.947118177842433 +435.0,3.1832241199485445 +436.0,2.4114633735328725 +437.0,2.414912497188303 +438.0,2.9624399312313354 +439.0,3.11844340966828 +440.0,2.4274802507214126 +441.0,2.6607429815936445 +442.0,2.6047607472972873 +443.0,2.8732432425535626 +444.0,2.4850902970209647 +445.0,2.5705887929015825 +446.0,2.407470590915782 +447.0,2.837123843984492 +448.0,2.5841933217721773 +449.0,3.90570994540224 +450.0,2.5974349752056094 +451.0,3.729765467139794 +452.0,3.693225378591092 +453.0,2.8491941807421775 +454.0,3.030351672373899 +455.0,3.8462109488292446 +456.0,2.516829299708685 +457.0,3.2162542391991162 +458.0,2.4657510657754207 +459.0,2.696753724939712 +460.0,2.835079232949445 +461.0,2.573841107681615 +462.0,2.93078096196145 +463.0,2.458559482385759 +464.0,2.884371477624061 +465.0,2.466149049413366 +466.0,2.401658610726319 +467.0,2.7095830754928882 +468.0,2.934952619683127 +469.0,2.424197689212673 +470.0,2.488544472706194 +471.0,2.557833737257626 +472.0,3.0902371927169923 +473.0,2.444587653387257 +474.0,2.4838723098562885 +475.0,2.7202700170551672 +476.0,4.201197064631561 +477.0,2.56019306976761 +478.0,2.9114670909393037 +479.0,2.9332737722544415 +480.0,3.3112227814271082 +481.0,2.748624036168828 +482.0,2.9399641103053837 +483.0,2.4153074925375586 +484.0,2.5623555788640084 +485.0,2.529856636710341 +486.0,2.732619795674061 +487.0,2.436896478682442 +488.0,3.558539404698635 +489.0,2.704251953838751 +490.0,3.2644448152766654 +491.0,3.068269030008798 +492.0,2.50084493151872 +493.0,2.562169835738141 +494.0,2.4654150962415797 +495.0,2.581495742675046 +496.0,2.4700256486830026 +497.0,3.1690366412820135 +498.0,2.834504421688031 +499.0,4.204905646323175 +500.0,2.459041532742749 +501.0,2.707718647467309 +502.0,2.442781206695132 +503.0,3.064197436709176 +504.0,2.9946300467353404 +505.0,2.4886809395180105 +506.0,2.6256329122692543 +507.0,2.864675795860462 +508.0,2.7143476001959175 +509.0,3.5862871652487573 +510.0,2.7917737968730325 +511.0,3.5711381295254645 +512.0,2.4979253241211024 +513.0,2.728776889194321 +514.0,2.418143548643335 +515.0,2.521867763261224 +516.0,2.677897334873643 +517.0,2.4209142842342044 +518.0,2.4732539432006515 +519.0,3.0004634705907947 +520.0,2.6129089035831403 +521.0,3.4277489918033366 +522.0,2.663215725654352 +523.0,3.080640880727503 +524.0,2.402074455032577 +525.0,2.572633028740927 +526.0,2.690903267818677 +527.0,2.7698032196527502 +528.0,2.4358836432216036 +529.0,3.1853833051200255 +530.0,2.8613227618433834 +531.0,2.6110299471204828 +532.0,2.574301836586967 +533.0,4.296202362168549 +534.0,2.495591824920988 +535.0,4.093220074740016 +536.0,2.4446373507397854 +537.0,2.743224460616252 +538.0,2.8637704224608904 +539.0,2.7557675569698867 +540.0,2.549631764997775 +541.0,2.6591412648393327 +542.0,2.531474062847173 +543.0,2.792846434908904 +544.0,2.4239505430242088 +545.0,2.6833373247458634 +546.0,2.8199917766002507 +547.0,2.7038933509981593 +548.0,2.9667142485203635 +549.0,3.0296245604889243 +550.0,2.491803823558277 +551.0,2.948792597417083 +552.0,2.6522214965387496 +553.0,2.8319800477035906 +554.0,2.7404506681308374 +555.0,2.4293602201679656 +556.0,2.5462191957166502 +557.0,2.413758934925957 +558.0,3.3961726863241073 +559.0,2.405326507191617 +560.0,2.6111835446869494 +561.0,2.5492947611523453 +562.0,2.424203590380967 +563.0,2.4542320074995643 +564.0,2.6404397064935297 +565.0,2.4838296774507436 +566.0,2.405762856751367 +567.0,2.5322985209616458 +568.0,2.4860869362393823 +569.0,2.5127477286497766 +570.0,3.1399030177062133 +571.0,2.5555714788364683 +572.0,2.5038190259589457 +573.0,3.188878315672435 +574.0,2.514015972526781 +575.0,2.5603366641965297 +576.0,2.801413163874829 +577.0,2.4660495041585304 +578.0,2.56220659137031 +579.0,2.9744864460946236 +580.0,2.4054144876873984 +581.0,2.4900195311056184 +582.0,3.496493556806689 +583.0,3.4712243550800785 +584.0,2.4560436122358773 +585.0,2.7834556922886855 +586.0,3.102340538996595 +587.0,2.5374753694731877 +588.0,2.4657804736275577 +589.0,2.5100737290353363 +590.0,2.4907259267352257 +591.0,2.534355319401426 +592.0,2.9122358015461303 +593.0,2.8379764214915117 +594.0,3.3360247144772672 +595.0,2.4624034337202017 +596.0,2.586588626531435 +597.0,2.505406253965264 +598.0,2.6602061156919894 +599.0,2.5652389860996614 +600.0,3.8365000023609674 +601.0,2.5503099733776144 +602.0,2.5055303036884875 +603.0,2.9205924324292862 +604.0,2.5033539493131163 +605.0,2.489989346241979 +606.0,2.538621237624301 +607.0,2.6079139518734396 +608.0,2.608217306648896 +609.0,2.7400174018947854 +610.0,2.9120576721903495 +611.0,2.912309875721998 +612.0,2.4271185790593455 +613.0,2.6244170031891323 +614.0,2.479890236497694 +615.0,2.7602916923704157 +616.0,2.9842323353140783 +617.0,2.41902717741158 +618.0,2.8553111715146926 +619.0,2.5258664258828314 +620.0,2.4569254345736367 +621.0,3.8517019537477264 +622.0,2.6876792753482928 +623.0,2.752197229593298 +624.0,3.122741746823526 +625.0,2.7524447135845334 +626.0,2.9569932618858434 +627.0,3.076161541382932 +628.0,2.7867777422507345 +629.0,2.471960223353474 +630.0,2.7768051583683806 +631.0,2.5448683697434786 +632.0,2.6131418332460443 +633.0,2.764949803302038 +634.0,2.6942453625485037 +635.0,3.228404187716504 +636.0,2.6436067504072542 +637.0,3.4538456713712584 +638.0,2.650392958324952 +639.0,2.4264706774066176 +640.0,2.521450465445232 +641.0,2.4186816600943315 +642.0,3.1941886935378556 +643.0,2.474335996412735 +644.0,2.783137386915004 +645.0,2.446658782949205 +646.0,2.4729206001950796 +647.0,2.5063461557967472 +648.0,3.053532599042593 +649.0,2.6177366117046335 +650.0,2.635775753844874 +651.0,2.764844880294743 +652.0,2.661269429517379 +653.0,2.904421461602077 +654.0,2.4637948510412895 +655.0,3.8032333535412373 +656.0,2.850170447069249 +657.0,2.478943423885907 +658.0,2.7320876965837333 +659.0,3.297721637441146 +660.0,2.532852468925799 +661.0,2.5069669080428043 +662.0,3.100638143826722 +663.0,2.6743962182353567 +664.0,2.4260354826386448 +665.0,2.6297603315218057 +666.0,3.2254031464053536 +667.0,2.5798310928548154 +668.0,2.446922947201279 +669.0,2.67420796960319 +670.0,2.8797387730860295 +671.0,3.0621888338919745 +672.0,4.580153945041475 +673.0,2.858491006477746 +674.0,3.5603454307920503 +675.0,3.1719589718325 +676.0,4.278742283323891 +677.0,3.410994095212799 +678.0,3.405816321355097 +679.0,5.721411356630496 +680.0,4.029453206509935 +681.0,3.7070856889818637 +682.0,2.844867569990036 +683.0,3.1964388517046127 +684.0,2.5506268945945654 +685.0,3.0875214478707007 +686.0,2.9311490455386395 +687.0,4.963285114409262 +688.0,3.003144274254174 +689.0,3.4920168158257736 +690.0,3.250865177994359 +691.0,4.097851406339577 +692.0,2.6941136891521493 +693.0,3.30060723634036 +694.0,3.097695453521203 +695.0,3.536826504499236 +696.0,5.422785990331934 +697.0,3.6766307362530823 +698.0,2.540939338727318 +699.0,2.9456037598251292 +700.0,3.104092549279369 +701.0,3.0885261230348258 +702.0,4.2229949890784155 +703.0,3.2010134972358566 +704.0,3.797754882487591 +705.0,3.2048042587452255 +706.0,5.769382131869257 +707.0,2.561236197403394 +708.0,2.7117414017765684 +709.0,3.06276568914892 +710.0,4.168570905937854 +711.0,2.9505718165359176 +712.0,3.7195992866744243 +713.0,4.245891302253541 +714.0,2.852855266920113 +715.0,3.3532181276348054 +716.0,3.199068879437806 +717.0,3.3443039717367853 +718.0,3.317880162500361 +719.0,5.7615582178583695 +720.0,3.2474350371119223 +721.0,2.960661604311327 +722.0,3.2557166003387246 +723.0,3.072633016610757 +724.0,4.347617268895256 +725.0,4.5362963387607085 +726.0,3.1332713867720794 +727.0,3.568828539272932 +728.0,6.570776411902189 +729.0,2.97052149645164 +730.0,2.4007052905283395 +731.0,2.550062015946479 +732.0,2.9854573193612906 +733.0,2.541261661094972 +734.0,2.6065003702080283 +735.0,2.9966846714528685 +736.0,3.754516585547965 +737.0,2.4054045848703844 +738.0,2.6034133893123452 +739.0,3.527176591881763 +740.0,2.7008808628169736 +741.0,3.2783121137313 +742.0,3.27792264243326 +743.0,2.547780615592596 +744.0,2.450853395813067 +745.0,2.6724641663199846 +746.0,2.522777342442759 +747.0,2.7081876084431022 +748.0,2.5542658943614915 +749.0,2.636162078472015 +750.0,3.002155815420478 +751.0,2.487733141582919 +752.0,2.5887082635542265 +753.0,2.4657020321496597 +754.0,2.8954719383077645 +755.0,2.4511958562668053 +756.0,2.637153639422001 +757.0,2.565412685049657 +758.0,2.7172633706735945 +759.0,3.100587526623352 +760.0,2.6877388465372745 +761.0,2.523084768916245 +762.0,3.0278378562108683 +763.0,2.7179408413591646 +764.0,2.970003464615792 +765.0,2.5472280310558264 +766.0,2.6434443113528685 +767.0,2.8541477188279507 +768.0,3.9014707596120157 +769.0,3.0592470467345487 +770.0,2.520587983330813 +771.0,3.0177941132942747 +772.0,4.305581966999304 +773.0,2.975018009275228 +774.0,2.4182550087917565 +775.0,2.7257258334473526 +776.0,2.6295882982688625 +777.0,2.42304472029505 +778.0,2.9612478117916687 +779.0,3.031802105526528 +780.0,2.410479063511649 +781.0,2.5733826410110123 +782.0,2.5713163647369566 +783.0,2.42910849387167 +784.0,2.5526518559831604 +785.0,2.5837551086069355 +786.0,2.825085755992637 +787.0,2.9538742954332515 +788.0,2.5085473991718943 +789.0,2.45580611982945 +790.0,3.4468808008319662 +791.0,2.8040065757828434 +792.0,2.808917597575283 +793.0,2.529562748069461 +794.0,3.3972766805171037 +795.0,2.409371685770826 +796.0,2.417832187748728 +797.0,2.4050427642959398 +798.0,2.7646800054540597 +799.0,3.1033750159001476 +800.0,2.5481593095484314 +801.0,2.5307094195969135 +802.0,2.4540998147208457 +803.0,2.5391352840826333 +804.0,2.543656879345639 +805.0,2.5622798063643564 +806.0,2.435861220504488 +807.0,2.4997337193704277 +808.0,2.6538668034449917 +809.0,3.2759674597892765 +810.0,2.766816390795791 +811.0,2.46917482662581 +812.0,3.8000422891416337 +813.0,2.860655134745271 +814.0,2.5629038908983945 +815.0,2.4366201925998747 +816.0,2.7113670750680745 +817.0,3.010919328842461 +818.0,2.4979461440807498 +819.0,2.444528670542328 +820.0,2.621341016295401 +821.0,3.3472736125269 +822.0,2.639306330889865 +823.0,2.4700425480098662 +824.0,3.127517468817649 +825.0,2.9360538437372026 +826.0,2.4668697972138447 +827.0,2.41491282234661 +828.0,2.4220023163585562 +829.0,2.622179332282381 +830.0,2.418764099832847 +831.0,2.8205591265995937 +832.0,2.4371537635856924 +833.0,2.7947434221339966 +834.0,2.9070505920296794 +835.0,2.774408181139173 +836.0,2.4919144176960164 +837.0,2.642124068829777 +838.0,2.4245097099240693 +839.0,2.5358712980912976 +840.0,2.6033169382225836 +841.0,2.6622789115368066 +842.0,2.6585930760725422 +843.0,2.5531132384541175 +844.0,2.7073290245195345 +845.0,2.9625027677105633 +846.0,2.8670958684329237 +847.0,2.7314457532555285 +848.0,2.633753945070921 +849.0,2.6237861703418424 +850.0,3.6297869467792445 +851.0,2.8573721455961496 +852.0,2.4376185256975456 +853.0,2.7125210158022655 +854.0,2.730644928294938 +855.0,2.509590748181401 +856.0,3.324773143763019 +857.0,3.0093956412336436 +858.0,2.580085723825211 +859.0,2.494317161899789 +860.0,2.7517994504559935 +861.0,2.453901881873978 +862.0,2.4286943079401073 +863.0,2.526310948418489 +864.0,2.496570982220647 +865.0,2.4732927929816753 +866.0,2.4541307353789095 +867.0,3.050856803783854 +868.0,2.6912434237807776 +869.0,3.168396698050319 +870.0,2.5470956301592365 +871.0,4.098767574822266 +872.0,2.8110401051517537 +873.0,2.760256828901803 +874.0,2.7935500195255116 +875.0,2.7901787619094915 +876.0,2.4464093068288544 +877.0,2.401501602348128 +878.0,2.551473066190156 +879.0,3.3108302218660546 +880.0,3.9338037284602203 +881.0,3.6081685854470997 +882.0,2.6821095449606243 +883.0,2.611365120577939 +884.0,2.438300450048118 +885.0,2.628212631190801 +886.0,2.421495068806825 +887.0,3.188889892517156 +888.0,2.672054540054465 +889.0,3.084753912131668 +890.0,2.5570588195624815 +891.0,2.574927974556492 +892.0,2.6259475649237114 +893.0,2.5979608859890906 +894.0,2.6549687879933934 +895.0,2.4195295370560084 +896.0,2.648383998682585 +897.0,2.796290083078597 +898.0,2.752126864004366 +899.0,2.6106735079370416 +900.0,2.4060260770499418 +901.0,2.4654660730386775 +902.0,2.6211206728735044 +903.0,2.5720229242054424 +904.0,2.4445530040802437 +905.0,2.4678039587522496 +906.0,2.519376472081296 +907.0,2.422749319994107 +908.0,3.220845036613227 +909.0,2.6346413343249058 +910.0,2.8871441230834467 +911.0,3.234317394002085 +912.0,2.6526656548802072 +913.0,2.618588533719172 +914.0,2.643240559279472 +915.0,3.0144234388750117 +916.0,2.5184859733250704 +917.0,2.407847680874534 +918.0,2.547478446032869 +919.0,2.9882261284434346 +920.0,2.830567202212543 +921.0,2.752845221051684 +922.0,2.5407075090884326 +923.0,2.5007519832782275 +924.0,3.1747395987148077 +925.0,2.514404261814075 +926.0,2.8339842108157813 +927.0,2.58145793030777 +928.0,2.6702672335001543 +929.0,2.598940608814229 +930.0,2.618804059493328 +931.0,2.4338510993055653 +932.0,2.472486866049798 +933.0,2.646085104431161 +934.0,2.4851214594095885 +935.0,2.5062411399660363 +936.0,2.946254479429389 +937.0,2.771359018452289 +938.0,2.7200335814584364 +939.0,2.7299761798440807 +940.0,2.7088951218583803 +941.0,2.425375839306913 +942.0,3.0424524984389523 +943.0,3.0746652170048367 +944.0,3.9103455274446035 +945.0,3.13334724068042 +946.0,2.416372431241489 +947.0,2.6062295736674064 +948.0,2.634123644191183 +949.0,3.849257974169806 +950.0,2.5991553845179824 +951.0,2.435595856682105 +952.0,3.1731819025096635 +953.0,2.6917217047605084 +954.0,3.445173928167665 +955.0,2.8520483455991683 +956.0,2.628930744210899 +957.0,3.0110441359108187 +958.0,2.621610825020615 +959.0,2.9091091152337225 +960.0,2.7026581469969355 +961.0,2.538258956372272 +962.0,2.638742962286885 +963.0,2.885409632753131 +964.0,5.29309439830979 +965.0,2.6549790986879165 +966.0,2.6548249025542003 +967.0,2.51685484179599 +968.0,2.663589309167492 +969.0,3.1667504748142834 +970.0,2.523114925363432 +971.0,3.126670354893667 +972.0,2.4261055426464937 +973.0,2.6872065573404 +974.0,2.892001504477092 +975.0,2.9389645101046904 +976.0,2.465657646377553 +977.0,2.469940520098654 +978.0,2.4599980410504547 +979.0,2.428568024470574 +980.0,2.760024674056286 +981.0,2.588179251093944 +982.0,3.0072485035173555 +983.0,2.43036372419237 +984.0,2.745047172073358 +985.0,2.4374044046044796 +986.0,2.4937950074972117 +987.0,2.73712993756065 +988.0,3.403588501542122 +989.0,3.348744481116622 +990.0,2.408363925473317 +991.0,2.5602505091259835 +992.0,2.7263966958063044 +993.0,3.2997456486548673 +994.0,2.4432624187905088 +995.0,3.372415267856358 +996.0,2.5916133095650298 +997.0,2.518262590613362 +998.0,2.483329842077036 +999.0,2.776674531371559 +1000.0,2.524156759247948 +1001.0,2.6525025967915905 +1002.0,3.8322621968769566 +1003.0,2.6529149292553273 +1004.0,2.692398720435959 +1005.0,2.765282940217196 +1006.0,2.5561644286983904 +1007.0,2.898550306258906 +1008.0,2.476899776223999 +1009.0,2.5706205769720616 +1010.0,3.0625776653953203 +1011.0,2.672653011345917 +1012.0,2.946738426731437 +1013.0,2.9161633481022142 +1014.0,2.485968508917957 +1015.0,3.091105447097434 +1016.0,2.8167436635947958 +1017.0,2.4567005585528476 +1018.0,2.524849852051421 +1019.0,2.489080348523381 +1020.0,2.980164643029485 +1021.0,2.6137437059734303 +1022.0,2.509683478222368 +1023.0,2.6720335351380453 +1024.0,2.466291503988917 +1025.0,2.573149891338441 +1026.0,2.542749877009107 +1027.0,2.609617959017172 +1028.0,3.2937176283135177 +1029.0,2.5167701103125193 +1030.0,2.7043914543114105 +1031.0,2.717455532580847 +1032.0,3.26337114241599 +1033.0,2.7030607073344033 +1034.0,3.1271996080146316 +1035.0,2.442662763538561 +1036.0,2.4228377252732094 +1037.0,2.554510277373112 +1038.0,3.3735838263652793 +1039.0,3.204174500339654 +1040.0,2.710436438939568 +1041.0,2.4306952558375485 +1042.0,2.4911008300441 +1043.0,2.7783539610586567 +1044.0,2.40463231319207 +1045.0,2.414094885522233 +1046.0,2.493056327870509 +1047.0,2.5061721261532752 +1048.0,3.4803583223073904 +1049.0,2.9335981013092844 +1050.0,2.4300475712283776 +1051.0,3.333299470319119 +1052.0,3.068190467984793 +1053.0,2.811503936411693 +1054.0,3.0019299335035186 +1055.0,2.5143271845099564 +1056.0,2.494518621798564 +1057.0,2.767585177841081 +1058.0,2.4444742542747098 +1059.0,2.4319151120339426 +1060.0,2.8219771549465347 +1061.0,2.9390071441324768 +1062.0,2.418100229409463 +1063.0,3.0798228909986967 +1064.0,2.4928489107918512 +1065.0,2.7435690411103137 +1066.0,2.6824874026365313 +1067.0,2.5130679766656407 +1068.0,2.748294189667724 +1069.0,2.504202710305275 +1070.0,2.520307980183039 +1071.0,2.515807545663089 +1072.0,2.624937289458356 +1073.0,2.510551497151221 +1074.0,3.13113480937189 +1075.0,2.6057123069557955 +1076.0,2.8187782944334376 +1077.0,2.477149093238399 +1078.0,2.9645968480406806 +1079.0,2.904166182038682 +1080.0,3.193407509980513 +1081.0,2.469995353366714 +1082.0,2.831841558914289 +1083.0,2.5666843300633713 +1084.0,2.7822256372484477 +1085.0,2.5354835967852942 +1086.0,2.4836561941116493 +1087.0,2.69188256087496 +1088.0,3.4540568569674495 +1089.0,2.970985058634275 +1090.0,2.65530574297443 +1091.0,2.6576916190720743 +1092.0,2.784543087784889 +1093.0,2.620375964294272 +1094.0,2.8480248065754963 +1095.0,2.4853676954506696 +1096.0,2.7936646386254913 +1097.0,2.4478410779405673 +1098.0,3.3442674119951015 +1099.0,4.003560911316952 +1100.0,2.4856854366329304 +1101.0,2.964743842986083 +1102.0,2.836676439199091 +1103.0,2.7373012568598343 +1104.0,2.7764426872936627 +1105.0,3.0108203121878043 +1106.0,2.473778801904673 +1107.0,2.4335409172253186 +1108.0,2.4893994287112164 +1109.0,2.540540401378249 +1110.0,3.189332443858953 +1111.0,2.8265245941911394 +1112.0,2.4886216797064065 +1113.0,2.553442355118158 +1114.0,2.805858734470386 +1115.0,2.864497656052089 +1116.0,2.5249052832784753 +1117.0,3.3787730219494416 +1118.0,2.4134075182219967 +1119.0,2.5254535641513547 +1120.0,2.5723107622987302 +1121.0,2.7433160376536674 +1122.0,3.350981450321083 +1123.0,2.6459982052880315 +1124.0,2.582093312925195 +1125.0,2.4868775649428736 +1126.0,3.052635877702087 +1127.0,2.6985996353974677 +1128.0,2.5025329934260845 +1129.0,2.6727550081784517 +1130.0,3.5785755504569106 +1131.0,2.4869702667292013 +1132.0,2.691472327905768 +1133.0,2.4145305971809825 +1134.0,2.9506948983196546 +1135.0,3.401179794457616 +1136.0,2.540927451688719 +1137.0,2.886619349895328 +1138.0,3.379760447872314 +1139.0,2.7349772727496022 +1140.0,3.5134263150634384 +1141.0,2.552934330886979 +1142.0,2.7155142083155326 +1143.0,3.226243417783793 +1144.0,2.4738278004302563 +1145.0,2.4113474481381902 +1146.0,2.873055502322489 +1147.0,2.42456227099102 +1148.0,2.431651948310737 +1149.0,2.471889028570196 +1150.0,2.722718023001818 +1151.0,3.286177960219122 +1152.0,2.5490594512314217 +1153.0,2.433409618892358 +1154.0,2.5054689023622396 +1155.0,2.8601073234426884 +1156.0,2.433727214706134 +1157.0,3.018419142865174 +1158.0,2.5317999262351054 +1159.0,3.624765398864356 +1160.0,2.674463889775237 +1161.0,3.3365713074519783 +1162.0,2.9239896457195944 +1163.0,3.1537662113052543 +1164.0,2.9347864198555653 +1165.0,2.9808548890889384 +1166.0,3.0838319171845265 +1167.0,2.405342414867688 +1168.0,2.5176147807974627 +1169.0,2.8273595059637637 +1170.0,2.8510066677887074 +1171.0,2.9569540265652288 +1172.0,2.5171988848670064 +1173.0,2.8352913720305573 +1174.0,4.756873700453489 +1175.0,2.4504932917818754 +1176.0,2.7441594082323157 +1177.0,2.811851866896028 +1178.0,2.517951105014213 +1179.0,3.2233790496217343 +1180.0,2.5282446639091867 +1181.0,2.6077092009539684 +1182.0,2.878486285476563 +1183.0,3.0929193325237083 +1184.0,3.1440896313051794 +1185.0,2.8920753090621414 +1186.0,2.8555534053482603 +1187.0,3.4137583048469464 +1188.0,2.4882026234870964 +1189.0,3.267260102651099 +1190.0,2.8850487977237282 +1191.0,2.478377618992386 +1192.0,2.7791297779501956 +1193.0,3.3981223498292406 +1194.0,2.5102922510712737 +1195.0,2.712806561943065 +1196.0,2.7560479311756567 +1197.0,3.125842793406671 +1198.0,2.414810175363145 +1199.0,2.790067013624297 +1200.0,3.164447269858389 +1201.0,2.536149182883376 +1202.0,2.7458344014396427 +1203.0,2.445528164021078 +1204.0,2.472192668957704 +1205.0,2.4472763092434464 +1206.0,2.685034398859209 +1207.0,3.162232169044308 +1208.0,2.418230319955053 +1209.0,2.5994663802292823 +1210.0,2.7354123114819404 +1211.0,2.5085491667659667 +1212.0,2.7666788104965643 +1213.0,2.5460415007011434 +1214.0,2.786442412956536 +1215.0,2.857277411289053 +1216.0,2.5714060407730175 +1217.0,2.9785012466838423 +1218.0,2.537350585436812 +1219.0,2.6165207032588813 +1220.0,3.0003988623679185 +1221.0,2.6254044689452547 +1222.0,2.787803691306215 +1223.0,2.4252544460056846 +1224.0,2.9225814477305176 +1225.0,3.0743949754533366 +1226.0,2.443585454865718 +1227.0,3.2398606685315783 +1228.0,3.2397228877689863 +1229.0,2.540240800845226 +1230.0,2.8855964392406914 +1231.0,2.7126613186320157 +1232.0,2.5490847064600066 +1233.0,2.6602318769298794 +1234.0,3.11933225748602 +1235.0,2.457320056717537 +1236.0,2.9865586549570518 +1237.0,2.6283334703787284 +1238.0,2.447516761710956 +1239.0,3.3264672215422335 +1240.0,2.6943061931781624 +1241.0,2.597612939211194 +1242.0,2.7229666502660947 +1243.0,2.5427440976333133 +1244.0,2.7077482472833623 +1245.0,2.5132724985015646 +1246.0,2.4082899131577915 +1247.0,2.887319918475158 +1248.0,2.4985502534857824 +1249.0,2.687918166655229 +1250.0,2.4121931432830808 +1251.0,2.773260391240996 +1252.0,2.65451026644347 +1253.0,2.610851678626691 +1254.0,3.157164652301791 +1255.0,2.8869798019336335 +1256.0,2.445042002179473 +1257.0,2.964789918643254 +1258.0,2.728492307390477 +1259.0,2.6303809506337372 +1260.0,2.623943788053626 +1261.0,2.580950437496971 +1262.0,2.7320266701653173 +1263.0,2.7546220461746698 +1264.0,2.4090041830158957 +1265.0,3.1973654353833316 +1266.0,2.4831735731378117 +1267.0,2.567139897612737 +1268.0,3.3861471639220024 +1269.0,2.835846421950449 +1270.0,2.409256869658514 +1271.0,2.4222822468458243 +1272.0,2.411442485954873 +1273.0,2.4804706635546787 +1274.0,2.784778432077373 +1275.0,2.7691563387400664 +1276.0,2.505525194392675 +1277.0,2.8294949839869408 +1278.0,3.2312539510495033 +1279.0,2.747215742005364 +1280.0,2.5152375949560994 +1281.0,2.5597425795399626 +1282.0,2.4304120877529014 +1283.0,4.449485607344537 +1284.0,2.7060627435436055 +1285.0,2.4151457766554145 +1286.0,2.419272724894973 +1287.0,2.5582560827772958 +1288.0,2.519240291362126 +1289.0,2.437852104260657 +1290.0,2.4981202733428813 +1291.0,2.580870361053256 +1292.0,2.4978873436884483 +1293.0,3.1501163183697765 +1294.0,2.9190809043113646 +1295.0,3.1895935884742976 +1296.0,2.90946573010006 +1297.0,3.0483024019652376 +1298.0,2.5426327373953153 +1299.0,2.984702377199276 +1300.0,2.7160471408172393 +1301.0,2.694682345590127 +1302.0,2.744518014101399 +1303.0,2.4098532108212747 +1304.0,2.858698411872399 +1305.0,2.4863902898433308 +1306.0,2.5828560219652807 +1307.0,2.4012831316221988 +1308.0,2.536344849282672 +1309.0,2.4145372835370784 +1310.0,2.746702682228297 +1311.0,3.1021409236673554 +1312.0,2.7444071018894327 +1313.0,2.5068279103080737 +1314.0,2.7381404276135792 +1315.0,2.4549085327412414 +1316.0,2.868373386998026 +1317.0,2.70657778934979 +1318.0,2.639945920824991 +1319.0,2.533854205235659 +1320.0,2.4518717418899536 +1321.0,2.9880969423501136 +1322.0,2.5900582564958747 +1323.0,3.145945371891192 +1324.0,2.500478375427461 +1325.0,2.5997839393418296 +1326.0,2.5312889164459462 +1327.0,2.434294226649667 +1328.0,2.5006730801153965 +1329.0,2.84972777630483 +1330.0,2.4754969796001594 +1331.0,3.9350747689557384 +1332.0,3.720582975850543 +1333.0,2.4695027228107818 +1334.0,2.565742471481362 +1335.0,2.4992078361045555 +1336.0,2.404296879265762 +1337.0,2.408310115573593 +1338.0,2.8638551781593766 +1339.0,2.4760693106100318 +1340.0,2.7156999995958793 +1341.0,3.0690758732933485 +1342.0,2.430487266287878 +1343.0,3.336219122104067 +1344.0,2.8995639879419874 +1345.0,3.686780777316071 +1346.0,3.7143269030712087 +1347.0,4.081352260117076 +1348.0,2.475650781959548 +1349.0,2.4821204669098327 +1350.0,2.448366517346343 +1351.0,2.600662169287159 +1352.0,3.2163235888911137 +1353.0,3.630746432071934 +1354.0,2.5103519717853526 +1355.0,4.458943024707011 +1356.0,2.4644098932032854 +1357.0,2.5908161773225493 +1358.0,2.4203036379743597 +1359.0,2.654009501627878 +1360.0,3.22631686574046 +1361.0,2.5816135485326845 +1362.0,2.6354026567350872 +1363.0,2.5232992403613776 +1364.0,2.4020438567885107 +1365.0,2.7616902768633733 +1366.0,2.537583395199312 +1367.0,2.4177372272692574 +1368.0,3.0566043378089693 +1369.0,3.007535258971668 +1370.0,2.4369598938513226 +1371.0,2.5439927512223375 +1372.0,3.1341579974055005 +1373.0,3.5308563525464205 +1374.0,2.5203559724916165 +1375.0,3.0474579784719484 +1376.0,3.099104170895956 +1377.0,2.65758180275327 +1378.0,2.7818524592245613 +1379.0,2.524141266352839 +1380.0,2.6840610626631087 +1381.0,2.5604991730380613 +1382.0,2.8167199715934195 +1383.0,2.4979371634722787 +1384.0,2.685562220738796 +1385.0,2.431815993309926 +1386.0,2.4727726438491335 +1387.0,2.424510415143005 +1388.0,3.3766094021454016 +1389.0,2.559421781182352 +1390.0,2.6624713057008416 +1391.0,2.5745207719322822 +1392.0,2.6725628612410577 +1393.0,2.762223574522877 +1394.0,2.4414463322891065 +1395.0,2.5803046936011604 +1396.0,3.1890135241485154 +1397.0,2.6137686232234127 +1398.0,2.707362446770853 +1399.0,3.1146343177493043 diff --git a/tests/fixtures/catalogs/case_025_background_low_2200d.csv b/tests/fixtures/catalogs/case_025_background_low_2200d.csv new file mode 100644 index 0000000..d1e5efa --- /dev/null +++ b/tests/fixtures/catalogs/case_025_background_low_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.020165782265767 +1.0,2.2196372332038767 +2.0,2.030572425708803 +3.0,2.299565462188909 +4.0,2.288853861558433 +5.0,3.7234720594329445 +6.0,2.1663804575509213 +7.0,2.0121947997180256 +8.0,3.1271976797449 +9.0,2.548775033038698 +10.0,2.323155836659541 +11.0,2.8187412803516363 +12.0,2.0734850509518608 +13.0,2.011773323590604 +14.0,2.405082333339328 +15.0,2.1576951069438475 +16.0,2.386911920758068 +17.0,2.0085836439123037 +18.0,2.1611217964730582 +19.0,2.7897319619817296 +20.0,2.168712882177605 +21.0,2.135282607975899 +22.0,2.721434002478691 +23.0,2.5081277759417646 +24.0,3.0493699041082927 +25.0,2.2788268094587756 +26.0,2.2381111114360115 +27.0,2.0087430545752833 +28.0,2.230770785553401 +29.0,2.2571529613701253 +30.0,2.2765175680774608 +31.0,2.2952583569861904 +32.0,2.054589956457032 +33.0,2.3824290598467037 +34.0,2.5317532196946466 +35.0,2.350701872549422 +36.0,3.37989423449158 +37.0,3.0716972805876113 +38.0,2.3921791702760884 +39.0,2.1362330987434 +40.0,2.5372960591161435 +41.0,2.5930162983238643 +42.0,2.3541585483898904 +43.0,2.2218368163553617 +44.0,2.1055453584329604 +45.0,3.0860391948734014 +46.0,2.674766715448497 +47.0,2.210329618218138 +48.0,2.4058292029156076 +49.0,2.47826624268909 +50.0,2.400686742499089 +51.0,2.1762269535900898 +52.0,2.533533901325889 +53.0,2.4288941858430793 +54.0,2.2106367379829144 +55.0,2.2387976397086566 +56.0,2.081897376577411 +57.0,2.6457778802166785 +58.0,2.503920526987306 +59.0,2.0221299844040765 +60.0,2.1311543584870973 +61.0,2.104823173849287 +62.0,2.417389092510702 +63.0,2.1598677935407857 +64.0,2.0543228684375525 +65.0,2.1882194921321476 +66.0,2.4348110386224073 +67.0,2.502595037073052 +68.0,2.3755072049242845 +69.0,2.128183895956144 +70.0,2.062706765269718 +71.0,2.7269692858271584 +72.0,2.1965129776377403 +73.0,2.2406621158601636 +74.0,2.2173760458595067 +75.0,2.918304686823882 +76.0,2.543730940353546 +77.0,2.254920478352401 +78.0,2.0134616640319978 +79.0,2.3634565857876666 +80.0,2.284607588238506 +81.0,3.2818438544776547 +82.0,2.2283828384432014 +83.0,2.0356128915422596 +84.0,2.0686655869628985 +85.0,2.4077172892786254 +86.0,2.1024071137099827 +87.0,2.43577319069662 +88.0,2.8829230675642283 +89.0,2.139930522224305 +90.0,2.0658988069428124 +91.0,2.1592414931981083 +92.0,2.1956396615858207 +93.0,2.5110805414722326 +94.0,2.572095395195361 +95.0,2.032558539827273 +96.0,2.070242254895919 +97.0,2.3563241736229465 +98.0,2.0624183242082177 +99.0,2.0365944744600624 +100.0,2.1172930073216762 +101.0,2.0885282017928017 +102.0,2.5104947166522837 +103.0,2.036814900954654 +104.0,2.2824928141528096 +105.0,2.1655966157576025 +106.0,2.1936651529539697 +107.0,2.5306616225736 +108.0,2.207174203896127 +109.0,3.160826595705411 +110.0,2.0538987042623016 +111.0,2.0095958182066838 +112.0,2.8447869150554568 +113.0,2.105521844745487 +114.0,2.426104634866463 +115.0,2.176894376612188 +116.0,2.4442189529441416 +117.0,2.0138361849454727 +118.0,2.2582220360734193 +119.0,2.3921014893007655 +120.0,2.049023736558906 +121.0,2.012468107606409 +122.0,3.332054160753271 +123.0,2.7106662741556877 +124.0,2.4634035525515263 +125.0,2.1743044417426876 +126.0,2.146631729009596 +127.0,2.150411449995922 +128.0,2.0654290527641743 +129.0,2.4212213312348774 +130.0,2.0254144160077403 +131.0,2.302165673898095 +132.0,2.31277280624582 +133.0,2.5734795464412232 +134.0,2.4986471635289336 +135.0,2.207791624453338 +136.0,2.3184082804473327 +137.0,2.6296043948399213 +138.0,2.1655486223714036 +139.0,2.163616281873025 +140.0,3.368003895424916 +141.0,2.3687676904943444 +142.0,2.406758812814731 +143.0,2.3981624456399837 +144.0,2.032077939885114 +145.0,2.107407596867712 +146.0,3.0135145904778744 +147.0,2.455108580499019 +148.0,2.0224464735600476 +149.0,2.112985972382236 +150.0,2.178131900228363 +151.0,2.298274715167321 +152.0,2.2254328182224117 +153.0,2.007402410613959 +154.0,2.388029858667537 +155.0,3.0095573476971293 +156.0,3.146562981143787 +157.0,2.724324116997556 +158.0,2.3085783461140896 +159.0,2.0537966188167665 +160.0,2.3187490404713755 +161.0,2.193928256952133 +162.0,2.0107464143598683 +163.0,2.0391322725661873 +164.0,2.3082576175468974 +165.0,2.114401650956483 +166.0,2.063048235204895 +167.0,2.0146096360747574 +168.0,2.0308911210463254 +169.0,2.1845999116016004 +170.0,2.4867763127106577 +171.0,2.1615044653309883 +172.0,2.493941248596168 +173.0,2.335322130173912 +174.0,2.6782294231772696 +175.0,2.43161932697621 +176.0,2.4987440077969394 +177.0,2.731582476984226 +178.0,2.103887757747645 +179.0,2.3431744452304395 +180.0,2.578551213323289 +181.0,2.6625126213920955 +182.0,2.630050257616371 +183.0,2.8109155305582316 +184.0,2.4182769782292994 +185.0,2.269417278520925 +186.0,2.063641420673425 +187.0,2.0763254872711197 +188.0,2.0983178643725027 +189.0,2.1091828383857463 +190.0,2.126376003045063 +191.0,2.1161088021889247 +192.0,2.561628728595297 +193.0,2.200572899840156 +194.0,2.2908483271613416 +195.0,3.110601918407382 +196.0,2.01592937355224 +197.0,2.7271782028728886 +198.0,2.3604776416839957 +199.0,2.048736005841944 +200.0,2.364762162057315 +201.0,2.577432881855839 +202.0,2.7290192535894047 +203.0,2.446743276668467 +204.0,2.059491879993082 +205.0,2.3188433093720757 +206.0,2.3724246802552136 +207.0,2.029509636186045 +208.0,2.0969333294154087 +209.0,2.656602429532522 +210.0,2.1730870453439715 +211.0,2.5784563931505358 +212.0,3.2149205984931255 +213.0,2.2129702725577034 +214.0,2.33426909088294 +215.0,2.05085117604668 +216.0,2.1702826031686104 +217.0,2.113092908755538 +218.0,2.2745529286010018 +219.0,2.2877985087435295 +220.0,2.5222083573840113 +221.0,2.027285690407708 +222.0,2.7634516293541944 +223.0,2.017040974622858 +224.0,2.434982672339618 +225.0,2.0773798088041695 +226.0,2.076048138335309 +227.0,2.082876379317796 +228.0,2.108594831376055 +229.0,2.4850275129545465 +230.0,2.0885690685127685 +231.0,2.199837207440799 +232.0,2.5754854114736263 +233.0,2.24237242806557 +234.0,2.7170704120980442 +235.0,3.3469435693217404 +236.0,2.454347387985646 +237.0,2.9538166456372217 +238.0,2.066950063362218 +239.0,2.000881321991568 +240.0,2.1461523350835137 +241.0,2.007235469540984 +242.0,2.0252394834954974 +243.0,2.3390249731225827 +244.0,2.0199938308989562 +245.0,2.3206621164429384 +246.0,2.80834842599368 +247.0,2.128520781617598 +248.0,2.1119567779073294 +249.0,2.0944352736680725 +250.0,2.063883710020362 +251.0,2.5847798442812437 +252.0,2.1551110707015213 +253.0,3.1115421156035143 +254.0,2.008316466478086 +255.0,3.2902298185057854 +256.0,2.1429250330206884 +257.0,4.12080162418758 +258.0,2.021142294742933 +259.0,2.494744685437099 +260.0,2.156650506386358 +261.0,2.2651084061079887 +262.0,2.0687016414128467 +263.0,2.379607457596424 +264.0,2.3088501728466886 +265.0,2.3372814226624254 +266.0,2.739881225701337 +267.0,2.0149619325156043 +268.0,3.212852926283815 +269.0,2.0532365445118117 +270.0,2.1065186513912044 +271.0,2.084201903662211 +272.0,2.2287511550555066 +273.0,2.426032409989335 +274.0,2.126133713490058 +275.0,2.7569710574836153 +276.0,2.111749088743564 +277.0,2.147379619019248 +278.0,2.163029858318187 +279.0,2.844845066802916 +280.0,2.5651549575549755 +281.0,2.883050666973283 +282.0,2.5198913630377553 +283.0,2.0553886661092724 +284.0,2.111884262169016 +285.0,2.326522035215809 +286.0,2.7743853314970846 +287.0,2.0909718074303267 +288.0,2.14794702613658 +289.0,2.190194980637292 +290.0,2.224409415408402 +291.0,2.375664261748479 +292.0,2.987651416286902 +293.0,3.295978370176155 +294.0,2.2194738270916767 +295.0,2.665507901852451 +296.0,2.189647776637812 +297.0,2.0861325976460825 +298.0,2.015646837941055 +299.0,2.3918097290342066 +300.0,2.3866563430851735 +301.0,2.3941472229560734 +302.0,2.1078590357052054 +303.0,2.781358820174762 +304.0,2.7555725977717263 +305.0,2.293690921339323 +306.0,2.778697174283137 +307.0,2.2235138407889683 +308.0,2.2680082587121877 +309.0,2.107845578316028 +310.0,2.2235588748247475 +311.0,2.237335312521889 +312.0,2.1650149064096067 +313.0,2.378412702686603 +314.0,2.1622148051184324 +315.0,2.1066510707093635 +316.0,2.0897169752306195 +317.0,2.436394964487004 +318.0,2.0753443195643024 +319.0,2.0729516826638976 +320.0,2.0195067814489716 +321.0,2.3596530978111594 +322.0,2.12181839893117 +323.0,2.1123685567121715 +324.0,3.3381907729419504 +325.0,2.456860460965779 +326.0,2.7619015265569304 +327.0,2.181736201790651 +328.0,2.101240183950234 +329.0,2.131755661909045 +330.0,2.809366382565342 +331.0,2.1240337143345114 +332.0,2.047700782047522 +333.0,2.0714254056458046 +334.0,2.3599525394104104 +335.0,2.2425893501538514 +336.0,2.1740545171923924 +337.0,2.212977408366978 +338.0,2.032550603016724 +339.0,3.677404922136665 +340.0,2.128602131202905 +341.0,2.2443541462013123 +342.0,2.200594153179506 +343.0,2.424478662398556 +344.0,2.3871213234822455 +345.0,2.4134798451168558 +346.0,2.2672103364603413 +347.0,2.0532024991101028 +348.0,2.045125897589546 +349.0,2.576000702770353 +350.0,2.0372299131656906 +351.0,2.02916335398151 +352.0,2.2303839578275406 +353.0,2.0738570388607487 +354.0,2.1502373921641236 +355.0,2.03007805644572 +356.0,2.0983884920496068 +357.0,2.0480041625434513 +358.0,2.297045042688657 +359.0,2.5480937418627083 +360.0,2.246101494324433 +361.0,2.081638962902806 +362.0,2.4956364797041646 +363.0,2.3127476188026734 +364.0,2.0454217541104787 +365.0,2.0513629948735512 +366.0,2.3787160566790435 +367.0,2.078268324581395 +368.0,2.353676450580255 +369.0,2.446109721526828 +370.0,2.096068789745998 +371.0,2.1776213558749395 +372.0,2.308229298551403 +373.0,2.1752082829043453 +374.0,2.023752613385601 +375.0,2.647700214867135 +376.0,2.7717736173122383 +377.0,2.4650120086745826 +378.0,2.451285015266616 +379.0,2.332140137902061 +380.0,2.191986197970645 +381.0,2.179090105073304 +382.0,2.2458606843493603 +383.0,2.6017632493835614 +384.0,2.011118499601294 +385.0,2.2803178268339344 +386.0,2.4913063237049244 +387.0,2.7793352118296597 +388.0,2.2129349317408127 +389.0,2.0244114836102427 +390.0,2.325787359609496 +391.0,2.565403748960642 +392.0,2.4545181278741826 +393.0,2.196846625701466 +394.0,2.166700609275217 +395.0,2.33262621590082 +396.0,2.4239449941487923 +397.0,2.0663740331309595 +398.0,2.338744155110046 +399.0,2.0441747153356182 +400.0,2.3314305688383237 +401.0,2.7190881466265466 +402.0,3.0514524997171018 +403.0,2.2269460620450516 +404.0,2.0461037611845745 +405.0,2.113781517313289 +406.0,2.08174390792851 +407.0,2.0865633714553913 +408.0,2.2604042473578123 +409.0,2.305107471682298 +410.0,2.521817716674602 +411.0,2.0975680848938185 +412.0,2.919052047861324 +413.0,2.0267156593066287 +414.0,2.853813732764256 +415.0,2.013470518762031 +416.0,2.1253717907008536 +417.0,2.607706721772044 +418.0,2.1234295978934905 +419.0,2.378013598095677 +420.0,2.666889157443678 +421.0,2.3272874340682166 +422.0,2.7377210561119076 +423.0,2.0042308194181104 +424.0,2.0218304808656007 +425.0,2.1615358588387767 +426.0,2.661829145175426 +427.0,2.645526324546418 +428.0,2.03067397157323 +429.0,2.5365977411651492 +430.0,2.289733272730309 +431.0,2.232095571990005 +432.0,2.3062020714137943 +433.0,2.9742748972473123 +434.0,2.1822569089923625 +435.0,2.866155643308472 +436.0,2.548669305188047 +437.0,2.3663937713219156 +438.0,3.5339881480222686 +439.0,2.08038614507296 +440.0,2.311328396490504 +441.0,2.259526279740129 +442.0,2.18107762378714 +443.0,2.2439760565425853 +444.0,2.01484610262313 +445.0,2.516019272902247 +446.0,2.034075638866605 +447.0,2.115731116942771 +448.0,2.786178220448678 +449.0,2.0451815222892304 +450.0,2.3067765550046153 +451.0,2.1708256245794226 +452.0,2.033072072767301 +453.0,2.7139517666928783 +454.0,2.1571074091400813 +455.0,3.259817877618228 +456.0,2.1853370111405876 +457.0,2.338050274927242 +458.0,3.278054294427945 +459.0,2.002149840536617 +460.0,2.4868025920398376 +461.0,2.13910810945101 +462.0,2.197574153271303 +463.0,2.209372906197345 +464.0,2.3753856144592196 +465.0,2.7770396126933727 +466.0,2.6381303358437487 +467.0,2.0067559335972374 +468.0,2.1525363997650997 +469.0,2.7572835264902715 +470.0,2.0180697657335127 +471.0,2.334916179618239 +472.0,2.2059141071074913 +473.0,2.429466032374318 +474.0,3.1341549625569076 +475.0,2.2017459368713626 +476.0,2.795120629023555 +477.0,2.0593903194534877 +478.0,2.6091342659805457 +479.0,2.080596767447184 +480.0,2.3096793286497057 +481.0,2.211063481999612 +482.0,2.1323781389451675 +483.0,2.415902888719905 +484.0,2.686611834536629 +485.0,2.215625979339101 +486.0,2.235806893474955 +487.0,2.163263708829403 +488.0,2.159908756133262 +489.0,2.0634486988065306 +490.0,2.3212933150493287 +491.0,2.112850578914786 +492.0,2.4637136988235744 +493.0,2.321417282116091 +494.0,2.267414714403494 +495.0,2.110602971910764 +496.0,2.1118633963559237 +497.0,2.5458269437300998 +498.0,2.014969006706892 +499.0,2.7691617983466044 +500.0,2.220292454404772 +501.0,2.9435944412990676 +502.0,2.082539328545573 +503.0,2.003596665592084 +504.0,2.1793159882559103 +505.0,2.0037101095039507 +506.0,2.852435755930602 +507.0,2.3407490437485468 +508.0,2.588732442405922 +509.0,2.34443303712603 +510.0,2.7040677658713292 +511.0,2.6334309575878088 +512.0,2.326463498414499 +513.0,2.4099316464745244 +514.0,2.064504163606385 +515.0,2.2560240603320407 +516.0,2.915573805634338 +517.0,2.1245921132956562 +518.0,2.026133131464617 +519.0,2.296370241488715 +520.0,2.389838666990717 +521.0,2.8085806109556137 +522.0,3.1758849443427835 +523.0,2.318481399772947 +524.0,2.427361291397366 +525.0,3.277945308737478 +526.0,2.220635419348798 +527.0,2.267541580981786 +528.0,2.097186734307919 +529.0,2.1108975607608698 +530.0,2.1654587070127405 +531.0,3.9470877933612347 +532.0,2.2943670623546355 +533.0,2.0879296051256775 +534.0,2.269510542884975 +535.0,2.5508573312176055 +536.0,2.0970741639795794 +537.0,2.2101721824541016 +538.0,2.0575575728563473 +539.0,2.5921041805119414 +540.0,2.4417322889912194 +541.0,2.185420142314494 +542.0,2.1291403425596127 +543.0,2.0077454496512575 +544.0,2.2680078639205448 +545.0,2.0331108780806453 +546.0,2.0568648626790678 +547.0,2.7939925929325637 +548.0,2.093573848987185 +549.0,2.574851237613478 +550.0,2.3807929868029083 +551.0,3.125517344452021 +552.0,2.1339536954957703 +553.0,2.135662069029755 +554.0,2.0133140095062805 +555.0,2.4485607798867624 +556.0,2.5445178053755617 +557.0,2.4075444419949315 +558.0,2.012815628060451 +559.0,2.3744699232147237 +560.0,2.3689806551263497 +561.0,2.480758845565902 +562.0,2.0467714068203797 +563.0,2.0616499334948193 +564.0,2.1453432240482018 +565.0,2.7308596659493185 +566.0,2.282232019256623 +567.0,2.3906839470768304 +568.0,2.2978064244940937 +569.0,2.057979862546378 +570.0,2.581784466747949 +571.0,2.3800474725541854 +572.0,2.6943686282892845 +573.0,2.677304467523959 +574.0,2.419243990347963 +575.0,2.217043368590936 +576.0,2.060830803708825 +577.0,2.1493173958020155 +578.0,3.1331282601345203 +579.0,2.5641343548996374 +580.0,2.092321937770105 +581.0,3.4514311417009105 +582.0,2.136223468794587 +583.0,2.2570985255140967 +584.0,3.66246967416727 +585.0,2.0034184601207805 +586.0,2.6702278956113696 +587.0,2.728641265139035 +588.0,2.134759437867636 +589.0,2.2472018888720253 +590.0,2.0173321690958765 +591.0,2.3529271120678206 +592.0,2.2567587754436325 +593.0,2.9111810279396027 +594.0,2.120063762794042 +595.0,2.8097740645313545 +596.0,2.08737800480215 +597.0,2.175781077047263 +598.0,2.1371062240313115 +599.0,2.6692146548179494 +600.0,3.5018893150924733 +601.0,3.170093927407764 +602.0,2.7188442728452022 +603.0,2.579296354573054 +604.0,2.060263801811305 +605.0,3.159348610699257 +606.0,2.0047698326326833 +607.0,2.0600708166877038 +608.0,2.3357761573190543 +609.0,2.0424889532683914 +610.0,2.140373909686859 +611.0,2.2197183489194816 +612.0,2.2157958863252367 +613.0,2.1361724847892325 +614.0,2.272414129304048 +615.0,2.16042187505472 +616.0,2.0863265830887388 +617.0,2.3105763418529106 +618.0,2.0880170328635406 +619.0,2.352721693476872 +620.0,2.323857899093154 +621.0,2.617590890667926 +622.0,3.7467546687702753 +623.0,2.19859606612488 +624.0,2.9939845586028753 +625.0,2.056852370028323 +626.0,2.0250571086999476 +627.0,2.093317602495643 +628.0,2.9302904545894295 +629.0,2.141724732713413 +630.0,2.329316274916064 +631.0,2.3222780408797554 +632.0,2.079723274497036 +633.0,2.0888590412434684 +634.0,2.033911066122048 +635.0,3.5628079344083785 +636.0,2.2286800286690687 +637.0,2.1969804169035965 +638.0,2.0792554662211984 +639.0,2.143448349794878 +640.0,2.0755972760582404 +641.0,2.6101540464077835 +642.0,2.1142194383304425 +643.0,2.2409998885608164 +644.0,2.16023707043676 +645.0,2.025473198446323 +646.0,2.7139437127775503 +647.0,3.2109957787816574 +648.0,2.087215076715621 +649.0,3.0559329300838596 +650.0,2.325811090460894 +651.0,2.9275068442894443 +652.0,2.381447978523575 +653.0,2.5898983493124863 +654.0,2.1909453648662693 +655.0,2.696251359774892 +656.0,2.037457420342581 +657.0,3.052265788047171 +658.0,2.1334590985659996 +659.0,2.6854919229555927 +660.0,2.117120358160366 +661.0,2.490110544263651 +662.0,2.6079311884517407 +663.0,2.0790236898158714 +664.0,3.26193783190661 +665.0,2.2474508381714937 +666.0,2.1685230790664645 +667.0,2.136188199338135 +668.0,2.8918599645064864 +669.0,2.427438306976136 +670.0,2.583506141729357 +671.0,2.271403210159919 +672.0,2.413751671860279 +673.0,2.299266853021529 +674.0,2.056692019976768 +675.0,2.0732847965024646 +676.0,2.1195933125110256 +677.0,2.440535849123291 +678.0,2.285477318498845 +679.0,2.549987496338214 +680.0,2.335732857994552 +681.0,2.232377925603509 +682.0,2.0318578830839193 +683.0,2.6569923348822027 +684.0,2.27745141499164 +685.0,2.0769483022651274 +686.0,2.2483670163121166 +687.0,2.3883423669792743 +688.0,2.077309775777977 +689.0,2.1007707880850086 +690.0,2.0572089700731904 +691.0,2.0673424659554227 +692.0,2.0583856925525397 +693.0,3.0482018480915607 +694.0,2.3275785703096905 +695.0,2.0064777043405506 +696.0,2.3820554610139406 +697.0,2.156818107109474 +698.0,2.137277087477293 +699.0,2.2521913067198613 +700.0,2.423009126974205 +701.0,2.539163679586454 +702.0,2.3185361094281216 +703.0,2.260833119578417 +704.0,2.113145320840851 +705.0,2.075214519057845 +706.0,2.4832487687135103 +707.0,2.078776706321834 +708.0,2.018334637013848 +709.0,2.2708418146935223 +710.0,2.228677025568022 +711.0,2.1624276981662707 +712.0,2.171100710604295 +713.0,2.8185395275139444 +714.0,2.485639085621169 +715.0,2.355392876871659 +716.0,2.2760513522530177 +717.0,2.13330310422565 +718.0,3.0296047673078097 +719.0,2.395948757979081 +720.0,2.0553126808833246 +721.0,2.0120793583689114 +722.0,2.2905281910707016 +723.0,2.1270348122954705 +724.0,2.305432970602502 +725.0,2.2998779320675062 +726.0,2.3283512526701244 +727.0,2.614084401162543 +728.0,2.5496944946686217 +729.0,3.287399246922873 +730.0,2.0638068411646193 +731.0,2.3034768058248902 +732.0,2.1390834513615715 +733.0,2.8653869022035403 +734.0,2.102076740061976 +735.0,2.251134710512635 +736.0,2.4434647976833865 +737.0,2.0447039310295754 +738.0,2.0326752000441957 +739.0,2.7276429352925105 +740.0,2.4820313064143735 +741.0,2.3039511081528854 +742.0,2.0580990259836645 +743.0,2.0788271389920836 +744.0,2.219586692480514 +745.0,2.37906966304462 +746.0,2.7852403027160793 +747.0,2.222529253555562 +748.0,2.0415500476424047 +749.0,2.2543153357034047 +750.0,2.7115694614201518 +751.0,3.158269429153283 +752.0,3.0081992471379855 +753.0,2.2168164604704423 +754.0,2.514397869544569 +755.0,2.33368425731494 +756.0,2.379285014795497 +757.0,2.456261667965898 +758.0,2.015979456788659 +759.0,2.501465634563359 +760.0,2.7588427966456255 +761.0,2.586735688501215 +762.0,2.346533178492816 +763.0,2.1797477695688507 +764.0,2.239522316734294 +765.0,2.968469785300857 +766.0,2.045453545298617 +767.0,2.2273932375971843 +768.0,2.087694428855358 +769.0,2.0311498169764204 +770.0,2.1689699353858107 +771.0,2.1298769009858813 +772.0,2.102793819114613 +773.0,2.5223836923297394 +774.0,2.072446509002826 +775.0,2.083625149694098 +776.0,2.154992422478824 +777.0,2.21709229470643 +778.0,2.817802583492472 +779.0,2.0019249693329426 +780.0,2.958110039445272 +781.0,2.6480417793714817 +782.0,2.0845543647148608 +783.0,2.1085770124207577 +784.0,2.4520554869859206 +785.0,2.4930786974717956 +786.0,3.3202292086355483 +787.0,2.3823688628614996 +788.0,2.4246028580624 +789.0,2.0011239803126104 +790.0,2.1446221724762027 +791.0,2.303017130006586 +792.0,2.1467636243015678 +793.0,2.2505663278480137 +794.0,2.248770746251996 +795.0,2.575544094381368 +796.0,2.2265532517435633 +797.0,2.80168545699543 +798.0,2.2326431770507873 +799.0,2.1326871300644754 +800.0,2.58268575575059 +801.0,2.3436803494299028 +802.0,2.862319695168855 +803.0,2.2246463784005193 +804.0,2.5952754372092603 +805.0,2.074407998343939 +806.0,2.082232735050125 +807.0,2.1076177545863204 +808.0,2.262448111939506 +809.0,2.0835420977250876 +810.0,2.49754885954372 +811.0,2.2338555223231418 +812.0,2.2445045786201083 +813.0,2.297526207561805 +814.0,2.2579382679454554 +815.0,2.0602643133670684 +816.0,3.174682956867157 +817.0,2.0128615709947275 +818.0,2.257409922209933 +819.0,2.2027981462576167 +820.0,2.411038038769248 +821.0,2.0602690090254487 +822.0,2.23898321188551 +823.0,2.102013607035625 +824.0,2.424335099061175 +825.0,2.1154480267546494 +826.0,2.0257905613086384 +827.0,2.637741493185384 +828.0,2.1572385407887493 +829.0,2.9893237331722453 +830.0,3.0818538675688725 +831.0,2.6529046549146122 +832.0,2.6699697821950705 +833.0,2.0303677809826866 +834.0,2.1790963408673414 +835.0,2.1664731796404384 +836.0,2.280087976991287 +837.0,2.1910713513137785 +838.0,2.0520974973920043 +839.0,2.3878346507989496 +840.0,2.1493109218375452 +841.0,2.446304502539581 +842.0,2.7461808499663953 +843.0,3.118311854748029 +844.0,2.178549556905855 +845.0,2.1455593535520845 +846.0,2.2804272822791614 +847.0,2.025578697056762 +848.0,2.5745167464429097 +849.0,3.009865489133342 +850.0,2.8280130169423927 +851.0,2.326799342897306 +852.0,2.02474375436629 +853.0,2.0400242819937286 +854.0,2.1255582523114223 +855.0,2.2312769146922182 +856.0,2.279687263368578 +857.0,2.0069765649795728 +858.0,2.206217833024376 +859.0,2.1275762079251868 +860.0,3.051799602269984 +861.0,2.084684665357285 +862.0,2.0191629869161023 +863.0,2.120981462787187 +864.0,2.6113032268464322 +865.0,2.1662984826240437 +866.0,2.739056203750607 +867.0,2.1602176626431295 +868.0,2.902266661098415 +869.0,2.7224144693922474 +870.0,2.3852640352580003 +871.0,2.0229055035097305 +872.0,2.3503643282894813 +873.0,2.648775313987179 +874.0,2.390655399814382 +875.0,2.060436060389916 +876.0,2.091658158272283 +877.0,2.486281747340691 +878.0,2.1559821398266177 +879.0,2.1039396264526937 +880.0,2.084953048967709 +881.0,2.135913365114398 +882.0,3.0706522194690953 +883.0,4.535264580414273 +884.0,2.5794405169285666 +885.0,3.461875170125039 +886.0,2.7449031487427655 +887.0,2.1616499675602303 +888.0,2.4338894686040264 +889.0,2.2098297352566747 +890.0,2.9092334301791185 +891.0,2.5086983739908213 +892.0,2.5626198552742028 +893.0,2.312969951903745 +894.0,2.574435913074849 +895.0,2.8104071014313456 +896.0,2.203873608941966 +897.0,2.9669053862621912 +898.0,2.0403403805660156 +899.0,2.5143396691553077 +900.0,2.1578668595112815 +901.0,2.4100836653735884 +902.0,2.468070672955159 +903.0,2.1695724666228284 +904.0,2.830852649996121 +905.0,3.2252914001207325 +906.0,2.1936990146559623 +907.0,2.024168664238416 +908.0,2.3215234911803844 +909.0,2.407785525328099 +910.0,2.444238294545341 +911.0,2.0471749181820647 +912.0,2.2445156404214885 +913.0,2.160617547192639 +914.0,2.0404827858551946 +915.0,2.082891297965631 +916.0,2.3514631312879564 +917.0,2.2616112178880634 +918.0,2.1065474476119457 +919.0,2.3476388803089328 +920.0,2.010977298232189 +921.0,2.1294810826137645 +922.0,2.7991077477998387 +923.0,2.0725594923812487 +924.0,2.500428781822042 +925.0,2.249306436085866 +926.0,2.0680970069854525 +927.0,2.0690750165866234 +928.0,2.811079656200411 +929.0,2.045268674795167 +930.0,2.1857237479552425 +931.0,2.657277570913897 +932.0,2.087231620549138 +933.0,2.0179585726328595 +934.0,2.7588490041058527 +935.0,2.2082323854285835 +936.0,2.9069191643389924 +937.0,2.9817931405736995 +938.0,2.6422398970122885 +939.0,2.0327540684542016 +940.0,2.0438708372627428 +941.0,2.0753215460756986 +942.0,2.784019666771634 +943.0,2.257892580309726 +944.0,2.041159235219458 +945.0,2.3841608595280945 +946.0,2.189859229000193 +947.0,2.0825306216259305 +948.0,2.361684790928876 +949.0,2.1570950862730074 +950.0,2.4379362498973194 +951.0,2.0308696738311784 +952.0,2.010457422035169 +953.0,2.306476326168828 +954.0,2.1109988852668495 +955.0,2.887890566169494 +956.0,2.6244627717210993 +957.0,2.490558355112383 +958.0,2.101248752305153 +959.0,2.30441270735339 +960.0,2.2432017215671705 +961.0,2.3672270427340107 +962.0,2.2559515047764576 +963.0,2.1385214075224264 +964.0,2.1599950051405967 +965.0,2.0384659006078767 +966.0,2.8997000714970245 +967.0,2.154087944734537 +968.0,2.0475811708718683 +969.0,2.5124711749166626 +970.0,2.0844578655974133 +971.0,2.1001020028434976 +972.0,2.199520767459372 +973.0,2.1612494561633384 +974.0,2.0362258885047413 +975.0,2.3161875840247608 +976.0,2.726414218742426 +977.0,2.228293888295659 +978.0,2.394417473920132 +979.0,2.0265348137202057 +980.0,2.4831482026929734 +981.0,2.298074055714587 +982.0,2.0512400594949147 +983.0,2.18433160676415 +984.0,2.7557618583276087 +985.0,2.312264894640265 +986.0,3.1740162177631746 +987.0,2.195803031907132 +988.0,2.252163212403123 +989.0,2.609673258123954 +990.0,2.2352129712994784 +991.0,2.287207504724811 +992.0,2.430085079924567 +993.0,2.405798952047017 +994.0,2.0062896822373775 +995.0,2.2458194746952698 +996.0,2.3046438588038045 +997.0,2.0670408327664798 +998.0,2.038943241397517 +999.0,2.8869385994924106 +1000.0,2.220483006857399 +1001.0,2.36326838004208 +1002.0,2.232465197846838 +1003.0,2.027255667429585 +1004.0,2.26180755051198 +1005.0,2.3892943778647426 +1006.0,2.256009029765869 +1007.0,2.322854767381042 +1008.0,2.1882127273211913 +1009.0,3.6138280956629587 +1010.0,2.1884210727673707 +1011.0,2.2313703423489804 +1012.0,2.1391879498913453 +1013.0,2.1469670413876196 +1014.0,2.131312582253681 +1015.0,2.034172270813355 +1016.0,2.2471607561775273 +1017.0,2.1515106291514865 +1018.0,2.8088068112423477 +1019.0,2.670116503674831 +1020.0,2.0998249637164457 +1021.0,2.857651273570192 +1022.0,2.047532636969072 +1023.0,2.522641983678679 +1024.0,2.0817197645084407 +1025.0,2.2352887042251273 +1026.0,2.1125984917744187 +1027.0,2.675820356213922 +1028.0,2.003896612075489 +1029.0,2.05310980641118 +1030.0,2.053665469293087 +1031.0,2.0017655011793067 +1032.0,2.0485190715229367 +1033.0,2.0652733903625387 +1034.0,2.335781856385304 +1035.0,2.04644538398162 +1036.0,3.7089218431180653 +1037.0,2.606708267567189 +1038.0,2.6248612547669437 +1039.0,2.489494261740366 +1040.0,2.256349509320051 +1041.0,2.075825959313891 +1042.0,2.3768249645254764 +1043.0,2.4397423838876358 +1044.0,2.252259437600238 +1045.0,2.0334764735502273 +1046.0,2.042012212410182 +1047.0,2.1172266833920053 +1048.0,2.22705431202031 +1049.0,2.3919763254717825 +1050.0,2.0133650271694252 +1051.0,2.087475954814495 +1052.0,2.262775554044157 +1053.0,2.5170824130475453 +1054.0,2.8025960493152575 +1055.0,2.0348345375343486 +1056.0,2.7541532410439356 +1057.0,2.00667269737215 +1058.0,2.3446164719314244 +1059.0,2.325276650548283 +1060.0,2.2737154189501165 +1061.0,2.054306659484706 +1062.0,2.263346384152834 +1063.0,2.279859972029959 +1064.0,2.1926570204927196 +1065.0,2.066299532687709 +1066.0,2.162172064697477 +1067.0,2.003352397232882 +1068.0,2.7208806462811195 +1069.0,2.6558026402710713 +1070.0,2.2959232287496176 +1071.0,2.11617491036477 +1072.0,2.1594436044006535 +1073.0,2.038854009321495 +1074.0,2.7098983128451466 +1075.0,2.0648182100016657 +1076.0,2.2155505269227103 +1077.0,2.0295836728428838 +1078.0,2.4522622742628473 +1079.0,2.038103442339196 +1080.0,2.668857091457329 +1081.0,2.0308101994065786 +1082.0,2.3405413127578916 +1083.0,2.5157573088919767 +1084.0,2.0705559237101965 +1085.0,2.3915889909831014 +1086.0,2.1481039970593825 +1087.0,2.1880982129370397 +1088.0,2.1238883070361334 +1089.0,2.224065064544841 +1090.0,3.0828082262751293 +1091.0,2.085148349457743 +1092.0,2.03868898315798 +1093.0,2.507600098637771 +1094.0,2.0109611379426746 +1095.0,2.0613564912190347 +1096.0,2.426544339967738 +1097.0,2.4575380894129903 +1098.0,2.735989030512825 +1099.0,2.038394989251363 +1100.0,2.53010093802523 +1101.0,2.333563872145754 +1102.0,2.243713426931574 +1103.0,2.051441976202409 +1104.0,2.1854256785804735 +1105.0,2.4332172847374274 +1106.0,2.045502815715489 +1107.0,2.8551428965095136 +1108.0,2.10406748594115 +1109.0,2.7528247912998483 +1110.0,2.368018165435432 +1111.0,2.2300588419325584 +1112.0,2.023562428314004 +1113.0,3.3301761206000506 +1114.0,2.0234777436647597 +1115.0,2.060844011696196 +1116.0,2.692736128678017 +1117.0,2.382908075529685 +1118.0,2.0174250438184327 +1119.0,2.723002422191618 +1120.0,2.7102662708287077 +1121.0,2.1305252302442703 +1122.0,2.0155286377972863 +1123.0,3.592113242956855 +1124.0,2.2844461098445765 +1125.0,2.364504411164514 +1126.0,2.2505254363749008 +1127.0,2.030561114001931 +1128.0,2.015104519687272 +1129.0,2.875647154711711 +1130.0,2.17808110791555 +1131.0,2.6587759024734687 +1132.0,2.5159919185298523 +1133.0,2.71113661190598 +1134.0,2.0809677611026327 +1135.0,3.308664921323612 +1136.0,2.0626533217408674 +1137.0,2.0641166981247965 +1138.0,2.1419571535486313 +1139.0,2.133080318605513 +1140.0,2.177739462983134 +1141.0,2.088489694767506 +1142.0,2.611772937049558 +1143.0,2.3337686531309108 +1144.0,2.058722982092748 +1145.0,2.144899493754732 +1146.0,2.0099633208125534 +1147.0,2.202307154879388 +1148.0,2.1003585057186043 +1149.0,2.0345155189781523 +1150.0,2.643299099729255 +1151.0,2.0513673547466604 +1152.0,2.4798134768957527 +1153.0,2.3311890185263353 +1154.0,2.280690178736643 +1155.0,2.058258503803856 +1156.0,2.0771896382327175 +1157.0,2.121599674474239 +1158.0,2.7629136265568635 +1159.0,3.653938830137097 +1160.0,2.0232738921208244 +1161.0,2.477809609992365 +1162.0,2.0860534076742274 +1163.0,2.2358925476628615 +1164.0,2.0464852439717136 +1165.0,2.1302346850486096 +1166.0,2.1145407607829325 +1167.0,3.2674475017419504 +1168.0,3.4244179607269816 +1169.0,2.0271564753914024 +1170.0,2.5524789576525375 +1171.0,2.251757067226864 +1172.0,2.3806722592018836 +1173.0,2.347154404291249 +1174.0,2.068933643584356 +1175.0,2.283047120163131 +1176.0,2.5246142226623953 +1177.0,2.025989705492273 +1178.0,2.0916361467330766 +1179.0,2.0904483997244783 +1180.0,2.3220991886172513 +1181.0,2.1045781541118256 +1182.0,2.2103898684728964 +1183.0,2.1425568915655377 +1184.0,2.7244992099783727 +1185.0,2.3152380788095335 +1186.0,2.136644188003188 +1187.0,2.057825316743722 +1188.0,2.17326258139081 +1189.0,2.017387837126024 +1190.0,2.675971513123156 +1191.0,2.0238825723105602 +1192.0,2.2105435492652727 +1193.0,2.0401290039347275 +1194.0,2.5391718990787946 +1195.0,2.4480149176726194 +1196.0,2.0931249972161816 +1197.0,2.2444735167358187 +1198.0,2.4517453632256103 +1199.0,2.3230125694884802 +1200.0,2.36242676263446 +1201.0,2.6627674459242283 +1202.0,2.2426248226400842 +1203.0,2.0046789164016188 +1204.0,2.6865955337710163 +1205.0,2.3507545607725966 +1206.0,2.128990872631042 +1207.0,3.3977177757835273 +1208.0,2.7998712689834004 +1209.0,2.1384301811210618 +1210.0,2.495365847199518 +1211.0,2.066328964568437 +1212.0,2.207603315546516 +1213.0,2.3398705084631226 +1214.0,2.303873275271803 +1215.0,2.2298138192232457 +1216.0,2.343189796667536 +1217.0,2.2507036442229778 +1218.0,2.2546549450231135 +1219.0,3.349328253780138 +1220.0,2.0214231040272423 +1221.0,2.318976083004585 +1222.0,2.10842034228744 +1223.0,2.497572550392595 +1224.0,2.160915755888952 +1225.0,2.1425131551911574 +1226.0,2.0947023772746425 +1227.0,2.6198767468652737 +1228.0,2.689179510472453 +1229.0,2.0835425775443865 +1230.0,2.0747473992863004 +1231.0,2.414261707594413 +1232.0,2.1736096671489915 +1233.0,2.6138650353215755 +1234.0,2.00959247617623 +1235.0,2.175392027568438 +1236.0,2.337640686441641 +1237.0,2.52371043414417 +1238.0,2.090880293798591 +1239.0,2.114015512862567 +1240.0,2.318530401478054 +1241.0,2.3233686752081084 +1242.0,2.3005612313261334 +1243.0,2.2369374212850808 +1244.0,2.2642035419093043 +1245.0,2.051115045742117 +1246.0,2.206996647192181 +1247.0,2.6364588386405017 +1248.0,2.5054472912629007 +1249.0,2.02495356546411 +1250.0,2.4266676553557707 +1251.0,2.0490667185432194 +1252.0,2.090555989692892 +1253.0,2.1346615346686346 +1254.0,2.2799443620164928 +1255.0,2.3026227856198664 +1256.0,2.442438335723669 +1257.0,2.7047258778421024 +1258.0,2.2331624680261988 +1259.0,2.8535458937923304 +1260.0,2.121966671185654 +1261.0,2.2360338732986067 +1262.0,2.256311635928775 +1263.0,2.175670967106444 +1264.0,2.2976479193521975 +1265.0,2.7407988736116917 +1266.0,2.281151780759284 +1267.0,2.040225326812314 +1268.0,2.2091152407389734 +1269.0,2.8611515707528907 +1270.0,2.6246524990143314 +1271.0,2.120618414067215 +1272.0,2.2734173263917743 +1273.0,2.414894248467515 +1274.0,3.0152045924661577 +1275.0,2.108760795929622 +1276.0,2.468622148713902 +1277.0,2.230104780173337 +1278.0,2.139082606103324 +1279.0,2.012300095979433 +1280.0,2.119303356553675 +1281.0,2.0875730541543414 +1282.0,2.3489348482864534 +1283.0,2.1945851514440298 +1284.0,2.386864164082577 +1285.0,2.3546004711568598 +1286.0,2.1366423232977385 +1287.0,2.896449613534267 +1288.0,2.6639597587946318 +1289.0,2.4229841377393067 +1290.0,3.5118999784462783 +1291.0,2.3828058023575935 +1292.0,2.006241575757795 +1293.0,2.0619113831207128 +1294.0,2.1368410826847937 +1295.0,2.038813627578175 +1296.0,2.178879001664895 +1297.0,2.0898443149599872 +1298.0,2.097236922836204 +1299.0,2.568374420809127 +1300.0,2.031967915350689 +1301.0,2.5121817293399857 +1302.0,2.551135214863674 +1303.0,2.082110271005668 +1304.0,2.4790449039095455 +1305.0,2.6505348467160985 +1306.0,2.0530170014070053 +1307.0,2.808864442002015 +1308.0,2.1907910803646162 +1309.0,2.4181431588258464 +1310.0,2.2541919267428687 +1311.0,2.3985123694620354 +1312.0,2.8315736827298963 +1313.0,2.14838700170772 +1314.0,2.5753073579009937 +1315.0,2.1057396980160292 +1316.0,2.6723366204870023 +1317.0,2.0255838728037805 +1318.0,2.0421914909441012 +1319.0,2.017376218334326 +1320.0,2.0419768318114513 +1321.0,2.5685909456658242 +1322.0,2.8162019907455194 +1323.0,2.1409321326528756 +1324.0,2.423792550151056 +1325.0,2.451790569009926 +1326.0,2.0594853178437997 +1327.0,2.5435152483970898 +1328.0,2.714414971822003 +1329.0,2.6039920262348035 +1330.0,2.097472425143502 +1331.0,2.5149963547464314 +1332.0,2.6120496566157767 +1333.0,2.227335521705846 +1334.0,2.0024440276557876 +1335.0,2.074077495478498 +1336.0,2.2601924421875506 +1337.0,2.8057686205371146 +1338.0,2.098653203264389 +1339.0,2.011308870678278 +1340.0,2.143984150342813 +1341.0,2.1925233222980975 +1342.0,2.0347663299605783 +1343.0,2.060489310965197 +1344.0,2.0573214292889395 +1345.0,2.333360702489709 +1346.0,2.0317075134504474 +1347.0,2.0867298551334352 +1348.0,2.369965183051107 +1349.0,2.0671125616299344 +1350.0,2.285747987340934 +1351.0,2.9369778006786302 +1352.0,2.0222450072754365 +1353.0,2.000575630059043 +1354.0,3.4679913390613435 +1355.0,2.5265478068796754 +1356.0,2.3555089125611963 +1357.0,2.4155359833687347 +1358.0,2.005391004175817 +1359.0,2.3149795475347448 +1360.0,2.0764385123541182 +1361.0,2.0977007852932017 +1362.0,2.3673976183650387 +1363.0,2.254095927486659 +1364.0,2.088211889548121 +1365.0,2.270225239378783 +1366.0,2.7688009920723244 +1367.0,2.0933558447427716 +1368.0,3.453310145591616 +1369.0,2.3812507007193684 +1370.0,2.336254990772871 +1371.0,2.07200805125817 +1372.0,2.3786486024639557 +1373.0,2.33520851191548 +1374.0,2.4635953802721025 +1375.0,2.1307110138296097 +1376.0,2.007447476358511 +1377.0,2.8430454352931536 +1378.0,2.191445855397197 +1379.0,2.089093140814473 +1380.0,2.1635094642868657 +1381.0,2.290842852116315 +1382.0,2.0568235030003956 +1383.0,2.0326259599355194 +1384.0,2.2714377422619165 +1385.0,2.1336859579525074 +1386.0,2.483650794678361 +1387.0,2.6543212747180256 +1388.0,2.0182486276493687 +1389.0,2.5093198573708366 +1390.0,2.134052059417277 +1391.0,2.6824538380670595 +1392.0,2.0776918109405864 +1393.0,2.2821396680238655 +1394.0,2.175614446788882 +1395.0,3.271245134916888 +1396.0,2.3673951006587517 +1397.0,2.8180609468611 +1398.0,2.0772373884098965 +1399.0,2.0415802780884347 +1400.0,2.1058374713324515 +1401.0,2.4524419786062603 +1402.0,2.091753267188861 +1403.0,2.1329156797068842 +1404.0,2.1787411984536367 +1405.0,2.2136582823918705 +1406.0,2.1888039736534197 +1407.0,2.1068745753634297 +1408.0,2.0351759757597314 +1409.0,2.1826773094898204 +1410.0,3.1333130890054823 +1411.0,3.8207842096877336 +1412.0,2.7091269093132686 +1413.0,2.9383529034963107 +1414.0,2.1269877464613525 +1415.0,2.2924997599227024 +1416.0,2.020253623466182 +1417.0,2.4222834380485803 +1418.0,2.342365688294417 +1419.0,3.1880896493440467 +1420.0,2.174053328238724 +1421.0,2.6218546500980793 +1422.0,2.1296827513764343 +1423.0,2.5738153247428546 +1424.0,2.2265943145651965 +1425.0,2.379967240142608 +1426.0,2.1092755606585216 +1427.0,2.6237800050436126 +1428.0,3.310813578448786 +1429.0,2.222055772939532 +1430.0,2.0025755825737646 +1431.0,2.0888524523236733 +1432.0,4.235058957666017 +1433.0,2.8385798232054116 +1434.0,2.0283348809017205 +1435.0,2.1743694122228896 +1436.0,2.8783416769996775 +1437.0,2.6362847704754016 +1438.0,2.0695485753708627 +1439.0,2.177281874958772 +1440.0,2.102873377602579 +1441.0,2.2586789031103462 +1442.0,2.196010253103783 +1443.0,2.623606064801968 +1444.0,2.148677450544551 +1445.0,2.7230495254960805 +1446.0,2.2547123298488336 +1447.0,2.9925608132484034 +1448.0,2.4439614320373444 +1449.0,2.302329252229109 +1450.0,2.3191281080994117 +1451.0,2.1820505547906808 +1452.0,2.362094420546143 +1453.0,2.0290179537289488 +1454.0,2.0404869672025563 +1455.0,2.0829218393986557 +1456.0,2.127308461607221 +1457.0,3.6496957985306686 +1458.0,2.3970964747505246 +1459.0,2.3983908230896276 +1460.0,2.831328565890026 +1461.0,2.535078455788683 +1462.0,2.212295588286276 +1463.0,2.483620881593671 +1464.0,2.128287705604501 +1465.0,2.6085753022830294 +1466.0,2.159165428378066 +1467.0,2.444095711883523 +1468.0,2.5962779967785647 +1469.0,2.1284207845238488 +1470.0,2.2340688683600334 +1471.0,2.243965270607338 +1472.0,3.153649107671132 +1473.0,2.0358501189403926 +1474.0,2.2533147213354603 +1475.0,2.388478567526389 +1476.0,2.02759007460248 +1477.0,2.4960288375881863 +1478.0,2.56231417549812 +1479.0,3.260200252715098 +1480.0,2.550177563982611 +1481.0,2.0425399503113644 +1482.0,3.069059960717773 +1483.0,2.7474114331270476 +1484.0,2.1472892625881954 +1485.0,2.743280611946083 +1486.0,2.3100122980646893 +1487.0,2.154899777782203 +1488.0,2.0451630206488187 +1489.0,2.4173508190904633 +1490.0,2.0031070963797406 +1491.0,2.487320143142763 +1492.0,2.017925955146539 +1493.0,2.3186264343229666 +1494.0,2.132359326556493 +1495.0,2.7557581072947395 +1496.0,2.5110960649629743 +1497.0,2.185330800003331 +1498.0,2.0040255151055173 +1499.0,2.151455334926326 +1500.0,2.0741722316886144 +1501.0,2.706212767096382 +1502.0,2.811189445023605 +1503.0,2.221404887285952 +1504.0,2.083615055056305 +1505.0,3.2395913336377467 +1506.0,3.1773562500934407 +1507.0,2.7348544497593026 +1508.0,2.4754449555280105 +1509.0,2.271094949549317 +1510.0,2.0357277521011827 +1511.0,2.2013799150284394 +1512.0,2.2915647656850955 +1513.0,2.467388088064693 +1514.0,2.037518715378563 +1515.0,2.2250600058315952 +1516.0,2.0715941576224792 +1517.0,3.005747168894697 +1518.0,2.7533473260479964 +1519.0,3.5310008423120243 +1520.0,2.001879861093812 +1521.0,2.1228283887976365 +1522.0,2.113480168885358 +1523.0,2.1978186696560824 +1524.0,2.2460463182117367 +1525.0,2.089339673322679 +1526.0,2.330510346711422 +1527.0,2.201850289782041 +1528.0,2.2161219540561814 +1529.0,2.047581651200749 +1530.0,2.066851126255555 +1531.0,2.0702467467913945 +1532.0,2.0835199668911764 +1533.0,2.0171971741450134 +1534.0,2.1395746004426197 +1535.0,2.190981210898351 +1536.0,2.2319853882706457 +1537.0,2.930636789908287 +1538.0,2.1232897164029025 +1539.0,2.216361411926956 +1540.0,2.2217469007004325 +1541.0,2.0215221203083003 +1542.0,2.5652619209509897 +1543.0,2.0117848992006464 +1544.0,2.1101221742770075 +1545.0,2.4428350012343514 +1546.0,2.343481185856395 +1547.0,2.052813661087549 +1548.0,2.117448057059641 +1549.0,2.034409768823804 +1550.0,2.059225575262641 +1551.0,2.056971773518185 +1552.0,2.04001343834493 +1553.0,2.023400212656108 +1554.0,2.1086836059663105 +1555.0,3.2984944021359874 +1556.0,2.7836054834216686 +1557.0,2.1296168828592332 +1558.0,2.3853960866283774 +1559.0,2.2019021184944623 +1560.0,2.085917878573566 +1561.0,2.522790366216136 +1562.0,2.529473074797223 +1563.0,2.541520437700888 +1564.0,2.1176026112277113 +1565.0,2.2520943351107037 +1566.0,2.0922991960292916 +1567.0,2.1690663080910704 +1568.0,2.2151644080731305 +1569.0,2.671012418087892 +1570.0,2.2446467239597356 +1571.0,2.5072455871141504 +1572.0,2.119008921887411 +1573.0,2.0199070486560675 +1574.0,2.5714618035065095 +1575.0,2.6073579732625163 +1576.0,2.3478486750771985 +1577.0,2.6775314401461676 +1578.0,2.2617574173570234 +1579.0,2.624672258960447 +1580.0,2.1096612306485314 +1581.0,3.069415097806126 +1582.0,2.0173645288018385 +1583.0,2.015525422850457 +1584.0,2.0271975504303468 +1585.0,2.3261675479668327 +1586.0,2.497840063919602 +1587.0,2.5553468187406256 +1588.0,2.286935937615601 +1589.0,2.335324097107433 +1590.0,2.5773421902288516 +1591.0,2.085742687331103 +1592.0,3.3816370052193268 +1593.0,2.2962770403771087 +1594.0,2.5096486727320486 +1595.0,2.1321120292158136 +1596.0,2.764064448355971 +1597.0,2.0852038517905127 +1598.0,2.2601912569747213 +1599.0,2.624026712377892 +1600.0,2.1700519406123724 +1601.0,2.36541567981446 +1602.0,3.0465242561670327 +1603.0,2.975233521722859 +1604.0,2.1935916218247242 +1605.0,2.4887775578098292 +1606.0,2.2111310932033623 +1607.0,2.174470166907631 +1608.0,2.59636428199253 +1609.0,2.670283626784187 +1610.0,2.022144552418625 +1611.0,2.1120441037816913 +1612.0,2.234265864591633 +1613.0,2.1976564905881055 +1614.0,2.5710458931448845 +1615.0,2.2051340889821693 +1616.0,2.413787847886846 +1617.0,2.0848146460483754 +1618.0,2.243560672116974 +1619.0,3.250759840944199 +1620.0,2.518556312409499 +1621.0,2.3016315640731038 +1622.0,2.078183860007182 +1623.0,2.3740115137403692 +1624.0,2.2336168299551553 +1625.0,2.2072291475993735 +1626.0,2.0061267025090865 +1627.0,2.056945811555783 +1628.0,2.0775184380551677 +1629.0,2.264436799806555 +1630.0,2.028236375210453 +1631.0,2.64110404372622 +1632.0,2.061363378124239 +1633.0,3.4870880140507707 +1634.0,2.0302058776439713 +1635.0,3.137932673652582 +1636.0,2.359138286415411 +1637.0,2.082156442997418 +1638.0,2.122371371870557 +1639.0,2.2094287772076773 +1640.0,2.116060974509941 +1641.0,2.024058316343567 +1642.0,3.1906496035589624 +1643.0,2.0662645458840307 +1644.0,2.12809356418366 +1645.0,2.026808973420691 +1646.0,2.392928289770543 +1647.0,2.5524568717926175 +1648.0,2.7734341285944057 +1649.0,2.374761151406497 +1650.0,3.8657134844548233 +1651.0,2.564231389776544 +1652.0,2.042706629613497 +1653.0,2.6031084969546643 +1654.0,2.401687985872885 +1655.0,2.2489178473155182 +1656.0,2.0784797898929677 +1657.0,2.0995549947392926 +1658.0,2.244004506650968 +1659.0,2.5839442311080676 +1660.0,2.0644945596492397 +1661.0,2.0070111057361757 +1662.0,2.332531849849081 +1663.0,2.0640071759484213 +1664.0,2.361230420275591 +1665.0,2.3022806906287925 +1666.0,3.072625123166723 +1667.0,2.0902735683093057 +1668.0,2.6648978973433843 +1669.0,2.3209697000070397 +1670.0,3.0173236716873206 +1671.0,2.216647453670152 +1672.0,2.359244739556529 +1673.0,2.999142018364326 +1674.0,2.0322623019967123 +1675.0,2.3424588054404714 +1676.0,2.1021059911779862 +1677.0,2.2180280400465717 +1678.0,3.0054694811767892 +1679.0,3.025528070080565 +1680.0,2.0068054000310083 +1681.0,2.4514913714735727 +1682.0,2.5599864222333713 +1683.0,2.5220564991554513 +1684.0,2.2174743729156794 +1685.0,2.2601890749453553 +1686.0,2.6526083574534054 +1687.0,2.3298887837679128 +1688.0,2.335047886697171 +1689.0,2.0567166429457027 +1690.0,3.845047359154557 +1691.0,2.0745208306918923 +1692.0,2.090130901184844 +1693.0,2.5839196929307096 +1694.0,2.4617217203641157 +1695.0,2.30091226043025 +1696.0,3.0840185875055237 +1697.0,2.4092923195260427 +1698.0,2.112243812071383 +1699.0,2.028543696400748 +1700.0,2.5003441913030553 +1701.0,2.1451312584020528 +1702.0,2.0441309763329967 +1703.0,2.1838754644567318 +1704.0,2.343320003977939 +1705.0,2.2959515415637406 +1706.0,3.2581823979219893 +1707.0,2.1381641167421126 +1708.0,2.87633862396267 +1709.0,2.581622862908285 +1710.0,2.0507169500280766 +1711.0,2.131615896679701 +1712.0,2.1288525132202634 +1713.0,2.1152501854048116 +1714.0,2.391189548874975 +1715.0,2.8039577999698855 +1716.0,2.251832010303861 +1717.0,2.0328831535676057 +1718.0,2.5673621520457264 +1719.0,2.355814461411491 +1720.0,2.4589919502043074 +1721.0,2.620457029668009 +1722.0,2.060727101246373 +1723.0,2.0211323519705897 +1724.0,2.5272499482394317 +1725.0,2.320984064723977 +1726.0,2.0425784304031054 +1727.0,2.068100085084412 +1728.0,2.645122005581103 +1729.0,2.075926763738227 +1730.0,2.150199266227883 +1731.0,2.502805361146892 +1732.0,2.7566222539772514 +1733.0,2.5692897850728946 +1734.0,2.790447459981121 +1735.0,2.099759145594223 +1736.0,2.198228392400108 +1737.0,2.1036730443684415 +1738.0,2.2827484939997884 +1739.0,2.152483354053321 +1740.0,3.0442371844708207 +1741.0,2.4547584705949217 +1742.0,2.3088686001729024 +1743.0,2.3501185048398425 +1744.0,2.7288324306395544 +1745.0,2.0500799991440717 +1746.0,2.0704092138349686 +1747.0,2.048862100971569 +1748.0,2.1441297551476 +1749.0,2.585961597672647 +1750.0,3.5464056230969825 +1751.0,2.105507436856022 +1752.0,2.22833011780392 +1753.0,2.5239700821696944 +1754.0,2.1354872826245646 +1755.0,2.0475415906491676 +1756.0,2.3253383089954602 +1757.0,2.6047867063311783 +1758.0,2.7062782857258885 +1759.0,2.1081031106991275 +1760.0,2.2863701182365737 +1761.0,2.273224227426535 +1762.0,2.441338731963525 +1763.0,2.160492582336792 +1764.0,2.118591114226517 +1765.0,2.4030671243181274 +1766.0,2.7696587134646036 +1767.0,2.1767764601638073 +1768.0,2.086084936833821 +1769.0,2.516547431588433 +1770.0,2.0052204649088825 +1771.0,2.0736469454903124 +1772.0,2.2100567581292885 +1773.0,2.1095702828700356 +1774.0,2.1947621395706047 +1775.0,2.072676148454825 +1776.0,2.3547648337532716 +1777.0,2.520950767602713 +1778.0,2.026741054337334 +1779.0,2.3543766735544374 +1780.0,2.1714184583946494 +1781.0,2.1890741269486376 +1782.0,2.855327980819657 +1783.0,2.5613308502639383 +1784.0,2.111280708107955 +1785.0,2.2095294251431286 +1786.0,2.0350584605293407 +1787.0,2.2854974543269915 +1788.0,2.063211919877333 +1789.0,2.5813650601162124 +1790.0,2.5395720198395075 +1791.0,2.489269428192873 +1792.0,2.1030899426766045 +1793.0,2.397922902868205 +1794.0,2.4086314740225703 +1795.0,2.690102985785045 +1796.0,2.046041456103114 +1797.0,2.5689645332848015 +1798.0,2.281280649367063 +1799.0,2.2914932967301445 +1800.0,2.199709433879558 +1801.0,3.0171996865450623 +1802.0,2.9293694623797957 +1803.0,2.6880582356794425 +1804.0,2.271580919464458 +1805.0,2.090772102021788 +1806.0,2.308895964942288 +1807.0,2.253078973629355 +1808.0,2.250963808540699 +1809.0,2.0715864716239127 +1810.0,2.150559044567837 +1811.0,2.4616400301852037 +1812.0,2.6826859014316717 +1813.0,2.2842457181984224 +1814.0,2.1749236797874874 +1815.0,3.071414516532963 +1816.0,2.3350616142426386 +1817.0,2.0350270262081893 +1818.0,2.050581205259238 +1819.0,2.556827747578256 +1820.0,2.3935224149199645 +1821.0,2.0966525208335596 +1822.0,2.2284669108486557 +1823.0,2.368417758594066 +1824.0,2.141697009220439 +1825.0,2.769892397739332 +1826.0,2.7234223449671875 +1827.0,3.3606173909272643 +1828.0,2.442901633413961 +1829.0,2.001057105648947 +1830.0,2.121577582185392 +1831.0,2.196992749754881 +1832.0,2.1300872940001065 +1833.0,2.0126237204161117 +1834.0,2.105062017968562 +1835.0,2.1084316816308726 +1836.0,2.03887308532067 +1837.0,2.3016425310257596 +1838.0,2.0606460032910423 +1839.0,3.06849072685225 +1840.0,2.0013614451700974 +1841.0,2.2365204301107044 +1842.0,2.0247799068630274 +1843.0,2.3026282415146615 +1844.0,2.110049037992161 +1845.0,2.412224441768605 +1846.0,2.2676290124886065 +1847.0,2.458577019423061 +1848.0,2.3447252655796182 +1849.0,2.0520703777203115 +1850.0,2.0784081167979864 +1851.0,2.0292111872757235 +1852.0,2.402085925633038 +1853.0,2.141164763203526 +1854.0,2.252409174915736 +1855.0,2.58878109614736 +1856.0,2.338682578070618 +1857.0,2.3707319236745756 +1858.0,2.0950415635127837 +1859.0,2.554900234429734 +1860.0,2.823595178004206 +1861.0,2.1802473941878997 +1862.0,2.1668425528640993 +1863.0,2.129861124090318 +1864.0,2.512067326589762 +1865.0,2.1893008517535004 +1866.0,2.496335508949981 +1867.0,2.5249982264762068 +1868.0,2.3443771875930945 +1869.0,2.2081211879839677 +1870.0,2.004646478674989 +1871.0,2.6676017728688812 +1872.0,2.1795360200623817 +1873.0,2.1661452513562294 +1874.0,2.442198335996159 +1875.0,2.7012859929841553 +1876.0,3.126440527182346 +1877.0,2.137032506450055 +1878.0,2.619654725860562 +1879.0,2.022090687224813 +1880.0,2.3177197837123797 +1881.0,2.123110066061781 +1882.0,3.234681561020092 +1883.0,2.0810942585483807 +1884.0,2.7364638973664057 +1885.0,2.019008401529258 +1886.0,2.7309707046794682 +1887.0,2.0073840519680983 +1888.0,2.1040629053402986 +1889.0,2.1420923661553974 +1890.0,2.091717512413891 +1891.0,2.5032610341174353 +1892.0,2.145448419901423 +1893.0,2.0201193372101587 +1894.0,2.051363406116487 +1895.0,2.044703932273538 +1896.0,2.084359770547954 +1897.0,2.877673934672816 +1898.0,2.309890205436542 +1899.0,2.112338766651601 +1900.0,2.2839441861883913 +1901.0,2.2120780943549536 +1902.0,2.4882075192658126 +1903.0,2.181020706491098 +1904.0,2.686302226025218 +1905.0,2.465212640719872 +1906.0,2.166989458581264 +1907.0,2.0782821076625386 +1908.0,2.528746773496311 +1909.0,3.441469182843395 +1910.0,2.105148888874907 +1911.0,2.007765454637829 +1912.0,3.951209357938845 +1913.0,2.3038082687717854 +1914.0,2.188559458166404 +1915.0,2.129242697597171 +1916.0,2.049798214554975 +1917.0,2.514764390132412 +1918.0,2.3460989787417432 +1919.0,2.0790865360020465 +1920.0,2.186688043414801 +1921.0,2.390150606125855 +1922.0,2.0007382044804745 +1923.0,3.0168098274887316 +1924.0,2.2407788975994647 +1925.0,2.1173142115225896 +1926.0,2.6348525247303227 +1927.0,2.4823296513744317 +1928.0,2.4601642020768253 +1929.0,2.0869597454488766 +1930.0,2.5135231040919885 +1931.0,2.2788820216195145 +1932.0,2.1524374741887624 +1933.0,2.3492185026081236 +1934.0,2.5718652711080314 +1935.0,2.218919891279138 +1936.0,2.016276891218865 +1937.0,2.197545005448349 +1938.0,2.2174842149894727 +1939.0,2.093506997292753 +1940.0,2.3805379773995172 +1941.0,2.5844659596464177 +1942.0,2.343880506839529 +1943.0,2.1194572073950555 +1944.0,2.3020087532297278 +1945.0,2.1170970287219713 +1946.0,2.6017114075940695 +1947.0,2.2421395524113787 +1948.0,2.1044659621596904 +1949.0,2.09082016826593 +1950.0,2.8305447945847266 +1951.0,2.073309767812459 +1952.0,2.180391459297652 +1953.0,2.340093455238604 +1954.0,2.4042289757507582 +1955.0,2.172989117185674 +1956.0,2.1736423022494598 +1957.0,2.4058870246370754 +1958.0,3.002036617365671 +1959.0,2.6433173467779163 +1960.0,2.534125444698553 +1961.0,2.0306967086960257 +1962.0,2.4063165880754216 +1963.0,2.1984063551360116 +1964.0,2.307937012619691 +1965.0,2.0840482944821614 +1966.0,2.2333764495158883 +1967.0,2.034056506019536 +1968.0,3.20974554484026 +1969.0,2.3460430158287484 +1970.0,2.319975217515406 +1971.0,2.321425368198186 +1972.0,2.0122311399515205 +1973.0,2.198515464026 +1974.0,2.101879445965301 +1975.0,2.6773733136969398 +1976.0,2.7211381496938944 +1977.0,2.0070383363357736 +1978.0,2.001324576600328 +1979.0,2.487433205152598 +1980.0,2.4143177357918852 +1981.0,2.182971094160677 +1982.0,2.126824474943228 +1983.0,2.0957769475339956 +1984.0,2.5658574452015124 +1985.0,2.0458443929789962 +1986.0,2.4099821677047157 +1987.0,2.4770841546430025 +1988.0,3.6223584418157113 +1989.0,2.205077523258478 +1990.0,2.463347592504293 +1991.0,2.0072135553266777 +1992.0,2.9916833229890893 +1993.0,2.1681463049979848 +1994.0,2.0525496319533865 +1995.0,2.1520233413010708 +1996.0,2.011622582431868 +1997.0,2.1730868703700006 +1998.0,2.0320242468916683 +1999.0,2.4723466700200563 +2000.0,2.397614740941859 +2001.0,2.0501572413960205 +2002.0,3.0891207734500137 +2003.0,2.5104731039388346 +2004.0,2.387105293475982 +2005.0,2.0687429000345303 +2006.0,2.4620244671515428 +2007.0,2.070497730064211 +2008.0,3.0093652519589735 +2009.0,2.0896032213865645 +2010.0,2.1754861255774194 +2011.0,2.1510404179640363 +2012.0,2.1642545370677184 +2013.0,2.5516827987941877 +2014.0,2.1075392701125164 +2015.0,2.969608360047069 +2016.0,2.6450655968373793 +2017.0,2.303382566050971 +2018.0,2.71486765525555 +2019.0,2.6167208043488315 +2020.0,2.061825121565665 +2021.0,2.368993335090466 +2022.0,2.0397177806264204 +2023.0,2.099873047979932 +2024.0,2.014568274406758 +2025.0,3.240399690257415 +2026.0,2.253566145394928 +2027.0,2.0649990767373803 +2028.0,2.212787066289499 +2029.0,2.816329885117697 +2030.0,2.752866154044918 +2031.0,3.0680177057694755 +2032.0,2.1716399458605586 +2033.0,2.2676125058616585 +2034.0,2.0348468034570044 +2035.0,2.0188294020074613 +2036.0,2.1231652023233205 +2037.0,2.8194939657033635 +2038.0,2.2104901219463455 +2039.0,3.1274364253173617 +2040.0,2.1550964802346133 +2041.0,2.6753310471753853 +2042.0,2.0191559845990334 +2043.0,2.3107389920431514 +2044.0,3.3207126077967635 +2045.0,2.2514295807724825 +2046.0,2.0421759050757236 +2047.0,2.0092958968069845 +2048.0,2.756616119825726 +2049.0,2.499275718613633 +2050.0,2.2125263900528394 +2051.0,2.0534769135910733 +2052.0,2.0005008638580146 +2053.0,2.222583827941873 +2054.0,2.210353666190098 +2055.0,2.0571981903616177 +2056.0,2.1068923766989807 +2057.0,2.182765799367652 +2058.0,2.440526798769294 +2059.0,2.2740334947483207 +2060.0,2.3322858903959887 +2061.0,2.0061956811143986 +2062.0,2.9432546878430914 +2063.0,2.4161317263492172 +2064.0,2.3438671798008213 +2065.0,2.060024699352342 +2066.0,2.3372879981845047 +2067.0,2.8379654930639724 +2068.0,2.720979428126258 +2069.0,2.370936601181227 +2070.0,2.445011998664792 +2071.0,2.258841765436416 +2072.0,2.3999363778731047 +2073.0,2.476404907734441 +2074.0,2.0801414248006336 +2075.0,2.0636852626220965 +2076.0,2.3000027580434166 +2077.0,2.1924839464386037 +2078.0,2.348569982315336 +2079.0,3.348603272632346 +2080.0,2.2678360162582383 +2081.0,3.260688808829575 +2082.0,2.3517558261689 +2083.0,2.7405093870876387 +2084.0,2.5135530515343594 +2085.0,2.3164707973999947 +2086.0,2.0819893304230663 +2087.0,2.1930329520736938 +2088.0,2.077385157379168 +2089.0,2.393261755146571 +2090.0,2.2342578869475966 +2091.0,2.372011007980523 +2092.0,2.0814188305737136 +2093.0,2.066253904314834 +2094.0,2.0452318643048444 +2095.0,2.246947072410438 +2096.0,2.2358648759072746 +2097.0,2.1729662602384376 +2098.0,2.040384123481415 +2099.0,2.074900610213989 +2100.0,2.3104118299617253 +2101.0,2.027264271829763 +2102.0,2.8329677711315706 +2103.0,2.176743027722398 +2104.0,3.5954450253149357 +2105.0,2.80599664682203 +2106.0,2.2619694424310515 +2107.0,2.0023965798889054 +2108.0,2.511002720023986 +2109.0,2.452056375609324 +2110.0,2.314883777636399 +2111.0,2.463526609130561 +2112.0,2.0166183052647524 +2113.0,2.1201787127262244 +2114.0,2.199302306445378 +2115.0,2.0164964661554428 +2116.0,2.0603586946505454 +2117.0,2.4214962082901597 +2118.0,2.0992287613590603 +2119.0,2.3941293366850553 +2120.0,2.470325697503435 +2121.0,2.0662862205192565 +2122.0,2.211885463585706 +2123.0,2.0808639892869647 +2124.0,3.562550548516315 +2125.0,2.4608578689199447 +2126.0,2.1634556372737777 +2127.0,2.974908641346792 +2128.0,2.0737718703487182 +2129.0,2.1287844527751507 +2130.0,2.5540189810744542 +2131.0,2.2993176486996845 +2132.0,2.740445808208435 +2133.0,2.135789135280895 +2134.0,2.3691833936861 +2135.0,2.162031904800887 +2136.0,3.2469015405880373 +2137.0,2.47140762626785 +2138.0,3.2381375354001016 +2139.0,3.153958634576725 +2140.0,2.356873244585103 +2141.0,2.16350464040949 +2142.0,2.0808170984946677 +2143.0,2.637742856889118 +2144.0,2.1130815267673424 +2145.0,2.2795768977435014 +2146.0,2.274022046446049 +2147.0,2.062453650900892 +2148.0,2.133146844312625 +2149.0,2.19821352173442 +2150.0,2.4744894520590495 +2151.0,2.0275217408282002 +2152.0,2.1371504504070975 +2153.0,3.6964180320564743 +2154.0,2.3848178698210836 +2155.0,2.0054679110600357 +2156.0,2.4857912575156353 +2157.0,2.156351005746537 +2158.0,2.030874171210228 +2159.0,2.83592727455526 +2160.0,3.378150841137667 +2161.0,2.506877207241182 +2162.0,2.4761154045923206 +2163.0,2.0681275572545887 +2164.0,2.1957645391805944 +2165.0,2.0022760939585997 +2166.0,2.1338272164434993 +2167.0,2.131977210932792 +2168.0,2.1175931007482136 +2169.0,2.1388670535186414 +2170.0,2.2743341560122707 +2171.0,2.3735536021557517 +2172.0,2.5493293190610604 +2173.0,2.1579776106020403 +2174.0,2.033902595160388 +2175.0,2.1261439807116993 +2176.0,2.9470718318998035 +2177.0,2.4079563748564605 +2178.0,2.1091768468478627 +2179.0,3.0766174838039833 +2180.0,2.3406340089103614 +2181.0,2.1248915975104543 +2182.0,2.7364304663233012 +2183.0,2.828944285785529 +2184.0,2.4705459985765104 +2185.0,2.7080983477570144 +2186.0,2.247935952054327 +2187.0,2.032014962773508 +2188.0,2.140765588718251 +2189.0,2.2187651809251854 +2190.0,2.0297816612271986 +2191.0,2.1099549844948498 +2192.0,2.515356869915936 +2193.0,2.136677650926235 +2194.0,2.994547077226966 +2195.0,2.2398089569916304 +2196.0,2.4807939580704135 +2197.0,2.9360587684374897 +2198.0,2.0699867994731083 +2199.0,2.531085786245335 diff --git a/tests/fixtures/catalogs/case_026_background_medium_2200d.csv b/tests/fixtures/catalogs/case_026_background_medium_2200d.csv new file mode 100644 index 0000000..6e5ca81 --- /dev/null +++ b/tests/fixtures/catalogs/case_026_background_medium_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.460619313453763 +1.0,2.8643574681531496 +2.0,3.1354050748041216 +3.0,2.5700887307618263 +4.0,2.7326803345181907 +5.0,2.5032800422744756 +6.0,3.3213446245415565 +7.0,2.4625215050652414 +8.0,2.7392576995703997 +9.0,4.150382160223488 +10.0,2.6492285210486783 +11.0,3.0423591793264158 +12.0,2.478770630959849 +13.0,2.4985534543575287 +14.0,3.0762509508724505 +15.0,2.7040362435088268 +16.0,3.049539711205195 +17.0,3.1215315033757207 +18.0,2.5564496149437765 +19.0,4.656666275292853 +20.0,2.4607460142661437 +21.0,2.6000678297092734 +22.0,3.047313317166391 +23.0,3.505885694553225 +24.0,3.3297731436511646 +25.0,3.246041922717279 +26.0,2.8386174120145222 +27.0,2.4869854946646517 +28.0,3.5241784726880994 +29.0,2.7408944179084624 +30.0,2.785583071784582 +31.0,4.097698185670372 +32.0,2.7601750648842125 +33.0,3.0632867954128704 +34.0,2.6633696252927233 +35.0,2.445964258310872 +36.0,3.0072598172557496 +37.0,3.388901551231422 +38.0,3.8258682233551804 +39.0,2.470833975385722 +40.0,2.4175646192845317 +41.0,2.6090930081462953 +42.0,2.758294753712003 +43.0,2.589181231156837 +44.0,2.4913682421273244 +45.0,2.4983334835691893 +46.0,2.4806526634860417 +47.0,2.9248088864343735 +48.0,2.765621510329458 +49.0,3.3745054023349232 +50.0,2.6489170956538706 +51.0,3.207705812098476 +52.0,3.0717384534044636 +53.0,2.6505529084402335 +54.0,2.8934552676894594 +55.0,6.505136943332085 +56.0,2.4036322477244414 +57.0,2.606605264939736 +58.0,2.6153248339240642 +59.0,3.960136357875923 +60.0,2.5821203436189393 +61.0,3.9186509050113 +62.0,2.5624092214444514 +63.0,2.5233179789754434 +64.0,2.5133934323675393 +65.0,2.561067695786425 +66.0,3.505684464653017 +67.0,2.5504107160313283 +68.0,2.5404483913597793 +69.0,2.4796424715545498 +70.0,2.4211259089160566 +71.0,3.6938321712390776 +72.0,2.6610781673722483 +73.0,3.3862201256602162 +74.0,2.5452926149179937 +75.0,2.671782262831245 +76.0,2.9707072032704653 +77.0,2.8229158973989783 +78.0,2.846316465475619 +79.0,2.6851154108380877 +80.0,2.601223836199412 +81.0,2.5839492004134037 +82.0,3.3836811419514534 +83.0,3.233625511872794 +84.0,2.8703193489095624 +85.0,2.448849267669009 +86.0,2.43566482074976 +87.0,4.711395140128113 +88.0,2.5311981171105864 +89.0,2.95803741595475 +90.0,2.850372858985701 +91.0,3.133284193995917 +92.0,2.495610838314779 +93.0,3.532544964578832 +94.0,2.750671437335559 +95.0,4.03443832341897 +96.0,2.6665439983797277 +97.0,2.648918543579162 +98.0,2.759110067080635 +99.0,2.71413946257918 +100.0,2.478230159674976 +101.0,2.4694247789450094 +102.0,2.6405763988467075 +103.0,2.470643971280253 +104.0,2.4897475075210815 +105.0,2.5138822416160704 +106.0,2.4434734528795063 +107.0,2.4168231238362385 +108.0,2.6137771782518375 +109.0,2.649472234117855 +110.0,3.162536464217999 +111.0,3.2033290455238275 +112.0,2.630455836006505 +113.0,3.6496950076970736 +114.0,3.025847543888819 +115.0,3.5016823834556847 +116.0,2.930422037168152 +117.0,2.9018440630357247 +118.0,2.4532401797852783 +119.0,4.631220798610823 +120.0,4.331023704893467 +121.0,2.676610539269721 +122.0,2.4112887134411642 +123.0,4.935145951357035 +124.0,2.6123141026127206 +125.0,2.468336304191879 +126.0,2.588666162304903 +127.0,2.887043017845139 +128.0,2.6095248317476982 +129.0,2.422441669197419 +130.0,3.0572208955682205 +131.0,2.595797741013125 +132.0,2.688915636553706 +133.0,2.563276146448139 +134.0,2.520063241414393 +135.0,2.8911206675478915 +136.0,2.750911818148974 +137.0,4.498976194771556 +138.0,2.595810561508043 +139.0,4.719064482520004 +140.0,3.4672241631945546 +141.0,3.0285870993058452 +142.0,2.8226941826271235 +143.0,2.4691639712365707 +144.0,2.47286538388406 +145.0,2.830720734574635 +146.0,2.528160719521948 +147.0,2.6181305329248086 +148.0,2.4067682232064214 +149.0,3.0090148245323496 +150.0,3.9351959960667906 +151.0,3.7074087202467556 +152.0,2.4171852343555726 +153.0,2.6100497280216453 +154.0,2.5547720810967167 +155.0,2.497099658129649 +156.0,2.6080931515243324 +157.0,2.6447938853031765 +158.0,2.4605048174960635 +159.0,2.571907530948603 +160.0,3.5142454148642033 +161.0,2.6221935859370356 +162.0,2.9088778306247893 +163.0,4.13143613699724 +164.0,3.5635019131188232 +165.0,3.722014046384724 +166.0,2.6031352187755323 +167.0,2.6410953424247774 +168.0,3.149523366278141 +169.0,3.2924808427423047 +170.0,2.678734595789868 +171.0,3.01074025714324 +172.0,2.55934722418265 +173.0,2.4806484777193876 +174.0,3.378319999369406 +175.0,2.4443068108055552 +176.0,2.8716939442177325 +177.0,2.7496915132660553 +178.0,3.5072508195847893 +179.0,2.575565460270746 +180.0,2.434732992155436 +181.0,2.532379869502443 +182.0,3.9885946679566615 +183.0,3.826947256818534 +184.0,2.4141772936211736 +185.0,4.043358672299696 +186.0,2.545773131266211 +187.0,2.6689809931630784 +188.0,2.6326152651875945 +189.0,2.638607626115501 +190.0,2.658339225306077 +191.0,3.488182328375879 +192.0,2.4289511654150697 +193.0,2.88941983427729 +194.0,2.7699667306553923 +195.0,3.5124489944338126 +196.0,4.9607469177132435 +197.0,2.4363562818373383 +198.0,3.3157179750577837 +199.0,2.787454200959565 +200.0,2.6991310827384223 +201.0,2.8740056573304513 +202.0,2.5284382159312546 +203.0,3.297303617570906 +204.0,2.6407999323865416 +205.0,2.6152127880380713 +206.0,2.558645628813361 +207.0,2.4592352258478076 +208.0,2.6725754333390612 +209.0,3.1157327738319314 +210.0,2.4443820202229816 +211.0,2.497690273097752 +212.0,3.0117092958005323 +213.0,4.12466064635388 +214.0,2.5549715474212524 +215.0,4.19140646174465 +216.0,2.796816523789354 +217.0,3.198716387884159 +218.0,2.5656498270705685 +219.0,3.762193105594295 +220.0,4.068315830396464 +221.0,2.608307920407819 +222.0,3.5673603553958966 +223.0,2.8830088908149727 +224.0,2.9910560708984084 +225.0,3.0667404646387353 +226.0,2.461398361813118 +227.0,3.066171943836522 +228.0,2.4159799856008655 +229.0,2.844611114695689 +230.0,2.814176494079815 +231.0,2.7342972044803364 +232.0,2.675515973358114 +233.0,3.068424292791539 +234.0,3.316658545133837 +235.0,3.2204976967977195 +236.0,3.0989968619738626 +237.0,3.1513986138908017 +238.0,2.647525391696718 +239.0,3.2577165056592676 +240.0,2.489980694334439 +241.0,2.45509027162278 +242.0,3.1318960346311764 +243.0,2.452404764014732 +244.0,2.642373180473446 +245.0,2.5724106758128626 +246.0,2.728830232267524 +247.0,3.3146512345498316 +248.0,2.9431127997457893 +249.0,2.4593390103944883 +250.0,2.7841865448564236 +251.0,2.808783359836375 +252.0,2.5504065643467917 +253.0,2.733312452603677 +254.0,3.022759840269142 +255.0,2.6393239846618117 +256.0,3.3065654931779336 +257.0,4.590372994703911 +258.0,3.0135332190224307 +259.0,2.549455913399953 +260.0,2.690384794188336 +261.0,3.246506414753558 +262.0,3.277815265924241 +263.0,3.597865970528487 +264.0,3.278694670242457 +265.0,2.495162511069107 +266.0,3.5311097619044585 +267.0,3.1894105188272968 +268.0,2.6791105374004145 +269.0,2.535030641889128 +270.0,4.5153964870277035 +271.0,2.65357022995844 +272.0,2.6520685686667 +273.0,2.8580234324101683 +274.0,2.4609382344024953 +275.0,2.4469307552528927 +276.0,2.4453541286701834 +277.0,2.4438487593875076 +278.0,3.460480019655156 +279.0,3.310955185088702 +280.0,3.0750493634900398 +281.0,4.3310467799072505 +282.0,3.2689213515948556 +283.0,2.867268628689886 +284.0,2.442997633412904 +285.0,3.699245541933851 +286.0,3.158253536225207 +287.0,2.767166429596568 +288.0,3.082265241627567 +289.0,2.9831885472557476 +290.0,3.000573709171558 +291.0,3.3306310812853286 +292.0,3.083379930183737 +293.0,2.827653082684333 +294.0,2.960770627569348 +295.0,4.100812458104171 +296.0,3.268307450780373 +297.0,3.4079354999127363 +298.0,3.0762829399148997 +299.0,2.4906879075337227 +300.0,2.699435996822493 +301.0,2.4336052813857982 +302.0,2.536677368488627 +303.0,2.649401680948332 +304.0,2.61979529104479 +305.0,3.49719522057035 +306.0,2.917015572618813 +307.0,3.225188861055063 +308.0,3.010719603010698 +309.0,3.208475251880586 +310.0,2.6674065437876235 +311.0,4.367197844992175 +312.0,4.2322470375117565 +313.0,2.620638021564912 +314.0,2.452068404643042 +315.0,2.760765122325575 +316.0,3.3853765297567895 +317.0,2.592290617742442 +318.0,2.472001828725492 +319.0,2.9755205679186156 +320.0,2.507066713135985 +321.0,2.6197510814506404 +322.0,2.966537937101965 +323.0,2.414720281999881 +324.0,2.733046133088245 +325.0,2.741335325833344 +326.0,3.3729238756999926 +327.0,2.477390494084727 +328.0,2.7673622917382756 +329.0,2.6569653991365363 +330.0,3.448873455158119 +331.0,2.756129848706482 +332.0,2.7182439694721854 +333.0,2.759796277140919 +334.0,3.071126411484739 +335.0,2.531095882037544 +336.0,2.5204895619314835 +337.0,3.2624929598168144 +338.0,2.426406823875463 +339.0,3.1213703224559746 +340.0,3.6796578619251763 +341.0,3.156349854543998 +342.0,2.528513508553325 +343.0,3.2544815899699935 +344.0,2.5514275519344642 +345.0,2.829700728056276 +346.0,2.5454367233933297 +347.0,3.0631835527728404 +348.0,3.61848242428041 +349.0,2.979952987087136 +350.0,2.458541563093091 +351.0,4.4983114677464116 +352.0,2.747104290016445 +353.0,2.5893010754618593 +354.0,3.8170980674842037 +355.0,3.6391020956370017 +356.0,2.6745717456798612 +357.0,2.511389562789814 +358.0,2.6885659599243086 +359.0,2.5193597019077694 +360.0,2.488386458500139 +361.0,3.4019548195819187 +362.0,4.099437885313524 +363.0,3.3909080235129183 +364.0,2.417151622486333 +365.0,2.6222746563876553 +366.0,3.207611595998232 +367.0,2.5161526390484386 +368.0,2.906984463100033 +369.0,2.5974358879729897 +370.0,2.401281637728669 +371.0,3.291889491862328 +372.0,2.5326627847849883 +373.0,2.8138704091610935 +374.0,3.179108447960248 +375.0,3.0511326213491192 +376.0,3.4546240227865006 +377.0,2.400511467963034 +378.0,2.9384257167802503 +379.0,2.523574074136954 +380.0,3.5692221734002914 +381.0,2.651961295751983 +382.0,2.913008726661152 +383.0,2.8835424766488673 +384.0,2.4018921884892004 +385.0,2.4299151377352275 +386.0,2.4418554263024945 +387.0,3.171607083061321 +388.0,3.1020296793202187 +389.0,2.590488480918867 +390.0,2.74510994167982 +391.0,2.8769920517006358 +392.0,2.560189231172653 +393.0,2.9914086072473376 +394.0,2.408766253525295 +395.0,2.4160915668843996 +396.0,2.4798181451717594 +397.0,2.906426002885028 +398.0,2.510544786091478 +399.0,2.4395291953896985 +400.0,2.4855107579201055 +401.0,2.444908873482638 +402.0,3.0718928797994276 +403.0,2.6250689291217433 +404.0,3.8549849854178815 +405.0,2.675968392201908 +406.0,3.437015483199436 +407.0,2.6421653783256804 +408.0,2.730913719499035 +409.0,2.8500597303466386 +410.0,2.5114553339502383 +411.0,2.5762355617209476 +412.0,2.4090198432700447 +413.0,3.7850107871040963 +414.0,2.5781384315766123 +415.0,2.4495811827685023 +416.0,2.486034628208614 +417.0,4.867369816803411 +418.0,2.8225452233764408 +419.0,2.8102266765363693 +420.0,2.652272972291968 +421.0,2.6758578053457507 +422.0,2.511455938365622 +423.0,2.9353978846362825 +424.0,2.6806940700155493 +425.0,3.391939637648727 +426.0,2.6847052918102188 +427.0,4.309331082262158 +428.0,3.359404536706307 +429.0,2.8244597346298512 +430.0,3.9941029694645036 +431.0,2.672688848182379 +432.0,3.0520524191632634 +433.0,3.3289501872699936 +434.0,3.2192154426560515 +435.0,3.4339088145955903 +436.0,2.780490407978728 +437.0,2.4690042464106825 +438.0,3.0610101037400694 +439.0,2.4539616818516836 +440.0,2.977190165254005 +441.0,2.641507032924819 +442.0,2.425166780210696 +443.0,3.7829689797829014 +444.0,2.5328117531125005 +445.0,2.8895385203057526 +446.0,3.237406080521086 +447.0,2.587266506297702 +448.0,2.550180130190584 +449.0,2.8986994941970052 +450.0,2.8466057514859466 +451.0,2.431478314418996 +452.0,2.5706488701264876 +453.0,3.478873485242146 +454.0,2.978955883900991 +455.0,2.686141243027066 +456.0,3.6687440661242845 +457.0,2.6123179971551025 +458.0,3.1895754955591644 +459.0,2.922160821274651 +460.0,3.712283300597567 +461.0,3.1588532426987315 +462.0,2.513037481167872 +463.0,2.7757607579094508 +464.0,2.7768021058061327 +465.0,3.0230900657453628 +466.0,2.51160678292957 +467.0,2.6258552376482753 +468.0,3.3933962568687583 +469.0,2.7360331707341237 +470.0,2.52257160196764 +471.0,2.7057868136550303 +472.0,2.597590922735582 +473.0,2.5024345437496147 +474.0,3.4258532563629753 +475.0,3.4301221808343882 +476.0,2.6925054304905642 +477.0,3.4826550704181907 +478.0,2.9884796278146775 +479.0,3.1816017016520752 +480.0,3.236047059646058 +481.0,2.7228534081232376 +482.0,3.5872932924107364 +483.0,3.4313966314901596 +484.0,2.7375737524032484 +485.0,2.589167261004593 +486.0,3.070340851379761 +487.0,4.731762628744229 +488.0,2.77536779506509 +489.0,2.520846311190124 +490.0,2.615344701393469 +491.0,2.8872060750421644 +492.0,2.8172976971549497 +493.0,2.9921974782517604 +494.0,2.881718340579196 +495.0,3.388739373533885 +496.0,2.4662518890492726 +497.0,3.422889505477956 +498.0,3.250780987625353 +499.0,2.5671042494678638 +500.0,2.6871157651991893 +501.0,2.4137779292792696 +502.0,3.311660120292296 +503.0,2.918733335658922 +504.0,2.853561072319992 +505.0,2.5412247112648423 +506.0,2.4952208177568513 +507.0,2.5737044589706164 +508.0,2.91951661439509 +509.0,3.13929724513499 +510.0,2.690054455577862 +511.0,4.019201996872576 +512.0,2.5757013223427787 +513.0,2.5212074891399117 +514.0,2.428200294353675 +515.0,3.1560635148920837 +516.0,3.2063813880019962 +517.0,2.5993392757988336 +518.0,4.411436481337552 +519.0,2.7796235862964536 +520.0,4.3142857576791895 +521.0,3.997521064041647 +522.0,2.7312453170254005 +523.0,3.5145495388892796 +524.0,3.672572682105824 +525.0,4.1714140871303655 +526.0,2.584831526654957 +527.0,3.390851955544093 +528.0,2.6925782019737596 +529.0,2.559971772936258 +530.0,4.977518603704909 +531.0,3.252574100145469 +532.0,3.4346587072678734 +533.0,2.698047852636618 +534.0,2.4626554257305613 +535.0,3.2214620309650988 +536.0,2.4292242558486983 +537.0,2.660013115819933 +538.0,2.9852416360994747 +539.0,2.5358010574118683 +540.0,2.696324918062078 +541.0,2.694452631214019 +542.0,3.220227679715333 +543.0,2.8438778867939276 +544.0,2.431026474418604 +545.0,2.9156939848049417 +546.0,2.4063684141678094 +547.0,2.7051413393455146 +548.0,2.4701745578568386 +549.0,3.148020917181576 +550.0,2.745695363665548 +551.0,2.4821546036882833 +552.0,2.744670304888724 +553.0,2.77474030092428 +554.0,2.501663082081497 +555.0,4.163659235868218 +556.0,3.3605467892821097 +557.0,3.4728065414796636 +558.0,3.022393115084811 +559.0,2.474821436852285 +560.0,2.49653376619181 +561.0,2.7950914028922376 +562.0,3.4881005424650926 +563.0,2.9681386654626793 +564.0,3.5007868562207682 +565.0,2.8139028531537975 +566.0,2.46603548112934 +567.0,2.901147074235823 +568.0,3.856656940456828 +569.0,3.1978268475306977 +570.0,2.4247341360006174 +571.0,4.026708793460335 +572.0,3.51233551429315 +573.0,2.542825824564562 +574.0,2.6012382089709924 +575.0,2.4304072121564992 +576.0,2.695953706319262 +577.0,3.15877723959017 +578.0,3.8885997935112777 +579.0,2.476411235204613 +580.0,3.8585484923960225 +581.0,2.6154501967258095 +582.0,2.4217054660457977 +583.0,2.9042522958177477 +584.0,4.2271335238670344 +585.0,2.633186981591176 +586.0,2.434872380606392 +587.0,3.361923636425366 +588.0,2.595987539202532 +589.0,2.426190605453086 +590.0,2.5026504641916953 +591.0,4.067915009426524 +592.0,2.7996720481321713 +593.0,2.987569857626368 +594.0,2.5387994245396364 +595.0,3.657494124604428 +596.0,3.252483448253399 +597.0,2.480253414896853 +598.0,2.678595808254254 +599.0,2.5989970211294278 +600.0,2.536858663755574 +601.0,2.615371893561965 +602.0,3.398342425965043 +603.0,2.6826589991857928 +604.0,2.412920086948121 +605.0,2.7377756550396217 +606.0,2.488125063044224 +607.0,3.0921287990431514 +608.0,4.146467090404691 +609.0,2.4185090473760513 +610.0,3.1251406120682335 +611.0,2.874214609745577 +612.0,2.5835312251105997 +613.0,2.712962821572978 +614.0,3.546349995237832 +615.0,2.7445738565663174 +616.0,2.6046124718616577 +617.0,2.6213418852101045 +618.0,4.010510342449947 +619.0,2.7876355139027456 +620.0,2.757771727673007 +621.0,2.5466572367649807 +622.0,3.2878674817887767 +623.0,2.445773717340264 +624.0,3.1132607918427415 +625.0,2.4902780111974123 +626.0,2.4206276946535503 +627.0,2.724010230312158 +628.0,2.5315273408279455 +629.0,2.579231864385577 +630.0,3.419396390848477 +631.0,2.5595695585665776 +632.0,2.7512416694367547 +633.0,2.7010199352996294 +634.0,2.4728581406345205 +635.0,2.421491001205153 +636.0,2.974252694664944 +637.0,2.5295655656561378 +638.0,2.986668906846064 +639.0,2.4627681895907156 +640.0,2.561252267907769 +641.0,2.9120810536701764 +642.0,2.869440584720086 +643.0,2.6787462670341426 +644.0,3.2387262047084198 +645.0,2.6125571310741433 +646.0,2.8164007224124434 +647.0,3.374290167167648 +648.0,2.7006935117646713 +649.0,2.868324737913296 +650.0,2.4672562021678206 +651.0,2.7459353572035727 +652.0,2.5645820648948776 +653.0,3.1225107631356077 +654.0,2.637483837865328 +655.0,2.459261355646564 +656.0,4.223593670570503 +657.0,2.7720476255596997 +658.0,3.4849898785787117 +659.0,3.442992454945443 +660.0,2.8086354387779626 +661.0,3.671696062561881 +662.0,3.1433778764154945 +663.0,2.908672743645985 +664.0,3.5470102044883296 +665.0,2.547827083390144 +666.0,2.4593977277990824 +667.0,2.4575415400442537 +668.0,2.9904022986307233 +669.0,2.5187441292993293 +670.0,3.357657760014353 +671.0,2.801894195103601 +672.0,3.113087355896386 +673.0,2.6245387944023637 +674.0,3.0902446598187105 +675.0,2.879923755914244 +676.0,2.606248005379732 +677.0,2.6642195807148727 +678.0,3.1676299419390084 +679.0,2.566697132167318 +680.0,3.6281863311637013 +681.0,2.5608954279776 +682.0,2.425521571002271 +683.0,3.288590191121829 +684.0,4.251416498385425 +685.0,3.0345897847232326 +686.0,2.914983875817291 +687.0,3.222073812584415 +688.0,2.959437524302025 +689.0,2.7477928493662405 +690.0,2.401210548935494 +691.0,2.623899530492829 +692.0,2.5179664847097514 +693.0,2.4452796398748977 +694.0,3.4981016483786114 +695.0,2.5709225013380914 +696.0,2.406325961098344 +697.0,2.5349751226695263 +698.0,2.619768343458086 +699.0,3.2939593712341644 +700.0,2.969176240908566 +701.0,2.5346289067188312 +702.0,2.5372995675681858 +703.0,3.719281988046288 +704.0,2.5311998908893347 +705.0,2.427829515182246 +706.0,2.770961899436987 +707.0,2.492221769109144 +708.0,3.7863557148187317 +709.0,3.3744055116478737 +710.0,3.7580800757405965 +711.0,2.561813285262904 +712.0,4.44954063829559 +713.0,2.810265999839288 +714.0,2.6181437252815876 +715.0,2.4276987735391566 +716.0,2.8415586490962017 +717.0,3.083629384761923 +718.0,2.773695094977046 +719.0,2.5254875082105945 +720.0,3.593089753220231 +721.0,3.085525439667115 +722.0,2.4889793878119995 +723.0,3.2438946353080125 +724.0,2.5298324278492013 +725.0,2.4122961537039562 +726.0,2.462448406910379 +727.0,2.6641805772457525 +728.0,2.629843896302455 +729.0,2.5760502711031257 +730.0,3.290632160653992 +731.0,2.747826412041209 +732.0,2.4193426179366475 +733.0,2.8228784489993863 +734.0,2.525389538988855 +735.0,2.4996355068423237 +736.0,2.806652352901768 +737.0,2.555906253319676 +738.0,2.7959359739720524 +739.0,3.071044372945902 +740.0,2.835531022028834 +741.0,3.0170675235216846 +742.0,2.6856397600772675 +743.0,3.321151170717014 +744.0,2.645413454295958 +745.0,2.5036750956805798 +746.0,4.493884977781998 +747.0,3.1267923652654224 +748.0,2.7509669054554853 +749.0,2.5100915503235686 +750.0,2.6062005888937323 +751.0,2.5347292307551004 +752.0,2.6104666834249732 +753.0,2.717203281805969 +754.0,4.917777026611505 +755.0,2.7080603603255495 +756.0,2.8460918153434687 +757.0,3.0059935274125174 +758.0,3.6779669931494743 +759.0,2.5974359556186735 +760.0,3.083784236733627 +761.0,2.8511316437121605 +762.0,2.5486534780394545 +763.0,3.2005545530772785 +764.0,3.442784636717778 +765.0,3.046819744933348 +766.0,3.7487468546182634 +767.0,2.788978056714231 +768.0,2.476297491266121 +769.0,2.6369539976674177 +770.0,2.9002883854744326 +771.0,2.6121705999322686 +772.0,2.5892542531424985 +773.0,3.0291791327737942 +774.0,2.411966374093356 +775.0,3.2599421800976076 +776.0,3.245639020596988 +777.0,2.6145278405530186 +778.0,6.270889184571285 +779.0,3.4238688895301896 +780.0,3.1166511181375496 +781.0,2.430885082881701 +782.0,2.4160311673807344 +783.0,2.5857889874206568 +784.0,2.530590840538821 +785.0,3.408066151959561 +786.0,2.953414084489406 +787.0,2.9117220045307066 +788.0,2.594353305259238 +789.0,2.5563213243147147 +790.0,2.520632682947925 +791.0,2.4710168168686732 +792.0,2.9545289403602717 +793.0,3.5441767265686765 +794.0,2.5012027432374024 +795.0,2.7848351880053737 +796.0,2.51142837709733 +797.0,2.71574398323025 +798.0,2.756418367431056 +799.0,2.9320316905055677 +800.0,2.8123298880178336 +801.0,2.5738185646361447 +802.0,2.778224349248787 +803.0,4.069946535706958 +804.0,2.8925758816681606 +805.0,3.14294437446126 +806.0,2.968835702848808 +807.0,2.7042099994462734 +808.0,3.9254357087863863 +809.0,2.717315581316226 +810.0,2.475831327872507 +811.0,2.7675514228814766 +812.0,2.8675469047741102 +813.0,2.777512668284677 +814.0,2.6308295433273905 +815.0,2.4969825433402524 +816.0,3.074127730619413 +817.0,2.5873530204167716 +818.0,2.525383970303739 +819.0,5.929529728450453 +820.0,2.459392993655507 +821.0,2.746177871065516 +822.0,3.7745241756201304 +823.0,2.7803236488632628 +824.0,2.502133263969017 +825.0,3.54758439069629 +826.0,3.017045274297717 +827.0,2.4862053476046713 +828.0,2.8156057121112203 +829.0,2.476545989447905 +830.0,2.5546363501764677 +831.0,2.5933350491958413 +832.0,2.4416337791833804 +833.0,2.614185213269745 +834.0,3.2495354793255253 +835.0,2.519723741270403 +836.0,2.7681962595507574 +837.0,2.4741691159544263 +838.0,4.084193771259608 +839.0,2.7256468847226287 +840.0,2.62533121233528 +841.0,2.655866676447346 +842.0,2.8950709619029387 +843.0,2.808762477411484 +844.0,3.5506815174683064 +845.0,3.192238424482074 +846.0,2.446845537688126 +847.0,2.7923624748088667 +848.0,2.418858811393084 +849.0,2.4089277156088915 +850.0,3.037684858197176 +851.0,2.9086928680575346 +852.0,2.9061543819197 +853.0,2.62452615300057 +854.0,4.126825111191835 +855.0,2.810973716850591 +856.0,2.903444351882132 +857.0,3.1044035850796536 +858.0,2.7733868195288958 +859.0,2.542274345530027 +860.0,2.483510741979458 +861.0,2.427207045359082 +862.0,2.452170937834982 +863.0,2.9319077316273456 +864.0,2.480283630144524 +865.0,2.6622948448890487 +866.0,2.855186789694985 +867.0,2.4121479278044458 +868.0,2.4328209638566825 +869.0,3.7150528046320552 +870.0,2.743221333334289 +871.0,2.5254417903206616 +872.0,3.9098408093075863 +873.0,3.06057733593313 +874.0,2.8890086890052764 +875.0,2.4562833868692504 +876.0,3.023392988766328 +877.0,2.8886304306517347 +878.0,3.317166891565748 +879.0,2.8354438815808343 +880.0,2.6062694278765806 +881.0,2.9697140532640507 +882.0,2.7896305876382037 +883.0,2.840853948490696 +884.0,2.750101228198276 +885.0,2.508464055382684 +886.0,2.641974537450529 +887.0,4.2933407600120574 +888.0,2.674764806447976 +889.0,2.865387803647696 +890.0,4.719967549681876 +891.0,2.449790215669624 +892.0,2.5430877108488024 +893.0,2.573497719116846 +894.0,2.640260905608215 +895.0,3.996975269652241 +896.0,2.663591864329587 +897.0,2.7672648173651733 +898.0,2.8416486184773855 +899.0,2.7033402472941366 +900.0,2.555829563184215 +901.0,3.2231381445799157 +902.0,2.853378277371138 +903.0,2.591899415574215 +904.0,2.639182691488306 +905.0,2.424625860913524 +906.0,3.6844045084515518 +907.0,3.1811951292432474 +908.0,3.2216888896799416 +909.0,2.4168185558287902 +910.0,2.595995671356496 +911.0,3.3360403756728876 +912.0,3.262964232566179 +913.0,2.6289439613442993 +914.0,2.485720691207591 +915.0,2.777123101178972 +916.0,2.6399552500573096 +917.0,3.366727816984424 +918.0,2.4840718833473714 +919.0,2.413630204830074 +920.0,2.735553624718456 +921.0,2.983113407791704 +922.0,2.7796003061180574 +923.0,3.1836225689834197 +924.0,2.8139402196479413 +925.0,3.2018072101753043 +926.0,3.2733330361008655 +927.0,2.461866578764181 +928.0,3.8327822646652954 +929.0,2.5876808192825216 +930.0,3.1865171398659826 +931.0,2.451613759020131 +932.0,3.227622541603107 +933.0,3.772013325786715 +934.0,2.669811464697139 +935.0,3.433504915519072 +936.0,2.6549171891277425 +937.0,2.696945218912588 +938.0,2.9992429601344597 +939.0,3.01455732517332 +940.0,2.4876792122291236 +941.0,2.545941873671743 +942.0,2.8660119620981965 +943.0,2.49213950412186 +944.0,3.0366756730052 +945.0,2.8577304703311284 +946.0,2.492969248148105 +947.0,2.7932155067578632 +948.0,2.991436279047369 +949.0,3.0591767988245406 +950.0,2.4322849585230633 +951.0,2.449183695999354 +952.0,2.5741078620152877 +953.0,2.8446480539311816 +954.0,2.7556503987153866 +955.0,2.4294221823480107 +956.0,3.1932958487713616 +957.0,2.867530477448664 +958.0,2.5442411621575096 +959.0,3.546215346020416 +960.0,2.414425799090043 +961.0,2.433233926385872 +962.0,3.060926120042671 +963.0,4.26248529960861 +964.0,2.9462739025496334 +965.0,2.5485519540442536 +966.0,2.5693185310695426 +967.0,3.2200395969852464 +968.0,2.5119458105638586 +969.0,2.42485584099259 +970.0,2.64311094702733 +971.0,2.5508195548412202 +972.0,2.99999986897803 +973.0,2.654844504965509 +974.0,2.5428338420429557 +975.0,2.479608850211505 +976.0,2.5079661764708883 +977.0,2.5790155300065414 +978.0,2.4525902638140535 +979.0,3.4974151250851113 +980.0,3.1441123136741256 +981.0,2.838747412219342 +982.0,2.7142751297035574 +983.0,3.3342259243896617 +984.0,3.1255050812652865 +985.0,4.7157608798669735 +986.0,2.7362477028222254 +987.0,4.140647213259361 +988.0,2.69298007633685 +989.0,2.862818327335226 +990.0,2.446455262429175 +991.0,2.637204253477984 +992.0,2.7643274010921277 +993.0,2.4118279018679543 +994.0,2.5282149810274865 +995.0,2.8370469097528384 +996.0,2.8482194389452515 +997.0,2.5032218422183554 +998.0,2.5652872299730105 +999.0,2.6958135593866057 +1000.0,2.6133872101715596 +1001.0,2.574992263536717 +1002.0,2.637187680839691 +1003.0,2.7934022454726013 +1004.0,2.542241681968801 +1005.0,2.7453593632939564 +1006.0,3.760895406311829 +1007.0,2.7712073218855426 +1008.0,2.488475247868137 +1009.0,2.5962163540594805 +1010.0,2.931357211999413 +1011.0,2.4856178412735703 +1012.0,2.7042996014280454 +1013.0,3.205031801376884 +1014.0,2.61138906711389 +1015.0,2.528156288966785 +1016.0,3.568564145575319 +1017.0,2.9744020817248016 +1018.0,3.4918192659282363 +1019.0,3.246741397340564 +1020.0,2.6803396515288185 +1021.0,2.420211410366297 +1022.0,2.7471731981172267 +1023.0,2.633679821363904 +1024.0,2.8434085712478865 +1025.0,3.2286231385431527 +1026.0,2.564009559084412 +1027.0,2.415281004735406 +1028.0,2.5409366380678335 +1029.0,3.23649948813911 +1030.0,2.874117584687444 +1031.0,2.8172750307588963 +1032.0,2.6071059075092102 +1033.0,2.423012710130456 +1034.0,2.7485636474644886 +1035.0,3.0869099039429133 +1036.0,2.4021484230822354 +1037.0,2.9113286919905335 +1038.0,3.335171207578053 +1039.0,3.1495842991774197 +1040.0,2.57895468359275 +1041.0,3.28820842476878 +1042.0,2.5662018623966008 +1043.0,2.7015652159433854 +1044.0,2.555282671781684 +1045.0,2.619143581150951 +1046.0,2.677341194982193 +1047.0,2.701346002427254 +1048.0,2.6377784937321485 +1049.0,2.735228765197875 +1050.0,2.9043446937595268 +1051.0,2.585085401474674 +1052.0,2.870399141819518 +1053.0,2.6766921617710926 +1054.0,2.6739858580920743 +1055.0,2.436100951208544 +1056.0,3.4058682782371097 +1057.0,4.426209491455122 +1058.0,2.455751541592005 +1059.0,2.5056678252756304 +1060.0,2.760001737659562 +1061.0,2.5610470844686914 +1062.0,2.4488534391949304 +1063.0,2.4220795008812788 +1064.0,2.7127294982628616 +1065.0,3.441463950213107 +1066.0,2.9105312173853255 +1067.0,2.6391816124634424 +1068.0,2.446684724080577 +1069.0,4.173176995108301 +1070.0,2.4073135392082343 +1071.0,3.526358545619739 +1072.0,2.567126379156783 +1073.0,2.6252465865129007 +1074.0,2.606024750315578 +1075.0,2.8709510854228117 +1076.0,3.5689199596103873 +1077.0,2.547424852528714 +1078.0,2.4312131093370732 +1079.0,3.0101087201620658 +1080.0,2.9899383789634433 +1081.0,3.1855820060119333 +1082.0,3.337296844592482 +1083.0,2.410105161653932 +1084.0,2.6253556657284145 +1085.0,2.7004143464978245 +1086.0,3.706094707024227 +1087.0,2.7960680011697154 +1088.0,2.76109845695592 +1089.0,2.9167817827177482 +1090.0,4.926788380335944 +1091.0,3.210072330190327 +1092.0,2.691167850461401 +1093.0,2.439023166658957 +1094.0,2.4105713117882543 +1095.0,2.669102427407797 +1096.0,2.649773748191896 +1097.0,2.6946919117910864 +1098.0,2.4274186531283295 +1099.0,2.411090732040524 +1100.0,2.751197893465042 +1101.0,2.944904793680211 +1102.0,2.4227803026304127 +1103.0,2.495852212169154 +1104.0,2.8105912615248854 +1105.0,2.448154799837322 +1106.0,2.40289795068054 +1107.0,2.721751050759531 +1108.0,2.4097966035836818 +1109.0,2.9402921539788283 +1110.0,2.779452810606746 +1111.0,2.9700355976289634 +1112.0,2.708559779052855 +1113.0,2.600455979878704 +1114.0,3.5497633104721564 +1115.0,3.0633590210248975 +1116.0,3.1521619719067475 +1117.0,3.1737936646901255 +1118.0,2.463715928048949 +1119.0,3.0120736816951106 +1120.0,3.7606601885793047 +1121.0,2.8903452568830676 +1122.0,2.5910636757775634 +1123.0,3.5092892217891327 +1124.0,2.4438125880882287 +1125.0,2.43026356465192 +1126.0,2.465690164786859 +1127.0,3.592371324265916 +1128.0,4.129560383052178 +1129.0,3.158709165858177 +1130.0,3.0882273284547552 +1131.0,2.611583962758908 +1132.0,4.316454584621673 +1133.0,2.465151823805085 +1134.0,3.055250011192285 +1135.0,2.889309386885046 +1136.0,3.3900477559528404 +1137.0,2.7747421572183137 +1138.0,2.6161626381837224 +1139.0,4.705073061885733 +1140.0,2.8980516837451815 +1141.0,2.706510477517005 +1142.0,2.4810605414814306 +1143.0,2.9436223652398104 +1144.0,3.6442263475091345 +1145.0,3.3829544358385846 +1146.0,2.7235736158033825 +1147.0,2.652423947151198 +1148.0,2.4661871308431467 +1149.0,3.6750154251688887 +1150.0,2.6123551323278753 +1151.0,3.201813609467635 +1152.0,2.6400098971293464 +1153.0,3.3099852991863954 +1154.0,2.9085184421741044 +1155.0,2.696508113870749 +1156.0,2.812464767309032 +1157.0,4.037741630962666 +1158.0,2.4808462729457874 +1159.0,3.1653976634273326 +1160.0,2.747636151429122 +1161.0,3.2009326020917204 +1162.0,4.407414308665536 +1163.0,2.5982217968641885 +1164.0,3.343202651338682 +1165.0,2.4302096465984304 +1166.0,2.6312871600365186 +1167.0,2.692955764210551 +1168.0,2.7365032533981384 +1169.0,3.3964506584202083 +1170.0,2.638045044062371 +1171.0,2.5373768100035914 +1172.0,2.448814017957228 +1173.0,2.8826940417843074 +1174.0,2.8615567618351148 +1175.0,3.5394061368114653 +1176.0,2.5023446240683405 +1177.0,2.985538476123271 +1178.0,2.4914481746183137 +1179.0,2.5494174740753626 +1180.0,2.6486292976071764 +1181.0,3.7410261934371913 +1182.0,2.6725502493798716 +1183.0,3.3520461832452346 +1184.0,2.773197911182664 +1185.0,2.643142109713839 +1186.0,2.7487189779800163 +1187.0,3.4724026921958178 +1188.0,2.411141070046187 +1189.0,2.585585184090677 +1190.0,2.4338957479758254 +1191.0,2.559001623033498 +1192.0,2.8281490592031844 +1193.0,3.0576193740247826 +1194.0,2.870877077503254 +1195.0,3.100133074937898 +1196.0,2.693085735805415 +1197.0,3.3782133243451273 +1198.0,2.525082837481735 +1199.0,3.653264093016533 +1200.0,2.621757864338363 +1201.0,2.81748108017843 +1202.0,2.4735077247812707 +1203.0,3.6823738910478374 +1204.0,2.582490117504607 +1205.0,2.406829670698965 +1206.0,2.6002046002587793 +1207.0,3.4012723341881976 +1208.0,3.683079718918684 +1209.0,6.122193805461095 +1210.0,2.4728992143896193 +1211.0,3.4821919694370362 +1212.0,2.799515173390891 +1213.0,2.473026502883349 +1214.0,2.7091393630719938 +1215.0,2.7782363081869796 +1216.0,2.4160616146082488 +1217.0,2.946431570390687 +1218.0,3.1002442733956075 +1219.0,3.1397654249689455 +1220.0,2.549621055769917 +1221.0,2.4512878003065324 +1222.0,2.5425034104837994 +1223.0,2.806868646532822 +1224.0,3.033342819487931 +1225.0,2.4359563952887844 +1226.0,2.794241761518693 +1227.0,2.4725531673481713 +1228.0,2.618726926708648 +1229.0,3.077162598387066 +1230.0,2.4046274061294617 +1231.0,2.7492022112072902 +1232.0,2.451019787836079 +1233.0,2.5432963228070644 +1234.0,2.557204409235096 +1235.0,2.5929612708256093 +1236.0,2.4957734432665797 +1237.0,2.7675504036332517 +1238.0,2.7433158842896117 +1239.0,3.225213636582455 +1240.0,2.6850543842032524 +1241.0,2.4400215530677913 +1242.0,2.891188006166802 +1243.0,3.3526014506760706 +1244.0,2.6395323756833946 +1245.0,4.21106669336511 +1246.0,3.2634485232416157 +1247.0,2.6465561823510355 +1248.0,4.125322712625423 +1249.0,2.579829976696208 +1250.0,2.503576578947982 +1251.0,3.0429188547224575 +1252.0,2.9237149536423517 +1253.0,2.740391911589247 +1254.0,2.9958579852851197 +1255.0,4.152874548199475 +1256.0,4.110406641119476 +1257.0,3.9710111336347156 +1258.0,2.872695952197596 +1259.0,3.8298854082405533 +1260.0,4.641505539975465 +1261.0,3.577509438297243 +1262.0,2.4881198739501613 +1263.0,4.568649074385142 +1264.0,2.4576024403589454 +1265.0,2.495843218267479 +1266.0,2.8367221126251767 +1267.0,3.42606509828484 +1268.0,3.1581525889359687 +1269.0,2.4441613660682604 +1270.0,3.3396479683596416 +1271.0,2.450270870093145 +1272.0,2.729796585643332 +1273.0,2.40839916670292 +1274.0,2.5019035776997405 +1275.0,3.41738164336233 +1276.0,2.8815092543234657 +1277.0,3.079862171168497 +1278.0,2.813442346906227 +1279.0,3.7837328913846955 +1280.0,2.4234682051615133 +1281.0,2.759541768366629 +1282.0,2.4275974093770825 +1283.0,2.718925516981923 +1284.0,2.492330665965193 +1285.0,2.9197198869177097 +1286.0,2.4439214848404083 +1287.0,3.0674782142914716 +1288.0,2.8979461265786943 +1289.0,3.380076212639334 +1290.0,2.5800822831034425 +1291.0,2.890564567282449 +1292.0,3.283464467772033 +1293.0,2.5375280398631386 +1294.0,2.8896103562921596 +1295.0,2.6917310158872354 +1296.0,2.722738184684845 +1297.0,3.4988894024944592 +1298.0,3.053284050630352 +1299.0,3.345495824087437 +1300.0,2.5022884145910655 +1301.0,2.5105886100551134 +1302.0,4.615743121963783 +1303.0,2.8742868619182467 +1304.0,2.6224069836625636 +1305.0,2.9749545406341875 +1306.0,2.798705527613312 +1307.0,2.5251831488002967 +1308.0,3.373021963061811 +1309.0,2.674516608767296 +1310.0,2.4270370474728558 +1311.0,2.906252170125236 +1312.0,2.6840949208482474 +1313.0,2.447909013214947 +1314.0,2.7201869188487424 +1315.0,2.4041741334355433 +1316.0,3.073233156639918 +1317.0,3.5447023678489282 +1318.0,2.985557342057822 +1319.0,2.7716839764148724 +1320.0,2.465535764567972 +1321.0,2.8033832486646895 +1322.0,2.753033725475546 +1323.0,2.8182341453382 +1324.0,2.836167463501954 +1325.0,2.5069284561065164 +1326.0,3.0184448601029605 +1327.0,2.429896745846458 +1328.0,2.7694995990319016 +1329.0,2.777832645422195 +1330.0,2.923326199622484 +1331.0,3.3006838606296176 +1332.0,3.4354269667088584 +1333.0,3.837889425465543 +1334.0,2.4579457965205984 +1335.0,2.595869398342798 +1336.0,2.9474245622363235 +1337.0,2.779572309082652 +1338.0,2.4365775075224927 +1339.0,2.9478875658914863 +1340.0,2.863614167132384 +1341.0,3.171165304534977 +1342.0,2.4299727894743244 +1343.0,2.6646987580543495 +1344.0,2.5520501127367354 +1345.0,2.4889210411858547 +1346.0,2.566286139940874 +1347.0,2.5676735295728887 +1348.0,2.5010232603094233 +1349.0,2.95565058391433 +1350.0,2.412883929356136 +1351.0,3.7391325435638763 +1352.0,3.19050860242485 +1353.0,2.567572498850886 +1354.0,2.553139279098954 +1355.0,2.5680468707117594 +1356.0,3.3801693966939954 +1357.0,2.7298760479539945 +1358.0,2.402988261078094 +1359.0,4.707273278096786 +1360.0,3.8266682452598424 +1361.0,2.9217498460863127 +1362.0,3.1513741563013102 +1363.0,2.5212946898166755 +1364.0,2.45607521931617 +1365.0,2.739982482375508 +1366.0,4.272519902761127 +1367.0,2.491565452595265 +1368.0,2.8867785590530106 +1369.0,2.481030596414142 +1370.0,2.745978450375799 +1371.0,3.285634134173224 +1372.0,4.911846254895072 +1373.0,2.873686114115917 +1374.0,2.94196765105639 +1375.0,2.5786821687357686 +1376.0,3.256279917268754 +1377.0,3.406446073602754 +1378.0,2.950877397703337 +1379.0,2.5198613450224703 +1380.0,2.5656745831169796 +1381.0,2.8962028079772204 +1382.0,2.4090036837614854 +1383.0,2.911146989633799 +1384.0,2.478059586312533 +1385.0,3.6468925135169163 +1386.0,2.877923235263318 +1387.0,2.6041454523771956 +1388.0,2.4753738123607483 +1389.0,2.5160029764820337 +1390.0,2.982245588623311 +1391.0,2.582943318859226 +1392.0,3.223443208642741 +1393.0,2.68281843986051 +1394.0,3.6955575957414677 +1395.0,2.6433794092189213 +1396.0,2.923052060438553 +1397.0,2.6954512729578326 +1398.0,3.138998752083451 +1399.0,2.761945182997513 +1400.0,2.5875811316402513 +1401.0,3.0482654363950132 +1402.0,2.531621948982381 +1403.0,2.402580227358313 +1404.0,3.200218698858261 +1405.0,2.4144147559335374 +1406.0,2.492574921028368 +1407.0,2.7033749140982004 +1408.0,2.7075995160355375 +1409.0,2.422566650877777 +1410.0,2.613916803841277 +1411.0,2.7882048104277573 +1412.0,2.4841445402852282 +1413.0,2.6682958934184935 +1414.0,3.013571017759504 +1415.0,2.4961854522523867 +1416.0,3.3979221144532845 +1417.0,2.511139542969617 +1418.0,3.0192641210519398 +1419.0,2.667677877394436 +1420.0,3.823293085961976 +1421.0,2.6377293555655843 +1422.0,2.5008089318504525 +1423.0,2.792883051285 +1424.0,2.4449791560982668 +1425.0,3.0396214903292598 +1426.0,2.874033816347463 +1427.0,4.826173665873849 +1428.0,3.436194000555958 +1429.0,3.899612549525358 +1430.0,3.745585682827774 +1431.0,2.477163242476766 +1432.0,2.643841880279305 +1433.0,2.79911441824038 +1434.0,2.9099900973895094 +1435.0,2.485865682663007 +1436.0,2.4872497860124017 +1437.0,2.817090510362932 +1438.0,2.430344137791254 +1439.0,2.876997929840876 +1440.0,3.392794592705114 +1441.0,3.1116799111356763 +1442.0,3.2535460401610714 +1443.0,2.5603236906787874 +1444.0,2.5538073412122784 +1445.0,3.1118488628552763 +1446.0,3.1336928304662863 +1447.0,2.63832868464719 +1448.0,3.1934455022459325 +1449.0,3.394658922610792 +1450.0,3.4801576256620304 +1451.0,3.3453923453826704 +1452.0,2.5460933799828838 +1453.0,2.6356683845401827 +1454.0,3.223817009659673 +1455.0,2.602168018483895 +1456.0,2.957848723271476 +1457.0,2.520757200733698 +1458.0,2.7496033701359006 +1459.0,3.0506754440433226 +1460.0,2.6432882319748976 +1461.0,3.000291121436399 +1462.0,2.573755712590034 +1463.0,2.8472764396198715 +1464.0,2.5162383386841083 +1465.0,2.750852940437084 +1466.0,2.500098271568173 +1467.0,3.1954971888178894 +1468.0,2.997465114447336 +1469.0,2.706707322777557 +1470.0,4.223897602476757 +1471.0,2.621541038047122 +1472.0,2.471515727682454 +1473.0,2.870795344177921 +1474.0,2.4569876551052583 +1475.0,2.457002981739211 +1476.0,2.4649455481217983 +1477.0,2.670909432061054 +1478.0,2.585669529320284 +1479.0,2.4953303309864063 +1480.0,3.254902636017669 +1481.0,2.8328134731174686 +1482.0,3.2886521510355795 +1483.0,3.033324019876699 +1484.0,3.8701319394387 +1485.0,2.659760026505519 +1486.0,2.6135822724313296 +1487.0,2.6248400821601705 +1488.0,3.9157072614000104 +1489.0,2.4889899417029295 +1490.0,2.8978667011040438 +1491.0,2.589436185684063 +1492.0,2.7332956480778448 +1493.0,3.5316070415836016 +1494.0,2.8753060934691503 +1495.0,2.5625630996613205 +1496.0,3.185612103066584 +1497.0,3.840595480908042 +1498.0,3.03648871154117 +1499.0,2.451365622945674 +1500.0,3.7566063645857324 +1501.0,2.5063475546326774 +1502.0,2.418622761719858 +1503.0,2.643499835489803 +1504.0,2.643703103959059 +1505.0,2.7915726736861965 +1506.0,3.089488231828591 +1507.0,2.969467801785186 +1508.0,2.7330997802135784 +1509.0,2.4475208463313436 +1510.0,3.2197159036828134 +1511.0,2.875252072601776 +1512.0,2.7886020801141407 +1513.0,3.5078870854101476 +1514.0,2.442036186983083 +1515.0,2.879710806648345 +1516.0,3.0272862415200876 +1517.0,3.0918246172782933 +1518.0,2.4378969768784144 +1519.0,3.104968748336784 +1520.0,2.4707698105747466 +1521.0,3.463833852931204 +1522.0,2.4040363176755326 +1523.0,2.692636434515424 +1524.0,2.4655249892911404 +1525.0,2.6218938723621537 +1526.0,2.5646444664360013 +1527.0,2.485641438850752 +1528.0,2.9757684789840195 +1529.0,2.6782619632117024 +1530.0,3.0398762151815006 +1531.0,2.4471020452530508 +1532.0,2.739785892501264 +1533.0,2.4580224863833786 +1534.0,3.0576208152931508 +1535.0,2.822765968124368 +1536.0,2.526948662300456 +1537.0,3.0958633934439663 +1538.0,2.8199426683565703 +1539.0,3.051475715863276 +1540.0,2.532790649795402 +1541.0,3.116938106449656 +1542.0,2.555058341725757 +1543.0,2.866034992814289 +1544.0,2.5874024166764644 +1545.0,2.863387681272254 +1546.0,2.4515552744238467 +1547.0,2.488653320350633 +1548.0,2.412809144260037 +1549.0,3.521603238412191 +1550.0,3.8193525305586036 +1551.0,3.577789576634583 +1552.0,2.596529558696002 +1553.0,3.3296316395995036 +1554.0,2.824033812224533 +1555.0,3.194810516667676 +1556.0,2.607205665345747 +1557.0,2.5593363834140077 +1558.0,2.9799234595666952 +1559.0,2.9049897740427846 +1560.0,3.5034010389328665 +1561.0,2.4781814895744243 +1562.0,4.379571587609544 +1563.0,3.821961775026522 +1564.0,2.610686677449088 +1565.0,2.6724876890363896 +1566.0,4.028538054016418 +1567.0,2.601367007995646 +1568.0,2.6475307912260977 +1569.0,2.4476688595198333 +1570.0,3.2807763365697213 +1571.0,2.8442777128760106 +1572.0,2.421968505154789 +1573.0,2.597038334018102 +1574.0,2.7787072481546917 +1575.0,2.8797637025787077 +1576.0,3.0078149075086236 +1577.0,3.1039810834604182 +1578.0,3.1454557426984535 +1579.0,2.6872733666235114 +1580.0,2.472266161347933 +1581.0,2.7380844099318624 +1582.0,2.5710377685361165 +1583.0,2.952278884675362 +1584.0,4.377503133934051 +1585.0,3.6292458280811752 +1586.0,2.660213131543609 +1587.0,3.058391264021338 +1588.0,2.45169759187788 +1589.0,2.407807324019123 +1590.0,2.9307990161739923 +1591.0,2.5544222493048645 +1592.0,2.822029822387868 +1593.0,2.898138154615568 +1594.0,2.677575969417303 +1595.0,2.424698932770689 +1596.0,2.6090444983130037 +1597.0,2.406979844593618 +1598.0,2.6975687570335682 +1599.0,2.41723368678265 +1600.0,3.8705314758030513 +1601.0,2.9097996419631214 +1602.0,2.7147945493536962 +1603.0,2.531331609955412 +1604.0,2.5035132069447257 +1605.0,2.520480872235298 +1606.0,3.039790651224408 +1607.0,3.1986579046022032 +1608.0,5.859854287520741 +1609.0,2.5693228992302486 +1610.0,2.438922064309764 +1611.0,2.428766786524395 +1612.0,2.706175435466281 +1613.0,3.0170048427982783 +1614.0,3.129235626010508 +1615.0,2.9956522408501396 +1616.0,2.834388663207916 +1617.0,3.5921174805627683 +1618.0,2.759999044834555 +1619.0,2.8934141139513097 +1620.0,3.1302185161897675 +1621.0,3.5676174550566824 +1622.0,2.6974611094104564 +1623.0,2.419867638458336 +1624.0,2.6067439531682597 +1625.0,2.589643832165893 +1626.0,2.723410060384686 +1627.0,2.485497301213037 +1628.0,2.444298905185059 +1629.0,2.62176281314163 +1630.0,3.909699834598259 +1631.0,2.6110261453791037 +1632.0,2.809198307288247 +1633.0,3.0633649862875463 +1634.0,2.4002727806405746 +1635.0,2.6222788279762126 +1636.0,3.88037695393876 +1637.0,2.7376527575774277 +1638.0,2.583492168661908 +1639.0,2.6704426997638238 +1640.0,2.472099757844797 +1641.0,2.7576817478124145 +1642.0,2.466836693212615 +1643.0,2.4157950177233256 +1644.0,2.575471240942356 +1645.0,2.9918181301571476 +1646.0,3.664938392204305 +1647.0,2.507601586556315 +1648.0,2.615838830149396 +1649.0,2.4325317706564378 +1650.0,2.9581636052153373 +1651.0,2.466679104910121 +1652.0,2.6505251650335553 +1653.0,2.4867283177977986 +1654.0,2.5484226344269443 +1655.0,2.6364758770565104 +1656.0,4.240573668575928 +1657.0,2.770680289053479 +1658.0,2.838610013600905 +1659.0,2.4463028977476946 +1660.0,2.765675921617968 +1661.0,2.563969223764506 +1662.0,2.439353958481473 +1663.0,3.3083733450456165 +1664.0,2.4695140097758372 +1665.0,2.713137853220906 +1666.0,2.4967473635540767 +1667.0,2.4514748467339724 +1668.0,2.6141103884514543 +1669.0,2.7469585820573994 +1670.0,2.4872070429577526 +1671.0,2.855573709983509 +1672.0,2.7114025572015206 +1673.0,2.623953069073135 +1674.0,2.4487787687881033 +1675.0,3.0652540265398023 +1676.0,2.860787226466297 +1677.0,3.347602638965027 +1678.0,2.600352543868299 +1679.0,2.708268848270345 +1680.0,3.0028088668529196 +1681.0,2.4889838943407434 +1682.0,2.941262984014485 +1683.0,3.2882046142476535 +1684.0,2.5391494507869123 +1685.0,3.5181729582856134 +1686.0,2.4380618397806475 +1687.0,2.7459234386508524 +1688.0,2.495644259114108 +1689.0,2.503425475903913 +1690.0,2.716639685546395 +1691.0,3.337280266712258 +1692.0,2.7754943554853764 +1693.0,3.344820015634224 +1694.0,2.439005837387317 +1695.0,4.26836168745483 +1696.0,2.8437691596238426 +1697.0,2.640572526188954 +1698.0,3.0739435158684048 +1699.0,3.2834707665694234 +1700.0,2.4376301123913553 +1701.0,2.5387192380720465 +1702.0,2.851528717627191 +1703.0,2.4121374509821525 +1704.0,2.902357948274331 +1705.0,2.9011116086257545 +1706.0,2.467217356642878 +1707.0,3.1694195262390217 +1708.0,3.406430291844868 +1709.0,2.8127618485807635 +1710.0,2.40316649537073 +1711.0,4.011506333751181 +1712.0,3.211771996564981 +1713.0,2.670105650998832 +1714.0,2.5027887738969654 +1715.0,2.6221341947969483 +1716.0,4.294830669908606 +1717.0,3.012225174779416 +1718.0,2.4780803890931837 +1719.0,2.634815512638308 +1720.0,2.426456029591781 +1721.0,2.4453074493552736 +1722.0,2.56072966152147 +1723.0,2.7589611060339427 +1724.0,2.7285011614359895 +1725.0,2.6472461463388233 +1726.0,2.6114713587797382 +1727.0,2.4616248685086335 +1728.0,2.661034600576367 +1729.0,2.6529736440525546 +1730.0,2.4266821423403444 +1731.0,2.7259422814778356 +1732.0,3.1239222937308684 +1733.0,4.611176930911002 +1734.0,3.951939117184305 +1735.0,2.659373361157744 +1736.0,2.509556204892493 +1737.0,2.64009368481982 +1738.0,2.5973073580185204 +1739.0,3.741810938352108 +1740.0,2.432024549310325 +1741.0,2.946354328717921 +1742.0,2.7798977067978075 +1743.0,2.6357490195782445 +1744.0,2.8799353627215885 +1745.0,2.651173959040871 +1746.0,2.546546525297361 +1747.0,2.7894518531593167 +1748.0,2.808297726231804 +1749.0,2.567654706427502 +1750.0,2.870508442025714 +1751.0,2.677660687205298 +1752.0,2.8963972627624104 +1753.0,3.453399923310532 +1754.0,3.2420596312019407 +1755.0,3.910782117213862 +1756.0,2.519311575627995 +1757.0,2.6877499811278955 +1758.0,2.7705536396283628 +1759.0,2.402241868731422 +1760.0,2.683381220167139 +1761.0,2.794174637768162 +1762.0,3.172252518032618 +1763.0,3.0018320224053574 +1764.0,2.8283556979378126 +1765.0,2.7147567038921565 +1766.0,2.7961009036501596 +1767.0,2.4077273254089726 +1768.0,2.571690671535702 +1769.0,3.1262694136271856 +1770.0,2.9959552651027255 +1771.0,2.580358656218709 +1772.0,2.50800884813761 +1773.0,2.5149903306623425 +1774.0,2.6853175977198034 +1775.0,2.4331798273527934 +1776.0,4.095484724501947 +1777.0,2.549824286098642 +1778.0,2.5949291620674773 +1779.0,2.430970171088934 +1780.0,3.8694491637345974 +1781.0,3.1301259525560496 +1782.0,2.76272938970968 +1783.0,4.335296147850283 +1784.0,2.9690746194553728 +1785.0,2.456432815135725 +1786.0,2.789336645007708 +1787.0,3.038792561291848 +1788.0,2.7157352637255268 +1789.0,2.9923035055733145 +1790.0,2.411409329835923 +1791.0,2.830159008919723 +1792.0,3.101476718155602 +1793.0,3.014235358190244 +1794.0,2.414824181478756 +1795.0,3.976865717617004 +1796.0,2.485832588395977 +1797.0,2.6021052129907116 +1798.0,4.49513745238981 +1799.0,2.4167104601014575 +1800.0,2.5819953100290265 +1801.0,4.12067684941421 +1802.0,3.100708948373823 +1803.0,2.683776045350248 +1804.0,3.1037610717516375 +1805.0,3.50472290258156 +1806.0,2.4850396880438996 +1807.0,2.4504901098538134 +1808.0,2.4496185225300766 +1809.0,2.8070539240506815 +1810.0,2.9326398554819013 +1811.0,3.360424460430452 +1812.0,3.338694782647483 +1813.0,2.551545371256924 +1814.0,3.0669468598167744 +1815.0,3.2515414199100543 +1816.0,3.0141504720072216 +1817.0,2.707892552225982 +1818.0,2.9284744711798663 +1819.0,2.4159944850219848 +1820.0,2.5326633628033943 +1821.0,2.4296256383087784 +1822.0,2.7608897957830605 +1823.0,2.6490722100981534 +1824.0,2.72695494080754 +1825.0,3.1633423115837855 +1826.0,2.713423475387371 +1827.0,2.617135350933093 +1828.0,2.91432448077963 +1829.0,4.2466832629982765 +1830.0,3.360151630446251 +1831.0,2.632932628243002 +1832.0,2.9573587226142743 +1833.0,2.77026906921727 +1834.0,2.6207691410236875 +1835.0,2.5394255596369883 +1836.0,2.5176752355011796 +1837.0,2.9049563546090695 +1838.0,2.8865024779469755 +1839.0,3.299850373808458 +1840.0,2.9689971207953354 +1841.0,3.0019677471944286 +1842.0,3.0709359505282707 +1843.0,3.1877901974716303 +1844.0,3.04787168718866 +1845.0,4.553725286133952 +1846.0,2.7155021499617438 +1847.0,2.794568707337269 +1848.0,2.553047517458074 +1849.0,2.550768697599498 +1850.0,2.642833937496151 +1851.0,2.736711076382649 +1852.0,2.576000799679638 +1853.0,2.488343018084451 +1854.0,3.2635844991862673 +1855.0,3.104300400450435 +1856.0,2.547790505046623 +1857.0,2.572721175859789 +1858.0,3.086294046254516 +1859.0,2.780956315323888 +1860.0,2.805992112814338 +1861.0,2.8906304428545755 +1862.0,3.2840188728082143 +1863.0,2.8966680819783823 +1864.0,2.7256165659401783 +1865.0,2.436977797263601 +1866.0,2.6573603492676465 +1867.0,2.503615313645476 +1868.0,2.482095220472843 +1869.0,2.4031534754578967 +1870.0,2.869132325502625 +1871.0,2.7451703704616994 +1872.0,3.3135860534943338 +1873.0,2.815479288438306 +1874.0,3.822060733816114 +1875.0,2.4991252233521912 +1876.0,2.8719160012885734 +1877.0,3.770265687986371 +1878.0,2.6378262847681375 +1879.0,2.638247476537071 +1880.0,3.2698842747122647 +1881.0,2.434535574688809 +1882.0,2.824625204857557 +1883.0,3.2164158524457824 +1884.0,3.117722966788829 +1885.0,2.5504730629147665 +1886.0,2.9783728084555303 +1887.0,2.7872243403617993 +1888.0,3.518243958796204 +1889.0,2.986905675420082 +1890.0,2.457826122034595 +1891.0,2.414597520356291 +1892.0,2.552670657525812 +1893.0,2.6164738431148353 +1894.0,3.010265693908127 +1895.0,2.983285405267667 +1896.0,2.400373495133157 +1897.0,2.500814906447496 +1898.0,3.3128492152432236 +1899.0,2.629926417647309 +1900.0,2.5525340814020465 +1901.0,2.590732091918014 +1902.0,2.8751356912602355 +1903.0,2.7073849191591575 +1904.0,2.681405288484252 +1905.0,3.957510978465265 +1906.0,2.460575391445369 +1907.0,3.152651645885686 +1908.0,2.4401770986624003 +1909.0,3.318919066654902 +1910.0,2.438193148278074 +1911.0,3.786321825665101 +1912.0,2.6215522874950974 +1913.0,2.7436694419103134 +1914.0,4.172895082650274 +1915.0,2.7215060606299057 +1916.0,2.4560883032755654 +1917.0,2.537353600836325 +1918.0,2.4465647225348808 +1919.0,2.7553880642810165 +1920.0,2.7654647899991183 +1921.0,2.4389006063256913 +1922.0,3.4661903788252753 +1923.0,2.6459876398364237 +1924.0,3.3351650973803 +1925.0,2.489401371098086 +1926.0,3.639203433796678 +1927.0,3.264731478594474 +1928.0,3.1101225770494474 +1929.0,2.5385618730311212 +1930.0,2.922305484638258 +1931.0,3.052427354143046 +1932.0,2.415452187548376 +1933.0,2.4363170335988267 +1934.0,2.7477213287606466 +1935.0,4.3769419180009255 +1936.0,2.8534540736208136 +1937.0,2.74691226739609 +1938.0,3.342317231714469 +1939.0,3.9707069628281477 +1940.0,3.085983860536338 +1941.0,2.5850249806869736 +1942.0,2.5175167043074933 +1943.0,3.359683993829236 +1944.0,2.4795820557372124 +1945.0,3.153951217243642 +1946.0,3.3191103143966108 +1947.0,2.447116708747996 +1948.0,2.765610496464222 +1949.0,2.458245320259743 +1950.0,2.7124692509552766 +1951.0,2.9860383873017273 +1952.0,2.467403855135133 +1953.0,2.7009947080716583 +1954.0,3.2543602659421174 +1955.0,2.618886627553956 +1956.0,2.5901680020943116 +1957.0,2.6861523422312903 +1958.0,2.8860259220606705 +1959.0,2.74521857130548 +1960.0,2.571267788968583 +1961.0,3.5661909341923947 +1962.0,2.784581391804308 +1963.0,2.838614385131389 +1964.0,3.250652442620467 +1965.0,2.4610781734572376 +1966.0,2.403466634945924 +1967.0,3.4015488278493127 +1968.0,2.6036722825325684 +1969.0,2.7179707391786834 +1970.0,3.0848638504502843 +1971.0,2.6154082011920914 +1972.0,3.1613775864817546 +1973.0,4.178558638101765 +1974.0,2.562722622064087 +1975.0,3.12298827394668 +1976.0,2.4418923958081273 +1977.0,2.5641990706178235 +1978.0,2.7295171489225494 +1979.0,2.4356026693559363 +1980.0,5.0502204689657475 +1981.0,3.060243189627105 +1982.0,2.56568243140413 +1983.0,2.9170716356183872 +1984.0,3.377110788523801 +1985.0,2.5131533014842966 +1986.0,2.522244068831215 +1987.0,2.4826711241924193 +1988.0,3.797879102532735 +1989.0,3.176713018682465 +1990.0,2.7357133910042526 +1991.0,3.4760202940019616 +1992.0,2.943451221405591 +1993.0,2.866526364181812 +1994.0,2.7436253331975564 +1995.0,2.4621275447695683 +1996.0,3.615414176923171 +1997.0,2.762824991179053 +1998.0,2.4034463457413224 +1999.0,3.7648635955434027 +2000.0,2.541568229270662 +2001.0,2.4750511161743605 +2002.0,2.551432903636323 +2003.0,3.2668706818814766 +2004.0,2.9222057034526845 +2005.0,3.0240704699060266 +2006.0,3.5852121796934395 +2007.0,2.606237620989785 +2008.0,2.5295137434881134 +2009.0,2.4275719659806314 +2010.0,2.571712634312409 +2011.0,2.4626548337049945 +2012.0,3.942211180209327 +2013.0,2.814410159765335 +2014.0,2.75856179421642 +2015.0,2.8464286477187257 +2016.0,3.168594486636525 +2017.0,3.3269670501730206 +2018.0,2.6632542309577634 +2019.0,2.622443752448408 +2020.0,3.250315044525342 +2021.0,2.4322219922581696 +2022.0,2.5629112212398923 +2023.0,4.329272937183613 +2024.0,3.1243293340490506 +2025.0,3.6249143510233113 +2026.0,2.9656027955623996 +2027.0,2.764075126394634 +2028.0,3.1574047729595986 +2029.0,3.346738990791717 +2030.0,2.6292417326567774 +2031.0,2.4120208163670225 +2032.0,2.781906347424869 +2033.0,2.858505942808458 +2034.0,3.0797805100047224 +2035.0,2.9014983738317794 +2036.0,2.583209603308788 +2037.0,2.446383754648314 +2038.0,3.278484831036157 +2039.0,2.406623623809472 +2040.0,3.1506549787268714 +2041.0,3.0442631090354557 +2042.0,2.4042931755186787 +2043.0,2.5838061331038706 +2044.0,3.441727240760689 +2045.0,3.3679851970395416 +2046.0,2.6184848349022736 +2047.0,2.739050783027495 +2048.0,2.672925027592957 +2049.0,2.8212768105854664 +2050.0,2.759126830546921 +2051.0,2.469283504364839 +2052.0,2.894812119308527 +2053.0,2.8732255546002556 +2054.0,2.7353506765851052 +2055.0,2.646485727003305 +2056.0,3.314615136978455 +2057.0,2.4984550270497112 +2058.0,2.600635577730754 +2059.0,3.0605707992680578 +2060.0,2.8643963651044895 +2061.0,3.68575498341155 +2062.0,3.7512548989260863 +2063.0,2.4105877502766933 +2064.0,2.507324930083503 +2065.0,2.4925577100187923 +2066.0,2.475095639774145 +2067.0,2.523339871782714 +2068.0,3.3015511659877537 +2069.0,2.5292310597970507 +2070.0,3.3784445248301624 +2071.0,2.5047049128910217 +2072.0,3.2595223255238492 +2073.0,2.5997256067173455 +2074.0,2.9244738306867317 +2075.0,3.2746214503801925 +2076.0,2.597853380565159 +2077.0,3.6990462840937166 +2078.0,3.216291866863816 +2079.0,2.4361034113518563 +2080.0,3.0360062666367535 +2081.0,2.923132502183971 +2082.0,2.974441743366805 +2083.0,2.9269512545726273 +2084.0,3.031543773008626 +2085.0,3.093245217093168 +2086.0,2.437074710119073 +2087.0,2.806402414311637 +2088.0,3.116480916890886 +2089.0,2.6804681312655565 +2090.0,2.69632821689485 +2091.0,2.5615745796988305 +2092.0,3.3127058662869895 +2093.0,4.4318381933478594 +2094.0,4.04013716677218 +2095.0,3.14549767265186 +2096.0,2.4763997947055856 +2097.0,3.1719763433220525 +2098.0,2.4899607233844825 +2099.0,2.486254258562377 +2100.0,2.7375917778793837 +2101.0,3.0067719286213084 +2102.0,3.062814524417998 +2103.0,2.593627923646199 +2104.0,2.469952859557035 +2105.0,2.880923206701127 +2106.0,2.4419076672481643 +2107.0,2.441679599621937 +2108.0,2.7611135502270434 +2109.0,2.551924084482898 +2110.0,3.439190480526797 +2111.0,2.630342778356217 +2112.0,3.1159168758463336 +2113.0,2.4869646754013726 +2114.0,2.854675760982818 +2115.0,3.003772913199964 +2116.0,2.5384409295610633 +2117.0,3.363966527623881 +2118.0,3.7016001790015114 +2119.0,2.5355553926737344 +2120.0,2.575151095018953 +2121.0,3.932789031640624 +2122.0,2.7364945794783764 +2123.0,2.7307051416118253 +2124.0,2.5667874848646055 +2125.0,2.7046267243706303 +2126.0,3.3850962056690475 +2127.0,3.2479504617866968 +2128.0,2.4802981044400267 +2129.0,2.7060696135501776 +2130.0,2.4283972958733164 +2131.0,2.488896376874942 +2132.0,2.496275573324079 +2133.0,2.4821777961383447 +2134.0,3.088267415083897 +2135.0,2.5359965316075876 +2136.0,3.207102879357362 +2137.0,2.496563677169231 +2138.0,3.0183690970547685 +2139.0,3.898765548796507 +2140.0,2.4679200582286707 +2141.0,3.332922546744089 +2142.0,2.419111211178748 +2143.0,2.8627623310361705 +2144.0,2.517185289714907 +2145.0,2.511966189247497 +2146.0,2.6996063414398983 +2147.0,2.5797801645991756 +2148.0,2.6509115695458014 +2149.0,2.5140958909979236 +2150.0,2.7306111861441855 +2151.0,2.586893713972506 +2152.0,4.3620100123611225 +2153.0,3.1769172715279383 +2154.0,3.050550807678408 +2155.0,2.4599677140396583 +2156.0,2.986906777606882 +2157.0,2.5100025653374303 +2158.0,3.1095773976661554 +2159.0,2.670580871195547 +2160.0,3.0682160441418054 +2161.0,3.5672550356013275 +2162.0,2.413628655736361 +2163.0,2.9611753511536074 +2164.0,3.7664038414508667 +2165.0,2.5499470124486736 +2166.0,3.8063700964907135 +2167.0,3.1481176744416186 +2168.0,2.5410384803984982 +2169.0,3.2821841914356944 +2170.0,2.438556691676656 +2171.0,2.529321872613204 +2172.0,2.790224020273855 +2173.0,3.36172226342339 +2174.0,2.8579663367035035 +2175.0,2.9692268691240686 +2176.0,3.5953909705641274 +2177.0,3.7834930811322938 +2178.0,2.6419014482674066 +2179.0,2.7633508807945533 +2180.0,2.4016727016645465 +2181.0,3.6178215654133874 +2182.0,3.5329852541690867 +2183.0,3.3082119750818983 +2184.0,2.5843915063378065 +2185.0,3.562260999195333 +2186.0,2.5185574650855296 +2187.0,2.6883831568111516 +2188.0,2.6330950736422314 +2189.0,2.5364777324129526 +2190.0,3.4946327093127545 +2191.0,2.572367481032347 +2192.0,3.15529055799884 +2193.0,2.8691283348619185 +2194.0,2.875857512214372 +2195.0,2.490849587264926 +2196.0,3.605054985137836 +2197.0,2.732622006581743 +2198.0,2.4436884429772006 +2199.0,3.9135568012957425 diff --git a/tests/fixtures/catalogs/case_027_background_high_2200d.csv b/tests/fixtures/catalogs/case_027_background_high_2200d.csv new file mode 100644 index 0000000..27e5263 --- /dev/null +++ b/tests/fixtures/catalogs/case_027_background_high_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,3.586151729853788 +1.0,3.037583828664598 +2.0,3.0269536793572165 +3.0,3.4792887927283225 +4.0,3.4660770952641164 +5.0,3.258058156844608 +6.0,3.3820091189510193 +7.0,3.1553300425218 +8.0,3.0355711608475118 +9.0,4.930427277391085 +10.0,3.184293756326094 +11.0,3.3942566547741677 +12.0,3.593491058562016 +13.0,4.033211454082391 +14.0,5.296323697441209 +15.0,3.1295973736824307 +16.0,3.5780961478672593 +17.0,3.112573594584323 +18.0,3.640658069213486 +19.0,3.19259052949889 +20.0,3.7162964639292566 +21.0,3.0489365355326337 +22.0,3.013498495606741 +23.0,3.2010784961508225 +24.0,3.90140779934646 +25.0,3.5610562174925957 +26.0,3.1069545367728515 +27.0,3.773122259026276 +28.0,3.8626787597131456 +29.0,3.316325143337745 +30.0,3.991251717781125 +31.0,3.293854110976653 +32.0,3.5822583298367245 +33.0,3.062503710298619 +34.0,3.0061624356289913 +35.0,3.5254509135574725 +36.0,3.0034686363312324 +37.0,3.8765538347880666 +38.0,3.3327228542421605 +39.0,3.524445768481308 +40.0,5.1087429506381845 +41.0,4.54798860514764 +42.0,3.2070330108879204 +43.0,3.6423806978023006 +44.0,4.091913990890195 +45.0,3.3754118485827447 +46.0,3.178436421136215 +47.0,4.068291722240609 +48.0,3.810975179094736 +49.0,3.6331088973220056 +50.0,3.443395336722239 +51.0,3.2468239549920495 +52.0,4.192430071199554 +53.0,3.0982983831733324 +54.0,3.216801034684973 +55.0,3.0497261187383895 +56.0,3.1460782975244843 +57.0,3.774244807370144 +58.0,3.7100368523405325 +59.0,4.871114325306184 +60.0,3.143012146298895 +61.0,3.0002376485588744 +62.0,3.4934058767126634 +63.0,3.0136973312228226 +64.0,3.5904916733981196 +65.0,3.484546824015895 +66.0,3.1449738829978515 +67.0,3.2144258919048454 +68.0,3.361367669212165 +69.0,3.3734712386211783 +70.0,3.0593308820729663 +71.0,3.0489843889144543 +72.0,3.228735104289425 +73.0,3.0972242618958252 +74.0,3.1674150698683206 +75.0,3.1526073236587093 +76.0,3.5381586726252188 +77.0,4.483261487542567 +78.0,4.05420834165233 +79.0,3.2426620592533353 +80.0,3.164591685758174 +81.0,3.693343239615381 +82.0,5.530815998402174 +83.0,3.3431172856070397 +84.0,3.955280389085597 +85.0,4.680896935163041 +86.0,4.309495559352513 +87.0,4.403871725689839 +88.0,3.201656997940431 +89.0,3.31863026815094 +90.0,5.146581605848949 +91.0,3.7361910252612307 +92.0,3.2413833628707085 +93.0,3.2329677829462207 +94.0,3.884206921948544 +95.0,3.0296229014216154 +96.0,3.7942159382690925 +97.0,3.0669029783439177 +98.0,5.334187471696544 +99.0,3.3085485762758635 +100.0,4.634793455008634 +101.0,3.0211856447512107 +102.0,4.214614314191195 +103.0,3.1128724968046817 +104.0,3.004113798012634 +105.0,3.341733734811092 +106.0,3.52152258511024 +107.0,3.140105505806834 +108.0,3.101870315565448 +109.0,3.6511033521407796 +110.0,3.8040170876605877 +111.0,3.5341108554334344 +112.0,3.3067249930034333 +113.0,3.4650045260910427 +114.0,3.0212764050958776 +115.0,3.8638566314502953 +116.0,3.787814309152115 +117.0,3.0661793615435977 +118.0,3.7742851578693095 +119.0,3.053650886992007 +120.0,4.54318518874837 +121.0,3.766567642848171 +122.0,4.906014010539009 +123.0,4.102441026699718 +124.0,3.09958355643514 +125.0,4.225751204447523 +126.0,3.8638617092277503 +127.0,4.088813184694036 +128.0,3.2708017290356644 +129.0,3.0326862143758113 +130.0,3.300759559887385 +131.0,4.268018574425309 +132.0,4.051270321024051 +133.0,3.732643119921227 +134.0,3.372215055446852 +135.0,4.84725034501771 +136.0,3.0084572115431256 +137.0,3.3054382633137886 +138.0,3.5729910572105803 +139.0,3.906048065070215 +140.0,4.223241814969503 +141.0,3.4176829659558052 +142.0,3.796809389374933 +143.0,3.1791646903381072 +144.0,3.6541124054949408 +145.0,3.094423149281304 +146.0,3.208313253536738 +147.0,3.9798324630960664 +148.0,3.9455506431180694 +149.0,3.1501796052681965 +150.0,3.3773067717605416 +151.0,4.053713896864037 +152.0,3.170172388780102 +153.0,3.3082902173736493 +154.0,3.785893149225753 +155.0,3.2662233699384724 +156.0,4.076159104504022 +157.0,3.153514923253061 +158.0,3.1231178623223097 +159.0,3.0320836536462656 +160.0,3.502120636380143 +161.0,3.056128367937497 +162.0,3.347828301983916 +163.0,4.116794777629304 +164.0,3.1265360105893674 +165.0,3.318077760595105 +166.0,3.80504126877841 +167.0,3.160670867055674 +168.0,3.5663651304679114 +169.0,3.3807123281968936 +170.0,3.1875131358759274 +171.0,3.1736678770093656 +172.0,3.25559788424734 +173.0,3.311382609958532 +174.0,3.2207025596303906 +175.0,3.4820870005940554 +176.0,3.3395872648017644 +177.0,3.62436918248768 +178.0,3.77267435547309 +179.0,3.1072179915020945 +180.0,3.099542571978648 +181.0,3.313435893905389 +182.0,3.242231422877868 +183.0,3.3978186494020837 +184.0,3.05836153380522 +185.0,3.1720535381849553 +186.0,3.0785114235205464 +187.0,3.248243738681115 +188.0,3.058291264187345 +189.0,3.72241142942476 +190.0,3.5957090231026236 +191.0,3.3169254187624015 +192.0,3.0065407428083266 +193.0,5.043924798996785 +194.0,3.020176419286763 +195.0,3.387568183147032 +196.0,3.7467738814140397 +197.0,3.123312452971056 +198.0,3.473037927441625 +199.0,3.4766789087668055 +200.0,3.397703918637887 +201.0,3.602424778328393 +202.0,3.632584702619994 +203.0,6.173748814208948 +204.0,4.096537283435443 +205.0,4.5794285315995715 +206.0,3.128031791072967 +207.0,3.539390888157084 +208.0,3.4149410616794555 +209.0,4.72407623237765 +210.0,3.283750245221582 +211.0,3.0505952526597904 +212.0,3.0367878992324298 +213.0,3.614755497317043 +214.0,4.292763169873938 +215.0,3.1264444415261874 +216.0,3.7077800724774654 +217.0,3.1891373183142018 +218.0,3.4988533217343165 +219.0,6.192452385763519 +220.0,4.537720443371993 +221.0,3.694176756269626 +222.0,3.3581761347894807 +223.0,3.1939319539574553 +224.0,3.3835172192769583 +225.0,3.5377061615037837 +226.0,3.8166510626525847 +227.0,3.6315127700354 +228.0,3.4201959148683527 +229.0,4.115470534873813 +230.0,3.156936459888568 +231.0,4.512255485990389 +232.0,3.210479129357728 +233.0,3.451243665184425 +234.0,3.5481375937478186 +235.0,3.941727829390051 +236.0,3.1332038178382273 +237.0,3.266435476539938 +238.0,4.723859211647394 +239.0,3.4233390265852295 +240.0,3.969788975776736 +241.0,3.3843991505666984 +242.0,5.435802464760567 +243.0,3.0451586082563917 +244.0,3.1161062084030484 +245.0,3.612633712600708 +246.0,3.21048784364511 +247.0,3.2546356999525594 +248.0,3.5404906895895802 +249.0,3.3033059232730952 +250.0,3.7833278178824328 +251.0,3.136298310713572 +252.0,3.0047186450123577 +253.0,3.7446960328510284 +254.0,3.6160588324708924 +255.0,3.578615431212614 +256.0,3.165336913790281 +257.0,3.0459675807520186 +258.0,3.183929707056069 +259.0,3.2985889254603262 +260.0,3.0620019531957396 +261.0,3.753107725475679 +262.0,3.7984034997824248 +263.0,3.1082307621891117 +264.0,3.111896064423271 +265.0,3.324480705939668 +266.0,3.8090449687925414 +267.0,3.3125364025934063 +268.0,3.935022399357978 +269.0,3.2757228660284494 +270.0,3.5026310366909046 +271.0,3.0081025968562547 +272.0,3.052970664045344 +273.0,4.026060167723937 +274.0,3.0606081209954126 +275.0,3.124758758837882 +276.0,3.7390521269927484 +277.0,3.221570714744748 +278.0,3.251776208302872 +279.0,3.4253197769167167 +280.0,3.3000232939965066 +281.0,3.121027666383563 +282.0,3.03533985360981 +283.0,7.068012004530655 +284.0,3.826872340868139 +285.0,3.1306378649347337 +286.0,3.7530788413631697 +287.0,3.2090801228486168 +288.0,3.1114706438464386 +289.0,3.4446908185337866 +290.0,3.5032766135558773 +291.0,3.1991716480410557 +292.0,3.426976409444091 +293.0,3.282711772671011 +294.0,3.3277578223253466 +295.0,3.49585950876792 +296.0,3.8364389951313256 +297.0,3.4595574916366436 +298.0,3.303650917103369 +299.0,3.571577935872214 +300.0,3.135597429581595 +301.0,3.273361098430751 +302.0,3.8099874089927983 +303.0,4.213626825924956 +304.0,3.1464825592454138 +305.0,3.4873988904923885 +306.0,3.7015537393217706 +307.0,4.985421753995721 +308.0,4.936051041668178 +309.0,3.597014366963547 +310.0,3.5229993504144783 +311.0,3.2329978268968103 +312.0,5.085727416035388 +313.0,3.448382868284644 +314.0,3.1280713565690643 +315.0,4.431779102798833 +316.0,3.2842491498156803 +317.0,3.3728684680870886 +318.0,3.1443195247920053 +319.0,3.3803696919264072 +320.0,3.287399744505527 +321.0,3.4755331516303105 +322.0,3.0973588650589843 +323.0,5.950375606161685 +324.0,3.2785432851900733 +325.0,3.4964352492643065 +326.0,3.2106534910235505 +327.0,3.420838046225227 +328.0,3.0202439872042586 +329.0,4.195319447080234 +330.0,3.1757699052406116 +331.0,3.5527257964561167 +332.0,3.360327523172251 +333.0,3.0764593286873265 +334.0,3.263098156846237 +335.0,3.164698230140685 +336.0,3.1997369026621745 +337.0,3.0681996392027995 +338.0,3.733408031963738 +339.0,3.3530725085063864 +340.0,3.8765578884458183 +341.0,3.6783147723489513 +342.0,3.1336565192450814 +343.0,3.034142411329746 +344.0,5.025878075955426 +345.0,3.388227187031222 +346.0,4.706965089144866 +347.0,4.9699508457322255 +348.0,4.771588909811339 +349.0,3.0638865299405933 +350.0,3.0703074752354715 +351.0,3.1319604828149883 +352.0,3.0430762203494903 +353.0,3.0725030769579913 +354.0,3.5235667397549397 +355.0,3.170558745165308 +356.0,3.7307771651864226 +357.0,3.1133850933245193 +358.0,4.076682162316647 +359.0,4.3564109267957365 +360.0,3.1534217981931807 +361.0,3.0682990361170392 +362.0,3.1845532627467636 +363.0,4.099266731798358 +364.0,3.060339218480607 +365.0,3.456265111514003 +366.0,3.1521665795202507 +367.0,3.16326057953341 +368.0,4.122953758830974 +369.0,3.2873708684186784 +370.0,3.016939067665178 +371.0,3.1083996385795887 +372.0,3.150036848936119 +373.0,3.4851928513777652 +374.0,3.194484786035185 +375.0,3.6408810642440237 +376.0,4.0909762122399265 +377.0,4.134264058631876 +378.0,3.8736313743031836 +379.0,3.3826677303436776 +380.0,4.015120218273738 +381.0,3.0727112161683974 +382.0,3.4033491356656165 +383.0,3.7444916461046276 +384.0,3.523830864430137 +385.0,3.218648064109276 +386.0,3.591699958944506 +387.0,3.5288418133600676 +388.0,3.397531698938005 +389.0,3.075714055285754 +390.0,3.246500780983618 +391.0,3.40639844583039 +392.0,3.0239832817818826 +393.0,3.071536236515581 +394.0,3.4117655594128924 +395.0,3.199831674033065 +396.0,3.2672339126644863 +397.0,3.0151891854222543 +398.0,3.4425685065544647 +399.0,4.17519132215493 +400.0,3.177775380242512 +401.0,3.331898384619769 +402.0,4.431980895015682 +403.0,3.0546117452996673 +404.0,4.66916771776872 +405.0,3.8760233677859 +406.0,3.0087538090986303 +407.0,3.585501546433924 +408.0,3.136682315957869 +409.0,3.4279729043047356 +410.0,3.2232729142667202 +411.0,3.5831438121062176 +412.0,3.830133964886514 +413.0,3.0047201403686925 +414.0,3.2324773952291843 +415.0,3.2908405190777574 +416.0,3.1034749480493184 +417.0,3.5009861697304334 +418.0,3.3338779033524317 +419.0,3.1284934765635564 +420.0,3.081514403655229 +421.0,3.8141984199093697 +422.0,3.1156508903444053 +423.0,3.589372970263759 +424.0,3.659647555006893 +425.0,3.1075917009924434 +426.0,3.361471259676588 +427.0,3.398502902214116 +428.0,3.4419658461734084 +429.0,4.986937706765133 +430.0,4.08978887492051 +431.0,4.3622035786487885 +432.0,3.6960508626207655 +433.0,3.1494185110212722 +434.0,3.9326390877703017 +435.0,3.596832657940574 +436.0,3.990947502364072 +437.0,4.544303404744641 +438.0,3.5223257976052094 +439.0,3.1895004317263287 +440.0,3.0035313370089014 +441.0,3.0360145646761065 +442.0,3.24743329296926 +443.0,4.0274718860231635 +444.0,3.1979632690755797 +445.0,3.0360208856355198 +446.0,3.2448134440818763 +447.0,3.5175506779400156 +448.0,3.0691155894267035 +449.0,3.343086288726637 +450.0,3.213576348246028 +451.0,3.6152477816728616 +452.0,3.0602691565765006 +453.0,4.230884345279128 +454.0,3.2514725076168878 +455.0,4.151465704216762 +456.0,3.2061655098765964 +457.0,3.5372868159423643 +458.0,3.279836554014526 +459.0,4.396625070459852 +460.0,3.2216358634647193 +461.0,3.113716120959272 +462.0,4.142606850173345 +463.0,3.605615997076724 +464.0,3.3392829080707616 +465.0,3.0146194650609197 +466.0,3.1121005333424487 +467.0,3.0722199510535346 +468.0,3.119925733310507 +469.0,3.1759233346609874 +470.0,3.3228361805355027 +471.0,3.05071875052677 +472.0,3.449651413784744 +473.0,3.2466777629193535 +474.0,3.0368702402984815 +475.0,3.2091071689039983 +476.0,4.9103359855953075 +477.0,4.2136973178919055 +478.0,3.1524743446267998 +479.0,3.157035911653497 +480.0,3.843675840574953 +481.0,3.0752791345909287 +482.0,3.251570603541591 +483.0,3.7045040244110066 +484.0,3.158412197325601 +485.0,3.030227018107357 +486.0,3.351427241357819 +487.0,4.4542544688383465 +488.0,3.0859343889665714 +489.0,3.679827093452229 +490.0,4.3128046799683695 +491.0,3.055576128929657 +492.0,4.918265363327221 +493.0,3.4728580601621033 +494.0,4.67896864854539 +495.0,3.002059289167037 +496.0,3.351939502775708 +497.0,3.294941573690838 +498.0,3.336920527429454 +499.0,3.5781453527486318 +500.0,3.3479730161242807 +501.0,4.227690423030265 +502.0,3.374226907841847 +503.0,3.1606611855016142 +504.0,3.870117924796715 +505.0,3.874908258688525 +506.0,3.5620092672779333 +507.0,4.269794627920492 +508.0,3.9265860034693847 +509.0,4.032535674319444 +510.0,4.1882272326547305 +511.0,4.437574196520889 +512.0,3.641125422311479 +513.0,3.1614138754840724 +514.0,3.0096235585400586 +515.0,3.411694472900226 +516.0,3.2339241127067995 +517.0,3.077194264527893 +518.0,3.821969235884559 +519.0,3.0448302822235953 +520.0,3.745122550078122 +521.0,3.8254433954731284 +522.0,3.4483489682997512 +523.0,4.289649442257808 +524.0,3.449892494338348 +525.0,4.682451777915313 +526.0,3.245211803894957 +527.0,3.0002299505058283 +528.0,3.034265209247717 +529.0,3.726149750174333 +530.0,3.4139145640082367 +531.0,3.7042744022631577 +532.0,3.044877398430017 +533.0,3.6736170260178547 +534.0,3.108516457682484 +535.0,3.9326522073730854 +536.0,3.1374460926173464 +537.0,3.9100984959165004 +538.0,3.1206231524593933 +539.0,3.084075149169271 +540.0,4.394939280162953 +541.0,3.0492819114663376 +542.0,3.402498921286428 +543.0,3.151361624578246 +544.0,3.431695994779352 +545.0,3.9859537806882566 +546.0,3.152461978090251 +547.0,3.5800947766813347 +548.0,3.2328258669596392 +549.0,3.2819995186781554 +550.0,4.378625056700477 +551.0,3.00516827168584 +552.0,3.291926858317056 +553.0,3.017852377415671 +554.0,3.3574485736118556 +555.0,3.2585357140917464 +556.0,3.0914871033456515 +557.0,3.8850596173759895 +558.0,4.309636855123471 +559.0,3.068522170045409 +560.0,3.3870528547588483 +561.0,3.510060880405827 +562.0,3.148270530299503 +563.0,3.045165028749059 +564.0,5.100580912428626 +565.0,3.696606888263309 +566.0,3.7182253413558985 +567.0,3.795813867409142 +568.0,3.628939628411686 +569.0,3.7103238378511505 +570.0,3.007925411456905 +571.0,3.659019588729313 +572.0,3.607319468581851 +573.0,3.2884190764599834 +574.0,3.065189659069962 +575.0,3.7438823981286955 +576.0,3.482757203395584 +577.0,3.325375884812706 +578.0,3.024302057540581 +579.0,3.969891091974646 +580.0,4.101262158680904 +581.0,4.2680657028138285 +582.0,3.0577125051827614 +583.0,3.416211984276746 +584.0,3.2545769904780952 +585.0,4.279863937939899 +586.0,3.9754026114537666 +587.0,3.1746314264741575 +588.0,3.408687405588379 +589.0,3.064612400271291 +590.0,3.5235676838672414 +591.0,3.3354116098300963 +592.0,5.617901107252457 +593.0,3.0736884577557166 +594.0,3.4921057844423213 +595.0,3.564124638208343 +596.0,3.5764517959624125 +597.0,3.8677410759716686 +598.0,4.0832085390897355 +599.0,3.3759940737427723 +600.0,3.200920095599402 +601.0,3.0194562734702197 +602.0,3.983399514812036 +603.0,3.0020551336010435 +604.0,3.322909411585373 +605.0,3.0888254753857596 +606.0,3.7202608329231666 +607.0,3.211322250063514 +608.0,3.536363759756096 +609.0,3.6590331039092723 +610.0,3.1693417030551463 +611.0,3.1832628250361643 +612.0,3.6633524494067133 +613.0,3.2887145083673417 +614.0,3.144209955501258 +615.0,4.304841972221996 +616.0,3.532484433424031 +617.0,3.421404469544051 +618.0,3.775473306384346 +619.0,3.1542714654394297 +620.0,4.184086153205588 +621.0,3.4091767793423102 +622.0,3.1172636341866635 +623.0,3.432365204275092 +624.0,5.1519693231502615 +625.0,3.7960738182138414 +626.0,3.453570576580007 +627.0,3.0209629693397013 +628.0,3.6962562044622604 +629.0,3.03355768916664 +630.0,3.081340133620976 +631.0,3.1579787647778743 +632.0,3.207461649795971 +633.0,3.4260579502885498 +634.0,3.1904612371916974 +635.0,3.8519610593757627 +636.0,5.5990377568382765 +637.0,3.3650000059630916 +638.0,3.8644295781305305 +639.0,4.144142330644406 +640.0,3.063748827456437 +641.0,3.0374828865352326 +642.0,3.7538320672716914 +643.0,3.1745172709756844 +644.0,3.3829692829609637 +645.0,3.312957916904722 +646.0,3.1384767900438177 +647.0,3.175105042722803 +648.0,3.457449102083978 +649.0,3.0523615177431207 +650.0,3.3547544721183464 +651.0,3.256701036867632 +652.0,4.111572079692856 +653.0,3.9199249454620193 +654.0,3.634594624426213 +655.0,3.003832514912013 +656.0,3.1193412101593445 +657.0,3.0611860754610825 +658.0,3.8714841411126364 +659.0,3.0006898153641766 +660.0,3.5811379746249723 +661.0,3.080998443814182 +662.0,4.729289347568796 +663.0,3.1797288653862537 +664.0,4.023919558631261 +665.0,3.035782627139568 +666.0,3.781328210447467 +667.0,3.7067736327671645 +668.0,3.121996294285697 +669.0,3.4382755481752136 +670.0,4.553674989265875 +671.0,3.182494574895863 +672.0,3.0500845903755143 +673.0,4.520906664271307 +674.0,3.2552557207994397 +675.0,3.442698379066704 +676.0,3.460499250016772 +677.0,4.233361539572285 +678.0,3.0495313950291902 +679.0,3.403943325013027 +680.0,3.463790941773225 +681.0,3.9470230191140545 +682.0,4.081366958184669 +683.0,3.299373283096508 +684.0,4.3321242913302624 +685.0,3.618975743416824 +686.0,3.2114074870893914 +687.0,3.111947837563491 +688.0,5.03374099872836 +689.0,3.1579276611722413 +690.0,3.433140844016231 +691.0,3.1623460962602707 +692.0,3.236490925367706 +693.0,3.090030280195834 +694.0,3.0125411223381526 +695.0,3.3951804256544795 +696.0,3.1786305315460233 +697.0,4.317429369155398 +698.0,3.128163035891881 +699.0,3.6728983852189483 +700.0,3.4168346377469128 +701.0,3.4263189008337305 +702.0,4.507328803002922 +703.0,3.0741351453755974 +704.0,3.941414653842901 +705.0,4.442028906837461 +706.0,3.673428204953675 +707.0,3.439594941935022 +708.0,3.096434018679354 +709.0,3.4913900971482814 +710.0,4.354043053862443 +711.0,3.343168794752299 +712.0,3.1744821909111685 +713.0,3.7440982644542258 +714.0,3.0261979745214833 +715.0,3.1519762233683166 +716.0,3.4740431299770886 +717.0,3.2045007039182107 +718.0,3.1042879291147174 +719.0,3.05406874844494 +720.0,3.0343721042164873 +721.0,5.508024177671821 +722.0,3.0418887122586296 +723.0,4.293263002979575 +724.0,3.01091907292407 +725.0,3.4651441223925814 +726.0,3.3184601522754043 +727.0,3.3438781453139512 +728.0,3.3701017341220174 +729.0,3.2942311738122148 +730.0,3.3809265023008725 +731.0,3.109393419180366 +732.0,3.427855062809982 +733.0,3.279523696791424 +734.0,4.003755372911325 +735.0,3.0608396536853024 +736.0,3.312045538487003 +737.0,3.5346538599869546 +738.0,3.644323830137476 +739.0,3.0531837564615185 +740.0,3.002631464834037 +741.0,4.494081269671545 +742.0,3.7356160536636325 +743.0,3.19821636461314 +744.0,3.4478060028842057 +745.0,3.183492053456738 +746.0,3.1023814539174475 +747.0,3.6397221876510604 +748.0,3.1181129190784156 +749.0,4.181921877673466 +750.0,3.174384795908651 +751.0,3.0704976614306863 +752.0,3.1959664915736763 +753.0,3.055992802665547 +754.0,3.4660810739246593 +755.0,3.589635506191297 +756.0,3.495636335209497 +757.0,3.3303991062604985 +758.0,3.0029283116140255 +759.0,4.895855879567366 +760.0,3.427366752291775 +761.0,4.483002127758432 +762.0,3.4655127196001136 +763.0,3.2016543142540392 +764.0,4.256170788099626 +765.0,3.0857716125818566 +766.0,4.107117695183855 +767.0,4.37065009304415 +768.0,3.074097736770607 +769.0,3.7867226360930464 +770.0,3.4939676101155133 +771.0,4.2923749784131 +772.0,3.0163136016195744 +773.0,3.0127485786241617 +774.0,3.1265433039185133 +775.0,3.8308166507446386 +776.0,3.377184361784662 +777.0,3.0236844096829985 +778.0,3.245307551692179 +779.0,3.152599936487805 +780.0,3.373993820012201 +781.0,3.0952463820503304 +782.0,3.0316599519226433 +783.0,3.7731291912989446 +784.0,3.204135242946258 +785.0,3.212027171301976 +786.0,3.6237432185472076 +787.0,4.485483704607653 +788.0,4.061517541966581 +789.0,3.782932352946795 +790.0,3.0554775132060015 +791.0,3.528646625542014 +792.0,4.277100106110657 +793.0,3.197585228892888 +794.0,3.8769530716964757 +795.0,3.5224440024740447 +796.0,3.8014015906050105 +797.0,3.561335371282795 +798.0,3.3296881785963857 +799.0,3.75993870994625 +800.0,3.8572854356690964 +801.0,3.9878050304850925 +802.0,3.6180485299072305 +803.0,3.8700386090050265 +804.0,3.7796756374059504 +805.0,3.0522073150791513 +806.0,3.5346859996050304 +807.0,3.5832517521248612 +808.0,3.276078634629709 +809.0,3.315270824523449 +810.0,4.721261682176696 +811.0,3.429238105359258 +812.0,4.4603722936588435 +813.0,4.2155283250627456 +814.0,3.731285699241729 +815.0,3.6436248340188824 +816.0,4.06283442220921 +817.0,3.7935588039809853 +818.0,3.423240545205717 +819.0,3.6054479901257315 +820.0,3.4499123255849193 +821.0,5.407724610641763 +822.0,4.465724919951373 +823.0,3.200695200106192 +824.0,3.3476674984406536 +825.0,3.0102686339876783 +826.0,3.087772263000373 +827.0,3.731038988445159 +828.0,3.2564732455797816 +829.0,3.376694210842875 +830.0,3.887737029117482 +831.0,3.6127042508270293 +832.0,3.7473494050508354 +833.0,3.5266531130321868 +834.0,3.4076597269064246 +835.0,3.1435718499610945 +836.0,3.111794843799744 +837.0,3.1570888644027213 +838.0,3.5133521795495133 +839.0,3.7674895750216235 +840.0,4.106747244147083 +841.0,3.456799375759952 +842.0,3.4361833772684998 +843.0,3.037439381598424 +844.0,3.0495489608887674 +845.0,3.455483694775193 +846.0,3.268951686062625 +847.0,3.200284351756976 +848.0,3.0602878846221686 +849.0,4.396975582443497 +850.0,3.256906426906251 +851.0,3.270128297684129 +852.0,3.4951074595155274 +853.0,3.117412064227729 +854.0,3.395196248313696 +855.0,3.1729610783536164 +856.0,4.020912439498973 +857.0,5.442418215995522 +858.0,3.31333713336419 +859.0,3.8437327567038286 +860.0,3.154909246838138 +861.0,3.0870021969720245 +862.0,4.0267319708860425 +863.0,3.1947364099916506 +864.0,3.232794707570333 +865.0,3.2852421475472386 +866.0,4.634878599139968 +867.0,3.296225659588886 +868.0,3.1225305878508296 +869.0,4.280054058550721 +870.0,3.3757821561681163 +871.0,5.772929170923301 +872.0,3.3198893654673967 +873.0,4.0577626705376355 +874.0,3.6469223801517137 +875.0,3.7384743413995443 +876.0,4.662498933489526 +877.0,3.25963094026934 +878.0,3.109818851979012 +879.0,3.124711904851388 +880.0,3.6760127694464644 +881.0,3.880495889171897 +882.0,3.227311420181582 +883.0,4.426977243004539 +884.0,3.7437408685922273 +885.0,4.081940533570136 +886.0,3.6958183704718013 +887.0,3.125097175814972 +888.0,3.785396447337757 +889.0,3.5360002073969827 +890.0,3.167883520986426 +891.0,3.4843025881455048 +892.0,3.118943915033905 +893.0,3.305818646335054 +894.0,3.1802532353377906 +895.0,3.511235372087492 +896.0,4.875406999050235 +897.0,3.26084703587906 +898.0,3.246257147724067 +899.0,4.198280330585525 +900.0,3.737884327456347 +901.0,3.0881317085337017 +902.0,3.0648454835949166 +903.0,4.074304679083212 +904.0,3.0671884589003575 +905.0,3.079677777047993 +906.0,3.199057882896702 +907.0,3.0509376292195576 +908.0,3.136185291723999 +909.0,3.0818929813290934 +910.0,3.3030495235925583 +911.0,3.286612404355975 +912.0,3.21549503781115 +913.0,3.28568012386786 +914.0,4.710453734396229 +915.0,3.2551083447573355 +916.0,3.3552838150429105 +917.0,5.222190141344022 +918.0,4.376024287854536 +919.0,3.0138699641221725 +920.0,3.239790775818868 +921.0,3.2432922872577947 +922.0,3.2106268762293633 +923.0,3.233848937789743 +924.0,3.2142748914998642 +925.0,3.239838733097565 +926.0,4.117907396952008 +927.0,3.6656552132910463 +928.0,5.567653394034373 +929.0,3.082413929642014 +930.0,3.799823908975618 +931.0,3.4042100602454344 +932.0,3.080486805658913 +933.0,3.3527508591988338 +934.0,3.9310189741822046 +935.0,3.097938948983539 +936.0,3.8138022467785815 +937.0,3.7583200574239104 +938.0,4.681236220491702 +939.0,3.0347239043171585 +940.0,3.589603988930983 +941.0,3.2089719267711025 +942.0,3.028791205394283 +943.0,3.1709693313530583 +944.0,3.567597398402384 +945.0,3.386408786695587 +946.0,4.0332825926016 +947.0,3.0891184452942055 +948.0,3.523153368048585 +949.0,3.200576167394428 +950.0,3.8406959218741172 +951.0,3.87267692102902 +952.0,3.024677306274506 +953.0,3.2867579915587952 +954.0,3.9037983550794237 +955.0,3.232416550834497 +956.0,3.4441570790239204 +957.0,3.4080326226468234 +958.0,3.367925548018609 +959.0,3.4504165443498716 +960.0,3.1631166722271726 +961.0,4.174262460629542 +962.0,4.040957751119582 +963.0,3.620521846333067 +964.0,3.8536437011288056 +965.0,3.079228435504437 +966.0,3.0838085376910502 +967.0,3.1703504671620943 +968.0,3.7290580058993235 +969.0,3.148849806158523 +970.0,3.3123161149490774 +971.0,3.6710309233840066 +972.0,3.3316713158601874 +973.0,3.0211520604127147 +974.0,3.406369106738883 +975.0,3.4842392486027 +976.0,3.6368935275950056 +977.0,3.8216416208166333 +978.0,3.7440979837111295 +979.0,3.0888143090628404 +980.0,4.035731446446281 +981.0,4.168830925456558 +982.0,3.1510946759811898 +983.0,3.2193720301792608 +984.0,3.60716130978566 +985.0,4.54517039503456 +986.0,3.1582481457674945 +987.0,3.11091180197694 +988.0,3.1346409046833594 +989.0,3.136461220777539 +990.0,3.5330375593902907 +991.0,3.9618322763237996 +992.0,3.7728263309196253 +993.0,3.8150847115073665 +994.0,3.0263446852163685 +995.0,3.0521789223555458 +996.0,3.4042354216278965 +997.0,3.98275790599666 +998.0,3.1201426505690866 +999.0,3.0621778918466545 +1000.0,3.0995616786153963 +1001.0,4.053572429319462 +1002.0,3.6613137789049235 +1003.0,3.1934787961835256 +1004.0,3.1767907256246213 +1005.0,3.314050828144366 +1006.0,3.569162076681219 +1007.0,3.10608648037514 +1008.0,3.540247842077404 +1009.0,3.1021387338803716 +1010.0,3.4236644550376116 +1011.0,3.1028531090088767 +1012.0,3.5865106375763802 +1013.0,5.078158777835556 +1014.0,3.042003349007811 +1015.0,3.217517806376515 +1016.0,3.733432592574758 +1017.0,3.9616267308759943 +1018.0,3.1214814680026994 +1019.0,3.4584368624048576 +1020.0,3.0585550061268925 +1021.0,3.391182064257904 +1022.0,3.1177986125135972 +1023.0,3.0919283753628792 +1024.0,3.47335371732229 +1025.0,3.2144081475920996 +1026.0,3.461331373951086 +1027.0,3.799033864124844 +1028.0,3.7164824613062546 +1029.0,3.1678072640673696 +1030.0,3.8203675427387793 +1031.0,3.575359596659796 +1032.0,4.120635135331343 +1033.0,3.1731233993925536 +1034.0,3.2456409896600893 +1035.0,3.0765227533101394 +1036.0,3.283421987980555 +1037.0,4.956566703526452 +1038.0,3.906341657556055 +1039.0,5.6946521875692255 +1040.0,3.0208959630841035 +1041.0,3.016038639132261 +1042.0,3.7593115317975867 +1043.0,5.737734063749164 +1044.0,3.033636101980315 +1045.0,3.665135486049561 +1046.0,3.6935366930879634 +1047.0,3.701680309433585 +1048.0,3.306125640144204 +1049.0,3.189748238489132 +1050.0,3.615623283135035 +1051.0,3.6808737978887 +1052.0,3.769131750878549 +1053.0,3.0268209856224924 +1054.0,3.1999150381959813 +1055.0,3.8746708312281886 +1056.0,3.4547007438943553 +1057.0,3.2363136419275182 +1058.0,3.8620149143597957 +1059.0,3.701767529050704 +1060.0,3.456282398827783 +1061.0,3.5856809898070283 +1062.0,4.324790395255193 +1063.0,3.445359302156814 +1064.0,3.044659514664213 +1065.0,3.9371848178256745 +1066.0,3.5274504975927106 +1067.0,3.0885817986934043 +1068.0,3.1433525319811486 +1069.0,3.0388769207360484 +1070.0,3.25185638430978 +1071.0,3.0022851105331174 +1072.0,3.5186648929052167 +1073.0,3.135535398843042 +1074.0,3.8327655293635123 +1075.0,3.025138748836329 +1076.0,3.401633479042387 +1077.0,3.563894145995725 +1078.0,3.2789316420462375 +1079.0,3.32657704341333 +1080.0,4.917743520424347 +1081.0,3.6650642013257633 +1082.0,3.231605527568993 +1083.0,3.1170095607043384 +1084.0,4.225799863959536 +1085.0,3.1794382990247354 +1086.0,4.073247957836787 +1087.0,3.2934880997941356 +1088.0,4.02088549999558 +1089.0,3.6708896050759976 +1090.0,3.786043522193547 +1091.0,3.2312992755674688 +1092.0,3.2081133735734393 +1093.0,3.5896576754753537 +1094.0,3.8712815956934428 +1095.0,3.669282047393718 +1096.0,4.158049459170594 +1097.0,3.0956235459947172 +1098.0,5.1952768576771895 +1099.0,3.181888769379954 +1100.0,3.211140752689301 +1101.0,3.175662752392279 +1102.0,3.0848172074484324 +1103.0,3.005224475551824 +1104.0,3.490783596125676 +1105.0,4.54256141303383 +1106.0,3.1424814428048355 +1107.0,3.129909952818318 +1108.0,3.5710235742566487 +1109.0,3.0251009035261838 +1110.0,3.211064501188965 +1111.0,3.7647403578201684 +1112.0,5.655758532296396 +1113.0,3.4898603181615595 +1114.0,3.157016834205666 +1115.0,3.388316416006995 +1116.0,3.0166458085509453 +1117.0,3.428143688309748 +1118.0,3.0340845840284296 +1119.0,3.231173794774187 +1120.0,3.136211697280956 +1121.0,3.086506278305109 +1122.0,3.5406978258153234 +1123.0,3.8055741412082167 +1124.0,4.209893638028868 +1125.0,3.2390824885204883 +1126.0,3.6515583213366942 +1127.0,4.1536953851404235 +1128.0,3.8879469875972017 +1129.0,3.797565053356795 +1130.0,3.151963786800255 +1131.0,3.038548374519497 +1132.0,4.014936949294299 +1133.0,3.1393675422491847 +1134.0,3.1075856596925853 +1135.0,3.643831376695375 +1136.0,3.0125393030884817 +1137.0,3.995455773671809 +1138.0,3.1755427702534864 +1139.0,3.378717322636261 +1140.0,3.106127321033692 +1141.0,3.9698464538101574 +1142.0,4.177301591943203 +1143.0,3.6572890644680833 +1144.0,3.83261340199325 +1145.0,3.2165383670957177 +1146.0,4.040759463492189 +1147.0,3.666765243455295 +1148.0,3.7154126718027363 +1149.0,3.089507761813109 +1150.0,3.1159197501889326 +1151.0,3.3647429032877088 +1152.0,3.29942753547587 +1153.0,3.255027965223294 +1154.0,3.114443432133402 +1155.0,3.263368058277736 +1156.0,3.0301351813017097 +1157.0,3.0943962639187466 +1158.0,3.0044508403590453 +1159.0,3.3335946341607476 +1160.0,3.4328198198920363 +1161.0,3.1086619644569398 +1162.0,3.20524300052631 +1163.0,3.2396596622734894 +1164.0,3.0483962461146983 +1165.0,3.232105177429631 +1166.0,3.8498700778877892 +1167.0,3.0206955019317108 +1168.0,3.5191092750239017 +1169.0,3.388927177336121 +1170.0,4.745546281910471 +1171.0,3.2660584333005187 +1172.0,3.3410733548233407 +1173.0,3.5975753872093534 +1174.0,3.2748595298570304 +1175.0,3.2943802412036898 +1176.0,3.5808584707152447 +1177.0,3.539124561561455 +1178.0,3.299576149668704 +1179.0,3.350998700833214 +1180.0,3.015222673836719 +1181.0,3.056718912907512 +1182.0,3.2029558357724475 +1183.0,3.316569248065828 +1184.0,3.513141519079726 +1185.0,3.1864885512027397 +1186.0,3.446023181821351 +1187.0,3.0559170573351215 +1188.0,3.558616054490014 +1189.0,4.239484239713931 +1190.0,3.2432251185581915 +1191.0,4.404083507785574 +1192.0,3.302557761960913 +1193.0,3.464226648384648 +1194.0,3.1414146517293475 +1195.0,4.160882199746461 +1196.0,3.2942895098730207 +1197.0,3.89086437668616 +1198.0,3.4288718346239637 +1199.0,3.1097847911508754 +1200.0,3.0290327106663315 +1201.0,3.1004488652663187 +1202.0,3.61915677651977 +1203.0,3.216706101364028 +1204.0,4.176003122455854 +1205.0,3.7410626991854485 +1206.0,3.6361048096468416 +1207.0,3.830651825741294 +1208.0,3.4287593817150435 +1209.0,3.1407264493192226 +1210.0,4.226895124127013 +1211.0,3.316157808787442 +1212.0,4.207357998034141 +1213.0,3.683680753079064 +1214.0,3.6566405243400673 +1215.0,4.777324907770149 +1216.0,3.1060007314803277 +1217.0,3.278303513011344 +1218.0,4.483130278194345 +1219.0,3.2654699675455197 +1220.0,4.453530482089249 +1221.0,3.2486530205308553 +1222.0,3.171032866195381 +1223.0,3.3443924124155955 +1224.0,3.572776579177728 +1225.0,3.2758827911143946 +1226.0,3.3626357031521614 +1227.0,3.9028026182675513 +1228.0,4.85915266667941 +1229.0,3.7446874638639946 +1230.0,3.700491100003657 +1231.0,3.0622778849291596 +1232.0,3.277425641221301 +1233.0,3.383229252751105 +1234.0,3.5275819540453615 +1235.0,3.469935181292097 +1236.0,4.5148666647398725 +1237.0,4.05364254048057 +1238.0,3.3341253737478853 +1239.0,3.221911309687473 +1240.0,3.211383730977746 +1241.0,3.468889401022045 +1242.0,3.909302008595538 +1243.0,3.797160223416666 +1244.0,3.538208194393165 +1245.0,3.080245632220504 +1246.0,4.507241448349688 +1247.0,4.090860983212752 +1248.0,3.588853898925013 +1249.0,3.0385573965193533 +1250.0,3.4184522835091333 +1251.0,3.698473731362207 +1252.0,4.07184731159568 +1253.0,3.080974650767366 +1254.0,3.803477774337278 +1255.0,3.853984953860721 +1256.0,3.779176512067429 +1257.0,3.0325457974644268 +1258.0,3.290158617365078 +1259.0,4.015771380745283 +1260.0,3.5001830908416176 +1261.0,3.097358760190092 +1262.0,4.794968872909207 +1263.0,3.1864048359954036 +1264.0,3.038139054470802 +1265.0,3.2413720765831218 +1266.0,3.65383922519813 +1267.0,3.2665834745220286 +1268.0,3.213519227632227 +1269.0,3.0360593808509915 +1270.0,4.34958568902429 +1271.0,3.040466977173393 +1272.0,3.1551570193528926 +1273.0,3.2539032844499127 +1274.0,3.3067502031226317 +1275.0,3.0238895526925544 +1276.0,4.283984344071722 +1277.0,3.275925815804693 +1278.0,3.989513457020979 +1279.0,3.238536584987837 +1280.0,3.007000415285809 +1281.0,3.4075895528127687 +1282.0,3.5689245823085156 +1283.0,3.458825164705537 +1284.0,3.080824162082415 +1285.0,3.16770879711675 +1286.0,4.871711528814471 +1287.0,3.0932988460679423 +1288.0,3.724106304177824 +1289.0,3.8769961842433425 +1290.0,3.192374231945841 +1291.0,3.9893380365049027 +1292.0,3.703630918514033 +1293.0,3.127587862174221 +1294.0,3.4246280767764734 +1295.0,3.3742293329388713 +1296.0,3.6040840065897495 +1297.0,3.7795498858972794 +1298.0,3.87021833971962 +1299.0,3.1624912779016663 +1300.0,3.385538983379124 +1301.0,3.286165777793726 +1302.0,3.472661530607045 +1303.0,4.57602543047245 +1304.0,3.9723342446573593 +1305.0,3.549153034667218 +1306.0,3.128685929725322 +1307.0,3.2721857843173523 +1308.0,4.230464266657805 +1309.0,3.847673374618522 +1310.0,3.356813064746185 +1311.0,3.003893776291886 +1312.0,3.121341500603534 +1313.0,3.111163502527159 +1314.0,3.5822652580276397 +1315.0,3.2740759357154143 +1316.0,4.482902633174772 +1317.0,3.636707878440369 +1318.0,3.5133457436005515 +1319.0,3.0189011932920673 +1320.0,3.657778962226943 +1321.0,4.853622172364556 +1322.0,3.132720891992553 +1323.0,3.0157015212284715 +1324.0,3.012203275469713 +1325.0,3.2766890457833693 +1326.0,3.0146213508756783 +1327.0,3.6028960665567906 +1328.0,3.007487083736373 +1329.0,3.08076385806347 +1330.0,3.200984604449354 +1331.0,3.2086531084755747 +1332.0,3.765086003275752 +1333.0,3.4790773980066194 +1334.0,4.198160808037159 +1335.0,3.2806957479963548 +1336.0,3.548030068686958 +1337.0,3.3648015088347685 +1338.0,3.793497712752509 +1339.0,3.2815051406858338 +1340.0,3.0491061245553577 +1341.0,4.252015677690914 +1342.0,3.2328525717745125 +1343.0,3.707175883580517 +1344.0,3.7040657481295605 +1345.0,3.005815498215369 +1346.0,3.0256462120145264 +1347.0,3.35099905993469 +1348.0,3.2065061005530344 +1349.0,3.832441111708339 +1350.0,3.311249863847171 +1351.0,3.512814623317922 +1352.0,3.1702346325612245 +1353.0,3.1000678839787126 +1354.0,3.064933666490952 +1355.0,6.038803990202645 +1356.0,3.2343396482064213 +1357.0,4.427099324207315 +1358.0,3.2633815939613644 +1359.0,3.8841504395812083 +1360.0,3.2574030165189947 +1361.0,3.0479482508340343 +1362.0,4.32525248817287 +1363.0,3.8130003665540286 +1364.0,4.459449624904144 +1365.0,3.0932925376908136 +1366.0,3.4852837141159205 +1367.0,3.070599571157781 +1368.0,3.086590918535912 +1369.0,5.446801735696595 +1370.0,3.7081798218453663 +1371.0,3.0312682456186084 +1372.0,3.679745120668996 +1373.0,3.2754167039812 +1374.0,3.840945736860978 +1375.0,3.058524354644045 +1376.0,4.355838936767274 +1377.0,4.336643389509804 +1378.0,3.2063879680331713 +1379.0,3.3861737555186595 +1380.0,3.404693769176523 +1381.0,3.22161593455338 +1382.0,3.706500208697947 +1383.0,3.3708522254370124 +1384.0,3.085878371864908 +1385.0,3.7885107521339343 +1386.0,3.106273887386509 +1387.0,3.0527330294213995 +1388.0,3.122514984118334 +1389.0,3.5313045174553217 +1390.0,3.4795993699326027 +1391.0,3.334288002245742 +1392.0,3.4731716110515913 +1393.0,3.065276285468729 +1394.0,3.345266453260985 +1395.0,3.3218527959448947 +1396.0,3.1930998996951288 +1397.0,3.213734176435147 +1398.0,3.8170394111000143 +1399.0,7.084143446244446 +1400.0,3.4992532609773965 +1401.0,3.3087726155826886 +1402.0,3.091000410879009 +1403.0,3.6296009296951626 +1404.0,3.2734071654312595 +1405.0,3.093179726867075 +1406.0,3.069243243734914 +1407.0,3.2571230228739445 +1408.0,4.668025413242871 +1409.0,3.5787793332471365 +1410.0,3.175820944924925 +1411.0,4.426038628220952 +1412.0,3.098921866444226 +1413.0,3.4718981616601527 +1414.0,3.0279782400116693 +1415.0,3.1110643419009962 +1416.0,3.2291367249259504 +1417.0,3.1130850346645396 +1418.0,3.787227322423223 +1419.0,3.779289309214061 +1420.0,3.6569106207419124 +1421.0,3.1131965448858363 +1422.0,5.497088268296898 +1423.0,4.7913351581582315 +1424.0,3.1546222784785667 +1425.0,3.285857856323836 +1426.0,4.840293531056037 +1427.0,3.0570936899751504 +1428.0,3.0745872613960534 +1429.0,3.8327800906449383 +1430.0,4.5008055392936495 +1431.0,3.4421175199880745 +1432.0,3.1477139157383416 +1433.0,3.1442721453649636 +1434.0,4.351645156839069 +1435.0,3.3548280706468585 +1436.0,3.0622612394372917 +1437.0,4.502502601069165 +1438.0,3.750571455142663 +1439.0,3.620140988759974 +1440.0,3.6523574857457834 +1441.0,3.9465160504394166 +1442.0,3.4247058079655406 +1443.0,3.9266962600636948 +1444.0,3.19416102691114 +1445.0,3.7014515454516883 +1446.0,3.122881364079877 +1447.0,3.046101719538574 +1448.0,3.2632223574002506 +1449.0,3.7874067671948524 +1450.0,3.153104684942489 +1451.0,3.3868386153322323 +1452.0,3.2193053772946576 +1453.0,3.102948120365615 +1454.0,3.133106602872442 +1455.0,3.071425624273604 +1456.0,3.365833820591614 +1457.0,4.151704526844227 +1458.0,3.1379379557908234 +1459.0,3.6299301280701477 +1460.0,3.451708457665929 +1461.0,5.435385227772166 +1462.0,3.238366068867028 +1463.0,3.6103522301134654 +1464.0,4.190312863951159 +1465.0,3.021235023502058 +1466.0,3.1496000095246472 +1467.0,3.556433509557685 +1468.0,3.2216538313639727 +1469.0,3.3084207813644957 +1470.0,3.2929044829774714 +1471.0,5.310310276691984 +1472.0,3.38949003455463 +1473.0,3.688933004497412 +1474.0,3.0841922855320325 +1475.0,3.3108810253850423 +1476.0,3.302575922369189 +1477.0,3.1760874106673476 +1478.0,3.0943888625444704 +1479.0,3.9774731369621925 +1480.0,3.5013706447250934 +1481.0,3.5442525254112196 +1482.0,4.136826373319941 +1483.0,3.3052140950319004 +1484.0,3.0213882737731694 +1485.0,3.4992208883311946 +1486.0,3.065989869617671 +1487.0,3.281235084183809 +1488.0,3.600340352972934 +1489.0,3.056855308161714 +1490.0,3.3288486766907304 +1491.0,3.2618241160553674 +1492.0,4.870837324586466 +1493.0,4.550759635057847 +1494.0,3.4026677321259546 +1495.0,5.902592777724007 +1496.0,3.5287170877582974 +1497.0,3.3780372166753594 +1498.0,4.046493509643974 +1499.0,3.455756700674982 +1500.0,3.709179940643664 +1501.0,3.4294709546521984 +1502.0,3.486582297854434 +1503.0,3.300011632356677 +1504.0,4.613520023231666 +1505.0,4.348820854823645 +1506.0,3.3907406091856775 +1507.0,4.039454761142197 +1508.0,3.079881241524037 +1509.0,6.179897651583689 +1510.0,3.77008101226767 +1511.0,3.0944634114765623 +1512.0,3.3760190743137604 +1513.0,4.25907222043026 +1514.0,3.24461484588491 +1515.0,3.293513167942527 +1516.0,3.3600562450036913 +1517.0,3.5660821413929003 +1518.0,3.283782735479818 +1519.0,3.3199528644987693 +1520.0,3.0646104961750202 +1521.0,3.031244504795308 +1522.0,4.097111229368635 +1523.0,3.8815228297461624 +1524.0,3.8393873948390826 +1525.0,3.592039938429759 +1526.0,5.496378185377491 +1527.0,4.219823307649011 +1528.0,3.1137297421073153 +1529.0,3.602235216780554 +1530.0,3.008897105552288 +1531.0,3.3574177371134666 +1532.0,3.374467330479626 +1533.0,3.1253296944175872 +1534.0,3.0039778092494953 +1535.0,3.1387210346580474 +1536.0,4.333934225359568 +1537.0,4.1132305554016675 +1538.0,3.0612196725151453 +1539.0,3.080636760837736 +1540.0,5.1366553453394115 +1541.0,3.116254674606418 +1542.0,3.9647931133639744 +1543.0,3.282331302083116 +1544.0,5.67306345542802 +1545.0,3.3219957882875475 +1546.0,3.142550375459038 +1547.0,3.7851824680765356 +1548.0,3.645199737590743 +1549.0,3.033080813722147 +1550.0,3.0857100463513705 +1551.0,4.051314292090135 +1552.0,3.917865764730834 +1553.0,3.2062558542563204 +1554.0,4.412433573865572 +1555.0,3.533948570800208 +1556.0,3.4009363685786296 +1557.0,3.7510903161172275 +1558.0,3.142672078656698 +1559.0,3.4680605482867537 +1560.0,3.317076564364153 +1561.0,4.168386502287192 +1562.0,3.1722088136369777 +1563.0,3.0648190296118956 +1564.0,3.2259283695442784 +1565.0,3.8942075810939394 +1566.0,3.4139991867243062 +1567.0,3.006780903861733 +1568.0,4.590220762494519 +1569.0,3.531335372756687 +1570.0,3.160436942408852 +1571.0,3.1127629480117793 +1572.0,3.197434955557351 +1573.0,3.1361469522605137 +1574.0,3.3763821088784938 +1575.0,3.0094025132030855 +1576.0,3.126134083147964 +1577.0,3.23783786017773 +1578.0,4.763356704800548 +1579.0,3.032547026406285 +1580.0,3.2841952063135356 +1581.0,3.071782966679523 +1582.0,3.6585163690396825 +1583.0,3.211640844116326 +1584.0,3.2302246140792015 +1585.0,3.7589254954641853 +1586.0,3.843029668066553 +1587.0,4.463684786796939 +1588.0,3.6110072447600894 +1589.0,3.791578884198082 +1590.0,3.2574750027635346 +1591.0,3.581749044707385 +1592.0,3.0454294591103577 +1593.0,5.719132498464657 +1594.0,3.6226136029191736 +1595.0,4.537930561986004 +1596.0,4.164610592593208 +1597.0,3.320814448695989 +1598.0,3.7389951857231445 +1599.0,4.167716469597181 +1600.0,3.9122704943585402 +1601.0,3.5782797489569678 +1602.0,4.326135809461621 +1603.0,4.049219228321023 +1604.0,3.7751365496929257 +1605.0,3.571826420630621 +1606.0,3.4503769996674274 +1607.0,3.060064058332787 +1608.0,3.178529704915636 +1609.0,3.304938835024221 +1610.0,3.2153519441221285 +1611.0,3.17982643313006 +1612.0,3.223947589209664 +1613.0,3.324852996520445 +1614.0,3.6617984242381296 +1615.0,4.462205131328125 +1616.0,3.0404882835334965 +1617.0,3.9104109092936397 +1618.0,3.6688051521282543 +1619.0,3.432684743528601 +1620.0,3.2078786917143827 +1621.0,3.2081440400789836 +1622.0,3.1435522889825602 +1623.0,3.474804334776215 +1624.0,3.895916198193934 +1625.0,3.657012925916218 +1626.0,3.079408261806248 +1627.0,3.4770443475566664 +1628.0,3.554625567237787 +1629.0,3.108592493258545 +1630.0,3.047600106441314 +1631.0,3.109876970980754 +1632.0,3.5376303818906703 +1633.0,3.6110742094274992 +1634.0,3.141424281736137 +1635.0,3.120398943468857 +1636.0,3.627035716757066 +1637.0,3.2270284227770247 +1638.0,3.1207444495237606 +1639.0,3.0328804831864304 +1640.0,3.76342609718085 +1641.0,3.1048822591965863 +1642.0,4.1082473302821185 +1643.0,5.060906002217573 +1644.0,4.078593398629966 +1645.0,3.2862412097879514 +1646.0,3.121764276893782 +1647.0,3.366033053847118 +1648.0,3.6932431059259416 +1649.0,3.0758329254557863 +1650.0,3.6235004298669784 +1651.0,3.1404573715708666 +1652.0,3.0124330929887417 +1653.0,3.034058289971629 +1654.0,3.5173027847718776 +1655.0,3.3992777949020274 +1656.0,4.725237058602396 +1657.0,5.342564337671188 +1658.0,3.806713692543661 +1659.0,3.620599222410973 +1660.0,4.040524302023963 +1661.0,3.643538235874906 +1662.0,3.129859510515342 +1663.0,3.790650032240002 +1664.0,3.9677962115266743 +1665.0,3.484959105455088 +1666.0,3.8259547390397923 +1667.0,3.3377396693885615 +1668.0,3.063980142076189 +1669.0,3.5356492904190704 +1670.0,3.272041515511437 +1671.0,4.200419192522829 +1672.0,3.0570955358151513 +1673.0,3.1948962012344793 +1674.0,3.01927873763348 +1675.0,3.1000008488172655 +1676.0,4.1135500006176215 +1677.0,3.2361705763757906 +1678.0,3.014476584303663 +1679.0,4.808682115628233 +1680.0,3.149494282280755 +1681.0,4.08502226896637 +1682.0,3.888130890216689 +1683.0,3.5711191098414705 +1684.0,3.2193997641592187 +1685.0,3.47764357656243 +1686.0,3.191109765559852 +1687.0,3.307110035461566 +1688.0,3.1019360892450756 +1689.0,3.593558541939521 +1690.0,3.1294610011961033 +1691.0,3.0849755337760354 +1692.0,3.041799194861953 +1693.0,5.0006684561834 +1694.0,3.2825330864901314 +1695.0,3.283652631303376 +1696.0,3.0876691020311964 +1697.0,3.2391563161382324 +1698.0,4.054049329545516 +1699.0,3.2561388848389843 +1700.0,3.0144332549157298 +1701.0,3.399543986496508 +1702.0,4.143451079650979 +1703.0,4.315380463285608 +1704.0,6.210900020703402 +1705.0,3.460685246493475 +1706.0,3.521687873166635 +1707.0,3.453809126273325 +1708.0,4.813530938278196 +1709.0,4.163185695192132 +1710.0,3.3318053840023705 +1711.0,3.0261698522065985 +1712.0,3.7022376070304155 +1713.0,3.7233421426786317 +1714.0,3.0768881495346503 +1715.0,3.4319055551327406 +1716.0,3.64002797628733 +1717.0,4.10815711006534 +1718.0,5.241517741276745 +1719.0,3.3420868293803454 +1720.0,4.962602309872774 +1721.0,3.9269120856446644 +1722.0,3.248278983052231 +1723.0,3.2182109268319232 +1724.0,3.600027309213682 +1725.0,3.7508259015551952 +1726.0,4.537626180611402 +1727.0,3.0700159093283905 +1728.0,3.4165756054563676 +1729.0,3.07542251014622 +1730.0,3.242105549909308 +1731.0,3.3449367033291497 +1732.0,3.2801578563149834 +1733.0,3.179926151433106 +1734.0,3.2008902211150345 +1735.0,3.7069978669130514 +1736.0,3.165401314995381 +1737.0,3.012378757309108 +1738.0,3.477285523151142 +1739.0,3.14408014457593 +1740.0,3.0927429425856 +1741.0,3.064664928482377 +1742.0,3.4096931098699415 +1743.0,3.9906215797439595 +1744.0,3.48541901566041 +1745.0,3.617130057053915 +1746.0,3.9426976515008874 +1747.0,3.3489308009705905 +1748.0,3.271581479465994 +1749.0,3.062769565560904 +1750.0,4.423993129834498 +1751.0,3.4356436994043813 +1752.0,3.474403575203895 +1753.0,3.2222087860690936 +1754.0,3.8002528343015194 +1755.0,3.110201702359754 +1756.0,3.4065087218670502 +1757.0,3.5617016285093888 +1758.0,3.1804510931608285 +1759.0,3.136777273928144 +1760.0,4.2096411438973576 +1761.0,3.1694801559321637 +1762.0,3.675162914112719 +1763.0,3.4462980105311645 +1764.0,3.4333275772499667 +1765.0,3.069463616733692 +1766.0,4.840038601542286 +1767.0,3.702776493639827 +1768.0,3.3022139116989444 +1769.0,3.0329621137242673 +1770.0,3.2790840907285395 +1771.0,3.471350310139216 +1772.0,3.0609697215617353 +1773.0,3.087615458350594 +1774.0,3.9971030240902223 +1775.0,3.708790845908915 +1776.0,3.096747092830991 +1777.0,3.5627920208059227 +1778.0,3.0613441836617086 +1779.0,3.743199819625634 +1780.0,3.31713052476957 +1781.0,3.593528943139745 +1782.0,4.226000555791562 +1783.0,3.6617630728642805 +1784.0,3.1247281126295143 +1785.0,3.0052712022833443 +1786.0,3.156426533405567 +1787.0,3.9766167995228185 +1788.0,3.788696006831674 +1789.0,3.612580311856224 +1790.0,3.7062130786801775 +1791.0,3.2177793048448327 +1792.0,4.773191430777825 +1793.0,3.4063802309055133 +1794.0,3.9109315587322864 +1795.0,3.2088505343575733 +1796.0,3.0207496343966174 +1797.0,3.8037902181972836 +1798.0,4.209739415780402 +1799.0,3.251688117141283 +1800.0,3.253645438043767 +1801.0,4.062659818793551 +1802.0,3.229370046885549 +1803.0,4.286536762688703 +1804.0,3.5292811008378315 +1805.0,3.846247331979799 +1806.0,3.461394546176145 +1807.0,3.0397161129353787 +1808.0,3.1146714558949316 +1809.0,3.158003402397827 +1810.0,3.5052204329306433 +1811.0,3.7672841020680585 +1812.0,3.5596220179445477 +1813.0,4.568814216098692 +1814.0,3.9446388721268284 +1815.0,3.8152560731583884 +1816.0,3.590061986300132 +1817.0,3.0922081774484695 +1818.0,4.272472978787942 +1819.0,3.2593785343709327 +1820.0,3.8419321165113445 +1821.0,3.940828168501554 +1822.0,3.0662658405739163 +1823.0,3.0943376580076625 +1824.0,4.147994349050023 +1825.0,3.3501100651848628 +1826.0,3.3743580357718397 +1827.0,3.280892202624569 +1828.0,3.5595136392925153 +1829.0,3.2854752378289005 +1830.0,3.1016799725073194 +1831.0,3.1209380620146567 +1832.0,3.0927081238469203 +1833.0,3.367216400715993 +1834.0,3.223483672998058 +1835.0,3.0182251364798813 +1836.0,3.3246724232355396 +1837.0,3.051156669695272 +1838.0,3.4738493650570734 +1839.0,3.3764951642807723 +1840.0,3.015662706621692 +1841.0,3.3022848485643324 +1842.0,3.0843332436111477 +1843.0,3.951991985279165 +1844.0,3.060455266676508 +1845.0,3.056878582410868 +1846.0,4.885479863690241 +1847.0,3.1675289437831102 +1848.0,4.081578405072062 +1849.0,3.9116071567539734 +1850.0,3.3896572696524063 +1851.0,4.49514346074182 +1852.0,3.499220608239163 +1853.0,4.245970677315105 +1854.0,3.898704233896555 +1855.0,3.8189732209923823 +1856.0,3.056591867377857 +1857.0,3.8238804720905692 +1858.0,5.331784111215134 +1859.0,4.2709236516333045 +1860.0,3.866649623195858 +1861.0,3.7467212836494337 +1862.0,4.131883586362235 +1863.0,3.496614151632121 +1864.0,3.4838777804503094 +1865.0,3.1256324671534235 +1866.0,3.2842063573596416 +1867.0,3.5546794891867926 +1868.0,3.1035712232872052 +1869.0,3.177152622505317 +1870.0,3.0709345717328644 +1871.0,3.264281160262347 +1872.0,3.0056152863251535 +1873.0,3.0429975623635785 +1874.0,3.4464531634194873 +1875.0,3.903835976488148 +1876.0,3.274756702498567 +1877.0,4.23752436657367 +1878.0,3.644365996646571 +1879.0,4.335210926590895 +1880.0,3.2099363518794237 +1881.0,3.1103663341131287 +1882.0,3.548271868011794 +1883.0,3.206272456434655 +1884.0,3.607443121616388 +1885.0,3.1183122077368255 +1886.0,3.2009613428105492 +1887.0,3.800038577362055 +1888.0,3.6304252498929124 +1889.0,4.640000065486145 +1890.0,3.1825839787105257 +1891.0,3.141910303742287 +1892.0,3.2911104944689322 +1893.0,3.2373913958922054 +1894.0,4.108190840498996 +1895.0,3.1454822564158333 +1896.0,3.0888176806069083 +1897.0,3.4201337268548784 +1898.0,4.0069369083680035 +1899.0,4.575903540306957 +1900.0,3.0215634618435554 +1901.0,4.572142290390491 +1902.0,3.407496176302617 +1903.0,3.4976583717157412 +1904.0,3.4215218640691147 +1905.0,3.6090352020859453 +1906.0,3.144974546542789 +1907.0,3.0291821228768265 +1908.0,3.3644467882332356 +1909.0,3.713448723642675 +1910.0,3.0801631276955628 +1911.0,3.0033743902796903 +1912.0,3.934910596852217 +1913.0,3.9089725905864214 +1914.0,3.1680623233839458 +1915.0,3.1358553703037373 +1916.0,3.598027827729629 +1917.0,3.0951292964666015 +1918.0,3.260267658989453 +1919.0,3.4018715904724504 +1920.0,4.181383637351445 +1921.0,4.250076435641736 +1922.0,3.5192318136231844 +1923.0,3.186523776015617 +1924.0,3.1299296515503703 +1925.0,3.3795221216686055 +1926.0,3.3817142989298166 +1927.0,3.6295732514216916 +1928.0,4.8595331840656595 +1929.0,3.355801729673457 +1930.0,3.6448422490072696 +1931.0,4.014448830147546 +1932.0,3.4890342448917746 +1933.0,3.3949025379412596 +1934.0,3.449631339554371 +1935.0,3.784973326154929 +1936.0,3.2384499044636113 +1937.0,3.240864675687867 +1938.0,3.002270766817026 +1939.0,3.2933355749814024 +1940.0,3.295347419902276 +1941.0,4.10828512237652 +1942.0,5.148827881858191 +1943.0,3.0142797726824093 +1944.0,3.918227780417057 +1945.0,3.240198410023645 +1946.0,3.5844841950836495 +1947.0,3.0910932962674296 +1948.0,3.1794233329301598 +1949.0,4.295914964300646 +1950.0,3.3972904246935554 +1951.0,4.301127298086072 +1952.0,3.218759467611113 +1953.0,3.049350197535901 +1954.0,3.790350386143854 +1955.0,3.3990193144779375 +1956.0,4.9270108329054985 +1957.0,3.0854076143944122 +1958.0,3.5443729501672996 +1959.0,3.8001135305574283 +1960.0,3.163467916936721 +1961.0,3.3836594062979266 +1962.0,3.063743954016363 +1963.0,4.89218286556604 +1964.0,3.057011739677869 +1965.0,3.2770025985019755 +1966.0,5.484830781011561 +1967.0,3.498451561659131 +1968.0,3.987911967908589 +1969.0,3.024415447055795 +1970.0,3.560318305819619 +1971.0,3.1341877028003045 +1972.0,3.2971057718796053 +1973.0,3.259832888403599 +1974.0,3.0283961331942444 +1975.0,3.7522074093557043 +1976.0,3.0828061487876246 +1977.0,3.025744632101863 +1978.0,3.0683881025793105 +1979.0,3.497738792908718 +1980.0,4.16477007089056 +1981.0,3.924303678235609 +1982.0,4.967940629362553 +1983.0,3.292761375317339 +1984.0,4.164578728550458 +1985.0,3.96642042102258 +1986.0,4.731535205164535 +1987.0,3.7421358332347996 +1988.0,3.007881600038201 +1989.0,3.294953410534278 +1990.0,3.2995153316561776 +1991.0,3.5854467627061646 +1992.0,3.2566019773679487 +1993.0,3.8633600517402162 +1994.0,3.2322971752283376 +1995.0,3.0682450205189165 +1996.0,3.013278951390939 +1997.0,3.1294932091033765 +1998.0,3.297145171077415 +1999.0,3.8387643328212464 +2000.0,3.1382454188976894 +2001.0,3.0137211689303838 +2002.0,3.7518972240258455 +2003.0,3.0787733239221815 +2004.0,3.3830299504281567 +2005.0,3.2547510684033396 +2006.0,3.0728905179974486 +2007.0,3.175690446588575 +2008.0,3.319260810774436 +2009.0,3.0529287156060536 +2010.0,3.139607337996129 +2011.0,3.4017676372756602 +2012.0,3.230664763838494 +2013.0,3.0464801629115548 +2014.0,4.136894517701378 +2015.0,4.131858214274462 +2016.0,3.9952153627283966 +2017.0,3.154657202907124 +2018.0,3.120143344580192 +2019.0,3.4178355787252857 +2020.0,3.974226731768706 +2021.0,3.6575993021856164 +2022.0,3.0574674026662585 +2023.0,4.30337539415971 +2024.0,3.037195226419295 +2025.0,3.30341905910038 +2026.0,3.0756480150297847 +2027.0,3.305478229726822 +2028.0,3.0045375274578268 +2029.0,3.37191272718158 +2030.0,3.112245605555228 +2031.0,4.888417284087666 +2032.0,3.0676559401105337 +2033.0,3.564327717018907 +2034.0,4.7851454294677165 +2035.0,3.234616992231427 +2036.0,3.116723599775925 +2037.0,3.281826228652399 +2038.0,3.0179183905207125 +2039.0,3.1626689580233838 +2040.0,3.2514768315330893 +2041.0,3.7139937101661644 +2042.0,3.854321286336041 +2043.0,3.116435853699654 +2044.0,3.3064944756502452 +2045.0,4.8029763838348165 +2046.0,3.486495950725332 +2047.0,4.8837062504919855 +2048.0,3.0088748627923705 +2049.0,3.331064106461419 +2050.0,3.4075227197875133 +2051.0,3.445085988730843 +2052.0,4.461643843462216 +2053.0,3.1821585513387607 +2054.0,3.008707270513623 +2055.0,3.378183077819751 +2056.0,3.7658700632354027 +2057.0,3.0537661493763513 +2058.0,3.111795634851592 +2059.0,4.089529487732886 +2060.0,4.136344496075484 +2061.0,4.131293088741693 +2062.0,3.1748967550479046 +2063.0,3.073768003614988 +2064.0,5.278258428747581 +2065.0,3.661403377447745 +2066.0,3.300119016880623 +2067.0,4.348159230216351 +2068.0,3.4320553392638873 +2069.0,3.6251415175140993 +2070.0,3.152269642472714 +2071.0,3.030583643940746 +2072.0,3.8447418294685884 +2073.0,3.217821268781587 +2074.0,4.667347496356758 +2075.0,3.5354072785340764 +2076.0,3.343297051658444 +2077.0,3.941781994443472 +2078.0,3.020216367284542 +2079.0,3.5880433555870916 +2080.0,3.615094683459604 +2081.0,3.409008953242045 +2082.0,3.2638688415843666 +2083.0,3.326943962466681 +2084.0,3.1624711965995917 +2085.0,3.044762615734455 +2086.0,3.023496415898203 +2087.0,3.8896784413663044 +2088.0,3.1447458789576834 +2089.0,3.731183590121338 +2090.0,4.861696652956899 +2091.0,4.284570126098699 +2092.0,3.0051408411329987 +2093.0,3.1442378019813306 +2094.0,3.3856340872839237 +2095.0,3.9096366071447495 +2096.0,3.944809647323701 +2097.0,3.511899272062359 +2098.0,3.078993524477288 +2099.0,3.0385413050507077 +2100.0,3.204395545966617 +2101.0,3.6557412269427743 +2102.0,3.3315168163995343 +2103.0,3.543035941713657 +2104.0,3.1564340586493143 +2105.0,3.947600444627287 +2106.0,4.000860113197843 +2107.0,3.307879267619093 +2108.0,4.032853893267944 +2109.0,3.025601776829388 +2110.0,3.1681515949118975 +2111.0,3.506056674344632 +2112.0,3.4298024428151908 +2113.0,3.0929309855415954 +2114.0,3.0338495888220707 +2115.0,3.278044988305915 +2116.0,3.413567375455912 +2117.0,4.3264213589313085 +2118.0,3.124745716373544 +2119.0,3.7918353267143106 +2120.0,4.0345705726247 +2121.0,3.396363830084649 +2122.0,3.06563955094251 +2123.0,3.608703935077408 +2124.0,3.1299681756785733 +2125.0,4.496600723169871 +2126.0,3.326376361184791 +2127.0,3.533396955589225 +2128.0,3.7199463615077644 +2129.0,3.067035411011938 +2130.0,3.0738689050781693 +2131.0,3.3079270450687046 +2132.0,4.63801189577099 +2133.0,4.125545489660544 +2134.0,3.0145234443358753 +2135.0,4.49520120860972 +2136.0,3.2402370454411 +2137.0,3.200499119799087 +2138.0,3.4795990309977434 +2139.0,3.9960009907645158 +2140.0,3.2793164504890204 +2141.0,3.4452293720725113 +2142.0,3.645031577057781 +2143.0,3.065572288121495 +2144.0,3.657372061571452 +2145.0,3.1282155441392914 +2146.0,3.7945398919255124 +2147.0,3.174144621699323 +2148.0,3.3228579252747954 +2149.0,3.476573393253944 +2150.0,3.1811117634852586 +2151.0,3.120029954264412 +2152.0,3.9671476211333987 +2153.0,3.330243832850472 +2154.0,3.114236928328408 +2155.0,4.313965071082922 +2156.0,3.491738112615835 +2157.0,3.4968249721906672 +2158.0,3.8805183620196235 +2159.0,3.4065868729908475 +2160.0,3.611713076904109 +2161.0,3.1741538741782485 +2162.0,3.2143404086902136 +2163.0,3.6963268068807364 +2164.0,4.482279217866456 +2165.0,3.006517274850245 +2166.0,3.96006842818936 +2167.0,3.513354282685121 +2168.0,3.0694688736159756 +2169.0,3.419812994849571 +2170.0,3.5490674285446278 +2171.0,3.3262720632913014 +2172.0,3.089862040144829 +2173.0,3.2992053087264286 +2174.0,3.0748195961312916 +2175.0,3.486789972231445 +2176.0,3.3839358252666956 +2177.0,3.650512246111299 +2178.0,3.1505175075346115 +2179.0,3.2461867952261403 +2180.0,3.7475451650995737 +2181.0,3.4749757158627834 +2182.0,3.9028828020522695 +2183.0,3.559268236783327 +2184.0,3.4927147023619223 +2185.0,3.5438148450597433 +2186.0,3.3629281703580847 +2187.0,3.2117337198810123 +2188.0,3.013892833017329 +2189.0,3.294892525399439 +2190.0,3.2690792584902493 +2191.0,3.484969217415931 +2192.0,3.1950042272667787 +2193.0,3.3556474147386846 +2194.0,3.447140380029678 +2195.0,3.2480982638192755 +2196.0,3.45232490350141 +2197.0,3.3114890097193452 +2198.0,3.2312418122565303 +2199.0,3.67922257147725 diff --git a/tests/fixtures/catalogs/case_028_periodic_2200d.csv b/tests/fixtures/catalogs/case_028_periodic_2200d.csv new file mode 100644 index 0000000..04f3521 --- /dev/null +++ b/tests/fixtures/catalogs/case_028_periodic_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.5636354174303047 +1.0,2.6692899920889723 +2.0,2.8813986162654595 +3.0,3.0754298383850087 +4.0,3.2096699186869233 +5.0,3.3854077384098407 +6.0,3.541516723381634 +7.0,3.772728915076103 +8.0,3.928360262347486 +9.0,4.103928575372692 +10.0,4.2969081983887065 +11.0,4.497134194163631 +12.0,2.471626036180724 +13.0,2.676830754818265 +14.0,2.886906045578686 +15.0,3.017766433964775 +16.0,3.2593587338499828 +17.0,3.3997486037748152 +18.0,3.6154006030276564 +19.0,3.6942569254877413 +20.0,3.973535945386171 +21.0,4.114142467309357 +22.0,4.3016991314464175 +23.0,4.523755188184009 +24.0,2.5009583467696412 +25.0,2.6780870530857257 +26.0,2.873846537622953 +27.0,3.046923461548911 +28.0,3.288014098654606 +29.0,3.372669137416907 +30.0,3.587752905394655 +31.0,3.7489222638129336 +32.0,3.933365992077518 +33.0,4.106423471798218 +34.0,4.291006351133779 +35.0,4.4803401694229406 +36.0,2.452900482297591 +37.0,2.7044980773274157 +38.0,2.8668828424641557 +39.0,3.052870925891334 +40.0,3.22245215127023 +41.0,3.4051044961565893 +42.0,3.6043008282896865 +43.0,3.7866278796899935 +44.0,3.9174959999331755 +45.0,4.148416238060158 +46.0,4.32664220732386 +47.0,4.485080469705982 +48.0,2.4619805148960556 +49.0,2.701917486937677 +50.0,2.8553465268319456 +51.0,3.03088413538047 +52.0,3.2217079861691964 +53.0,3.40358294184566 +54.0,3.5279443780131556 +55.0,3.751141320136422 +56.0,3.9413396815197665 +57.0,4.138964969696001 +58.0,4.312734800413443 +59.0,4.489633586543434 +60.0,2.4963655052498384 +61.0,2.6965747902599966 +62.0,2.874193773145292 +63.0,3.0864980092467813 +64.0,3.2372595580415 +65.0,3.3647903532522405 +66.0,3.5989687434616187 +67.0,3.7612607540462943 +68.0,3.935714996911706 +69.0,4.167773738112737 +70.0,4.312551811774675 +71.0,4.47527051967767 +72.0,2.4479491958937816 +73.0,2.6467924988272613 +74.0,2.855540022269581 +75.0,3.0318762469414007 +76.0,3.240988417893241 +77.0,3.436331286243963 +78.0,3.6073589527521572 +79.0,3.729630739969791 +80.0,3.908762354590119 +81.0,4.135334493182191 +82.0,4.247939695072866 +83.0,4.475214162715397 +84.0,2.5213853268656505 +85.0,2.6248615516417564 +86.0,2.884925188424476 +87.0,3.0490598608413655 +88.0,3.220563191606085 +89.0,3.400257917253156 +90.0,3.580596258014663 +91.0,3.755471737261087 +92.0,3.9209048986125863 +93.0,4.137616345894527 +94.0,4.2688288503790535 +95.0,4.48362125033742 +96.0,2.5031443949127756 +97.0,2.6785183961856585 +98.0,2.8468116175213 +99.0,3.0428796129813027 +100.0,3.215723249357989 +101.0,3.327305184329795 +102.0,3.6199591834226372 +103.0,3.729656286537798 +104.0,3.9504916650496713 +105.0,4.164051788738572 +106.0,4.347191631611068 +107.0,4.516582466891721 +108.0,2.5105951451162696 +109.0,2.6888918020076793 +110.0,2.860351054763937 +111.0,3.006632521687793 +112.0,3.238077084011833 +113.0,3.4254282471471904 +114.0,3.61973180112176 +115.0,3.7700600483191424 +116.0,3.9488281413651247 +117.0,4.132250732012632 +118.0,4.287372091803625 +119.0,4.470466775341405 +120.0,2.4949026719492315 +121.0,2.697112899848318 +122.0,2.873992938640428 +123.0,3.023088991932601 +124.0,3.213599976521303 +125.0,3.439624877288955 +126.0,3.592932673100893 +127.0,3.7531130020742363 +128.0,3.964815432487625 +129.0,4.147942831487542 +130.0,4.307435773466319 +131.0,4.436213435957532 +132.0,2.4879600721243835 +133.0,2.6242937052958575 +134.0,2.823925947120662 +135.0,3.0623150430010324 +136.0,3.2194823723431347 +137.0,3.4243235069881797 +138.0,3.5427708581045425 +139.0,3.7782158176099263 +140.0,3.9223774670145297 +141.0,4.169045772136899 +142.0,4.301470675506147 +143.0,4.509139017354759 +144.0,2.4884494997905033 +145.0,2.690376666170583 +146.0,2.9102481374500346 +147.0,3.052202853860366 +148.0,3.196448088413149 +149.0,3.3879053304596285 +150.0,3.5524489859345856 +151.0,3.8049938937748986 +152.0,3.9308318149797823 +153.0,4.114566776457901 +154.0,4.3058179097809255 +155.0,4.4978913715735676 +156.0,2.512506106648649 +157.0,2.7234583667669376 +158.0,2.842329780731793 +159.0,3.0724520595002756 +160.0,3.2074004781550993 +161.0,3.4226570804799215 +162.0,3.558385618852929 +163.0,3.760223864351804 +164.0,3.8951345145366325 +165.0,4.124384699750449 +166.0,4.2803195044537965 +167.0,4.510974254174758 +168.0,2.4862041946913815 +169.0,2.679641686584239 +170.0,2.8734857066542636 +171.0,3.0281906496245474 +172.0,3.238260705378082 +173.0,3.402513437548081 +174.0,3.575159186341888 +175.0,3.773353318829461 +176.0,3.931104036500987 +177.0,4.12833789750503 +178.0,4.336894384141655 +179.0,4.484802892024089 +180.0,2.50854449063499 +181.0,2.694420324817148 +182.0,2.835715033613306 +183.0,3.0582847370195725 +184.0,3.213690198460286 +185.0,3.4522251934436756 +186.0,3.5512356837431707 +187.0,3.7473406295026397 +188.0,3.8920604114282984 +189.0,4.092558019601438 +190.0,4.333160933029648 +191.0,4.490234623754162 +192.0,2.5433438818962033 +193.0,2.6927871929973968 +194.0,2.8327067741414487 +195.0,3.0339093735320986 +196.0,3.2730099208398475 +197.0,3.4038379045751928 +198.0,3.5959496822905233 +199.0,3.770108920567794 +200.0,3.9862957773293135 +201.0,4.137426083228837 +202.0,4.321654139197944 +203.0,4.50024850348386 +204.0,2.5343840438245904 +205.0,2.6753173754201223 +206.0,2.8609998483488477 +207.0,3.05683219769594 +208.0,3.2185130916828255 +209.0,3.385577185271469 +210.0,3.6130255096029087 +211.0,3.755863377880344 +212.0,3.9173856336250332 +213.0,4.103184593535507 +214.0,4.3312955326057345 +215.0,4.44432967704924 +216.0,2.4928320071895467 +217.0,2.668890884509258 +218.0,2.853667607817502 +219.0,3.031913066249623 +220.0,3.2428039234394355 +221.0,3.4007543503356197 +222.0,3.548423897298699 +223.0,3.7492166039186117 +224.0,3.9341000558233077 +225.0,4.1359144162639705 +226.0,4.288929328774359 +227.0,4.450425641310672 +228.0,2.4949116787650545 +229.0,2.660150341736801 +230.0,2.839632205092948 +231.0,2.997425562913896 +232.0,3.171818645645137 +233.0,3.42354456611386 +234.0,3.5587972684692537 +235.0,3.7437810652768913 +236.0,3.934273454239824 +237.0,4.109132430644753 +238.0,4.278847626631572 +239.0,4.532480171804394 +240.0,2.48891551734187 +241.0,2.7037294232564544 +242.0,2.8962342676618285 +243.0,2.988070238686828 +244.0,3.2323465255937553 +245.0,3.4425716587943587 +246.0,3.5783288343522353 +247.0,3.7323995767229112 +248.0,3.961860657857479 +249.0,4.13290059884444 +250.0,4.283134985606448 +251.0,4.47817442098192 +252.0,2.504544016515727 +253.0,2.6645525259461778 +254.0,2.868545936477654 +255.0,3.045173546951513 +256.0,3.226802813216499 +257.0,3.3315371747742564 +258.0,3.5778644094997443 +259.0,3.7836386134652265 +260.0,3.947563694305436 +261.0,4.1198936540528805 +262.0,4.2986907028779875 +263.0,4.4923518589073295 +264.0,2.513188518355608 +265.0,2.651757788750267 +266.0,2.8819444540210184 +267.0,3.0476176651165012 +268.0,3.211687998433677 +269.0,3.3907565845060312 +270.0,3.5756057245102366 +271.0,3.7070909440654787 +272.0,4.008379108929673 +273.0,4.139986918077225 +274.0,4.305204884159337 +275.0,4.431433301060709 +276.0,2.5211798438212543 +277.0,2.6567891878226835 +278.0,2.881475367593697 +279.0,3.044505978486921 +280.0,3.273380605388213 +281.0,3.4249755431307025 +282.0,3.5725341886988753 +283.0,3.745871880866542 +284.0,3.952202679915324 +285.0,4.109165283546838 +286.0,4.25204035564437 +287.0,4.49780525212056 +288.0,2.4763993711985237 +289.0,2.7160842972788535 +290.0,2.8390340843988766 +291.0,2.9801129298331985 +292.0,3.2419123063369146 +293.0,3.3923409837701124 +294.0,3.568979807841837 +295.0,3.761961767049775 +296.0,3.9579751556888576 +297.0,4.082088563581375 +298.0,4.282384607262607 +299.0,4.50120252631329 +300.0,2.488674943141169 +301.0,2.656671949710959 +302.0,2.901057244426164 +303.0,2.9947572529550235 +304.0,3.2350666934905483 +305.0,3.429634832826429 +306.0,3.5580639881924223 +307.0,3.729429919974543 +308.0,3.940168266126693 +309.0,4.0735821011722475 +310.0,4.269112531550551 +311.0,4.472789788011542 +312.0,2.486528590687734 +313.0,2.637674491528558 +314.0,2.8901228028096844 +315.0,3.056347588890796 +316.0,3.222433306851974 +317.0,3.41452638865447 +318.0,3.5429046370402193 +319.0,3.774272536095902 +320.0,3.973751985092758 +321.0,4.089693539450267 +322.0,4.312249335302438 +323.0,4.501232752242122 +324.0,2.5047084191039777 +325.0,2.6576026492758373 +326.0,2.8797538536984333 +327.0,3.060862549622331 +328.0,3.236614706858483 +329.0,3.427299761087735 +330.0,3.6050287540643544 +331.0,3.758719043857926 +332.0,3.9567262770762617 +333.0,4.12783602915966 +334.0,4.284032661739151 +335.0,4.450498028088526 +336.0,2.517555980354311 +337.0,2.6529999553974197 +338.0,2.8909876013284017 +339.0,3.0315956846161893 +340.0,3.199096759563414 +341.0,3.371845685249747 +342.0,3.626652314913181 +343.0,3.757447344755 +344.0,3.96025308124746 +345.0,4.133010626117178 +346.0,4.225004193318964 +347.0,4.480172807945664 +348.0,2.4944288335985774 +349.0,2.704822241973485 +350.0,2.857283638793455 +351.0,3.066130443260209 +352.0,3.208078143934187 +353.0,3.36911104535584 +354.0,3.548337094749953 +355.0,3.7793709341504726 +356.0,3.949868640635476 +357.0,4.146112193672496 +358.0,4.2645517867221425 +359.0,4.491530223183321 +360.0,2.4707488192757516 +361.0,2.682016982645634 +362.0,2.876812124240081 +363.0,3.0685793663433723 +364.0,3.1795541259380125 +365.0,3.403818821520876 +366.0,3.5756812879320945 +367.0,3.735582799410327 +368.0,3.937135356023027 +369.0,4.13381235655632 +370.0,4.283017365125461 +371.0,4.473003642798975 +372.0,2.5374833055487107 +373.0,2.6913229938610264 +374.0,2.8603851330602112 +375.0,3.034255112457867 +376.0,3.2190225599959823 +377.0,3.3839310015841626 +378.0,3.612226122671698 +379.0,3.783010582627958 +380.0,3.9181357582921517 +381.0,4.132141659900555 +382.0,4.245996603406588 +383.0,4.482183164279779 +384.0,2.5244482193523083 +385.0,2.677617704803799 +386.0,2.8184674496492517 +387.0,2.991576086595416 +388.0,3.221610820734936 +389.0,3.3306389569310357 +390.0,3.585359149108735 +391.0,3.7739299294215223 +392.0,3.9151819117903277 +393.0,4.09878397523727 +394.0,4.304129470796251 +395.0,4.492097702618363 +396.0,2.4934196212351383 +397.0,2.6833421399881714 +398.0,2.8860315858498415 +399.0,3.03440725712173 +400.0,3.2350336333541354 +401.0,3.419016545473862 +402.0,3.554065424826668 +403.0,3.7307996311832543 +404.0,3.908314079526704 +405.0,4.111372754926399 +406.0,4.316997878560908 +407.0,4.44257971750805 +408.0,2.48548392866377 +409.0,2.704709607281363 +410.0,2.827170795506081 +411.0,3.0173125147792192 +412.0,3.2326314797451787 +413.0,3.3676358169772542 +414.0,3.592880938987152 +415.0,3.716200984611369 +416.0,3.9641746541008707 +417.0,4.1295266552739225 +418.0,4.3142888104100905 +419.0,4.4996664743380785 +420.0,2.4402404579412837 +421.0,2.6708203051954094 +422.0,2.894077495310511 +423.0,3.033191812967441 +424.0,3.220822129440815 +425.0,3.4024842893657032 +426.0,3.5583654519021337 +427.0,3.701628611462296 +428.0,3.9756689500603444 +429.0,4.12107845484747 +430.0,4.32211635331367 +431.0,4.452423172938805 +432.0,2.4804839069027524 +433.0,2.692753488362854 +434.0,2.8767685990544263 +435.0,3.050210054242755 +436.0,3.203751364641 +437.0,3.406292351966855 +438.0,3.582175837065204 +439.0,3.6911448930183797 +440.0,3.9645309045688655 +441.0,4.095942470124637 +442.0,4.316284542468475 +443.0,4.481557131992826 +444.0,2.538849277057698 +445.0,2.6937417081372437 +446.0,2.8450467864377873 +447.0,3.0281717364873573 +448.0,3.204448140422902 +449.0,3.4515765722045826 +450.0,3.61825650452598 +451.0,3.780798045608851 +452.0,3.9670553460266524 +453.0,4.113770174789928 +454.0,4.336486437212889 +455.0,4.447759535910066 +456.0,2.518533808398389 +457.0,2.6965195292711184 +458.0,2.88967004641942 +459.0,3.0555146370733195 +460.0,3.187960486693917 +461.0,3.396729547449721 +462.0,3.603490693053637 +463.0,3.7605498340350914 +464.0,3.9273119122506497 +465.0,4.116603567355162 +466.0,4.31983440692513 +467.0,4.554459714422136 +468.0,2.5107083643860135 +469.0,2.7169949867041274 +470.0,2.8527240835245022 +471.0,3.0592077963773145 +472.0,3.229349955782278 +473.0,3.4415401061627935 +474.0,3.5427807216139344 +475.0,3.765512456661429 +476.0,3.926970784304654 +477.0,4.11383152380714 +478.0,4.283996401472266 +479.0,4.500736632089001 +480.0,2.4569691825290776 +481.0,2.7142813894494116 +482.0,2.8897845659640646 +483.0,3.010269947116746 +484.0,3.234400859780348 +485.0,3.4125730385060464 +486.0,3.551880248112725 +487.0,3.7323417720318584 +488.0,3.9469473477297217 +489.0,4.100551983132149 +490.0,4.300016932305799 +491.0,4.459939847888539 +492.0,2.4971871486780723 +493.0,2.7102564951319867 +494.0,2.8428355705640884 +495.0,3.029638094268414 +496.0,3.223737447962369 +497.0,3.394343608488476 +498.0,3.5943309266636754 +499.0,3.7563425965647053 +500.0,3.8996258639965613 +501.0,4.150541105747724 +502.0,4.258442745492506 +503.0,4.431069679352544 +504.0,2.5007638349988053 +505.0,2.662301365500229 +506.0,2.8563882308589266 +507.0,3.0388847913481265 +508.0,3.1964325316251427 +509.0,3.389825105740764 +510.0,3.589990488832808 +511.0,3.769964140441218 +512.0,3.940916361929104 +513.0,4.124089307250259 +514.0,4.296776279324185 +515.0,4.509297861291011 +516.0,2.5269204075195275 +517.0,2.701480446202631 +518.0,2.870265701017066 +519.0,3.0231066925800407 +520.0,3.24765818862959 +521.0,3.4067600719525757 +522.0,3.5780303399556477 +523.0,3.754152100932559 +524.0,3.9568151077094553 +525.0,4.098569972776085 +526.0,4.3322805686961825 +527.0,4.51750967912689 +528.0,2.528400656022805 +529.0,2.679725198888867 +530.0,2.866915712730343 +531.0,3.045018601081029 +532.0,3.2178711178494237 +533.0,3.397875985589187 +534.0,3.5848975162940957 +535.0,3.742934977216883 +536.0,3.9580087582225563 +537.0,4.118939367689423 +538.0,4.292709987027758 +539.0,4.483805779329083 +540.0,2.506476574394724 +541.0,2.7082834364761714 +542.0,2.850555400654041 +543.0,3.0110659091771264 +544.0,3.1875657452289343 +545.0,3.369875933082085 +546.0,3.6244702732822813 +547.0,3.7830182517799025 +548.0,3.9289995316580213 +549.0,4.152632706206156 +550.0,4.298780787788763 +551.0,4.457487207161055 +552.0,2.528999698856943 +553.0,2.6556324707616272 +554.0,2.86867033243815 +555.0,2.99547208478832 +556.0,3.2061750640538347 +557.0,3.3832884443184064 +558.0,3.5693983233216406 +559.0,3.8006111301899526 +560.0,3.903134459883821 +561.0,4.0685581864293106 +562.0,4.27040295332732 +563.0,4.4402198979558305 +564.0,2.468420371251275 +565.0,2.695961974565758 +566.0,2.8160595153155237 +567.0,3.014713201883573 +568.0,3.2628221596924116 +569.0,3.4230676587639213 +570.0,3.627218181125663 +571.0,3.7358691231671513 +572.0,3.942847173423468 +573.0,4.127994682337717 +574.0,4.334050202485503 +575.0,4.4925621901533015 +576.0,2.514324636243564 +577.0,2.674480766276755 +578.0,2.87632519543148 +579.0,3.0440815126799343 +580.0,3.237133982401714 +581.0,3.3944750837136746 +582.0,3.5780683316537156 +583.0,3.7110613994807164 +584.0,3.9369081489939592 +585.0,4.099453813452243 +586.0,4.3418379104199 +587.0,4.479168576648287 +588.0,2.48027145041546 +589.0,2.667401483781006 +590.0,2.841649537952006 +591.0,3.043514295669916 +592.0,3.2341063059523174 +593.0,3.4022203362526193 +594.0,3.5360494486304725 +595.0,3.764351283313959 +596.0,3.9269711741321682 +597.0,4.160352898953424 +598.0,4.302382532179243 +599.0,4.467251806966154 +600.0,2.511377152779042 +601.0,2.703180015588004 +602.0,2.8119755883761224 +603.0,3.0581940203171887 +604.0,3.2376532162948752 +605.0,3.3643478288941977 +606.0,3.5876706715538 +607.0,3.7863784486757157 +608.0,3.940727769615095 +609.0,4.121875659235088 +610.0,4.291604307966684 +611.0,4.506652488307775 +612.0,2.4985048033561856 +613.0,2.6550094709804473 +614.0,2.8809593116206695 +615.0,3.0219127282217735 +616.0,3.227170021633957 +617.0,3.3706086954534173 +618.0,3.5742412632182115 +619.0,3.7411740079141347 +620.0,3.951230306094629 +621.0,4.120397450051753 +622.0,4.315949963060157 +623.0,4.500767779149944 +624.0,2.483374979570546 +625.0,2.7014053511142317 +626.0,2.835871772587994 +627.0,3.0742651080926473 +628.0,3.192688103268376 +629.0,3.4205446398496613 +630.0,3.5909812608732263 +631.0,3.7713655891563347 +632.0,3.9373031539435885 +633.0,4.131790979228798 +634.0,4.3263015168040795 +635.0,4.474332313521636 +636.0,2.5059960302589843 +637.0,2.6100749006136796 +638.0,2.8966707821363706 +639.0,3.0453962199551925 +640.0,3.2250363585516633 +641.0,3.4015506550955683 +642.0,3.5705422416798327 +643.0,3.7286919589031733 +644.0,3.9795185069345727 +645.0,4.1263736184807716 +646.0,4.301714182872688 +647.0,4.503777841536583 +648.0,2.5358296554538713 +649.0,2.630912810927677 +650.0,2.878023823041576 +651.0,3.0755184270351092 +652.0,3.2254340364348977 +653.0,3.4288901014034714 +654.0,3.566171353490787 +655.0,3.779456236504504 +656.0,3.932883736855574 +657.0,4.1163174718312066 +658.0,4.2997090251172585 +659.0,4.4809109330854175 +660.0,2.4573919019380863 +661.0,2.654463161212245 +662.0,2.8753226588611356 +663.0,3.085728039771889 +664.0,3.209929037182802 +665.0,3.418312037590284 +666.0,3.5752947028597264 +667.0,3.790595115704643 +668.0,3.9066256208528802 +669.0,4.098577838160268 +670.0,4.2980987300579026 +671.0,4.460810321218214 +672.0,2.522997700359429 +673.0,2.6898034547423837 +674.0,2.857226510643634 +675.0,3.0407080981827845 +676.0,3.1993250144710195 +677.0,3.389217444945991 +678.0,3.5728665286378996 +679.0,3.75701297827157 +680.0,3.944583510687618 +681.0,4.13921339323747 +682.0,4.27655843875513 +683.0,4.483012469545256 +684.0,2.5072467605262116 +685.0,2.6766621502427497 +686.0,2.8354350027135915 +687.0,3.0365545025840186 +688.0,3.2432144059965875 +689.0,3.3949558349644318 +690.0,3.594298608862374 +691.0,3.772778854480522 +692.0,3.971087655708873 +693.0,4.164938070366956 +694.0,4.291214439033315 +695.0,4.506118268690786 +696.0,2.446612582540852 +697.0,2.7227758558758413 +698.0,2.8310513658777348 +699.0,3.0474167908370675 +700.0,3.192673643356257 +701.0,3.378645373909135 +702.0,3.567414080486251 +703.0,3.743998201396182 +704.0,3.9684343910319932 +705.0,4.158773713831364 +706.0,4.271999979653205 +707.0,4.46062768060347 +708.0,2.505994275677922 +709.0,2.7199496027573633 +710.0,2.876923882583953 +711.0,3.027964734141347 +712.0,3.2125108012312427 +713.0,3.3999908394604357 +714.0,3.6118946813636015 +715.0,3.8189868663918403 +716.0,3.9423709395604374 +717.0,4.118421045484759 +718.0,4.34227245710049 +719.0,4.471380128982107 +720.0,2.492630535271789 +721.0,2.692199179834822 +722.0,2.8778712945741236 +723.0,2.997257661843791 +724.0,3.230260995220964 +725.0,3.381239027226541 +726.0,3.5863050647148538 +727.0,3.736770555982496 +728.0,3.9140574613012076 +729.0,4.08980927132848 +730.0,4.319034370090166 +731.0,4.4948893553603675 +732.0,2.50282957796258 +733.0,2.6883859120029387 +734.0,2.828090283651946 +735.0,3.0565102934116095 +736.0,3.233594699936068 +737.0,3.4154877980310854 +738.0,3.549648784168657 +739.0,3.7765517879156842 +740.0,3.91426455619886 +741.0,4.120465636110107 +742.0,4.281020844131072 +743.0,4.449493872346074 +744.0,2.49319674923449 +745.0,2.6856089440204634 +746.0,2.9090990629397973 +747.0,3.011900639230716 +748.0,3.221650386314362 +749.0,3.4129951513450485 +750.0,3.567734336281215 +751.0,3.7368261962401172 +752.0,3.9376704796986632 +753.0,4.138344654704441 +754.0,4.334111052745222 +755.0,4.464320278705299 +756.0,2.522049596284593 +757.0,2.6521748276750876 +758.0,2.8156045657355295 +759.0,3.027156466922106 +760.0,3.2185493029770247 +761.0,3.3631205312161545 +762.0,3.5805694114846904 +763.0,3.767215073824637 +764.0,3.9605493140765815 +765.0,4.122866187260478 +766.0,4.287557789221427 +767.0,4.471473027556802 +768.0,2.5115533716496747 +769.0,2.6529970711139033 +770.0,2.8093019354749194 +771.0,3.0072461100742207 +772.0,3.2167036279217465 +773.0,3.43162090716641 +774.0,3.5937294258316643 +775.0,3.7715214790402958 +776.0,3.991778082554814 +777.0,4.123792695439056 +778.0,4.296161652632142 +779.0,4.51326000739211 +780.0,2.4959339031734458 +781.0,2.682877680697789 +782.0,2.8708445799302016 +783.0,3.0352372643768044 +784.0,3.2109310485529847 +785.0,3.3783910725098933 +786.0,3.5912739462231724 +787.0,3.7807937142839347 +788.0,3.9411554247393283 +789.0,4.141337908711738 +790.0,4.321625190238608 +791.0,4.496465814093551 +792.0,2.548801898980899 +793.0,2.651764459344589 +794.0,2.8765212027527545 +795.0,3.0465035025942773 +796.0,3.208224338261715 +797.0,3.398106708355162 +798.0,3.5813954049904666 +799.0,3.7482756146100247 +800.0,3.8998694616500615 +801.0,4.1163693654102795 +802.0,4.3217951120828895 +803.0,4.467881989634204 +804.0,2.5132006120609427 +805.0,2.686106163777386 +806.0,2.8581604936298755 +807.0,3.0402848985822613 +808.0,3.25413441098934 +809.0,3.4166785364447714 +810.0,3.6110585949729597 +811.0,3.7533993636220058 +812.0,3.925887098041587 +813.0,4.112426859077386 +814.0,4.322550923879515 +815.0,4.486879883450945 +816.0,2.478234005282707 +817.0,2.645963213946596 +818.0,2.8393019804844144 +819.0,3.0621986813934754 +820.0,3.1738956575580457 +821.0,3.4227388919453747 +822.0,3.538929230007591 +823.0,3.717707328499492 +824.0,3.909919908448092 +825.0,4.077387662975944 +826.0,4.341961534187051 +827.0,4.4721545430858205 +828.0,2.4604825139520408 +829.0,2.659608386750736 +830.0,2.8832528872455856 +831.0,3.063719080557633 +832.0,3.208176787418388 +833.0,3.4122056511716297 +834.0,3.601297410550158 +835.0,3.7614405441195258 +836.0,3.966360350591064 +837.0,4.1234149297156915 +838.0,4.299118204409801 +839.0,4.510649492833017 +840.0,2.5127516839396336 +841.0,2.6445204496552663 +842.0,2.8336352433000878 +843.0,3.059523473106053 +844.0,3.1950769624313007 +845.0,3.4094199028329806 +846.0,3.535991723921513 +847.0,3.7666119907268696 +848.0,3.956591546108113 +849.0,4.107385983717221 +850.0,4.30269254740764 +851.0,4.471059985650099 +852.0,2.4619611508100916 +853.0,2.6709567884590495 +854.0,2.8293583920421197 +855.0,3.04159886354907 +856.0,3.203196628782084 +857.0,3.420449293807525 +858.0,3.5678688333320605 +859.0,3.7793535064357537 +860.0,3.942943115503369 +861.0,4.139014587092705 +862.0,4.276219368227725 +863.0,4.4774820116223335 +864.0,2.495403096086595 +865.0,2.6853419414581974 +866.0,2.8357101378023066 +867.0,3.076831055225459 +868.0,3.212610077794755 +869.0,3.403728003046816 +870.0,3.588783617825433 +871.0,3.790900539909389 +872.0,3.973954107878591 +873.0,4.1689111484710395 +874.0,4.290125381630352 +875.0,4.501349719817414 +876.0,2.5264759344625394 +877.0,2.71203140676663 +878.0,2.8960686680165137 +879.0,3.0289318115476376 +880.0,3.214577734008969 +881.0,3.4004065797104372 +882.0,3.537774286574986 +883.0,3.7363659694469704 +884.0,3.9482275809468534 +885.0,4.120206008689434 +886.0,4.303415978416179 +887.0,4.494050486478547 +888.0,2.5217740855553012 +889.0,2.6757211285604336 +890.0,2.799667395375928 +891.0,3.079753921285396 +892.0,3.213720021993156 +893.0,3.400633993930832 +894.0,3.5491402146600093 +895.0,3.7347058611303603 +896.0,3.9408444347615075 +897.0,4.123705705133873 +898.0,4.32062327307189 +899.0,4.514620950233846 +900.0,2.4934703110328815 +901.0,2.6380633799428694 +902.0,2.871941977434789 +903.0,3.006653340144034 +904.0,3.244325876259183 +905.0,3.3978380701044086 +906.0,3.644007659776886 +907.0,3.738203774123006 +908.0,3.895362727695386 +909.0,4.137279470498542 +910.0,4.246238493728435 +911.0,4.433445382725133 +912.0,2.5000071797650594 +913.0,2.6987409583919457 +914.0,2.8924521401042393 +915.0,3.0527166544140174 +916.0,3.211865007543223 +917.0,3.3865957823165815 +918.0,3.5887255540807477 +919.0,3.7339948094683546 +920.0,3.9457865850874225 +921.0,4.098019510726215 +922.0,4.314938112761248 +923.0,4.466440180365776 +924.0,2.4825019606063616 +925.0,2.7214325266886035 +926.0,2.9022394606810518 +927.0,3.012606892125412 +928.0,3.2415967107317787 +929.0,3.3994529111644036 +930.0,3.5816870686152025 +931.0,3.744225517420546 +932.0,3.9318585637085066 +933.0,4.086718111620789 +934.0,4.288645366845138 +935.0,4.48252144116823 +936.0,2.4966787448682397 +937.0,2.685386447914741 +938.0,2.8832100731518864 +939.0,3.0179822513072168 +940.0,3.1879252641141678 +941.0,3.4092428565480057 +942.0,3.5641107143033937 +943.0,3.765727886262901 +944.0,3.945535320426168 +945.0,4.130030163798971 +946.0,4.262739512298325 +947.0,4.456328683741503 +948.0,2.5288529819990733 +949.0,2.6345095245891055 +950.0,2.8459322431399543 +951.0,3.053673216563001 +952.0,3.225754037752893 +953.0,3.403255318602256 +954.0,3.6412295199252096 +955.0,3.739596018777413 +956.0,3.9373014952483376 +957.0,4.151815336277057 +958.0,4.339518958025889 +959.0,4.491094908941555 +960.0,2.4959869739515237 +961.0,2.6819967001737397 +962.0,2.903818907071617 +963.0,3.034624011605773 +964.0,3.245230032929556 +965.0,3.404378318873151 +966.0,3.625517751653013 +967.0,3.763964127802752 +968.0,3.9175672273188056 +969.0,4.1034269624331605 +970.0,4.306007432422947 +971.0,4.477752100119314 +972.0,2.525707408326695 +973.0,2.670947412215791 +974.0,2.892036197318359 +975.0,3.044751544921211 +976.0,3.203758659833085 +977.0,3.389167308492209 +978.0,3.5419653788580376 +979.0,3.7727979940414618 +980.0,3.9497854896056497 +981.0,4.094368294559261 +982.0,4.296921941600657 +983.0,4.488952055324245 +984.0,2.5307647736051333 +985.0,2.7226762156444635 +986.0,2.8930603809420794 +987.0,3.0427911611219667 +988.0,3.2064681005017883 +989.0,3.3976285316311676 +990.0,3.5843379918530194 +991.0,3.756366310560986 +992.0,3.927841366399132 +993.0,4.117216674535691 +994.0,4.34524896315892 +995.0,4.413713015989304 +996.0,2.4924796039576353 +997.0,2.638326582399862 +998.0,2.8847049168023466 +999.0,3.028540318714006 +1000.0,3.1879832118174587 +1001.0,3.4344923548244295 +1002.0,3.5868620131848767 +1003.0,3.7509197296322205 +1004.0,3.9534623964576485 +1005.0,4.135789221778999 +1006.0,4.358285297564716 +1007.0,4.52012992837467 +1008.0,2.4971773642329715 +1009.0,2.6914613426342253 +1010.0,2.84001887244526 +1011.0,3.063759828637044 +1012.0,3.1887768269232004 +1013.0,3.3898803381992506 +1014.0,3.5443868396991256 +1015.0,3.7182951677651332 +1016.0,3.961513826658217 +1017.0,4.105548562519802 +1018.0,4.287522325835163 +1019.0,4.490417797905219 +1020.0,2.5072622965236238 +1021.0,2.659562297097062 +1022.0,2.8870081682356803 +1023.0,3.01381652778002 +1024.0,3.2108728332123158 +1025.0,3.3682852158234273 +1026.0,3.60051884854954 +1027.0,3.809723864170216 +1028.0,3.955684913043269 +1029.0,4.102959022459466 +1030.0,4.312872909748827 +1031.0,4.448146048194448 +1032.0,2.44703865382078 +1033.0,2.6616158267904875 +1034.0,2.892054246332849 +1035.0,3.019391653236695 +1036.0,3.206807001752917 +1037.0,3.4031937397868504 +1038.0,3.528764009122286 +1039.0,3.782692476299998 +1040.0,3.919960141278508 +1041.0,4.0890854208807434 +1042.0,4.310512783351735 +1043.0,4.520195811945061 +1044.0,2.448050891880423 +1045.0,2.664879417357532 +1046.0,2.8438480179398407 +1047.0,3.051759703772208 +1048.0,3.213290205769738 +1049.0,3.4023800741906087 +1050.0,3.6500952998206984 +1051.0,3.7866904229544893 +1052.0,3.9381471320463484 +1053.0,4.113271628078345 +1054.0,4.28958619554008 +1055.0,4.482522502860843 +1056.0,2.4984298221914703 +1057.0,2.663141952032349 +1058.0,2.873671929076126 +1059.0,3.035388641502307 +1060.0,3.17462463069123 +1061.0,3.413443542076724 +1062.0,3.5906298129157945 +1063.0,3.768474518164086 +1064.0,3.9259211765081723 +1065.0,4.102384894400333 +1066.0,4.289992670034631 +1067.0,4.468448171272902 +1068.0,2.5139305520977206 +1069.0,2.7241230903036304 +1070.0,2.8306045877798134 +1071.0,3.009215412463015 +1072.0,3.218382723423816 +1073.0,3.4127591851222845 +1074.0,3.6050036253768907 +1075.0,3.765052505760465 +1076.0,3.9059412259891872 +1077.0,4.111024509361968 +1078.0,4.295683125339351 +1079.0,4.5120439413386535 +1080.0,2.5015625398331363 +1081.0,2.6769002630988683 +1082.0,2.8554395339633682 +1083.0,3.0386475231536 +1084.0,3.2484200597281294 +1085.0,3.4148192191132334 +1086.0,3.5507974250213166 +1087.0,3.72970439808945 +1088.0,3.942203312117425 +1089.0,4.080616176387565 +1090.0,4.311541093109854 +1091.0,4.4754495923338835 +1092.0,2.4811260593040663 +1093.0,2.698148447158292 +1094.0,2.8947947030248904 +1095.0,3.009724954422488 +1096.0,3.2054001789432083 +1097.0,3.3858894041828234 +1098.0,3.5532577043864064 +1099.0,3.7566673678828746 +1100.0,3.941852361372563 +1101.0,4.169572588647658 +1102.0,4.275412103490754 +1103.0,4.4983490693875545 +1104.0,2.499375394552001 +1105.0,2.6631346302613164 +1106.0,2.874152307196072 +1107.0,3.074238669849982 +1108.0,3.2065450593288367 +1109.0,3.365466881741218 +1110.0,3.59964466039113 +1111.0,3.776625466981132 +1112.0,3.92325618081447 +1113.0,4.14897015973876 +1114.0,4.29498817849016 +1115.0,4.474361032419599 +1116.0,2.478634217226856 +1117.0,2.6724284401029137 +1118.0,2.877916801358844 +1119.0,3.052513872930589 +1120.0,3.237624413325915 +1121.0,3.425802103364763 +1122.0,3.5450308765453076 +1123.0,3.789190395979913 +1124.0,3.9524433334542923 +1125.0,4.16318065304414 +1126.0,4.3243494650415695 +1127.0,4.46995378918717 +1128.0,2.4877513418816912 +1129.0,2.6774327901915225 +1130.0,2.855059467614275 +1131.0,3.0549708744914246 +1132.0,3.240933411522957 +1133.0,3.4136937110658803 +1134.0,3.5654373077350927 +1135.0,3.7336721564591877 +1136.0,3.9366722749460283 +1137.0,4.112099619909069 +1138.0,4.333813438553037 +1139.0,4.494581614177393 +1140.0,2.514654644879736 +1141.0,2.693363359425027 +1142.0,2.827581310319088 +1143.0,3.0268402017718086 +1144.0,3.250247580302047 +1145.0,3.3979221181940646 +1146.0,3.582137989989286 +1147.0,3.7687685357579728 +1148.0,3.9334047042168705 +1149.0,4.094456558355167 +1150.0,4.3351692921675085 +1151.0,4.452159330091634 +1152.0,2.513006554298993 +1153.0,2.657074817131531 +1154.0,2.8900098401723815 +1155.0,3.0237470832577853 +1156.0,3.2216575433619288 +1157.0,3.4094128452091224 +1158.0,3.5732156753437687 +1159.0,3.8014270165036157 +1160.0,3.9295270751700824 +1161.0,4.126972448712759 +1162.0,4.312248376530789 +1163.0,4.538178971932097 +1164.0,2.5007800199391816 +1165.0,2.635833059395917 +1166.0,2.838451098768122 +1167.0,3.0238320819134437 +1168.0,3.2488995913773575 +1169.0,3.38147295443886 +1170.0,3.614493790349667 +1171.0,3.7775125623400747 +1172.0,3.9176544220569913 +1173.0,4.120672392141397 +1174.0,4.315507011313244 +1175.0,4.479350034190681 +1176.0,2.4510965310451414 +1177.0,2.6720045985492673 +1178.0,2.847128071038249 +1179.0,3.048242439603107 +1180.0,3.2415482600524497 +1181.0,3.3709181250876314 +1182.0,3.5957173606382917 +1183.0,3.767105584712634 +1184.0,3.9642821036124025 +1185.0,4.125344408318524 +1186.0,4.245931035695531 +1187.0,4.483210178457262 +1188.0,2.491570643074089 +1189.0,2.6803460378063737 +1190.0,2.848406068386438 +1191.0,3.079569437040426 +1192.0,3.2326690291092453 +1193.0,3.420930388110915 +1194.0,3.5912729027683596 +1195.0,3.7941629117891016 +1196.0,3.9635191257112035 +1197.0,4.109212331633265 +1198.0,4.325223932996037 +1199.0,4.47300597037202 +1200.0,2.5048072021354897 +1201.0,2.6830368035323136 +1202.0,2.8873202169350907 +1203.0,3.0639655075552104 +1204.0,3.188058050009507 +1205.0,3.400894438658547 +1206.0,3.5868910244213588 +1207.0,3.738406044574419 +1208.0,3.935786285956768 +1209.0,4.08630059845558 +1210.0,4.293390944523042 +1211.0,4.477874604959381 +1212.0,2.479721066684509 +1213.0,2.7008270220535295 +1214.0,2.845192571199045 +1215.0,2.999197336336605 +1216.0,3.226387053901306 +1217.0,3.3702311004545216 +1218.0,3.57981558583957 +1219.0,3.782464729090424 +1220.0,3.929804685005297 +1221.0,4.120372300347483 +1222.0,4.29583785612998 +1223.0,4.463355197450006 +1224.0,2.460404360289842 +1225.0,2.6532875210143554 +1226.0,2.856157410287974 +1227.0,3.02054273326581 +1228.0,3.2319737389751055 +1229.0,3.385783770310298 +1230.0,3.5770177226593174 +1231.0,3.761981488698619 +1232.0,3.9502893882990096 +1233.0,4.0811525064569105 +1234.0,4.303792485747529 +1235.0,4.451844814406786 +1236.0,2.5425016162608927 +1237.0,2.6690248592950554 +1238.0,2.855386911301229 +1239.0,3.0173990737917733 +1240.0,3.224542565099841 +1241.0,3.4519312358896332 +1242.0,3.5774680397423477 +1243.0,3.7397407338007853 +1244.0,3.9492326053504483 +1245.0,4.1406892032857625 +1246.0,4.293867025692869 +1247.0,4.506819254406255 +1248.0,2.503624599250367 +1249.0,2.690727976790593 +1250.0,2.8619526305557708 +1251.0,3.049690027002807 +1252.0,3.2465240085226097 +1253.0,3.4153491719245563 +1254.0,3.559291156018746 +1255.0,3.796354272806101 +1256.0,3.9607999805986527 +1257.0,4.152828496279736 +1258.0,4.265259584869785 +1259.0,4.554208343770768 +1260.0,2.484445941844108 +1261.0,2.705052163841707 +1262.0,2.8904150474100945 +1263.0,3.0291841446969916 +1264.0,3.2120602926697632 +1265.0,3.3806005172108593 +1266.0,3.5929888948928257 +1267.0,3.7358773237917724 +1268.0,3.9367081394176715 +1269.0,4.105277875170074 +1270.0,4.326283669983306 +1271.0,4.491678181698536 +1272.0,2.4722132806069568 +1273.0,2.6734899760512736 +1274.0,2.8684880932789567 +1275.0,3.034140360829392 +1276.0,3.2383674132712272 +1277.0,3.393052995706657 +1278.0,3.5752122433484192 +1279.0,3.737989818855896 +1280.0,3.9657741944817104 +1281.0,4.127828214123565 +1282.0,4.30767256544978 +1283.0,4.460484202652595 +1284.0,2.477798396774851 +1285.0,2.7103719676529168 +1286.0,2.8861757909010053 +1287.0,3.05766092065745 +1288.0,3.250629903368778 +1289.0,3.383659937381618 +1290.0,3.555142231502547 +1291.0,3.700285925258999 +1292.0,3.955559914951336 +1293.0,4.098458942321495 +1294.0,4.282726471274216 +1295.0,4.4898442590515035 +1296.0,2.487241172835531 +1297.0,2.6883136830752954 +1298.0,2.813996009513939 +1299.0,3.0424361768020582 +1300.0,3.2573209639853187 +1301.0,3.3948609405645214 +1302.0,3.615484358949898 +1303.0,3.7543729077226735 +1304.0,3.9241945927488087 +1305.0,4.103177672292766 +1306.0,4.2977342226661985 +1307.0,4.460832274408113 +1308.0,2.5291445052596537 +1309.0,2.7190697658650644 +1310.0,2.8880192017579054 +1311.0,3.0654680569526565 +1312.0,3.212046363163008 +1313.0,3.3868371187524446 +1314.0,3.5276413544673484 +1315.0,3.7477247695095874 +1316.0,3.92649016434232 +1317.0,4.112905938533266 +1318.0,4.288793239915888 +1319.0,4.5028852363364065 +1320.0,2.5283645622911903 +1321.0,2.692246975672326 +1322.0,2.835928428328091 +1323.0,3.0518223823198127 +1324.0,3.225668381838861 +1325.0,3.3659632046118175 +1326.0,3.590017266682324 +1327.0,3.753787798263701 +1328.0,3.980278305389733 +1329.0,4.066475296006177 +1330.0,4.291543851890438 +1331.0,4.496205758284487 +1332.0,2.511696131698982 +1333.0,2.729600119230013 +1334.0,2.8543746529505523 +1335.0,2.9981750671067093 +1336.0,3.2285784124107955 +1337.0,3.429469489243337 +1338.0,3.536733382128637 +1339.0,3.763635956839043 +1340.0,3.940285712658271 +1341.0,4.119760789344553 +1342.0,4.308062903918353 +1343.0,4.5066216748504075 +1344.0,2.5266839077233194 +1345.0,2.6715916539943403 +1346.0,2.8185797284485323 +1347.0,3.077160663706069 +1348.0,3.221712041836647 +1349.0,3.4025495404068464 +1350.0,3.560911456292539 +1351.0,3.748577636018685 +1352.0,3.9148997810734323 +1353.0,4.145129258991568 +1354.0,4.313882174053153 +1355.0,4.479060290772337 +1356.0,2.500636637846558 +1357.0,2.6663733419302447 +1358.0,2.805500558518324 +1359.0,3.1111247655918306 +1360.0,3.2399906168737846 +1361.0,3.4170082466615534 +1362.0,3.5654269104095158 +1363.0,3.7753330552037676 +1364.0,3.9901817437818874 +1365.0,4.157304532875971 +1366.0,4.288950241931426 +1367.0,4.496623978406505 +1368.0,2.5054424605187093 +1369.0,2.681049088520808 +1370.0,2.8293788054377034 +1371.0,3.0487939807652458 +1372.0,3.2299887155996077 +1373.0,3.3952810729168186 +1374.0,3.597502834600097 +1375.0,3.747671922559831 +1376.0,3.8986378789427154 +1377.0,4.101081030121745 +1378.0,4.292351240508732 +1379.0,4.484806588817818 +1380.0,2.485931786442185 +1381.0,2.6803570889907222 +1382.0,2.8813828644204387 +1383.0,3.023120057991822 +1384.0,3.19761137691733 +1385.0,3.405236790348671 +1386.0,3.6055159472718077 +1387.0,3.782406667150551 +1388.0,3.949179155056688 +1389.0,4.105772711962911 +1390.0,4.30626552944917 +1391.0,4.486593401596409 +1392.0,2.526513962085419 +1393.0,2.6880733712138887 +1394.0,2.860477499796999 +1395.0,3.052337281591578 +1396.0,3.2034434373685037 +1397.0,3.4024281270736236 +1398.0,3.5845622556779504 +1399.0,3.7787203850272713 +1400.0,3.945544110459099 +1401.0,4.121112582215344 +1402.0,4.305908087776448 +1403.0,4.44811305630491 +1404.0,2.5271778089989576 +1405.0,2.7145883764567 +1406.0,2.864051100106643 +1407.0,3.0462235263353437 +1408.0,3.197395172291986 +1409.0,3.401988066102301 +1410.0,3.5934427056238336 +1411.0,3.75273946188834 +1412.0,3.9221842513750196 +1413.0,4.072808078994129 +1414.0,4.28079799070817 +1415.0,4.430169296983605 +1416.0,2.468424277917473 +1417.0,2.6883916172609816 +1418.0,2.825961833522139 +1419.0,3.023718047171455 +1420.0,3.2181329951516435 +1421.0,3.3953306941437593 +1422.0,3.579564817432832 +1423.0,3.7190048018625195 +1424.0,3.9397448032805436 +1425.0,4.101155929674028 +1426.0,4.31072192735436 +1427.0,4.506694663609147 +1428.0,2.514128409692891 +1429.0,2.6809841987242904 +1430.0,2.844237696140711 +1431.0,3.0516887268945823 +1432.0,3.2196147163948483 +1433.0,3.412303935720746 +1434.0,3.5770357729166524 +1435.0,3.688633997661563 +1436.0,3.9134978845780197 +1437.0,4.123357049943277 +1438.0,4.329930928013595 +1439.0,4.4552117957424615 +1440.0,2.5435173380406013 +1441.0,2.692779318510405 +1442.0,2.837116201884525 +1443.0,3.046439599836393 +1444.0,3.1842592709295343 +1445.0,3.3925789358011165 +1446.0,3.597226703073583 +1447.0,3.8090865846132136 +1448.0,3.9154845916403 +1449.0,4.121822686933422 +1450.0,4.312353650025513 +1451.0,4.458694023121848 +1452.0,2.5040190894660896 +1453.0,2.6871831887127184 +1454.0,2.8553257702376014 +1455.0,3.0247596196085884 +1456.0,3.2069525706156843 +1457.0,3.401736321069122 +1458.0,3.5681241368513956 +1459.0,3.769091821874657 +1460.0,3.886484566147216 +1461.0,4.143128709465144 +1462.0,4.303610933129673 +1463.0,4.464997027288651 +1464.0,2.456785491379453 +1465.0,2.7046477999272267 +1466.0,2.858226175537526 +1467.0,3.063698189073997 +1468.0,3.2127414545462805 +1469.0,3.4398059790187174 +1470.0,3.589207466901081 +1471.0,3.7623549630340167 +1472.0,3.9323045546560564 +1473.0,4.11702604782401 +1474.0,4.2531658900203 +1475.0,4.510879499951304 +1476.0,2.5047060103673555 +1477.0,2.715798217598196 +1478.0,2.8828709640900327 +1479.0,3.057190490570332 +1480.0,3.2030111921233737 +1481.0,3.387662198623421 +1482.0,3.5352002263441693 +1483.0,3.6909056090591923 +1484.0,3.9557473459335335 +1485.0,4.092111335982223 +1486.0,4.275936478886272 +1487.0,4.49194213583457 +1488.0,2.5093614815492025 +1489.0,2.6872932864791514 +1490.0,2.850521104946869 +1491.0,3.013960056948874 +1492.0,3.20362714483012 +1493.0,3.365532292206555 +1494.0,3.5802575668869547 +1495.0,3.7456124552137653 +1496.0,3.907375247130044 +1497.0,4.111862098899033 +1498.0,4.329847056129038 +1499.0,4.480054700745955 +1500.0,2.479871635593852 +1501.0,2.689663868217419 +1502.0,2.837897738730762 +1503.0,3.041718019026241 +1504.0,3.241540325768337 +1505.0,3.4208776634720017 +1506.0,3.548738145793569 +1507.0,3.7619357781771856 +1508.0,3.8740842827195547 +1509.0,4.1204389208455385 +1510.0,4.317288755433985 +1511.0,4.486956389636085 +1512.0,2.475793576659071 +1513.0,2.650585970976681 +1514.0,2.8485564445531093 +1515.0,3.0387534724310274 +1516.0,3.2074001982904616 +1517.0,3.4106435835247577 +1518.0,3.600114008093547 +1519.0,3.7256924638525866 +1520.0,3.943543141734477 +1521.0,4.097746171896622 +1522.0,4.27262769457396 +1523.0,4.457420077775019 +1524.0,2.481035354253648 +1525.0,2.682325362449354 +1526.0,2.8601798017092315 +1527.0,3.05315697030391 +1528.0,3.206625093917625 +1529.0,3.4208444755025544 +1530.0,3.5363645924384572 +1531.0,3.802953708843028 +1532.0,3.9524502129556645 +1533.0,4.113130032086478 +1534.0,4.2951487523070835 +1535.0,4.510492230319616 +1536.0,2.5362366681417625 +1537.0,2.698970307959917 +1538.0,2.8277016010253577 +1539.0,3.055500358350336 +1540.0,3.223107617645284 +1541.0,3.409523931711191 +1542.0,3.563712304247344 +1543.0,3.7423503699879404 +1544.0,3.9843146610953015 +1545.0,4.143040426724943 +1546.0,4.301063737106349 +1547.0,4.501396574836635 +1548.0,2.5569567475105663 +1549.0,2.6771370387791196 +1550.0,2.840587076012137 +1551.0,3.0766992570198832 +1552.0,3.262835076313714 +1553.0,3.4045549386923084 +1554.0,3.5630239554071257 +1555.0,3.728369563988915 +1556.0,3.9414434065585966 +1557.0,4.12849938452536 +1558.0,4.294584750029958 +1559.0,4.478142295215925 +1560.0,2.499831428266633 +1561.0,2.7110504704227507 +1562.0,2.879399311435969 +1563.0,3.059802281776194 +1564.0,3.206448028396536 +1565.0,3.3537772307252114 +1566.0,3.5781963649380866 +1567.0,3.7882906117920707 +1568.0,3.9630531942499347 +1569.0,4.12223077755917 +1570.0,4.286354320447497 +1571.0,4.5232470837015475 +1572.0,2.5275191021864276 +1573.0,2.687263332328655 +1574.0,2.8687836323811027 +1575.0,3.0534239756349115 +1576.0,3.2003181340980364 +1577.0,3.3927668294819617 +1578.0,3.579380636600459 +1579.0,3.7396939336845145 +1580.0,3.9399606417933213 +1581.0,4.088079733298071 +1582.0,4.332775640173188 +1583.0,4.480703248064414 +1584.0,2.4817934668908745 +1585.0,2.6916748260376284 +1586.0,2.8640457868788425 +1587.0,3.0388902979252337 +1588.0,3.2196391547691836 +1589.0,3.3612235527354466 +1590.0,3.5522889360359335 +1591.0,3.7270638497792916 +1592.0,3.9193260466617104 +1593.0,4.087758878494478 +1594.0,4.259281112688455 +1595.0,4.54371928612915 +1596.0,2.4887880477768176 +1597.0,2.743501731062468 +1598.0,2.86936272205789 +1599.0,3.069284461766346 +1600.0,3.250705291144543 +1601.0,3.4148275728283375 +1602.0,3.6122325990255355 +1603.0,3.779589608658678 +1604.0,3.9699892434256703 +1605.0,4.068014682348784 +1606.0,4.279430296237774 +1607.0,4.474853843788456 +1608.0,2.471888180643132 +1609.0,2.649758236207864 +1610.0,2.8336153282844 +1611.0,3.0310569485233447 +1612.0,3.2082830914635636 +1613.0,3.352560690882564 +1614.0,3.570950873852173 +1615.0,3.7865751493032263 +1616.0,3.957890965084703 +1617.0,4.093586638187404 +1618.0,4.328844742996873 +1619.0,4.4376951321028715 +1620.0,2.5046560470841555 +1621.0,2.696380940074208 +1622.0,2.8933415838482697 +1623.0,3.020122897337757 +1624.0,3.221634046642747 +1625.0,3.388334467190108 +1626.0,3.5843307669509556 +1627.0,3.7392804816348537 +1628.0,3.9255047543764534 +1629.0,4.132782877392407 +1630.0,4.281045060850733 +1631.0,4.5030190763179965 +1632.0,2.487303321317943 +1633.0,2.7305768751270123 +1634.0,2.880846090671347 +1635.0,2.991723923624472 +1636.0,3.220345066998613 +1637.0,3.4401933648577248 +1638.0,3.534320144810622 +1639.0,3.7914109456029106 +1640.0,3.9575836897853987 +1641.0,4.139412084641924 +1642.0,4.325773664014593 +1643.0,4.494144389577987 +1644.0,2.5031975343573682 +1645.0,2.6654015854654434 +1646.0,2.856865040807285 +1647.0,3.0137195594475523 +1648.0,3.2143857064133567 +1649.0,3.3760386553743116 +1650.0,3.570045556992379 +1651.0,3.735479729410334 +1652.0,3.917354004062744 +1653.0,4.096381554825918 +1654.0,4.262891560046565 +1655.0,4.450914143548214 +1656.0,2.5020295006466644 +1657.0,2.7126943104853902 +1658.0,2.873894244516258 +1659.0,2.9822580476245397 +1660.0,3.2134581990601156 +1661.0,3.4233426586151396 +1662.0,3.5333119350765068 +1663.0,3.743845390901137 +1664.0,3.9512476019452514 +1665.0,4.141892403852695 +1666.0,4.260483214794736 +1667.0,4.517763492143728 +1668.0,2.5080342293757956 +1669.0,2.7001537745096345 +1670.0,2.831760999875068 +1671.0,3.0213631374785295 +1672.0,3.2126221921420948 +1673.0,3.3691617973155403 +1674.0,3.551091047108626 +1675.0,3.758746608847619 +1676.0,3.91777811579032 +1677.0,4.132357057720875 +1678.0,4.271859395567051 +1679.0,4.509991481451063 +1680.0,2.5048699551393123 +1681.0,2.6914007395385644 +1682.0,2.8990979280779814 +1683.0,3.020017080969338 +1684.0,3.1757349497363196 +1685.0,3.409199609140093 +1686.0,3.5336613310749496 +1687.0,3.7341975879025804 +1688.0,3.920844227307701 +1689.0,4.08134599630747 +1690.0,4.326574694229026 +1691.0,4.485672248642823 +1692.0,2.4968173490849432 +1693.0,2.6497007377140855 +1694.0,2.862009008124948 +1695.0,3.0212664230580755 +1696.0,3.253488950357007 +1697.0,3.4246425780854057 +1698.0,3.565951293398196 +1699.0,3.746888432624718 +1700.0,3.963289424526618 +1701.0,4.146445446658615 +1702.0,4.268891583594016 +1703.0,4.45083670605758 +1704.0,2.5204263845058827 +1705.0,2.677539745761543 +1706.0,2.828968051223162 +1707.0,3.052648126558645 +1708.0,3.2606798646630826 +1709.0,3.3985811264212127 +1710.0,3.602453448850319 +1711.0,3.796691116128277 +1712.0,3.948710204019988 +1713.0,4.100358597175164 +1714.0,4.259370023131967 +1715.0,4.508571381685754 +1716.0,2.50354365018605 +1717.0,2.658527382204824 +1718.0,2.8160717884593947 +1719.0,2.986386055720896 +1720.0,3.2077560460526366 +1721.0,3.432244797251848 +1722.0,3.5840993986916616 +1723.0,3.824575711646347 +1724.0,3.9778259559670692 +1725.0,4.132018901244523 +1726.0,4.327077172700234 +1727.0,4.430005867584174 +1728.0,2.496394870254094 +1729.0,2.7066213756993833 +1730.0,2.8865127945826083 +1731.0,3.024198229099095 +1732.0,3.2451098821751776 +1733.0,3.395087859828469 +1734.0,3.551227319999369 +1735.0,3.7221551991037205 +1736.0,3.921387025277574 +1737.0,4.11290419612126 +1738.0,4.296857152420635 +1739.0,4.495845984488923 +1740.0,2.5032850647712386 +1741.0,2.716225865883037 +1742.0,2.8802264430586764 +1743.0,3.0322918248943966 +1744.0,3.2229158412739345 +1745.0,3.378462779819743 +1746.0,3.613413864870529 +1747.0,3.7692768637614136 +1748.0,3.9227846634183208 +1749.0,4.105614519764876 +1750.0,4.2936687172608154 +1751.0,4.4711003025613705 +1752.0,2.544480305824746 +1753.0,2.70253654892922 +1754.0,2.811393429683766 +1755.0,3.0587313905545344 +1756.0,3.2437486893639287 +1757.0,3.412733686655114 +1758.0,3.52331980818293 +1759.0,3.7403673536161035 +1760.0,3.996620799776909 +1761.0,4.1377189241536545 +1762.0,4.313386153436853 +1763.0,4.4416450813354045 +1764.0,2.449239072733434 +1765.0,2.6546462092454197 +1766.0,2.8525441205170363 +1767.0,3.058195378454613 +1768.0,3.23028630177389 +1769.0,3.4209178882021076 +1770.0,3.6101561571189813 +1771.0,3.7462592060433297 +1772.0,3.925670487585463 +1773.0,4.1669289456684355 +1774.0,4.3226317742333995 +1775.0,4.474392623863862 +1776.0,2.531425072115672 +1777.0,2.6681680412334523 +1778.0,2.880150367061362 +1779.0,3.0412272038234263 +1780.0,3.2213702232533477 +1781.0,3.423379027860668 +1782.0,3.5950093259503118 +1783.0,3.7724471653743588 +1784.0,3.956782820511823 +1785.0,4.142895669395944 +1786.0,4.369688718880079 +1787.0,4.466408749997215 +1788.0,2.5065406826394905 +1789.0,2.647143111163619 +1790.0,2.8732008704664067 +1791.0,3.0381723718314806 +1792.0,3.2355426084932173 +1793.0,3.4115359920892465 +1794.0,3.581831234111786 +1795.0,3.7790678127591417 +1796.0,3.955316971496362 +1797.0,4.14704630791585 +1798.0,4.284251638857174 +1799.0,4.4812112830472355 +1800.0,2.5517589770958575 +1801.0,2.6601881887052707 +1802.0,2.8334163198870477 +1803.0,3.061942262267201 +1804.0,3.2039902787568253 +1805.0,3.390217093820869 +1806.0,3.5742064294434566 +1807.0,3.7620903060533135 +1808.0,3.920993751682194 +1809.0,4.083851528273588 +1810.0,4.292586752745846 +1811.0,4.5498019193479236 +1812.0,2.4852449841544635 +1813.0,2.675350115543008 +1814.0,2.87592902609903 +1815.0,3.060976949262865 +1816.0,3.1771228673065304 +1817.0,3.39055299502699 +1818.0,3.5915876564987976 +1819.0,3.7396723953206075 +1820.0,3.986740340776272 +1821.0,4.044407759891296 +1822.0,4.251710418931588 +1823.0,4.50923338750848 +1824.0,2.5127898680176712 +1825.0,2.6888190050276695 +1826.0,2.8590959225876724 +1827.0,3.0179682343515655 +1828.0,3.219766517885989 +1829.0,3.424020705525997 +1830.0,3.547866928958828 +1831.0,3.7718409732986493 +1832.0,3.943157449316661 +1833.0,4.138881156767531 +1834.0,4.241284188314195 +1835.0,4.4326933887397235 +1836.0,2.5154880822014776 +1837.0,2.6804862998381203 +1838.0,2.8656704225985177 +1839.0,3.0066248194340583 +1840.0,3.214896358389741 +1841.0,3.422621983113897 +1842.0,3.6058695843291804 +1843.0,3.73057362391903 +1844.0,4.007715121771076 +1845.0,4.142946610326574 +1846.0,4.304153264949715 +1847.0,4.46601159996046 +1848.0,2.447528564247292 +1849.0,2.704506708607379 +1850.0,2.872578617133725 +1851.0,3.0583095504622024 +1852.0,3.195502651168676 +1853.0,3.386094788683105 +1854.0,3.5906749914767437 +1855.0,3.7509798035995745 +1856.0,3.9353042825297684 +1857.0,4.0982868567981035 +1858.0,4.355964548358196 +1859.0,4.5203193675488285 +1860.0,2.5287048472968205 +1861.0,2.683360817403866 +1862.0,2.8711819178708837 +1863.0,3.0533426794448624 +1864.0,3.2732673889638884 +1865.0,3.3970756359240526 +1866.0,3.6079313755702573 +1867.0,3.7528686383415804 +1868.0,3.9538428195879995 +1869.0,4.129587473921193 +1870.0,4.311599311062043 +1871.0,4.486171146940125 +1872.0,2.496604653101549 +1873.0,2.695054773793208 +1874.0,2.833440577043616 +1875.0,3.017493846801025 +1876.0,3.2374973198247656 +1877.0,3.3870660985097767 +1878.0,3.581022441627027 +1879.0,3.7206449515717015 +1880.0,3.9111446934747924 +1881.0,4.108754615791692 +1882.0,4.316560137811326 +1883.0,4.524740910210593 +1884.0,2.528608137413956 +1885.0,2.705822108769165 +1886.0,2.861042347195339 +1887.0,3.0100185173766376 +1888.0,3.229956075806446 +1889.0,3.39535676225548 +1890.0,3.601815775151153 +1891.0,3.7529787666343304 +1892.0,3.9292392749922906 +1893.0,4.113400293000025 +1894.0,4.321796280987359 +1895.0,4.4988419389074625 +1896.0,2.507664686298193 +1897.0,2.702412317461655 +1898.0,2.891443098637891 +1899.0,3.0408101955692195 +1900.0,3.2523571890258 +1901.0,3.38027110342639 +1902.0,3.5761895278130575 +1903.0,3.732587280193636 +1904.0,3.964362357143528 +1905.0,4.077815372856908 +1906.0,4.2605086607387035 +1907.0,4.466269206656921 +1908.0,2.5080054877818103 +1909.0,2.710496825737565 +1910.0,2.843913048389407 +1911.0,3.010660245556839 +1912.0,3.221424926056015 +1913.0,3.355444205192746 +1914.0,3.6157785725204317 +1915.0,3.790345902315488 +1916.0,3.9142692735577493 +1917.0,4.1223768645505725 +1918.0,4.297934310790166 +1919.0,4.472985377356232 +1920.0,2.472298373417005 +1921.0,2.701975727333471 +1922.0,2.8344035468088764 +1923.0,3.0516757527696003 +1924.0,3.251450123198913 +1925.0,3.3953165801907623 +1926.0,3.575788928559855 +1927.0,3.7646904187974553 +1928.0,3.958829176995318 +1929.0,4.069138451839531 +1930.0,4.332005167716463 +1931.0,4.485069569576313 +1932.0,2.515276732677803 +1933.0,2.687310378806671 +1934.0,2.854883011232457 +1935.0,3.0850081282198576 +1936.0,3.201247513155353 +1937.0,3.3975905483566478 +1938.0,3.57655684610638 +1939.0,3.765443631978348 +1940.0,3.9133473573517796 +1941.0,4.085845950705242 +1942.0,4.316311872806167 +1943.0,4.447971036030906 +1944.0,2.48893010469287 +1945.0,2.699844038734648 +1946.0,2.8043896262477666 +1947.0,3.0349112934494156 +1948.0,3.1962732952978996 +1949.0,3.4078215190183436 +1950.0,3.594013377084285 +1951.0,3.762534963942409 +1952.0,3.93155477226111 +1953.0,4.101829642612435 +1954.0,4.31660051620698 +1955.0,4.449329357456481 +1956.0,2.5156329929423706 +1957.0,2.654021867625983 +1958.0,2.806006901649624 +1959.0,3.0717003376778624 +1960.0,3.235797855015933 +1961.0,3.4155845287396245 +1962.0,3.5940205052463057 +1963.0,3.7763983011063176 +1964.0,3.933806898748374 +1965.0,4.119355584128267 +1966.0,4.295048824438435 +1967.0,4.4918072060722265 +1968.0,2.5304450723904433 +1969.0,2.68768017033498 +1970.0,2.835589124532715 +1971.0,3.0223507333462414 +1972.0,3.289484360656853 +1973.0,3.402494491255585 +1974.0,3.5558773165380964 +1975.0,3.7958352945514062 +1976.0,3.9307208655932304 +1977.0,4.127340948019775 +1978.0,4.306400032149729 +1979.0,4.46713005210208 +1980.0,2.518513372837955 +1981.0,2.6469268021760244 +1982.0,2.8829901395943716 +1983.0,3.057881471664146 +1984.0,3.2133511904118235 +1985.0,3.3976994227795387 +1986.0,3.5828583992162955 +1987.0,3.796687585169809 +1988.0,3.989933224981262 +1989.0,4.115661732339201 +1990.0,4.30199326878293 +1991.0,4.486771286927079 +1992.0,2.4699424839259096 +1993.0,2.6709395875352 +1994.0,2.9055027242232883 +1995.0,3.0244470241607746 +1996.0,3.2121035550754278 +1997.0,3.3970283568332027 +1998.0,3.585922147063477 +1999.0,3.8157240295923205 +2000.0,3.94246552874583 +2001.0,4.128112913216111 +2002.0,4.241585233291603 +2003.0,4.500439290326127 +2004.0,2.4842081318163385 +2005.0,2.708695929311764 +2006.0,2.8691148772295088 +2007.0,3.008057433884843 +2008.0,3.2335141038897754 +2009.0,3.3997989872893615 +2010.0,3.5547733464002187 +2011.0,3.7540196582199967 +2012.0,3.956278676808066 +2013.0,4.101874602546306 +2014.0,4.279295991500825 +2015.0,4.444677384419059 +2016.0,2.5266002535991308 +2017.0,2.7171135454853914 +2018.0,2.8569357976816736 +2019.0,3.045506145148405 +2020.0,3.2392179393758327 +2021.0,3.401444500199311 +2022.0,3.57987066770536 +2023.0,3.7335610482452326 +2024.0,3.934272918006917 +2025.0,4.131562528530826 +2026.0,4.258912437605367 +2027.0,4.465633138649708 +2028.0,2.542597145925994 +2029.0,2.6969336443977134 +2030.0,2.8733213784855787 +2031.0,2.991320903405148 +2032.0,3.1941063015137576 +2033.0,3.3915068048046235 +2034.0,3.570278212572207 +2035.0,3.7609815407213683 +2036.0,3.9574970301658303 +2037.0,4.095281527249511 +2038.0,4.293968588747713 +2039.0,4.479504336992609 +2040.0,2.4626197633371967 +2041.0,2.6675003859965734 +2042.0,2.8424989845181026 +2043.0,3.0662756082489957 +2044.0,3.231307304034273 +2045.0,3.4015003087170053 +2046.0,3.5371722166729564 +2047.0,3.7988786996712216 +2048.0,3.959624431290259 +2049.0,4.089140564365263 +2050.0,4.2792217210485015 +2051.0,4.469798213141259 +2052.0,2.529770287974333 +2053.0,2.7097888729050665 +2054.0,2.8728599483849178 +2055.0,3.045984788762342 +2056.0,3.2548197008992767 +2057.0,3.4202592264108724 +2058.0,3.572701399519185 +2059.0,3.7395114512584655 +2060.0,3.941877427133519 +2061.0,4.098218865291043 +2062.0,4.312148248764149 +2063.0,4.501516570874205 +2064.0,2.52103153121798 +2065.0,2.667300935375199 +2066.0,2.8178130607753933 +2067.0,3.085457085181245 +2068.0,3.272688453072797 +2069.0,3.425135677014441 +2070.0,3.598887877254297 +2071.0,3.7458406420749335 +2072.0,3.9208453871243476 +2073.0,4.131434194454132 +2074.0,4.3316066386985375 +2075.0,4.524596020762368 +2076.0,2.5367707438998583 +2077.0,2.6632202633997353 +2078.0,2.880322200470069 +2079.0,3.0698787692855913 +2080.0,3.226337765647324 +2081.0,3.4063820788638526 +2082.0,3.582072227522316 +2083.0,3.750624331265036 +2084.0,3.9728907978800367 +2085.0,4.089904154351524 +2086.0,4.301370127189283 +2087.0,4.466485733908907 +2088.0,2.5301709484258184 +2089.0,2.6334435700078647 +2090.0,2.8398290495670464 +2091.0,3.0688864294813603 +2092.0,3.219158766621901 +2093.0,3.3671045839344487 +2094.0,3.6123892684189314 +2095.0,3.753187971582695 +2096.0,3.9734410207681354 +2097.0,4.150162461256 +2098.0,4.289780263022676 +2099.0,4.491272365359486 +2100.0,2.515292768132277 +2101.0,2.7176087205666337 +2102.0,2.861958712765455 +2103.0,3.0245915451124166 +2104.0,3.2370908834458505 +2105.0,3.3623112600458627 +2106.0,3.5891885461079154 +2107.0,3.742601424053674 +2108.0,3.9134472858231555 +2109.0,4.085957325656605 +2110.0,4.308505793300472 +2111.0,4.523620393433213 +2112.0,2.503891410327947 +2113.0,2.670638982660144 +2114.0,2.8301369375065937 +2115.0,2.9635473093559863 +2116.0,3.2175232698377867 +2117.0,3.4201724165610226 +2118.0,3.5711009992451412 +2119.0,3.7662752582808148 +2120.0,3.9522758083153566 +2121.0,4.0918224096526625 +2122.0,4.303157382125949 +2123.0,4.448942891354018 +2124.0,2.481640556006911 +2125.0,2.668577310358125 +2126.0,2.8575832275893007 +2127.0,3.0518950038571657 +2128.0,3.2331241983934724 +2129.0,3.4057318421254226 +2130.0,3.5644069423751565 +2131.0,3.748090208143774 +2132.0,3.917473913474955 +2133.0,4.102694195060428 +2134.0,4.312150949486931 +2135.0,4.495664417428192 +2136.0,2.482398687630254 +2137.0,2.634990706959138 +2138.0,2.8908534860948323 +2139.0,3.0390497861480834 +2140.0,3.219936154990802 +2141.0,3.4117919645140717 +2142.0,3.57718579156951 +2143.0,3.770786741662654 +2144.0,3.9404872615161377 +2145.0,4.121064038510867 +2146.0,4.3085950875646875 +2147.0,4.477905334904329 +2148.0,2.525510398880889 +2149.0,2.7235881336827257 +2150.0,2.8626487523989135 +2151.0,3.0098238469635707 +2152.0,3.236226059938317 +2153.0,3.395031088576234 +2154.0,3.5777268509029736 +2155.0,3.767298853468421 +2156.0,3.971340482357741 +2157.0,4.135355624331323 +2158.0,4.284175204952332 +2159.0,4.474245921146506 +2160.0,2.4736489255127 +2161.0,2.678248533794606 +2162.0,2.8500468171330566 +2163.0,3.03599828595127 +2164.0,3.201733095074427 +2165.0,3.382733101096777 +2166.0,3.6056869287442606 +2167.0,3.758102176162754 +2168.0,3.9665030343298406 +2169.0,4.174041891097326 +2170.0,4.306438767920297 +2171.0,4.479230730118121 +2172.0,2.4868264479881774 +2173.0,2.6865467560914422 +2174.0,2.862236091066999 +2175.0,3.004363502435178 +2176.0,3.236667116229855 +2177.0,3.4119569450733387 +2178.0,3.600813498965062 +2179.0,3.805753736394 +2180.0,3.9120526024691618 +2181.0,4.090708448611986 +2182.0,4.2732752561954035 +2183.0,4.470317440882503 +2184.0,2.5016102491339893 +2185.0,2.7092321356250015 +2186.0,2.861823121771173 +2187.0,3.06118717852506 +2188.0,3.2309051753178126 +2189.0,3.379904364861416 +2190.0,3.6207032980827702 +2191.0,3.71482614952612 +2192.0,3.94734011023258 +2193.0,4.111856183613572 +2194.0,4.2752054228025465 +2195.0,4.498156264014006 +2196.0,2.5132307679567005 +2197.0,2.66716593176063 +2198.0,2.80951814709196 +2199.0,3.0773304118477336 diff --git a/tests/fixtures/catalogs/case_029_clustered_2200d.csv b/tests/fixtures/catalogs/case_029_clustered_2200d.csv new file mode 100644 index 0000000..7c35600 --- /dev/null +++ b/tests/fixtures/catalogs/case_029_clustered_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.603792904780109 +1.0,2.8202069254399564 +2.0,2.5535524015718085 +3.0,2.435014513597974 +4.0,2.4211652923313554 +5.0,2.7786539018309293 +6.0,2.3461235356475 +7.0,2.348087671712407 +8.0,2.3662310186369067 +9.0,2.4783928046151065 +10.0,2.6237363587052602 +11.0,2.6319814384909925 +12.0,2.4424152716929317 +13.0,2.8212616741614402 +14.0,3.3075178333136144 +15.0,2.5878185048008415 +16.0,2.4160226556689786 +17.0,2.5370866375663486 +18.0,2.8151565840636623 +19.0,2.4991492034555 +20.0,2.991524772802299 +21.0,2.5519994265162933 +22.0,2.302952428921487 +23.0,2.4686484463183924 +24.0,2.8428976537191666 +25.0,2.43517929736776 +26.0,2.488000352663504 +27.0,2.7805256015605604 +28.0,2.527648720287771 +29.0,2.541789531689063 +30.0,2.314763375957334 +31.0,2.325797483119708 +32.0,2.3714547549914076 +33.0,2.9207532617633603 +34.0,2.39196432258987 +35.0,2.5253899628168903 +36.0,2.401215958827065 +37.0,2.8888569295953155 +38.0,3.605492667853637 +39.0,2.98279431338789 +40.0,2.7361304151512287 +41.0,2.35191510045919 +42.0,3.1534463971649425 +43.0,3.1883127578667403 +44.0,2.5692589074304406 +45.0,2.3772113627706353 +46.0,2.5696564471105634 +47.0,2.84104420417474 +48.0,2.3257676108920005 +49.0,2.719403130852129 +50.0,2.461417455048271 +51.0,2.7178320846901483 +52.0,2.3193643720295904 +53.0,2.402824757587783 +54.0,2.8128133859773303 +55.0,2.4206536587179515 +56.0,4.955266581418161 +57.0,2.4557764117454317 +58.0,2.3029579319354196 +59.0,3.464377692815371 +60.0,2.608015266790339 +61.0,3.2535471219919563 +62.0,3.0625049452711153 +63.0,2.66504033010338 +64.0,2.325025026407371 +65.0,2.392501846198596 +66.0,2.322400775319996 +67.0,2.522412718627904 +68.0,2.465436370630573 +69.0,2.517197037645539 +70.0,4.03066778286479 +71.0,2.412699358252815 +72.0,2.7089301671417556 +73.0,2.502625880134306 +74.0,2.929079293581514 +75.0,3.3644563078910537 +76.0,3.012965540296642 +77.0,2.461449620555591 +78.0,2.3962355235329547 +79.0,2.4709062749458517 +80.0,2.37841500216342 +81.0,2.364961621191234 +82.0,2.4037224362161314 +83.0,2.5030439089574426 +84.0,2.678937867734631 +85.0,2.5237104860468667 +86.0,2.3025636043633693 +87.0,2.6828676702385987 +88.0,2.852594658590678 +89.0,3.0027117138598443 +90.0,2.4530660091081034 +91.0,2.309722492429178 +92.0,2.745160975199071 +93.0,2.5353632735717446 +94.0,2.3547048299740974 +95.0,2.4296086611768812 +96.0,2.82621971492001 +97.0,2.5980609583428276 +98.0,2.355289849178501 +99.0,2.367118461964808 +100.0,2.6305659370451124 +101.0,2.43066518359651 +102.0,3.0094455954832737 +103.0,2.999509744314304 +104.0,2.37055587198296 +105.0,2.717603576765389 +106.0,2.586453304177922 +107.0,2.788889258735053 +108.0,2.734380415128124 +109.0,2.7108799746434755 +110.0,2.7209950698224477 +111.0,3.557219466879372 +112.0,2.60996235004139 +113.0,2.545646394395823 +114.0,2.454515813232776 +115.0,2.4959036232007548 +116.0,2.4363255239515182 +117.0,2.704394746655053 +118.0,2.754069151246027 +119.0,3.573829171027917 +120.0,2.950490028874178 +121.0,2.403572848151982 +122.0,2.516759754660666 +123.0,2.841996485471452 +124.0,2.4332917535607144 +125.0,2.3690328400068856 +126.0,2.440805152525438 +127.0,2.645033773642996 +128.0,3.0174031827160643 +129.0,2.3474406387576243 +130.0,2.4098126268665125 +131.0,2.4363307160957155 +132.0,2.6621472199769687 +133.0,2.9513144063919894 +134.0,2.396478851117821 +135.0,2.522328304240859 +136.0,2.6500804933964526 +137.0,2.7424041644257118 +138.0,2.362656811014245 +139.0,2.390400588380529 +140.0,2.657467906415402 +141.0,2.677951640374192 +142.0,2.4416150598268924 +143.0,2.630723261633916 +144.0,2.9662331934578092 +145.0,2.4314501135318176 +146.0,2.5833446856302618 +147.0,2.4307531330747096 +148.0,2.4806627608783427 +149.0,2.496034220947822 +150.0,2.364274687942968 +151.0,2.472908178775615 +152.0,2.447443596051321 +153.0,2.4008186749839937 +154.0,2.3321476020655885 +155.0,2.929505698728038 +156.0,3.23633485479353 +157.0,3.149323170469257 +158.0,2.4402630599050226 +159.0,2.4449438493359037 +160.0,3.104924450551537 +161.0,2.4841108999518458 +162.0,2.429684692317993 +163.0,2.336034386063786 +164.0,3.1508945742035865 +165.0,2.3002271354556143 +166.0,2.9147356555344293 +167.0,3.3366409359735805 +168.0,2.444435126897264 +169.0,2.430702342281642 +170.0,2.719927891811486 +171.0,2.501184704683612 +172.0,2.760026613954845 +173.0,2.8011584201614976 +174.0,2.7243428263142055 +175.0,2.641470908209191 +176.0,2.4577877743766137 +177.0,2.417474911393395 +178.0,2.929712370164436 +179.0,2.6224832409546566 +180.0,2.4333378809900865 +181.0,2.4392989587660856 +182.0,2.86869846638844 +183.0,2.395641100910228 +184.0,2.3237143818116537 +185.0,2.5474013714941797 +186.0,2.8738664122314286 +187.0,3.0524462854636636 +188.0,3.191485138719673 +189.0,2.7706761920648 +190.0,3.8291766064095825 +191.0,2.9435336463607484 +192.0,4.096535354008624 +193.0,4.914912371527318 +194.0,5.062171347500412 +195.0,2.8911990475655256 +196.0,3.621192294178742 +197.0,4.511678943629882 +198.0,5.1626672916171366 +199.0,3.184556958917584 +200.0,4.689870776932761 +201.0,3.4855185430406173 +202.0,4.379159746852495 +203.0,3.077410475374638 +204.0,2.426273264155031 +205.0,4.867349124304209 +206.0,2.830402052468873 +207.0,2.367957680027926 +208.0,3.267276906642217 +209.0,2.5776895943296334 +210.0,2.5736402576040143 +211.0,2.707354755944211 +212.0,3.264070937370747 +213.0,4.218756545392505 +214.0,2.729958276775542 +215.0,4.832528627365399 +216.0,3.206091521332806 +217.0,2.5870173640374574 +218.0,2.3320615474701087 +219.0,2.334733509344662 +220.0,2.315343848780573 +221.0,2.5066644216799974 +222.0,2.7758224615678384 +223.0,2.6392673591939158 +224.0,2.5794675056071306 +225.0,2.496656238933503 +226.0,2.718967202264844 +227.0,3.0067818921107134 +228.0,2.5193789598258154 +229.0,2.4438516523243528 +230.0,2.5472215552238784 +231.0,3.165692873919574 +232.0,2.3018155774134303 +233.0,2.4047522544005018 +234.0,2.3750460064943986 +235.0,2.3133737387382283 +236.0,2.4061969743218166 +237.0,3.1794434121947015 +238.0,2.6953769673830754 +239.0,2.8766584735305227 +240.0,2.4785582811157125 +241.0,2.7211771149377837 +242.0,2.8203564018426355 +243.0,2.568401278508229 +244.0,2.4441792787124204 +245.0,2.5227962993434083 +246.0,2.5767481125191356 +247.0,3.2684459350887862 +248.0,3.0807037589220743 +249.0,3.1776651781845713 +250.0,2.3879565195142245 +251.0,2.5440703178026585 +252.0,2.7720066230356553 +253.0,2.6268640539024894 +254.0,2.5551347327119567 +255.0,2.482345147978149 +256.0,3.2340846917186514 +257.0,2.421007775528082 +258.0,2.3264767564205133 +259.0,2.5226864631009454 +260.0,2.8279546648045613 +261.0,2.566858168192912 +262.0,2.3920002824350073 +263.0,2.6994474330425007 +264.0,2.462061725110611 +265.0,2.6862392891830567 +266.0,2.5246924973379716 +267.0,2.8315928757808706 +268.0,2.5219544302739445 +269.0,2.991611907934784 +270.0,2.710803619517102 +271.0,3.26240966776744 +272.0,2.3784980848697947 +273.0,2.3666909925615607 +274.0,2.55749359133139 +275.0,2.3224100107354855 +276.0,2.538419398899839 +277.0,2.5322146774024903 +278.0,2.630950233692413 +279.0,2.7279420842754063 +280.0,2.513232190846549 +281.0,3.334376247364111 +282.0,2.703676013408437 +283.0,2.4483927295990835 +284.0,2.8683974396107255 +285.0,2.513210824070417 +286.0,2.391222179341229 +287.0,2.354670478587065 +288.0,2.3924925552713736 +289.0,3.316176045899126 +290.0,2.730056026872542 +291.0,2.3792290756625363 +292.0,3.131923771117377 +293.0,2.6733065179650723 +294.0,2.4155547147651704 +295.0,3.061006566704893 +296.0,2.326558115572165 +297.0,3.5681935961394498 +298.0,2.4247532534452656 +299.0,2.5843009059302737 +300.0,3.1373159131320474 +301.0,2.3266684717504202 +302.0,2.314930854220397 +303.0,2.526922011136598 +304.0,2.617645481201844 +305.0,2.9026686545084486 +306.0,2.31586420347918 +307.0,2.4348768604916087 +308.0,2.3827846534706065 +309.0,2.647920591727458 +310.0,2.3543211274022564 +311.0,2.3056800564159765 +312.0,2.8085018948555347 +313.0,2.3414106565863744 +314.0,2.3489415816849695 +315.0,2.5198377209417218 +316.0,2.649553198338605 +317.0,2.4801258267550557 +318.0,2.586327879428723 +319.0,3.0240538662478937 +320.0,2.583013435942989 +321.0,2.811245631286565 +322.0,3.4375367394426553 +323.0,2.4009416670388957 +324.0,2.3493590276572918 +325.0,2.451473860572915 +326.0,3.0632096566858875 +327.0,2.9027198703617922 +328.0,2.3179264376205833 +329.0,2.366149763423749 +330.0,2.3933757885307916 +331.0,2.999036959835641 +332.0,2.6907923748026814 +333.0,2.558928437508114 +334.0,2.8574505234134464 +335.0,2.760730102878557 +336.0,4.153137166048967 +337.0,2.9289319267972607 +338.0,2.6294790723078467 +339.0,2.768560445525744 +340.0,2.5058116883025026 +341.0,2.6068816568747737 +342.0,3.0139802453195617 +343.0,2.301509037815534 +344.0,2.335514164152043 +345.0,2.906633843664384 +346.0,2.5734453045271093 +347.0,3.7675308316771563 +348.0,2.507177831807756 +349.0,2.3532286873961943 +350.0,2.3701288543360293 +351.0,2.753374622731297 +352.0,2.5246502581357446 +353.0,2.6955596203525456 +354.0,2.8468079551470185 +355.0,2.877143217999058 +356.0,2.5872685357277607 +357.0,2.4297895809800085 +358.0,2.579756724143609 +359.0,2.594832257805341 +360.0,2.3503408103950636 +361.0,3.4163342945380553 +362.0,2.324121987788544 +363.0,3.3563810235274385 +364.0,3.5642585416488206 +365.0,2.3740535539389063 +366.0,2.337689162108123 +367.0,2.679530622644907 +368.0,4.458917738316285 +369.0,2.9633065937939693 +370.0,2.403593980454815 +371.0,2.4727123543612906 +372.0,2.9499726655981875 +373.0,2.535551743878918 +374.0,2.514421736421552 +375.0,2.719236142486278 +376.0,2.487439577701604 +377.0,2.889978541921839 +378.0,2.541889127376915 +379.0,2.3264369733008547 +380.0,3.1844074177502137 +381.0,3.6801412420844835 +382.0,2.4139138303413175 +383.0,2.9240146278878973 +384.0,2.3028843903818044 +385.0,3.502794905118638 +386.0,2.561962637043549 +387.0,2.3141188596771114 +388.0,2.6142016316026573 +389.0,2.38858142799013 +390.0,2.4115844662721253 +391.0,2.3705937371107453 +392.0,2.6048396823425572 +393.0,2.8245574523230434 +394.0,2.3906360315551876 +395.0,2.4079829849296286 +396.0,2.674471619459397 +397.0,2.709938234103636 +398.0,2.6908385784088784 +399.0,3.3027397534044822 +400.0,2.664625491713291 +401.0,2.3262832225569734 +402.0,3.20241322862492 +403.0,2.4387175212186305 +404.0,2.9503173441753856 +405.0,3.1388755151087526 +406.0,2.3313824445704525 +407.0,2.4390272641015014 +408.0,3.3922118075798164 +409.0,2.940874499698875 +410.0,2.391665337247464 +411.0,4.029391385151032 +412.0,2.3109055244818557 +413.0,2.7385152464181064 +414.0,2.7469023033167073 +415.0,2.627683855306204 +416.0,2.312609476987205 +417.0,3.325447881254937 +418.0,2.5354787092514606 +419.0,2.4517918972607085 +420.0,2.525983457434667 +421.0,2.722226626435323 +422.0,3.958809537288439 +423.0,2.5743483369690487 +424.0,3.068989473462439 +425.0,2.76102363198194 +426.0,2.5442561267950725 +427.0,2.614718027337308 +428.0,2.3190055990745235 +429.0,3.0730305493360164 +430.0,2.307835794953603 +431.0,2.4869624928160876 +432.0,3.789395872283791 +433.0,2.7407192880676985 +434.0,2.3176788329987605 +435.0,2.6618083946934354 +436.0,3.0032986561527535 +437.0,2.5540257343882726 +438.0,2.7846360473968845 +439.0,2.4886217414441894 +440.0,2.8422332087541595 +441.0,2.3410207458703276 +442.0,2.562050302956154 +443.0,3.1870240731584136 +444.0,2.3167770200692277 +445.0,2.9187253844039103 +446.0,3.3307404286980073 +447.0,3.09200444051208 +448.0,3.550583533704689 +449.0,2.5426381632682657 +450.0,2.3363633414802156 +451.0,2.4077413823050886 +452.0,2.471692159263852 +453.0,2.6542100977722103 +454.0,2.9912434919282056 +455.0,2.351371508454854 +456.0,2.329293270071805 +457.0,3.135018410465962 +458.0,3.186389591722512 +459.0,2.33192135616887 +460.0,2.7761421633688648 +461.0,2.3899943152969 +462.0,2.305755777629221 +463.0,2.604181358700509 +464.0,2.593464270859252 +465.0,3.5508379342291336 +466.0,2.3171660781092616 +467.0,2.673520314726336 +468.0,2.428417293808911 +469.0,3.34314509749931 +470.0,2.420187473409122 +471.0,2.4549815835067355 +472.0,2.829876270183189 +473.0,2.4976713365468712 +474.0,2.3346680683318026 +475.0,3.028352440861749 +476.0,2.4368046328133364 +477.0,2.304038592350676 +478.0,3.108736306776666 +479.0,2.4096391720953068 +480.0,2.5288001503463278 +481.0,2.6798781200736843 +482.0,2.5151683210565317 +483.0,2.331431630054022 +484.0,3.704300662705643 +485.0,2.437197749986248 +486.0,2.4315391121188954 +487.0,2.452293139375777 +488.0,3.108469958830684 +489.0,3.533499784291311 +490.0,2.758381146024716 +491.0,3.34819133162132 +492.0,3.1029617229619326 +493.0,2.5966904187516726 +494.0,3.52186509014658 +495.0,2.3492582729539135 +496.0,2.945279276275739 +497.0,2.351241858666346 +498.0,2.6871268136478306 +499.0,2.3126605083243774 +500.0,2.4402785420499074 +501.0,2.459209673568652 +502.0,2.6720049793372826 +503.0,2.513190745594121 +504.0,2.383115372981316 +505.0,2.632706336442312 +506.0,2.748555818055255 +507.0,2.4339334011716716 +508.0,3.7609521777685044 +509.0,2.8140941169220213 +510.0,2.5880509547693875 +511.0,2.916624328148316 +512.0,2.662301999804588 +513.0,2.4361524610383416 +514.0,2.5330577754216708 +515.0,3.0425843585965557 +516.0,2.5259267303175426 +517.0,3.486282432727723 +518.0,2.76464592877959 +519.0,2.3896013752209044 +520.0,2.487355174819729 +521.0,2.8871727051498004 +522.0,2.5243724312929756 +523.0,2.8026170921549456 +524.0,2.4835807661865164 +525.0,2.7731889573859823 +526.0,2.508120002915843 +527.0,2.638534348105483 +528.0,2.3579529190555526 +529.0,3.1004172010466724 +530.0,2.94500052303613 +531.0,3.5588826186419213 +532.0,2.886156134454538 +533.0,3.078163467664804 +534.0,3.8694837046097357 +535.0,2.40893112580621 +536.0,2.432421153269727 +537.0,2.429399707872648 +538.0,2.6784736147186052 +539.0,2.3056851495558495 +540.0,2.620101443413601 +541.0,2.6654556013065935 +542.0,2.3907812430017743 +543.0,2.64466203744282 +544.0,2.420999072232702 +545.0,2.450369592187251 +546.0,2.413295440072648 +547.0,2.3187191175841164 +548.0,3.2777756036922394 +549.0,2.42977094552421 +550.0,2.4587772687680984 +551.0,3.5752644579191175 +552.0,2.9792615409015797 +553.0,2.583586265815517 +554.0,2.469688957501355 +555.0,2.5721358925729123 +556.0,2.8001800586150756 +557.0,3.165127796654462 +558.0,2.6546413085814446 +559.0,2.4695362937901404 +560.0,2.4809073381739193 +561.0,2.631989263380307 +562.0,2.5102332504892826 +563.0,2.324045400465913 +564.0,2.656280323958713 +565.0,2.421454439039376 +566.0,2.4632803460994857 +567.0,2.7455967177832075 +568.0,2.7914794581529225 +569.0,2.3396496640676006 +570.0,2.4644082899193562 +571.0,3.1824937920530125 +572.0,2.355276055479043 +573.0,2.445566494942893 +574.0,2.369680385570003 +575.0,2.4662674131983184 +576.0,2.7920149239867036 +577.0,2.5459654904065876 +578.0,3.2226323867349476 +579.0,2.402491701331608 +580.0,2.3402191588426 +581.0,2.4760074960460594 +582.0,2.3816999474105676 +583.0,2.4756689509770875 +584.0,2.536315311012498 +585.0,2.329764285621448 +586.0,2.7290028125309678 +587.0,2.8313568067284796 +588.0,2.7531995598978503 +589.0,2.983394309371533 +590.0,4.80770085504839 +591.0,2.9076364133430923 +592.0,4.147099998805057 +593.0,2.5579619532652296 +594.0,2.8849958346152262 +595.0,2.472216091365463 +596.0,2.825859883407814 +597.0,2.8471082739619695 +598.0,2.587223751098885 +599.0,2.30170380832295 +600.0,2.557119516193053 +601.0,2.436588187812442 +602.0,2.6273591405737413 +603.0,2.4103371546633885 +604.0,2.318061527769871 +605.0,3.8527085362367406 +606.0,2.3633886786776737 +607.0,2.5872732581758724 +608.0,2.414697747034014 +609.0,2.328820202487951 +610.0,2.31404849784882 +611.0,2.42273059998966 +612.0,2.319946501721841 +613.0,2.4636829318716034 +614.0,2.9461136958070053 +615.0,2.368406520621978 +616.0,2.618610964214729 +617.0,2.3277270756235686 +618.0,2.448629280158567 +619.0,2.3176066305529734 +620.0,2.4877912760293492 +621.0,2.4353108194715736 +622.0,3.204808535106725 +623.0,2.4288882929469087 +624.0,2.9029731978649242 +625.0,3.0355584867234495 +626.0,2.3338535790752544 +627.0,2.8892393088304917 +628.0,2.4727008126497934 +629.0,2.5589086733061848 +630.0,2.363147119768857 +631.0,2.4261330045443037 +632.0,2.6852041905401767 +633.0,2.324552404017175 +634.0,2.8141807603442643 +635.0,3.917347375632154 +636.0,2.452285386269428 +637.0,4.844684819102827 +638.0,3.12629122295281 +639.0,3.2188756633956537 +640.0,3.4056577397280563 +641.0,4.694127381899665 +642.0,2.8852712803838223 +643.0,3.4243795386370293 +644.0,3.0666382695780534 +645.0,3.367641599272969 +646.0,3.4469051392761605 +647.0,4.709143602516862 +648.0,3.966083938038345 +649.0,4.7819225370295495 +650.0,3.010585054514442 +651.0,2.4397890751876203 +652.0,4.316764758737582 +653.0,2.85318119147487 +654.0,3.7454707886873733 +655.0,2.4806501788096775 +656.0,3.0113990504928276 +657.0,5.556251487306064 +658.0,3.7267501898548328 +659.0,5.030634507260563 +660.0,2.8087991371996193 +661.0,3.559778397699289 +662.0,2.622871535344666 +663.0,2.9544522631599532 +664.0,5.243117323801616 +665.0,3.3019531981130665 +666.0,4.006189641894785 +667.0,2.533369042422564 +668.0,2.3279416954296623 +669.0,2.9958879801737264 +670.0,4.158740117944246 +671.0,2.3955560263527236 +672.0,2.8621803027182784 +673.0,2.501173401513414 +674.0,2.5210588383713635 +675.0,2.40801089805814 +676.0,2.4292442801958267 +677.0,2.3290111730915495 +678.0,2.360212942399179 +679.0,2.944545525032948 +680.0,2.423099833457846 +681.0,2.4344480604956007 +682.0,2.9413998057016713 +683.0,2.4369912992989216 +684.0,3.0663739032365505 +685.0,2.563722388862398 +686.0,2.482332772495239 +687.0,2.308944221714492 +688.0,2.437451981202168 +689.0,2.381467010059307 +690.0,2.4664128560981156 +691.0,3.0034530773929076 +692.0,2.897624591249862 +693.0,2.4675893549215964 +694.0,2.5305690202323365 +695.0,2.6025365821759627 +696.0,2.5354843016866013 +697.0,2.468510137758593 +698.0,2.5282063978261915 +699.0,2.694868658314494 +700.0,2.4032534534800374 +701.0,2.5468675200019084 +702.0,2.3704491410497215 +703.0,2.415367349249757 +704.0,3.1897197174763745 +705.0,2.44635264404893 +706.0,2.5573503894284353 +707.0,2.642913956063165 +708.0,2.4637719031517467 +709.0,3.0732970088501137 +710.0,2.4777710468560006 +711.0,2.3370699846043905 +712.0,2.4330369078899907 +713.0,2.978456307645856 +714.0,2.30415098364716 +715.0,3.3693049608106813 +716.0,2.646676838770156 +717.0,2.357371618327748 +718.0,2.6714248056989827 +719.0,2.5131804529519117 +720.0,3.2844931633217467 +721.0,2.9080466939879352 +722.0,2.3153142060068186 +723.0,2.4119536808912994 +724.0,3.0901235379169014 +725.0,2.8089141919022103 +726.0,2.8457017655189767 +727.0,3.1846453049404073 +728.0,2.3551942525373906 +729.0,2.976295173731211 +730.0,2.339696034418093 +731.0,2.6192136622836344 +732.0,3.658397757081183 +733.0,3.454270186466747 +734.0,2.6536804102780724 +735.0,2.466666742245689 +736.0,2.4939086929964547 +737.0,3.50812925412255 +738.0,2.612812291396702 +739.0,2.505758279233614 +740.0,3.411939217994316 +741.0,2.983682818516664 +742.0,2.652097402616221 +743.0,2.7821348037677414 +744.0,2.776616612342978 +745.0,2.528101113336608 +746.0,2.3603804549058496 +747.0,2.5395892019278516 +748.0,2.7216966568104404 +749.0,2.594030003307081 +750.0,2.539577078857271 +751.0,2.624334933697407 +752.0,3.043273607321328 +753.0,2.3114266638006447 +754.0,2.4582275781128238 +755.0,2.5511739277081853 +756.0,2.4910927130891247 +757.0,2.411077430847134 +758.0,2.5856728684734804 +759.0,2.6262937929008388 +760.0,2.524860424058971 +761.0,3.9024770059371714 +762.0,2.415424464789006 +763.0,2.9390641514386027 +764.0,2.403000425181456 +765.0,2.918966452188487 +766.0,2.3210111167851855 +767.0,2.4127002115681475 +768.0,2.6396174902279763 +769.0,2.361227812826227 +770.0,3.6547504233344252 +771.0,2.3389359688946203 +772.0,3.251226651250397 +773.0,2.625030167917535 +774.0,2.615187928774849 +775.0,2.5639044842780456 +776.0,2.467329623741479 +777.0,2.5505958627201846 +778.0,2.391479704014402 +779.0,2.3000843489325318 +780.0,2.3251114908229895 +781.0,2.5263895532090217 +782.0,3.0179144127377118 +783.0,2.3403296372267617 +784.0,4.007862297327492 +785.0,2.592901224184426 +786.0,2.4572797461701144 +787.0,2.324248185859938 +788.0,3.0433521503032352 +789.0,2.3515899045650013 +790.0,3.6650812098844177 +791.0,2.9031116747821017 +792.0,2.390540192536037 +793.0,2.694177398880027 +794.0,2.3264964425621217 +795.0,2.633568062954717 +796.0,2.7689169671326113 +797.0,2.5121876028108696 +798.0,2.337271313538516 +799.0,3.03064138804852 +800.0,2.4063866640375298 +801.0,2.4529529132285015 +802.0,2.7664869438430877 +803.0,2.8351478412696416 +804.0,2.3278238680798333 +805.0,3.3557135435029988 +806.0,3.1792692155059514 +807.0,2.6257304255596394 +808.0,2.511985809898234 +809.0,2.375200121269232 +810.0,2.4883569865530726 +811.0,3.4957248164925034 +812.0,3.4250184049066315 +813.0,2.9210085094196576 +814.0,2.3999512119899786 +815.0,2.4525967981148535 +816.0,3.680633010078897 +817.0,2.6207052445460803 +818.0,3.9464614142692795 +819.0,2.816916687644132 +820.0,3.1552503534674727 +821.0,2.447501365046697 +822.0,2.5433251719317616 +823.0,3.044932284336719 +824.0,2.4689455928561195 +825.0,2.510141979780606 +826.0,2.6879977077290405 +827.0,2.3038910701071247 +828.0,2.321766501649009 +829.0,2.9117123039724992 +830.0,2.5987049042995345 +831.0,3.3621034800855494 +832.0,2.5219413324567013 +833.0,2.4415527722570847 +834.0,3.287518734012738 +835.0,2.4821066188860565 +836.0,2.3342551123851503 +837.0,3.5110644163421343 +838.0,3.2320617659002293 +839.0,2.7804017926125786 +840.0,2.302013651424036 +841.0,3.03313040819671 +842.0,2.7657437482080476 +843.0,3.0802913302227592 +844.0,2.3025223359433977 +845.0,2.4300183985022343 +846.0,2.6153781175861806 +847.0,3.1308847416347296 +848.0,2.711057397163554 +849.0,2.997564821828173 +850.0,2.5304155287326204 +851.0,2.400303414393731 +852.0,3.7544329266844496 +853.0,2.72865178662023 +854.0,3.3808301411815807 +855.0,2.6763431758712297 +856.0,2.582466803490845 +857.0,2.6836309369876656 +858.0,4.002983230070604 +859.0,3.988003051574178 +860.0,2.39204179942753 +861.0,2.8804762721597923 +862.0,2.3593062474063413 +863.0,2.334908489985033 +864.0,2.5692941810497394 +865.0,2.6280488623388623 +866.0,2.733059947934237 +867.0,3.0230734224090665 +868.0,2.4586841098751835 +869.0,2.7472003707495007 +870.0,3.5110301303824265 +871.0,2.7024198694134443 +872.0,2.4458933704838843 +873.0,2.435590242248664 +874.0,2.9054037370843084 +875.0,2.657207581266711 +876.0,2.468945022542081 +877.0,2.3565525413722646 +878.0,2.345419547660821 +879.0,2.847441926435856 +880.0,2.5400554979033476 +881.0,2.8091652876954853 +882.0,2.5639671630748695 +883.0,2.4348035998825464 +884.0,2.41549991286764 +885.0,2.3198345292894724 +886.0,2.754473672937008 +887.0,2.469551404669019 +888.0,2.3414273156457854 +889.0,2.416989796084553 +890.0,2.8967504103328965 +891.0,2.414878463361788 +892.0,2.324366699493486 +893.0,2.7757971013748914 +894.0,3.112479353780455 +895.0,2.385225098173441 +896.0,3.012580718097515 +897.0,2.90223867383912 +898.0,2.50236146521941 +899.0,2.4858184227618083 +900.0,2.50368160967035 +901.0,3.217401809737875 +902.0,2.558530636241557 +903.0,2.399280978860664 +904.0,2.4327494011530177 +905.0,2.3281899861760205 +906.0,2.6139888513080223 +907.0,2.3713502452488884 +908.0,2.500067784115837 +909.0,2.4303334093423716 +910.0,2.364864908676936 +911.0,2.3411366700967493 +912.0,2.996172446859943 +913.0,2.747901720390661 +914.0,2.311095398075818 +915.0,2.7467363968474583 +916.0,3.703343718729813 +917.0,2.679830907949853 +918.0,2.3251505091179916 +919.0,2.3729161326034878 +920.0,2.395362420533077 +921.0,3.2135402222089438 +922.0,2.5782186611896347 +923.0,3.7615333857661515 +924.0,2.465031679646816 +925.0,2.660643700893289 +926.0,2.881742383617537 +927.0,2.6773303252090743 +928.0,2.619592315383839 +929.0,3.4777664472705663 +930.0,2.4854376900256567 +931.0,2.979785087593053 +932.0,3.095390481633408 +933.0,2.3922085855537625 +934.0,4.55486962505471 +935.0,2.5861233249948077 +936.0,2.860739437880726 +937.0,2.3325759869146636 +938.0,3.7523183152619968 +939.0,2.320466204160832 +940.0,2.3184990329510016 +941.0,2.5953345437412705 +942.0,2.5200238683670495 +943.0,2.433557280420268 +944.0,2.840527080935065 +945.0,2.3324887163959365 +946.0,2.511596687675609 +947.0,2.5270955349814854 +948.0,2.6752818294607623 +949.0,2.442542002166224 +950.0,2.438432574776731 +951.0,2.4503342685598657 +952.0,2.5734488509668374 +953.0,4.4616848028099465 +954.0,3.014318028348721 +955.0,2.497657606610839 +956.0,2.8676713974093477 +957.0,3.226098435175105 +958.0,3.277943342880552 +959.0,2.4347734652441075 +960.0,2.5814775684135878 +961.0,2.323643698012673 +962.0,3.433791730859284 +963.0,2.329946089687263 +964.0,2.3309415635961956 +965.0,2.5856125406359256 +966.0,2.7049438341230614 +967.0,2.952599819869838 +968.0,3.0678973357494423 +969.0,2.6724589773596508 +970.0,2.352476757731323 +971.0,2.6387302644680632 +972.0,2.3831467275703475 +973.0,2.5679081887133304 +974.0,2.7037418093121772 +975.0,3.0632754932100736 +976.0,2.7821564679601156 +977.0,2.433478654973016 +978.0,2.812707063361939 +979.0,2.5687695543932554 +980.0,2.424568765623769 +981.0,2.8704007928582276 +982.0,2.3493886233067 +983.0,2.4447601800894736 +984.0,2.768677935850687 +985.0,2.5072230040724843 +986.0,2.84929310469671 +987.0,2.586339029707486 +988.0,2.87563124404334 +989.0,3.122977135814611 +990.0,2.3325982757322605 +991.0,2.5697986163425703 +992.0,2.6883305677998064 +993.0,2.3242204333818464 +994.0,3.6881630744391005 +995.0,3.354154992020616 +996.0,3.1919864817748484 +997.0,3.3141979642420525 +998.0,2.3704379369471775 +999.0,2.93316281243729 +1000.0,2.311450021247983 +1001.0,2.32154576935053 +1002.0,2.6477423254961896 +1003.0,2.8766145002672663 +1004.0,3.047492930945406 +1005.0,2.4652720472312883 +1006.0,3.0934985726842905 +1007.0,3.024140352493775 +1008.0,2.433612362366356 +1009.0,2.322243512454121 +1010.0,2.4522567728511606 +1011.0,2.9574346943572207 +1012.0,2.449414312926599 +1013.0,2.495511179174181 +1014.0,2.40579582392151 +1015.0,2.6930117854218754 +1016.0,2.7633014104871343 +1017.0,2.766543525026635 +1018.0,2.4532214964348973 +1019.0,3.019511309050361 +1020.0,2.4843388015789447 +1021.0,2.477517992243978 +1022.0,2.3350375284257807 +1023.0,3.21794177655587 +1024.0,2.7890327970775677 +1025.0,2.541049298936591 +1026.0,2.633257643053794 +1027.0,3.1965338812059034 +1028.0,2.564597902675389 +1029.0,2.597309209564327 +1030.0,2.33438858806097 +1031.0,2.528289307788395 +1032.0,2.3099136259097497 +1033.0,2.561112809715227 +1034.0,2.329094233058465 +1035.0,3.315293850211688 +1036.0,2.3905767124118302 +1037.0,2.35882652031356 +1038.0,2.7379009848367675 +1039.0,2.5184095071585775 +1040.0,3.1244033451328113 +1041.0,3.3519049467683324 +1042.0,2.3525908697322766 +1043.0,2.4137993022186213 +1044.0,2.637066748715048 +1045.0,3.5984192584975316 +1046.0,2.3817039582213475 +1047.0,2.3642404522900238 +1048.0,3.0621176802006294 +1049.0,2.5199898217924566 +1050.0,2.371000320080951 +1051.0,2.339428501412654 +1052.0,3.1062687937788316 +1053.0,2.814540345848063 +1054.0,3.3674593176914263 +1055.0,2.3195484621799345 +1056.0,2.5685532725485167 +1057.0,2.6086543239125786 +1058.0,2.3996152724217246 +1059.0,2.5903738064719812 +1060.0,3.0456765034443776 +1061.0,2.6793059820977665 +1062.0,2.779331632309476 +1063.0,2.5047381771482797 +1064.0,2.346141304145313 +1065.0,2.6673709337414198 +1066.0,2.340200310384776 +1067.0,2.309222741735455 +1068.0,3.5030816866306784 +1069.0,3.2959304332470856 +1070.0,2.6683314619991205 +1071.0,2.3016750357976785 +1072.0,2.3682597071566653 +1073.0,3.1121807513274997 +1074.0,2.7239575336016713 +1075.0,2.445732110384248 +1076.0,2.8072316407517386 +1077.0,2.8692269058414963 +1078.0,2.405122953582827 +1079.0,3.322429595095337 +1080.0,2.4102499844291954 +1081.0,2.500652026577201 +1082.0,2.692419080989408 +1083.0,2.488457585648998 +1084.0,2.3259800127463057 +1085.0,2.4195161110839627 +1086.0,2.504852802142852 +1087.0,3.585870963868958 +1088.0,3.4053302047542697 +1089.0,3.303289952774155 +1090.0,2.9764993731390814 +1091.0,2.6750292552791426 +1092.0,5.212050981925313 +1093.0,3.516487617423658 +1094.0,4.9964607872135405 +1095.0,3.0991700936785085 +1096.0,2.4948913177160414 +1097.0,4.186397772401567 +1098.0,7.412353664476674 +1099.0,3.132072459097586 +1100.0,2.9338856291801765 +1101.0,3.2992944524473633 +1102.0,3.2130417725916853 +1103.0,4.453480161435581 +1104.0,3.3362012386358115 +1105.0,3.4546370132648514 +1106.0,4.537872317441132 +1107.0,4.460504940432879 +1108.0,4.473139331047811 +1109.0,3.462398853881088 +1110.0,2.43713246235575 +1111.0,3.043587969570588 +1112.0,3.2341707793727332 +1113.0,2.6702187383136278 +1114.0,3.048172763231681 +1115.0,3.2411454532795134 +1116.0,2.4979019979780084 +1117.0,2.3739595563096314 +1118.0,2.4855894255621966 +1119.0,3.0662839745906116 +1120.0,2.375822448040573 +1121.0,2.694778087150924 +1122.0,4.045395586709832 +1123.0,2.4476764885225863 +1124.0,2.9025883350917807 +1125.0,2.3832812464344886 +1126.0,3.3679492089100647 +1127.0,2.3467875803823355 +1128.0,2.788045638191779 +1129.0,2.7452279426598616 +1130.0,2.821585591583597 +1131.0,3.550441047115192 +1132.0,2.351338017218155 +1133.0,2.330421576673727 +1134.0,3.3848821427921743 +1135.0,2.8585421167759195 +1136.0,2.5366707294213136 +1137.0,2.520380777893029 +1138.0,2.4068711593333982 +1139.0,3.0957932775270227 +1140.0,2.6055948189398195 +1141.0,2.4207364540960894 +1142.0,2.881207260270136 +1143.0,2.6230397128366727 +1144.0,2.4763961762275595 +1145.0,2.3069763637151928 +1146.0,2.3052951129912125 +1147.0,3.1969664671797084 +1148.0,2.4394421431977955 +1149.0,2.8985487522067435 +1150.0,3.227779068637551 +1151.0,2.491586235328924 +1152.0,2.719771918211413 +1153.0,2.5127290371993802 +1154.0,2.8990637921498257 +1155.0,2.681126066661009 +1156.0,2.721666203151482 +1157.0,2.339798320824534 +1158.0,2.564986245404726 +1159.0,3.3031424957705378 +1160.0,2.6288515109271025 +1161.0,3.4102818256417695 +1162.0,2.3839503851795003 +1163.0,3.0569034093599368 +1164.0,2.69884026015772 +1165.0,2.6016524870732187 +1166.0,2.4603862115232222 +1167.0,3.2429527702539147 +1168.0,2.3439837319631476 +1169.0,2.7925795069924777 +1170.0,2.3441636378757935 +1171.0,2.4257079325755733 +1172.0,2.306061123741048 +1173.0,2.3942661763988604 +1174.0,3.1110332438705544 +1175.0,3.5633032105675264 +1176.0,2.4996687797683372 +1177.0,2.8477573428841043 +1178.0,3.063109972324358 +1179.0,2.3171790677346595 +1180.0,3.088719480333294 +1181.0,2.3316218100895774 +1182.0,2.358605095388879 +1183.0,3.956307529715189 +1184.0,2.9051494387443597 +1185.0,2.4243502079129557 +1186.0,2.541723801982894 +1187.0,2.418539231604134 +1188.0,3.086183161407522 +1189.0,2.736397359574581 +1190.0,2.385916689834978 +1191.0,2.7978065055698074 +1192.0,2.813104509438897 +1193.0,2.5548765842384467 +1194.0,2.650042022734923 +1195.0,3.6749058507689236 +1196.0,2.6014009196756454 +1197.0,2.989493419572515 +1198.0,3.080507659871449 +1199.0,2.4663915477874983 +1200.0,3.6733857077914625 +1201.0,2.5957700201008382 +1202.0,2.354180460291814 +1203.0,2.7886149487120346 +1204.0,2.7393095331269985 +1205.0,2.3390655298151235 +1206.0,2.4786577798065146 +1207.0,2.3837903492164063 +1208.0,3.421368315595557 +1209.0,2.4205568870550285 +1210.0,2.33038658999894 +1211.0,2.5334557930086867 +1212.0,2.5747462504663985 +1213.0,2.3476400324493056 +1214.0,2.523618094308242 +1215.0,2.3931772552486112 +1216.0,2.7726428524793856 +1217.0,3.152038211935111 +1218.0,2.3116090559655045 +1219.0,2.3941084235579866 +1220.0,2.3417159013162903 +1221.0,2.5852921164597698 +1222.0,2.956454968628739 +1223.0,2.4251604201145605 +1224.0,2.463183588076221 +1225.0,2.9670089756289744 +1226.0,4.356776843738121 +1227.0,2.5260073102005465 +1228.0,2.438015035481558 +1229.0,3.031798885115899 +1230.0,2.6182871551548628 +1231.0,2.864504366535093 +1232.0,2.552954094311488 +1233.0,2.552084401108925 +1234.0,2.3893158812857105 +1235.0,2.4829606272731755 +1236.0,2.716781211380156 +1237.0,3.5919956685073755 +1238.0,2.580580498346963 +1239.0,4.003309458845508 +1240.0,2.9259782801338243 +1241.0,2.306645512745667 +1242.0,2.726254953578823 +1243.0,2.753418561465465 +1244.0,2.5001975506370284 +1245.0,2.3739453199203013 +1246.0,2.5448895756518137 +1247.0,3.228335110940606 +1248.0,3.1548788361945617 +1249.0,3.1008119642054095 +1250.0,2.791528632616261 +1251.0,2.630703601333427 +1252.0,2.3948833308505932 +1253.0,2.4234197996884697 +1254.0,2.690161139089607 +1255.0,2.456307686438504 +1256.0,2.854814576981138 +1257.0,2.52000851744838 +1258.0,2.306785134105971 +1259.0,2.4756774823269487 +1260.0,2.3008550615692296 +1261.0,2.763809266403292 +1262.0,2.624183988761453 +1263.0,2.5030238926633688 +1264.0,2.844388090811296 +1265.0,2.3474331654742047 +1266.0,2.545496132293988 +1267.0,2.7372525287976424 +1268.0,2.4328024850377745 +1269.0,2.5559211369988235 +1270.0,3.0687899917503674 +1271.0,2.3740765456216204 +1272.0,2.5592881312446347 +1273.0,3.976882606045561 +1274.0,2.482775163967934 +1275.0,2.652533694097965 +1276.0,2.344065701313802 +1277.0,2.324658240397434 +1278.0,2.5458290262012198 +1279.0,2.9559287996546137 +1280.0,2.67401357224393 +1281.0,2.6531944003312753 +1282.0,2.5145915976509117 +1283.0,2.553179936698096 +1284.0,2.384176648936498 +1285.0,3.3950226388012865 +1286.0,2.3823365386970665 +1287.0,2.4334903475828766 +1288.0,3.0472145777626927 +1289.0,2.889117910130957 +1290.0,2.867571461993133 +1291.0,2.586556179216902 +1292.0,2.813366784402673 +1293.0,2.914216968536887 +1294.0,3.557964653324088 +1295.0,2.5260416135118304 +1296.0,2.879347786955874 +1297.0,3.11248092236107 +1298.0,4.473979137827293 +1299.0,2.6588101937531508 +1300.0,2.3077177959696407 +1301.0,2.549472520868488 +1302.0,4.010323793396673 +1303.0,2.4673048876856503 +1304.0,3.8287976658443483 +1305.0,2.313571348864978 +1306.0,3.250394302788342 +1307.0,3.24729912329116 +1308.0,2.700186276481683 +1309.0,2.3808897700836527 +1310.0,2.3165801540827773 +1311.0,2.406659515188901 +1312.0,2.5320691163937976 +1313.0,3.3261439982611867 +1314.0,3.541641701931845 +1315.0,2.6732526886714267 +1316.0,2.3556257462181716 +1317.0,2.8070121975122184 +1318.0,2.344997298182429 +1319.0,3.1850365102841787 +1320.0,2.3474889806807506 +1321.0,4.102221557552338 +1322.0,3.6538306185781813 +1323.0,2.64442570482222 +1324.0,2.460770057848093 +1325.0,3.6995937848070324 +1326.0,2.3932927236748394 +1327.0,2.605625260339146 +1328.0,3.0762032919503515 +1329.0,2.5544872860222716 +1330.0,2.410591821506884 +1331.0,2.435936619962968 +1332.0,2.569091325875029 +1333.0,2.3827506876239597 +1334.0,3.4431057478771594 +1335.0,2.6186947486722434 +1336.0,2.693017745127709 +1337.0,2.5538181020159434 +1338.0,2.375673466946426 +1339.0,2.834953596193176 +1340.0,2.3989812424077965 +1341.0,2.523508846526989 +1342.0,2.4265404269666617 +1343.0,2.324169664428985 +1344.0,2.593304706526856 +1345.0,2.844456779816961 +1346.0,2.5368990800449267 +1347.0,3.312183898436566 +1348.0,2.3013346437845974 +1349.0,2.445186448809306 +1350.0,2.5515812626852914 +1351.0,2.4722372290603585 +1352.0,2.670421377174377 +1353.0,2.7231368654892183 +1354.0,2.3170874661274645 +1355.0,2.571364842603479 +1356.0,2.3087488645199072 +1357.0,2.344680540899413 +1358.0,2.3008872689296793 +1359.0,3.475517233138744 +1360.0,2.867151706966758 +1361.0,2.615422249538398 +1362.0,3.2294474801435706 +1363.0,2.5626928859383282 +1364.0,2.3205263166238312 +1365.0,2.598740886188633 +1366.0,4.101755569145607 +1367.0,2.4020409452694462 +1368.0,2.964292308492789 +1369.0,2.7335946933200876 +1370.0,2.3213396256690038 +1371.0,2.5354691597926626 +1372.0,2.4383504696357052 +1373.0,2.6071513426881765 +1374.0,2.6396464758783624 +1375.0,2.658516914858557 +1376.0,3.2633125026664986 +1377.0,2.335455030369948 +1378.0,2.3540733967365366 +1379.0,2.5395859323013714 +1380.0,2.3050692811743154 +1381.0,2.403994109897754 +1382.0,2.549895575630825 +1383.0,2.386603189250067 +1384.0,3.0457519503208217 +1385.0,2.498556058912462 +1386.0,2.9758899629058604 +1387.0,2.3610120963965255 +1388.0,2.4600515825781115 +1389.0,2.325362354403401 +1390.0,2.3802516134761116 +1391.0,2.6343074669883246 +1392.0,2.896309842222236 +1393.0,4.426037943627787 +1394.0,4.157606408608643 +1395.0,2.369154741234547 +1396.0,2.4144773772895047 +1397.0,2.35940228843968 +1398.0,2.622164006860761 +1399.0,3.4788221321792516 +1400.0,3.2560365066621317 +1401.0,2.360208893132736 +1402.0,3.8166655652613777 +1403.0,3.0066059272992147 +1404.0,3.0294924610326373 +1405.0,2.303230388367067 +1406.0,2.690657095328331 +1407.0,3.6100660540083203 +1408.0,2.9075243321860853 +1409.0,2.4016355945077703 +1410.0,2.4624935612077907 +1411.0,2.8635925671520974 +1412.0,2.308332253687416 +1413.0,2.995597547422986 +1414.0,2.3125683222223694 +1415.0,2.6182274192258292 +1416.0,2.482171792025337 +1417.0,2.7089692411648154 +1418.0,2.326675440171574 +1419.0,2.626293179281835 +1420.0,2.3205693017326627 +1421.0,2.3870348265904604 +1422.0,2.5561941133823995 +1423.0,2.337096914441034 +1424.0,2.3244687033557225 +1425.0,2.6867948396855774 +1426.0,2.5777773488917837 +1427.0,3.1303641260685815 +1428.0,3.2616198920615136 +1429.0,2.8181993389266258 +1430.0,2.3605437837990695 +1431.0,2.7405727045641313 +1432.0,2.3396901357805473 +1433.0,2.3655117994295694 +1434.0,4.045350156929015 +1435.0,2.4575636670371868 +1436.0,2.3819848064584876 +1437.0,2.394869110358433 +1438.0,2.6008187669755642 +1439.0,2.6960858264988556 +1440.0,2.4512296916763185 +1441.0,2.319678390046691 +1442.0,2.3210530466471697 +1443.0,2.7926950917963516 +1444.0,3.0108497561221483 +1445.0,2.356691125115569 +1446.0,2.6859503292402076 +1447.0,2.3432636072621063 +1448.0,2.390869231221941 +1449.0,3.0670446261927102 +1450.0,2.3116779564644347 +1451.0,2.4240941706335253 +1452.0,2.32243088169508 +1453.0,2.615414095903806 +1454.0,2.305015500585334 +1455.0,2.5133279732186335 +1456.0,2.4788828425565455 +1457.0,2.3427695428969013 +1458.0,2.3461895008532467 +1459.0,2.4365728823602764 +1460.0,2.322729692389302 +1461.0,2.411074104586798 +1462.0,3.0230952207175017 +1463.0,2.394833519133044 +1464.0,2.7173900542096012 +1465.0,3.102498481294871 +1466.0,2.774479647354302 +1467.0,2.402422934346252 +1468.0,2.8937699952301883 +1469.0,2.3471483789786864 +1470.0,2.565936074148077 +1471.0,2.426676354367805 +1472.0,2.386677879563175 +1473.0,3.439522031780184 +1474.0,2.370648442534497 +1475.0,2.3834525928095167 +1476.0,2.3405306629698126 +1477.0,2.5495779287673073 +1478.0,2.402709321923605 +1479.0,3.373499248212979 +1480.0,3.0099586519922266 +1481.0,2.3892668524506964 +1482.0,2.453417347591647 +1483.0,2.3510259830286797 +1484.0,3.155116291800874 +1485.0,2.464831607401343 +1486.0,2.6212165660045468 +1487.0,3.083104870636542 +1488.0,3.048894938077283 +1489.0,3.0152040788519288 +1490.0,2.351764458537456 +1491.0,2.840112580548371 +1492.0,2.8506340017497793 +1493.0,2.458671897783069 +1494.0,2.640743023745022 +1495.0,2.318727114471818 +1496.0,2.350513943431202 +1497.0,2.404144346149921 +1498.0,2.838697189074544 +1499.0,2.4578361077397046 +1500.0,2.361785851398965 +1501.0,2.7454319718982902 +1502.0,3.4028222834348982 +1503.0,2.8043833737032204 +1504.0,3.551179821036123 +1505.0,2.459403197969823 +1506.0,2.686176445345951 +1507.0,2.328337325640425 +1508.0,2.577705924446841 +1509.0,2.5424612207248547 +1510.0,2.4940583624825927 +1511.0,2.374739036570095 +1512.0,2.612904515409344 +1513.0,2.335682864574069 +1514.0,2.7289373853377348 +1515.0,2.7409116857230327 +1516.0,2.432328604112489 +1517.0,3.0895151973624113 +1518.0,2.857596678626802 +1519.0,2.473692044877306 +1520.0,3.0642025275817577 +1521.0,2.304927394968103 +1522.0,2.464469664009681 +1523.0,2.9227970175847973 +1524.0,2.3300279166870856 +1525.0,2.369521498329518 +1526.0,2.5966133688579935 +1527.0,2.8428757491842584 +1528.0,2.5053282203044787 +1529.0,2.448361321971065 +1530.0,3.325481802243858 +1531.0,3.519173001435493 +1532.0,2.319970454059593 +1533.0,3.1380441158682184 +1534.0,2.892662907494262 +1535.0,2.729478742157873 +1536.0,2.400693913816039 +1537.0,2.976345088259801 +1538.0,3.5935179235834704 +1539.0,3.781498498837662 +1540.0,3.9838931833438296 +1541.0,4.735345100404848 +1542.0,4.974059264784408 +1543.0,3.778039329072344 +1544.0,5.461826268508927 +1545.0,3.754434748422698 +1546.0,4.152542552429 +1547.0,3.7939590904756777 +1548.0,3.351313318866055 +1549.0,3.2433576315940003 +1550.0,4.057061821043292 +1551.0,4.483061003084964 +1552.0,4.824297387694249 +1553.0,5.77424681472096 +1554.0,3.474896214773174 +1555.0,2.7682060030472218 +1556.0,3.921972719856737 +1557.0,3.385914325542781 +1558.0,4.266988461526047 +1559.0,2.5182142560490934 +1560.0,4.42299367197519 +1561.0,3.409448172575587 +1562.0,3.1295457185258977 +1563.0,2.7598809119065635 +1564.0,3.1912172373444503 +1565.0,3.078437984485989 +1566.0,2.900864651349851 +1567.0,2.8189722160963258 +1568.0,2.4326106246212778 +1569.0,2.416238743679629 +1570.0,2.4321628412751073 +1571.0,2.736983156921012 +1572.0,2.7224805869128996 +1573.0,2.412674035047518 +1574.0,2.4566933096088097 +1575.0,2.3508380221151115 +1576.0,3.178312770075494 +1577.0,2.5635281807997257 +1578.0,3.815592738794292 +1579.0,2.3444196226895575 +1580.0,2.592040957773646 +1581.0,2.7498720496039244 +1582.0,2.3843411372578496 +1583.0,2.8470995361025384 +1584.0,2.6436125790065947 +1585.0,2.5541472633889413 +1586.0,2.8481646529125175 +1587.0,4.042446314239886 +1588.0,2.5478921496990963 +1589.0,3.0114665805465677 +1590.0,3.057432623247634 +1591.0,3.0345638233740515 +1592.0,2.466818261698087 +1593.0,2.3120064507182074 +1594.0,2.56425971850958 +1595.0,2.3505193638239614 +1596.0,2.6091993140135523 +1597.0,2.5360206173644326 +1598.0,2.62991025956799 +1599.0,2.342651751649487 +1600.0,2.453168342221517 +1601.0,3.1370692832205296 +1602.0,2.3783379376782148 +1603.0,2.449533541582288 +1604.0,2.479854156481199 +1605.0,3.8952409894303663 +1606.0,2.704289635339635 +1607.0,2.4062850553851387 +1608.0,2.613856599577105 +1609.0,2.4097669605758845 +1610.0,2.6392261480411037 +1611.0,3.250824455516422 +1612.0,3.164410748454682 +1613.0,2.3267671132405945 +1614.0,2.5052184376426663 +1615.0,2.4538948497408333 +1616.0,2.861913862448421 +1617.0,2.453123624394587 +1618.0,3.357017234432379 +1619.0,2.3940496403562945 +1620.0,3.273641513138682 +1621.0,3.7715400664051604 +1622.0,2.5350563486257363 +1623.0,2.8750853062872834 +1624.0,2.333944098748361 +1625.0,3.293536483404875 +1626.0,2.6219886219312363 +1627.0,2.5874615748722065 +1628.0,2.7044492555153337 +1629.0,2.701046738925862 +1630.0,3.2211180745982952 +1631.0,3.3490662763081107 +1632.0,2.880972954023365 +1633.0,3.002425124233602 +1634.0,2.7612805307237607 +1635.0,2.416958217905172 +1636.0,2.321301479589559 +1637.0,2.3262208151842927 +1638.0,2.6654255952022465 +1639.0,3.1211841864394527 +1640.0,2.482927547425382 +1641.0,2.410442879165564 +1642.0,3.768934554706221 +1643.0,2.337672078237899 +1644.0,2.4292046035212156 +1645.0,2.439659519655888 +1646.0,2.4262407378050646 +1647.0,2.8235926184195614 +1648.0,2.356544269834559 +1649.0,2.3320021564498328 +1650.0,3.0954458052501423 +1651.0,2.7652134887469546 +1652.0,2.3656005089578693 +1653.0,2.836461451895741 +1654.0,2.3339115142235274 +1655.0,3.1345719320541505 +1656.0,2.6087233365375138 +1657.0,2.6439758139624665 +1658.0,2.5195794749030878 +1659.0,2.5554964475825805 +1660.0,2.433674359336909 +1661.0,2.8501672366773123 +1662.0,2.5555581790339708 +1663.0,2.950736088741769 +1664.0,2.6401163910212295 +1665.0,3.7354355685645 +1666.0,2.3273255400920054 +1667.0,2.9245229495029923 +1668.0,2.5543713817523743 +1669.0,2.520041108014967 +1670.0,2.7169003307816064 +1671.0,2.565348643815835 +1672.0,2.5765416850736997 +1673.0,2.3101390992403137 +1674.0,2.435802608786329 +1675.0,3.1681689039738146 +1676.0,2.7811919835950447 +1677.0,2.7931416833570846 +1678.0,2.8635109727562997 +1679.0,3.163954078315875 +1680.0,2.95840688758861 +1681.0,2.3830513989792417 +1682.0,2.349276956207731 +1683.0,3.3927083532232754 +1684.0,2.37982788398862 +1685.0,2.829894091711795 +1686.0,2.5096703011488035 +1687.0,3.6531963486272145 +1688.0,2.985918502156176 +1689.0,2.9526396677310918 +1690.0,2.6149523218534365 +1691.0,2.621089099211538 +1692.0,2.8376654255854503 +1693.0,2.6697913644895928 +1694.0,3.2731996624345157 +1695.0,2.3594368139050634 +1696.0,2.522620538492857 +1697.0,2.495811905736297 +1698.0,2.32324018179046 +1699.0,2.695820383423477 +1700.0,2.8439874664644864 +1701.0,2.6694788205594526 +1702.0,2.382022407066961 +1703.0,2.631236965375115 +1704.0,2.393007651242479 +1705.0,2.4910036436602185 +1706.0,2.316105641468346 +1707.0,2.617391506615006 +1708.0,2.504174731966338 +1709.0,2.6200611511419196 +1710.0,2.4760328121401063 +1711.0,2.8405464505424627 +1712.0,3.545274981253768 +1713.0,2.3349238693665173 +1714.0,2.7206368046831004 +1715.0,2.7966371899534006 +1716.0,2.603567995587738 +1717.0,2.8135481955830017 +1718.0,2.44322365311171 +1719.0,2.3900753860395283 +1720.0,2.492285957063401 +1721.0,2.4913434990557604 +1722.0,2.944248698975926 +1723.0,2.5629408803250646 +1724.0,2.39969124568546 +1725.0,2.914242575392421 +1726.0,2.933089954250282 +1727.0,2.6162545386479947 +1728.0,2.5001210937105864 +1729.0,2.325405171913506 +1730.0,2.6195218042645014 +1731.0,2.3607678858470926 +1732.0,3.113469442203199 +1733.0,2.3491064668602446 +1734.0,2.36662615228764 +1735.0,2.52815178757471 +1736.0,2.4379406248134026 +1737.0,2.5606829909150894 +1738.0,2.3442448589368836 +1739.0,2.481162687670846 +1740.0,2.525843200545779 +1741.0,2.3519146778154423 +1742.0,3.5371802884417916 +1743.0,2.344891451350134 +1744.0,2.597581589497531 +1745.0,2.6487190924326827 +1746.0,2.333883080301378 +1747.0,2.968296627911834 +1748.0,3.4742332219091256 +1749.0,2.4065720961566206 +1750.0,2.385486575203744 +1751.0,2.594165323564871 +1752.0,2.407958145444391 +1753.0,2.339581796001663 +1754.0,4.051943015224509 +1755.0,2.4357994909809713 +1756.0,2.3297678598473235 +1757.0,2.668577518862985 +1758.0,2.3370299328250552 +1759.0,2.5658336502393078 +1760.0,4.541419101435023 +1761.0,3.3322064694181988 +1762.0,2.4214009502304163 +1763.0,2.4947493041629683 +1764.0,2.3773464032161837 +1765.0,2.496410900780209 +1766.0,2.6355467439832814 +1767.0,2.459406763788693 +1768.0,2.988926103258458 +1769.0,2.632398313924149 +1770.0,2.8115616982594 +1771.0,2.52910903306041 +1772.0,2.5873353947857187 +1773.0,2.7299691926162275 +1774.0,2.5091464527005605 +1775.0,2.6495745584148818 +1776.0,2.4988813831593744 +1777.0,2.3354600143582016 +1778.0,2.685643064721932 +1779.0,2.5812126113422056 +1780.0,2.4698901635787966 +1781.0,2.30186871048556 +1782.0,2.7611447841112566 +1783.0,2.3723934843112806 +1784.0,2.6075821123412366 +1785.0,2.3926750702702275 +1786.0,2.8433123759962218 +1787.0,3.2485493170220376 +1788.0,2.8858374081669025 +1789.0,2.371166838830076 +1790.0,2.8633800179019357 +1791.0,2.3876621234229436 +1792.0,2.3544057714691844 +1793.0,2.4434832584647466 +1794.0,2.6885541967200046 +1795.0,2.4616566594970686 +1796.0,2.3790270223368273 +1797.0,2.315959013607699 +1798.0,2.4281775056155874 +1799.0,2.456236915955481 +1800.0,2.8260158281805605 +1801.0,2.706647082120246 +1802.0,2.32765985258802 +1803.0,2.579699527879403 +1804.0,2.7280005172721067 +1805.0,2.3205683484999624 +1806.0,2.4104431384968987 +1807.0,2.3563265440060577 +1808.0,2.576355042555904 +1809.0,2.6351400545140216 +1810.0,2.5290630394875016 +1811.0,2.4634271789290776 +1812.0,3.0828609856961933 +1813.0,2.5774278319325727 +1814.0,4.436679821118284 +1815.0,2.3214560550377823 +1816.0,2.8596832063179987 +1817.0,2.690979261050107 +1818.0,2.521020937039459 +1819.0,2.6393235264252213 +1820.0,3.247735029839418 +1821.0,2.409342277376337 +1822.0,2.859025739568838 +1823.0,2.7112658965299783 +1824.0,2.3701530089859992 +1825.0,2.3114250231255298 +1826.0,2.506080015708395 +1827.0,2.6612087417852006 +1828.0,2.464566897403679 +1829.0,2.4825020728987175 +1830.0,4.238176133960039 +1831.0,2.368590466963495 +1832.0,2.7529514509942348 +1833.0,3.192300179165831 +1834.0,2.3211494089543883 +1835.0,2.757665998252457 +1836.0,3.358791907232331 +1837.0,2.5914859508252213 +1838.0,2.399665066228752 +1839.0,4.515343037412145 +1840.0,2.9383379193844705 +1841.0,2.3763930017480326 +1842.0,2.6679505197101374 +1843.0,2.522716402437252 +1844.0,2.4673639435015104 +1845.0,2.428832731149525 +1846.0,3.3274145053508732 +1847.0,2.83679434281154 +1848.0,3.5616325376179505 +1849.0,2.7796881061511223 +1850.0,2.616158764636454 +1851.0,2.325644716276088 +1852.0,2.3978071752211227 +1853.0,2.5579308795114386 +1854.0,2.47416637507364 +1855.0,2.953563152576457 +1856.0,2.7670532378321746 +1857.0,3.2649656155657962 +1858.0,2.5376596044492974 +1859.0,2.4839786678624423 +1860.0,2.539969209247289 +1861.0,3.1565222229112933 +1862.0,2.3507357338949877 +1863.0,2.951189608387257 +1864.0,2.4169478278883028 +1865.0,3.3552933531905955 +1866.0,2.446096992762245 +1867.0,2.3195719366371033 +1868.0,2.4830500877617827 +1869.0,2.839178593605223 +1870.0,2.3259913678587925 +1871.0,2.4976058436782558 +1872.0,2.462990539657702 +1873.0,2.364918320426543 +1874.0,2.310480298780067 +1875.0,2.80827595251563 +1876.0,2.687314647657145 +1877.0,3.4870366628788014 +1878.0,3.2170035106376704 +1879.0,2.3754781487324483 +1880.0,2.95797243793186 +1881.0,2.9890802770072327 +1882.0,2.4309745814394463 +1883.0,4.17012652209006 +1884.0,2.8292450822851745 +1885.0,2.386687544020703 +1886.0,2.30070167160927 +1887.0,3.259914491374122 +1888.0,2.4978900308057805 +1889.0,2.465241382994952 +1890.0,2.7874210303721263 +1891.0,2.598625710222856 +1892.0,2.531459517426847 +1893.0,3.7681098536007367 +1894.0,2.4788577240046483 +1895.0,5.107048908025701 +1896.0,2.8666192202658296 +1897.0,2.4150116281899465 +1898.0,2.632872120076335 +1899.0,2.3478290536269166 +1900.0,3.6340778358952557 +1901.0,2.86316095711587 +1902.0,3.309520871969747 +1903.0,2.5301230969534934 +1904.0,2.6565874942634142 +1905.0,3.6155620339664236 +1906.0,2.3563603404668094 +1907.0,2.345775247843463 +1908.0,2.3788034240585203 +1909.0,2.755530657494569 +1910.0,2.427237653925673 +1911.0,3.037621313515758 +1912.0,2.347993497123691 +1913.0,2.8057308806308496 +1914.0,2.5324076219326246 +1915.0,2.4182317878443826 +1916.0,2.424214531948923 +1917.0,2.3203058927306124 +1918.0,2.8149717148026743 +1919.0,2.8591054830139693 +1920.0,2.858286890037719 +1921.0,5.100394934444504 +1922.0,2.782274130765515 +1923.0,2.357864866972905 +1924.0,3.80770423157284 +1925.0,2.4471604461198577 +1926.0,2.3708035057452843 +1927.0,2.4047168441303874 +1928.0,2.8035512508917937 +1929.0,2.416576327343143 +1930.0,2.3045594732668353 +1931.0,2.5391397225833146 +1932.0,3.1963408114372953 +1933.0,2.3500372066094912 +1934.0,2.4341457010842977 +1935.0,3.4316232904654944 +1936.0,2.7448320974797307 +1937.0,2.513706610057527 +1938.0,2.464462025351471 +1939.0,3.0031377325448196 +1940.0,2.431534191020859 +1941.0,2.475344772833931 +1942.0,2.4680801895839544 +1943.0,2.366317039703054 +1944.0,2.6200274103288224 +1945.0,2.795758313191287 +1946.0,2.609297079273623 +1947.0,3.5378601988216305 +1948.0,2.9702786224408295 +1949.0,2.4680474892420654 +1950.0,2.632153475290438 +1951.0,2.5572395739497096 +1952.0,2.680802180257415 +1953.0,2.418074745270441 +1954.0,2.3827615400889215 +1955.0,2.615822120399419 +1956.0,3.008215172495299 +1957.0,3.1701636480442597 +1958.0,2.3488508829851233 +1959.0,2.313537856747177 +1960.0,2.8102063643761115 +1961.0,2.5352845002688693 +1962.0,2.50502180426056 +1963.0,2.406220002479574 +1964.0,2.3283420142676916 +1965.0,2.6326432046756114 +1966.0,2.5598056701509235 +1967.0,2.5312527276167187 +1968.0,3.677583308327888 +1969.0,2.5782445116232595 +1970.0,2.413220418583665 +1971.0,2.8076205200399524 +1972.0,2.604710207125755 +1973.0,2.465705623026264 +1974.0,2.4455789505335597 +1975.0,2.467583298639201 +1976.0,3.004328772688614 +1977.0,2.394722153367992 +1978.0,2.824125404911753 +1979.0,2.373746552491327 +1980.0,2.3627317577332105 +1981.0,3.6400799394359975 +1982.0,3.1525470002630245 +1983.0,2.826696422302307 +1984.0,2.529681526413544 +1985.0,3.843309618916277 +1986.0,3.815408521221653 +1987.0,3.4905357591519617 +1988.0,3.0223597637166737 +1989.0,4.073763015902088 +1990.0,2.887990130571813 +1991.0,3.7486094899837132 +1992.0,5.4938686942660775 +1993.0,2.640775438969525 +1994.0,3.1554702253120563 +1995.0,3.7767088863793106 +1996.0,3.486215337041578 +1997.0,2.651524654236778 +1998.0,3.3422285593554664 +1999.0,3.837046097670769 +2000.0,3.3270254692652346 +2001.0,4.498118482386208 +2002.0,3.324323756301143 +2003.0,3.0506730910821376 +2004.0,4.036770374750892 +2005.0,5.484997511972588 +2006.0,2.9687374925242938 +2007.0,3.2795427781330697 +2008.0,2.868436778837026 +2009.0,2.7097470999343964 +2010.0,4.521192469917275 +2011.0,2.4417883797991644 +2012.0,2.652173595685389 +2013.0,3.052104534264178 +2014.0,3.8446927238644277 +2015.0,5.807950340009047 +2016.0,4.596260679886525 +2017.0,2.4048516113427603 +2018.0,2.315219088496189 +2019.0,2.3155705344750923 +2020.0,2.307241502506059 +2021.0,3.2625105511625336 +2022.0,2.3226049936585054 +2023.0,2.3561478085861167 +2024.0,2.764762997702744 +2025.0,2.693188527049518 +2026.0,2.409277589781889 +2027.0,2.8341734753434036 +2028.0,3.4222295853315385 +2029.0,2.695495373688201 +2030.0,2.3641384620311654 +2031.0,2.7499835740227443 +2032.0,3.172918440271554 +2033.0,2.4592434150575966 +2034.0,2.3350868298030676 +2035.0,2.316662483664321 +2036.0,2.865840578723799 +2037.0,2.8831090719242454 +2038.0,3.2945649687190555 +2039.0,2.903740694916059 +2040.0,2.609754836659288 +2041.0,3.2029686865331497 +2042.0,2.3972049846184786 +2043.0,2.478078527053132 +2044.0,2.9722266491293015 +2045.0,2.4915948508329935 +2046.0,2.96887189901492 +2047.0,2.7672509258369202 +2048.0,2.3259336192531563 +2049.0,2.3988330740403927 +2050.0,2.5908663924539677 +2051.0,2.780222844234938 +2052.0,2.3255060940044183 +2053.0,2.4465541418086643 +2054.0,2.8160400629683013 +2055.0,2.4307232865912645 +2056.0,3.104242612869545 +2057.0,2.580504822020443 +2058.0,2.691307519729066 +2059.0,2.7278533691881384 +2060.0,2.9618548031104126 +2061.0,2.396110195613657 +2062.0,2.3405092251145962 +2063.0,2.3605884811946805 +2064.0,2.6154872994284304 +2065.0,2.7851624131159074 +2066.0,2.378950710799271 +2067.0,3.5734708884637074 +2068.0,2.5707449744983624 +2069.0,3.1152605706038594 +2070.0,2.6408443368872248 +2071.0,3.173692041304334 +2072.0,2.970707918414127 +2073.0,2.4826945044416546 +2074.0,2.6403238683506816 +2075.0,2.6230827868954645 +2076.0,2.4690421329222945 +2077.0,2.3310659215480882 +2078.0,2.392368394239348 +2079.0,2.705262372440843 +2080.0,3.2095537009858877 +2081.0,2.633718847238876 +2082.0,3.0171953131125253 +2083.0,2.9677345809973916 +2084.0,2.527716169619815 +2085.0,2.349789982873471 +2086.0,2.4399056807358086 +2087.0,2.63892958550048 +2088.0,2.5048134339541925 +2089.0,2.8292749226742497 +2090.0,2.773888110115558 +2091.0,2.459119815778415 +2092.0,3.0773413056247945 +2093.0,2.348176361453801 +2094.0,2.7970200449796456 +2095.0,4.725896067978503 +2096.0,3.1290021352240283 +2097.0,2.4688184578748684 +2098.0,2.3239584634664903 +2099.0,2.4405577987675597 +2100.0,3.417352121041674 +2101.0,2.4033677015989876 +2102.0,2.627953871748865 +2103.0,3.2010481371960333 +2104.0,2.509322981997601 +2105.0,2.3017745449897635 +2106.0,2.680132144486367 +2107.0,2.347462373809364 +2108.0,2.7127635927381224 +2109.0,2.482094204229693 +2110.0,2.4930450872137575 +2111.0,2.556801816993118 +2112.0,2.5479909319495104 +2113.0,2.3409137630553842 +2114.0,2.657679037609465 +2115.0,2.3297217514976976 +2116.0,2.6005223164975635 +2117.0,2.439682891123339 +2118.0,2.542417504888632 +2119.0,2.309391536225505 +2120.0,2.3914830476494875 +2121.0,2.3188907135147367 +2122.0,2.4669270160334675 +2123.0,2.7556190399511022 +2124.0,2.3450943734041396 +2125.0,2.696527911209168 +2126.0,2.3578739497995027 +2127.0,2.642750254535542 +2128.0,4.229743741145981 +2129.0,2.773925010796206 +2130.0,3.258680929937392 +2131.0,3.0329606054622995 +2132.0,2.3166179796585573 +2133.0,2.5836511309825223 +2134.0,3.420081640771529 +2135.0,2.3485219151220074 +2136.0,2.41016366097931 +2137.0,2.4094324662105784 +2138.0,2.3136908095171194 +2139.0,2.5255839592394236 +2140.0,3.9132587667627994 +2141.0,2.4705776165455573 +2142.0,2.3509556639428135 +2143.0,2.361613985041817 +2144.0,2.4200561192817713 +2145.0,2.3578089425102475 +2146.0,2.3006323108444913 +2147.0,2.3752713250199404 +2148.0,2.7168927196234973 +2149.0,3.3650304989773803 +2150.0,3.3081620372723917 +2151.0,3.5297823743083354 +2152.0,2.694231371832632 +2153.0,2.664359870249158 +2154.0,2.7853160804536206 +2155.0,2.300745864477453 +2156.0,2.552734791449228 +2157.0,2.5211515241988924 +2158.0,2.362404736614354 +2159.0,2.9412715464912513 +2160.0,2.690486126911434 +2161.0,2.7516668983107406 +2162.0,2.3061095870738444 +2163.0,2.3405825722457316 +2164.0,2.4456107539294765 +2165.0,2.5498518568068147 +2166.0,2.7423200233472325 +2167.0,2.600555434925342 +2168.0,2.3666938158276345 +2169.0,2.6561860021880754 +2170.0,2.333334929206761 +2171.0,3.2248397168046634 +2172.0,2.782702835134969 +2173.0,2.7749983636441002 +2174.0,2.3860653889012697 +2175.0,2.7976813320534792 +2176.0,2.4449501706663135 +2177.0,2.3703999518282193 +2178.0,2.324338879420182 +2179.0,2.3177533660297867 +2180.0,2.731355805839021 +2181.0,2.8430749996680165 +2182.0,2.3855972125499108 +2183.0,2.554693173471668 +2184.0,2.3312666497425867 +2185.0,2.32989422810977 +2186.0,2.7846617540350374 +2187.0,2.5221243410856653 +2188.0,2.5144005763621875 +2189.0,2.3893001404521024 +2190.0,2.7183410032035966 +2191.0,2.3659475936437975 +2192.0,2.528449302644319 +2193.0,2.4314091875729766 +2194.0,2.3411444613558166 +2195.0,2.348183748469264 +2196.0,2.512138925718535 +2197.0,3.3216232332200573 +2198.0,2.9528514395566 +2199.0,2.847887425116538 diff --git a/tests/fixtures/catalogs/case_030_quiet_then_active_2200d.csv b/tests/fixtures/catalogs/case_030_quiet_then_active_2200d.csv new file mode 100644 index 0000000..6b23cfd --- /dev/null +++ b/tests/fixtures/catalogs/case_030_quiet_then_active_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.379172726824978 +1.0,2.49545635664287 +2.0,2.428406431140379 +3.0,2.581369229067944 +4.0,2.6621442486480045 +5.0,2.528660212553573 +6.0,2.521783014318677 +7.0,2.342186465096859 +8.0,2.811320137721477 +9.0,2.3782951593608166 +10.0,2.657290633774248 +11.0,2.510761061437446 +12.0,2.8057317938326247 +13.0,2.467923809125652 +14.0,2.339229623417647 +15.0,3.1316041998108504 +16.0,2.476484290359269 +17.0,2.6124206627181166 +18.0,2.521162349377647 +19.0,2.332431069265572 +20.0,2.345220935407716 +21.0,2.306757268534715 +22.0,2.5273710785489585 +23.0,2.3884276205466493 +24.0,2.390565131356604 +25.0,3.3537332083106435 +26.0,3.179543763448871 +27.0,2.312365597811635 +28.0,2.341376238869159 +29.0,3.3053408752199056 +30.0,2.977742434051321 +31.0,2.318540464832244 +32.0,2.7930744785436032 +33.0,2.60665058462022 +34.0,2.8550507082556673 +35.0,2.427548995977899 +36.0,2.320192674438962 +37.0,2.4787409256078354 +38.0,2.317858929885125 +39.0,2.689312754596912 +40.0,2.301539967371485 +41.0,2.3518354698693766 +42.0,2.31277977366787 +43.0,2.7473022379450174 +44.0,2.458540990308276 +45.0,2.8413585375230497 +46.0,2.699763957189016 +47.0,3.331050697612498 +48.0,2.375876408423854 +49.0,2.541533750202359 +50.0,3.4772196459032765 +51.0,2.7306290623545464 +52.0,2.762749322282501 +53.0,2.3629370975815616 +54.0,2.306713195349082 +55.0,2.7526031775771207 +56.0,2.635580314843529 +57.0,2.3333125541497495 +58.0,2.4691224210065648 +59.0,2.315004049805463 +60.0,2.547171450972053 +61.0,2.30338366318981 +62.0,2.324466112018318 +63.0,3.473773546678424 +64.0,2.5630428066312096 +65.0,2.750045628583297 +66.0,2.546663057565427 +67.0,2.3110567795829704 +68.0,2.5807003827220076 +69.0,2.3588252372013887 +70.0,2.416684909151478 +71.0,2.3853995569948014 +72.0,2.544956524720884 +73.0,2.3914031916477203 +74.0,2.4990260061740934 +75.0,2.337460056003474 +76.0,2.6438685991467565 +77.0,2.309137530771428 +78.0,2.3561779791577546 +79.0,2.665065873354787 +80.0,2.4599394821319094 +81.0,2.334236496265566 +82.0,2.595699385486336 +83.0,3.203732276220472 +84.0,2.3550836895988017 +85.0,2.35429577344153 +86.0,2.317657134228482 +87.0,2.7068778624080925 +88.0,2.559861183602707 +89.0,2.748459315461167 +90.0,2.425081703367547 +91.0,3.062218717266444 +92.0,2.616927694460583 +93.0,2.707078838341245 +94.0,2.402454486801033 +95.0,2.3093193567681496 +96.0,2.888419008108718 +97.0,2.453880325146194 +98.0,2.6028417758539852 +99.0,2.403648525964789 +100.0,2.501029646910843 +101.0,2.5996747573773864 +102.0,2.321088110751859 +103.0,2.648081029647217 +104.0,2.715471060808127 +105.0,2.3992798793499035 +106.0,2.600492697730341 +107.0,2.357267741349865 +108.0,2.4067152456042527 +109.0,2.3389853523993835 +110.0,2.889783519971598 +111.0,2.4098380711354945 +112.0,3.4083099257349865 +113.0,2.4143370603287755 +114.0,2.479644647223442 +115.0,2.306758207710146 +116.0,2.5981036246722384 +117.0,2.337076450188638 +118.0,2.7042160090862484 +119.0,2.36912433344879 +120.0,2.418233794212865 +121.0,2.3339220066431827 +122.0,2.928269960047974 +123.0,2.3055503378984534 +124.0,2.9884755756819246 +125.0,2.5645491962418516 +126.0,2.3575665066277014 +127.0,2.7389453909350285 +128.0,2.7612219255611223 +129.0,3.124722773506927 +130.0,2.419465509958195 +131.0,2.667361586582321 +132.0,2.758009439126224 +133.0,2.38146336464264 +134.0,2.7293361354768124 +135.0,2.6361461455961193 +136.0,2.663071954442243 +137.0,2.3128943084770004 +138.0,2.7334010429854323 +139.0,2.3008356964996457 +140.0,2.373989482553473 +141.0,2.4297994472302222 +142.0,2.317237900566905 +143.0,3.3685720419164378 +144.0,2.352281439935357 +145.0,3.2719300510113554 +146.0,2.438093649387416 +147.0,2.846050945578539 +148.0,2.3460498706680264 +149.0,2.5123895557428364 +150.0,2.6811663310405303 +151.0,2.8930741239339794 +152.0,3.1898483823919994 +153.0,2.408005490632567 +154.0,2.6772755628983314 +155.0,2.757629140019521 +156.0,2.3051653419792193 +157.0,2.4111074603889073 +158.0,2.549088000734075 +159.0,2.794695897189123 +160.0,2.369074440014118 +161.0,2.596087911644097 +162.0,2.6716934853155716 +163.0,2.4959952199373703 +164.0,2.5191394165505008 +165.0,2.6413783727821154 +166.0,2.5396018041393513 +167.0,2.3037690607739783 +168.0,2.487432547475253 +169.0,3.138881200404831 +170.0,2.7222224275018547 +171.0,2.839710867588992 +172.0,2.620038229510715 +173.0,2.484308477017818 +174.0,2.7034325228078164 +175.0,2.580093142778031 +176.0,2.9786799045458268 +177.0,2.480943359221271 +178.0,2.3857751608358395 +179.0,2.393621480074252 +180.0,2.303906845343673 +181.0,2.5410975875197592 +182.0,2.787954921890282 +183.0,3.3427757727773217 +184.0,2.3190088480038025 +185.0,2.3165689613896108 +186.0,2.5110817109815757 +187.0,2.5191288002291494 +188.0,2.3096965040071944 +189.0,2.481459291909988 +190.0,2.3214946312835534 +191.0,2.4384167919688022 +192.0,2.383859017352993 +193.0,2.3723670792164757 +194.0,2.590425725897513 +195.0,3.5448638358815643 +196.0,2.464797094363504 +197.0,2.3387733375849282 +198.0,2.3801342634390936 +199.0,2.5091699305701862 +200.0,2.489255266731889 +201.0,2.4775416018283853 +202.0,2.683147963264037 +203.0,2.343865630395638 +204.0,2.634171994517525 +205.0,3.664821460994078 +206.0,2.5157250661329287 +207.0,2.534657987736558 +208.0,2.30512500229769 +209.0,3.5689214698427554 +210.0,2.513831192994551 +211.0,2.526258624518271 +212.0,2.4183023129495846 +213.0,2.448814981244328 +214.0,2.615729237260826 +215.0,2.7857054887954416 +216.0,3.0674764304546907 +217.0,2.6107482326039215 +218.0,2.484368379131422 +219.0,2.71083922853521 +220.0,2.529694429319137 +221.0,2.7716729084187035 +222.0,2.738227466182333 +223.0,2.867901819643048 +224.0,2.4314413470768943 +225.0,2.3514315982885274 +226.0,2.678045733645477 +227.0,2.4124333394575923 +228.0,2.70035826527514 +229.0,3.0124721700956654 +230.0,3.068360864502055 +231.0,2.6224946027031772 +232.0,2.30360496943727 +233.0,2.3373646054870805 +234.0,2.3724251887856442 +235.0,2.6234264120490662 +236.0,3.275114459219461 +237.0,2.4631875892454045 +238.0,2.3643550570243668 +239.0,2.3826822981432216 +240.0,2.3052213546691567 +241.0,2.3189340611235796 +242.0,2.894735407415884 +243.0,2.78746080362634 +244.0,2.858403494329428 +245.0,2.539495590849891 +246.0,2.9536671720152925 +247.0,2.4760332047417024 +248.0,2.550986007855134 +249.0,2.7411475850602565 +250.0,2.3619502804934083 +251.0,2.8813060488976454 +252.0,2.409436425087274 +253.0,2.5318468754942214 +254.0,2.4854971541296034 +255.0,2.3977889886948676 +256.0,2.30134013144744 +257.0,2.367988596495565 +258.0,2.5587139150348284 +259.0,2.3188210770535336 +260.0,2.534882105323282 +261.0,2.56512767910655 +262.0,2.5436623716743054 +263.0,2.3489064981630863 +264.0,2.7070243971646115 +265.0,2.363156959249978 +266.0,2.303917741718408 +267.0,2.545783710664387 +268.0,2.7511481405828846 +269.0,2.402772981745192 +270.0,2.483683313216028 +271.0,2.443282535805614 +272.0,2.866315531045943 +273.0,2.473661209636381 +274.0,2.9449059350950173 +275.0,2.4335778325782074 +276.0,3.075231650579373 +277.0,2.413687653579172 +278.0,2.450442163812125 +279.0,2.599353558389639 +280.0,2.454412581254221 +281.0,2.977118366016886 +282.0,2.5573473154848503 +283.0,2.67948557931119 +284.0,2.9472140302351515 +285.0,2.956987573134003 +286.0,2.5229003010618123 +287.0,2.4655444605941783 +288.0,2.8571046721093367 +289.0,2.6668792438177937 +290.0,2.9112674799262868 +291.0,2.794686794247542 +292.0,2.880840146695475 +293.0,2.450280841103858 +294.0,2.318198052406687 +295.0,2.9051004230146398 +296.0,2.5554429769622065 +297.0,2.7676036391627763 +298.0,2.5608309235382727 +299.0,2.3178409302084577 +300.0,2.4417381081996017 +301.0,2.3356529459621025 +302.0,2.5187652692049554 +303.0,2.3343444254048533 +304.0,2.9770263712262244 +305.0,2.59255712148123 +306.0,2.664020243401523 +307.0,2.31408679939597 +308.0,2.607525942486978 +309.0,2.4267300557452427 +310.0,2.4810420764580328 +311.0,3.255691017885615 +312.0,2.327764165308458 +313.0,2.3959238843603585 +314.0,2.80854558611448 +315.0,2.8072938636853455 +316.0,2.726101352382523 +317.0,2.9543553477408553 +318.0,2.6606691878140603 +319.0,2.365167916531787 +320.0,2.506275321366643 +321.0,3.2078026302915346 +322.0,2.716030556772744 +323.0,2.3323040092480363 +324.0,2.4056175022281514 +325.0,2.4342231700374826 +326.0,2.3451481097388744 +327.0,2.548860496488805 +328.0,2.7872692917605892 +329.0,2.404166200230922 +330.0,2.3930669123401356 +331.0,2.306342551650336 +332.0,2.3718635812844697 +333.0,2.448748665344559 +334.0,2.3990913599812482 +335.0,3.239595283470203 +336.0,2.5253371365285844 +337.0,2.6710322710396923 +338.0,2.396015806280224 +339.0,2.4940280242410426 +340.0,2.3451108357589647 +341.0,2.363240288273213 +342.0,2.499094856055667 +343.0,2.48249464861947 +344.0,2.494431076153532 +345.0,2.7809093816262496 +346.0,2.341076882948006 +347.0,2.333871429041056 +348.0,2.5968313045268117 +349.0,2.331654380788544 +350.0,2.500390423743805 +351.0,2.8601362152496703 +352.0,2.3382602452449333 +353.0,2.4458958614822524 +354.0,2.74001866030571 +355.0,2.3032080705447697 +356.0,2.3519824263097404 +357.0,2.678990443453996 +358.0,2.365960745167829 +359.0,2.377227388605422 +360.0,2.610024750748175 +361.0,2.830698075793934 +362.0,2.521348452298042 +363.0,2.966123969189649 +364.0,2.731513996503451 +365.0,2.4319325057902446 +366.0,2.391957493568329 +367.0,4.124717981328974 +368.0,2.3152485163959406 +369.0,2.48451622051704 +370.0,2.8366004843403774 +371.0,2.3780320508759947 +372.0,2.4386858897940002 +373.0,2.4965699337087752 +374.0,2.6183499992894523 +375.0,2.4511539066581545 +376.0,2.337460830430822 +377.0,3.1817017102143583 +378.0,2.7380811680083927 +379.0,2.5461175524013826 +380.0,2.511692596894383 +381.0,2.3356686752774176 +382.0,2.4766498704687043 +383.0,3.1658403351822924 +384.0,2.4151332480955965 +385.0,2.454574165473653 +386.0,2.530165541390223 +387.0,2.392809364884497 +388.0,2.4449363880140162 +389.0,2.5124965653450966 +390.0,2.8150383248194153 +391.0,2.456487728578469 +392.0,2.3111365544190394 +393.0,2.458439571556195 +394.0,2.4887287532018334 +395.0,2.5111283097562778 +396.0,2.4059630569845964 +397.0,2.4713503530731615 +398.0,2.804065651389557 +399.0,2.33230707167798 +400.0,2.5352341515460854 +401.0,2.4979895620429358 +402.0,2.5769970628082994 +403.0,2.629590987251917 +404.0,2.33806058204435 +405.0,2.310990434379504 +406.0,2.763515289192359 +407.0,2.5083856747521853 +408.0,2.698831766323512 +409.0,2.3303129745618483 +410.0,2.314790427257722 +411.0,2.3946646301694696 +412.0,2.4080389494381147 +413.0,2.398931398280888 +414.0,2.797511137744013 +415.0,2.47777552694928 +416.0,2.6897944048818627 +417.0,2.34478456791147 +418.0,2.6208891650071813 +419.0,2.729988682160926 +420.0,2.378570688794564 +421.0,3.0946539878579236 +422.0,2.5842037512319824 +423.0,2.555058777724331 +424.0,2.5246372414893132 +425.0,2.4599040359563737 +426.0,2.4903798107213997 +427.0,2.3695122789442657 +428.0,2.648439569297237 +429.0,2.407289984371153 +430.0,2.46710866502041 +431.0,2.4640833196136143 +432.0,2.4662694951010717 +433.0,2.3842017412315757 +434.0,2.6060229771436587 +435.0,2.5242979149920286 +436.0,2.53245155440726 +437.0,2.73650718518227 +438.0,2.542652882272419 +439.0,2.7197395082814078 +440.0,3.0089171495746188 +441.0,2.300424998278777 +442.0,2.4625375436312753 +443.0,2.6478111708100354 +444.0,2.6474401755277057 +445.0,2.365719344774864 +446.0,2.5705749284474084 +447.0,2.3296224073453233 +448.0,2.7998443351594613 +449.0,2.458110434007291 +450.0,2.723635739470531 +451.0,2.4846401623434753 +452.0,2.7622392802202587 +453.0,2.999813651647518 +454.0,2.766594529770569 +455.0,2.71742029301445 +456.0,2.3169185594946935 +457.0,2.386117145922503 +458.0,2.7172933049979684 +459.0,2.634682059232695 +460.0,2.3192797728680623 +461.0,2.9192688239086424 +462.0,2.624164324791749 +463.0,2.3620029839022267 +464.0,2.411536114416758 +465.0,2.62872824768383 +466.0,2.960336373655142 +467.0,2.651609303996341 +468.0,2.312051355507573 +469.0,2.401140079946518 +470.0,2.3270567149625423 +471.0,2.591770101118661 +472.0,2.811191749926641 +473.0,2.5095002594443687 +474.0,2.637228275359688 +475.0,2.3325480538764167 +476.0,2.3207417502231142 +477.0,2.538886237675639 +478.0,3.0427216751952173 +479.0,2.382985006176616 +480.0,2.753006417213019 +481.0,2.3050489853466876 +482.0,2.5456683450525945 +483.0,2.587614294805981 +484.0,2.3234263871706764 +485.0,2.7167136141235444 +486.0,2.7216799843323165 +487.0,2.469319246596022 +488.0,2.3930499817552073 +489.0,2.437696380219169 +490.0,2.3501277002389833 +491.0,2.3083717371621253 +492.0,2.468810787157722 +493.0,3.0306773756844216 +494.0,2.9749065237490524 +495.0,2.4716257061521043 +496.0,2.3447599678915676 +497.0,2.5348862728853745 +498.0,2.379863912232891 +499.0,2.469260482606875 +500.0,2.7938319957253084 +501.0,2.6118716029630566 +502.0,2.445745327724367 +503.0,2.476633185161073 +504.0,2.5061562186139636 +505.0,2.3951977230474326 +506.0,2.635037312317917 +507.0,2.505198418989269 +508.0,2.3128883430311657 +509.0,2.32689426633427 +510.0,2.5750269130163157 +511.0,2.3080868613535253 +512.0,2.9200888222801678 +513.0,2.4374696911829603 +514.0,2.3344028752373864 +515.0,2.310792454763167 +516.0,2.4125006113643166 +517.0,2.374001334764714 +518.0,2.664839768391582 +519.0,3.3036328810198263 +520.0,2.7193004369410416 +521.0,2.9830238911927043 +522.0,2.5665506546864663 +523.0,3.0507588856199055 +524.0,2.8603388303878763 +525.0,2.591646838139974 +526.0,3.019229562826314 +527.0,3.0150813258744167 +528.0,2.3674717755503036 +529.0,3.863164812063754 +530.0,2.459306382249485 +531.0,3.096562436208531 +532.0,2.4430391061905468 +533.0,2.682509324676201 +534.0,2.4967776703246876 +535.0,2.322990760250083 +536.0,2.334829165486985 +537.0,2.354176266905135 +538.0,2.326047284709642 +539.0,2.8319142781798474 +540.0,2.459994914815374 +541.0,2.6043615945759924 +542.0,2.365958090535973 +543.0,2.8849725575441463 +544.0,2.8000914123280984 +545.0,2.5994877201653943 +546.0,2.658192319437954 +547.0,2.780485798004424 +548.0,2.3082966424472966 +549.0,2.658425460539679 +550.0,2.4973076419990594 +551.0,2.4329180479036907 +552.0,2.483942363383026 +553.0,2.5935487219090496 +554.0,2.7878168511125048 +555.0,2.4504595950239003 +556.0,2.3132679235034925 +557.0,2.4563273103384407 +558.0,2.47428280981284 +559.0,2.5417381761548747 +560.0,2.3610373450181816 +561.0,2.5444291876808545 +562.0,2.3115487958083825 +563.0,2.342172917286854 +564.0,2.5396171420131495 +565.0,2.3624566113784113 +566.0,2.459475769457906 +567.0,2.3046426304495284 +568.0,2.303764150083403 +569.0,2.5589485894204937 +570.0,2.5349777410492855 +571.0,3.160484260726124 +572.0,2.391723563687683 +573.0,2.5477506485690546 +574.0,2.3299150739745556 +575.0,2.309488569249951 +576.0,2.33134409536194 +577.0,3.154922920534757 +578.0,2.616012401694712 +579.0,2.5744712321286425 +580.0,2.7464570615784436 +581.0,2.511662396594452 +582.0,2.311970140111976 +583.0,2.80444337716939 +584.0,2.3404230867546687 +585.0,2.518657714881357 +586.0,2.444229683995087 +587.0,2.986579085076545 +588.0,2.600339414632342 +589.0,3.5247774111572836 +590.0,2.339558829118538 +591.0,2.303588812299699 +592.0,2.57615665682314 +593.0,3.0426883397817677 +594.0,2.326830767567483 +595.0,2.383579049043683 +596.0,2.363180517258806 +597.0,2.7817373681399347 +598.0,3.274183886284759 +599.0,2.390191145438789 +600.0,2.48800423224214 +601.0,2.3317549335624457 +602.0,2.989305548079419 +603.0,2.4325476124694454 +604.0,2.432977252043917 +605.0,2.3526159191427394 +606.0,2.5351768684630986 +607.0,2.4804234215457734 +608.0,2.6074267888405114 +609.0,2.6966379319391045 +610.0,2.6426687605483417 +611.0,2.4150818746461686 +612.0,2.7012331096793663 +613.0,2.3652748049909 +614.0,2.5270887837345453 +615.0,2.3605972342879395 +616.0,2.3343698923127514 +617.0,2.6202945127957165 +618.0,2.897340224694353 +619.0,2.588726073517984 +620.0,2.4366792501301884 +621.0,2.3861570057571875 +622.0,2.8691480543088903 +623.0,2.306130974938455 +624.0,2.3771747260550082 +625.0,2.577306387844044 +626.0,2.569462637313294 +627.0,2.72136135842483 +628.0,2.3545411622696073 +629.0,2.463374323860352 +630.0,2.9603515117460977 +631.0,2.4270400475608014 +632.0,2.5942761932637604 +633.0,2.635071970997276 +634.0,2.339031646756941 +635.0,2.5652074775650244 +636.0,2.6228307171224396 +637.0,2.4292883082603067 +638.0,2.304882779236268 +639.0,2.342538224728623 +640.0,2.373259271129918 +641.0,2.342170335891997 +642.0,2.432339091981504 +643.0,2.4574310196462243 +644.0,2.35326030424144 +645.0,2.9644085148620265 +646.0,2.4572810711670385 +647.0,2.4175879821453736 +648.0,3.034930160723686 +649.0,2.4278111661925528 +650.0,2.5342604270487765 +651.0,2.6788329809362397 +652.0,3.250277216870857 +653.0,2.327733727135725 +654.0,2.3865510042192746 +655.0,2.3315972754315504 +656.0,2.7267551265381385 +657.0,3.0778895228306826 +658.0,2.6747456911186847 +659.0,2.303764437047435 +660.0,2.4707173764843096 +661.0,2.476450192779459 +662.0,2.3217561431481957 +663.0,3.146918259931831 +664.0,2.4149265172316556 +665.0,2.5381503704671537 +666.0,2.8574307683164952 +667.0,2.3855174110236037 +668.0,2.3819768201514133 +669.0,2.7516619237881574 +670.0,2.3777571148322076 +671.0,2.5333575456081046 +672.0,2.3354304413061264 +673.0,2.5262473230355127 +674.0,2.435487489287685 +675.0,2.3436617580601746 +676.0,2.773762654350193 +677.0,2.6483009870582865 +678.0,2.3848364777533355 +679.0,2.3340627769556477 +680.0,2.3229739879293843 +681.0,2.6082633508763857 +682.0,2.6735313794019446 +683.0,2.3186581011054246 +684.0,2.5812313410330185 +685.0,2.348544471971805 +686.0,2.3509513924546694 +687.0,2.4119631063922076 +688.0,2.442429222140106 +689.0,2.6018687351411223 +690.0,2.3873078305422064 +691.0,2.6119470964905322 +692.0,2.3732565888730917 +693.0,2.7402275578142627 +694.0,2.480483222171123 +695.0,3.2564210321224007 +696.0,2.303796839976535 +697.0,3.3789816403986768 +698.0,2.477833271327215 +699.0,3.180068794759738 +700.0,2.5295015254546565 +701.0,3.64637456742265 +702.0,2.6100578850769525 +703.0,2.347350325676938 +704.0,2.388225070427688 +705.0,2.392980690932245 +706.0,2.3330565255026126 +707.0,2.3946189849324355 +708.0,2.9317908865614117 +709.0,2.3886372868721146 +710.0,2.465282153897512 +711.0,2.409565349676804 +712.0,2.328152679243022 +713.0,2.5612098543835544 +714.0,2.457756550820084 +715.0,2.607797650838465 +716.0,2.3238739810076834 +717.0,2.3048293604941232 +718.0,2.3132761453691355 +719.0,2.5397657806527145 +720.0,2.678915582026256 +721.0,2.5494001594005247 +722.0,2.420261330689577 +723.0,2.338692713164345 +724.0,2.3255989269235937 +725.0,2.7841267351409 +726.0,2.363797758420042 +727.0,2.7730846494580876 +728.0,2.5754068739702562 +729.0,2.3724201313254203 +730.0,2.6021117065717805 +731.0,2.4407731129388757 +732.0,2.3669814614137734 +733.0,2.5793631015644856 +734.0,2.358356984359335 +735.0,2.501741799887285 +736.0,2.344917123606486 +737.0,2.6793812828046755 +738.0,2.4910502185702956 +739.0,2.3693625701141605 +740.0,2.3313907352520293 +741.0,2.9150834084975656 +742.0,2.4566056177258404 +743.0,2.328564486634651 +744.0,2.986948767085277 +745.0,2.7670174539440358 +746.0,2.379469246399907 +747.0,2.354186347823889 +748.0,3.352795444985231 +749.0,2.311187202989967 +750.0,2.534217061102485 +751.0,2.408021077602389 +752.0,2.5326668017424003 +753.0,2.8200043472443763 +754.0,2.3946924807267482 +755.0,2.5255922969632487 +756.0,2.484899928154214 +757.0,2.8482786058841603 +758.0,2.630913365361994 +759.0,2.567220474488159 +760.0,3.0941317771053494 +761.0,2.6009664839722597 +762.0,2.433042535434988 +763.0,2.54150403401583 +764.0,2.6761272601009893 +765.0,2.310664003065138 +766.0,2.306480524965864 +767.0,2.6957107527474715 +768.0,2.4870498726409442 +769.0,2.4663368300908726 +770.0,2.6486758355368725 +771.0,2.3760737657381354 +772.0,2.352656545470597 +773.0,2.3979188661452997 +774.0,2.6779090609710843 +775.0,2.796721008492109 +776.0,2.3225105095006904 +777.0,3.354358066708861 +778.0,2.722189046130961 +779.0,2.402881954965119 +780.0,2.32917581375915 +781.0,2.33792575127491 +782.0,2.3535363107228235 +783.0,2.327849246807698 +784.0,2.4366780313434537 +785.0,2.3450844127165777 +786.0,2.3603570887617775 +787.0,3.02378589871782 +788.0,2.5323046579965194 +789.0,2.562834509449034 +790.0,2.326856404041508 +791.0,2.5203676863817006 +792.0,2.456462327813393 +793.0,2.7932062539022118 +794.0,2.8471792836473835 +795.0,2.4261994886418505 +796.0,2.409630454061241 +797.0,2.3503994626168576 +798.0,2.3681933187452384 +799.0,3.734326479292712 +800.0,2.3077627719656544 +801.0,3.021989553203609 +802.0,3.693662157146759 +803.0,2.685388603200588 +804.0,2.4073987072746807 +805.0,2.575372176029325 +806.0,2.3248340075951273 +807.0,2.4570333553800374 +808.0,2.5828698655807516 +809.0,2.7248351946221163 +810.0,2.3262174549963617 +811.0,2.9416548271402534 +812.0,2.8157729426454003 +813.0,2.8271343258361687 +814.0,2.5713065599591594 +815.0,2.392332688606719 +816.0,2.3939569681184034 +817.0,2.9152067127552925 +818.0,2.637774468909157 +819.0,2.4556906397256806 +820.0,2.3977568251168973 +821.0,2.3143676055160127 +822.0,2.6170410862601536 +823.0,2.3263509009768346 +824.0,2.709369696731773 +825.0,2.691691450747208 +826.0,2.892079437548898 +827.0,2.718727083931973 +828.0,2.5403162800629473 +829.0,2.6168592230113084 +830.0,2.34086474428053 +831.0,2.508692464540723 +832.0,2.4877773734100828 +833.0,2.3639153261218877 +834.0,3.466073964407353 +835.0,2.4973564503586885 +836.0,2.424648393702491 +837.0,3.8241109412988514 +838.0,2.647620450563063 +839.0,2.494606278523574 +840.0,2.30133094325991 +841.0,2.4815030502588176 +842.0,2.6755681859000906 +843.0,2.5617863587028022 +844.0,2.3154684608228258 +845.0,2.5279259502622686 +846.0,2.9017630802773198 +847.0,2.6980667334212733 +848.0,2.731884350519002 +849.0,2.981487948262307 +850.0,2.531633069042755 +851.0,2.4191249999618156 +852.0,2.379709086224052 +853.0,2.4245097152763884 +854.0,3.2167262988590477 +855.0,3.2567973308624185 +856.0,2.6615682411284816 +857.0,2.3313434545152862 +858.0,2.497065437607665 +859.0,2.3406343426750453 +860.0,2.581717681061693 +861.0,3.2867607632632194 +862.0,2.4813306170570377 +863.0,2.9644837650919955 +864.0,3.025880861596539 +865.0,2.3446996568443774 +866.0,2.540488868823331 +867.0,2.3061185246535776 +868.0,2.5879308438299478 +869.0,2.3873167631419707 +870.0,2.5339083450030033 +871.0,2.3454942449100673 +872.0,2.4905355353501255 +873.0,2.408791781348754 +874.0,2.5744449634676534 +875.0,2.452719496824921 +876.0,2.3925192722522177 +877.0,2.305857261141754 +878.0,2.325822479143317 +879.0,2.4833584144817675 +880.0,2.520076819606721 +881.0,3.1156782468060653 +882.0,2.48885584163301 +883.0,2.312217136480829 +884.0,2.4880968987814924 +885.0,2.646798736664605 +886.0,2.657924563846607 +887.0,2.374074091988023 +888.0,2.353306145384687 +889.0,3.306980255502748 +890.0,2.5948035472563085 +891.0,2.8531158692482883 +892.0,3.0543779278623533 +893.0,2.5953456648486157 +894.0,3.2768151149030706 +895.0,2.332267644916332 +896.0,2.3082342148033312 +897.0,2.3575056398466945 +898.0,3.7477930175425014 +899.0,2.40518580079325 +900.0,2.43537694702868 +901.0,2.6668859068546347 +902.0,2.5903078869385037 +903.0,2.30135830378256 +904.0,2.4621325863428116 +905.0,2.5954845372545456 +906.0,2.5986666142489194 +907.0,2.6648473557043153 +908.0,2.691999193121058 +909.0,2.563653541597826 +910.0,3.0412915833743055 +911.0,2.4790412807751743 +912.0,2.5094022794475763 +913.0,2.539585432288956 +914.0,2.890909932547897 +915.0,2.4119411699864437 +916.0,2.5067928662842696 +917.0,2.4049577071114543 +918.0,2.4167675470857706 +919.0,2.5749032861229235 +920.0,2.5004105327993313 +921.0,2.4512608784583136 +922.0,2.636164174772577 +923.0,2.4359796862824705 +924.0,2.419035104106638 +925.0,2.3452882517414473 +926.0,3.1059519178685995 +927.0,3.3172015565048714 +928.0,2.3838849329088565 +929.0,2.99262541680572 +930.0,2.5176576130408033 +931.0,2.592460587496813 +932.0,2.4343682185040936 +933.0,2.4134593779384086 +934.0,3.921635859403822 +935.0,2.5376543114519796 +936.0,2.4963399748882886 +937.0,2.7624715142898655 +938.0,2.5462246122149144 +939.0,2.408208723575061 +940.0,2.686594416991588 +941.0,2.6818584796664866 +942.0,2.3803630952334607 +943.0,2.8370825850172183 +944.0,2.352986949330768 +945.0,2.4031544560533953 +946.0,2.3525652020873116 +947.0,2.876847467731734 +948.0,2.32425165240696 +949.0,2.5050965691010902 +950.0,2.865765479210012 +951.0,2.3306206411613015 +952.0,2.3899732812107963 +953.0,3.0723942767379806 +954.0,2.944051272563746 +955.0,2.314494698831841 +956.0,2.629048551259557 +957.0,2.4810617293925894 +958.0,2.5599560716678025 +959.0,2.6617567135405147 +960.0,2.9102696815471605 +961.0,2.329990079621227 +962.0,2.583636067784431 +963.0,2.6576613744882676 +964.0,2.480313618892102 +965.0,2.406285761500477 +966.0,2.40027541516908 +967.0,2.3475899770055415 +968.0,3.5523678248086776 +969.0,2.3431264149638418 +970.0,2.837805756964349 +971.0,2.4692175384192376 +972.0,3.291085760734002 +973.0,2.516848289128398 +974.0,2.6188415208850935 +975.0,2.5136989780316554 +976.0,2.4303383050509053 +977.0,2.8406432724738857 +978.0,2.420353929815052 +979.0,2.3268522362384507 +980.0,2.4199934057385146 +981.0,2.392817063488737 +982.0,2.353889537045919 +983.0,2.3175901427431698 +984.0,2.514513274816838 +985.0,2.372646395458263 +986.0,2.4406454442382675 +987.0,2.4816858324032243 +988.0,2.982753110174153 +989.0,2.5016509316286113 +990.0,2.5900750837127555 +991.0,2.4045740430642786 +992.0,2.356811786321305 +993.0,2.8233525632150984 +994.0,2.5761092617020465 +995.0,2.511340098059846 +996.0,3.1104024033316025 +997.0,2.303926403976067 +998.0,2.4241713866416084 +999.0,2.5887181072846173 +1000.0,2.7010410057334395 +1001.0,2.510196087392328 +1002.0,2.4930604695505796 +1003.0,2.398007489188712 +1004.0,2.930083082163055 +1005.0,2.4429113496405805 +1006.0,2.3212842976009562 +1007.0,2.4939652441184905 +1008.0,2.4092727721098313 +1009.0,2.3871951658031088 +1010.0,3.7535124003393836 +1011.0,2.792176391394631 +1012.0,2.509357848568487 +1013.0,2.403352925626775 +1014.0,2.5232374762266776 +1015.0,2.4048399969884833 +1016.0,2.6833837303122845 +1017.0,2.3273576348028624 +1018.0,2.579105370412126 +1019.0,2.4783766460060295 +1020.0,2.730679782155291 +1021.0,2.312290778937249 +1022.0,2.4932139787016387 +1023.0,2.8578229407273343 +1024.0,2.3815395455084887 +1025.0,3.054770473320804 +1026.0,2.757077913182089 +1027.0,2.56671522770761 +1028.0,2.3831176789767485 +1029.0,2.3204688469206878 +1030.0,3.523593872250002 +1031.0,2.446878770873563 +1032.0,2.3499395999429513 +1033.0,2.577872381663501 +1034.0,2.3282909900672966 +1035.0,2.563143823039416 +1036.0,2.4886326709168665 +1037.0,2.8559360631932766 +1038.0,2.932398655266125 +1039.0,2.3855041099804994 +1040.0,2.4635989518309005 +1041.0,2.5737732053521762 +1042.0,2.6079734869728295 +1043.0,2.348811410461199 +1044.0,2.3397433732032917 +1045.0,2.5265555997304765 +1046.0,2.645984236224882 +1047.0,2.3412263764346535 +1048.0,2.443845921494392 +1049.0,2.5896792912441136 +1050.0,2.4760052887300135 +1051.0,2.4287687494366215 +1052.0,2.632014062766539 +1053.0,2.425979877837277 +1054.0,2.5782984936628632 +1055.0,2.5798881021060875 +1056.0,2.8857495775146065 +1057.0,2.3253843413224735 +1058.0,2.389991047308305 +1059.0,2.850221853011534 +1060.0,2.414256630954881 +1061.0,2.3666376953779023 +1062.0,2.43054867532176 +1063.0,2.3485380633090993 +1064.0,2.9926308117035663 +1065.0,2.967754434626912 +1066.0,2.8753076006040583 +1067.0,2.6492392697546943 +1068.0,2.6411123379397954 +1069.0,2.3195378599561587 +1070.0,2.399643877412096 +1071.0,2.4135291234848353 +1072.0,2.460007211369164 +1073.0,2.496823150207015 +1074.0,2.6639384520461244 +1075.0,2.6413566828167316 +1076.0,2.305110574192723 +1077.0,2.8628870272247715 +1078.0,2.4193240056414824 +1079.0,2.346799535586693 +1080.0,2.331577677019308 +1081.0,2.3087187195323713 +1082.0,2.5025921705918215 +1083.0,2.8877030979961145 +1084.0,2.527737631345133 +1085.0,2.4128568678412132 +1086.0,2.328390928080317 +1087.0,2.699536437661522 +1088.0,2.564586437233075 +1089.0,2.307450978703687 +1090.0,2.5250791453515844 +1091.0,2.427186143747224 +1092.0,2.927653587561376 +1093.0,2.476262426902897 +1094.0,2.7082557475679674 +1095.0,2.4092048270700057 +1096.0,2.419476313653756 +1097.0,2.5518328687397505 +1098.0,2.6031544977407237 +1099.0,2.4847101519525996 +1100.0,2.3037744743866946 +1101.0,2.942039976136704 +1102.0,2.422405315241461 +1103.0,2.4272742018828026 +1104.0,3.1897784415444805 +1105.0,2.530758563460657 +1106.0,2.396969544564408 +1107.0,2.3092906056684552 +1108.0,2.3783268984427415 +1109.0,2.312699166515911 +1110.0,2.4497253419913485 +1111.0,2.469501256452105 +1112.0,2.3737396764341585 +1113.0,3.0277908049525193 +1114.0,2.314253203676273 +1115.0,2.38195260269729 +1116.0,3.826997697647297 +1117.0,2.321484633209825 +1118.0,2.740123798648693 +1119.0,2.6258599218897176 +1120.0,2.648299620578014 +1121.0,2.8249325852452687 +1122.0,2.30258164912213 +1123.0,2.328680926566083 +1124.0,2.550263710000027 +1125.0,2.4838501449633306 +1126.0,2.405249222077914 +1127.0,2.8888117859942404 +1128.0,2.4353753476340674 +1129.0,2.3694917381464506 +1130.0,2.3016610504658472 +1131.0,2.3177225890448847 +1132.0,2.362490979903724 +1133.0,2.839070418666167 +1134.0,2.5903231346900553 +1135.0,2.3188187703595884 +1136.0,2.714216344344184 +1137.0,2.427566118834334 +1138.0,2.5162239873826486 +1139.0,2.303614915265078 +1140.0,2.3295461974533964 +1141.0,2.9197228143940963 +1142.0,2.371524467054924 +1143.0,3.117819558707882 +1144.0,2.3227468941365723 +1145.0,3.1827134275287583 +1146.0,3.3480411313982508 +1147.0,2.4630575124031555 +1148.0,2.5217285589326472 +1149.0,2.3356300494766713 +1150.0,3.085448352392532 +1151.0,2.649617300235101 +1152.0,2.3150077018225805 +1153.0,2.3883666571065048 +1154.0,2.4693892531486448 +1155.0,2.5534044402256573 +1156.0,2.586817428984411 +1157.0,2.347482513224583 +1158.0,2.469766892831942 +1159.0,2.3327543701245395 +1160.0,2.537195124341249 +1161.0,2.307611662481306 +1162.0,2.388245707743494 +1163.0,2.3013442132025466 +1164.0,2.401886053841136 +1165.0,2.3037661794713116 +1166.0,2.507706902050617 +1167.0,2.826821293741464 +1168.0,2.7223656862511993 +1169.0,2.3973316544334082 +1170.0,2.482556319999609 +1171.0,2.3766447840581266 +1172.0,2.3151030611558774 +1173.0,2.332241611633392 +1174.0,2.398273663347651 +1175.0,2.8505099833704373 +1176.0,3.251481626712619 +1177.0,2.4095951620365006 +1178.0,2.4275080792964845 +1179.0,2.519773462452177 +1180.0,2.512692054931786 +1181.0,2.9303278061459923 +1182.0,2.7504510614130537 +1183.0,2.494904549086701 +1184.0,2.945975216261094 +1185.0,2.445824134206732 +1186.0,2.439126385519068 +1187.0,2.5268763254912874 +1188.0,2.487852406950068 +1189.0,2.4914077794244087 +1190.0,2.5232670234689807 +1191.0,2.4529236595966397 +1192.0,2.381229736745462 +1193.0,2.3222292792011974 +1194.0,2.3096056164060492 +1195.0,2.5387600602275597 +1196.0,2.6134936971221667 +1197.0,2.8318500795599553 +1198.0,2.411950125662482 +1199.0,2.4059516999740285 +1200.0,3.513114370853768 +1201.0,2.329143865581173 +1202.0,3.0790620066529932 +1203.0,2.341261773765166 +1204.0,2.655913267303199 +1205.0,2.5151369583540615 +1206.0,3.398028134825475 +1207.0,2.368000205742535 +1208.0,2.690635659292122 +1209.0,2.3259748788057104 +1210.0,2.6654652425089655 +1211.0,3.51507861504035 +1212.0,2.6373626470793594 +1213.0,3.670954939101632 +1214.0,2.449150763419112 +1215.0,2.3576853393359167 +1216.0,2.6400917582388166 +1217.0,2.5047662356821374 +1218.0,2.325778790000709 +1219.0,2.3474276506402347 +1220.0,2.35303339497836 +1221.0,2.348152620097491 +1222.0,2.5453531339061777 +1223.0,2.9543341315265046 +1224.0,2.497402579485218 +1225.0,2.4962529343318747 +1226.0,3.625766118116403 +1227.0,2.5282110697329085 +1228.0,2.5631969178504526 +1229.0,2.4131003820587305 +1230.0,2.6278791834763457 +1231.0,2.7328929640455057 +1232.0,2.4773475448948936 +1233.0,2.4541360612991685 +1234.0,2.3676003786104216 +1235.0,2.5168536190892707 +1236.0,2.415351783514286 +1237.0,2.5032780427223784 +1238.0,2.559858690290985 +1239.0,2.318500046548007 +1240.0,2.3475631115394875 +1241.0,2.3558406134899648 +1242.0,2.382147289621334 +1243.0,2.5207433956262824 +1244.0,2.837166559182452 +1245.0,2.677170352504788 +1246.0,2.560274343392044 +1247.0,2.6073299474476226 +1248.0,2.407106631694101 +1249.0,2.598942159683016 +1250.0,2.311091480260694 +1251.0,2.6465764447276188 +1252.0,2.7213230181692807 +1253.0,2.3637414957683553 +1254.0,2.9630890815654016 +1255.0,2.5645359596117467 +1256.0,2.549091164511512 +1257.0,2.420166559764183 +1258.0,2.3139671913323507 +1259.0,2.732058239720736 +1260.0,2.3792762543395027 +1261.0,2.495040520726178 +1262.0,2.4733981264716003 +1263.0,3.397124518694925 +1264.0,2.3312980297361294 +1265.0,2.3423660454906465 +1266.0,2.963532369689424 +1267.0,2.3531537707334147 +1268.0,2.35300748336513 +1269.0,3.8660031651168403 +1270.0,2.8403671723982025 +1271.0,2.392860091664731 +1272.0,2.442599532542223 +1273.0,2.409918683002998 +1274.0,2.3698794947104505 +1275.0,2.354195559406833 +1276.0,2.407916416087361 +1277.0,2.362939268340643 +1278.0,2.6192348279834796 +1279.0,2.380217948749532 +1280.0,3.0246962805344766 +1281.0,2.444997542361179 +1282.0,2.328891927211555 +1283.0,2.80492321863509 +1284.0,2.6297883359510266 +1285.0,3.040181171912255 +1286.0,3.2077000675667824 +1287.0,2.7710667100805693 +1288.0,2.3035676113335195 +1289.0,2.511872445783144 +1290.0,2.716697648786238 +1291.0,2.478481172121417 +1292.0,2.591096497016778 +1293.0,2.391550459979585 +1294.0,3.106996084058075 +1295.0,2.371255203344133 +1296.0,2.501272903143144 +1297.0,2.472985475822605 +1298.0,2.5366853741423685 +1299.0,2.404013386923876 +1300.0,2.3276135480540923 +1301.0,2.560046406768434 +1302.0,2.34895983119642 +1303.0,3.438822321543139 +1304.0,2.42039280774325 +1305.0,2.329618179852786 +1306.0,2.7470709682379733 +1307.0,2.502132572136822 +1308.0,2.4858586714323936 +1309.0,2.449421173409922 +1310.0,2.3307896695739245 +1311.0,3.24734926617282 +1312.0,2.5468563026236257 +1313.0,2.4930019090262587 +1314.0,2.357447704404306 +1315.0,2.6075815676835234 +1316.0,2.6237017019169566 +1317.0,2.6355192245612833 +1318.0,2.3880792067920056 +1319.0,2.3335598383430685 +1320.0,2.329192449136556 +1321.0,2.345376850922114 +1322.0,2.465026142252655 +1323.0,2.346531078638542 +1324.0,2.3644194711809066 +1325.0,2.455272154491085 +1326.0,2.3683589547373445 +1327.0,2.3837808594102166 +1328.0,2.9257111726942506 +1329.0,3.6832265395048323 +1330.0,2.518804051178449 +1331.0,2.5306097054940757 +1332.0,2.6520967433100537 +1333.0,2.998939456037537 +1334.0,2.5605674625835113 +1335.0,2.560253991109356 +1336.0,2.7808935016396963 +1337.0,2.825178892809875 +1338.0,2.675178516094502 +1339.0,2.5989728596045962 +1340.0,2.407188269966565 +1341.0,3.0010944984422747 +1342.0,2.4774419368654113 +1343.0,2.605681194796784 +1344.0,2.5456268223675647 +1345.0,2.9818404251395165 +1346.0,2.455005140803679 +1347.0,2.669003092152529 +1348.0,2.3180811936065027 +1349.0,2.6609603757940836 +1350.0,2.360684936781483 +1351.0,2.304104933639516 +1352.0,2.8024213934123234 +1353.0,2.981755318664422 +1354.0,2.512724518993483 +1355.0,2.8086750375755596 +1356.0,2.3882816655851036 +1357.0,3.0567241530109626 +1358.0,2.3586112560555494 +1359.0,2.52691249136056 +1360.0,2.8037298259178636 +1361.0,2.6331092278072363 +1362.0,2.429818094960939 +1363.0,2.4068899555267245 +1364.0,2.6713570339570882 +1365.0,2.43615480500127 +1366.0,2.5347218637228472 +1367.0,2.314338631230304 +1368.0,2.5925604596623817 +1369.0,2.3689777642270635 +1370.0,2.7580167446166746 +1371.0,2.33601313838789 +1372.0,2.3937036810058894 +1373.0,3.231334075817424 +1374.0,2.458902656226157 +1375.0,2.698901413978887 +1376.0,2.3164742370687206 +1377.0,2.455579858474522 +1378.0,2.4494200522287626 +1379.0,3.041647893117427 +1380.0,2.4214842266663776 +1381.0,2.8478809286928577 +1382.0,2.315437469181133 +1383.0,2.462119584424469 +1384.0,2.4485300902205926 +1385.0,2.853826093856716 +1386.0,3.1132961694152024 +1387.0,2.7810383757167005 +1388.0,2.4237870610541012 +1389.0,2.7468634415510076 +1390.0,2.3172963015997223 +1391.0,3.0556272761732135 +1392.0,2.4903284480901684 +1393.0,2.3105161265299503 +1394.0,2.5652826856603204 +1395.0,2.638629374927616 +1396.0,2.7672815142949436 +1397.0,2.459610982262935 +1398.0,2.3105498975431153 +1399.0,2.326415746366208 +1400.0,3.788256283423742 +1401.0,3.1661478420335425 +1402.0,2.553233030445102 +1403.0,2.378721232459635 +1404.0,2.375115358285701 +1405.0,2.343446628315357 +1406.0,2.3762736473359714 +1407.0,2.657809878919133 +1408.0,2.576235359453537 +1409.0,2.3167134449086872 +1410.0,2.4376505755383255 +1411.0,3.2994628112291347 +1412.0,3.3358820648966905 +1413.0,2.413491088368589 +1414.0,2.3745711136401897 +1415.0,2.885870674195856 +1416.0,2.362746888503881 +1417.0,2.5261829269144154 +1418.0,2.398443338516681 +1419.0,3.1401707523864184 +1420.0,2.357190488991158 +1421.0,2.308053206051143 +1422.0,2.401700602466684 +1423.0,2.3576644582471378 +1424.0,2.5939203131607753 +1425.0,3.526484999157285 +1426.0,2.7946973786536953 +1427.0,3.0607944500903055 +1428.0,2.7599014660472085 +1429.0,2.991653956814439 +1430.0,2.3010558102017975 +1431.0,2.622693114014404 +1432.0,2.6661762140661796 +1433.0,2.96585832460865 +1434.0,2.5869041974938862 +1435.0,2.445317954948187 +1436.0,2.9611757992928167 +1437.0,2.5068340211702473 +1438.0,2.325123808280111 +1439.0,2.3644088425181025 +1440.0,2.5335842143273557 +1441.0,2.6955314689825927 +1442.0,3.395087440384872 +1443.0,2.3932232434086025 +1444.0,2.31346723386662 +1445.0,2.3694701704997194 +1446.0,2.315054064021703 +1447.0,2.6910015665343967 +1448.0,2.334858368345426 +1449.0,2.335317292525232 +1450.0,2.383155001897097 +1451.0,2.481455963844806 +1452.0,2.4643217056531226 +1453.0,2.302379395375546 +1454.0,2.4504610026006977 +1455.0,2.3407694218360273 +1456.0,2.81158236296137 +1457.0,2.3274399945449096 +1458.0,2.5955197092130753 +1459.0,2.3139623511341565 +1460.0,2.3695616001340665 +1461.0,3.1654205623366027 +1462.0,2.545387648025452 +1463.0,2.8117934071139477 +1464.0,2.51871956323203 +1465.0,2.388520167621087 +1466.0,2.4691016466955347 +1467.0,2.5285074747142806 +1468.0,2.620124118481861 +1469.0,2.606109395392797 +1470.0,2.736357067854025 +1471.0,2.6797894077170517 +1472.0,2.506935438728642 +1473.0,2.5504817551350834 +1474.0,2.542985147805922 +1475.0,2.5597489027952904 +1476.0,2.568906508264847 +1477.0,2.3370404054805016 +1478.0,2.415199450275305 +1479.0,2.6921577178381217 +1480.0,2.369779205038195 +1481.0,2.4102447561739258 +1482.0,2.3360511974257845 +1483.0,2.8231777539314553 +1484.0,2.446264290002134 +1485.0,2.677735477926637 +1486.0,2.7248277386294637 +1487.0,2.4496755611933128 +1488.0,2.3680071272538017 +1489.0,2.5074244146788125 +1490.0,2.754087452146806 +1491.0,2.3420827293118047 +1492.0,2.6659036455043714 +1493.0,2.752098702993204 +1494.0,2.708601989094706 +1495.0,2.3050771224985795 +1496.0,2.413817646048465 +1497.0,3.0939783211675835 +1498.0,2.3939088463637748 +1499.0,2.8112350173274927 +1500.0,2.3204843329258034 +1501.0,3.446176772581116 +1502.0,2.759465090222731 +1503.0,2.6586261433509106 +1504.0,3.1344876624702898 +1505.0,2.4367042473217104 +1506.0,2.455850271557673 +1507.0,2.7091174373487292 +1508.0,2.7219956160941976 +1509.0,2.5037307154563626 +1510.0,2.8143221279342536 +1511.0,2.7316097788982896 +1512.0,2.353472061127822 +1513.0,3.444523524300819 +1514.0,2.45575293367101 +1515.0,2.542807878759411 +1516.0,2.3247752252588 +1517.0,2.405165651157607 +1518.0,2.725743096583647 +1519.0,2.304413554657623 +1520.0,2.312536577259545 +1521.0,2.3789019356321663 +1522.0,2.4575146043359983 +1523.0,2.4092027563475313 +1524.0,2.4470837396240253 +1525.0,2.5103944161478173 +1526.0,2.4343656016449833 +1527.0,2.3062564981433815 +1528.0,2.377310159603 +1529.0,2.47581265746322 +1530.0,2.3026148222836693 +1531.0,2.5414007901464117 +1532.0,2.3333379272972827 +1533.0,2.7849903635781708 +1534.0,2.314246837866814 +1535.0,2.315360047209277 +1536.0,2.3700052386445445 +1537.0,2.577937800911953 +1538.0,3.111583498921581 +1539.0,2.3322515818170384 +1540.0,2.624772491531562 +1541.0,2.372588289018994 +1542.0,2.713894803072598 +1543.0,2.5168822881580364 +1544.0,2.323392696421246 +1545.0,2.3299461544994733 +1546.0,2.372015683557996 +1547.0,2.752902196225542 +1548.0,3.0035195221025077 +1549.0,2.321366860785085 +1550.0,2.312199177925499 +1551.0,2.636489383646952 +1552.0,2.375573706910679 +1553.0,2.5458472101156553 +1554.0,2.3190252954323656 +1555.0,3.121279705552234 +1556.0,2.4841621802068135 +1557.0,2.608254249371031 +1558.0,2.3106286994079324 +1559.0,2.560389923427843 +1560.0,2.475304572179211 +1561.0,2.3573511169490047 +1562.0,2.3960743422361888 +1563.0,2.8187810045139883 +1564.0,2.3117100672201274 +1565.0,2.350104917226798 +1566.0,2.3265564778645627 +1567.0,2.9166798095618063 +1568.0,2.706532709698659 +1569.0,2.3598301229956706 +1570.0,2.5774167923433966 +1571.0,2.3132098121021953 +1572.0,2.332026431507095 +1573.0,2.3931778906845333 +1574.0,2.607023408843198 +1575.0,2.7043235359361604 +1576.0,2.7637551639498974 +1577.0,2.6149842127933756 +1578.0,2.316070056002609 +1579.0,2.589188733449057 +1580.0,2.347633447425314 +1581.0,2.6508744889767666 +1582.0,2.594530813543294 +1583.0,2.4456319125138526 +1584.0,2.7081026795920984 +1585.0,4.246629902825185 +1586.0,3.2484487949874823 +1587.0,3.014382916005423 +1588.0,4.604573373519024 +1589.0,4.489476946678035 +1590.0,2.66349103005749 +1591.0,3.175139200186708 +1592.0,3.1253402323652404 +1593.0,2.697073283681485 +1594.0,2.953205157611876 +1595.0,2.8168362248562073 +1596.0,5.005039402521149 +1597.0,2.5953750791489982 +1598.0,2.8552618027517176 +1599.0,4.4440241281729485 +1600.0,2.7076876258222917 +1601.0,2.5600184799712626 +1602.0,4.761896906234198 +1603.0,2.777968098819434 +1604.0,3.494465952915858 +1605.0,2.8432006621305104 +1606.0,3.029370827631275 +1607.0,4.251149523771803 +1608.0,2.5982860184471206 +1609.0,2.4497915836444006 +1610.0,2.7928665105855193 +1611.0,3.201722138580258 +1612.0,2.7490787266957413 +1613.0,2.9187759708466574 +1614.0,3.327919624915247 +1615.0,2.387154454012509 +1616.0,3.10141388247361 +1617.0,3.693281085884796 +1618.0,5.0016653708461165 +1619.0,3.5996050844358747 +1620.0,3.8369723668435514 +1621.0,2.6868577530096425 +1622.0,2.7516964936171644 +1623.0,3.102363581475686 +1624.0,4.25349275641119 +1625.0,3.960873752112362 +1626.0,2.645623984874002 +1627.0,2.8771974614814106 +1628.0,3.252051411073106 +1629.0,4.283506179478499 +1630.0,2.5324905342077275 +1631.0,3.2354513523103217 +1632.0,3.8964737226373893 +1633.0,3.7401301102429745 +1634.0,2.423647291908637 +1635.0,2.984784482050327 +1636.0,3.5607626791977887 +1637.0,5.911741952111121 +1638.0,2.46120176915139 +1639.0,3.692382410256234 +1640.0,2.772181238481029 +1641.0,3.0831369406610083 +1642.0,3.664456312650298 +1643.0,3.1800927517638176 +1644.0,2.9955075036350522 +1645.0,3.583490298599706 +1646.0,4.306456030183166 +1647.0,3.2760259407539816 +1648.0,4.814677954349577 +1649.0,2.5179798063699126 +1650.0,2.521883145498447 +1651.0,2.7164956129846822 +1652.0,4.392753992148561 +1653.0,2.6931528945980845 +1654.0,4.486297264347964 +1655.0,2.6251503483897234 +1656.0,3.250383051009002 +1657.0,2.8531172531134636 +1658.0,4.646367299795217 +1659.0,4.195161640515346 +1660.0,2.6885112313066823 +1661.0,2.8017663588247923 +1662.0,3.2771147351367835 +1663.0,3.056030125233746 +1664.0,2.706571552059941 +1665.0,4.140070251591902 +1666.0,2.7223595734350643 +1667.0,3.852127793090272 +1668.0,2.83253674979519 +1669.0,2.3880590785828266 +1670.0,3.6261287515855063 +1671.0,3.31150155631834 +1672.0,3.3924988049319587 +1673.0,2.3911006367833765 +1674.0,3.0562243190246035 +1675.0,4.299063812420277 +1676.0,3.125027519137336 +1677.0,3.7128204458634277 +1678.0,4.106763785425544 +1679.0,2.900387197200914 +1680.0,3.453775829993655 +1681.0,2.611676127604766 +1682.0,3.324271142348504 +1683.0,2.759519070420878 +1684.0,3.1032915643993237 +1685.0,2.544148269063598 +1686.0,4.3763254790809905 +1687.0,2.832653864922706 +1688.0,3.935379306427164 +1689.0,3.514509543434526 +1690.0,4.912336761455827 +1691.0,3.2353375859783755 +1692.0,2.807209261357256 +1693.0,4.048945462301513 +1694.0,3.620638702523216 +1695.0,4.4388710027141 +1696.0,2.4305604299636103 +1697.0,3.4404644793359163 +1698.0,3.3286750681258925 +1699.0,3.7272069258788534 +1700.0,5.508372672660274 +1701.0,2.6087445876866853 +1702.0,4.34160629625557 +1703.0,2.9800578138255913 +1704.0,2.975454251594864 +1705.0,5.79210372917129 +1706.0,3.839172388966157 +1707.0,2.420761551404159 +1708.0,3.2316458084947843 +1709.0,4.263269312049921 +1710.0,3.655369363780626 +1711.0,2.578105493842882 +1712.0,3.8476647659024326 +1713.0,2.6286534122406007 +1714.0,3.8860750530495185 +1715.0,2.683993225914465 +1716.0,3.095917428732764 +1717.0,3.222955614808719 +1718.0,4.107829406384793 +1719.0,2.68658106585177 +1720.0,2.5861215648740474 +1721.0,4.713462319603363 +1722.0,3.221910390622208 +1723.0,2.9326838257554475 +1724.0,2.6976040501618836 +1725.0,3.0851038352515445 +1726.0,2.5566460897771486 +1727.0,3.4604173545345627 +1728.0,3.625454113398022 +1729.0,2.87132189210938 +1730.0,2.593861745290143 +1731.0,4.275855438025764 +1732.0,3.491789563454158 +1733.0,3.4371100179381258 +1734.0,4.812585278589193 +1735.0,2.776149471459296 +1736.0,2.907769023614711 +1737.0,3.364003400441734 +1738.0,2.725783898891855 +1739.0,4.4331070584913235 +1740.0,3.8848434877562443 +1741.0,2.726591458126207 +1742.0,2.7532643602639584 +1743.0,3.0896122629739864 +1744.0,3.2981747562612767 +1745.0,3.129770260794661 +1746.0,2.6290933018384295 +1747.0,2.932024828326963 +1748.0,4.881208592195087 +1749.0,4.102097591201604 +1750.0,2.7417205056675074 +1751.0,2.974810911994168 +1752.0,3.251819167602922 +1753.0,4.642779435126373 +1754.0,3.525349014674961 +1755.0,3.9756718579830124 +1756.0,3.059476187665144 +1757.0,2.491983648591021 +1758.0,3.607775093113161 +1759.0,3.1725357802439116 +1760.0,2.4516193042650465 +1761.0,2.889483086444747 +1762.0,3.540997984451815 +1763.0,2.75073051840919 +1764.0,2.973319915989002 +1765.0,3.131203674924663 +1766.0,3.8376858660328184 +1767.0,2.8904432442016335 +1768.0,4.790750308761114 +1769.0,3.117335343848753 +1770.0,3.8066924725843294 +1771.0,2.40902739325019 +1772.0,4.64757933914517 +1773.0,2.9701187844835264 +1774.0,3.3811663730896635 +1775.0,3.2538870609830775 +1776.0,2.7574095887350376 +1777.0,2.791117201415516 +1778.0,2.562990491452636 +1779.0,3.0749299609532175 +1780.0,4.21230909580124 +1781.0,4.497485851769236 +1782.0,3.366033394288104 +1783.0,2.934669121564958 +1784.0,2.815267933610726 +1785.0,3.2807269126713154 +1786.0,3.8536357401116996 +1787.0,2.9723868673625575 +1788.0,6.1250322425660615 +1789.0,4.044071313491051 +1790.0,5.340552905735601 +1791.0,2.979864748271365 +1792.0,2.8832969182108066 +1793.0,2.7923342247778824 +1794.0,2.8520057622791355 +1795.0,5.535857054013122 +1796.0,4.226205610967533 +1797.0,3.166074907307528 +1798.0,3.5090394502641686 +1799.0,3.147987937272669 +1800.0,4.893098620709056 +1801.0,2.7040288962858825 +1802.0,3.337590821363642 +1803.0,2.782958758028114 +1804.0,3.0960327093398248 +1805.0,3.339821061907068 +1806.0,2.7544675753745267 +1807.0,3.695915442945706 +1808.0,2.4994781713799594 +1809.0,2.555893974682382 +1810.0,3.4857086554286787 +1811.0,3.19357476628931 +1812.0,3.4564613951026297 +1813.0,2.9009404246016723 +1814.0,4.696003408049502 +1815.0,3.2612389857144555 +1816.0,2.895453491892826 +1817.0,2.585923029773594 +1818.0,3.7957657109826717 +1819.0,3.4197116052220666 +1820.0,3.0472783533834864 +1821.0,2.7877518505488967 +1822.0,3.1985529054412623 +1823.0,2.9212307925940637 +1824.0,3.0196356563988154 +1825.0,2.9974417566326177 +1826.0,4.434050721094261 +1827.0,2.7262159053705792 +1828.0,3.391280914252213 +1829.0,3.5793695081055272 +1830.0,3.0543178016675427 +1831.0,3.821956205016198 +1832.0,4.126518138951823 +1833.0,2.8066530807499888 +1834.0,2.9779726667859774 +1835.0,2.6132574261423516 +1836.0,3.4059867259770265 +1837.0,2.7243140229389704 +1838.0,3.562920518699579 +1839.0,2.9153800106502654 +1840.0,2.557762557750913 +1841.0,2.565110616113162 +1842.0,2.7324523432347623 +1843.0,3.808457888901346 +1844.0,2.708589485511937 +1845.0,2.4625432496149244 +1846.0,2.8558891199559033 +1847.0,2.8859946451476106 +1848.0,2.809454030988666 +1849.0,3.3800250267790957 +1850.0,3.989865447437829 +1851.0,3.2919594511697094 +1852.0,4.792917213982576 +1853.0,3.0133630066779253 +1854.0,3.1838717255876463 +1855.0,5.203568070873901 +1856.0,6.28564954891644 +1857.0,2.5853157735056547 +1858.0,3.9943926386615294 +1859.0,3.8287088550882835 +1860.0,4.517014365046015 +1861.0,3.1443324459559934 +1862.0,2.786717441230032 +1863.0,2.683499411103521 +1864.0,3.863652013476329 +1865.0,3.2661407234111186 +1866.0,2.682296404506954 +1867.0,4.3292320016538515 +1868.0,2.431789699093364 +1869.0,4.375350040457737 +1870.0,2.792844187565674 +1871.0,2.6086908148073773 +1872.0,2.8243019394518636 +1873.0,2.8341851534075264 +1874.0,2.4990475812344406 +1875.0,3.072069549612655 +1876.0,3.3645435352581856 +1877.0,3.2336004715555955 +1878.0,3.5408433501702374 +1879.0,3.7287414856723347 +1880.0,4.066819688576452 +1881.0,2.9099032309929886 +1882.0,4.699272011014477 +1883.0,2.7117861290264416 +1884.0,2.831560613619799 +1885.0,3.7305972657533326 +1886.0,2.865971409238598 +1887.0,3.2878601861594663 +1888.0,3.250976975394023 +1889.0,2.7104543030649513 +1890.0,5.043338643073646 +1891.0,4.372192759089844 +1892.0,3.4767203975587613 +1893.0,4.469003254978018 +1894.0,2.401608434811722 +1895.0,3.5436991798568647 +1896.0,3.1849332711587763 +1897.0,2.8785008915257877 +1898.0,3.6056482016013867 +1899.0,2.934088369098461 +1900.0,3.5738581770309996 +1901.0,4.513576297229888 +1902.0,2.97972956143492 +1903.0,2.9974110507974743 +1904.0,3.2113722393421895 +1905.0,2.4561146385501784 +1906.0,3.370610956429402 +1907.0,4.431056725015375 +1908.0,3.308935267521515 +1909.0,4.060390299894823 +1910.0,5.188553963828516 +1911.0,2.8408532233127843 +1912.0,3.9757405467718296 +1913.0,3.7114503491117277 +1914.0,3.180931323697218 +1915.0,4.4193131817553315 +1916.0,2.898938388677296 +1917.0,3.8220540121688806 +1918.0,3.480522314127966 +1919.0,3.2894281906860368 +1920.0,3.203518948039237 +1921.0,4.3660223452670195 +1922.0,3.829451778726442 +1923.0,3.3100669800231675 +1924.0,3.854551303492163 +1925.0,3.7015443621822666 +1926.0,3.3869602163250176 +1927.0,2.4860541579855524 +1928.0,2.6980844119451324 +1929.0,3.097903889077979 +1930.0,2.7979810429550365 +1931.0,2.6477987782088026 +1932.0,2.7122014153802625 +1933.0,2.4679200933273258 +1934.0,3.10104043451536 +1935.0,3.1998046077695355 +1936.0,3.750950914067224 +1937.0,2.569676965081619 +1938.0,5.333055619900347 +1939.0,4.336549067225489 +1940.0,3.1924617271786757 +1941.0,2.7168223068078063 +1942.0,5.252918091779392 +1943.0,2.935470400335011 +1944.0,3.1572512838343942 +1945.0,2.385257528632207 +1946.0,3.9767989755079833 +1947.0,3.0862309658495883 +1948.0,3.2316410198393313 +1949.0,3.5858852102659675 +1950.0,2.508556831058576 +1951.0,4.337236937625669 +1952.0,2.977077176711308 +1953.0,2.6318407542111752 +1954.0,3.3974346394787274 +1955.0,4.770345046415326 +1956.0,2.981937407687047 +1957.0,2.441363627536016 +1958.0,2.607806472686457 +1959.0,2.942691226550814 +1960.0,3.2884866431243736 +1961.0,6.152038050733969 +1962.0,3.305698491442276 +1963.0,6.318248184783132 +1964.0,4.8603887984939815 +1965.0,3.1896904989102097 +1966.0,2.684358095839392 +1967.0,3.3555416447695188 +1968.0,2.40233175693476 +1969.0,3.1085306610726744 +1970.0,2.657662486285444 +1971.0,2.9501982205250443 +1972.0,3.588170263108479 +1973.0,3.788808640488677 +1974.0,2.9656056188410798 +1975.0,2.8983524969552765 +1976.0,3.0961639032047845 +1977.0,3.0427307926632547 +1978.0,2.7818931725556273 +1979.0,3.3606028925202223 +1980.0,2.4848451994301746 +1981.0,3.1344217009334763 +1982.0,2.6491582578772137 +1983.0,3.5257018052068543 +1984.0,4.401449055167161 +1985.0,6.190337519348258 +1986.0,4.366289491196902 +1987.0,3.9393352239171695 +1988.0,2.836281442007123 +1989.0,3.89793383150049 +1990.0,3.2231980294079126 +1991.0,4.053305439548245 +1992.0,3.075601647419085 +1993.0,3.01063545168546 +1994.0,3.468165806387655 +1995.0,3.0884237255518237 +1996.0,2.4732205326659122 +1997.0,3.4664329783132914 +1998.0,2.619894344203227 +1999.0,3.3767476914646934 +2000.0,3.567665513000233 +2001.0,4.052250949223114 +2002.0,3.3992419639038767 +2003.0,2.8474546016657345 +2004.0,3.4406551581258404 +2005.0,4.060323502389799 +2006.0,2.4028003328122214 +2007.0,2.7638302658634566 +2008.0,3.3479034525708564 +2009.0,4.801525835123977 +2010.0,3.5829277840387457 +2011.0,2.899825915144474 +2012.0,3.193436857026267 +2013.0,4.166205266185181 +2014.0,2.94483498665618 +2015.0,3.1020215614293605 +2016.0,2.516863836096196 +2017.0,3.2416685644176404 +2018.0,2.5391624974273177 +2019.0,4.638684769907881 +2020.0,4.878722497864563 +2021.0,3.4175082668818035 +2022.0,3.852905401226854 +2023.0,2.5907722885202453 +2024.0,3.8643193095785655 +2025.0,2.771107443193035 +2026.0,3.613344759136191 +2027.0,3.5248109004663815 +2028.0,2.764676597577232 +2029.0,2.5215746889146664 +2030.0,2.9409886714421383 +2031.0,2.6370772544664174 +2032.0,3.092604960169066 +2033.0,2.9668316998146587 +2034.0,3.482017801732101 +2035.0,4.597369709132177 +2036.0,2.7879165608946104 +2037.0,2.6615421283774023 +2038.0,5.541908636359709 +2039.0,2.81360371293749 +2040.0,2.5586319813977374 +2041.0,2.643658625310159 +2042.0,2.755634311281679 +2043.0,2.6025036008773546 +2044.0,2.414841207209738 +2045.0,2.837580338671671 +2046.0,3.852280013988227 +2047.0,2.433913018394047 +2048.0,3.9402605120510055 +2049.0,4.344745699681958 +2050.0,4.336338685444924 +2051.0,2.471858873927715 +2052.0,3.3448714394107313 +2053.0,4.70854226807122 +2054.0,2.3967882605428388 +2055.0,3.2820581483538005 +2056.0,4.54614476801032 +2057.0,3.5958918257164503 +2058.0,4.182445233016087 +2059.0,2.909198928478164 +2060.0,5.025616148167115 +2061.0,3.5977518422691572 +2062.0,2.5363526939544907 +2063.0,4.271012851942775 +2064.0,3.0748008647023886 +2065.0,3.3727815231974843 +2066.0,3.6590027028523378 +2067.0,2.697938797435626 +2068.0,3.0598123238568804 +2069.0,3.178485730465727 +2070.0,3.1025239724903493 +2071.0,2.9051187960264926 +2072.0,3.0194544973230557 +2073.0,2.913146079819079 +2074.0,4.317155021804863 +2075.0,4.022064995837186 +2076.0,4.527862436636353 +2077.0,3.7688688843065963 +2078.0,4.457410632874752 +2079.0,2.714538540578377 +2080.0,2.487443842990144 +2081.0,2.9097568772255236 +2082.0,2.91496684674268 +2083.0,2.4940120705481443 +2084.0,3.83707355974905 +2085.0,2.9036725865839137 +2086.0,2.744579610557099 +2087.0,2.9583445840675657 +2088.0,3.2437363002615833 +2089.0,3.667446115229715 +2090.0,3.4643349276071693 +2091.0,4.300413467479317 +2092.0,3.3421394690704407 +2093.0,3.7258615334119103 +2094.0,4.547276773576716 +2095.0,2.6267858003066005 +2096.0,3.3503087220606678 +2097.0,2.9426003838892574 +2098.0,2.511699252944789 +2099.0,3.2156201916102782 +2100.0,3.3369052637205003 +2101.0,2.676398361415627 +2102.0,2.663701335789291 +2103.0,3.2607858406062653 +2104.0,4.580052186632001 +2105.0,3.4817658274222754 +2106.0,3.536554410015507 +2107.0,3.8961115277715956 +2108.0,3.0296865847960297 +2109.0,2.6976487459475824 +2110.0,3.420044933215312 +2111.0,2.495375384629489 +2112.0,2.526889613899943 +2113.0,3.6694439124581537 +2114.0,2.752842344751852 +2115.0,3.8142854921516265 +2116.0,2.7084650403279884 +2117.0,4.166079618729924 +2118.0,3.8796313522356254 +2119.0,3.4879863618970095 +2120.0,3.0038705925409115 +2121.0,4.005060425314387 +2122.0,2.510338139738692 +2123.0,3.354054297158181 +2124.0,2.5974824648580674 +2125.0,2.678071581626442 +2126.0,3.9121388122184437 +2127.0,3.2479701541240287 +2128.0,3.4049469451339207 +2129.0,2.4259508440259867 +2130.0,2.7868793206180795 +2131.0,2.8414761949691836 +2132.0,4.108444118335368 +2133.0,3.718531251616038 +2134.0,2.644360691106413 +2135.0,3.6203156145938804 +2136.0,2.864142151672593 +2137.0,2.704124342773688 +2138.0,3.00594961717865 +2139.0,4.725860793185477 +2140.0,3.381335543360414 +2141.0,3.5502019442801966 +2142.0,3.860689222528022 +2143.0,5.771653314841721 +2144.0,4.634236336858598 +2145.0,4.475820851632578 +2146.0,2.8706024388687306 +2147.0,3.974228612429581 +2148.0,3.0994560722612414 +2149.0,2.8927712976070117 +2150.0,4.079326837195829 +2151.0,3.1440423314705366 +2152.0,3.058384996300053 +2153.0,2.9587237470527983 +2154.0,3.006389999676529 +2155.0,3.3991830823579905 +2156.0,4.344532737378976 +2157.0,4.673235109551442 +2158.0,4.07210257915912 +2159.0,5.2899920481014675 +2160.0,3.009915126237647 +2161.0,3.11098323709579 +2162.0,3.0724344873065537 +2163.0,3.6488096105974517 +2164.0,2.6970424759759406 +2165.0,3.251616682850675 +2166.0,2.953436781573183 +2167.0,5.359674633255294 +2168.0,4.117779162779572 +2169.0,2.9512651634850986 +2170.0,2.7562482665107666 +2171.0,3.627040270018469 +2172.0,3.132385483925696 +2173.0,3.859873543909891 +2174.0,4.097005025089576 +2175.0,3.3484268751644923 +2176.0,4.465943926295315 +2177.0,2.437621592098026 +2178.0,2.8460762529125496 +2179.0,2.4842758674341296 +2180.0,2.6362646284418854 +2181.0,2.512535221638449 +2182.0,2.784959760113865 +2183.0,5.657294742219783 +2184.0,2.8850576710393394 +2185.0,4.842938851745628 +2186.0,4.181227540690454 +2187.0,3.702603354516694 +2188.0,6.126867820154578 +2189.0,3.1493734516315404 +2190.0,2.5267408022790048 +2191.0,5.17734869256746 +2192.0,2.9318690081690617 +2193.0,4.612919696442687 +2194.0,3.2928924479064983 +2195.0,4.30850143516433 +2196.0,3.1261509083338854 +2197.0,3.2921913198428214 +2198.0,2.7345990955600032 +2199.0,3.1516668744513403 diff --git a/tests/fixtures/catalogs/case_031_active_then_quiet_2200d.csv b/tests/fixtures/catalogs/case_031_active_then_quiet_2200d.csv new file mode 100644 index 0000000..f0e4564 --- /dev/null +++ b/tests/fixtures/catalogs/case_031_active_then_quiet_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.426096875598451 +1.0,2.5892461374726934 +2.0,2.6818282705367986 +3.0,3.336057545931104 +4.0,3.18210485991839 +5.0,4.295899567641235 +6.0,2.738722972806154 +7.0,4.059488657731672 +8.0,4.2501619768054715 +9.0,4.728404125167853 +10.0,2.539016774784004 +11.0,3.49607635464185 +12.0,2.866004435184758 +13.0,2.5984693493995152 +14.0,2.4622832110562998 +15.0,3.0732820326479064 +16.0,2.8650104201619877 +17.0,3.174203683628206 +18.0,5.762324820450123 +19.0,2.5525295136980835 +20.0,3.3444694484336566 +21.0,3.3267367472874487 +22.0,3.902181443462031 +23.0,4.13355393237707 +24.0,2.8239895020075236 +25.0,4.7879815147687745 +26.0,2.3842316655320275 +27.0,3.0028175967696065 +28.0,2.8674675068153785 +29.0,3.199696499143515 +30.0,2.8046908606372387 +31.0,3.343617903818498 +32.0,3.1251542031538624 +33.0,5.461793941950181 +34.0,3.9733239456331555 +35.0,2.5300737629289105 +36.0,2.510455459423632 +37.0,2.8877674081095623 +38.0,3.178789493493251 +39.0,3.0733954654793862 +40.0,2.5794159719416525 +41.0,4.717701506064919 +42.0,2.4639651170173282 +43.0,3.2796301332639546 +44.0,3.562099000653906 +45.0,3.000414499419534 +46.0,3.212131111796825 +47.0,3.1520233610324504 +48.0,2.4325727676262456 +49.0,4.313042584089139 +50.0,3.027585321378904 +51.0,2.7457513044606494 +52.0,3.1519520531856315 +53.0,4.253169395522825 +54.0,3.1989156753548467 +55.0,3.325228190559186 +56.0,3.2200768786365974 +57.0,3.5418060328172194 +58.0,4.986030147403032 +59.0,3.701660822868953 +60.0,3.533797462826459 +61.0,4.450769385326172 +62.0,3.6213430148686636 +63.0,5.4119359238173335 +64.0,3.226051621361266 +65.0,8.04701021899854 +66.0,4.2682219570235835 +67.0,2.810391749810633 +68.0,2.934838215175179 +69.0,2.6124319822667506 +70.0,2.6201048434178826 +71.0,4.805319288097905 +72.0,4.119667883336247 +73.0,3.997567686705084 +74.0,4.398585976791267 +75.0,3.4134062969288363 +76.0,3.0835215113006695 +77.0,3.7109606291796426 +78.0,4.152571181063071 +79.0,3.4516886551057837 +80.0,2.9274823196159185 +81.0,3.515080209002592 +82.0,3.6540174624850277 +83.0,2.9578983569214166 +84.0,3.3580976509202323 +85.0,3.1034170838599855 +86.0,3.574876004617103 +87.0,2.679792181701421 +88.0,4.0848491123797706 +89.0,2.558620491923472 +90.0,3.0099679140498212 +91.0,2.7555010160684352 +92.0,3.033826302001343 +93.0,4.453267709249042 +94.0,2.6670067176687637 +95.0,3.2001833589760857 +96.0,3.0709277820706626 +97.0,2.816711854035097 +98.0,4.466488877623332 +99.0,3.0230675160382474 +100.0,3.625579931614423 +101.0,3.441889512475449 +102.0,3.0526276674616764 +103.0,3.310980522279289 +104.0,3.1977322841532945 +105.0,2.7050028620349997 +106.0,3.010987027860497 +107.0,2.549884545959633 +108.0,3.285155664498152 +109.0,3.4230418574759716 +110.0,3.8919571521031844 +111.0,3.5811418588930986 +112.0,2.499364973133283 +113.0,3.7242554493140583 +114.0,3.7907787239304076 +115.0,2.7628323434887267 +116.0,3.7226968257107194 +117.0,2.75966711834077 +118.0,3.016339687224432 +119.0,3.344598470281488 +120.0,4.388159933034025 +121.0,3.597883129374276 +122.0,2.8105382491061435 +123.0,2.821095196626853 +124.0,2.486933485750888 +125.0,3.048816588482216 +126.0,3.483837419585873 +127.0,2.933720864913515 +128.0,3.1898338142017977 +129.0,3.034157939246274 +130.0,3.5762991677687204 +131.0,3.5571008653439167 +132.0,4.664047295181891 +133.0,3.2697047432884565 +134.0,4.595609927829553 +135.0,3.2135191276705135 +136.0,3.2773760035551676 +137.0,2.72734473639429 +138.0,3.698778659151767 +139.0,3.9545386635561974 +140.0,3.352339222033022 +141.0,2.9248979710077254 +142.0,3.288450662594803 +143.0,3.1698463751919674 +144.0,3.270286155704801 +145.0,4.222200482326513 +146.0,3.259860364120063 +147.0,3.7951729866437933 +148.0,3.6929023310157274 +149.0,3.3673670830076246 +150.0,3.1437889385915243 +151.0,3.59516404421211 +152.0,4.106739080694677 +153.0,4.007582741534499 +154.0,2.5741609745398617 +155.0,3.180603288741524 +156.0,2.635012299722187 +157.0,2.94128345940243 +158.0,4.121701728791162 +159.0,4.7270868860065365 +160.0,2.5573301350538262 +161.0,3.689850737013217 +162.0,2.6603841911944706 +163.0,4.255297246000476 +164.0,2.963245939775481 +165.0,3.3588226735275217 +166.0,2.9405502497048186 +167.0,2.468908325165532 +168.0,3.186412341092919 +169.0,4.4220773134937685 +170.0,3.0472247172321167 +171.0,5.0205953814624085 +172.0,2.533699774131301 +173.0,2.851356869165412 +174.0,2.626743511680965 +175.0,3.2015013183762773 +176.0,2.975017865883711 +177.0,2.9307202579463936 +178.0,3.903740705872175 +179.0,2.969063601767857 +180.0,3.1338842268440277 +181.0,2.569747331310909 +182.0,2.509892108547796 +183.0,3.123468438626334 +184.0,3.416874829241575 +185.0,2.8473781136906626 +186.0,3.8534675815836774 +187.0,2.709930834932022 +188.0,3.914347835940826 +189.0,3.00628718855105 +190.0,3.0154857370744192 +191.0,3.257676787383572 +192.0,3.9311615690217367 +193.0,2.8820981275940296 +194.0,6.997892903495466 +195.0,3.649285950706618 +196.0,5.640692569802895 +197.0,3.183492129099587 +198.0,3.4248784215466452 +199.0,4.062553278688998 +200.0,3.468169946431094 +201.0,2.3495000404645876 +202.0,2.8620996415969513 +203.0,3.406528940381082 +204.0,5.198701110791399 +205.0,2.755336227439773 +206.0,3.361150833203686 +207.0,2.8360521354607213 +208.0,3.0498493966560094 +209.0,3.54807386731792 +210.0,3.066410057259279 +211.0,2.5705423553691555 +212.0,2.609263941830365 +213.0,4.128147415864618 +214.0,3.5906146313423797 +215.0,4.781681141254863 +216.0,4.122749287139896 +217.0,3.407041674222898 +218.0,2.9921978606594895 +219.0,3.178056575462235 +220.0,2.651446030037962 +221.0,2.621339538502542 +222.0,5.6492294556842815 +223.0,3.677453007063067 +224.0,4.108732838445645 +225.0,5.957809912936757 +226.0,2.856042829853772 +227.0,3.3889865207805787 +228.0,3.3502233312488285 +229.0,4.092936581125077 +230.0,3.063596770493751 +231.0,4.371895203911471 +232.0,2.8266598805240197 +233.0,5.812599038611576 +234.0,4.265167846263348 +235.0,3.0803856129287963 +236.0,3.934052057640896 +237.0,3.036137314710205 +238.0,2.8052211937298717 +239.0,2.9308433052997658 +240.0,3.1786522941936965 +241.0,3.261050546316009 +242.0,3.317230610786549 +243.0,2.772154819226743 +244.0,4.144382272449378 +245.0,2.9742635654147107 +246.0,2.4881504760995443 +247.0,2.59660109239129 +248.0,3.005342981813499 +249.0,3.9301329113589403 +250.0,2.816081455549915 +251.0,3.731398789409914 +252.0,4.799241960744316 +253.0,2.8647470214633257 +254.0,2.869124325028254 +255.0,2.9217217775522104 +256.0,3.4699065330987104 +257.0,2.9280008283183996 +258.0,6.061314085486444 +259.0,2.4288671637414234 +260.0,9.458044363724532 +261.0,2.898440108097495 +262.0,3.6378105938686973 +263.0,3.6921800571678896 +264.0,2.7370177766771624 +265.0,2.393627351641769 +266.0,2.819373160764221 +267.0,3.0168903263228204 +268.0,3.6506402964490796 +269.0,4.667954435373215 +270.0,2.4542766514258303 +271.0,3.046197717330055 +272.0,3.038491291721333 +273.0,3.7448211340279105 +274.0,4.883540782947735 +275.0,4.432273830463677 +276.0,4.517150830589799 +277.0,2.6491731499422686 +278.0,3.7191443209827346 +279.0,4.297612192552368 +280.0,3.7984638645285678 +281.0,6.021847815805661 +282.0,4.723469740234925 +283.0,5.736523494775852 +284.0,4.393930101188966 +285.0,2.6388968838906783 +286.0,4.727490378424683 +287.0,3.290389145661235 +288.0,8.53145447026077 +289.0,2.623062814085739 +290.0,3.2334197055709635 +291.0,2.551161229903761 +292.0,2.640146764510333 +293.0,2.899996015137348 +294.0,3.147126434718571 +295.0,3.7361205211938433 +296.0,3.895069423047623 +297.0,4.085412385453514 +298.0,3.4016962968251403 +299.0,3.6052051642618013 +300.0,2.744984532179224 +301.0,3.2016958970506226 +302.0,2.9492699405561873 +303.0,2.4958966021098994 +304.0,2.4159405714163875 +305.0,2.9081416897151073 +306.0,4.382130846245902 +307.0,3.660079936020362 +308.0,3.1976486841938145 +309.0,5.233198925954218 +310.0,3.5860556742135428 +311.0,4.249128566631395 +312.0,2.405499259440179 +313.0,3.3507238033457742 +314.0,2.678689768867076 +315.0,6.508940468278801 +316.0,3.5573960676489618 +317.0,4.2977802056184276 +318.0,3.056107779409175 +319.0,2.913072628808072 +320.0,2.709708299170986 +321.0,2.4950295024321556 +322.0,3.940534005300578 +323.0,2.707868031509808 +324.0,3.8236263717781322 +325.0,3.208163464870856 +326.0,4.7236641773698445 +327.0,4.096713286994881 +328.0,3.7674020787930975 +329.0,2.9677611094363976 +330.0,2.977071715003942 +331.0,3.4329058474478247 +332.0,2.5759659754473128 +333.0,2.581510905487375 +334.0,2.44785449808162 +335.0,2.601629352917576 +336.0,2.8870797029461603 +337.0,2.686822969178145 +338.0,3.922612482676007 +339.0,4.574340652032397 +340.0,3.5394344421434876 +341.0,3.224076781091679 +342.0,3.6812629460219775 +343.0,3.845114455988753 +344.0,2.7929415546215886 +345.0,3.2688366355432614 +346.0,2.7244511120175794 +347.0,3.099833170059048 +348.0,3.9957861737976224 +349.0,2.975623897026549 +350.0,2.789799367477352 +351.0,4.399389832890148 +352.0,8.867739456823116 +353.0,2.7683133272074882 +354.0,3.83127920971089 +355.0,3.236648768084063 +356.0,5.414266091842631 +357.0,4.129839606142773 +358.0,2.885531872577724 +359.0,3.21593554426744 +360.0,3.8396631185571257 +361.0,2.494125519891117 +362.0,5.093429896122924 +363.0,2.71467768835571 +364.0,3.199399946921416 +365.0,2.3944919217100527 +366.0,5.909942365280037 +367.0,2.6474837966257376 +368.0,2.9412479793318647 +369.0,2.5814201071661484 +370.0,3.6188569032215905 +371.0,2.4287814150401066 +372.0,2.7843606645900993 +373.0,2.8231606330466086 +374.0,3.185937050801757 +375.0,2.404186640431605 +376.0,2.957168839626847 +377.0,2.7764303281653415 +378.0,3.2802991968371744 +379.0,2.6502079512477463 +380.0,2.4345524997978427 +381.0,2.7559480927462667 +382.0,4.007715309044189 +383.0,4.038477451838356 +384.0,4.435277677730749 +385.0,3.059518645351174 +386.0,3.6165779832576934 +387.0,2.5384167951564973 +388.0,2.925193605712105 +389.0,3.8949866716343924 +390.0,3.4758298024926217 +391.0,3.315270138732989 +392.0,3.245612932536904 +393.0,2.531294218991408 +394.0,2.5104769431692198 +395.0,4.039154047765334 +396.0,2.8258061268422634 +397.0,2.7988694373636367 +398.0,3.3158331328570334 +399.0,2.472680412713735 +400.0,2.9915868955894567 +401.0,2.6711965529940347 +402.0,2.706715570944038 +403.0,4.050701626572815 +404.0,3.922305418506987 +405.0,3.9054135066419757 +406.0,2.332668919533671 +407.0,2.951026756086941 +408.0,2.5311786216859025 +409.0,2.3957535226935396 +410.0,3.8145801980611083 +411.0,4.310055570774468 +412.0,3.165516776154274 +413.0,5.05792751826554 +414.0,2.396968525963963 +415.0,3.9815016870741076 +416.0,3.9318618936963636 +417.0,3.4453601080135474 +418.0,2.5064694388691415 +419.0,3.189612947484572 +420.0,3.06158599124749 +421.0,3.45856895927378 +422.0,2.8569101657191256 +423.0,3.107123012250559 +424.0,3.419648605827523 +425.0,2.876009025393423 +426.0,4.460979814054058 +427.0,3.0651431646497684 +428.0,2.3613882094093053 +429.0,2.903761073955978 +430.0,2.733315465590864 +431.0,3.319792237595005 +432.0,2.9269588308187418 +433.0,2.8376033938902747 +434.0,4.570545954970961 +435.0,2.9647577725689698 +436.0,2.9692106625508408 +437.0,3.2589540576501754 +438.0,3.0950954417963605 +439.0,3.5941428067473282 +440.0,3.0096796210210797 +441.0,2.967573780634871 +442.0,2.540217098349038 +443.0,2.9708946021846594 +444.0,3.475681765058431 +445.0,2.558389260566371 +446.0,2.4849395737870217 +447.0,2.7083256561271716 +448.0,3.482639428348719 +449.0,3.71350860060157 +450.0,3.370419872546084 +451.0,2.597730396203856 +452.0,2.780164878300679 +453.0,2.623516763018751 +454.0,2.5609722865142883 +455.0,2.5007527689600906 +456.0,2.681670193568742 +457.0,2.708687182349398 +458.0,2.4998275595597517 +459.0,2.756765488359485 +460.0,3.2965625936013803 +461.0,3.5036438872111133 +462.0,2.485138194860889 +463.0,5.382332355864168 +464.0,3.4197991545086257 +465.0,3.599992825589246 +466.0,3.534378713568131 +467.0,3.8664628296982286 +468.0,3.641769424970117 +469.0,5.52522310642822 +470.0,3.3701118179095833 +471.0,2.873979220800904 +472.0,2.506183890986316 +473.0,3.9421253385078163 +474.0,5.725349677521486 +475.0,3.431783181913474 +476.0,3.6261864649234896 +477.0,3.1301088953040885 +478.0,4.041219150411996 +479.0,2.7192118910007657 +480.0,2.4872022450717264 +481.0,2.428405852110961 +482.0,4.487452635101259 +483.0,2.9199331913623583 +484.0,3.5529822415572556 +485.0,3.043667759417715 +486.0,3.5540792033672375 +487.0,2.86364137054703 +488.0,2.4011555108027496 +489.0,5.370516274315167 +490.0,3.1814555196353713 +491.0,6.646144410350716 +492.0,2.579055370018519 +493.0,5.626171138144741 +494.0,2.9264058899006997 +495.0,4.876743756024318 +496.0,2.6114656334254196 +497.0,3.0247874863722486 +498.0,3.4011015658237023 +499.0,3.9926567692324655 +500.0,2.847596453563854 +501.0,4.8448281713198345 +502.0,3.341053188901564 +503.0,2.9274703045465325 +504.0,3.5218105701977986 +505.0,5.490018369403202 +506.0,2.8618812021036684 +507.0,4.20782791060709 +508.0,2.531194785083558 +509.0,3.803393841349867 +510.0,2.9010071890830957 +511.0,5.096304807524426 +512.0,2.547362252918626 +513.0,2.563557751426681 +514.0,2.6224906272740083 +515.0,3.6202832748911846 +516.0,2.3154294908484934 +517.0,4.474088896795921 +518.0,2.3818771755065082 +519.0,2.688621370472651 +520.0,2.8687456310231907 +521.0,2.8486935280082677 +522.0,4.477385644072736 +523.0,6.5873119990622575 +524.0,4.350398720900534 +525.0,2.8399369477651777 +526.0,3.6709746400214627 +527.0,2.6978918595269787 +528.0,6.27372932465736 +529.0,2.757911456911101 +530.0,2.4974020089232876 +531.0,5.785112036462937 +532.0,4.235071752344131 +533.0,3.752733917787794 +534.0,3.925003326917019 +535.0,3.2090996839245722 +536.0,2.7415353809952485 +537.0,4.105057807850551 +538.0,4.168017809580111 +539.0,3.315050132315413 +540.0,2.4348612838300143 +541.0,3.284941130447057 +542.0,3.361063090026432 +543.0,3.8094305259751318 +544.0,3.6374655200046906 +545.0,3.7841485307397122 +546.0,2.53067487010427 +547.0,2.7667309729807155 +548.0,2.511517833326243 +549.0,3.349339371752814 +550.0,3.6264794566701495 +551.0,2.9669074789778564 +552.0,2.842501320105041 +553.0,2.725054129419979 +554.0,3.4550375975678214 +555.0,2.870155524062292 +556.0,3.4977648677618207 +557.0,2.580556683749784 +558.0,3.6604823699995848 +559.0,4.2519902855134655 +560.0,5.074954605008578 +561.0,2.539335071944194 +562.0,3.496416657580274 +563.0,3.0484407573877648 +564.0,2.834067153455289 +565.0,2.52636014543841 +566.0,3.534050671960691 +567.0,2.7440848151399346 +568.0,4.508193376585579 +569.0,2.7156687358649267 +570.0,2.9653020518295303 +571.0,3.558382908146932 +572.0,2.8955251953544834 +573.0,2.6206251641849656 +574.0,4.256143473529706 +575.0,4.662625558806036 +576.0,2.9099165820281723 +577.0,2.898954643473595 +578.0,2.949341834411071 +579.0,3.3568444476427435 +580.0,2.7666907342915055 +581.0,2.608326790922272 +582.0,5.357977983328233 +583.0,3.5415552604154943 +584.0,3.4757220748941595 +585.0,2.5146609326838023 +586.0,3.3590392962449465 +587.0,5.2178926426454915 +588.0,4.673194081584332 +589.0,3.2709813337104228 +590.0,2.8894918222266193 +591.0,2.470387821881439 +592.0,3.0306975968121876 +593.0,2.678310582566202 +594.0,3.9648015152041793 +595.0,2.4709112652927603 +596.0,2.565165340850667 +597.0,2.605076507574065 +598.0,3.6682321741167905 +599.0,2.8931106932800925 +600.0,3.0427547678224087 +601.0,3.093043072046824 +602.0,3.1138948918845584 +603.0,2.744883032172525 +604.0,2.649036102488898 +605.0,3.061110202929974 +606.0,2.8748635729715932 +607.0,4.0271830286901125 +608.0,3.043379248245837 +609.0,3.830705881115818 +610.0,4.36114954987216 +611.0,5.407726270001998 +612.0,2.79760626593183 +613.0,3.9139475348454376 +614.0,2.9225345306985187 +615.0,2.807611250520357 +616.0,2.4968655443733843 +617.0,3.4091348827956574 +618.0,2.3255115983663974 +619.0,2.3525100695192545 +620.0,2.684533618038507 +621.0,2.3095987357665724 +622.0,2.3320012475386482 +623.0,2.402708528425479 +624.0,3.038514680099478 +625.0,2.3619710401326452 +626.0,2.860095108845274 +627.0,2.518642186277936 +628.0,2.533487572516938 +629.0,2.5126648233971305 +630.0,2.454383831997552 +631.0,2.80146213621527 +632.0,2.520879404945392 +633.0,2.3608515895421958 +634.0,2.3791290455397904 +635.0,2.6517757300479396 +636.0,2.3647672119533083 +637.0,2.3408497691866956 +638.0,2.810152174796259 +639.0,2.513697128535249 +640.0,2.4369954136636127 +641.0,2.582254985535783 +642.0,2.9284284284036644 +643.0,2.4423136495936233 +644.0,2.424978628793055 +645.0,2.434993347442643 +646.0,2.3798946311393245 +647.0,2.3127370594058703 +648.0,2.3739075311776263 +649.0,2.4112025377840958 +650.0,2.4446667672136373 +651.0,2.898935447369075 +652.0,3.0321705498231855 +653.0,2.3121261096950922 +654.0,2.424954619778155 +655.0,2.3522804131458126 +656.0,2.873100670512908 +657.0,2.465574638387299 +658.0,2.31930363630124 +659.0,2.592645054686348 +660.0,3.222045837189817 +661.0,2.772452560943189 +662.0,2.3716829633761245 +663.0,2.6152454866901107 +664.0,3.4592133001413754 +665.0,2.738632063849218 +666.0,2.5493555926130336 +667.0,2.3793246748148356 +668.0,2.4395877362331864 +669.0,2.76464296337074 +670.0,3.447873662779554 +671.0,2.4699255134709905 +672.0,2.473183686032111 +673.0,2.951141537399021 +674.0,2.380689822184231 +675.0,2.3064102369955535 +676.0,3.774446252845272 +677.0,3.8279586020574596 +678.0,2.3579876624604013 +679.0,3.096313204946096 +680.0,2.4110884227296143 +681.0,2.547043524339053 +682.0,2.333529584817274 +683.0,2.4983023965211544 +684.0,3.0681056256821493 +685.0,2.5295711384329866 +686.0,2.560224408764041 +687.0,2.354068685926313 +688.0,2.6324054932600913 +689.0,2.3343069298042787 +690.0,2.398330941343238 +691.0,2.4720359847656495 +692.0,3.4434293779821847 +693.0,2.6027276834785864 +694.0,2.435771858291354 +695.0,3.341906614986419 +696.0,2.3328181484453987 +697.0,3.518753236869597 +698.0,2.4901489025130665 +699.0,2.5408984664905274 +700.0,2.949922672206134 +701.0,2.403494337303184 +702.0,2.303185045025692 +703.0,2.913303974291447 +704.0,2.3912602387307698 +705.0,2.3871480375467344 +706.0,2.4719809993715995 +707.0,2.546691522262842 +708.0,2.4377066467327473 +709.0,2.4188906937219157 +710.0,2.508609695291271 +711.0,2.8179858382153533 +712.0,2.318730156051227 +713.0,2.4691233820969947 +714.0,2.326638793921488 +715.0,2.8868787191935406 +716.0,2.8471634119164935 +717.0,2.343394921084438 +718.0,2.489119749085428 +719.0,2.5597112534060766 +720.0,2.3646493408067877 +721.0,2.532983550339983 +722.0,2.440527138759851 +723.0,2.4572095069148125 +724.0,2.3307874136031073 +725.0,3.103843649772361 +726.0,2.5949927782545514 +727.0,2.573332218479883 +728.0,2.3419774102996507 +729.0,2.554543365460477 +730.0,2.6094639984431094 +731.0,2.810342508967806 +732.0,2.3685757003490244 +733.0,2.412241350316385 +734.0,2.312075842130655 +735.0,2.4673293877392393 +736.0,3.048145570562932 +737.0,3.9335763112657762 +738.0,2.6003374248207 +739.0,2.862852397330334 +740.0,2.8065420378919272 +741.0,2.7958538026413393 +742.0,2.719520984505156 +743.0,2.490163589755868 +744.0,2.6076579592642224 +745.0,2.426936749641234 +746.0,2.306692312036526 +747.0,2.368299469792613 +748.0,3.022322002917259 +749.0,3.1352651198125012 +750.0,2.4711384002752608 +751.0,2.8816351586702926 +752.0,2.4907089158103553 +753.0,2.3943105562063765 +754.0,2.6181930250830727 +755.0,4.015574664079772 +756.0,2.3079560050941437 +757.0,2.533991326577047 +758.0,2.6102023849254063 +759.0,2.3824708447885374 +760.0,2.31308117839499 +761.0,3.3781948271769044 +762.0,2.726510881941633 +763.0,2.4215497286085785 +764.0,2.6029180460804566 +765.0,2.3578983147864023 +766.0,2.600148656663949 +767.0,2.912665583127004 +768.0,2.440215040599793 +769.0,2.391872258848532 +770.0,2.8142348878219825 +771.0,2.3256888334862422 +772.0,2.3973633241224914 +773.0,2.8835168016085255 +774.0,2.3572795013155896 +775.0,2.46124545234914 +776.0,2.7872125285156812 +777.0,2.86688168866913 +778.0,2.589000864002319 +779.0,2.5375636880216135 +780.0,2.397314916404843 +781.0,2.53805573546818 +782.0,2.317487872439314 +783.0,2.4605037449620495 +784.0,2.4318201093571434 +785.0,2.7815161596495983 +786.0,2.4061566784903956 +787.0,2.446480835771822 +788.0,2.782049652454356 +789.0,2.3582605061419777 +790.0,2.3312150348769967 +791.0,2.3946426384466326 +792.0,3.0650975881433773 +793.0,2.5706428835690414 +794.0,2.3055548514136364 +795.0,2.6242841736753793 +796.0,2.489171047521251 +797.0,2.494491595252072 +798.0,2.342012516923276 +799.0,3.9338607709000044 +800.0,3.139629207115494 +801.0,3.054834368742369 +802.0,3.23134344614479 +803.0,2.3424088097679503 +804.0,2.5794322319005976 +805.0,2.4233871009221857 +806.0,2.3015937776382125 +807.0,2.422536275279004 +808.0,2.4162841990295103 +809.0,2.371017031328303 +810.0,2.3859244434154836 +811.0,2.5849500627958655 +812.0,2.6421433567208807 +813.0,2.465452721458804 +814.0,2.426712387821924 +815.0,2.654912611730393 +816.0,2.415976350953178 +817.0,2.3828478701620446 +818.0,2.4865067260001146 +819.0,2.4447246041490995 +820.0,2.499483117294369 +821.0,2.400721139573236 +822.0,2.6561501054958634 +823.0,2.763036932604759 +824.0,2.422515843458073 +825.0,2.385847298434088 +826.0,2.449063813274116 +827.0,2.5376479594459864 +828.0,2.422491778725586 +829.0,2.3739859615224908 +830.0,2.699998046051917 +831.0,2.4419726166385067 +832.0,2.568105478167656 +833.0,2.8011643625067797 +834.0,2.961606688969294 +835.0,2.8013939045977074 +836.0,2.764933104154101 +837.0,2.449789563474544 +838.0,2.734231096194045 +839.0,2.433378669269634 +840.0,2.313073216577006 +841.0,2.565218263843074 +842.0,2.4433777324719066 +843.0,2.6178448041804474 +844.0,2.4749457884948645 +845.0,2.3212935773825487 +846.0,3.401127766092703 +847.0,2.4912891411684477 +848.0,2.4307813500934556 +849.0,2.406017948631391 +850.0,2.7508858796916615 +851.0,2.6154980450771026 +852.0,2.8525899629167055 +853.0,2.317096997719593 +854.0,2.538990509754845 +855.0,2.38450439400077 +856.0,2.4102880634854924 +857.0,2.310619589195256 +858.0,2.3857229319032998 +859.0,2.303433191479501 +860.0,2.7745093335573374 +861.0,2.921487844818091 +862.0,3.0740584937640207 +863.0,2.7033723251382984 +864.0,2.4433100373940615 +865.0,2.9159751069816044 +866.0,2.7014609708963735 +867.0,2.4579265168407614 +868.0,2.321687236159502 +869.0,2.4593155830842273 +870.0,2.369203701570486 +871.0,2.406460384413154 +872.0,2.413785056695049 +873.0,2.638694595970051 +874.0,2.455566573789695 +875.0,2.315580814310708 +876.0,2.303067333035344 +877.0,2.401573797153163 +878.0,3.0471452130413383 +879.0,2.4799514061194423 +880.0,2.8257691580741238 +881.0,2.431631489777443 +882.0,2.3320440449387214 +883.0,2.524803785250708 +884.0,2.30399892444411 +885.0,2.433812848621364 +886.0,2.805698134096615 +887.0,2.3814928898923173 +888.0,2.732028929963616 +889.0,2.3489959009361483 +890.0,2.3777813559471386 +891.0,2.3650305877273143 +892.0,2.3904410040851025 +893.0,2.313615563819825 +894.0,2.5113742235309275 +895.0,2.370389826917024 +896.0,3.493104249675489 +897.0,2.456808238347769 +898.0,2.8440150453469335 +899.0,2.3959053587965373 +900.0,2.441588293552125 +901.0,2.8483310846349554 +902.0,2.346537826202659 +903.0,2.416110869573245 +904.0,2.442774717207903 +905.0,2.371238904077353 +906.0,2.6128108446260856 +907.0,2.420369918777067 +908.0,2.479803240425519 +909.0,2.32477651638086 +910.0,2.611435402829742 +911.0,4.028288665125549 +912.0,2.7460090739549767 +913.0,2.7991613899828653 +914.0,2.3928116858696207 +915.0,2.345195616709896 +916.0,2.733127257628164 +917.0,2.597984017439932 +918.0,3.236980703531705 +919.0,2.306612979365545 +920.0,2.4386258111422463 +921.0,3.6553003684188665 +922.0,2.874717744312009 +923.0,2.542790070735597 +924.0,3.0590473903486344 +925.0,2.584354134779471 +926.0,2.4917785517363438 +927.0,2.3920646071889875 +928.0,2.9175787470873775 +929.0,3.186627600706674 +930.0,2.97427725231165 +931.0,2.8859762729692466 +932.0,2.4345685768426115 +933.0,2.482285289065092 +934.0,2.5183076903791957 +935.0,2.324138495524278 +936.0,2.336318094759705 +937.0,2.3712972614173324 +938.0,2.415837291675835 +939.0,3.0216255010830433 +940.0,2.468842974027656 +941.0,2.8514639604590606 +942.0,2.5081809496210132 +943.0,2.363396082255565 +944.0,2.3778420848860673 +945.0,2.4281161130916624 +946.0,2.581109558793061 +947.0,2.580554420857392 +948.0,2.9525483778035984 +949.0,2.320064394088506 +950.0,2.3710546757928412 +951.0,2.7258008665242226 +952.0,2.356219774834942 +953.0,2.487291604424935 +954.0,2.3614955370642883 +955.0,2.436870402961061 +956.0,2.919686817047017 +957.0,2.7939933439982894 +958.0,2.454932030622489 +959.0,2.789174533489706 +960.0,2.4461860276891634 +961.0,2.472519444693734 +962.0,2.568320891965387 +963.0,2.388713090748325 +964.0,2.7314946002329674 +965.0,2.5061692789034224 +966.0,2.793667838739911 +967.0,2.755485929436612 +968.0,2.5234223130290414 +969.0,2.4347027547932356 +970.0,2.7983319856762074 +971.0,2.6309649753739404 +972.0,2.4255668089230786 +973.0,2.4493359987964083 +974.0,2.7015241276952784 +975.0,2.4102908180330034 +976.0,2.371897775844984 +977.0,2.610293274344386 +978.0,2.33361801575292 +979.0,2.4011951291015365 +980.0,2.928560785598069 +981.0,2.5467438099632993 +982.0,2.685067303265268 +983.0,2.320677097562287 +984.0,2.8003792532307896 +985.0,2.7504174083987616 +986.0,2.4120875251014735 +987.0,2.491035146523787 +988.0,2.3143084813685557 +989.0,2.468842209893808 +990.0,2.498962207045931 +991.0,2.4594410245844815 +992.0,2.9463203593072484 +993.0,2.9368455068307386 +994.0,3.1507031367536507 +995.0,2.659758781692113 +996.0,2.399244830483232 +997.0,2.5950611294149293 +998.0,2.3791900337367884 +999.0,2.763554041139007 +1000.0,2.6159211712791235 +1001.0,2.430402526516001 +1002.0,2.444217505922265 +1003.0,2.529678497612688 +1004.0,2.34247951610741 +1005.0,2.664354110091075 +1006.0,3.2844846716792717 +1007.0,2.466537549716676 +1008.0,2.801002832040596 +1009.0,2.827230936300146 +1010.0,2.3820756086147874 +1011.0,2.529216184972202 +1012.0,2.4101728703347622 +1013.0,2.9932783135854364 +1014.0,2.5366676883513852 +1015.0,2.5620870109106346 +1016.0,2.4534783061247785 +1017.0,2.934804945661592 +1018.0,2.617228699646092 +1019.0,3.6380395215941035 +1020.0,2.87494094678926 +1021.0,3.2405716907051287 +1022.0,2.336903437717868 +1023.0,2.8731740380325794 +1024.0,2.603507339221464 +1025.0,2.6139205421541427 +1026.0,2.3922801980291326 +1027.0,2.4408273479529483 +1028.0,2.5964142565809976 +1029.0,2.588448303124469 +1030.0,3.1464550609683255 +1031.0,2.3020869347583695 +1032.0,2.4198150211531204 +1033.0,2.5025276560432905 +1034.0,2.390037076003197 +1035.0,2.785687923496541 +1036.0,2.5692841324392823 +1037.0,2.380243719695106 +1038.0,2.987182178729497 +1039.0,2.33908730211407 +1040.0,3.0255013424532042 +1041.0,2.3508275603196456 +1042.0,2.964263235285877 +1043.0,2.596958785551274 +1044.0,2.5924580859967215 +1045.0,2.3196026604828406 +1046.0,2.888964536958388 +1047.0,2.8441488864647066 +1048.0,3.091904065299148 +1049.0,2.529297260055228 +1050.0,3.062131790922253 +1051.0,2.30301303960867 +1052.0,2.7370003892888852 +1053.0,2.3090775649957305 +1054.0,3.3070620841681775 +1055.0,2.4222529433506588 +1056.0,2.7153023139892607 +1057.0,2.890885528453836 +1058.0,2.463534514587346 +1059.0,2.6225287125710404 +1060.0,3.4439268295513044 +1061.0,2.7738253146145864 +1062.0,3.2214764836553504 +1063.0,2.7699875587564966 +1064.0,2.7526545351241287 +1065.0,2.506160783967396 +1066.0,2.344512752091365 +1067.0,2.3821754275139333 +1068.0,3.1677320466250882 +1069.0,2.4793806025370513 +1070.0,2.6144980283748724 +1071.0,2.3799744364187974 +1072.0,2.63018226528892 +1073.0,2.8936628075149624 +1074.0,2.3693787416535117 +1075.0,2.7455514349747596 +1076.0,3.7498636078192114 +1077.0,2.6582402182560187 +1078.0,2.7707686138889795 +1079.0,3.24666751977278 +1080.0,2.504014708367692 +1081.0,2.579659116884528 +1082.0,2.9240037937721017 +1083.0,2.828985966357986 +1084.0,2.4138647797207 +1085.0,2.333158536527563 +1086.0,2.6443582382806614 +1087.0,2.6882835695225804 +1088.0,2.669351533086817 +1089.0,2.3287593344765556 +1090.0,2.807801489628978 +1091.0,2.4678541503216898 +1092.0,3.1438628947595717 +1093.0,2.541657660650555 +1094.0,2.5683319822027846 +1095.0,2.8942315408988986 +1096.0,2.3127943343744004 +1097.0,3.1154503134684215 +1098.0,2.813467746660575 +1099.0,2.462611273615758 +1100.0,2.3482536914955303 +1101.0,2.4155292874960423 +1102.0,2.345323893042699 +1103.0,2.33775996120017 +1104.0,2.3093947310360434 +1105.0,2.3084110762054295 +1106.0,2.440795258644146 +1107.0,2.861422067673438 +1108.0,2.3407258045923753 +1109.0,2.3676648496182353 +1110.0,2.3013632869440888 +1111.0,2.9722934604470366 +1112.0,2.8978877296042858 +1113.0,2.425674896684535 +1114.0,2.3664448056871796 +1115.0,2.651304063313567 +1116.0,3.2706358553476367 +1117.0,2.507466018907224 +1118.0,2.7656804599605542 +1119.0,2.370406349814297 +1120.0,2.7106442371865582 +1121.0,2.337733033682713 +1122.0,3.3367731018152798 +1123.0,2.5406139885765957 +1124.0,2.5472353968174914 +1125.0,2.401430380842864 +1126.0,2.520560034929358 +1127.0,2.479039083676527 +1128.0,2.6361406693417586 +1129.0,2.4357640703468317 +1130.0,2.308086225487518 +1131.0,3.5211970612599854 +1132.0,2.3798275851787527 +1133.0,2.449989035155727 +1134.0,2.339708619850989 +1135.0,2.5216558319995124 +1136.0,2.3845857103469728 +1137.0,2.3700406190198784 +1138.0,2.6720987044717184 +1139.0,2.3446815638404668 +1140.0,3.6581120568871426 +1141.0,2.3821429987080016 +1142.0,2.36172743238006 +1143.0,2.6591376537329685 +1144.0,2.40388708648159 +1145.0,2.406877403815988 +1146.0,2.7460318530368744 +1147.0,2.323027647015494 +1148.0,2.629272933964338 +1149.0,2.3331113884919676 +1150.0,2.426177388715518 +1151.0,3.0030879281116203 +1152.0,2.6699661728038047 +1153.0,2.6073911567983163 +1154.0,2.350526624653195 +1155.0,2.5838222259756947 +1156.0,2.410896512601341 +1157.0,2.641495364790714 +1158.0,3.613482045961633 +1159.0,2.457971195572614 +1160.0,2.3975423099194373 +1161.0,2.7773271337945244 +1162.0,2.325517586871239 +1163.0,2.373629854123795 +1164.0,2.3156407236182193 +1165.0,2.4306907762302257 +1166.0,2.495439837948473 +1167.0,2.333349145532814 +1168.0,2.4115972741629794 +1169.0,2.307269818172883 +1170.0,2.4156855776853825 +1171.0,2.638338803390925 +1172.0,2.3915844737810463 +1173.0,2.39787921304362 +1174.0,2.3023268330448334 +1175.0,2.336486670397053 +1176.0,2.4344181903865985 +1177.0,2.5415667510738675 +1178.0,2.5779517414213378 +1179.0,2.598730614925009 +1180.0,2.743857189090985 +1181.0,2.5239834704617623 +1182.0,3.3482914871413136 +1183.0,2.857226404800887 +1184.0,2.6091622502812024 +1185.0,2.4760522418112085 +1186.0,2.4428046191933768 +1187.0,2.7270819312459555 +1188.0,2.32149585440224 +1189.0,2.792805315328741 +1190.0,2.3320074898980483 +1191.0,2.351103858729301 +1192.0,2.3294226203017465 +1193.0,2.671201456206334 +1194.0,2.759949407765763 +1195.0,2.7223418885209814 +1196.0,2.3442875456567265 +1197.0,2.4888032689920605 +1198.0,3.038805904532029 +1199.0,2.771391495122344 +1200.0,2.364607476429742 +1201.0,2.715819162467265 +1202.0,2.4633853610069782 +1203.0,2.7659268184703296 +1204.0,2.579322656006532 +1205.0,2.309556020736101 +1206.0,2.444945419121369 +1207.0,2.31612353011121 +1208.0,2.635235200967858 +1209.0,2.636311257338984 +1210.0,2.477532226984564 +1211.0,2.673034164319451 +1212.0,2.5540077995243298 +1213.0,2.3858548826023593 +1214.0,2.4752300947400454 +1215.0,2.710566103709364 +1216.0,2.383871506761847 +1217.0,2.347415961228968 +1218.0,2.7360677807271037 +1219.0,2.560343375963512 +1220.0,2.3117355390987036 +1221.0,2.3957972767245637 +1222.0,2.5947335401441065 +1223.0,3.0089717926630986 +1224.0,2.327791070928267 +1225.0,2.8359844790264352 +1226.0,2.4186729031399996 +1227.0,2.369561865840598 +1228.0,2.4544362643389954 +1229.0,2.3404964177040055 +1230.0,2.7200505813607925 +1231.0,2.8087654197475103 +1232.0,2.517749864091736 +1233.0,2.3659665609777965 +1234.0,2.4586007463740027 +1235.0,2.4665124090262083 +1236.0,2.3381483043276154 +1237.0,2.3541696809439663 +1238.0,2.577659070394346 +1239.0,3.1813041724915005 +1240.0,2.3799470257817745 +1241.0,2.3279418889035624 +1242.0,3.078154204260536 +1243.0,2.3478002927188597 +1244.0,2.3087713103589227 +1245.0,2.342671483805816 +1246.0,2.4644296252424422 +1247.0,2.532272646995902 +1248.0,2.94969812867844 +1249.0,2.6853406750662514 +1250.0,3.0739348904433097 +1251.0,3.1119304952046556 +1252.0,2.315593207284192 +1253.0,2.3702402985594575 +1254.0,2.772936886405563 +1255.0,2.773898987704688 +1256.0,2.3506447456846034 +1257.0,2.85515864769953 +1258.0,2.449471018738103 +1259.0,2.344990146877662 +1260.0,2.3700378567012055 +1261.0,2.307191134402495 +1262.0,2.514531759036164 +1263.0,2.315288537230734 +1264.0,2.318024860996818 +1265.0,2.3724045155400706 +1266.0,2.6078244634643384 +1267.0,2.404162086312507 +1268.0,3.77735264896455 +1269.0,2.5629382873776905 +1270.0,2.3425324768917704 +1271.0,2.709943058367026 +1272.0,2.3818949807774352 +1273.0,2.9325276148771997 +1274.0,2.6372002449222722 +1275.0,2.708509311613754 +1276.0,2.327611266508673 +1277.0,2.483664528416588 +1278.0,2.7973227777347223 +1279.0,2.486187005183578 +1280.0,2.6297325513759047 +1281.0,2.573029471251078 +1282.0,2.425953136622344 +1283.0,2.5197294240331347 +1284.0,2.314489486247776 +1285.0,2.4306865978658676 +1286.0,2.8262144349773086 +1287.0,2.5795572623865333 +1288.0,3.2926438017686457 +1289.0,2.500199659239414 +1290.0,2.3958685723308344 +1291.0,2.311477299049568 +1292.0,2.9216408373263847 +1293.0,2.6223617198094558 +1294.0,2.9725449758335905 +1295.0,2.5758227021274687 +1296.0,2.5769923759299904 +1297.0,2.4295788551573714 +1298.0,2.5424634516584836 +1299.0,2.553371086518535 +1300.0,2.462249509839883 +1301.0,2.8624969913801874 +1302.0,2.331788362407084 +1303.0,2.5239440537077864 +1304.0,2.305020749983149 +1305.0,2.478396910336359 +1306.0,3.672840934723097 +1307.0,2.30225550276632 +1308.0,2.656914046942833 +1309.0,2.5777317998596723 +1310.0,2.6121094286204647 +1311.0,2.391118959944372 +1312.0,2.3013377745397503 +1313.0,2.3897607395388514 +1314.0,2.389181489912439 +1315.0,2.379565899283691 +1316.0,2.6083976383627148 +1317.0,2.6254631403866835 +1318.0,2.369347319315164 +1319.0,2.538659138850724 +1320.0,2.550460811056538 +1321.0,2.427914274480001 +1322.0,2.352903715582173 +1323.0,2.3649076955664676 +1324.0,2.488751628089543 +1325.0,2.411016515637746 +1326.0,2.756054880035733 +1327.0,2.696326967015669 +1328.0,2.6432432648612885 +1329.0,2.315448278016595 +1330.0,2.348576559339811 +1331.0,2.372500288948493 +1332.0,2.3007240323577767 +1333.0,2.44621634347663 +1334.0,2.834450887978105 +1335.0,2.4517212613294297 +1336.0,2.8360408032871476 +1337.0,2.456123485498125 +1338.0,2.6086838592905326 +1339.0,2.3275777597785345 +1340.0,3.020783383820861 +1341.0,2.603851830817609 +1342.0,2.421756477810447 +1343.0,2.45113826145537 +1344.0,2.3325146376993455 +1345.0,2.408418864687309 +1346.0,2.302910089415646 +1347.0,2.6084537313347806 +1348.0,2.5271480280706466 +1349.0,3.165258474975652 +1350.0,2.3827280584892003 +1351.0,2.310928587572179 +1352.0,2.409383409078265 +1353.0,2.4599921196203476 +1354.0,2.6040341543014627 +1355.0,3.0175345528633994 +1356.0,2.625328883697109 +1357.0,3.4397640667238827 +1358.0,2.341014005589315 +1359.0,2.805491814789939 +1360.0,3.131123604211719 +1361.0,2.4295311220488416 +1362.0,2.3821466723568907 +1363.0,2.3065859233879853 +1364.0,3.2850024663421826 +1365.0,2.961387786977944 +1366.0,3.3864402959070548 +1367.0,2.6846639268837404 +1368.0,2.8835164548724093 +1369.0,2.6065226445750227 +1370.0,2.4511687377876625 +1371.0,2.3907183436333237 +1372.0,3.271783482174743 +1373.0,2.4271292251778225 +1374.0,2.8678109404636816 +1375.0,2.5651903687689255 +1376.0,2.42483963594516 +1377.0,2.7237653699320106 +1378.0,2.3740094214977443 +1379.0,2.3954768736793226 +1380.0,2.300305723717052 +1381.0,2.5951838901640443 +1382.0,2.6950262071785365 +1383.0,2.7814769219017172 +1384.0,2.5855025886309773 +1385.0,2.4506148898583144 +1386.0,2.3634595116505994 +1387.0,3.145981042944719 +1388.0,2.835652897303237 +1389.0,2.345601294779314 +1390.0,2.601235379399523 +1391.0,2.3753140674988495 +1392.0,2.489493768232065 +1393.0,3.485590784031631 +1394.0,2.3841347475074772 +1395.0,2.7344159634837055 +1396.0,3.557087317308401 +1397.0,2.4852997751853154 +1398.0,3.944907786050175 +1399.0,2.310310698666076 +1400.0,2.5595373621257216 +1401.0,2.6519815712104724 +1402.0,2.759986425982584 +1403.0,2.5911595023554073 +1404.0,2.375299801330057 +1405.0,2.353570265777094 +1406.0,2.699138573306899 +1407.0,2.3837272671653498 +1408.0,2.6417258134889776 +1409.0,2.4056164977458643 +1410.0,2.996105276353095 +1411.0,2.416782330816972 +1412.0,2.385347129970989 +1413.0,2.630034461885371 +1414.0,2.3536380943705586 +1415.0,2.3320463030979552 +1416.0,2.415829829365076 +1417.0,2.5034537358175935 +1418.0,2.602185011538341 +1419.0,2.766816783030717 +1420.0,2.3334392112917013 +1421.0,3.1080209753371655 +1422.0,2.3713506858908118 +1423.0,2.4319236537340934 +1424.0,2.5245199592538023 +1425.0,2.4324677095548584 +1426.0,2.4303907032169643 +1427.0,2.7797148287114615 +1428.0,2.3775905087205422 +1429.0,2.4619158705457425 +1430.0,2.981590124250501 +1431.0,2.668425667550321 +1432.0,2.6575116665776672 +1433.0,2.3711424027985277 +1434.0,2.317150430822578 +1435.0,2.365504216114938 +1436.0,2.347977860876097 +1437.0,2.3583356859292293 +1438.0,2.747305388002208 +1439.0,3.137017096891848 +1440.0,2.3476175986955785 +1441.0,2.3672376764305434 +1442.0,2.49821938804729 +1443.0,2.4706044793367408 +1444.0,3.1335538441726514 +1445.0,3.068629704460096 +1446.0,2.581253147542145 +1447.0,2.7563206785268353 +1448.0,2.4029564309930636 +1449.0,2.661995977206326 +1450.0,2.3820137227122795 +1451.0,2.560297788781555 +1452.0,2.5195554292798135 +1453.0,2.45984680004284 +1454.0,2.6822684272678647 +1455.0,2.6729021069782113 +1456.0,2.5695332914068905 +1457.0,2.8362141387059796 +1458.0,3.377457071005302 +1459.0,2.5156696970620684 +1460.0,2.7887975141597 +1461.0,4.194451232217232 +1462.0,2.923761484012935 +1463.0,2.325412903919077 +1464.0,2.820992828404732 +1465.0,2.78266004173099 +1466.0,2.815751816926079 +1467.0,2.313199052592063 +1468.0,2.3737298503705264 +1469.0,2.337633882564722 +1470.0,2.320881860508676 +1471.0,2.349190063033047 +1472.0,2.4740024226562727 +1473.0,2.463527681823069 +1474.0,2.7038726532510604 +1475.0,2.374180381244626 +1476.0,2.3551163750270536 +1477.0,2.796180689521858 +1478.0,2.332163884779997 +1479.0,2.3312221207330666 +1480.0,2.699293614903116 +1481.0,2.3384123638066936 +1482.0,2.6503946454632494 +1483.0,2.3529807037780794 +1484.0,2.438264866914517 +1485.0,2.5764639621176615 +1486.0,2.37737468981812 +1487.0,2.870596664666365 +1488.0,3.02149929106097 +1489.0,2.5424348580937055 +1490.0,3.196480883608398 +1491.0,2.304372860027567 +1492.0,2.9546095749624355 +1493.0,2.6077337003836325 +1494.0,2.459716127855039 +1495.0,2.3009111988488113 +1496.0,3.381537427745344 +1497.0,2.4680934465864657 +1498.0,2.4678866351545174 +1499.0,2.3623498151040203 +1500.0,3.1067143852885626 +1501.0,2.3826640404769917 +1502.0,2.530257892982734 +1503.0,2.4584871472794703 +1504.0,2.3362098721371916 +1505.0,2.475576146883492 +1506.0,2.8017362331732434 +1507.0,2.6134281035438662 +1508.0,2.9386653978095447 +1509.0,2.402465411957511 +1510.0,2.36179393140232 +1511.0,2.9711680070478645 +1512.0,2.5400015697626697 +1513.0,3.386465478358504 +1514.0,2.37852316307241 +1515.0,2.5537976247801235 +1516.0,2.8942700047888237 +1517.0,2.5123198170018437 +1518.0,2.9400520584676992 +1519.0,2.6346995515937617 +1520.0,2.6451078463005717 +1521.0,2.4129882895759347 +1522.0,2.4806261022796967 +1523.0,2.3209797622559076 +1524.0,2.980842596449225 +1525.0,2.5957036596200354 +1526.0,2.443286637122806 +1527.0,2.509285639133736 +1528.0,2.8742516925445787 +1529.0,2.3401913220541397 +1530.0,2.3993750574425823 +1531.0,2.6871683040497496 +1532.0,2.554483657858905 +1533.0,2.469460468991528 +1534.0,2.677160747167033 +1535.0,3.7301815479975087 +1536.0,2.592073114031233 +1537.0,2.5200050664850924 +1538.0,2.670473246474184 +1539.0,2.4849947047177663 +1540.0,2.498428833395639 +1541.0,2.970434099390599 +1542.0,2.385603045596653 +1543.0,2.5663475004406022 +1544.0,2.848984949465285 +1545.0,2.627155599404709 +1546.0,2.814449881552737 +1547.0,3.532214664599406 +1548.0,2.9922476057279632 +1549.0,2.703236279351853 +1550.0,2.5604147739416403 +1551.0,2.663280089275142 +1552.0,2.3951562456563575 +1553.0,2.3014947142760867 +1554.0,2.548518625692843 +1555.0,2.6974120269352575 +1556.0,2.377005492770585 +1557.0,2.300445483635149 +1558.0,2.427257721419618 +1559.0,2.417658522942652 +1560.0,2.4467737898326467 +1561.0,2.398275074032515 +1562.0,2.449466490613012 +1563.0,3.279679025454446 +1564.0,2.6360388539387793 +1565.0,2.779342411497185 +1566.0,3.511619738971155 +1567.0,2.428228572499195 +1568.0,2.5116857104790693 +1569.0,2.3456349625375883 +1570.0,2.484136650042601 +1571.0,2.4195045384855427 +1572.0,2.5347316350226556 +1573.0,2.3714684344500374 +1574.0,2.4459262919982416 +1575.0,2.439244434268031 +1576.0,2.690915089897202 +1577.0,2.6429158938012813 +1578.0,2.3696944712500194 +1579.0,2.312559761504753 +1580.0,2.7065631287147056 +1581.0,2.311723760529252 +1582.0,2.7390776023461463 +1583.0,2.5407043605926805 +1584.0,2.53491556717484 +1585.0,2.8840436392347093 +1586.0,2.3312262115459808 +1587.0,2.429432124022413 +1588.0,2.8005107595949443 +1589.0,2.5068510624596754 +1590.0,2.358611410817587 +1591.0,2.514273238282387 +1592.0,2.4367114363778217 +1593.0,2.691759018158527 +1594.0,2.4047924233516946 +1595.0,2.664517231423885 +1596.0,2.40404259360767 +1597.0,2.551455539041375 +1598.0,2.616086178272525 +1599.0,2.3407555913947484 +1600.0,2.4566350800657277 +1601.0,2.616634502479412 +1602.0,2.5092786249407313 +1603.0,2.56221563384822 +1604.0,3.3003317384336883 +1605.0,2.468484997890831 +1606.0,2.655432272936341 +1607.0,2.605009793236213 +1608.0,2.409537930738537 +1609.0,2.3519593028143886 +1610.0,2.3982642081593846 +1611.0,2.571459985997556 +1612.0,2.503470149399294 +1613.0,2.7293927777574356 +1614.0,2.679684928077549 +1615.0,2.8619458998299327 +1616.0,2.3882531748345164 +1617.0,2.478353258594478 +1618.0,4.272577859705057 +1619.0,2.539955077167199 +1620.0,2.633803501926756 +1621.0,2.432641250853795 +1622.0,2.450995962898905 +1623.0,2.3123731604187947 +1624.0,3.163611781660063 +1625.0,2.522476103581439 +1626.0,3.2249732078831364 +1627.0,2.665966021031942 +1628.0,2.5568481263074276 +1629.0,2.4044841502693477 +1630.0,3.090382126118867 +1631.0,2.5273943920172375 +1632.0,2.4010106692930027 +1633.0,2.7112276642908855 +1634.0,3.6588920410111445 +1635.0,2.342217074788988 +1636.0,2.553808290734606 +1637.0,2.4180174502666896 +1638.0,3.2044603210647233 +1639.0,2.47668381513156 +1640.0,2.7882680867085874 +1641.0,2.4809217290633048 +1642.0,2.343302017331436 +1643.0,2.4250274866667767 +1644.0,2.475120904807934 +1645.0,2.8195561538745495 +1646.0,2.4528093926354075 +1647.0,2.5808263217186016 +1648.0,2.6380453281456924 +1649.0,2.9983219202293045 +1650.0,2.6130723749671034 +1651.0,3.8126871320882163 +1652.0,2.8816881397777108 +1653.0,2.9258192252732225 +1654.0,2.373086247863288 +1655.0,2.4339741024860353 +1656.0,2.5385346881178785 +1657.0,2.4192718475931403 +1658.0,2.9986663789397072 +1659.0,2.4745682420856854 +1660.0,3.0787169707035984 +1661.0,3.544326663111745 +1662.0,2.3205744954473704 +1663.0,3.194701933736278 +1664.0,2.328211957421679 +1665.0,2.3563874040844754 +1666.0,2.350222805783067 +1667.0,2.35067561582776 +1668.0,2.556399704979296 +1669.0,3.0768344564754924 +1670.0,2.8643067374706916 +1671.0,2.424525282228054 +1672.0,3.571225138491067 +1673.0,2.383686499463908 +1674.0,2.4059215172621022 +1675.0,2.6834735004850234 +1676.0,2.5046951985727484 +1677.0,2.60004752335436 +1678.0,2.3934692251811858 +1679.0,2.3780367719390836 +1680.0,2.3411492962311646 +1681.0,2.3783916692646327 +1682.0,2.360895059687404 +1683.0,3.3264735192574753 +1684.0,2.3864310842890744 +1685.0,3.292491316927191 +1686.0,2.734688991161265 +1687.0,2.321305162468496 +1688.0,2.5015320333462725 +1689.0,2.3854427297163547 +1690.0,2.4589361154767673 +1691.0,2.560390193216092 +1692.0,3.097612819037955 +1693.0,2.6717796524866753 +1694.0,2.5233268710576926 +1695.0,2.756576415932883 +1696.0,2.32160115011589 +1697.0,2.7120140768145116 +1698.0,2.433063142110196 +1699.0,2.7030043725571926 +1700.0,2.5728900316341057 +1701.0,2.5626520463498657 +1702.0,2.8027193279514195 +1703.0,2.363268942291414 +1704.0,2.6292726090341287 +1705.0,2.716458837435582 +1706.0,2.3947263218414916 +1707.0,2.393418590479982 +1708.0,2.416352448042814 +1709.0,2.5810423936660905 +1710.0,2.367268141409557 +1711.0,2.312668336483176 +1712.0,2.4338688157665476 +1713.0,2.4971827389545713 +1714.0,2.491224400253096 +1715.0,3.1205380799696343 +1716.0,2.343979605794706 +1717.0,2.6128255556654922 +1718.0,2.821703571571562 +1719.0,2.842488047959395 +1720.0,2.7452402061020433 +1721.0,2.976443132925499 +1722.0,2.3386891474461997 +1723.0,2.596586628825081 +1724.0,3.124792268584236 +1725.0,2.3647537878096423 +1726.0,2.857916957070382 +1727.0,2.310948768160608 +1728.0,2.410773721040658 +1729.0,2.476649233262903 +1730.0,2.5358078060197404 +1731.0,2.7790932275194016 +1732.0,2.581553677758686 +1733.0,2.3657700184851955 +1734.0,2.6921633412584702 +1735.0,2.6121087574137376 +1736.0,2.352532249320533 +1737.0,2.523950763601483 +1738.0,2.9792638148362336 +1739.0,2.602906338808919 +1740.0,2.667523487538088 +1741.0,3.1874400389094357 +1742.0,3.8405400288985483 +1743.0,2.8577713425351794 +1744.0,2.727901091105246 +1745.0,2.6356431174766173 +1746.0,2.4266849228737573 +1747.0,2.3026803801490883 +1748.0,2.81919705077981 +1749.0,2.3248125135651065 +1750.0,2.9128050858598744 +1751.0,2.8791235194297466 +1752.0,2.5941446258175636 +1753.0,2.719080296665005 +1754.0,2.6819635933597046 +1755.0,3.2656027908352665 +1756.0,2.6885458343133335 +1757.0,2.3608885041881753 +1758.0,2.3266345527933816 +1759.0,2.494539486236613 +1760.0,3.0638671833196454 +1761.0,2.7194004968651004 +1762.0,3.079457081963983 +1763.0,2.44961921610906 +1764.0,2.4138195526951076 +1765.0,2.4303005269150555 +1766.0,2.526602794841229 +1767.0,2.768019378532275 +1768.0,2.779128611833656 +1769.0,2.3705592775460542 +1770.0,2.6730683862667934 +1771.0,2.312506942454713 +1772.0,2.4573283813878968 +1773.0,2.381943345216438 +1774.0,2.3669679391154803 +1775.0,2.8886265530192294 +1776.0,2.3170900956127682 +1777.0,2.4100297386765552 +1778.0,2.459515138118532 +1779.0,2.6424599429594764 +1780.0,2.3919110966453543 +1781.0,3.150543070469415 +1782.0,2.4656689976363695 +1783.0,2.7218921769761635 +1784.0,3.06362985269746 +1785.0,2.6599003948734636 +1786.0,2.7043673855328 +1787.0,2.864606538026382 +1788.0,2.409569236162443 +1789.0,2.4193135473934912 +1790.0,2.7578133196446806 +1791.0,2.3295645748084133 +1792.0,2.333603136732685 +1793.0,3.0087399782663424 +1794.0,2.607054111612168 +1795.0,2.5909198175524577 +1796.0,2.6715030486114286 +1797.0,2.3569679122814025 +1798.0,3.3326810459391503 +1799.0,2.7878809482562064 +1800.0,2.352229773619966 +1801.0,2.845773468577553 +1802.0,2.466855398527029 +1803.0,2.3930911204750975 +1804.0,2.3208533857427227 +1805.0,2.5875121156729 +1806.0,2.4462522340824897 +1807.0,2.3585691991197857 +1808.0,2.866332655801477 +1809.0,2.427439960938354 +1810.0,2.5022313096210973 +1811.0,2.5868947823327892 +1812.0,2.6961218562275358 +1813.0,2.77378000139678 +1814.0,2.3602627050244 +1815.0,2.763181030447759 +1816.0,2.78539442467764 +1817.0,2.3431673959267285 +1818.0,2.3471381287759017 +1819.0,2.5086840006782483 +1820.0,2.357496808095982 +1821.0,2.7747615018530043 +1822.0,2.8133565080953926 +1823.0,2.536908843659326 +1824.0,2.381454031909052 +1825.0,2.3000854084838656 +1826.0,3.080465576248119 +1827.0,2.3276404888092297 +1828.0,2.356688320707731 +1829.0,2.389484382244159 +1830.0,2.336080418477779 +1831.0,2.4083420344646935 +1832.0,2.505856752501561 +1833.0,2.6372579584424027 +1834.0,2.445792465541656 +1835.0,2.639539381175451 +1836.0,2.3728185559832555 +1837.0,2.3661199293352357 +1838.0,2.304892926474232 +1839.0,2.3499570229435927 +1840.0,3.66038893131901 +1841.0,2.3917791147808236 +1842.0,2.395168716869826 +1843.0,2.433476452620967 +1844.0,2.63272710834522 +1845.0,2.5505737264800286 +1846.0,2.4464173693378757 +1847.0,2.677944570456913 +1848.0,2.704644902352906 +1849.0,2.5960423196172955 +1850.0,2.328986505266285 +1851.0,2.6018128483443723 +1852.0,2.607075292683457 +1853.0,2.553793229556906 +1854.0,2.8794112761473283 +1855.0,2.5128344357154866 +1856.0,2.369060121054281 +1857.0,2.361759354094661 +1858.0,2.323546682807422 +1859.0,3.280896418274676 +1860.0,2.608291885042205 +1861.0,2.459240203100119 +1862.0,2.9281813991937367 +1863.0,3.119595665925197 +1864.0,3.5447344724072343 +1865.0,3.120071815260176 +1866.0,2.4975402550474373 +1867.0,2.385508244116987 +1868.0,2.4109696843365316 +1869.0,2.712696249135719 +1870.0,2.439449351453235 +1871.0,2.7723804446429847 +1872.0,2.5786948583961538 +1873.0,2.647627927415117 +1874.0,2.354494804976236 +1875.0,2.329356887413412 +1876.0,2.3518760821492295 +1877.0,2.3670007617992974 +1878.0,2.3661612006702772 +1879.0,2.865888300256355 +1880.0,2.376490722779648 +1881.0,2.390907441181911 +1882.0,2.367825375930294 +1883.0,2.3410117518400297 +1884.0,3.2617654656654387 +1885.0,2.7058000531731152 +1886.0,2.4203951384688542 +1887.0,2.375454101900182 +1888.0,2.620179537413718 +1889.0,2.388999999680461 +1890.0,2.9264479699113775 +1891.0,2.869236534904708 +1892.0,2.658527580584102 +1893.0,2.683215871761762 +1894.0,2.365591015958024 +1895.0,2.734732006316653 +1896.0,2.3511668362889804 +1897.0,2.455625625981523 +1898.0,3.506960521505371 +1899.0,2.6626359571330123 +1900.0,2.7649354027730553 +1901.0,2.7595639335795425 +1902.0,2.7828929330601433 +1903.0,2.470187194788688 +1904.0,2.5457891729901876 +1905.0,2.5141426879237185 +1906.0,3.6340296846824267 +1907.0,2.4076040822086338 +1908.0,2.5876223771192763 +1909.0,2.602541720506625 +1910.0,2.6167987146135063 +1911.0,2.3890969520784604 +1912.0,2.3764425195104772 +1913.0,3.104960801785083 +1914.0,3.3863027290498 +1915.0,2.3519990410798455 +1916.0,2.5435548324928665 +1917.0,2.330222347469102 +1918.0,2.658861452760031 +1919.0,2.5799880724664117 +1920.0,2.3385338264940936 +1921.0,2.512218917849973 +1922.0,2.7366653116876214 +1923.0,2.4070620348571596 +1924.0,3.0417125706690755 +1925.0,2.3288359311335958 +1926.0,2.677678105021192 +1927.0,2.875382180708365 +1928.0,2.9478642345347037 +1929.0,2.829242889743459 +1930.0,3.032992068936601 +1931.0,3.0508565958969713 +1932.0,2.383533325337884 +1933.0,2.883113128587903 +1934.0,2.312338486949735 +1935.0,2.63562488916167 +1936.0,2.344632274106474 +1937.0,2.9345853185407575 +1938.0,2.961868086344841 +1939.0,2.978377506823586 +1940.0,3.1570653283505457 +1941.0,2.6544159429432925 +1942.0,2.6075735961062088 +1943.0,2.3303449649665087 +1944.0,2.3749177986340815 +1945.0,2.3287322988912336 +1946.0,2.348461613073641 +1947.0,2.370098282263112 +1948.0,2.4539685385579855 +1949.0,2.4533151326523637 +1950.0,2.9165089397420894 +1951.0,2.3221055431232362 +1952.0,2.437513488997066 +1953.0,2.795619710554529 +1954.0,2.407017544856671 +1955.0,2.427046797411733 +1956.0,2.6313560135238694 +1957.0,3.310887043693592 +1958.0,2.3539748917358563 +1959.0,2.352205018452337 +1960.0,2.7051797094883816 +1961.0,3.8845951014203237 +1962.0,2.312946955528379 +1963.0,3.6169934203510863 +1964.0,3.3870711380041083 +1965.0,2.3242168058927195 +1966.0,2.3705477183992074 +1967.0,2.3430752375448076 +1968.0,2.3136166978512844 +1969.0,2.431842455838617 +1970.0,2.7593414793795628 +1971.0,2.80363800885768 +1972.0,2.4623648778253435 +1973.0,2.5219310342231847 +1974.0,2.3711009984947986 +1975.0,2.3761328864791014 +1976.0,2.724074885156137 +1977.0,2.3310694678353903 +1978.0,2.5509972013042215 +1979.0,2.574295584061594 +1980.0,2.4671566087508054 +1981.0,2.421168752898365 +1982.0,2.780102545697516 +1983.0,2.30792865268383 +1984.0,2.8917049922236036 +1985.0,2.6204428209953328 +1986.0,2.665285836394582 +1987.0,2.7752522302251132 +1988.0,2.62774925479369 +1989.0,3.210890221045204 +1990.0,2.9529706489544916 +1991.0,2.300382937879515 +1992.0,2.852846636211667 +1993.0,3.091703627229894 +1994.0,2.657977403631469 +1995.0,2.473754180875514 +1996.0,2.924513738236273 +1997.0,2.3356285676203785 +1998.0,2.4129588376053763 +1999.0,3.2371268476984323 +2000.0,2.4892319052083063 +2001.0,2.3022201852919144 +2002.0,2.3978212937989376 +2003.0,3.107937042544748 +2004.0,2.6682845905464583 +2005.0,2.345644183400071 +2006.0,2.921493931811192 +2007.0,2.358941761159102 +2008.0,2.6754576354606177 +2009.0,2.6061280536479243 +2010.0,2.338133371767518 +2011.0,2.439274444315169 +2012.0,2.521135147283868 +2013.0,2.4513241047012198 +2014.0,2.4336778653975766 +2015.0,2.4997215403886544 +2016.0,2.9651343045234118 +2017.0,2.5226139638911245 +2018.0,2.3426543296041222 +2019.0,2.782238729463139 +2020.0,2.760826720944941 +2021.0,2.7025183404460167 +2022.0,3.0609948940619622 +2023.0,2.309584612126576 +2024.0,2.3784939489395995 +2025.0,2.590728642760953 +2026.0,2.34081489526522 +2027.0,2.327581119092345 +2028.0,2.6672689096658297 +2029.0,2.4931349641693457 +2030.0,2.3725023062987445 +2031.0,2.402079121086727 +2032.0,2.917720994119886 +2033.0,2.7931583916338028 +2034.0,2.834867293060437 +2035.0,2.5088628437920497 +2036.0,2.374940073135853 +2037.0,3.5751039577886035 +2038.0,2.3165632168789303 +2039.0,3.7576697615267745 +2040.0,2.359224204726191 +2041.0,2.358222891494548 +2042.0,3.1909542202889827 +2043.0,2.532408661974488 +2044.0,2.501536435506945 +2045.0,2.4028449305128676 +2046.0,2.4572425089074237 +2047.0,2.336697796620387 +2048.0,2.3008663233874063 +2049.0,2.450355277177829 +2050.0,2.407843428020351 +2051.0,2.6604303719683524 +2052.0,2.5756764577291813 +2053.0,2.4140328760796046 +2054.0,2.3805075758417655 +2055.0,2.399364716902129 +2056.0,2.4085025122271317 +2057.0,2.794700730572541 +2058.0,2.4542593751074016 +2059.0,2.3534123489457297 +2060.0,2.321510110563747 +2061.0,2.3071508973899117 +2062.0,2.474219433045285 +2063.0,2.3283050756544386 +2064.0,2.325112583396453 +2065.0,2.4962846688977245 +2066.0,2.33524715858291 +2067.0,2.960532016656288 +2068.0,2.475227689000177 +2069.0,2.6142810937643803 +2070.0,2.6128314792594294 +2071.0,2.308967202197746 +2072.0,2.4021360555348616 +2073.0,2.387345624964274 +2074.0,2.412263426504521 +2075.0,2.5554841430124333 +2076.0,3.025153794938421 +2077.0,2.8430928547917977 +2078.0,2.7914834332829828 +2079.0,2.303340535934478 +2080.0,2.6398653238271255 +2081.0,2.4112395355023115 +2082.0,2.619494019235033 +2083.0,2.600408307205897 +2084.0,2.448343696779752 +2085.0,2.470871306919846 +2086.0,2.5188087708086457 +2087.0,2.408808859121196 +2088.0,2.561060784037055 +2089.0,2.5205079900059015 +2090.0,3.112248610695071 +2091.0,2.323987856444149 +2092.0,2.3994829462675686 +2093.0,2.3293178691213683 +2094.0,2.8980332453353412 +2095.0,2.6654203756821575 +2096.0,2.613636097122764 +2097.0,2.723856527806541 +2098.0,2.4523646586561476 +2099.0,2.3210841317664492 +2100.0,2.6378273771478336 +2101.0,3.334287657730227 +2102.0,2.8849079212379722 +2103.0,2.313149941355453 +2104.0,2.3853410816950054 +2105.0,2.405886845988971 +2106.0,2.9274038170182495 +2107.0,2.36566476516009 +2108.0,2.362658285639254 +2109.0,2.324602876991088 +2110.0,2.446044079686856 +2111.0,2.383185730046403 +2112.0,2.489189670445394 +2113.0,2.538327479230907 +2114.0,3.45361200224691 +2115.0,2.409421347283553 +2116.0,2.412246972668416 +2117.0,2.3535464437129026 +2118.0,2.705668006006982 +2119.0,2.5451254855862633 +2120.0,2.4136541904225175 +2121.0,2.7114650657619372 +2122.0,2.3776388953859557 +2123.0,2.3508311610399155 +2124.0,2.3070638014054357 +2125.0,2.677426218796016 +2126.0,2.8148527239272214 +2127.0,2.4038472752020175 +2128.0,2.3178201683174007 +2129.0,3.2639673881218627 +2130.0,2.4257345121208913 +2131.0,2.715293784321099 +2132.0,2.9407564987473607 +2133.0,2.9895244111833486 +2134.0,2.322220045264789 +2135.0,2.7120763051397225 +2136.0,2.7167600916636587 +2137.0,2.7575752152841355 +2138.0,3.029337431953982 +2139.0,2.755888665619671 +2140.0,2.6818301740963753 +2141.0,2.6438957656897704 +2142.0,2.8090159170500906 +2143.0,2.908758593714607 +2144.0,2.351723212975051 +2145.0,2.86093713981687 +2146.0,3.5151708250676226 +2147.0,2.5582429828391304 +2148.0,2.3082411048740883 +2149.0,2.4117916745339465 +2150.0,2.409226094658319 +2151.0,2.592515289419039 +2152.0,4.465442308659787 +2153.0,2.3691226419925187 +2154.0,2.327647673719706 +2155.0,2.489668485039968 +2156.0,2.9256045232478316 +2157.0,2.4406410596496517 +2158.0,2.4058889036799984 +2159.0,2.8908610586493912 +2160.0,2.515981423003943 +2161.0,2.34613235310478 +2162.0,2.8156887722087043 +2163.0,2.60697064987557 +2164.0,2.387983264239313 +2165.0,2.3501625221415146 +2166.0,2.3211974746406816 +2167.0,3.4057315025373134 +2168.0,3.3544004774246625 +2169.0,2.7000285158895907 +2170.0,2.659074508304562 +2171.0,2.4324116017448856 +2172.0,2.3434624486775553 +2173.0,2.321878428609098 +2174.0,2.519599960311332 +2175.0,2.6973811885422587 +2176.0,2.6258727532633968 +2177.0,3.657552726895303 +2178.0,2.3128826958586983 +2179.0,2.8178624023940815 +2180.0,2.37793473646546 +2181.0,2.478894812165539 +2182.0,2.326907569767015 +2183.0,2.326555849457804 +2184.0,2.500766430913966 +2185.0,2.7528613917843683 +2186.0,3.7083553202218713 +2187.0,2.3778764143086923 +2188.0,3.0899344733713496 +2189.0,2.5998844679089164 +2190.0,2.7189019711508724 +2191.0,2.9898927553861183 +2192.0,2.5056491724237486 +2193.0,2.329578319242035 +2194.0,2.4750445963472454 +2195.0,2.815767560471093 +2196.0,2.447450479851951 +2197.0,2.6758421368414242 +2198.0,2.962974564208266 +2199.0,2.401126874268635 diff --git a/tests/fixtures/catalogs/case_032_near_stationary_boundary_2200d.csv b/tests/fixtures/catalogs/case_032_near_stationary_boundary_2200d.csv new file mode 100644 index 0000000..9fb1f75 --- /dev/null +++ b/tests/fixtures/catalogs/case_032_near_stationary_boundary_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.674523126951282 +1.0,2.91027267002906 +2.0,3.3080853571593534 +3.0,4.148115429665903 +4.0,3.3256373891754554 +5.0,2.6631778447442334 +6.0,2.887112112137443 +7.0,2.803257219298212 +8.0,2.5281910569428554 +9.0,2.594988321977041 +10.0,2.817757244879987 +11.0,2.455241995004145 +12.0,2.463179463595111 +13.0,2.6988644835438964 +14.0,2.6609181483551874 +15.0,3.9243438743193155 +16.0,2.4934059731175138 +17.0,2.550930260936542 +18.0,2.7513115576381932 +19.0,2.6863791331276174 +20.0,2.5808920115883565 +21.0,2.997505929269017 +22.0,2.597537333952622 +23.0,2.468532251898818 +24.0,3.1853593708254904 +25.0,3.0307731823007327 +26.0,2.6579397563903955 +27.0,2.5426182317857142 +28.0,3.0981253201932253 +29.0,2.470405091241151 +30.0,2.696276926943813 +31.0,2.8116294644054065 +32.0,2.5145722761957545 +33.0,2.6960951614687856 +34.0,3.862273401806025 +35.0,2.6162704678773445 +36.0,2.5433610619104305 +37.0,2.8767073126023055 +38.0,2.5988775308981653 +39.0,2.742271296248878 +40.0,3.339102953393289 +41.0,3.022120463599588 +42.0,2.905228173654307 +43.0,2.688763844450384 +44.0,3.168940623171089 +45.0,2.5934411340879997 +46.0,2.6904371065081376 +47.0,2.615407039076363 +48.0,2.975399808456742 +49.0,3.915156910602537 +50.0,4.134534507586699 +51.0,2.456567541571933 +52.0,2.8964737922317854 +53.0,4.185551651711007 +54.0,2.619109852943676 +55.0,3.038045919570846 +56.0,3.3154090974872377 +57.0,3.0184203381423353 +58.0,2.5398199005408855 +59.0,3.137310826934323 +60.0,2.6544690019682404 +61.0,2.542376137456415 +62.0,2.560083979573213 +63.0,2.5807302193073185 +64.0,2.5733310453617095 +65.0,2.830619944984299 +66.0,4.5900426035372135 +67.0,3.421473236732483 +68.0,2.480147042319395 +69.0,3.14098672931804 +70.0,2.603391922288619 +71.0,2.5358831176209704 +72.0,2.742059490358796 +73.0,2.80279765185665 +74.0,2.615653424466603 +75.0,2.5074871464736503 +76.0,3.6383854345990976 +77.0,2.803043884931812 +78.0,2.8037611526134665 +79.0,2.804105731963855 +80.0,2.9627371415192787 +81.0,2.4535646008719634 +82.0,3.3898833382830733 +83.0,2.7273073045180336 +84.0,3.713290553119416 +85.0,2.5469280511930155 +86.0,2.732985172774257 +87.0,3.156914215259775 +88.0,2.7678357464834917 +89.0,2.498708144431419 +90.0,2.718486696019132 +91.0,3.9894805297942675 +92.0,3.331636738825159 +93.0,3.5603231355163576 +94.0,3.140266760563864 +95.0,2.6133845588563163 +96.0,2.6549202732423964 +97.0,2.621190520679341 +98.0,3.121285720714296 +99.0,3.530053192992148 +100.0,2.8032046003497304 +101.0,2.889040958830394 +102.0,2.482151003868013 +103.0,2.5008196523199637 +104.0,3.2365444022058507 +105.0,2.462688414248659 +106.0,3.974395232207799 +107.0,2.9799460753451044 +108.0,2.6017331247166875 +109.0,2.522702506773309 +110.0,2.577107123391831 +111.0,2.599724556254232 +112.0,3.0670470557445055 +113.0,2.678322561664402 +114.0,2.9979743714873863 +115.0,3.0448796671924785 +116.0,3.5880687386584276 +117.0,2.9019281763323246 +118.0,2.897050460743081 +119.0,2.459555920031185 +120.0,3.1859755971482357 +121.0,2.834274461121165 +122.0,4.320614365921977 +123.0,2.5504949482540833 +124.0,2.558010180609619 +125.0,2.5738877251051213 +126.0,2.7541139183933074 +127.0,2.497213166686746 +128.0,2.8653667483661223 +129.0,2.6126362421118046 +130.0,2.8542107483787253 +131.0,2.9108322664780992 +132.0,3.9464474197119594 +133.0,2.5114249748758684 +134.0,3.010730197492032 +135.0,2.608883755479139 +136.0,2.9974929686512874 +137.0,2.6713382612620356 +138.0,3.702726610134338 +139.0,2.8442371059487748 +140.0,3.363665066168294 +141.0,3.8094945832590437 +142.0,3.6413853590017875 +143.0,4.085081993320162 +144.0,3.963973184607186 +145.0,3.9432951678485733 +146.0,3.943627953768162 +147.0,3.5056674066004283 +148.0,4.195067034812214 +149.0,4.077064941592721 +150.0,3.045981778033837 +151.0,2.9601489731651767 +152.0,3.3605695141952743 +153.0,3.0131837787071563 +154.0,4.101982796153116 +155.0,3.6754471225819803 +156.0,4.08915632181712 +157.0,5.049837639579389 +158.0,2.7861923839194107 +159.0,3.54542764211343 +160.0,5.380586562577685 +161.0,2.998741052436365 +162.0,3.1693357297319245 +163.0,2.656602179049007 +164.0,2.5130073796979207 +165.0,2.4584204563934198 +166.0,2.8933471117201055 +167.0,2.9265248336883465 +168.0,2.6404092601690388 +169.0,3.147075660833218 +170.0,2.512530840756366 +171.0,2.532715237709024 +172.0,3.1454317079085263 +173.0,2.7195962637603 +174.0,2.493722469147232 +175.0,2.9269994368120473 +176.0,3.824488838075329 +177.0,2.6621079491138167 +178.0,2.6511635525971724 +179.0,2.6665103788807887 +180.0,2.605018386346694 +181.0,2.8429131818299402 +182.0,3.0270806296889026 +183.0,2.466776114067892 +184.0,2.716884003021673 +185.0,4.37920904864237 +186.0,2.631215619203159 +187.0,2.702561556736813 +188.0,3.1258608379683386 +189.0,2.6478752588460077 +190.0,2.877449714125775 +191.0,3.151984643817641 +192.0,2.56074914874063 +193.0,2.8906398781597757 +194.0,3.0991493715932927 +195.0,3.577101121932605 +196.0,3.9872673650088224 +197.0,2.987497328726206 +198.0,2.4507721191535192 +199.0,2.7186818649037123 +200.0,3.2339626812104374 +201.0,2.8170888376626295 +202.0,3.9215617347911396 +203.0,3.2088335043929437 +204.0,2.747737698838778 +205.0,2.524078291614144 +206.0,2.6579133735307794 +207.0,3.047356184559453 +208.0,4.412974416978113 +209.0,2.841205064127787 +210.0,2.468041287998891 +211.0,2.7239319605372123 +212.0,3.62550308236795 +213.0,2.5980029797788586 +214.0,3.0927023457780685 +215.0,2.887492329621061 +216.0,2.813686217373735 +217.0,3.2767069704363063 +218.0,2.8034689394720207 +219.0,2.806981427392639 +220.0,2.6587296315247237 +221.0,2.8303121294399705 +222.0,2.6324050751244292 +223.0,2.5163529012768913 +224.0,2.5707790698717368 +225.0,2.624509199328669 +226.0,2.64633661934851 +227.0,2.460580962762491 +228.0,2.4730592638205233 +229.0,3.19726717748957 +230.0,2.642040207870635 +231.0,3.3810408016766362 +232.0,2.7030068761574926 +233.0,2.50341980090667 +234.0,2.583556345418963 +235.0,2.79580376882003 +236.0,2.6225438328022044 +237.0,2.5993554742601788 +238.0,2.695472321231589 +239.0,3.208646084806968 +240.0,2.5468496597459565 +241.0,2.4806493416938626 +242.0,2.8689859706410825 +243.0,2.7422513864752927 +244.0,2.808155042836373 +245.0,2.6761824754162467 +246.0,4.183495457927192 +247.0,3.1793563204746436 +248.0,2.774609909896275 +249.0,2.574324870624218 +250.0,2.7157833725739597 +251.0,2.9886613340092225 +252.0,2.589134136694725 +253.0,2.4842333500619795 +254.0,3.452098243004107 +255.0,2.6088875057388132 +256.0,3.4971420561487383 +257.0,2.53047227267088 +258.0,2.9560684685992915 +259.0,2.601361954561531 +260.0,2.661282401380888 +261.0,3.7144272467515993 +262.0,2.8130995097412437 +263.0,3.1733784410368573 +264.0,2.8683737198146955 +265.0,3.2114637994635453 +266.0,4.09653702232119 +267.0,2.5803199041787224 +268.0,2.492610929332853 +269.0,4.154224388423709 +270.0,2.477893443994705 +271.0,3.43264286465696 +272.0,3.3821519667446234 +273.0,2.7115760203261954 +274.0,2.721617995217205 +275.0,2.7404227671612746 +276.0,3.2200782584029417 +277.0,3.603789934848119 +278.0,2.6072377261487936 +279.0,2.461945527255202 +280.0,2.95142215841178 +281.0,3.1657611175414897 +282.0,3.2393515786105422 +283.0,2.5450797244055803 +284.0,2.462863066783313 +285.0,2.8352288590561674 +286.0,2.580495479151852 +287.0,2.6139789909600966 +288.0,2.5214797007095306 +289.0,2.9102941816359604 +290.0,2.5030168487007636 +291.0,2.5348989091727097 +292.0,2.4694818760115558 +293.0,3.0965584677094142 +294.0,2.5412995630298467 +295.0,2.589343609278688 +296.0,3.089702214855947 +297.0,3.084819101274713 +298.0,2.9322808996898226 +299.0,2.8616929254114987 +300.0,2.7743370490184134 +301.0,3.2416923245758524 +302.0,2.488417414178915 +303.0,2.6665673281459474 +304.0,2.7271755189829974 +305.0,3.0160258818600285 +306.0,3.0269183910216584 +307.0,3.893996494665498 +308.0,2.585194646544502 +309.0,3.4163713322332945 +310.0,3.9874757632606306 +311.0,2.78369710612835 +312.0,2.6147549393094653 +313.0,2.85063518838069 +314.0,2.5292410777655943 +315.0,2.7104538245765597 +316.0,2.6076512457792553 +317.0,2.480333695562652 +318.0,2.937834661936476 +319.0,2.9997534613216352 +320.0,2.4508599203161903 +321.0,2.5439450977103957 +322.0,4.005391964041488 +323.0,2.5064174820192298 +324.0,3.8717942780011483 +325.0,2.8022221285991997 +326.0,2.458954968638169 +327.0,2.9944349283986034 +328.0,2.9518480917915886 +329.0,3.0973287800522713 +330.0,2.762353803942861 +331.0,4.449552986665637 +332.0,2.5619308967039456 +333.0,2.805750646677299 +334.0,3.9308895086659392 +335.0,4.393603182630961 +336.0,2.6030567859431355 +337.0,2.9448159040507536 +338.0,3.3709042046006346 +339.0,2.6322075420912947 +340.0,3.4974721148700905 +341.0,3.831420419397834 +342.0,2.4894632783015456 +343.0,2.5316025183923125 +344.0,3.9206422947477906 +345.0,2.7675428430535383 +346.0,2.9729604347227356 +347.0,3.316091763317728 +348.0,3.4032350767132877 +349.0,2.5881098573225363 +350.0,2.6311476252728534 +351.0,2.4677642493131455 +352.0,2.456830651433852 +353.0,2.480189982078499 +354.0,3.542765584024232 +355.0,2.454916807870606 +356.0,2.5157952942263897 +357.0,3.1419247521222413 +358.0,2.483907030066055 +359.0,3.165280383142588 +360.0,2.6029436045758914 +361.0,2.600885190332665 +362.0,2.727881852912385 +363.0,2.8410831640758656 +364.0,3.7120206999068754 +365.0,2.562746590819994 +366.0,2.7759234683941507 +367.0,2.5237565835403837 +368.0,2.606073720753874 +369.0,3.0259348994699646 +370.0,2.6519783075614893 +371.0,2.6907808705877865 +372.0,3.8118539537539773 +373.0,3.382632573613174 +374.0,3.0028996677725868 +375.0,4.335441305350134 +376.0,2.7948101220158916 +377.0,2.453225831133347 +378.0,2.5011698083866944 +379.0,3.311031737818139 +380.0,4.335261356827385 +381.0,2.6192624221156815 +382.0,2.523418630237207 +383.0,3.052434484374167 +384.0,2.574120424728684 +385.0,2.827510955897644 +386.0,2.7123542402800744 +387.0,3.3406447881135506 +388.0,2.512491264901926 +389.0,3.836059295076032 +390.0,3.4918103040747672 +391.0,3.993569700867166 +392.0,4.009712891956088 +393.0,3.127803835526512 +394.0,2.9161402475907217 +395.0,2.6808662813578343 +396.0,3.408747389363753 +397.0,3.0237080291395135 +398.0,3.5753787887433566 +399.0,3.3082669941310185 +400.0,3.108194542974724 +401.0,2.988840746900429 +402.0,2.8594830108577383 +403.0,3.4070087662001134 +404.0,3.4822698440794886 +405.0,3.3540625894506073 +406.0,5.466622096475062 +407.0,2.8832358113693926 +408.0,3.9124726403416537 +409.0,2.7617089909216395 +410.0,3.0362874424982453 +411.0,2.7197369258249844 +412.0,3.2974056911781906 +413.0,2.6899790596962605 +414.0,3.122306730212167 +415.0,2.7480217140757928 +416.0,3.05211615480336 +417.0,3.3862723494367977 +418.0,2.4796582135279346 +419.0,2.6410652745273766 +420.0,2.6879668117644178 +421.0,2.5088454574458896 +422.0,2.6271673803187054 +423.0,2.9442909712107665 +424.0,2.75096800494278 +425.0,2.5617566950812183 +426.0,2.7232850884207798 +427.0,4.021910635898404 +428.0,3.0385589277893468 +429.0,2.5254128069750146 +430.0,2.8500623804988727 +431.0,3.1481647976772797 +432.0,2.777858163941744 +433.0,2.766624021986761 +434.0,2.772258677409757 +435.0,2.6254602027773495 +436.0,2.493088147793574 +437.0,2.8709252372512704 +438.0,3.0667065624138483 +439.0,2.807891497897801 +440.0,2.5812833325175384 +441.0,2.4743408630112467 +442.0,2.564812872736569 +443.0,2.4755686917049347 +444.0,3.0209704317161274 +445.0,2.944923776808864 +446.0,2.7603702442462428 +447.0,2.5193609587882615 +448.0,2.6191244271095155 +449.0,3.24307655540884 +450.0,3.2146857710038383 +451.0,2.7432597383821387 +452.0,3.853272737656579 +453.0,2.978865725186473 +454.0,3.018992164361358 +455.0,2.7126766532728035 +456.0,2.692920160596922 +457.0,2.661102328769151 +458.0,2.4549864583944636 +459.0,2.4959202281481483 +460.0,2.5871402212550776 +461.0,3.8329122142540397 +462.0,2.5458659562743717 +463.0,3.504981128844385 +464.0,2.5680581135447023 +465.0,2.480555898571547 +466.0,2.9673399668135545 +467.0,2.6938216404717936 +468.0,2.4891430018890826 +469.0,2.584781668728205 +470.0,3.258131067594665 +471.0,2.7009273159587326 +472.0,3.4344252220068423 +473.0,3.2551445822873086 +474.0,2.476575038977065 +475.0,3.335079346672172 +476.0,4.015479523778593 +477.0,2.679534858027346 +478.0,3.281582873770983 +479.0,2.728319734663221 +480.0,2.5028532492507285 +481.0,2.6383321086427833 +482.0,3.043533628868163 +483.0,2.7042111603746273 +484.0,2.4710387956564115 +485.0,2.919869490345173 +486.0,2.701045907283862 +487.0,2.595176413711978 +488.0,3.3937831626941435 +489.0,2.5140753822360002 +490.0,3.2727577005976816 +491.0,2.9656714362817516 +492.0,2.578444264260082 +493.0,3.8231248450912085 +494.0,2.8244343751396266 +495.0,2.518868552809814 +496.0,2.6165177224139358 +497.0,2.80732943106525 +498.0,2.728137440580457 +499.0,2.6207935690526556 +500.0,2.503363514115677 +501.0,2.512321991120397 +502.0,3.132007594142772 +503.0,3.1015041069449847 +504.0,2.5093312738344005 +505.0,2.5737259449288863 +506.0,2.8689097055080763 +507.0,2.9154033287948944 +508.0,3.4115574713276997 +509.0,2.555701271486206 +510.0,2.8873262066656764 +511.0,2.5438608003446608 +512.0,2.8401097434304616 +513.0,3.5855724174830916 +514.0,2.8876242446770743 +515.0,2.9300686468294215 +516.0,2.479049671125965 +517.0,2.4957112352306585 +518.0,2.6300605994260793 +519.0,2.9463468423383303 +520.0,2.647935987174331 +521.0,2.800796112223458 +522.0,2.537245150110289 +523.0,2.6112028696617386 +524.0,2.5837102841817328 +525.0,3.349704268018146 +526.0,2.710208250914733 +527.0,2.5533024024161897 +528.0,2.5059690168885265 +529.0,3.193549650665057 +530.0,3.5459013873530303 +531.0,3.016984868149745 +532.0,2.598637895695056 +533.0,3.2338265477376678 +534.0,2.6868741641122242 +535.0,2.501485705357707 +536.0,3.0115250547938777 +537.0,4.335699213465344 +538.0,3.3325780430243905 +539.0,2.9180897089603213 +540.0,2.911436547741335 +541.0,3.123033727527713 +542.0,3.157388528165181 +543.0,2.6568654562021106 +544.0,2.7517955501395477 +545.0,3.202086951745536 +546.0,2.893855661173161 +547.0,2.62423026279931 +548.0,2.6301321534242206 +549.0,2.7499401288195364 +550.0,2.556098112313683 +551.0,2.8128936199423933 +552.0,3.583487792191617 +553.0,2.7723184662446276 +554.0,2.8174548340191095 +555.0,2.4754367459263853 +556.0,2.7595383821705965 +557.0,4.147329271916229 +558.0,2.9722605965727125 +559.0,2.970210002361048 +560.0,2.5019865136814943 +561.0,3.027155247972737 +562.0,2.523632050119528 +563.0,2.780649409384028 +564.0,2.772398395316331 +565.0,2.499086046160772 +566.0,3.2313714912343756 +567.0,2.579074901446879 +568.0,2.5777834669185484 +569.0,4.7677930999651466 +570.0,2.9970363676779352 +571.0,2.8220576571733123 +572.0,2.551877146149301 +573.0,2.5216039575987512 +574.0,2.9767422788460762 +575.0,2.799595858704225 +576.0,3.1601245519676464 +577.0,3.612504030682656 +578.0,3.099300911999556 +579.0,3.3185209688722455 +580.0,3.3532528821629484 +581.0,2.8869584510483506 +582.0,2.774980896774439 +583.0,2.5072194740536595 +584.0,2.727519216339373 +585.0,2.8416992714372493 +586.0,2.9742550331567967 +587.0,2.8738318922841244 +588.0,3.6545337529396766 +589.0,2.64779402004579 +590.0,3.1359020780324145 +591.0,2.837644609983669 +592.0,2.471161715854189 +593.0,3.975879604437633 +594.0,3.849365491272704 +595.0,3.118399865802643 +596.0,2.56234059732212 +597.0,3.364513377966249 +598.0,2.7029993382393602 +599.0,2.4887697946316276 +600.0,3.125996644937705 +601.0,2.5234258952491033 +602.0,2.4586919543966252 +603.0,2.763397527112804 +604.0,3.772065762019049 +605.0,2.533850206118271 +606.0,2.726192164724431 +607.0,2.604074223262568 +608.0,2.6000154454212785 +609.0,2.46615727421282 +610.0,3.3883705124395043 +611.0,2.698318645946011 +612.0,3.151248933763369 +613.0,2.928287425980038 +614.0,2.9220463051509293 +615.0,2.9031282976933546 +616.0,2.6455432384451303 +617.0,2.6077877785156374 +618.0,2.7237850838642377 +619.0,2.973623242809091 +620.0,2.655134470807682 +621.0,2.67311226993789 +622.0,2.812151387950779 +623.0,3.8098041045691193 +624.0,3.3939982373241784 +625.0,2.602222178894797 +626.0,2.5582304789934165 +627.0,4.394030992481496 +628.0,3.2344895177698647 +629.0,2.776219148151263 +630.0,2.933537137600955 +631.0,2.5006693842088143 +632.0,2.514858461802478 +633.0,2.7130150827871415 +634.0,2.9073804919983743 +635.0,2.8686441002710374 +636.0,2.9995757963804586 +637.0,2.504636784224501 +638.0,2.9232123190486243 +639.0,2.533871121133683 +640.0,2.7018233963831455 +641.0,2.9881540368949677 +642.0,2.6434834978407187 +643.0,3.541749352613907 +644.0,2.823280587798809 +645.0,3.240289806536806 +646.0,3.182527967382372 +647.0,3.6300561914872844 +648.0,6.074625861438983 +649.0,4.110843029605103 +650.0,4.173686888355821 +651.0,4.014047235756567 +652.0,3.612933254579557 +653.0,2.6750136487761567 +654.0,2.72920350990125 +655.0,3.6937905170605903 +656.0,3.18612261698353 +657.0,4.052636571147849 +658.0,3.585830628013991 +659.0,4.436488230645735 +660.0,2.8327239965868296 +661.0,2.7622114527876835 +662.0,2.484149367650967 +663.0,2.5036324408296795 +664.0,3.0501852781043612 +665.0,2.770683233210322 +666.0,2.5270606068429795 +667.0,2.4908287881134497 +668.0,2.867210618748397 +669.0,2.9906979101805877 +670.0,2.6689360160104574 +671.0,2.869669914171879 +672.0,2.604932090532847 +673.0,2.6821656802681524 +674.0,2.4823846456557006 +675.0,4.116212746594577 +676.0,4.803346808549429 +677.0,2.559988409229876 +678.0,2.5700085394517904 +679.0,2.5672548418024124 +680.0,2.7312717885875006 +681.0,2.6158735033391856 +682.0,3.246880288060054 +683.0,2.7432604066620883 +684.0,4.077620983183362 +685.0,4.833102764308009 +686.0,3.0399479529093902 +687.0,3.867805369350605 +688.0,2.639025671528086 +689.0,2.5778906019303083 +690.0,3.002810648423169 +691.0,3.8012522208666057 +692.0,2.957611494808792 +693.0,2.5799918532387434 +694.0,2.8639739271299094 +695.0,2.725148083523971 +696.0,2.547966052281239 +697.0,3.15955324169643 +698.0,2.5640758377507167 +699.0,3.039805052598151 +700.0,2.724252824007425 +701.0,2.968167377057888 +702.0,2.9652408570091895 +703.0,2.6626882086931047 +704.0,2.6411149798660145 +705.0,2.459225264717446 +706.0,2.633559630950124 +707.0,3.021454839210031 +708.0,2.714783664625146 +709.0,2.6688590880675758 +710.0,2.8487475381869354 +711.0,4.567835004763834 +712.0,3.2152987854168624 +713.0,2.592922896599125 +714.0,2.525439143079746 +715.0,2.52092688732935 +716.0,2.4941430860860163 +717.0,2.524181346595683 +718.0,3.13441874482197 +719.0,2.535387788672107 +720.0,3.0817021488480547 +721.0,2.8121725606152466 +722.0,3.7209486999770687 +723.0,3.144884475150034 +724.0,2.6398103485946107 +725.0,2.6997888723088126 +726.0,2.5504045774795445 +727.0,2.586530550091352 +728.0,2.952653039828751 +729.0,2.690141711897796 +730.0,2.5884101763505707 +731.0,2.8702499828309724 +732.0,2.762187143220153 +733.0,2.628329043193245 +734.0,2.8720156840698294 +735.0,3.824373595792995 +736.0,2.5487578230047774 +737.0,2.8173088723075157 +738.0,2.9659719723380356 +739.0,2.771832287638023 +740.0,3.408946613259522 +741.0,2.750813942008003 +742.0,3.8192274793551966 +743.0,3.2104996744216323 +744.0,2.548744599392462 +745.0,3.2321328760046355 +746.0,2.4653842842192697 +747.0,2.900158389637205 +748.0,2.6423441662490266 +749.0,2.709421517761466 +750.0,2.521685344629196 +751.0,3.932937937223612 +752.0,2.4576715891392267 +753.0,2.47356309086422 +754.0,2.476483416340029 +755.0,4.245845145844688 +756.0,2.934244047845409 +757.0,2.798801624913363 +758.0,2.666525404004886 +759.0,3.0252119542059144 +760.0,3.0901069754131583 +761.0,2.6565591456395694 +762.0,2.5604692245943235 +763.0,4.0637037291207205 +764.0,2.8755341466511517 +765.0,2.6031729763477762 +766.0,2.886206422182535 +767.0,2.8331128787868853 +768.0,4.226140664931114 +769.0,2.6367642408017433 +770.0,3.825323033737825 +771.0,3.617733679045721 +772.0,2.7418507216016024 +773.0,2.581098097634919 +774.0,2.6328933834480672 +775.0,2.454460609079765 +776.0,2.581572333618176 +777.0,2.7877438812660205 +778.0,3.2300825956202033 +779.0,2.750198778731402 +780.0,3.121262210555394 +781.0,2.551320486725639 +782.0,3.4191935864566463 +783.0,2.6443951952758558 +784.0,3.022585832390374 +785.0,2.7266352766167787 +786.0,3.023634619517942 +787.0,2.6772064161837648 +788.0,2.754257983049806 +789.0,2.583092390957831 +790.0,2.8767668315549626 +791.0,3.4868062446665937 +792.0,3.496179288090624 +793.0,3.622288725434665 +794.0,2.8966521188939414 +795.0,2.8009038121309526 +796.0,2.751589931757642 +797.0,3.863746592476855 +798.0,2.5613317515281233 +799.0,2.456048159798879 +800.0,3.791619935753256 +801.0,3.183016501568012 +802.0,2.650582817066919 +803.0,3.1922091363831746 +804.0,3.3714303931476 +805.0,3.309697933353276 +806.0,4.060486593479675 +807.0,2.493882613605919 +808.0,2.9814918274145557 +809.0,2.81496632419484 +810.0,3.3883252386619547 +811.0,2.488460970999845 +812.0,3.202817800080192 +813.0,3.428485282074324 +814.0,3.9654177291454342 +815.0,2.652055581206626 +816.0,2.953501748317911 +817.0,2.492442036857915 +818.0,2.570742620146803 +819.0,2.6309377706252164 +820.0,2.459193426259421 +821.0,3.0351364028060237 +822.0,2.4988688567742994 +823.0,2.8158532185416627 +824.0,2.73803448436259 +825.0,2.521928164696313 +826.0,2.691259602815686 +827.0,2.496974366159913 +828.0,2.4676892071326266 +829.0,2.587526178600054 +830.0,2.45903150180613 +831.0,2.572039937401364 +832.0,2.837313836541135 +833.0,2.451271285812564 +834.0,3.278258717783001 +835.0,3.192952701481416 +836.0,2.649203789614264 +837.0,2.488693299204723 +838.0,3.1906048118623684 +839.0,2.9986520123516502 +840.0,3.936244558201332 +841.0,2.4927038569350572 +842.0,2.8699416728551093 +843.0,2.6776717452029737 +844.0,2.866723940425382 +845.0,2.592850489780264 +846.0,2.7183369040799494 +847.0,4.048114081588985 +848.0,2.6563478937290936 +849.0,3.129408178216977 +850.0,2.7189852775334904 +851.0,3.0247998033035604 +852.0,3.204915424473833 +853.0,3.603070634854027 +854.0,2.823664645378439 +855.0,2.506377748882742 +856.0,2.4788052203664384 +857.0,3.0359444673331843 +858.0,2.4610616337290194 +859.0,2.8412579896047716 +860.0,5.199967390541585 +861.0,2.4700071072647325 +862.0,2.6346782480317548 +863.0,2.5083293276868686 +864.0,2.5304217772139546 +865.0,3.1718764889456077 +866.0,2.901502059492653 +867.0,2.9304833182316314 +868.0,2.622495469330954 +869.0,2.5199739752317347 +870.0,3.293812829318185 +871.0,2.4831251804291488 +872.0,2.5404626160862924 +873.0,2.724285205889692 +874.0,2.6242759016530397 +875.0,3.719938209642157 +876.0,2.658948130540248 +877.0,3.149770542530404 +878.0,2.54685265365175 +879.0,3.4453018941126135 +880.0,2.511135129846245 +881.0,3.015308912727204 +882.0,3.671621662997477 +883.0,2.8120906305573015 +884.0,3.096977286144431 +885.0,2.5529305396412223 +886.0,2.49176634157234 +887.0,2.97711914739644 +888.0,2.5305827450411726 +889.0,2.7413615449540267 +890.0,3.1822511319858124 +891.0,2.9608080899851505 +892.0,3.135535519683018 +893.0,4.52133956922633 +894.0,4.040280972772233 +895.0,3.062176935152289 +896.0,3.8567515153880167 +897.0,3.0104323975107983 +898.0,3.0637344939306455 +899.0,2.8659033033006427 +900.0,3.4381555628044946 +901.0,3.756635631106345 +902.0,3.2969577855906853 +903.0,3.8734023247021208 +904.0,3.591740084165708 +905.0,2.6663031117987175 +906.0,4.350424190641728 +907.0,4.7424222150860915 +908.0,3.416579803678864 +909.0,3.7337034685588497 +910.0,3.162472135989767 +911.0,2.6924765863904034 +912.0,2.8026309579247872 +913.0,2.4859777765286344 +914.0,2.4820901543372034 +915.0,2.702780012625075 +916.0,2.9565268029614202 +917.0,2.8146116224456064 +918.0,3.3445248535674947 +919.0,2.823424270756687 +920.0,3.0033593073905003 +921.0,2.6554366575358044 +922.0,2.457181171214916 +923.0,2.981485992024411 +924.0,2.5897015604001665 +925.0,3.7099333948852657 +926.0,2.9478862421844383 +927.0,2.7827243334982543 +928.0,2.829973218957431 +929.0,4.9802413773485155 +930.0,2.6530707659693125 +931.0,3.17250086383919 +932.0,2.4734735329538253 +933.0,2.6397935375823818 +934.0,2.6508595517124807 +935.0,2.7044808059184193 +936.0,3.275919394148672 +937.0,2.485587718898028 +938.0,3.2580762597661366 +939.0,2.490525213290916 +940.0,3.6524447705012664 +941.0,2.6886201783367962 +942.0,2.9920130172118418 +943.0,2.6382354610686978 +944.0,2.7263632345655906 +945.0,2.6247154090759888 +946.0,2.6694344582308616 +947.0,3.3805553775208725 +948.0,2.6786922156558237 +949.0,2.6761081972145284 +950.0,2.591698923222509 +951.0,3.1263707133638183 +952.0,3.4910121092097963 +953.0,2.923567409158921 +954.0,2.903657368880256 +955.0,3.256382455047699 +956.0,2.6135338289646817 +957.0,2.7690776529154904 +958.0,2.675532536277382 +959.0,2.758329502341035 +960.0,2.6138653404711305 +961.0,3.3729875062269254 +962.0,2.6330561173340388 +963.0,2.7859953075761115 +964.0,2.508760413666036 +965.0,3.9247125907478164 +966.0,3.2457963009253135 +967.0,3.426995469151667 +968.0,3.0036437869482158 +969.0,3.026097190472405 +970.0,3.079236254506715 +971.0,2.5921177636524555 +972.0,3.044128414601053 +973.0,2.8346813863925036 +974.0,2.5271109855049594 +975.0,2.8122596327465907 +976.0,3.6828325916042663 +977.0,2.451080201609142 +978.0,2.9257111587217137 +979.0,2.7386226458281855 +980.0,2.6496791897338956 +981.0,2.6202342413422395 +982.0,2.7319689881622744 +983.0,2.5792573236920164 +984.0,2.905050556297065 +985.0,2.451309393085243 +986.0,2.604878779820005 +987.0,4.811999149498714 +988.0,3.151673526069242 +989.0,3.1759521142875298 +990.0,5.781327433510636 +991.0,2.727483342598894 +992.0,2.7003686887225684 +993.0,3.6111240872917394 +994.0,2.4787109083222045 +995.0,3.643396778941022 +996.0,2.62619136942784 +997.0,3.713641774968687 +998.0,2.5711885387680535 +999.0,2.7891086540905943 +1000.0,2.625719269149129 +1001.0,4.15201201014081 +1002.0,3.0869580493085245 +1003.0,2.800452458953319 +1004.0,3.01478611111103 +1005.0,2.568688029529273 +1006.0,2.695181759799843 +1007.0,3.4327320532214234 +1008.0,2.9994509325134273 +1009.0,3.0705097930054563 +1010.0,2.5326127968805343 +1011.0,3.430457783877582 +1012.0,2.468000981176619 +1013.0,2.784731007391912 +1014.0,2.5033851081429126 +1015.0,2.5751693206911455 +1016.0,3.280309914281032 +1017.0,2.5250500747245423 +1018.0,2.873114193085606 +1019.0,3.0032958719247813 +1020.0,2.75338232376165 +1021.0,2.5887892185319865 +1022.0,2.5664610535674366 +1023.0,2.5828111804311176 +1024.0,2.5201155641834356 +1025.0,2.9950909006763977 +1026.0,2.982852378517203 +1027.0,2.697742308687703 +1028.0,3.110153135613843 +1029.0,3.287770535856484 +1030.0,2.609988544737137 +1031.0,2.574632981426651 +1032.0,2.5589815542149728 +1033.0,3.05387919473391 +1034.0,2.9718372190634152 +1035.0,3.1565421721579217 +1036.0,2.8808516278845926 +1037.0,2.4876047930696465 +1038.0,3.1933648026699317 +1039.0,2.4511728915816895 +1040.0,2.6777144524327507 +1041.0,2.690624796910174 +1042.0,2.588923337402478 +1043.0,3.127314344556323 +1044.0,2.554862257044328 +1045.0,2.6359801620505503 +1046.0,2.8073493058819574 +1047.0,2.7169818891917825 +1048.0,3.1688965541065466 +1049.0,3.5559495722020475 +1050.0,2.9282062617184006 +1051.0,2.8827662751558014 +1052.0,2.5757589109635255 +1053.0,3.2922605437491494 +1054.0,2.8283815013450133 +1055.0,2.7390889777789362 +1056.0,3.0013198246162576 +1057.0,2.4526464904516927 +1058.0,2.5809403661013484 +1059.0,3.4471975339831706 +1060.0,2.489150404232207 +1061.0,3.3772740180752514 +1062.0,2.811250234854691 +1063.0,2.630564629468601 +1064.0,3.281581407589016 +1065.0,2.840941362469651 +1066.0,3.4129698594259565 +1067.0,2.4980258489288762 +1068.0,3.259891108080994 +1069.0,3.368897927458935 +1070.0,3.020410298436232 +1071.0,2.5714241626530336 +1072.0,2.460765519346722 +1073.0,2.491683564375557 +1074.0,2.4602254149002447 +1075.0,2.7448552460664057 +1076.0,3.048893383708192 +1077.0,3.07725682569554 +1078.0,2.9972989616725356 +1079.0,2.65581366687148 +1080.0,2.563519914387801 +1081.0,2.4777353298938083 +1082.0,3.1668422863078494 +1083.0,2.7583055056953816 +1084.0,2.6734313921265707 +1085.0,2.933913635274006 +1086.0,2.630126001555624 +1087.0,2.6968412233473424 +1088.0,2.932766961231196 +1089.0,2.590834792655389 +1090.0,2.7723814841037853 +1091.0,3.628623453099981 +1092.0,2.8419427889584163 +1093.0,2.9427399019146003 +1094.0,2.667552911331988 +1095.0,2.544911125998805 +1096.0,2.659982052007174 +1097.0,3.560164838780593 +1098.0,3.3517276555003193 +1099.0,4.644487664355161 +1100.0,2.5235413341355075 +1101.0,3.238679484413263 +1102.0,3.1744514366474337 +1103.0,3.0824894853863753 +1104.0,3.900851193903841 +1105.0,2.9483547987095795 +1106.0,2.6666245857915016 +1107.0,5.063750695862298 +1108.0,2.7312483881740524 +1109.0,2.5273326729907923 +1110.0,2.862970394802107 +1111.0,2.9002700651473234 +1112.0,3.431213881806632 +1113.0,3.131235677217625 +1114.0,2.7958080055938304 +1115.0,3.0841597739073316 +1116.0,3.71576700443853 +1117.0,2.7588284527251767 +1118.0,3.306855135054434 +1119.0,2.618229275918861 +1120.0,2.553459798285292 +1121.0,2.4781584602599454 +1122.0,2.473277150440659 +1123.0,2.4932926926211385 +1124.0,2.594563511549948 +1125.0,3.144573478625 +1126.0,2.621806903028893 +1127.0,2.9915579193212505 +1128.0,2.490476683247127 +1129.0,2.971831038259654 +1130.0,2.52864981446927 +1131.0,3.9134606400310137 +1132.0,2.602091261036618 +1133.0,2.4744331524955636 +1134.0,2.975803697057501 +1135.0,2.627483389802197 +1136.0,2.454901655998048 +1137.0,2.522122827441714 +1138.0,3.0229811908311173 +1139.0,2.8383655531529297 +1140.0,4.329919522243788 +1141.0,4.104820056006115 +1142.0,2.8875448614936325 +1143.0,2.711716905601138 +1144.0,2.921027945182837 +1145.0,3.030170227576446 +1146.0,2.609916504638351 +1147.0,3.1254413799730107 +1148.0,4.09800147627674 +1149.0,2.6527089477954022 +1150.0,2.817319708679872 +1151.0,4.127946032653815 +1152.0,5.6787912766819755 +1153.0,3.443717944831031 +1154.0,4.845464180065381 +1155.0,4.94328335336426 +1156.0,4.254140252142822 +1157.0,3.346669375963474 +1158.0,3.9744571607916646 +1159.0,2.7335352526932684 +1160.0,3.759428509954368 +1161.0,2.9005505528455213 +1162.0,2.456642743629679 +1163.0,2.506334594580152 +1164.0,2.5738637853691535 +1165.0,2.8730235034470235 +1166.0,2.8710614901554843 +1167.0,2.5727493366966283 +1168.0,2.907457908186278 +1169.0,2.617059087339453 +1170.0,3.6335134774305113 +1171.0,2.71403786126765 +1172.0,2.6402910565355775 +1173.0,2.643647217911956 +1174.0,2.6966605776491317 +1175.0,2.59603665940133 +1176.0,3.1629297035058848 +1177.0,2.869233709793318 +1178.0,3.1725454797923467 +1179.0,2.73683673302137 +1180.0,2.944469990326772 +1181.0,2.942395556043444 +1182.0,2.469266000646502 +1183.0,2.9070510988354927 +1184.0,3.849705276037784 +1185.0,2.6651067295568223 +1186.0,2.9104154503422137 +1187.0,2.5851084319284876 +1188.0,4.3441756280926525 +1189.0,2.7419216735151615 +1190.0,3.0814117868223914 +1191.0,2.5296742643871193 +1192.0,2.683215511154806 +1193.0,3.1327842108437993 +1194.0,2.514350117501294 +1195.0,3.0641504702779288 +1196.0,3.693400695866907 +1197.0,3.1101849945750537 +1198.0,3.1027652815073132 +1199.0,3.4821280338576104 +1200.0,2.8193958666085406 +1201.0,2.5497576719588557 +1202.0,3.298505586274207 +1203.0,2.778455049336163 +1204.0,2.5204434185734104 +1205.0,2.8153380468651434 +1206.0,2.939626224538121 +1207.0,2.7518944706180575 +1208.0,2.8493464956907477 +1209.0,3.072797306349279 +1210.0,2.5527683804249928 +1211.0,2.6634630493703026 +1212.0,3.1481636653742204 +1213.0,3.52694565631702 +1214.0,2.8955488824254165 +1215.0,2.828148807190006 +1216.0,5.18543712066602 +1217.0,2.844652657296404 +1218.0,3.6215362417860755 +1219.0,2.676242183128554 +1220.0,4.159986317277196 +1221.0,2.460140879792147 +1222.0,2.558761828412887 +1223.0,2.4669059812856062 +1224.0,2.466451156862942 +1225.0,3.1797318768912355 +1226.0,2.724297063650888 +1227.0,2.6488409103909634 +1228.0,2.5337675677232565 +1229.0,2.8044938573151486 +1230.0,3.693621848947024 +1231.0,3.11459222492506 +1232.0,3.2130734040255913 +1233.0,2.891766868622875 +1234.0,2.58398284484189 +1235.0,2.605799722198777 +1236.0,2.466024758770544 +1237.0,2.5527447310271767 +1238.0,2.757929074829543 +1239.0,2.581541812469822 +1240.0,2.561069514329202 +1241.0,2.511889884521542 +1242.0,2.822126072871645 +1243.0,2.471781915342488 +1244.0,2.593136733948863 +1245.0,2.879701208668999 +1246.0,2.471638923908352 +1247.0,3.822178298460469 +1248.0,2.6516486949836002 +1249.0,3.241302100187861 +1250.0,2.6460434755328217 +1251.0,2.767544493953231 +1252.0,3.0536880320000375 +1253.0,2.8214283428495595 +1254.0,2.951284990023219 +1255.0,3.2458641373932458 +1256.0,3.0928067773336028 +1257.0,3.9384057351339434 +1258.0,2.4832004197272712 +1259.0,3.0820531255252934 +1260.0,2.5703005192871973 +1261.0,2.450065394454384 +1262.0,2.641084125483669 +1263.0,2.9757592757839824 +1264.0,3.3154901843123774 +1265.0,2.838227551013478 +1266.0,3.4998051857023116 +1267.0,2.747232295925323 +1268.0,2.601730253132394 +1269.0,3.322045155743922 +1270.0,3.706032787307314 +1271.0,2.4510030698734373 +1272.0,2.5340589782088787 +1273.0,3.404690063192367 +1274.0,2.5665883970783905 +1275.0,2.690816246312995 +1276.0,2.470143969818019 +1277.0,2.6065021794751053 +1278.0,2.714804737831623 +1279.0,2.5412578793374183 +1280.0,3.4603475197603624 +1281.0,2.9171186970044642 +1282.0,3.6934144131530715 +1283.0,2.54583377014006 +1284.0,4.437214780642579 +1285.0,2.9981959045560327 +1286.0,3.079411366322348 +1287.0,2.5514491035616222 +1288.0,4.362720683979488 +1289.0,2.980136846038164 +1290.0,2.6116173727048833 +1291.0,2.870935755055235 +1292.0,6.167416173836398 +1293.0,2.831787485775987 +1294.0,2.671964221171231 +1295.0,3.0143302984434457 +1296.0,3.6936169113569997 +1297.0,3.6993641032661397 +1298.0,2.526139673714329 +1299.0,2.493020164081053 +1300.0,4.696241362323642 +1301.0,2.55744845436155 +1302.0,2.5610981377071105 +1303.0,2.6164679180846417 +1304.0,2.94803830040739 +1305.0,2.6569195595975343 +1306.0,2.861152954046309 +1307.0,2.909585592898541 +1308.0,2.805231679710797 +1309.0,3.2994313217135343 +1310.0,2.578943527180305 +1311.0,3.1163238069508257 +1312.0,2.511134311424146 +1313.0,2.818332720833821 +1314.0,3.5201013308705065 +1315.0,5.079615613049482 +1316.0,3.004924526724949 +1317.0,2.55436458989916 +1318.0,2.500213101881958 +1319.0,2.634105770546685 +1320.0,2.8432864993076974 +1321.0,2.460590993461715 +1322.0,2.649825436457606 +1323.0,2.637470987445863 +1324.0,3.5873845619365508 +1325.0,2.578074150884068 +1326.0,3.387858021402888 +1327.0,2.592666660493524 +1328.0,2.7833471751350163 +1329.0,2.495590569925643 +1330.0,3.2344520009375595 +1331.0,2.7528033124158786 +1332.0,3.123543896692615 +1333.0,2.8264526062699913 +1334.0,2.4792186038872424 +1335.0,2.5158486359258614 +1336.0,4.523806209053591 +1337.0,2.496688107611572 +1338.0,2.5141245649261155 +1339.0,3.395870836965719 +1340.0,2.878865533750926 +1341.0,3.049852016713843 +1342.0,2.7318824981490044 +1343.0,2.8413210433472478 +1344.0,3.515398311075694 +1345.0,2.9737770699887887 +1346.0,3.3233474835448282 +1347.0,2.645085589751146 +1348.0,2.524134082355308 +1349.0,2.9713522984750993 +1350.0,2.488913956923736 +1351.0,2.4784895808143226 +1352.0,2.591532559647347 +1353.0,3.9108123281612945 +1354.0,3.0873683673211403 +1355.0,2.839855994669735 +1356.0,2.492132777924435 +1357.0,4.139840126016276 +1358.0,2.609537314210488 +1359.0,3.0994377683084897 +1360.0,2.7660388600079275 +1361.0,3.1858264212416767 +1362.0,2.5940177207932664 +1363.0,3.0757526098318837 +1364.0,2.5943978346221543 +1365.0,2.8517923537880896 +1366.0,2.6853093987678083 +1367.0,2.4655509759701046 +1368.0,2.712887268919977 +1369.0,3.0012518526070306 +1370.0,2.6118618478485365 +1371.0,3.42547991583238 +1372.0,2.7702577571911164 +1373.0,2.767158001147519 +1374.0,2.7129176204806424 +1375.0,3.3580311568198877 +1376.0,3.7084145228202905 +1377.0,2.460476945816915 +1378.0,2.698360424657747 +1379.0,2.66072934189128 +1380.0,3.017362358849746 +1381.0,2.7895582656101037 +1382.0,2.5426974477774618 +1383.0,2.6378442811298535 +1384.0,2.7208317114868112 +1385.0,3.191566074514022 +1386.0,2.983875581036155 +1387.0,2.79135932306833 +1388.0,2.775077319454439 +1389.0,2.9329243742079796 +1390.0,3.1981418977512095 +1391.0,3.8038482462475525 +1392.0,2.8166814505146904 +1393.0,3.537748515373759 +1394.0,3.381388590197793 +1395.0,2.9012895851221345 +1396.0,3.842898089325602 +1397.0,2.885196641350895 +1398.0,3.1648862747689566 +1399.0,3.601922464071138 +1400.0,3.9785379541645027 +1401.0,2.64291026078749 +1402.0,4.29039339252097 +1403.0,3.4357793982058533 +1404.0,3.2633307877136657 +1405.0,4.238758340543214 +1406.0,2.9487376831938006 +1407.0,4.028004852704621 +1408.0,3.8574491894997274 +1409.0,3.5716132678790893 +1410.0,2.935348167116706 +1411.0,2.490864664079582 +1412.0,2.5560139017456773 +1413.0,3.6837324994730762 +1414.0,2.472735821479372 +1415.0,3.1257856627611273 +1416.0,3.0846082411479103 +1417.0,2.4711146600329665 +1418.0,3.4033415059857393 +1419.0,3.0255241375712165 +1420.0,2.5914798712683935 +1421.0,2.745968285812312 +1422.0,2.700961939249223 +1423.0,2.51622205557065 +1424.0,2.5230956787341525 +1425.0,3.6670906266957326 +1426.0,3.0756531733994255 +1427.0,2.5502281509868188 +1428.0,2.5681412345358545 +1429.0,4.214681394728478 +1430.0,3.035673063271874 +1431.0,3.9470854515350595 +1432.0,2.866722866812876 +1433.0,2.587514927797861 +1434.0,3.2811597712139178 +1435.0,2.468995670963063 +1436.0,4.808710290291053 +1437.0,3.60842421973907 +1438.0,5.629977603324344 +1439.0,2.566396922056022 +1440.0,2.95057523062038 +1441.0,2.4916084752788055 +1442.0,2.512162860744613 +1443.0,2.564521512198133 +1444.0,3.1277992456767993 +1445.0,3.366665657507139 +1446.0,2.8069281201656335 +1447.0,2.6681551913535766 +1448.0,2.9479028336956365 +1449.0,3.107698005048141 +1450.0,2.6023549313339607 +1451.0,2.654250507462522 +1452.0,2.8146411621535568 +1453.0,4.108142579304142 +1454.0,2.7673756796863738 +1455.0,2.7090390671096745 +1456.0,3.356178007586085 +1457.0,2.5371171593251023 +1458.0,3.7557855018271487 +1459.0,2.731289743657472 +1460.0,3.510822509028574 +1461.0,2.479466971065318 +1462.0,2.4873465007927495 +1463.0,2.4679412270464516 +1464.0,2.68203366368854 +1465.0,2.5611650945244104 +1466.0,2.5613019498921545 +1467.0,3.076067776827347 +1468.0,2.538831761754214 +1469.0,2.832150812633239 +1470.0,2.4516109359432465 +1471.0,3.631312059652206 +1472.0,4.202009466032591 +1473.0,2.473175331007487 +1474.0,2.941658090535095 +1475.0,3.3984834906396135 +1476.0,5.468724052812451 +1477.0,2.5100038656746473 +1478.0,2.5227376426373582 +1479.0,2.5094265784501872 +1480.0,4.189176230762598 +1481.0,2.8700327847656437 +1482.0,3.988184566610993 +1483.0,3.2823621105849488 +1484.0,2.487659545664976 +1485.0,2.543259744909262 +1486.0,2.567451082991098 +1487.0,3.219752690637355 +1488.0,3.274383137955869 +1489.0,2.4645747618074103 +1490.0,2.547975469425252 +1491.0,2.936374411468621 +1492.0,2.8510753506120396 +1493.0,2.5397571599039868 +1494.0,2.786391475474741 +1495.0,2.5552641327886234 +1496.0,3.7590213322194623 +1497.0,2.547583557684256 +1498.0,3.993278063807778 +1499.0,3.2793475583733804 +1500.0,2.4749686698052087 +1501.0,2.643311592432612 +1502.0,2.7794609803580514 +1503.0,3.855249531217719 +1504.0,3.7204954180953305 +1505.0,2.6841373439415483 +1506.0,2.7208767338759507 +1507.0,2.559986832041061 +1508.0,2.810823231182671 +1509.0,2.7169933842668414 +1510.0,2.82160633181515 +1511.0,3.3164593711419426 +1512.0,2.4921626949786218 +1513.0,2.766358079973758 +1514.0,3.547832109658203 +1515.0,2.9643821627056512 +1516.0,2.84344971751604 +1517.0,2.8822450253801004 +1518.0,2.843728402009469 +1519.0,2.9570456604243507 +1520.0,2.8383931549586885 +1521.0,2.4829991571364447 +1522.0,3.115047715066052 +1523.0,4.479692212227384 +1524.0,2.591426653012939 +1525.0,2.642678751133865 +1526.0,2.5110266754790542 +1527.0,2.673887980556923 +1528.0,3.0808380779397586 +1529.0,3.4887418283721603 +1530.0,2.60840293133218 +1531.0,2.8296438089907587 +1532.0,3.4137771182149517 +1533.0,3.561347647473678 +1534.0,2.635843629167493 +1535.0,3.3677781460765974 +1536.0,2.4513255181177285 +1537.0,2.652210124729203 +1538.0,3.1242790796019566 +1539.0,3.170734741805523 +1540.0,3.0663954831422395 +1541.0,2.4729275197149554 +1542.0,2.4564168970260574 +1543.0,2.470825772760729 +1544.0,2.6351031182289373 +1545.0,3.184575346702622 +1546.0,2.6874467983695474 +1547.0,5.376553412172184 +1548.0,3.4568032590150324 +1549.0,2.6906320670788118 +1550.0,3.1138692317977545 +1551.0,2.930584957052513 +1552.0,2.7693728811491134 +1553.0,2.8190790509410206 +1554.0,2.9177295436542785 +1555.0,2.8943463651300254 +1556.0,3.1159863045231573 +1557.0,2.4925163893733724 +1558.0,3.0158940750295944 +1559.0,2.513138183833277 +1560.0,2.476513087919505 +1561.0,2.5130546393811466 +1562.0,3.3708622313170675 +1563.0,3.53229536477646 +1564.0,2.607526100687714 +1565.0,4.630804228974023 +1566.0,4.291199578336174 +1567.0,2.675253220225702 +1568.0,2.62600192068351 +1569.0,2.642416690459547 +1570.0,2.9194460475059136 +1571.0,2.6307849694966374 +1572.0,3.4549651555393526 +1573.0,3.2526307101720326 +1574.0,2.5138376898213015 +1575.0,2.5303459634898076 +1576.0,2.560675032753603 +1577.0,3.864606418986181 +1578.0,2.681573025767555 +1579.0,2.674225596101389 +1580.0,3.248260198847475 +1581.0,2.7718668478291866 +1582.0,2.4816395920798184 +1583.0,2.5868465535187926 +1584.0,3.0052109353011183 +1585.0,3.1753545378404073 +1586.0,2.869021581662066 +1587.0,2.956368778164786 +1588.0,2.6585619804826255 +1589.0,2.464444171568644 +1590.0,3.2055040387199045 +1591.0,2.6580211863760552 +1592.0,3.3055676846186794 +1593.0,2.8315005035224843 +1594.0,3.656687979162202 +1595.0,2.544534887650152 +1596.0,2.6820885150918 +1597.0,2.496771350522121 +1598.0,2.908496715619224 +1599.0,2.51754096160637 +1600.0,2.7682829842012646 +1601.0,3.473816614715403 +1602.0,2.5131645087687082 +1603.0,2.544459624795754 +1604.0,2.9545318690920253 +1605.0,2.813829015450122 +1606.0,2.5622214795930547 +1607.0,2.7192153393852667 +1608.0,2.838712520015927 +1609.0,2.5183698500485603 +1610.0,3.270878852186328 +1611.0,2.831976752132636 +1612.0,2.811778521504388 +1613.0,2.906241880924191 +1614.0,2.7996186156437757 +1615.0,2.718941858476859 +1616.0,2.493536118367374 +1617.0,3.5347737042386718 +1618.0,2.9357095451042396 +1619.0,2.969493966547847 +1620.0,2.9983727175409607 +1621.0,2.487632791468413 +1622.0,3.3320108900625454 +1623.0,2.49874406570754 +1624.0,3.1013731193393563 +1625.0,2.7539654062003045 +1626.0,2.667682383682189 +1627.0,2.5955120561592704 +1628.0,2.9643015054303343 +1629.0,3.426862279423943 +1630.0,2.5078768640717475 +1631.0,2.5996533561188024 +1632.0,3.0923078918117044 +1633.0,3.7074925334615503 +1634.0,2.781075353242007 +1635.0,3.763472394968768 +1636.0,3.2744778127034975 +1637.0,2.977407081960393 +1638.0,2.5709618761510833 +1639.0,2.5585687435732694 +1640.0,3.1296678780728597 +1641.0,3.155105336830282 +1642.0,3.0694113244013694 +1643.0,4.6171508807806045 +1644.0,3.276421481921121 +1645.0,3.3120169426224315 +1646.0,3.0721121625934567 +1647.0,3.3415012363067027 +1648.0,3.272833255440057 +1649.0,3.738228816700512 +1650.0,2.7418018914142834 +1651.0,3.526788670700289 +1652.0,3.898900619354373 +1653.0,2.8729787269514855 +1654.0,3.300529863046506 +1655.0,2.722823598724111 +1656.0,2.5802289956060953 +1657.0,3.8474617456172853 +1658.0,2.853450607327724 +1659.0,3.2668677925721457 +1660.0,2.8566279439194284 +1661.0,2.491691544382333 +1662.0,2.627859920934924 +1663.0,3.444648805867243 +1664.0,3.133179476308951 +1665.0,3.3315290305895493 +1666.0,2.719272154108392 +1667.0,2.9634270088437886 +1668.0,2.504746013595291 +1669.0,2.863701586287403 +1670.0,3.1467710469538703 +1671.0,2.7303191565169485 +1672.0,2.531206303758699 +1673.0,2.9540764985736523 +1674.0,2.907070204830775 +1675.0,2.956482913662424 +1676.0,3.2724143365118827 +1677.0,2.4826181535091574 +1678.0,2.457478113941979 +1679.0,2.8621351167645463 +1680.0,2.4868223035008152 +1681.0,2.9914924426400225 +1682.0,2.5588382405006773 +1683.0,2.632541897422582 +1684.0,3.0497542342855266 +1685.0,2.5738950019382334 +1686.0,3.031230318700656 +1687.0,2.6806279579809904 +1688.0,2.5673070644991864 +1689.0,2.6179889355137025 +1690.0,2.5667262967119995 +1691.0,3.948179804782127 +1692.0,2.5318891062687494 +1693.0,2.683571557770364 +1694.0,2.7126645471714297 +1695.0,2.4626632124276493 +1696.0,2.95646313608483 +1697.0,2.7410361041541997 +1698.0,3.2260825374542863 +1699.0,2.5751724391001085 +1700.0,3.362450329272286 +1701.0,2.821039309497002 +1702.0,2.5246735700759895 +1703.0,2.817594154489186 +1704.0,2.7702133415765253 +1705.0,2.9693744871906538 +1706.0,2.718340039492105 +1707.0,2.639354780395132 +1708.0,3.3509017338941662 +1709.0,3.0645253848330443 +1710.0,3.5368943916274267 +1711.0,2.9001100438475538 +1712.0,2.505153176115443 +1713.0,2.881743684957627 +1714.0,3.26331393302279 +1715.0,2.5488120943714727 +1716.0,2.8650770172664886 +1717.0,2.6565977795890734 +1718.0,2.6932405170332556 +1719.0,2.7239060913564033 +1720.0,2.825580286728143 +1721.0,2.6867680801727003 +1722.0,2.6862370289222492 +1723.0,2.565316703427243 +1724.0,2.671474510650011 +1725.0,2.480694370965857 +1726.0,2.577913257317555 +1727.0,2.5091035500771293 +1728.0,4.644722368339126 +1729.0,2.585399592250351 +1730.0,2.561715956052713 +1731.0,2.5541481377362683 +1732.0,2.8403042450047953 +1733.0,2.9126403293458014 +1734.0,2.969259243828953 +1735.0,2.5038037136034683 +1736.0,3.615490272422236 +1737.0,2.687069118372019 +1738.0,2.531885003865259 +1739.0,2.624885997349452 +1740.0,3.799149783505485 +1741.0,3.253529237196918 +1742.0,2.7826954099812213 +1743.0,2.5240129525489903 +1744.0,3.660925851995712 +1745.0,2.569261687869036 +1746.0,2.940104295218593 +1747.0,2.7641028648711083 +1748.0,2.843769440120961 +1749.0,2.5634425687264826 +1750.0,2.7825570292254853 +1751.0,2.553702510982012 +1752.0,2.8378854009584544 +1753.0,3.0253156573233135 +1754.0,2.5331182941978163 +1755.0,3.797960455275331 +1756.0,3.664379123208054 +1757.0,2.636060317348785 +1758.0,3.1771106528825275 +1759.0,3.7594574864738215 +1760.0,3.8200529463058595 +1761.0,2.5806962486074743 +1762.0,3.2463368908261696 +1763.0,2.484396326674439 +1764.0,2.481216143500914 +1765.0,3.146332008041375 +1766.0,3.3620599813233656 +1767.0,2.683535998997622 +1768.0,2.5063992444025787 +1769.0,2.553276109349663 +1770.0,2.4950244457634105 +1771.0,3.629423979369399 +1772.0,2.7726295747422727 +1773.0,3.0910234920049664 +1774.0,3.106388494280595 +1775.0,2.6064289477792566 +1776.0,2.688193548436718 +1777.0,2.967053710183401 +1778.0,2.7190610676615217 +1779.0,2.8130691686434792 +1780.0,2.546155836832732 +1781.0,3.1410487243854233 +1782.0,2.636264092632402 +1783.0,3.1748332837650532 +1784.0,3.4841864592102696 +1785.0,4.264055623377661 +1786.0,3.422740927453583 +1787.0,2.504583764996328 +1788.0,3.1643709899991803 +1789.0,2.6090371994836117 +1790.0,2.5197867948275703 +1791.0,2.54943810070023 +1792.0,2.7077686346133794 +1793.0,2.582002864093001 +1794.0,3.2792200059971215 +1795.0,2.6715114949674867 +1796.0,2.8756092592694924 +1797.0,2.6974262177885437 +1798.0,2.5762952248414455 +1799.0,7.006975862442255 +1800.0,3.4823949190522887 +1801.0,2.484943271093083 +1802.0,2.4544166882186174 +1803.0,3.7588101027892264 +1804.0,2.4507871966243475 +1805.0,3.25128803777406 +1806.0,3.0706078032023973 +1807.0,2.4686479059677335 +1808.0,2.5072255651931306 +1809.0,2.8581104254474177 +1810.0,2.81311568857783 +1811.0,3.0362189740412613 +1812.0,3.082139919605348 +1813.0,2.4932944771463204 +1814.0,2.774861994755793 +1815.0,3.1704277952378557 +1816.0,2.97806114976591 +1817.0,2.599401129421805 +1818.0,3.8266357168021186 +1819.0,2.8481001726260806 +1820.0,3.094519539871017 +1821.0,2.985712733016963 +1822.0,4.016485327132385 +1823.0,2.7834248511513846 +1824.0,2.5600700374899654 +1825.0,2.5255782125176753 +1826.0,3.422426621739073 +1827.0,2.7282892744565577 +1828.0,2.7251876415972425 +1829.0,2.6268841513226286 +1830.0,3.13244981238653 +1831.0,3.6928720373531223 +1832.0,3.691430007403682 +1833.0,2.565301601918353 +1834.0,3.9271413184783723 +1835.0,2.8699848969615886 +1836.0,3.4567316377601935 +1837.0,2.5773483661605874 +1838.0,2.8908999052993463 +1839.0,2.697840806662175 +1840.0,3.4774661834518845 +1841.0,3.0298579272385613 +1842.0,2.995250270509848 +1843.0,2.8270913491570475 +1844.0,3.1358196264367586 +1845.0,3.149043394024584 +1846.0,2.512156698895287 +1847.0,3.0384536390524537 +1848.0,2.80860964040722 +1849.0,3.8933464385875394 +1850.0,2.483023974947945 +1851.0,2.5268244994352753 +1852.0,2.5954848364473615 +1853.0,2.9284006728559158 +1854.0,5.049623406124118 +1855.0,2.8487540277691132 +1856.0,2.8551535658018015 +1857.0,3.684829074732898 +1858.0,3.662635379300502 +1859.0,2.490282938467874 +1860.0,2.4601205546753775 +1861.0,3.19445039145748 +1862.0,2.8750397849601366 +1863.0,2.6154913185196937 +1864.0,3.546740100343064 +1865.0,3.6013590984161423 +1866.0,2.745671353486196 +1867.0,2.6371699719890622 +1868.0,3.184474130133144 +1869.0,2.667651339373333 +1870.0,2.5173386256423576 +1871.0,3.1743080220147277 +1872.0,2.7458826731057053 +1873.0,3.0948635457639035 +1874.0,3.1505190009232553 +1875.0,2.6369257265361288 +1876.0,2.546501152933584 +1877.0,2.5321223210844988 +1878.0,2.6039314340922215 +1879.0,2.478745930029291 +1880.0,3.2660371185082138 +1881.0,2.680146283365258 +1882.0,2.9285945158790905 +1883.0,2.6335119510400915 +1884.0,3.3416107907085886 +1885.0,3.3977824501527856 +1886.0,2.6087881005865863 +1887.0,2.6181749658362214 +1888.0,2.7263240160242908 +1889.0,2.658704863665747 +1890.0,3.6643786994107126 +1891.0,3.7413098845547044 +1892.0,3.20375761608517 +1893.0,3.100741759390727 +1894.0,3.4941280940470842 +1895.0,2.6639941623055376 +1896.0,2.878964039115498 +1897.0,3.2314332549679285 +1898.0,2.6063543600311507 +1899.0,2.576618162417759 +1900.0,3.601003085333313 +1901.0,3.350670374151888 +1902.0,3.1592876211998018 +1903.0,2.66546041261022 +1904.0,4.3053445889515505 +1905.0,2.7642879303832175 +1906.0,3.179695789208213 +1907.0,3.485755295758179 +1908.0,3.264983102402783 +1909.0,4.293926123925901 +1910.0,4.124670144669422 +1911.0,3.439719419863375 +1912.0,4.186554085206593 +1913.0,2.570225139663455 +1914.0,2.8166647197728834 +1915.0,3.07790458254538 +1916.0,2.525949846385122 +1917.0,2.5611215103900853 +1918.0,2.645409806600352 +1919.0,2.6285259979674045 +1920.0,3.174780423167991 +1921.0,2.5439066159978414 +1922.0,4.189867936172393 +1923.0,2.6516766249291317 +1924.0,4.343334911317245 +1925.0,3.5442626542547364 +1926.0,2.572404166556719 +1927.0,2.5511892441881234 +1928.0,2.467476412630334 +1929.0,3.086867801326691 +1930.0,2.5261145784763768 +1931.0,2.700272545721657 +1932.0,3.055573860091409 +1933.0,3.0400542499134877 +1934.0,2.8844406113891776 +1935.0,2.6838067776708696 +1936.0,2.5412371761532704 +1937.0,2.483177438887818 +1938.0,3.61072742464948 +1939.0,2.9076611395023613 +1940.0,2.5363167299519525 +1941.0,3.7533454076108734 +1942.0,2.5523927895046596 +1943.0,2.925511217418398 +1944.0,3.2865900854627754 +1945.0,2.607002047968355 +1946.0,2.6494995942692063 +1947.0,3.289503335632129 +1948.0,3.774773569590839 +1949.0,2.591025002333985 +1950.0,2.814769092493314 +1951.0,4.317486884133331 +1952.0,3.2848931191373985 +1953.0,2.4983448545008105 +1954.0,3.198497996996033 +1955.0,2.451731637241822 +1956.0,2.7501233852930977 +1957.0,2.561913895587051 +1958.0,2.808991479228559 +1959.0,2.8489945860183976 +1960.0,2.9666183446512835 +1961.0,2.5818753768644322 +1962.0,2.4941031699689207 +1963.0,3.3922932437376083 +1964.0,3.0223796232177755 +1965.0,2.854662879238746 +1966.0,3.100883534391471 +1967.0,2.5370139034081975 +1968.0,3.4034757399313484 +1969.0,2.6182093603571013 +1970.0,3.34589723988132 +1971.0,2.471322751799883 +1972.0,2.558350144045258 +1973.0,3.750913310225595 +1974.0,4.561309815210253 +1975.0,3.193217431165226 +1976.0,3.2849395897512754 +1977.0,3.21543562975283 +1978.0,2.4551141006480925 +1979.0,2.778818635722609 +1980.0,3.0886388962828906 +1981.0,2.572589514312244 +1982.0,2.916395538413612 +1983.0,2.9962877078569585 +1984.0,2.5914702686934605 +1985.0,2.7469418348762566 +1986.0,2.453575240733188 +1987.0,4.7576461354705035 +1988.0,3.6380023681291203 +1989.0,2.562810309276353 +1990.0,2.5904642304006655 +1991.0,2.6310321045602563 +1992.0,2.62962783187278 +1993.0,2.9952222038226877 +1994.0,2.5066571815701852 +1995.0,2.982996852484084 +1996.0,2.4648757214882595 +1997.0,2.6475542735873643 +1998.0,2.5838101344372344 +1999.0,3.0022339516240293 +2000.0,3.0787211964923022 +2001.0,2.7907433593608855 +2002.0,3.0246083253059917 +2003.0,2.457387448269353 +2004.0,2.4806311606586955 +2005.0,2.5088782322140437 +2006.0,2.6451868463994943 +2007.0,3.2577860021794014 +2008.0,3.0869341677785984 +2009.0,3.0088143187505425 +2010.0,2.793076096591214 +2011.0,3.2556432162129147 +2012.0,3.2429665765850464 +2013.0,2.5804419641124894 +2014.0,2.6042484700954107 +2015.0,3.4576638886332045 +2016.0,2.531445642043606 +2017.0,3.7073945042183665 +2018.0,2.6896413480627013 +2019.0,2.738981522484714 +2020.0,2.6720822635753967 +2021.0,2.687357324776202 +2022.0,2.535778355731945 +2023.0,2.6397751174978037 +2024.0,2.471823247540828 +2025.0,3.122757708607981 +2026.0,2.7330855430874137 +2027.0,2.524632758956082 +2028.0,2.526222199224947 +2029.0,2.5870033328209807 +2030.0,2.5125743990072493 +2031.0,3.020941602040257 +2032.0,2.7094944250446025 +2033.0,2.566761833298114 +2034.0,2.6184827111925966 +2035.0,3.699512286876404 +2036.0,4.179526150803806 +2037.0,2.5932510956659884 +2038.0,2.55883397980226 +2039.0,3.6238535227488313 +2040.0,2.493412151574224 +2041.0,3.0100621294074688 +2042.0,2.598525675586815 +2043.0,4.492390015812596 +2044.0,2.949031231390905 +2045.0,2.613012311969641 +2046.0,2.895213177986872 +2047.0,3.1882170363880853 +2048.0,3.2338133197750163 +2049.0,2.5605937063057786 +2050.0,3.2725053399902686 +2051.0,2.507346445193791 +2052.0,3.931882488695714 +2053.0,2.5239801163979334 +2054.0,2.788765110729011 +2055.0,2.7094005885807744 +2056.0,2.8459321225005256 +2057.0,3.279050470288337 +2058.0,2.917258501821349 +2059.0,2.45126885840938 +2060.0,2.497904310717767 +2061.0,2.4567671654867325 +2062.0,4.320603996509783 +2063.0,2.4738573356193307 +2064.0,2.721070305951703 +2065.0,2.6630870334050205 +2066.0,2.57773668429847 +2067.0,2.7157807146783535 +2068.0,3.307034163660174 +2069.0,3.423077137189487 +2070.0,3.2373542275940945 +2071.0,2.6217634405890533 +2072.0,2.691651851537792 +2073.0,2.6066657151698585 +2074.0,2.6356530977004082 +2075.0,3.9049367059411577 +2076.0,2.5111147312749837 +2077.0,2.810733452813269 +2078.0,2.5518254266874365 +2079.0,3.070735556831786 +2080.0,3.396341891968796 +2081.0,2.630556326165386 +2082.0,3.034135069223826 +2083.0,2.5871075898591696 +2084.0,2.8396768990867436 +2085.0,3.5856120293192135 +2086.0,3.1968316076420513 +2087.0,2.4686636346519033 +2088.0,2.575007985003288 +2089.0,2.6812736427332773 +2090.0,2.5591869451651186 +2091.0,2.6577077542945418 +2092.0,3.0792092224602574 +2093.0,2.544025911418837 +2094.0,2.4897255764891475 +2095.0,2.5827277577034256 +2096.0,3.786605684795896 +2097.0,2.749894362426103 +2098.0,3.774348365781257 +2099.0,3.1300322921830106 +2100.0,2.8131679533026115 +2101.0,2.7669885450239433 +2102.0,2.5092603465953496 +2103.0,2.509304102128281 +2104.0,3.024104805750458 +2105.0,2.477829281816723 +2106.0,2.5092352839491707 +2107.0,3.5049691672126633 +2108.0,2.820176621708298 +2109.0,2.4733573638601487 +2110.0,3.6757219249405604 +2111.0,3.879812339737737 +2112.0,2.4859982129111575 +2113.0,2.557529688258602 +2114.0,3.4598760679253497 +2115.0,2.8919025605948807 +2116.0,5.700399556844346 +2117.0,3.0723637542963202 +2118.0,2.659520752387918 +2119.0,2.668723767883441 +2120.0,2.8177758193641353 +2121.0,3.5777786869846944 +2122.0,2.934862319023483 +2123.0,2.5052359283869783 +2124.0,2.4834605816753554 +2125.0,2.7304937789804216 +2126.0,2.4536670298634777 +2127.0,2.8107586396323585 +2128.0,2.5530490297120307 +2129.0,2.7435269622654803 +2130.0,2.5068194328559423 +2131.0,2.675582744218274 +2132.0,3.1128819697266623 +2133.0,2.4914471201777073 +2134.0,2.940498822507882 +2135.0,2.97873101847075 +2136.0,3.4403794978661852 +2137.0,3.160984062305629 +2138.0,2.474237967077696 +2139.0,2.5139452570086194 +2140.0,2.7919596064724828 +2141.0,3.1216893322564405 +2142.0,2.712193892492233 +2143.0,2.6496074832190404 +2144.0,2.797986539476598 +2145.0,3.3009437203901824 +2146.0,3.062941946624908 +2147.0,3.203826330252039 +2148.0,3.768652710062259 +2149.0,4.432168295722469 +2150.0,3.785293045913579 +2151.0,2.9497924894706653 +2152.0,4.437503163540986 +2153.0,3.0844373332598334 +2154.0,3.3066029283248937 +2155.0,3.0531144385328988 +2156.0,3.9807446714327144 +2157.0,3.0580768537995153 +2158.0,4.146391395935378 +2159.0,4.409101352576929 +2160.0,3.8800356136953806 +2161.0,2.550145885258285 +2162.0,2.486729008691979 +2163.0,2.67308744073488 +2164.0,2.978893873905496 +2165.0,3.268697035722433 +2166.0,3.0401243929505997 +2167.0,3.0315170542821943 +2168.0,3.2705203674818937 +2169.0,3.2434701513153157 +2170.0,2.4665461495522667 +2171.0,2.6726075279711443 +2172.0,3.826436779998637 +2173.0,2.75581558240512 +2174.0,2.9129482968079885 +2175.0,2.6341590805237503 +2176.0,2.5075429967510856 +2177.0,5.090497902115544 +2178.0,4.062997029579187 +2179.0,2.462138474091759 +2180.0,3.2720758746899605 +2181.0,2.572466213095556 +2182.0,2.704066664485454 +2183.0,3.6249832942145326 +2184.0,2.8249904334067155 +2185.0,3.534112447422207 +2186.0,2.501146506207168 +2187.0,2.9483122201861534 +2188.0,2.459555255042018 +2189.0,3.4013796312770865 +2190.0,2.553578853180066 +2191.0,2.9013048106330896 +2192.0,2.613786429876935 +2193.0,2.8780594269001507 +2194.0,2.8811459184798984 +2195.0,2.609511417704369 +2196.0,2.701990811925065 +2197.0,2.571618202991227 +2198.0,2.8437818922061964 +2199.0,2.9717141401585447 diff --git a/tests/fixtures/catalogs/case_033_high_mc_2200d.csv b/tests/fixtures/catalogs/case_033_high_mc_2200d.csv new file mode 100644 index 0000000..c294d8a --- /dev/null +++ b/tests/fixtures/catalogs/case_033_high_mc_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,3.7562876532340197 +1.0,3.4754781336053466 +2.0,4.573493649716509 +3.0,3.5685951106473577 +4.0,3.4825310964545024 +5.0,3.7236596235958848 +6.0,4.707407921616582 +7.0,3.416432669836504 +8.0,5.027314923331231 +9.0,4.163463511265768 +10.0,4.603298889112748 +11.0,5.939237983883473 +12.0,3.967143016795993 +13.0,3.4370223560738795 +14.0,3.852804763137577 +15.0,3.6987874072782225 +16.0,3.716135765865216 +17.0,3.443669158456621 +18.0,3.894976866906199 +19.0,3.7398101560224686 +20.0,3.970565677744603 +21.0,4.3609374072932345 +22.0,6.546111992219081 +23.0,3.5394271967517525 +24.0,3.5161465236370644 +25.0,3.621928047325456 +26.0,3.73603481637832 +27.0,4.340567663307551 +28.0,3.4217807500580752 +29.0,3.912321665948385 +30.0,3.8254651670571014 +31.0,4.61248985304173 +32.0,3.6357116307112802 +33.0,3.6307036994029964 +34.0,3.619157858887173 +35.0,4.026611588278186 +36.0,4.281582053521927 +37.0,3.8082998780122037 +38.0,4.249989946962907 +39.0,3.5267544963258946 +40.0,4.659822356491826 +41.0,3.594643469024092 +42.0,3.4598639792794135 +43.0,3.569717798639381 +44.0,3.9414347781822654 +45.0,3.6439009797613213 +46.0,4.273802796239297 +47.0,3.754764746768414 +48.0,5.619405606056259 +49.0,3.6362569643009075 +50.0,3.653505749469731 +51.0,5.348722393209152 +52.0,3.857546541538133 +53.0,4.515492751106663 +54.0,3.6496607749682224 +55.0,3.5850340789129973 +56.0,3.6115204184102834 +57.0,3.7093156662176816 +58.0,3.8271804274492363 +59.0,3.661852075133207 +60.0,3.7501433480047504 +61.0,4.148837812109958 +62.0,5.128952265851899 +63.0,3.834480697590536 +64.0,3.665002250533049 +65.0,4.060306922680278 +66.0,4.298510744036978 +67.0,3.9500363467290156 +68.0,3.4527517174676285 +69.0,3.453330402451153 +70.0,3.929085724202408 +71.0,3.5398268950577747 +72.0,3.7474639197234354 +73.0,3.560962481861739 +74.0,3.5017487292305636 +75.0,3.4718878753927256 +76.0,3.787597419656392 +77.0,3.5640397420442587 +78.0,3.4403704396889725 +79.0,3.4309040491550573 +80.0,3.6200021930619264 +81.0,4.453065949552737 +82.0,4.110967364844626 +83.0,3.7529473052545614 +84.0,3.4824213858225184 +85.0,3.6953320482784324 +86.0,3.5252928619825163 +87.0,4.091800447944397 +88.0,3.8529688599207357 +89.0,3.4790684186935077 +90.0,4.263445419914003 +91.0,3.6763741422669116 +92.0,4.4023764490646595 +93.0,3.5754072125993557 +94.0,3.7181470782727524 +95.0,3.8117452250026655 +96.0,3.50792108845478 +97.0,3.510923451782902 +98.0,3.489439786471701 +99.0,3.527809309696784 +100.0,3.9251494145879047 +101.0,3.967406058593597 +102.0,3.9372025591567854 +103.0,3.694546812856703 +104.0,3.8496540134131587 +105.0,3.5128635106552353 +106.0,3.8915147744102407 +107.0,4.118279587069023 +108.0,3.757945962203858 +109.0,3.590052140246727 +110.0,4.107811995394489 +111.0,3.7717423173006304 +112.0,4.1253625536632335 +113.0,3.63048147054632 +114.0,3.695660473291422 +115.0,3.4215187248819174 +116.0,3.4627616062137037 +117.0,3.40379692014339 +118.0,3.9783694226579596 +119.0,3.8282601187395655 +120.0,3.989332293738023 +121.0,3.4106153762257136 +122.0,3.775328227450633 +123.0,3.4345414719024103 +124.0,4.569574434181188 +125.0,3.6867692968208905 +126.0,3.6229331196697787 +127.0,3.5281810619171017 +128.0,3.6420548468612557 +129.0,5.361606140051266 +130.0,3.642253377184518 +131.0,3.690645872743868 +132.0,3.7830222197681618 +133.0,3.9815148202159665 +134.0,5.613211124537781 +135.0,3.5654759763573196 +136.0,4.327904206531533 +137.0,3.473126775163163 +138.0,4.431458193256865 +139.0,3.5110211640331506 +140.0,3.623910418502279 +141.0,4.587268921229073 +142.0,3.4703969238213306 +143.0,3.6222164474519087 +144.0,3.5667646049628705 +145.0,3.428329889479443 +146.0,3.5108853673425986 +147.0,3.8585574734129606 +148.0,5.391925128374823 +149.0,3.5206297554055492 +150.0,3.454229652579743 +151.0,3.412449147030226 +152.0,3.7699482974103486 +153.0,3.701725406214907 +154.0,5.129638443280113 +155.0,3.4786041144960915 +156.0,4.078468744264679 +157.0,4.394951107805935 +158.0,3.8385021187373187 +159.0,3.4790151984326614 +160.0,3.519602274957111 +161.0,4.385069959819167 +162.0,3.498488143429485 +163.0,3.6759803418502077 +164.0,3.6808569897581624 +165.0,3.875502948868184 +166.0,3.9075123502363764 +167.0,3.417462267045472 +168.0,3.501632533974072 +169.0,3.5766727261343902 +170.0,3.4590836288706237 +171.0,3.5096772362466497 +172.0,4.133247131846206 +173.0,3.4235459588496227 +174.0,3.427457772933879 +175.0,4.272966298197284 +176.0,3.4244695534783816 +177.0,3.562245761494423 +178.0,3.8196167180074405 +179.0,4.903261973046087 +180.0,3.5881626940413605 +181.0,3.4228955617495553 +182.0,4.405231228210432 +183.0,4.000494895868277 +184.0,3.4292968851273598 +185.0,3.5809105796643865 +186.0,3.655438423926799 +187.0,3.9500921793872656 +188.0,3.810149541219065 +189.0,3.8651758599567154 +190.0,3.7386772435982207 +191.0,4.259259135226494 +192.0,4.315059720499838 +193.0,3.6062601715227607 +194.0,3.4585744630449993 +195.0,3.662119657849394 +196.0,3.4967934646559593 +197.0,3.4808187796030623 +198.0,3.51399559286725 +199.0,3.491584196722594 +200.0,3.866767310454871 +201.0,3.4973833440477593 +202.0,3.4373048657804226 +203.0,4.872642485922876 +204.0,4.353923490057416 +205.0,3.6014289658705407 +206.0,3.4783856054149105 +207.0,3.4057803647261573 +208.0,3.5230326266620273 +209.0,3.497217333324109 +210.0,3.524541199171735 +211.0,3.5269489731849863 +212.0,3.7040451968983743 +213.0,3.509174377941067 +214.0,3.456490491987045 +215.0,3.5596975884489055 +216.0,3.6298287467349097 +217.0,3.789186169708077 +218.0,3.7024254980719347 +219.0,3.5720010581578823 +220.0,3.572440767199243 +221.0,3.5015787860484195 +222.0,3.7945987227777787 +223.0,3.7775819169658127 +224.0,4.041637676352961 +225.0,4.257871249238224 +226.0,3.823044632958795 +227.0,3.481401662252253 +228.0,3.9077752057360486 +229.0,3.482212159352338 +230.0,4.400708236348694 +231.0,3.517673747316967 +232.0,3.4945089513049825 +233.0,3.6468877705301748 +234.0,4.6959679706435065 +235.0,3.814474368990271 +236.0,3.9602059366808375 +237.0,3.868781124638158 +238.0,3.7888721697426804 +239.0,4.188909600582235 +240.0,3.5830173685588007 +241.0,4.220320626390323 +242.0,4.427943640718432 +243.0,3.7877339972999855 +244.0,3.738191506252361 +245.0,4.441637628878203 +246.0,3.7418148300870593 +247.0,3.528100499519662 +248.0,3.851227562372153 +249.0,3.4641412797276083 +250.0,3.4496233834318133 +251.0,4.490999824341365 +252.0,3.7584017559083827 +253.0,3.6839750909104687 +254.0,3.780967487730487 +255.0,4.138483172970127 +256.0,3.557175934241465 +257.0,3.565656705230508 +258.0,3.6220546511142135 +259.0,3.5874242512976484 +260.0,3.6101633504485764 +261.0,3.442478930718775 +262.0,3.471999768298035 +263.0,3.4875693735337085 +264.0,3.5844378827573333 +265.0,4.85787731438956 +266.0,3.609799027791032 +267.0,4.039371608739768 +268.0,4.5166798239797 +269.0,3.737146791282251 +270.0,3.747149284028546 +271.0,3.6202591401795226 +272.0,3.8463023435588997 +273.0,3.7643551773488007 +274.0,3.5468922374499705 +275.0,4.416121332021467 +276.0,3.6337245912221054 +277.0,3.826988657218827 +278.0,3.5094851597396985 +279.0,3.743718402701409 +280.0,3.48824138195114 +281.0,3.8935548797227737 +282.0,3.8063445787961987 +283.0,3.5601021695344297 +284.0,4.296007189921134 +285.0,5.17541213429902 +286.0,3.438005345796075 +287.0,4.730417656799848 +288.0,3.4721789189459065 +289.0,3.4741678609746556 +290.0,3.7329866421502262 +291.0,4.107491666233673 +292.0,3.6618696190332933 +293.0,3.4261028112546548 +294.0,4.3415295644682255 +295.0,3.832581678526643 +296.0,3.508724479599986 +297.0,3.788682079064103 +298.0,3.849831851730816 +299.0,4.327626685020344 +300.0,4.057639244982958 +301.0,4.0964538186485235 +302.0,3.496663098461032 +303.0,4.838838100034358 +304.0,4.168724299034493 +305.0,3.548008131373333 +306.0,3.619384285273407 +307.0,3.5390162500136717 +308.0,4.839524536543432 +309.0,3.889096138879686 +310.0,4.254832097181597 +311.0,3.48796900987693 +312.0,3.9063353462476016 +313.0,3.465572685248275 +314.0,3.8392551613330186 +315.0,3.6330450125382665 +316.0,3.8473420937171507 +317.0,3.410227928444577 +318.0,3.5100905339424515 +319.0,3.723667018181468 +320.0,5.403439777044378 +321.0,4.3257627325474255 +322.0,3.968916202802343 +323.0,3.4625629586892135 +324.0,3.653979707899261 +325.0,3.659621025643167 +326.0,3.5940381316174244 +327.0,3.44639708142461 +328.0,4.125139194154183 +329.0,3.666130035870693 +330.0,3.647194201668996 +331.0,3.864141030985821 +332.0,4.281792115968676 +333.0,3.997589570448773 +334.0,3.5898978661691747 +335.0,3.5527753378594604 +336.0,4.246585541323745 +337.0,3.7600007680121825 +338.0,3.649058053838815 +339.0,3.6263066112487174 +340.0,3.752689302487802 +341.0,3.568350728388195 +342.0,3.4224036043847796 +343.0,3.4724214520893653 +344.0,5.146006510592237 +345.0,5.157305275169839 +346.0,4.192234925949057 +347.0,3.9216635798534516 +348.0,3.532660235799633 +349.0,3.8314290741700607 +350.0,3.939648563959603 +351.0,4.320409274114279 +352.0,3.4242986294279767 +353.0,3.6678155182267878 +354.0,3.794580083156979 +355.0,4.792158203142682 +356.0,3.435991840167605 +357.0,3.681112847266889 +358.0,4.196660420564173 +359.0,3.6869945340163093 +360.0,3.998897157754704 +361.0,3.54875053949981 +362.0,3.578180618088047 +363.0,3.758351772256909 +364.0,3.530761354278728 +365.0,3.7700499724731045 +366.0,4.1338283352834075 +367.0,3.5029382035818086 +368.0,3.429693773719797 +369.0,4.456479940945534 +370.0,3.5215146913493056 +371.0,3.7076757450978155 +372.0,3.5377113358989885 +373.0,4.294362394329531 +374.0,3.673561720378624 +375.0,3.462874639948244 +376.0,3.408257862185443 +377.0,4.326942176599841 +378.0,3.407871527808852 +379.0,3.51406213141515 +380.0,4.277459104827788 +381.0,5.202838192177455 +382.0,3.6238182269325048 +383.0,3.5144672301092204 +384.0,4.0558206754615345 +385.0,3.7918048272892317 +386.0,6.023345978908373 +387.0,3.4822755606781843 +388.0,3.4014020647910295 +389.0,3.497706038271272 +390.0,3.6760368960005314 +391.0,3.8650658431915947 +392.0,5.215558079033991 +393.0,3.815274279545342 +394.0,3.6575615969436477 +395.0,4.055458515172073 +396.0,3.7154048960168353 +397.0,3.7733265400038616 +398.0,4.023721092183407 +399.0,3.469569012564804 +400.0,3.493680718470253 +401.0,3.7501741555103396 +402.0,3.531163191362788 +403.0,3.707084550332853 +404.0,4.405483814390861 +405.0,4.126281134638938 +406.0,4.328318076407158 +407.0,3.9171854020072088 +408.0,3.506828315692881 +409.0,3.9490992528610493 +410.0,4.157193257624004 +411.0,3.5001464819689683 +412.0,4.569816319743773 +413.0,4.587022005738252 +414.0,4.648479977257905 +415.0,3.594902080789501 +416.0,3.4907985733927607 +417.0,3.8218042776090164 +418.0,3.7194977877355315 +419.0,3.4586882729193174 +420.0,3.466271318649389 +421.0,3.698682686512317 +422.0,4.042477451694167 +423.0,3.6572375995926922 +424.0,3.8772721333787596 +425.0,3.474854626260228 +426.0,3.962613413873922 +427.0,3.7706486950519054 +428.0,3.88007123311733 +429.0,4.019014155071697 +430.0,3.6767343957989427 +431.0,4.063534381643442 +432.0,3.722757555268503 +433.0,4.304550076075284 +434.0,4.605315461688361 +435.0,3.586556488256333 +436.0,3.907155969918387 +437.0,3.46749381238344 +438.0,3.899957435458577 +439.0,3.4959317741366838 +440.0,3.5981530497443917 +441.0,3.921883308787524 +442.0,3.6677541125013406 +443.0,4.119743575679565 +444.0,3.498663168872548 +445.0,4.071938701133838 +446.0,3.4998136356933665 +447.0,3.950959233298031 +448.0,3.9477122119262447 +449.0,3.7089966183189524 +450.0,3.877162619645739 +451.0,3.9718557004310706 +452.0,3.698705125860549 +453.0,3.747046001150754 +454.0,4.126132646066473 +455.0,3.839319926565279 +456.0,4.333379993260966 +457.0,4.041601538132678 +458.0,3.4738300114189644 +459.0,3.6873689783783226 +460.0,3.406934778601442 +461.0,3.644289407847188 +462.0,3.989324614654485 +463.0,3.776179115195208 +464.0,4.511384383689492 +465.0,3.4427585478479426 +466.0,4.362636412382523 +467.0,4.387453421004118 +468.0,3.7198665469883525 +469.0,3.4520883961880204 +470.0,3.600946130459423 +471.0,3.5435782103330618 +472.0,3.415291635970638 +473.0,3.9676427065535664 +474.0,3.4528597919431605 +475.0,4.300275283628342 +476.0,3.529431633042358 +477.0,3.9927765393978616 +478.0,3.427421411241478 +479.0,4.254582526438133 +480.0,3.7208589660501983 +481.0,3.6352074331385924 +482.0,5.287259282099406 +483.0,3.52897714118491 +484.0,4.282235476349562 +485.0,3.4270087636711666 +486.0,3.9585454319702853 +487.0,3.7082554029416324 +488.0,3.6529524087148673 +489.0,3.516528837899461 +490.0,3.4335000025215074 +491.0,3.584835495086598 +492.0,3.6916402145642953 +493.0,3.542980949977088 +494.0,4.446162769950336 +495.0,3.7074088750877574 +496.0,3.486623411217345 +497.0,3.5244866351335236 +498.0,3.4625731329948235 +499.0,4.377959109192327 +500.0,3.701460369260125 +501.0,3.8964175849477463 +502.0,4.1999663324455225 +503.0,3.755078655414125 +504.0,3.6444678633906684 +505.0,3.9132388022126605 +506.0,3.435387404503175 +507.0,4.24701648264573 +508.0,4.338654498090923 +509.0,3.630199227122797 +510.0,3.663877288015577 +511.0,3.415425493856398 +512.0,3.4991246665216607 +513.0,4.452569302416016 +514.0,3.7579463657411147 +515.0,3.6095820037572017 +516.0,4.197072010457354 +517.0,3.561441575980292 +518.0,3.5486472548949686 +519.0,3.92917839972267 +520.0,3.9660857425159604 +521.0,3.4960161943766166 +522.0,3.478000994137049 +523.0,4.688040307721826 +524.0,3.924089087100452 +525.0,3.4795208048738036 +526.0,4.860695601795346 +527.0,3.4565014458454 +528.0,3.766173787716875 +529.0,4.803569746425981 +530.0,3.907166540075612 +531.0,3.908901037588813 +532.0,4.02134915009665 +533.0,3.651439358550506 +534.0,5.180478283227286 +535.0,3.5055657564036307 +536.0,3.637205387873752 +537.0,3.4526480015650045 +538.0,3.602241671961837 +539.0,3.7712197531752842 +540.0,3.76778270363968 +541.0,3.596352140030142 +542.0,3.632973692839777 +543.0,3.5564592751937663 +544.0,3.6399517814524374 +545.0,4.440744307529984 +546.0,5.627363464900567 +547.0,3.437881031479383 +548.0,3.4961113635423073 +549.0,3.4488098162463063 +550.0,3.4352275701275765 +551.0,3.635233423274048 +552.0,4.462334819622475 +553.0,3.560940953578572 +554.0,3.482032355948846 +555.0,4.3685840803944345 +556.0,3.708713163281816 +557.0,4.1836309136850485 +558.0,3.4568419642367325 +559.0,3.4877155569047007 +560.0,3.886656594348476 +561.0,3.50671314454112 +562.0,3.5280496366500187 +563.0,4.53315179868064 +564.0,4.001440727273557 +565.0,3.435854230178314 +566.0,4.453400404295458 +567.0,3.591204767148366 +568.0,4.008209731874913 +569.0,4.382037578557516 +570.0,3.987883264520721 +571.0,3.694784834835425 +572.0,4.138899339847283 +573.0,3.644057717155811 +574.0,3.4990844055686123 +575.0,3.8705476473979634 +576.0,3.9582804212607052 +577.0,3.4931692904006786 +578.0,3.8164499992767884 +579.0,3.5359829574896193 +580.0,3.503622314646101 +581.0,3.8933236287966673 +582.0,3.6675881824284935 +583.0,3.615017956637655 +584.0,4.064598997597302 +585.0,3.4383095866044386 +586.0,3.9245623836014194 +587.0,4.623174298743199 +588.0,5.107268307727844 +589.0,3.4347948664592267 +590.0,3.96324798575359 +591.0,3.5041324199645176 +592.0,3.5576664320330247 +593.0,3.403329439366568 +594.0,3.938690612121348 +595.0,3.667492405683311 +596.0,3.4801862624487825 +597.0,3.4822683662421143 +598.0,3.736328181784921 +599.0,3.759556181544545 +600.0,3.5097885490485456 +601.0,3.699685517084818 +602.0,4.170971416626712 +603.0,4.2739179434934265 +604.0,4.290805156805302 +605.0,3.4761950721029384 +606.0,4.902530843515611 +607.0,3.8363921606153175 +608.0,3.57397311408355 +609.0,3.5130066167953022 +610.0,4.340188692947546 +611.0,3.80188382472478 +612.0,3.813281308688218 +613.0,3.518686294404076 +614.0,3.4830556022946673 +615.0,4.174178404386931 +616.0,3.843845177405789 +617.0,3.4093469781867034 +618.0,3.4572127049580716 +619.0,3.928793152053423 +620.0,3.7218001863630557 +621.0,3.5756541781183477 +622.0,3.7160594472016055 +623.0,3.7557825704161916 +624.0,3.5277928429468353 +625.0,3.4558177251968902 +626.0,3.6675396367208526 +627.0,3.709092774054571 +628.0,3.4116728697057352 +629.0,3.747795120526462 +630.0,3.798661618927663 +631.0,3.850249486782133 +632.0,3.962855144000936 +633.0,3.732929435932217 +634.0,3.49040042353225 +635.0,4.928602367731282 +636.0,4.450593889906688 +637.0,3.4984760341034487 +638.0,3.6142713152418224 +639.0,3.42139547567848 +640.0,4.325440593475 +641.0,3.4631586505576615 +642.0,4.549831591308721 +643.0,3.6144908868158767 +644.0,4.314639557216489 +645.0,4.264047253874696 +646.0,3.4837771516370397 +647.0,3.4177845475772775 +648.0,4.5012168543182645 +649.0,4.311629929992508 +650.0,5.020684366720955 +651.0,4.058084395238165 +652.0,4.5457117680655 +653.0,3.4764227300907837 +654.0,3.4235047940722825 +655.0,4.388706480852277 +656.0,3.545457167668752 +657.0,3.6748863743534357 +658.0,3.8220377995109875 +659.0,3.554391220807844 +660.0,5.8651071748983075 +661.0,3.646858329740089 +662.0,3.701458285197358 +663.0,3.423672301498889 +664.0,3.4591796240248436 +665.0,3.634756094638655 +666.0,3.4120371282763378 +667.0,3.7641068009995218 +668.0,3.8966176054492774 +669.0,4.0407554421891945 +670.0,3.6060765136740898 +671.0,4.087550689169525 +672.0,3.4037507158586178 +673.0,3.541143481970142 +674.0,3.472348143403183 +675.0,3.742977983868205 +676.0,3.5490729852265863 +677.0,4.636843481842455 +678.0,3.8261068734353856 +679.0,3.5739944583900844 +680.0,4.426716830459289 +681.0,3.795696822386688 +682.0,3.9944325256947515 +683.0,4.8815575225234555 +684.0,3.5199877269918214 +685.0,3.4428676733894594 +686.0,3.831666750509282 +687.0,3.6499902255156393 +688.0,3.4238948521638104 +689.0,4.66343229925589 +690.0,3.875163287184769 +691.0,3.521703059197368 +692.0,3.753539649703457 +693.0,4.121607725325038 +694.0,3.841699403355353 +695.0,3.447510470387654 +696.0,3.98602083051109 +697.0,3.6833929436799755 +698.0,3.4266458383238487 +699.0,4.631693930830684 +700.0,3.5936865474957256 +701.0,4.435894260564392 +702.0,3.579503603690834 +703.0,3.457527754025308 +704.0,3.4329218902714027 +705.0,3.8313481146338466 +706.0,3.6292581749244435 +707.0,3.400692408310535 +708.0,3.60081567470074 +709.0,3.518473160793692 +710.0,3.652552068689152 +711.0,5.3324188728590824 +712.0,4.390429613670199 +713.0,4.009409574788696 +714.0,4.0555823029206834 +715.0,3.7100129552608516 +716.0,3.628050980652926 +717.0,3.445662604524025 +718.0,4.769959783740271 +719.0,3.4823864444281476 +720.0,3.490685818557589 +721.0,4.293541579164923 +722.0,4.552467141145117 +723.0,3.5692348133861533 +724.0,3.5500634571402014 +725.0,4.181341534271272 +726.0,3.741319547838615 +727.0,3.777370165210017 +728.0,3.5211406567853167 +729.0,3.4392357378391814 +730.0,3.80870768513292 +731.0,3.6045072494575026 +732.0,3.455410146532358 +733.0,3.6392851183216353 +734.0,3.7336312513714627 +735.0,3.5583220877030657 +736.0,3.7457605875396767 +737.0,3.8970309343494627 +738.0,3.4939523990883252 +739.0,5.09220208080809 +740.0,3.438599774652021 +741.0,4.267812921143991 +742.0,3.532042244001449 +743.0,3.7131406600352213 +744.0,5.023186547325074 +745.0,3.766924282098846 +746.0,3.584284515288072 +747.0,3.562200023711067 +748.0,3.724334302973896 +749.0,3.514385601298244 +750.0,4.050187898017132 +751.0,3.9589544123923135 +752.0,3.7199178229520458 +753.0,3.4668767234637228 +754.0,5.596335378865508 +755.0,4.2614889832778635 +756.0,3.567712988086672 +757.0,3.430397978333158 +758.0,3.4849850846594963 +759.0,3.5661214059920057 +760.0,3.4086674223748723 +761.0,4.189799388521813 +762.0,3.719815254037195 +763.0,3.702013913509511 +764.0,4.534273098780528 +765.0,3.4012697383500696 +766.0,4.577019096450369 +767.0,4.371562308025358 +768.0,3.935707015281645 +769.0,3.7917868679049214 +770.0,3.8802102769751885 +771.0,3.9294297617399234 +772.0,4.0644371788952665 +773.0,3.4883206566255383 +774.0,3.7300854808166477 +775.0,3.607558442813398 +776.0,3.735902084883231 +777.0,3.655829252058288 +778.0,4.828152423750318 +779.0,3.814587661425342 +780.0,3.788674727127386 +781.0,3.8187762929129567 +782.0,3.4794349996109446 +783.0,3.4389993395651275 +784.0,5.616233758583565 +785.0,3.5082521496167494 +786.0,3.414544631595169 +787.0,3.806623283443124 +788.0,4.37405523558713 +789.0,3.571673967895239 +790.0,3.485551164406327 +791.0,3.6037269733315336 +792.0,4.435732723121508 +793.0,3.607414509334569 +794.0,3.8102371745078254 +795.0,3.471615635756909 +796.0,3.632391545522441 +797.0,4.066422031209457 +798.0,3.7549610758272696 +799.0,3.454321001450435 +800.0,3.4934026177772552 +801.0,4.693096346542999 +802.0,3.521051489364168 +803.0,3.5457159211491325 +804.0,3.4127440748552687 +805.0,3.5013076322364145 +806.0,3.563180132862401 +807.0,4.598590765742402 +808.0,3.4799635017502597 +809.0,3.69390442478415 +810.0,3.473973032683427 +811.0,3.5085015137335884 +812.0,3.5353606592238855 +813.0,3.475822602976067 +814.0,3.526084363173919 +815.0,3.5299612000477363 +816.0,3.6033083357765556 +817.0,3.8908770380235307 +818.0,3.88798772205506 +819.0,3.800937102553288 +820.0,3.848336390154843 +821.0,7.809355978647348 +822.0,3.6148038476666975 +823.0,3.985813147467071 +824.0,4.264843200018167 +825.0,3.640255167225644 +826.0,4.824675376589975 +827.0,4.918669041887741 +828.0,3.6453373450549877 +829.0,3.7460713785589315 +830.0,3.9692946554368653 +831.0,4.9869970616217625 +832.0,4.651463447438184 +833.0,3.4763712847933346 +834.0,5.418753433785877 +835.0,3.533157531657922 +836.0,3.789042324674949 +837.0,3.7074016654700555 +838.0,3.587801569145174 +839.0,3.702380389145658 +840.0,5.506714817376675 +841.0,3.4214169864370905 +842.0,4.168778622980569 +843.0,3.5420308424497016 +844.0,3.616060009046932 +845.0,3.5020332706677135 +846.0,3.47280973797467 +847.0,3.7951212719136245 +848.0,5.1313083434568885 +849.0,3.8123494171108994 +850.0,3.7892118379538897 +851.0,4.935695015238231 +852.0,4.296162667180644 +853.0,3.7738222757563467 +854.0,4.489105418234521 +855.0,4.00406959004356 +856.0,3.999975983553419 +857.0,4.458374160589284 +858.0,4.587674056414217 +859.0,3.587125655942902 +860.0,4.050581651479898 +861.0,3.7799283886091377 +862.0,3.7934593223624717 +863.0,4.956469608291291 +864.0,3.841762375398524 +865.0,3.756281197297172 +866.0,3.6108898176163424 +867.0,4.453736766689541 +868.0,3.560549625974331 +869.0,3.462570360358108 +870.0,4.470152749308076 +871.0,4.61806412929773 +872.0,3.440554002458505 +873.0,3.6483412940224422 +874.0,3.6176016758018887 +875.0,4.707200968542533 +876.0,3.844987504141945 +877.0,3.6092777298698024 +878.0,3.960383172305766 +879.0,3.5692720807103138 +880.0,4.122413247877151 +881.0,3.5108747694294764 +882.0,3.4346447269271634 +883.0,3.4484766074229416 +884.0,3.8754142010530055 +885.0,4.95711381041918 +886.0,3.400628406753334 +887.0,5.405360037545856 +888.0,4.084724140382555 +889.0,3.747249640568308 +890.0,3.7258143142978724 +891.0,3.820441599426285 +892.0,4.726411554514805 +893.0,3.7751610892107736 +894.0,3.5440659446315554 +895.0,3.5574905950791087 +896.0,5.370805368019459 +897.0,3.436464441821926 +898.0,3.5032124398091593 +899.0,3.5347829315233255 +900.0,3.507016150424241 +901.0,3.556737214054676 +902.0,3.757949543205226 +903.0,4.498475787152053 +904.0,3.8156771929541033 +905.0,4.080481224777745 +906.0,3.790024610324537 +907.0,3.435890170836668 +908.0,3.524527592116593 +909.0,3.403755462467784 +910.0,3.484383689576378 +911.0,5.387613723247409 +912.0,4.38148588809676 +913.0,3.6502919775901015 +914.0,3.463048063698812 +915.0,4.014148084245833 +916.0,3.672193113918708 +917.0,3.7279242977375406 +918.0,4.039451368184331 +919.0,3.4163237523469294 +920.0,4.17555262168396 +921.0,4.669614488528271 +922.0,3.526018795176217 +923.0,3.548973527569514 +924.0,4.021492482518816 +925.0,3.416033086719948 +926.0,5.0639138481714 +927.0,3.529727601436047 +928.0,3.6065958720612374 +929.0,3.6022098479157068 +930.0,3.7377428476876697 +931.0,5.023293281261875 +932.0,3.5095261719289983 +933.0,3.96549438649215 +934.0,4.69421175806253 +935.0,3.4855876714808294 +936.0,3.5304081555671836 +937.0,3.8409848912352866 +938.0,3.7950113421413905 +939.0,3.4324846081961353 +940.0,3.449230783401355 +941.0,3.550288777605256 +942.0,3.4662037943788944 +943.0,3.5915208122500752 +944.0,3.4887022279901077 +945.0,3.5133724735877814 +946.0,4.045565277044448 +947.0,4.032849420119422 +948.0,3.556288075454531 +949.0,3.40131724966368 +950.0,3.741200086205503 +951.0,3.4288188572075624 +952.0,4.264118590393286 +953.0,3.463056142000062 +954.0,3.4233550402016757 +955.0,3.660067224393731 +956.0,3.7342952601784583 +957.0,3.6277808618257437 +958.0,3.793620916678624 +959.0,3.6266057536732332 +960.0,3.520881597210885 +961.0,3.421930038987003 +962.0,4.54029748603819 +963.0,4.037315829121708 +964.0,3.52833734246728 +965.0,3.5570004844077703 +966.0,3.517503957229175 +967.0,3.5532446172909857 +968.0,3.536121323832833 +969.0,3.56779804207107 +970.0,3.5792739604817134 +971.0,3.423616810932584 +972.0,3.448928007270292 +973.0,3.8214059392315924 +974.0,3.9860545995955032 +975.0,3.524956649911416 +976.0,3.597913425788989 +977.0,3.443824161500661 +978.0,3.781037764713618 +979.0,3.585534589601479 +980.0,3.428511241705298 +981.0,3.868482183308952 +982.0,4.030941245768111 +983.0,3.8632159610793244 +984.0,3.8839046021332515 +985.0,3.469767920979302 +986.0,3.552349771836653 +987.0,3.8040123179123695 +988.0,3.5260740076089885 +989.0,3.770062499099766 +990.0,3.8969659401890704 +991.0,4.127118218712559 +992.0,3.602190278716532 +993.0,3.865057523340861 +994.0,3.4216212424334267 +995.0,3.8244579499535787 +996.0,3.596218121659282 +997.0,3.8507512088667535 +998.0,3.545658218323871 +999.0,3.6908155887396736 +1000.0,5.086888836168842 +1001.0,4.467869099113458 +1002.0,4.296761474398826 +1003.0,4.001454977756013 +1004.0,3.7085679117960457 +1005.0,5.01605158781814 +1006.0,3.899383508911659 +1007.0,3.4673249414298875 +1008.0,3.712098633412677 +1009.0,3.7904096211540437 +1010.0,3.663247630693993 +1011.0,4.040992438841586 +1012.0,5.13466830694085 +1013.0,3.536946856616176 +1014.0,3.577591206917634 +1015.0,4.55954298863677 +1016.0,3.739097902053798 +1017.0,3.4959330623786022 +1018.0,3.8657292259219993 +1019.0,4.104945987652834 +1020.0,3.4133185162953965 +1021.0,4.235536252346812 +1022.0,3.4602256252838703 +1023.0,4.323147272286598 +1024.0,3.711360562115334 +1025.0,3.9051174934154194 +1026.0,5.050656623208917 +1027.0,3.680838840197611 +1028.0,4.760139401653806 +1029.0,3.8565633222217386 +1030.0,3.448536755167598 +1031.0,3.799403124300488 +1032.0,3.8168025773448817 +1033.0,3.5742209553234736 +1034.0,3.7180077016915702 +1035.0,3.465848483187126 +1036.0,3.6050061198389627 +1037.0,4.512830265457327 +1038.0,4.1243169626927925 +1039.0,3.414247068270642 +1040.0,3.566764357089538 +1041.0,3.4598803722528912 +1042.0,4.272578355026278 +1043.0,3.430054971244132 +1044.0,3.514310177501546 +1045.0,3.599282997241446 +1046.0,4.295433405983957 +1047.0,3.524494746527987 +1048.0,3.877746706075565 +1049.0,4.276140973326136 +1050.0,4.035784949208371 +1051.0,3.4189983516212483 +1052.0,3.5369272722309337 +1053.0,3.9067935354341907 +1054.0,4.229236600601558 +1055.0,5.082485239768216 +1056.0,3.462626891131437 +1057.0,3.59441625479038 +1058.0,4.114710683895574 +1059.0,3.6622914569979432 +1060.0,3.4790588454776055 +1061.0,3.8743084387569837 +1062.0,3.477722958306038 +1063.0,3.46039587139625 +1064.0,4.210799458773348 +1065.0,3.4281747039615866 +1066.0,3.489188613436351 +1067.0,3.6106408248032515 +1068.0,4.564736640406849 +1069.0,4.533101740017225 +1070.0,3.6224311636531232 +1071.0,3.9258781923518793 +1072.0,4.127185370602794 +1073.0,3.7552343006313427 +1074.0,3.6130746929922397 +1075.0,3.653136962259678 +1076.0,3.61014167815273 +1077.0,4.379110531948169 +1078.0,4.203321038358521 +1079.0,4.152882418451506 +1080.0,3.898916459086357 +1081.0,4.166341247004802 +1082.0,3.4126728196606915 +1083.0,3.659859897664775 +1084.0,3.6770139990715607 +1085.0,3.510836166492373 +1086.0,3.5564103921149024 +1087.0,5.16401946010324 +1088.0,4.24231194592056 +1089.0,4.146249608059966 +1090.0,3.5996335988719492 +1091.0,3.5101237900740156 +1092.0,3.4174434850433704 +1093.0,3.586961900232899 +1094.0,3.4040761659668077 +1095.0,3.4447760059107266 +1096.0,3.811237200495897 +1097.0,4.5157777673208574 +1098.0,3.6278732628551547 +1099.0,3.4168698399925956 +1100.0,3.4678913383266123 +1101.0,3.728861500846701 +1102.0,3.9853026059978283 +1103.0,3.9045249532443793 +1104.0,4.304172588828446 +1105.0,4.270789529123034 +1106.0,4.060272660514894 +1107.0,3.4963839851917333 +1108.0,3.558556955585042 +1109.0,4.036033072737572 +1110.0,3.967249386147609 +1111.0,4.274306043066601 +1112.0,3.4890605980171774 +1113.0,3.9350552864411665 +1114.0,3.5370755584351916 +1115.0,3.84274796960129 +1116.0,4.2622164958212805 +1117.0,3.568599349430329 +1118.0,3.9888128774155462 +1119.0,3.5867014410242386 +1120.0,3.4824990756812837 +1121.0,3.5586735261138593 +1122.0,3.418020070805555 +1123.0,3.4359976812698076 +1124.0,3.645103635939005 +1125.0,3.410061431118715 +1126.0,3.450325414504185 +1127.0,3.416399515937724 +1128.0,5.043258924374195 +1129.0,3.5464494093327557 +1130.0,4.6838138083054375 +1131.0,3.680106154583488 +1132.0,5.114593447304095 +1133.0,4.166053885147597 +1134.0,3.9985740503394176 +1135.0,4.074543924041132 +1136.0,3.9078087174277787 +1137.0,3.7158742484338925 +1138.0,3.5450487441278646 +1139.0,3.448491890406863 +1140.0,3.4274438989611844 +1141.0,3.6273832150314522 +1142.0,3.5093317010929392 +1143.0,4.08306302605018 +1144.0,3.4553264098933556 +1145.0,3.4801394478816916 +1146.0,4.181277610510912 +1147.0,3.514879074086642 +1148.0,3.8650238708869225 +1149.0,3.6640641379755787 +1150.0,4.143953338241506 +1151.0,3.9375541770009033 +1152.0,3.512067099923788 +1153.0,3.9176526054779535 +1154.0,3.5679156137730628 +1155.0,3.6468914478803893 +1156.0,3.4311724736001197 +1157.0,3.55427827885307 +1158.0,4.3410501849960506 +1159.0,4.221328848066289 +1160.0,3.5530713096998747 +1161.0,3.505193210620478 +1162.0,3.5392466815396464 +1163.0,3.5170531798488076 +1164.0,3.553246583390651 +1165.0,3.857570917023517 +1166.0,3.4343611728615104 +1167.0,3.5022443208224976 +1168.0,3.638850113704806 +1169.0,3.548607836258182 +1170.0,4.29852759317406 +1171.0,4.418844862625368 +1172.0,4.048886539858612 +1173.0,4.410915337804213 +1174.0,3.5943076230347866 +1175.0,3.603164469647952 +1176.0,3.51678466434251 +1177.0,3.8910401163739734 +1178.0,3.6224906835072193 +1179.0,4.261667669019128 +1180.0,3.6144332769979375 +1181.0,3.6388593713426816 +1182.0,3.4063526013842655 +1183.0,3.596384112313202 +1184.0,3.7177183783425276 +1185.0,3.7106456118450626 +1186.0,3.5013203364382943 +1187.0,3.910740228259109 +1188.0,3.5780121114323946 +1189.0,3.656325119823485 +1190.0,3.461714507916411 +1191.0,3.4348280284188015 +1192.0,3.83111642727585 +1193.0,5.1571954119673515 +1194.0,3.7300876483533414 +1195.0,4.221533345165999 +1196.0,4.561272728009305 +1197.0,3.616277066807166 +1198.0,3.4628509500373785 +1199.0,3.646757228864521 +1200.0,3.4121975974913763 +1201.0,3.604187216548555 +1202.0,4.621365150455364 +1203.0,3.7405558332956876 +1204.0,3.9585067216755503 +1205.0,3.509198286837507 +1206.0,6.464573162982035 +1207.0,3.898061119183168 +1208.0,3.473294943437858 +1209.0,4.576509080704428 +1210.0,3.4717787810621417 +1211.0,3.980493327636471 +1212.0,3.4563057031926685 +1213.0,3.619352776993991 +1214.0,3.7972906568456217 +1215.0,3.9724619593748285 +1216.0,3.82821324882826 +1217.0,5.292363708372813 +1218.0,3.547071215909165 +1219.0,3.6123263270228545 +1220.0,3.5208375383935384 +1221.0,3.5366088466090915 +1222.0,3.4289599770539514 +1223.0,3.8113930195871113 +1224.0,4.59776552843245 +1225.0,3.542321021013675 +1226.0,4.122382559174218 +1227.0,3.8272904244241475 +1228.0,3.8625678124106 +1229.0,3.5160596508066226 +1230.0,3.6781138452400874 +1231.0,3.589980383156759 +1232.0,3.8730820545711984 +1233.0,4.122064248340919 +1234.0,3.456128943857752 +1235.0,4.423712442414677 +1236.0,3.535140411722086 +1237.0,3.688564871221043 +1238.0,3.4412791923819905 +1239.0,4.393226881103573 +1240.0,3.939486652763895 +1241.0,3.447630506548979 +1242.0,4.723925596750111 +1243.0,3.5615098819130817 +1244.0,4.829339559486173 +1245.0,3.624586961342745 +1246.0,3.8030537027699536 +1247.0,3.442759016621565 +1248.0,3.578038217805997 +1249.0,4.515697463010287 +1250.0,3.773409442356492 +1251.0,3.7337340191947295 +1252.0,3.5123167341297674 +1253.0,4.647188275232693 +1254.0,3.707885009426685 +1255.0,3.7338246935629296 +1256.0,4.845818812179345 +1257.0,3.6088766627000184 +1258.0,4.134317272822359 +1259.0,3.6712916362619104 +1260.0,3.8891898702200973 +1261.0,3.720373038333078 +1262.0,3.4501811411170324 +1263.0,3.4096116769185563 +1264.0,3.9038955601082854 +1265.0,3.5801741597428145 +1266.0,3.6636167297937035 +1267.0,3.4322652533463085 +1268.0,3.846287294806446 +1269.0,3.589547700393192 +1270.0,3.6277125698306496 +1271.0,3.76747209810231 +1272.0,3.4903707388760505 +1273.0,3.838466612660023 +1274.0,3.514268931932958 +1275.0,3.7593848291161818 +1276.0,4.1499884166029695 +1277.0,4.020615773853156 +1278.0,3.9871748258431694 +1279.0,3.640890531232257 +1280.0,3.546843376760308 +1281.0,3.633220899594867 +1282.0,4.222044334920065 +1283.0,3.6353472551310797 +1284.0,3.480353893537561 +1285.0,3.806239342566213 +1286.0,3.4886091434367947 +1287.0,3.5016134065673747 +1288.0,3.6783949105039544 +1289.0,3.615957670397678 +1290.0,3.925264596103813 +1291.0,3.558787043698469 +1292.0,3.563727941597552 +1293.0,3.623155671639263 +1294.0,5.451747973183755 +1295.0,3.513771377686382 +1296.0,4.0343983290026415 +1297.0,3.455078700278777 +1298.0,5.302986872884994 +1299.0,3.8978362223762133 +1300.0,3.586945524534359 +1301.0,3.5529882643556077 +1302.0,3.80835679323709 +1303.0,4.2214239252874615 +1304.0,4.494035394200518 +1305.0,3.434754404497781 +1306.0,3.5422486844778023 +1307.0,3.7559851423618404 +1308.0,3.5863153430008645 +1309.0,3.5237242387083008 +1310.0,3.7749237395171886 +1311.0,3.688308614051738 +1312.0,3.7613474320802394 +1313.0,3.8046908429225423 +1314.0,3.634892999300849 +1315.0,3.953386283973593 +1316.0,3.456278620022093 +1317.0,3.42047896878843 +1318.0,4.109759583013142 +1319.0,4.954543169369718 +1320.0,4.3387237123350655 +1321.0,3.9219749992855006 +1322.0,4.044376953090385 +1323.0,4.1644798381451595 +1324.0,3.4897721024717945 +1325.0,3.8668783203789894 +1326.0,4.485919287983403 +1327.0,3.660744418463481 +1328.0,4.418854730619567 +1329.0,4.8498122849629715 +1330.0,4.872264511498282 +1331.0,3.709591892412135 +1332.0,3.4531588488269014 +1333.0,3.5640413383542637 +1334.0,3.413196342264525 +1335.0,3.734898651500497 +1336.0,3.582571096119011 +1337.0,3.4405651191082804 +1338.0,3.579604006461983 +1339.0,3.6155762791742365 +1340.0,4.042291856192421 +1341.0,3.4283783277961675 +1342.0,3.5665987348406683 +1343.0,3.549534695887306 +1344.0,3.8557686036051657 +1345.0,4.124751828491465 +1346.0,4.256551847560629 +1347.0,3.8600094535929297 +1348.0,3.98535619307518 +1349.0,4.765860948552727 +1350.0,4.3312943650528615 +1351.0,3.476192586721555 +1352.0,3.6092485266859797 +1353.0,3.9955240714259226 +1354.0,3.8767809656032597 +1355.0,4.165773507531337 +1356.0,4.085846329152854 +1357.0,4.261783361121407 +1358.0,3.7981293061325276 +1359.0,3.805225650122389 +1360.0,3.9424634383817407 +1361.0,3.6780334487842214 +1362.0,3.4365664709538786 +1363.0,4.076628471206812 +1364.0,3.50532907714034 +1365.0,3.511770558794886 +1366.0,4.831100341717067 +1367.0,4.6085412585578185 +1368.0,3.8809600033399954 +1369.0,4.085615164891862 +1370.0,3.6236274557274832 +1371.0,3.610516937379569 +1372.0,3.6624532496522324 +1373.0,3.4963203310397466 +1374.0,3.613303953172042 +1375.0,3.775641479476017 +1376.0,3.987792163177431 +1377.0,3.7551142008730487 +1378.0,3.6607354375185044 +1379.0,3.5427854933324867 +1380.0,3.6120842161874136 +1381.0,3.432590115906112 +1382.0,3.7064255690830326 +1383.0,4.418619223046003 +1384.0,3.5738959081843227 +1385.0,3.6163299832035563 +1386.0,3.516148122408583 +1387.0,3.721469548212723 +1388.0,3.5539213559856324 +1389.0,4.4904741977412534 +1390.0,4.220181974852524 +1391.0,3.526724904247555 +1392.0,3.438276376497703 +1393.0,3.4707929533133592 +1394.0,3.5238093570435853 +1395.0,3.8084914998316903 +1396.0,6.41144735226338 +1397.0,3.604465616976965 +1398.0,3.5352442505611203 +1399.0,3.5029966687319516 +1400.0,4.11864282556336 +1401.0,4.204698299135957 +1402.0,3.998761454044643 +1403.0,3.497294730540812 +1404.0,3.8781939616430776 +1405.0,3.4779941983669973 +1406.0,4.361183828154002 +1407.0,3.910659809670758 +1408.0,3.5303143405957265 +1409.0,3.4614499117152477 +1410.0,3.490776752187353 +1411.0,3.6038022773512495 +1412.0,4.140570668097822 +1413.0,3.6764437197904534 +1414.0,3.763428453249243 +1415.0,3.404466557347244 +1416.0,4.617364731970532 +1417.0,3.6549080860941516 +1418.0,3.7262152249388407 +1419.0,3.9201646556735863 +1420.0,3.707967580640519 +1421.0,3.97618612388606 +1422.0,3.4721974157140525 +1423.0,4.8439310357390255 +1424.0,3.4571358939436556 +1425.0,3.6173342109361455 +1426.0,5.3389007973049925 +1427.0,3.409933596603959 +1428.0,3.7533254004519816 +1429.0,3.6035119455116265 +1430.0,3.598730645751653 +1431.0,3.5617272616480493 +1432.0,4.035305441390496 +1433.0,4.456155612175713 +1434.0,3.5312992792146156 +1435.0,4.99949232735015 +1436.0,3.9279212471707403 +1437.0,3.4056190740262275 +1438.0,3.6669605132112926 +1439.0,3.6047548225236925 +1440.0,3.7592320709041953 +1441.0,3.4407058870449556 +1442.0,4.051299853641062 +1443.0,3.9712900236095283 +1444.0,3.835811257178083 +1445.0,4.138197276169372 +1446.0,3.891569595574868 +1447.0,3.9978601547309673 +1448.0,3.8146320692370494 +1449.0,3.5230581374582814 +1450.0,3.589674374696386 +1451.0,3.5177421827794535 +1452.0,4.000902574880353 +1453.0,3.530444935552357 +1454.0,4.348421681906741 +1455.0,4.473765292075435 +1456.0,3.98498939509489 +1457.0,4.344817952832058 +1458.0,3.4168736684132455 +1459.0,3.8032051902938666 +1460.0,3.786048244537504 +1461.0,3.851228342399817 +1462.0,4.159852995883142 +1463.0,3.4983588321243553 +1464.0,3.633538368239715 +1465.0,3.6519446841730776 +1466.0,4.065227475930631 +1467.0,3.733664946365135 +1468.0,5.193323810377521 +1469.0,3.643014530622503 +1470.0,3.9856352155095083 +1471.0,4.373970423005605 +1472.0,3.808587971285407 +1473.0,3.6025863683528474 +1474.0,5.267112048898811 +1475.0,3.5523687535024773 +1476.0,3.4785863363162113 +1477.0,4.084210879873784 +1478.0,3.7605372162393973 +1479.0,4.887916687511273 +1480.0,3.7461097917373607 +1481.0,3.5750360032159905 +1482.0,3.4943392154931225 +1483.0,4.3987713387035 +1484.0,3.5552306693890783 +1485.0,3.9224672416641297 +1486.0,3.8271271860245495 +1487.0,3.5970842450830074 +1488.0,3.8468069298205165 +1489.0,4.79451457236088 +1490.0,3.4216067483668553 +1491.0,3.618039653377089 +1492.0,3.5785770619332324 +1493.0,3.4646138449422197 +1494.0,3.865025578392918 +1495.0,3.4638922561127004 +1496.0,4.407254977599743 +1497.0,3.614723984122417 +1498.0,3.608616577816123 +1499.0,4.477557629613736 +1500.0,3.6313422040115757 +1501.0,4.374595535227098 +1502.0,3.5355309127949375 +1503.0,3.5509128253524262 +1504.0,3.455068775879404 +1505.0,3.8690658004112386 +1506.0,3.905326632694049 +1507.0,4.678758907197458 +1508.0,3.876405997603997 +1509.0,3.950885176807501 +1510.0,3.939481124526205 +1511.0,4.414343893463882 +1512.0,3.6321613564830812 +1513.0,3.811516178420152 +1514.0,3.4155311259735455 +1515.0,3.53331097030757 +1516.0,3.841585815681682 +1517.0,3.5619592609673356 +1518.0,3.472789738437865 +1519.0,4.016256845395822 +1520.0,3.5209154800910163 +1521.0,3.6806431931461048 +1522.0,3.4535958942706126 +1523.0,3.9570016378970667 +1524.0,3.6800749007789584 +1525.0,3.931055502079157 +1526.0,3.5180774238381862 +1527.0,3.530080379744587 +1528.0,4.150500165961961 +1529.0,4.577597339149618 +1530.0,3.605375893057011 +1531.0,3.7092935774148748 +1532.0,3.739986695466611 +1533.0,3.423101096094606 +1534.0,3.5500537909632848 +1535.0,3.878685996405776 +1536.0,3.5691279061080348 +1537.0,4.763417345198691 +1538.0,3.508355656878191 +1539.0,4.310601653849688 +1540.0,3.7080129479801127 +1541.0,3.9858229552642603 +1542.0,3.576742328373516 +1543.0,4.6328222949921045 +1544.0,4.143980693372576 +1545.0,4.133407648995891 +1546.0,3.666658992432912 +1547.0,3.6469123870034252 +1548.0,3.4792320912997283 +1549.0,4.108651695206898 +1550.0,5.273020600911117 +1551.0,4.110777212062412 +1552.0,3.7038658948835295 +1553.0,4.0266505955973635 +1554.0,3.8525809934396946 +1555.0,3.4082366360560234 +1556.0,3.424002049634161 +1557.0,3.5587386489395096 +1558.0,3.457078271435909 +1559.0,3.530602920950335 +1560.0,3.5269165428029905 +1561.0,4.031245930690045 +1562.0,3.407057132336633 +1563.0,4.411399225062837 +1564.0,3.555964325594502 +1565.0,3.5529603775059773 +1566.0,3.898095986512544 +1567.0,3.6521820496439483 +1568.0,3.698190281700425 +1569.0,3.8033293328545543 +1570.0,3.803364973209848 +1571.0,3.413036988307199 +1572.0,3.977555296730093 +1573.0,4.276276620550728 +1574.0,3.8470721303557602 +1575.0,3.465090623688959 +1576.0,3.5777736157575126 +1577.0,3.4674805459892584 +1578.0,3.423766879707766 +1579.0,4.781475963233471 +1580.0,3.591983916112514 +1581.0,3.5669526416564152 +1582.0,3.59222172796457 +1583.0,4.238540561505514 +1584.0,3.475810042924339 +1585.0,3.968724047672425 +1586.0,5.562660363835036 +1587.0,3.9801500304199404 +1588.0,3.4615015766615893 +1589.0,3.736381796854329 +1590.0,3.775697600001848 +1591.0,6.239737871369942 +1592.0,4.352350812799119 +1593.0,4.20868153986738 +1594.0,5.2392637491910765 +1595.0,4.164196574444786 +1596.0,4.091344884156624 +1597.0,3.8356288574593185 +1598.0,3.5448215634363733 +1599.0,3.9899619840167806 +1600.0,4.488073595556415 +1601.0,4.79908841288127 +1602.0,4.47351372399569 +1603.0,3.671158541506514 +1604.0,3.416130844142685 +1605.0,3.6416028037785204 +1606.0,4.189006985332132 +1607.0,4.375421679327184 +1608.0,3.549963279196036 +1609.0,3.5640041265054405 +1610.0,3.788702861803763 +1611.0,3.738499903885444 +1612.0,3.6382293806514188 +1613.0,4.007936085799008 +1614.0,3.6622666723633124 +1615.0,3.8469999242451256 +1616.0,3.7963025306892932 +1617.0,3.7333698095588765 +1618.0,3.5286343782764766 +1619.0,3.781592188017192 +1620.0,4.02399992897425 +1621.0,3.5589128331599174 +1622.0,3.4595813289360335 +1623.0,4.828716151423233 +1624.0,3.490530738797684 +1625.0,5.07194961357774 +1626.0,3.990175984272901 +1627.0,3.853345446932033 +1628.0,3.5056073872100115 +1629.0,3.7893807722110604 +1630.0,3.7090616227442346 +1631.0,3.646632161599318 +1632.0,3.9356819074679117 +1633.0,3.549196446027711 +1634.0,3.5809519793572857 +1635.0,3.594013033092579 +1636.0,3.4355764793617642 +1637.0,3.5872058229753527 +1638.0,4.2436309363691755 +1639.0,3.881129464560546 +1640.0,3.4892258368415265 +1641.0,3.416400117703822 +1642.0,3.7642938965676636 +1643.0,3.4806392323168778 +1644.0,3.8225234749619483 +1645.0,4.076774030989892 +1646.0,3.442242699415861 +1647.0,3.872925476919435 +1648.0,4.098215818538511 +1649.0,3.9093193336400143 +1650.0,3.8128480364114807 +1651.0,4.707471816073169 +1652.0,3.43000924640762 +1653.0,4.035551808745098 +1654.0,3.4791150990522937 +1655.0,3.8289329263609035 +1656.0,4.198064350825998 +1657.0,4.086374619691121 +1658.0,3.56751853373066 +1659.0,3.4475388378753182 +1660.0,3.4328648475411785 +1661.0,4.0236330870791 +1662.0,4.167020758946152 +1663.0,4.1926164911861115 +1664.0,3.465606157905251 +1665.0,3.405538553869197 +1666.0,4.578759807380422 +1667.0,3.7458402028148683 +1668.0,3.410180783162172 +1669.0,3.5454892943130534 +1670.0,3.5067611624354442 +1671.0,4.526732324110616 +1672.0,4.4810768890327335 +1673.0,3.646363038843285 +1674.0,5.102077896071103 +1675.0,3.983493613102025 +1676.0,3.4845993282789562 +1677.0,3.6010914781358294 +1678.0,4.002592193084122 +1679.0,4.42623447730398 +1680.0,3.7899559094023973 +1681.0,3.992633527822332 +1682.0,3.51375213418177 +1683.0,4.559775891015659 +1684.0,5.640327777850324 +1685.0,3.69803658389201 +1686.0,3.5995219938029615 +1687.0,3.536869509430799 +1688.0,3.704258465589802 +1689.0,3.6291734367296993 +1690.0,4.461747144514202 +1691.0,3.447799316494938 +1692.0,3.8246745875986194 +1693.0,3.800750792466297 +1694.0,3.5747777503462106 +1695.0,4.17690524269586 +1696.0,3.5984094623077967 +1697.0,4.108913646102191 +1698.0,3.544357080579279 +1699.0,3.737598289685172 +1700.0,3.6053586624132374 +1701.0,4.228447974363619 +1702.0,5.89381413988011 +1703.0,3.7275557581751118 +1704.0,3.4000756700658217 +1705.0,3.792587417697699 +1706.0,4.21876398199579 +1707.0,3.451349116768198 +1708.0,3.888111302084094 +1709.0,3.56592319038723 +1710.0,3.4191928351012733 +1711.0,3.9021940841285527 +1712.0,3.661822846366131 +1713.0,3.4481817644483663 +1714.0,3.4607981456118053 +1715.0,4.252514164536853 +1716.0,3.5779768601013733 +1717.0,4.318372461718649 +1718.0,3.690763676042943 +1719.0,3.567523595515174 +1720.0,4.616601464709534 +1721.0,3.7036066841121023 +1722.0,4.01160167293609 +1723.0,3.598250951729694 +1724.0,3.6160206689539143 +1725.0,3.7675817583410858 +1726.0,3.8321834227884635 +1727.0,3.6586155820734922 +1728.0,3.674505145334207 +1729.0,4.074874003661067 +1730.0,4.088589279504462 +1731.0,3.4283960788902323 +1732.0,3.7074144334361927 +1733.0,4.9006543101154865 +1734.0,4.222182085086414 +1735.0,3.720470142957973 +1736.0,4.253831369311094 +1737.0,7.075283687958438 +1738.0,4.13034396129422 +1739.0,3.573566300847746 +1740.0,3.74694716934584 +1741.0,3.4840001353495245 +1742.0,4.6311842118532764 +1743.0,3.443575867266365 +1744.0,3.532812789985925 +1745.0,4.0732698065294235 +1746.0,4.702878037313756 +1747.0,3.542780273474594 +1748.0,3.4288667415738354 +1749.0,3.8405428489847475 +1750.0,3.480364679156121 +1751.0,3.993348554392199 +1752.0,3.551742826898005 +1753.0,4.7188459842749095 +1754.0,3.788020165024631 +1755.0,5.4139220843169875 +1756.0,3.630435833510771 +1757.0,4.064400378924469 +1758.0,3.4846493556743403 +1759.0,3.9525450924552414 +1760.0,3.6244733879272872 +1761.0,6.402989958781388 +1762.0,4.07847727930843 +1763.0,4.100687224134221 +1764.0,3.801230800562896 +1765.0,5.002243953412747 +1766.0,3.5954387101769805 +1767.0,4.101761788008561 +1768.0,3.6978304227111254 +1769.0,3.4395002969983803 +1770.0,4.374767940461021 +1771.0,4.7619990525166855 +1772.0,3.8449139012875615 +1773.0,4.584938095379516 +1774.0,3.7485901116496954 +1775.0,3.5874183501979857 +1776.0,3.451335427658482 +1777.0,3.4317567778765614 +1778.0,3.418706805488599 +1779.0,3.7147509452257212 +1780.0,3.4542046301333498 +1781.0,3.475065650449393 +1782.0,3.709759541035345 +1783.0,3.6891651281046487 +1784.0,3.5599654231614353 +1785.0,4.213903429707383 +1786.0,3.5567976080104424 +1787.0,3.5393964342824025 +1788.0,3.571629870540613 +1789.0,3.5907102323396933 +1790.0,3.6198135857050535 +1791.0,4.388643225886921 +1792.0,3.647660632901282 +1793.0,3.5254299433071163 +1794.0,3.4063226129443156 +1795.0,3.789040378152158 +1796.0,3.446983694428291 +1797.0,3.4355349340066996 +1798.0,3.865086599675473 +1799.0,3.4048414051484994 +1800.0,3.5644341139204134 +1801.0,4.870627020457208 +1802.0,3.6382660411216556 +1803.0,3.9415983747874384 +1804.0,3.4481311251123508 +1805.0,5.351556957108681 +1806.0,3.4637941841818596 +1807.0,4.443490592242636 +1808.0,5.116717180698046 +1809.0,4.490853302443038 +1810.0,3.7004322162460332 +1811.0,3.4224536243352657 +1812.0,4.146206228380816 +1813.0,3.6301372242572887 +1814.0,4.146995725313331 +1815.0,3.490147056426757 +1816.0,4.034756910345283 +1817.0,3.77827553079214 +1818.0,4.120261228509397 +1819.0,3.8291704920454257 +1820.0,4.000301184759901 +1821.0,3.903586880818849 +1822.0,4.134165279226215 +1823.0,3.4780697597696975 +1824.0,3.6484392236110184 +1825.0,3.8887417297633173 +1826.0,4.105936062101072 +1827.0,3.444291606357388 +1828.0,3.9189485525582897 +1829.0,3.574508698568972 +1830.0,3.7240468990450415 +1831.0,3.583012522108738 +1832.0,4.418213113395084 +1833.0,3.7926810443476993 +1834.0,3.7603031105898252 +1835.0,3.6461631557034933 +1836.0,3.6756600337154124 +1837.0,3.823619686655769 +1838.0,3.671457995214653 +1839.0,4.012440699487812 +1840.0,4.735988450774517 +1841.0,3.6373922639505953 +1842.0,3.7953875298630333 +1843.0,3.752450986422178 +1844.0,3.4013620072542623 +1845.0,3.8839973573420896 +1846.0,3.794662681933895 +1847.0,3.8715848680580423 +1848.0,3.759125708474158 +1849.0,3.596883729693481 +1850.0,3.6215900247940227 +1851.0,4.184281929084611 +1852.0,3.7478662636330395 +1853.0,3.448075249583455 +1854.0,3.57420268401865 +1855.0,3.957809364091355 +1856.0,4.82277505381371 +1857.0,3.7554674019754373 +1858.0,3.5835128501771756 +1859.0,4.193425665811188 +1860.0,3.506079657014561 +1861.0,3.4032681265855884 +1862.0,4.55163414948337 +1863.0,3.6748700304730857 +1864.0,4.068174527610973 +1865.0,4.097057360801941 +1866.0,3.8073749771228873 +1867.0,3.6646260794869105 +1868.0,3.4647435055535194 +1869.0,3.6938349482888166 +1870.0,4.013255583094934 +1871.0,4.1428330179724675 +1872.0,3.4294403360479184 +1873.0,3.458515612199184 +1874.0,3.9170911717816437 +1875.0,3.4334150506395575 +1876.0,4.2364772893113605 +1877.0,3.8822546627421772 +1878.0,4.047221178546518 +1879.0,3.683750451638242 +1880.0,3.466225434183257 +1881.0,3.4658350128485007 +1882.0,3.4875767125282797 +1883.0,3.4994452368490077 +1884.0,3.6416124391178046 +1885.0,4.0875493703682535 +1886.0,3.5794748941575687 +1887.0,3.5897352666681286 +1888.0,3.591991169788689 +1889.0,3.4144692881470577 +1890.0,3.8072116272299663 +1891.0,3.5519780024627425 +1892.0,3.627088871953038 +1893.0,3.721912725363757 +1894.0,4.6057792291193085 +1895.0,4.984218580131239 +1896.0,4.079683904834107 +1897.0,3.5448601879897628 +1898.0,3.8698296562810377 +1899.0,3.656899935464767 +1900.0,3.620376532181233 +1901.0,4.453727131275337 +1902.0,3.661437104331471 +1903.0,3.6904884594080314 +1904.0,3.78073230842528 +1905.0,3.6093223364315454 +1906.0,3.685320071874259 +1907.0,3.4875142354525455 +1908.0,4.438786230683456 +1909.0,5.358337063631243 +1910.0,3.4643096305567127 +1911.0,3.842095244396884 +1912.0,3.977451880538239 +1913.0,3.4051148002272402 +1914.0,3.4931614090346264 +1915.0,4.642080358498414 +1916.0,4.009609517687569 +1917.0,3.4743584221473496 +1918.0,3.797737457776411 +1919.0,4.1392071987426355 +1920.0,4.413763316668161 +1921.0,4.700688169226371 +1922.0,4.816397155606361 +1923.0,4.306356810897141 +1924.0,4.03905947581616 +1925.0,4.097964366057298 +1926.0,4.362084986469355 +1927.0,4.214530483299409 +1928.0,3.975491065694127 +1929.0,3.6959368102373182 +1930.0,3.6285461273965156 +1931.0,4.33598163551046 +1932.0,3.4590476486834643 +1933.0,3.941121386204607 +1934.0,4.006492012332166 +1935.0,3.8259104582464993 +1936.0,3.572697606042701 +1937.0,3.5848028407016637 +1938.0,3.525978063966211 +1939.0,3.5117534062230207 +1940.0,3.4851690574452237 +1941.0,3.9389167965487255 +1942.0,4.206509192933968 +1943.0,4.661594598531493 +1944.0,3.619137034417065 +1945.0,4.693720842992617 +1946.0,3.6964781882026982 +1947.0,3.683137150548428 +1948.0,4.399756219072829 +1949.0,3.547687473666363 +1950.0,3.6277722166776076 +1951.0,5.618450729759439 +1952.0,3.940975844383739 +1953.0,3.4897777706918274 +1954.0,3.752181056472349 +1955.0,3.792875011390654 +1956.0,3.845083880321136 +1957.0,3.4350467940675187 +1958.0,3.5211804394582304 +1959.0,4.084164388796128 +1960.0,3.6839331458368605 +1961.0,3.635940509703174 +1962.0,3.6030339675042145 +1963.0,3.881584251092188 +1964.0,3.94422202674316 +1965.0,4.03090158878491 +1966.0,3.430776900316201 +1967.0,4.439330703063073 +1968.0,4.095149820122286 +1969.0,4.105119412620583 +1970.0,4.006706825297864 +1971.0,3.5152251073003185 +1972.0,3.5455086575462946 +1973.0,3.7853828634494926 +1974.0,3.8779926863999 +1975.0,4.187014207603898 +1976.0,3.5733872642788613 +1977.0,4.135903981621895 +1978.0,3.479485110266937 +1979.0,3.419280315482624 +1980.0,3.489985172001629 +1981.0,3.450331061549521 +1982.0,3.7563249632498747 +1983.0,3.5067176515578913 +1984.0,3.6344679391979056 +1985.0,3.568132219149721 +1986.0,4.877655251721976 +1987.0,3.55484619227862 +1988.0,3.541123922374945 +1989.0,3.533294023117532 +1990.0,4.141927525654852 +1991.0,3.8083621200107576 +1992.0,4.223262029880297 +1993.0,3.7600453346822955 +1994.0,3.593701179515037 +1995.0,3.6248615083424447 +1996.0,3.958517235511334 +1997.0,3.7139927709784963 +1998.0,3.474410636910539 +1999.0,3.725983881769877 +2000.0,3.683727069751966 +2001.0,3.534289138018782 +2002.0,4.686623005183763 +2003.0,3.727198486718722 +2004.0,3.581365857814736 +2005.0,3.5701543697167715 +2006.0,3.8190573781640684 +2007.0,3.5211037877645635 +2008.0,3.4895223125659625 +2009.0,3.4865179097878896 +2010.0,4.392488795073208 +2011.0,3.583739991485651 +2012.0,4.481296254095262 +2013.0,3.476287089636271 +2014.0,4.240740677405683 +2015.0,3.686715414063995 +2016.0,4.320655394426481 +2017.0,3.444155014201684 +2018.0,3.4231440778980557 +2019.0,3.832847449442286 +2020.0,4.049999962226373 +2021.0,3.453840388990533 +2022.0,4.2679193768788135 +2023.0,3.5560400316720906 +2024.0,3.5338986276190534 +2025.0,3.927301121700077 +2026.0,3.6731899019435774 +2027.0,3.781375947281617 +2028.0,3.826525963626452 +2029.0,3.4022435773601423 +2030.0,4.253081250188895 +2031.0,3.4384770852436928 +2032.0,3.7074604237237176 +2033.0,3.553058139099828 +2034.0,3.5581501994287414 +2035.0,3.8528386977147884 +2036.0,3.493417118201588 +2037.0,3.4529749927259665 +2038.0,3.9544234831119125 +2039.0,3.491769858208239 +2040.0,5.0122191525252555 +2041.0,4.193381201902323 +2042.0,4.1649092907857215 +2043.0,3.591207900639578 +2044.0,3.518725585239359 +2045.0,3.854385865669861 +2046.0,3.4783850108982843 +2047.0,3.6316235001517243 +2048.0,3.901521287605721 +2049.0,3.54995624064488 +2050.0,3.7145226074653235 +2051.0,3.5772186766863574 +2052.0,3.5486861748255274 +2053.0,3.6106847703744926 +2054.0,3.6282462206214685 +2055.0,4.69044335608976 +2056.0,3.835114335652677 +2057.0,3.658047130148329 +2058.0,4.062720638801818 +2059.0,3.5600737054271483 +2060.0,3.7407729114518915 +2061.0,3.4177273268352457 +2062.0,3.6339552259508245 +2063.0,3.8883832156794926 +2064.0,3.4348867375030405 +2065.0,3.653266667885724 +2066.0,4.335728142618807 +2067.0,3.5878636906414707 +2068.0,3.5963152695711518 +2069.0,3.495629769593451 +2070.0,3.680052773058373 +2071.0,3.5785545605508142 +2072.0,4.297350574525844 +2073.0,3.5258626608731207 +2074.0,4.2259473186599354 +2075.0,4.534240149782449 +2076.0,3.4236878155120714 +2077.0,4.596974134730194 +2078.0,3.935847403622994 +2079.0,3.4424883553277463 +2080.0,3.4340055557227207 +2081.0,3.7480488900874094 +2082.0,3.405196474568639 +2083.0,3.671266881954587 +2084.0,4.058633167812953 +2085.0,4.939742199836865 +2086.0,3.434949530730396 +2087.0,4.584606063680287 +2088.0,4.0666831489223165 +2089.0,3.7800698172603706 +2090.0,4.18404785772501 +2091.0,3.657669861640536 +2092.0,3.627176998110488 +2093.0,3.621596052431309 +2094.0,4.160038828781816 +2095.0,3.5601980524458288 +2096.0,3.439438156851649 +2097.0,4.652953462578406 +2098.0,3.456506919711176 +2099.0,4.851104243882187 +2100.0,3.859550230492361 +2101.0,4.249088513386951 +2102.0,3.73632143143233 +2103.0,3.524460339502132 +2104.0,3.7601657825260815 +2105.0,4.235667158249582 +2106.0,3.6139803278310674 +2107.0,3.66102918494061 +2108.0,3.5513145252101443 +2109.0,4.78070156609879 +2110.0,4.026274025655538 +2111.0,3.8065442973990584 +2112.0,3.4987415917365903 +2113.0,3.8491620652382195 +2114.0,3.6645630831700706 +2115.0,4.019391712024955 +2116.0,3.5128664935163907 +2117.0,3.4323278302031803 +2118.0,4.150006204033859 +2119.0,3.402209584394718 +2120.0,4.0768876090636805 +2121.0,4.39825484666153 +2122.0,3.4126658598813875 +2123.0,3.477687717871838 +2124.0,3.684097669256931 +2125.0,4.14232635961476 +2126.0,3.6103980292658084 +2127.0,3.612382112562072 +2128.0,4.318572773655904 +2129.0,3.4577988846351477 +2130.0,3.5687945293237853 +2131.0,4.22421028360278 +2132.0,3.9889521859914843 +2133.0,3.5254063404095572 +2134.0,3.4189039520581446 +2135.0,3.452084991866418 +2136.0,3.8877427145062717 +2137.0,3.7674135096184895 +2138.0,4.374716423912825 +2139.0,3.456373464329015 +2140.0,3.415509757449422 +2141.0,3.9231010504824138 +2142.0,3.828953526461697 +2143.0,3.43515160760183 +2144.0,3.736703921131767 +2145.0,3.4492420404075386 +2146.0,4.521946586490619 +2147.0,3.5142196247846633 +2148.0,3.455360480986467 +2149.0,4.125522514470121 +2150.0,3.7953963785083777 +2151.0,3.480065516034021 +2152.0,3.423797333027855 +2153.0,3.4045693080551667 +2154.0,3.543763577327648 +2155.0,3.6664848300029025 +2156.0,3.6807047055891884 +2157.0,3.8960023716545162 +2158.0,3.611178076510114 +2159.0,3.4161744990441574 +2160.0,3.9248537231840825 +2161.0,3.7360643276920897 +2162.0,3.5561583077346093 +2163.0,4.6567498166405725 +2164.0,4.220893044980131 +2165.0,3.5251167135423906 +2166.0,3.4142512918897014 +2167.0,4.112994533759263 +2168.0,3.4025055222953116 +2169.0,3.83637898576471 +2170.0,3.9507457515206226 +2171.0,3.7168991948376844 +2172.0,3.5060107306628923 +2173.0,3.751858375115569 +2174.0,3.4935601828232463 +2175.0,3.493723944830356 +2176.0,3.858829424351433 +2177.0,3.4240065605508203 +2178.0,3.4800454116102526 +2179.0,3.805185424463459 +2180.0,3.413973177116673 +2181.0,3.421786818577326 +2182.0,3.620279674334372 +2183.0,3.617147834756997 +2184.0,3.6311398292002153 +2185.0,3.795179807148507 +2186.0,3.8458964915201936 +2187.0,3.825679132175141 +2188.0,3.8342360670486206 +2189.0,4.436418928060619 +2190.0,3.4029745821416086 +2191.0,4.927489199700621 +2192.0,3.7296728669743295 +2193.0,4.06566200367833 +2194.0,3.404300665614945 +2195.0,4.525781457981637 +2196.0,3.7025644224384715 +2197.0,3.9230711118771997 +2198.0,3.605615157174339 +2199.0,3.5247003425963417 diff --git a/tests/fixtures/catalogs/case_034_low_count_2200d.csv b/tests/fixtures/catalogs/case_034_low_count_2200d.csv new file mode 100644 index 0000000..f6ddac0 --- /dev/null +++ b/tests/fixtures/catalogs/case_034_low_count_2200d.csv @@ -0,0 +1,281 @@ +time_days,magnitude +3.0,2.9768870942560617 +11.0,2.5297578906459846 +18.0,2.6502576126751323 +19.0,2.731132053077342 +28.0,2.951304790979119 +33.0,2.5243086410396445 +49.0,2.640489380726441 +58.0,2.6654425572655027 +66.0,3.01861926183725 +73.0,2.6421753435902167 +95.0,2.688105130240849 +106.0,2.573251230350893 +112.0,2.601977293074711 +121.0,2.6130604561649804 +127.0,2.958763976320478 +146.0,2.588195401983649 +149.0,2.757376323017558 +155.0,2.917967045183988 +164.0,3.580516619633043 +180.0,5.037063575742046 +212.0,2.5051828042569237 +228.0,3.2562413846924985 +233.0,2.819795563632173 +234.0,2.86999789279456 +250.0,2.533799874107245 +251.0,2.6263768960160507 +261.0,2.7211770590813575 +265.0,2.7804722126925987 +276.0,2.663774650384449 +281.0,3.0027463065963196 +285.0,3.1775826546752097 +292.0,2.722349543100032 +294.0,3.1850959813406794 +299.0,3.2271050367998204 +301.0,3.6961419353744276 +302.0,2.510252677392437 +308.0,2.8022736897534726 +312.0,2.5025434384446728 +315.0,2.7553017901690455 +325.0,4.037429958215115 +331.0,2.5401721408671447 +345.0,3.2240736570593604 +347.0,3.1709837355778654 +358.0,2.7253072806789405 +361.0,2.8791530496132727 +368.0,2.6599606195353367 +372.0,3.4186639064121134 +381.0,2.534426708691432 +387.0,2.746003276219053 +393.0,2.540512704709737 +403.0,2.905473941290674 +404.0,3.0300419187779792 +409.0,3.0428430733335783 +421.0,3.5920960953247705 +447.0,2.7823651939656786 +449.0,3.4762124619696104 +452.0,2.5177554665747746 +461.0,3.196685747391194 +468.0,2.6107010952165206 +478.0,2.678118593585546 +483.0,2.7700856414554127 +489.0,2.5390456151890493 +490.0,2.839140405021584 +497.0,3.3917026144019085 +499.0,2.686900927651606 +512.0,2.578050895350046 +517.0,3.0058481452030197 +531.0,3.5535010516894543 +547.0,2.5162387868787532 +548.0,2.5830195540356233 +559.0,4.011048105929427 +561.0,3.1851922395061227 +570.0,2.680358095426232 +573.0,2.6065266553675235 +576.0,3.4891662072979783 +579.0,2.582489568692426 +584.0,2.5267995787733804 +587.0,2.517229931988043 +592.0,2.9982797127082526 +601.0,2.5927398718435026 +605.0,2.510926180698812 +607.0,3.2641709273455843 +608.0,2.5641657824629696 +614.0,3.011966277047136 +626.0,3.2511217378812725 +627.0,3.086941645166156 +632.0,2.8056188455658346 +634.0,2.6430431214055745 +646.0,2.8531618908649725 +648.0,2.713543811008694 +652.0,2.5575792756512077 +671.0,2.562451973667959 +673.0,2.840180733127015 +683.0,2.600818263534732 +687.0,2.507373678842979 +707.0,2.6188322561905912 +710.0,2.6542336302113307 +713.0,2.7840523370693977 +719.0,3.2362779923252916 +720.0,2.9239729518955127 +735.0,2.5180796497684863 +747.0,2.679990669650029 +754.0,3.276043436889242 +767.0,2.829166587554502 +769.0,2.6106538074449896 +780.0,2.9624012186594704 +793.0,2.601147398051156 +802.0,2.733136447943809 +806.0,3.0374680851231433 +815.0,2.8708964137437776 +826.0,2.541350946277083 +830.0,2.592452521412123 +849.0,2.6542980062986694 +855.0,2.6611542582239274 +866.0,2.5758662147118074 +869.0,2.592875669132413 +873.0,2.995044188040951 +894.0,2.534627229447495 +895.0,2.5756292785925576 +899.0,2.65798949241643 +905.0,2.881440695019486 +910.0,2.648612825802351 +916.0,3.232347134237076 +917.0,2.622854393315952 +919.0,2.5587484563784746 +922.0,2.589567668088555 +924.0,3.2871004763705574 +927.0,2.8366381939550953 +935.0,2.517482634979916 +936.0,2.9079061075820913 +940.0,3.736458771053731 +945.0,2.595804516184375 +949.0,3.0549597716311276 +974.0,3.0717257699297433 +981.0,2.6377963444510506 +987.0,2.503273055632799 +988.0,2.830161836587504 +992.0,2.728483649352966 +997.0,2.532575108364413 +1002.0,3.0402897721974123 +1020.0,3.1073242354497514 +1028.0,2.931803262935191 +1035.0,2.554914647694067 +1038.0,2.641458250236325 +1046.0,2.6336741697611004 +1059.0,3.0358815913843964 +1061.0,2.5081541233513853 +1068.0,3.471330713085451 +1079.0,2.955915255045089 +1118.0,2.721827469300765 +1120.0,2.6087401866326987 +1121.0,3.5627608155442143 +1135.0,2.6393426952791135 +1139.0,2.6757554836543394 +1147.0,2.632848287195665 +1150.0,2.528428158677218 +1157.0,3.1522791716724954 +1172.0,2.7981172665371985 +1176.0,2.7980973126550617 +1181.0,3.0083345331108724 +1187.0,3.269948621443242 +1190.0,2.892526969472943 +1196.0,2.5376371331148913 +1214.0,2.763336962499151 +1234.0,2.5326676463924342 +1250.0,3.054345850605828 +1255.0,2.949383182237681 +1266.0,3.071341450230543 +1278.0,2.8821962931620555 +1289.0,2.689123641927308 +1305.0,3.3302295156779156 +1310.0,2.86037022496809 +1320.0,3.020942545217446 +1327.0,3.081016187556411 +1337.0,2.5721582627153907 +1340.0,2.8010557221636 +1354.0,3.0029834135158118 +1355.0,2.7303023431584124 +1364.0,2.792281485703637 +1366.0,2.5041046154243944 +1393.0,2.6745489643923532 +1397.0,2.547640028121139 +1400.0,2.942969619537129 +1409.0,2.745602803670209 +1415.0,2.5491032212170137 +1436.0,2.9925304613698422 +1447.0,2.642753954175534 +1463.0,2.928099652300549 +1467.0,3.493123920885783 +1468.0,2.6831380305684935 +1470.0,3.464450218317867 +1472.0,2.542877739571723 +1473.0,3.6866208736815915 +1478.0,2.6298051733507792 +1494.0,3.3020963166912787 +1520.0,3.197830510121646 +1521.0,2.9094966122431587 +1522.0,3.293526403474552 +1524.0,2.5103680990164996 +1530.0,2.973498582539019 +1532.0,3.056007339818107 +1559.0,2.5033576433349687 +1566.0,2.6170802244589075 +1584.0,3.0555583208497623 +1587.0,2.7631391536389565 +1589.0,3.283782170362006 +1590.0,2.8935635403598745 +1598.0,2.5321342608272914 +1599.0,2.680419076787466 +1604.0,4.1660438946075855 +1632.0,3.207837177139547 +1636.0,2.5359059971420246 +1645.0,2.9720431897804707 +1650.0,2.9656446856211267 +1653.0,2.637526394582781 +1662.0,3.017184109752811 +1665.0,2.6652795551189716 +1670.0,2.630543633512947 +1671.0,2.5009395716411134 +1680.0,2.5210755522134596 +1688.0,2.968666114915498 +1692.0,2.5600742328932413 +1693.0,3.8573278187037436 +1698.0,2.6164537405878074 +1702.0,2.805169478523122 +1706.0,3.1714827676123982 +1708.0,3.3694949658408397 +1716.0,3.075100771188829 +1741.0,2.5974301039148773 +1750.0,2.715997356232904 +1759.0,3.0523380610914272 +1768.0,2.5318936240522043 +1774.0,2.686482184827021 +1793.0,3.0880225270542496 +1800.0,2.6507968760468628 +1807.0,2.7549309663522794 +1809.0,2.5253924820718883 +1810.0,3.8668012249102617 +1821.0,2.8530893215665922 +1823.0,2.8028838149392024 +1824.0,2.7429060181502605 +1825.0,2.523127543985255 +1829.0,3.312868011904021 +1831.0,2.9933349537607303 +1833.0,2.9217136654778346 +1847.0,4.515838187649697 +1849.0,2.9326372309014364 +1863.0,3.6745694708971066 +1865.0,2.5470098113479955 +1884.0,3.02379154044651 +1891.0,2.5286826514081704 +1906.0,2.800071550878732 +1907.0,2.682448431263559 +1908.0,3.311710962296066 +1912.0,2.5445087968401845 +1916.0,2.5148153606357946 +1927.0,2.705606911397588 +1935.0,2.8033830771100536 +1957.0,3.346037873190984 +1959.0,2.965750678108919 +1963.0,3.1823130180573864 +1978.0,2.7985896525051595 +1980.0,2.6878006520756834 +1994.0,2.5527269122777003 +2000.0,3.273957155260688 +2005.0,2.6428033206537074 +2006.0,2.806930926449907 +2026.0,3.0762543182759328 +2027.0,2.6067894527050055 +2047.0,3.2118163887959295 +2062.0,2.6467366312633605 +2069.0,2.800894152041816 +2080.0,2.5984853574150644 +2085.0,2.5529600702737114 +2102.0,2.564949489620469 +2105.0,3.3120189047835806 +2118.0,3.4590036396570887 +2130.0,4.305760321618552 +2181.0,3.063792366993157 +2184.0,2.5758575325347435 diff --git a/tests/fixtures/catalogs/case_035_burst_end_2200d.csv b/tests/fixtures/catalogs/case_035_burst_end_2200d.csv new file mode 100644 index 0000000..46ecda6 --- /dev/null +++ b/tests/fixtures/catalogs/case_035_burst_end_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,2.71208093739739 +1.0,2.550581844671403 +2.0,3.014245088337688 +3.0,2.410723816516851 +4.0,2.443576830847141 +5.0,3.1142476146676383 +6.0,3.221906542672869 +7.0,2.4097425934018024 +8.0,2.5697361536612395 +9.0,3.5047882252940674 +10.0,2.427779433298352 +11.0,2.4238123519077432 +12.0,3.1044610253885434 +13.0,3.197545485932097 +14.0,2.462876702662891 +15.0,2.576226917610953 +16.0,2.6332461228262596 +17.0,2.471455361114019 +18.0,3.2153277585443467 +19.0,2.7173309846853724 +20.0,2.526867688522296 +21.0,3.413262705417623 +22.0,3.3232442866156244 +23.0,2.511540788934254 +24.0,2.6305221320881556 +25.0,2.5182706148505263 +26.0,2.4906364144561906 +27.0,2.951136792549828 +28.0,2.7918199029700848 +29.0,2.737290142384404 +30.0,2.416808049212704 +31.0,2.5100718151758707 +32.0,2.8927947908883764 +33.0,2.518297267781267 +34.0,2.515908322039156 +35.0,3.004223170418613 +36.0,2.8219013883485395 +37.0,3.6894216739212085 +38.0,2.543897017161504 +39.0,2.87353470243931 +40.0,2.474714918699301 +41.0,2.5806471525138512 +42.0,2.5431742493660447 +43.0,2.704999930550035 +44.0,2.4869333307218793 +45.0,2.4598765576992214 +46.0,2.51097748481086 +47.0,3.066764765061649 +48.0,2.6100152616595813 +49.0,2.568771906507517 +50.0,2.6256882023849886 +51.0,3.3529208624363087 +52.0,2.4620802563331914 +53.0,2.5005820896170836 +54.0,2.4377363232778713 +55.0,2.5168701193889724 +56.0,2.591823239857341 +57.0,2.803796742973953 +58.0,2.637616753215879 +59.0,2.884037169186693 +60.0,3.351104636570616 +61.0,2.4200367743090947 +62.0,2.6628718496429507 +63.0,2.4694933964989922 +64.0,2.5737398172965893 +65.0,2.8097401125634702 +66.0,2.4436935582923556 +67.0,3.089603356821819 +68.0,2.419667169418939 +69.0,2.5663496783373687 +70.0,2.6685506259981695 +71.0,2.7784238799086936 +72.0,2.5143156069549395 +73.0,2.576744494247784 +74.0,2.4558795903036987 +75.0,2.549026872941041 +76.0,2.4385938262545523 +77.0,2.481660222678197 +78.0,3.140899530925645 +79.0,2.7150526317491983 +80.0,3.006536931497884 +81.0,2.457052636416341 +82.0,2.7125276728871186 +83.0,2.9374934568232454 +84.0,2.814589732839025 +85.0,2.5818841636784415 +86.0,2.8076698865746894 +87.0,3.6238241923473735 +88.0,2.522380622407655 +89.0,2.7252640579843557 +90.0,2.6189466336573664 +91.0,2.863577735141659 +92.0,2.421955383748781 +93.0,2.781023357826426 +94.0,2.5095826598489475 +95.0,2.830795456006328 +96.0,2.673443482575884 +97.0,2.5632648564319 +98.0,2.667227277663251 +99.0,2.462645835533749 +100.0,2.657113289437896 +101.0,3.1430729351019018 +102.0,3.5980827171126952 +103.0,3.0009296481582504 +104.0,2.7088753591453085 +105.0,2.878621060777181 +106.0,2.7333611638565904 +107.0,2.912169492557347 +108.0,2.590480294537435 +109.0,2.4510625436141464 +110.0,2.7604948951267176 +111.0,2.50391903835456 +112.0,2.5371755519339616 +113.0,2.4038111143675143 +114.0,2.740713489172508 +115.0,3.3731372771704264 +116.0,2.4623836158113304 +117.0,2.5081235061949188 +118.0,2.764594880075374 +119.0,2.488188520407678 +120.0,2.6059225800433232 +121.0,3.622122909594865 +122.0,2.659417742573809 +123.0,3.006569793808361 +124.0,2.9009920560366096 +125.0,2.7612212311233595 +126.0,2.970549594807178 +127.0,2.4035991281314195 +128.0,2.4351234402368234 +129.0,2.545127565208793 +130.0,2.4887233563657554 +131.0,2.8777560797936466 +132.0,2.446769111912084 +133.0,2.6004315655628534 +134.0,2.830185284905495 +135.0,2.488611355178553 +136.0,2.499417361805049 +137.0,2.609202150660751 +138.0,2.602890894439809 +139.0,3.045105447606299 +140.0,2.4834394080018583 +141.0,2.965010741310458 +142.0,2.6490945529013272 +143.0,2.5514195544960674 +144.0,2.5770702973996444 +145.0,2.4388401330377323 +146.0,2.439726725983228 +147.0,3.0186155417337375 +148.0,2.5179240218348964 +149.0,2.4312880967820165 +150.0,3.264803339960827 +151.0,2.6737164470241415 +152.0,2.5306384879779635 +153.0,2.7303663132038056 +154.0,2.995351954510117 +155.0,2.4867193705966524 +156.0,3.273325355264837 +157.0,2.7878170889844642 +158.0,2.63322522592613 +159.0,2.511046927995488 +160.0,2.6931755874370555 +161.0,2.5534513112897437 +162.0,2.660062772763967 +163.0,2.5034416913136 +164.0,2.607802229688829 +165.0,2.4060786472279436 +166.0,2.6828371441972187 +167.0,2.5472539134944316 +168.0,3.0771300385411045 +169.0,2.6378200911019154 +170.0,2.7680171907663134 +171.0,3.4070106504486866 +172.0,5.386797974771724 +173.0,2.4500875793728616 +174.0,2.568115964733267 +175.0,2.592913733703811 +176.0,2.453870160137297 +177.0,2.712855462348098 +178.0,2.543082170898298 +179.0,2.5458530533940578 +180.0,2.4210458744103023 +181.0,2.6230942676904174 +182.0,2.600718453706381 +183.0,2.655544270129849 +184.0,2.6485846192034637 +185.0,2.6316992869471614 +186.0,2.4082730435253557 +187.0,2.497925275118304 +188.0,3.345884870964183 +189.0,2.975771980198272 +190.0,2.420217532443556 +191.0,3.255996932594566 +192.0,2.6164612780039063 +193.0,2.7818595526410546 +194.0,2.6614176010923067 +195.0,2.88176498940461 +196.0,3.3664464983241307 +197.0,2.7191607649865936 +198.0,2.4087168506405847 +199.0,3.4277926859931727 +200.0,2.530817567786277 +201.0,2.43904656061858 +202.0,2.7049724892983615 +203.0,2.565298253212478 +204.0,2.700815054837162 +205.0,2.558886116022257 +206.0,2.4030934348133686 +207.0,2.5479208210306434 +208.0,2.5891398484559955 +209.0,2.6885981598998914 +210.0,2.6731806709524 +211.0,3.137456272480549 +212.0,2.6576838506452165 +213.0,2.6817743202358724 +214.0,2.4281181960332967 +215.0,2.4057725052370134 +216.0,2.6665170408108976 +217.0,3.833176837075002 +218.0,2.953090696656643 +219.0,2.522901798190726 +220.0,2.435863098097322 +221.0,2.647028988253446 +222.0,2.6464755133430384 +223.0,2.4711894396294616 +224.0,3.002467352193519 +225.0,2.492090874662265 +226.0,2.5313397065160803 +227.0,2.791395894252594 +228.0,2.5444470995065127 +229.0,2.85514790578244 +230.0,3.2066080615742174 +231.0,2.6622960422525774 +232.0,3.5829229168079215 +233.0,3.063047584584259 +234.0,2.4959138964785215 +235.0,2.4166224529099756 +236.0,2.66153236666396 +237.0,3.2409522719781174 +238.0,2.7012421881055073 +239.0,2.859920151026458 +240.0,2.6738828794575085 +241.0,2.5866718782734974 +242.0,2.43989977397473 +243.0,3.149929489523053 +244.0,2.409601219388903 +245.0,2.5271862535898615 +246.0,2.448921620108406 +247.0,2.571444902394215 +248.0,2.7228138782507267 +249.0,2.5815911084861924 +250.0,2.530271670512733 +251.0,2.513701705417992 +252.0,2.603146733163636 +253.0,2.504584728032886 +254.0,2.404063172371839 +255.0,2.5759907718461 +256.0,3.0496180372132144 +257.0,2.9327573347396796 +258.0,2.6762182886773638 +259.0,3.033460605851255 +260.0,2.6294299357628153 +261.0,2.7470964858902303 +262.0,2.4025077774660115 +263.0,3.3627368862766223 +264.0,2.6581099478343058 +265.0,2.5457864136711508 +266.0,2.613831507083478 +267.0,2.485722299852177 +268.0,2.4176036024032275 +269.0,2.717537634689241 +270.0,2.665814494453014 +271.0,2.403254944254359 +272.0,2.9516429936625643 +273.0,3.9153480655547233 +274.0,2.7162186311157406 +275.0,3.002795895979323 +276.0,2.4990755151690527 +277.0,2.469911877155828 +278.0,2.5125883326416334 +279.0,2.647808710778566 +280.0,2.999799468667083 +281.0,2.5375576492281167 +282.0,2.609714937260416 +283.0,2.544529000242788 +284.0,2.544675607463681 +285.0,2.4781064817298653 +286.0,2.454378976828331 +287.0,2.5550239473597536 +288.0,3.116198640630858 +289.0,2.446475940587503 +290.0,2.4584005529749566 +291.0,2.5801279302595552 +292.0,2.5911275161942804 +293.0,2.72551358682226 +294.0,2.780664801773061 +295.0,2.72448549285785 +296.0,3.104634091712547 +297.0,3.066816534106189 +298.0,2.736513322062255 +299.0,2.7550240647552084 +300.0,2.46200033525813 +301.0,2.532247161095918 +302.0,2.9985256913659866 +303.0,2.6848000730002606 +304.0,3.228706426381101 +305.0,2.5673825254202325 +306.0,2.4050069165352888 +307.0,2.421452055071515 +308.0,3.645677647407889 +309.0,2.5215302108789284 +310.0,2.759619725302705 +311.0,2.786377613123151 +312.0,3.30383742128344 +313.0,2.758057012800895 +314.0,2.5447493642087977 +315.0,2.4329077470920253 +316.0,2.6629441042424316 +317.0,2.5045213606027192 +318.0,2.4141923021120926 +319.0,2.873338349031748 +320.0,2.6468156182268094 +321.0,2.526046513056479 +322.0,2.6662637732808 +323.0,3.181519715854503 +324.0,2.606644682339968 +325.0,2.7049090313433912 +326.0,2.535406392646534 +327.0,2.4592349375092097 +328.0,3.0057693290485195 +329.0,3.25893682929677 +330.0,2.8684762302669773 +331.0,2.83153565129357 +332.0,2.4963884193372734 +333.0,2.456580544185276 +334.0,2.604916922691005 +335.0,2.4773542462780145 +336.0,3.136210571802181 +337.0,2.5004025611739213 +338.0,3.4308610743707195 +339.0,2.5242349585183916 +340.0,2.499596736137977 +341.0,2.4283755268277174 +342.0,2.613786025538058 +343.0,2.444709620308417 +344.0,2.451195185135349 +345.0,2.4157599824177067 +346.0,4.001045246887185 +347.0,2.491507870859115 +348.0,2.9179032402552654 +349.0,2.732575420524652 +350.0,2.4651864867924522 +351.0,2.4889768736464792 +352.0,2.8954110132597206 +353.0,2.7090249573257776 +354.0,2.602125943565063 +355.0,2.761296487786131 +356.0,2.4451001493452345 +357.0,2.8084146012592766 +358.0,2.7924371168959667 +359.0,3.8149544719848945 +360.0,2.5523456003776133 +361.0,3.327509554858798 +362.0,3.8451002046928617 +363.0,2.518728206707076 +364.0,2.7771742500371146 +365.0,2.520614205995646 +366.0,2.687797679534402 +367.0,2.7859867624584687 +368.0,2.4269095078562106 +369.0,2.9020211810215644 +370.0,2.740344093229168 +371.0,2.7296135481403643 +372.0,2.590763213057232 +373.0,2.4035590591400213 +374.0,2.681267879508589 +375.0,2.415013968732495 +376.0,2.6574150239816356 +377.0,2.5349416675763887 +378.0,2.4395585142694096 +379.0,2.8275255152398597 +380.0,2.4128482549825243 +381.0,2.478738776683204 +382.0,2.65003276719408 +383.0,2.477330764945801 +384.0,2.482151731391014 +385.0,3.1103883594068096 +386.0,2.511661346763495 +387.0,2.5228126718735004 +388.0,3.105185933126292 +389.0,3.300508555776256 +390.0,2.414045876902796 +391.0,2.560699515640895 +392.0,2.832210898978432 +393.0,3.0853489329010992 +394.0,3.389139558989002 +395.0,2.4061020789905863 +396.0,2.91346530937205 +397.0,2.570109368686512 +398.0,3.1463432954522363 +399.0,2.7728157706136614 +400.0,2.539847992602508 +401.0,2.5188828929670746 +402.0,2.9358813765401104 +403.0,3.375302141032642 +404.0,2.550980787133039 +405.0,3.348676230535478 +406.0,2.5097182662931754 +407.0,2.759007243359646 +408.0,3.162114954509823 +409.0,2.440800127314576 +410.0,2.4074078352527053 +411.0,4.0789855368788555 +412.0,2.5653032685724777 +413.0,3.1627823684775738 +414.0,3.1096211350579424 +415.0,2.6748914011470664 +416.0,2.4058578160043735 +417.0,2.633272129361154 +418.0,2.400873402325453 +419.0,2.5963986597120825 +420.0,2.444783836756692 +421.0,2.414792210287191 +422.0,3.1146970155387805 +423.0,2.442816764775008 +424.0,2.6783528125668954 +425.0,2.464844601490534 +426.0,2.83293169499643 +427.0,3.28116447127316 +428.0,2.5106861940353893 +429.0,2.4173212029991284 +430.0,2.731964514446971 +431.0,2.700579040584888 +432.0,2.7071856913942476 +433.0,2.4385135314726174 +434.0,2.524482595577551 +435.0,2.8670721119805824 +436.0,2.6728597675990375 +437.0,3.0182342111567824 +438.0,2.7601936309899675 +439.0,2.4109518948075666 +440.0,2.6037630965745833 +441.0,2.6081114786263337 +442.0,2.466553105347003 +443.0,3.0492058884212705 +444.0,2.6378250456141252 +445.0,2.405698590495485 +446.0,2.4237784875008144 +447.0,2.518208598262132 +448.0,2.4597957703954507 +449.0,2.689221359230932 +450.0,2.5539948170069664 +451.0,2.5074230743052444 +452.0,3.012221922018506 +453.0,2.4650209983653717 +454.0,2.4438903868856543 +455.0,3.1782495383267597 +456.0,2.5506982535145934 +457.0,3.0688983483982404 +458.0,2.812715522426003 +459.0,3.1442977562847427 +460.0,3.179889699279962 +461.0,2.4223134625884533 +462.0,2.795273624093759 +463.0,2.445373201538525 +464.0,2.840766947575064 +465.0,2.8431844483420154 +466.0,3.5787639646454297 +467.0,2.4089484373449266 +468.0,2.454779711423775 +469.0,2.7410832730860535 +470.0,2.9526167908757732 +471.0,3.3461598102874617 +472.0,4.035278351391668 +473.0,2.5350351129912743 +474.0,2.4377014120336526 +475.0,2.4468013597905034 +476.0,2.7370757809930146 +477.0,2.745045833962809 +478.0,2.7730429253892415 +479.0,2.61780357373969 +480.0,2.6385686808120075 +481.0,2.70689770913587 +482.0,2.4574240237651117 +483.0,2.4213139828201524 +484.0,2.434365602968279 +485.0,2.914068062764394 +486.0,2.6605513684488122 +487.0,3.0219798474822235 +488.0,2.9402021708692985 +489.0,2.6471315259574015 +490.0,2.508183669818927 +491.0,2.429665827425504 +492.0,2.6933975538499997 +493.0,3.5971871225060195 +494.0,2.70694233345768 +495.0,2.9173779274963243 +496.0,2.4115605036872663 +497.0,2.860581618616451 +498.0,2.433266279952509 +499.0,2.562707238860579 +500.0,3.3460452975367323 +501.0,2.50688610437557 +502.0,2.72645841097595 +503.0,2.4432270819012545 +504.0,2.647781466864562 +505.0,2.610494047490804 +506.0,2.8741930148830828 +507.0,2.4204170445460913 +508.0,2.4180703201547247 +509.0,3.1473612722699897 +510.0,2.4221568475651285 +511.0,2.4340936522991714 +512.0,2.798171394668546 +513.0,3.1206013575441207 +514.0,2.5227885056704227 +515.0,2.6202584269743063 +516.0,3.1011228044144543 +517.0,2.5325268490637063 +518.0,2.59392061615262 +519.0,2.435352915572053 +520.0,2.608590215609623 +521.0,2.4964723271309537 +522.0,2.4712251509657843 +523.0,2.424787574114445 +524.0,2.4078928955869037 +525.0,2.589017787498475 +526.0,2.901667260695572 +527.0,2.4520269977317324 +528.0,2.6751384720850697 +529.0,4.310043408634103 +530.0,2.772874664428037 +531.0,2.6529557146803455 +532.0,3.9313213864391656 +533.0,2.401214659131206 +534.0,2.4891904855198375 +535.0,2.771900899976811 +536.0,2.5024406625876097 +537.0,2.524063281534879 +538.0,2.566350214031093 +539.0,2.560127832321028 +540.0,3.018827405665086 +541.0,2.8707189492665997 +542.0,2.5023551366583354 +543.0,2.906048057079819 +544.0,2.6779869208512697 +545.0,2.4271418462694396 +546.0,2.504465049248665 +547.0,3.852240908747692 +548.0,2.476248413452169 +549.0,2.7344390339287203 +550.0,3.6668614238024366 +551.0,2.4545304452493473 +552.0,2.6172398188080397 +553.0,2.41770662874223 +554.0,2.5539583457924633 +555.0,2.7297486526774324 +556.0,3.0013226379583102 +557.0,2.681841195761309 +558.0,2.4833498315848033 +559.0,2.725139286753956 +560.0,2.5678614914688964 +561.0,2.4838990023575227 +562.0,2.958440818881903 +563.0,2.49235156203983 +564.0,3.2197418641698174 +565.0,2.9903130084733536 +566.0,2.4572686683605682 +567.0,2.4172954004181135 +568.0,2.707572650765624 +569.0,2.4001115460245908 +570.0,2.434347724455013 +571.0,2.416209223865666 +572.0,3.8047535372611048 +573.0,2.584445376408195 +574.0,2.5406440648565245 +575.0,2.4265636333935596 +576.0,2.512799911269908 +577.0,2.958047135652635 +578.0,2.4729314809964245 +579.0,2.6385880670203417 +580.0,2.6902871871934635 +581.0,3.0281084749755998 +582.0,2.4693631369589335 +583.0,2.4294839663694883 +584.0,2.5643774140185083 +585.0,2.542805175762937 +586.0,2.4147360315907536 +587.0,2.8974976505654544 +588.0,2.73592971200055 +589.0,3.210236761002565 +590.0,2.638523613753916 +591.0,2.7288905235549987 +592.0,2.4495454487917145 +593.0,2.52087203775004 +594.0,2.4087567736013202 +595.0,2.8247603482320023 +596.0,2.579068842148729 +597.0,2.8028130545677428 +598.0,2.9117869383567836 +599.0,2.820452674409367 +600.0,3.286852641684846 +601.0,2.497509329087079 +602.0,2.6886304365184923 +603.0,2.441499296101956 +604.0,2.8299977595617536 +605.0,2.644851938256475 +606.0,2.439084770939483 +607.0,3.3278601912140533 +608.0,3.119897774787208 +609.0,2.5319396654397877 +610.0,2.7448131255780996 +611.0,2.591697192277482 +612.0,2.488981831368855 +613.0,2.5077340065204026 +614.0,2.6585681960374954 +615.0,2.517823801635943 +616.0,2.629860846777228 +617.0,2.8859058251367355 +618.0,2.4269003262163733 +619.0,2.6885866568133947 +620.0,2.6803931820640265 +621.0,3.080050232610671 +622.0,2.4884964469964634 +623.0,2.4989046627844496 +624.0,2.6339016212783255 +625.0,2.4190841080119005 +626.0,2.505331134080049 +627.0,3.180863902219111 +628.0,2.696423084914104 +629.0,2.6384249522798897 +630.0,2.6129183773966846 +631.0,2.4262452183093712 +632.0,2.443813849722751 +633.0,3.142587751169588 +634.0,2.522001362442041 +635.0,2.701979602781119 +636.0,2.4160296995692265 +637.0,2.6801602676657668 +638.0,2.4745262650513293 +639.0,2.6356351254775197 +640.0,2.621215358657262 +641.0,2.553071814886643 +642.0,2.5663538806084136 +643.0,2.888172132621829 +644.0,2.626779890737392 +645.0,2.6556025811318236 +646.0,2.613963625988018 +647.0,3.5899657663295166 +648.0,2.418417846245264 +649.0,2.726021765279727 +650.0,2.4900201269196907 +651.0,2.8775157799948663 +652.0,2.6472693534235567 +653.0,3.111718796295572 +654.0,2.485949893066325 +655.0,2.9488853026965813 +656.0,2.470730494767714 +657.0,2.5249846190231766 +658.0,2.905647071912182 +659.0,3.323960581384466 +660.0,2.7259320185516627 +661.0,2.4260747062066916 +662.0,2.890704730361984 +663.0,2.42545779996139 +664.0,2.4834950914322866 +665.0,2.4976322709338965 +666.0,2.410537035395689 +667.0,2.852331786985542 +668.0,2.6314623956521004 +669.0,2.543031504866667 +670.0,2.4312862622418416 +671.0,2.6023243861991903 +672.0,2.932488391610799 +673.0,3.4688239729834183 +674.0,2.567711512822743 +675.0,2.8115001883114186 +676.0,3.1471328003768315 +677.0,2.4643183196729335 +678.0,2.524144047949361 +679.0,2.819497412145706 +680.0,2.6842768513261075 +681.0,2.9270157316064345 +682.0,2.799860899100231 +683.0,2.416824839430162 +684.0,2.4231407864121026 +685.0,2.7537986213379844 +686.0,2.8686206202052134 +687.0,2.5661196137758178 +688.0,2.6057604059880863 +689.0,2.636417747994058 +690.0,3.098146003796759 +691.0,2.4903532828163404 +692.0,3.2089045957871876 +693.0,2.5679476123629925 +694.0,3.627971015813201 +695.0,2.567407025877979 +696.0,3.157685870611686 +697.0,2.9160471208869274 +698.0,3.1029435938396253 +699.0,2.6661181924820205 +700.0,2.759463196067177 +701.0,2.5019691899535914 +702.0,2.4642468997525433 +703.0,3.1583488387132754 +704.0,2.432600791030712 +705.0,2.525690933138196 +706.0,3.6934080177641295 +707.0,2.614367576618214 +708.0,2.4403099592595447 +709.0,2.706045504429959 +710.0,2.407833361978446 +711.0,3.240249121047182 +712.0,2.6778216950719385 +713.0,2.4980829630639274 +714.0,2.43993724814206 +715.0,2.4966167236892014 +716.0,2.469720499302753 +717.0,2.537929143600752 +718.0,3.0145669795327255 +719.0,2.620543984464682 +720.0,2.52732680825351 +721.0,3.79370300542742 +722.0,2.454086996285682 +723.0,3.1758738186449573 +724.0,2.442153917585677 +725.0,2.4851905487510066 +726.0,2.9714029087868274 +727.0,2.7498263843491895 +728.0,2.59715637001839 +729.0,2.6054102953025184 +730.0,2.5531694998033716 +731.0,2.8704313526060634 +732.0,2.5115601954816764 +733.0,2.4359007733832736 +734.0,3.4995762571719764 +735.0,2.4403459052473644 +736.0,3.140960955409749 +737.0,2.569230863396048 +738.0,2.4200950996215655 +739.0,2.517154901210197 +740.0,2.480193696605337 +741.0,2.407034890195572 +742.0,2.4493525796172793 +743.0,2.4224935006224317 +744.0,2.597464726280232 +745.0,3.201063651053726 +746.0,2.4659537760403913 +747.0,2.414568344357579 +748.0,2.574705120159154 +749.0,2.7248178016064877 +750.0,4.23389146954998 +751.0,2.429289470323361 +752.0,2.4916872322968957 +753.0,3.133314663851488 +754.0,2.6888306265761854 +755.0,3.6541935585478647 +756.0,2.4542541524486006 +757.0,2.527506718961108 +758.0,3.1848631115428025 +759.0,2.6083622072500825 +760.0,3.3341728635505534 +761.0,2.7845830478515574 +762.0,2.5102299488486026 +763.0,2.4629064810636656 +764.0,2.4287868776499546 +765.0,2.6178059497578774 +766.0,2.5833760599072937 +767.0,3.0011764634558373 +768.0,2.5456596575702375 +769.0,2.499217769693502 +770.0,2.5606635059853406 +771.0,2.4704335796162495 +772.0,2.540015132492793 +773.0,3.052378678177522 +774.0,2.456450756522378 +775.0,2.4119839957560227 +776.0,2.4438917923204575 +777.0,2.4658890146035155 +778.0,2.6648530915088893 +779.0,2.546888989679297 +780.0,2.6749094353318394 +781.0,2.6660693177819246 +782.0,2.693415723564746 +783.0,3.4912692710608004 +784.0,3.127711514555245 +785.0,2.9560822786642227 +786.0,2.938817928487431 +787.0,2.7599135488860176 +788.0,2.9806112986908047 +789.0,2.6257037477988683 +790.0,2.493119713964708 +791.0,2.4076884246454764 +792.0,2.875839958619891 +793.0,2.454797830586008 +794.0,2.8069748293339387 +795.0,2.527553188765557 +796.0,2.4694333189809887 +797.0,2.5598677312713627 +798.0,2.86407998089461 +799.0,2.4845264364617488 +800.0,2.4692613324774073 +801.0,2.4228331953606776 +802.0,2.9316466029372363 +803.0,3.8058787677020263 +804.0,3.0974678495296226 +805.0,2.4594834636859995 +806.0,2.429558533833815 +807.0,3.340559811032189 +808.0,2.4075606714496405 +809.0,3.199631486890815 +810.0,2.6446643954661564 +811.0,2.702738824284702 +812.0,2.5976797705633907 +813.0,2.613665393008812 +814.0,2.524739873841897 +815.0,3.0460476999657318 +816.0,2.769366581236295 +817.0,2.41339082058487 +818.0,2.854954954865893 +819.0,2.7254680700270972 +820.0,2.5733894570929503 +821.0,2.57798903064292 +822.0,2.583343322939043 +823.0,3.580950955662075 +824.0,3.434704290630398 +825.0,2.468059866221458 +826.0,2.400891184655593 +827.0,2.4893379086497602 +828.0,2.4233966418889104 +829.0,2.72142860963973 +830.0,2.857064112064043 +831.0,2.647613103201019 +832.0,2.875007675196321 +833.0,2.5692154397478575 +834.0,2.4932157652696696 +835.0,2.850934330213058 +836.0,2.543888099875166 +837.0,2.4783385142577066 +838.0,2.618672597167146 +839.0,2.75669487134251 +840.0,3.4084854166803633 +841.0,2.5223265573215454 +842.0,2.667249585352578 +843.0,2.905473182152723 +844.0,2.4003473044424495 +845.0,2.522814811679153 +846.0,2.528119112282441 +847.0,2.4440743164169447 +848.0,2.682979444610814 +849.0,2.4500989638269215 +850.0,2.7340846276948256 +851.0,2.5909516966622936 +852.0,2.5437676962765847 +853.0,2.517058606689997 +854.0,2.4334859127813466 +855.0,2.4481101601419675 +856.0,2.4224348465030046 +857.0,2.4173667787256683 +858.0,2.9995218041430727 +859.0,2.503159222425881 +860.0,2.686949218934144 +861.0,2.4710276487743923 +862.0,2.828575086031912 +863.0,3.1741773029358233 +864.0,2.517813176797426 +865.0,2.454204464401356 +866.0,3.036541230037673 +867.0,2.7089528523197504 +868.0,2.745947961703316 +869.0,2.6365932172990156 +870.0,2.8361491597852035 +871.0,2.4431815672546104 +872.0,2.752147529177619 +873.0,2.7902058473305065 +874.0,2.5697996566247783 +875.0,2.706525296213271 +876.0,2.7615205284322535 +877.0,2.7430634091638244 +878.0,2.544941952270398 +879.0,2.4057481871257185 +880.0,2.859630467174478 +881.0,2.73052049439371 +882.0,2.6733329819197054 +883.0,2.433808017401626 +884.0,2.8251301087336196 +885.0,2.4048766963958492 +886.0,2.835299794581386 +887.0,2.4895180041093736 +888.0,2.5570504520573434 +889.0,3.035049974784035 +890.0,3.4713278794561635 +891.0,2.470289705685845 +892.0,2.549578191479177 +893.0,2.40910578365664 +894.0,2.5973796246729934 +895.0,2.4335860185733567 +896.0,2.7133015325366183 +897.0,2.496778997339603 +898.0,2.4991248468161418 +899.0,2.5287538407570773 +900.0,2.9695971586264474 +901.0,3.093152410235457 +902.0,2.450915165256606 +903.0,2.7276639978130066 +904.0,2.797381662419778 +905.0,2.521539488265509 +906.0,2.701163627770704 +907.0,2.7280682387893602 +908.0,2.4169291673776625 +909.0,2.683652891482975 +910.0,3.0876083806088452 +911.0,2.6210115507981446 +912.0,2.7567297934776542 +913.0,2.412177211441359 +914.0,2.987469689492289 +915.0,2.4222426073380396 +916.0,2.596356016895899 +917.0,2.7906933603283663 +918.0,3.0348420323991805 +919.0,2.481752939440817 +920.0,2.5037675167922164 +921.0,2.940371766032988 +922.0,2.9753907554288914 +923.0,3.2411968036907073 +924.0,3.137014094792097 +925.0,2.6014957547100632 +926.0,2.5861728681024205 +927.0,2.842482827548254 +928.0,2.9609460457761445 +929.0,2.779287753747824 +930.0,2.752754052780916 +931.0,2.9058137539001963 +932.0,2.634024422627424 +933.0,2.492321744138421 +934.0,2.420775105381227 +935.0,3.0162723609712634 +936.0,2.476589799979703 +937.0,2.637141761001148 +938.0,2.533092350313161 +939.0,4.078997128657602 +940.0,2.76315510988683 +941.0,2.540091632899135 +942.0,2.6975083043513974 +943.0,2.42284640526688 +944.0,2.918912786938631 +945.0,2.4370877392586436 +946.0,2.9341945080107905 +947.0,2.549103508289408 +948.0,2.7746887785666745 +949.0,2.6393703510074675 +950.0,3.0779050511367174 +951.0,2.5739856428416665 +952.0,2.4937221794577216 +953.0,2.6749099813078345 +954.0,3.811426606011411 +955.0,2.5304354449110598 +956.0,2.4426354510004953 +957.0,3.0461546739516754 +958.0,3.0036369787612145 +959.0,2.8880681208936823 +960.0,2.814606275897994 +961.0,2.7205030986906085 +962.0,2.4096081214173255 +963.0,2.4590003645752665 +964.0,2.694968186005089 +965.0,2.683037654298667 +966.0,2.411390174517189 +967.0,2.9753706293847983 +968.0,2.5904884689378394 +969.0,2.512211623680766 +970.0,2.5826286238982754 +971.0,3.2673300522891684 +972.0,2.6666845668850883 +973.0,2.456780301632581 +974.0,2.4253225124990196 +975.0,2.507931800569709 +976.0,2.4833792226848344 +977.0,2.432684817519461 +978.0,2.465774889186947 +979.0,2.492996395799581 +980.0,2.509044746040235 +981.0,3.599684553175493 +982.0,2.607278592672701 +983.0,2.8723922946280096 +984.0,2.5289956901588075 +985.0,3.1074142396571114 +986.0,2.722391863941297 +987.0,2.410681232550799 +988.0,2.5194099158901153 +989.0,2.699196046018571 +990.0,2.6134604612829473 +991.0,2.4922496269538437 +992.0,2.7272377855116567 +993.0,3.1924669366242493 +994.0,2.8494151892613404 +995.0,2.5425133435089196 +996.0,3.0138268748051895 +997.0,2.6325096710969427 +998.0,2.5162493404189825 +999.0,3.0852670139424796 +1000.0,2.61756130935517 +1001.0,2.8616502581546643 +1002.0,2.4735607198086202 +1003.0,2.6446143217580786 +1004.0,2.4878405734998785 +1005.0,2.79911685161374 +1006.0,2.645797010520881 +1007.0,2.912870088544496 +1008.0,2.949340773238389 +1009.0,3.8115348294295415 +1010.0,2.4337103720222495 +1011.0,2.7066620045641505 +1012.0,2.546602749295374 +1013.0,2.667823645733849 +1014.0,2.5189645954631934 +1015.0,2.966979181522129 +1016.0,2.4483715742467127 +1017.0,2.637678264252152 +1018.0,2.610009144918936 +1019.0,2.734322718492427 +1020.0,2.4414443919231594 +1021.0,2.780693498075346 +1022.0,2.466311127681974 +1023.0,2.995209715904859 +1024.0,2.5100175375658362 +1025.0,3.1566856258823512 +1026.0,2.90249982556288 +1027.0,2.8230218032845587 +1028.0,2.6178103352228455 +1029.0,2.402900980733277 +1030.0,2.977911725449639 +1031.0,2.8604777486056014 +1032.0,2.5881435456845123 +1033.0,2.7952909234230856 +1034.0,3.8160494723795404 +1035.0,2.4728887611241985 +1036.0,2.7196331911331715 +1037.0,2.792398168755701 +1038.0,3.197829735114039 +1039.0,2.661112340725851 +1040.0,2.7611590183899355 +1041.0,2.5951055794445526 +1042.0,2.890311886490672 +1043.0,2.487612006081947 +1044.0,2.4808194294694084 +1045.0,2.447641421876062 +1046.0,2.8248654110080773 +1047.0,3.329071467522515 +1048.0,2.4092451847408984 +1049.0,3.398133343606869 +1050.0,3.18349286487435 +1051.0,2.887363525558462 +1052.0,2.456960458866493 +1053.0,3.7188478250093446 +1054.0,2.5089202867546687 +1055.0,4.282322955088684 +1056.0,2.828580280963824 +1057.0,2.6430262003846323 +1058.0,2.946349665966721 +1059.0,3.0043269025720263 +1060.0,2.609048683011045 +1061.0,2.733473075572422 +1062.0,2.6101153805942 +1063.0,3.8459010608703115 +1064.0,2.419576212051472 +1065.0,2.6439170756622516 +1066.0,3.1307150684946237 +1067.0,2.559238497842649 +1068.0,2.766889161378238 +1069.0,2.4644328605905916 +1070.0,2.6606876781212856 +1071.0,2.536281447020931 +1072.0,2.9784355754506944 +1073.0,2.4344295145474155 +1074.0,3.2340732509262833 +1075.0,2.69136346900546 +1076.0,2.511820475672796 +1077.0,2.5794490934991976 +1078.0,2.4109937123480476 +1079.0,2.6245221287909994 +1080.0,2.4045244415357847 +1081.0,2.700527450466609 +1082.0,2.6604559866135835 +1083.0,2.513120626003066 +1084.0,2.8439443768733286 +1085.0,2.499662058520423 +1086.0,2.8643029950422076 +1087.0,2.5076698179359833 +1088.0,2.4584974938284194 +1089.0,2.705369803770313 +1090.0,2.4678209441023573 +1091.0,2.5925425563600593 +1092.0,2.481374128523833 +1093.0,3.389471997782013 +1094.0,2.5041559597404563 +1095.0,3.1467531933638497 +1096.0,3.3912254479921224 +1097.0,3.5332542654965104 +1098.0,3.320898018035622 +1099.0,2.7009541761423397 +1100.0,2.4356468202441754 +1101.0,2.530507579213707 +1102.0,2.5673834362571393 +1103.0,2.47249309654318 +1104.0,2.4639143053294092 +1105.0,3.884551241630467 +1106.0,2.743783872370491 +1107.0,2.5650422612347965 +1108.0,2.44531197603513 +1109.0,2.691128006944751 +1110.0,2.7866700097513992 +1111.0,2.786651422667389 +1112.0,2.8440679930896886 +1113.0,3.5425625293975473 +1114.0,2.447236432961462 +1115.0,2.5546247303018714 +1116.0,2.6426941126907426 +1117.0,2.4331492154042555 +1118.0,2.5031479765453986 +1119.0,2.6994770836054514 +1120.0,2.5762251748978398 +1121.0,2.42011061301912 +1122.0,3.394371000862754 +1123.0,2.9281026424415155 +1124.0,2.673864639213704 +1125.0,2.5120893742149337 +1126.0,2.6802046185107087 +1127.0,2.7518596492981406 +1128.0,4.017900549713783 +1129.0,2.6222169534735014 +1130.0,2.400428808780028 +1131.0,2.7760204930947343 +1132.0,3.2592984404655705 +1133.0,2.854829506584726 +1134.0,2.5377543199504644 +1135.0,2.6912342845016775 +1136.0,2.40785766465085 +1137.0,2.4928912819086526 +1138.0,2.469616484736101 +1139.0,2.6655344438396593 +1140.0,2.6165135737741636 +1141.0,2.533801767274422 +1142.0,2.703462376146372 +1143.0,2.4325974111955935 +1144.0,2.5282327092139525 +1145.0,3.1914281098129953 +1146.0,2.4803330895922007 +1147.0,3.423056619429805 +1148.0,2.7133093202196505 +1149.0,3.6058352854008486 +1150.0,2.646955171344196 +1151.0,2.62445503806771 +1152.0,2.438240207867264 +1153.0,2.4720254257555667 +1154.0,2.443050548419241 +1155.0,2.4664885135082635 +1156.0,3.2061794199642835 +1157.0,2.459450087637415 +1158.0,2.475750027396813 +1159.0,2.4485018323530725 +1160.0,2.718826164752089 +1161.0,2.5672902099651838 +1162.0,2.5408811327302785 +1163.0,2.5912204318142993 +1164.0,2.5496530603069547 +1165.0,2.7200701223909802 +1166.0,3.9932072819418503 +1167.0,2.5524167915680747 +1168.0,2.763237538639836 +1169.0,2.7168960596607743 +1170.0,2.740957109407489 +1171.0,2.578231042625246 +1172.0,3.8953431628648563 +1173.0,2.977001008140045 +1174.0,2.493160920084493 +1175.0,2.9852097189487328 +1176.0,2.4634869775204447 +1177.0,3.0240702059022437 +1178.0,2.45964099657499 +1179.0,2.535859645186882 +1180.0,2.8123809757081544 +1181.0,2.460058539438944 +1182.0,2.8424740536927673 +1183.0,2.879643626069834 +1184.0,2.6291639130177473 +1185.0,2.493711689543733 +1186.0,2.537960765545115 +1187.0,2.581201677968501 +1188.0,2.4395726315499946 +1189.0,2.97082024708337 +1190.0,2.666837707500793 +1191.0,3.2305938578677593 +1192.0,3.654267228176434 +1193.0,2.4898092871503366 +1194.0,2.4142010774938236 +1195.0,2.456979264605472 +1196.0,3.774094880520701 +1197.0,2.4785171781599775 +1198.0,3.265964538735699 +1199.0,2.4932515564043096 +1200.0,2.5016456073470423 +1201.0,2.471016324581343 +1202.0,3.564148890501826 +1203.0,2.921914962439562 +1204.0,3.0511723994085096 +1205.0,3.3058602816403204 +1206.0,2.8173912036929862 +1207.0,2.4494734549554824 +1208.0,2.480727733949988 +1209.0,2.8863688206905933 +1210.0,2.5554664317012814 +1211.0,3.803632608673543 +1212.0,2.702437914519161 +1213.0,2.5485966550754826 +1214.0,3.3067627839091203 +1215.0,2.657252182493611 +1216.0,2.4261804940270792 +1217.0,2.410563456229614 +1218.0,2.9048268488998463 +1219.0,2.550443584830454 +1220.0,2.5804123152639384 +1221.0,2.7430565913234948 +1222.0,2.5080780798725577 +1223.0,2.579583926067699 +1224.0,2.577645018708761 +1225.0,2.4360981624530806 +1226.0,2.5331949893586376 +1227.0,2.494978554329346 +1228.0,2.6516268057968313 +1229.0,2.5736123933394985 +1230.0,2.7144782231491895 +1231.0,2.8360627010413846 +1232.0,3.062420902813023 +1233.0,2.6321443652860226 +1234.0,2.8276464602773417 +1235.0,2.8612118240563884 +1236.0,2.7317972998282194 +1237.0,2.5315432199896484 +1238.0,2.5002192486056045 +1239.0,2.601029130843085 +1240.0,4.339124126365629 +1241.0,2.5355791508473042 +1242.0,2.8308488978296253 +1243.0,2.4689335401274053 +1244.0,2.434982491772899 +1245.0,2.714863573201795 +1246.0,2.720304437604594 +1247.0,2.5363919836050295 +1248.0,2.434377743006249 +1249.0,2.8670731543104884 +1250.0,3.264084386645175 +1251.0,2.7846498449633184 +1252.0,2.9769518325319355 +1253.0,2.5543357887885296 +1254.0,2.6504946181396645 +1255.0,2.752227726548634 +1256.0,2.454645749387958 +1257.0,3.2093672515224747 +1258.0,2.8674033847959226 +1259.0,3.0863154677439084 +1260.0,2.4664187645643723 +1261.0,2.5383906037068806 +1262.0,2.7607707946326516 +1263.0,2.7245255554693286 +1264.0,2.7398879033914874 +1265.0,2.81155206837931 +1266.0,2.495218504097386 +1267.0,2.4854107085169477 +1268.0,2.4252351661706615 +1269.0,2.430050273191449 +1270.0,2.7868942046332954 +1271.0,3.117356567883423 +1272.0,2.843460157771931 +1273.0,3.6475140733712905 +1274.0,4.282152250827003 +1275.0,3.434373475986939 +1276.0,2.8456621567922427 +1277.0,2.510852350788995 +1278.0,2.4887964860466725 +1279.0,2.5611158971183365 +1280.0,2.509578226941863 +1281.0,2.485724213742461 +1282.0,2.4951783934381817 +1283.0,2.8806501485603895 +1284.0,2.8766162418749515 +1285.0,2.4528321878521275 +1286.0,2.4963323702065985 +1287.0,3.3857243662997063 +1288.0,2.505800242959421 +1289.0,2.6895064987115704 +1290.0,2.655087647066018 +1291.0,2.528493839859975 +1292.0,2.4221355535442415 +1293.0,3.2114622384407117 +1294.0,2.6269006099953134 +1295.0,2.4307842320945205 +1296.0,2.569513848069005 +1297.0,3.296367721795148 +1298.0,3.078905365688263 +1299.0,2.569062271831775 +1300.0,3.0081209477041106 +1301.0,3.0054920933472284 +1302.0,2.523686070749671 +1303.0,2.945395899661608 +1304.0,2.4270396665998932 +1305.0,2.552381697497148 +1306.0,2.614612169433848 +1307.0,2.650123057397835 +1308.0,2.9085346675982056 +1309.0,2.494973056500675 +1310.0,2.4227975254706906 +1311.0,2.4809346356794073 +1312.0,2.5118711444861868 +1313.0,3.6304776372047813 +1314.0,2.7098557184763443 +1315.0,3.2272723987234273 +1316.0,3.138343764709751 +1317.0,2.4783405319430694 +1318.0,2.823797713625672 +1319.0,2.8578706215323013 +1320.0,2.4863418620449704 +1321.0,2.4380082967488454 +1322.0,2.574800099373185 +1323.0,2.5468972140619286 +1324.0,2.414920959080514 +1325.0,3.6060790498868087 +1326.0,2.746040564376262 +1327.0,2.6066766312587424 +1328.0,2.745684230833041 +1329.0,2.4539535412506086 +1330.0,2.5437387738914006 +1331.0,2.4939912554246932 +1332.0,2.726128455924864 +1333.0,2.6662927583930496 +1334.0,2.493846745562573 +1335.0,3.571305949713171 +1336.0,2.681074143858596 +1337.0,3.7840144600451446 +1338.0,2.430178720845559 +1339.0,3.0622942242034004 +1340.0,2.406768127222234 +1341.0,2.414048931567082 +1342.0,3.4833621479651873 +1343.0,2.7991370459832705 +1344.0,2.6033878375906867 +1345.0,3.775977184562577 +1346.0,2.5041802986544726 +1347.0,2.52436030515736 +1348.0,2.4939981700070057 +1349.0,2.698468826303454 +1350.0,2.423727838010359 +1351.0,2.4180638906774305 +1352.0,2.605672886247283 +1353.0,2.6197357939946015 +1354.0,2.8355985114666815 +1355.0,3.268560050708908 +1356.0,2.401711696200245 +1357.0,2.9050485301100317 +1358.0,2.579018333953227 +1359.0,3.0134897780441814 +1360.0,2.9745494793124228 +1361.0,3.283763209624022 +1362.0,4.043603968202682 +1363.0,3.474790394942165 +1364.0,2.53002122735758 +1365.0,2.4297253363331635 +1366.0,2.7433918863390074 +1367.0,2.6594507086456307 +1368.0,2.527114276300639 +1369.0,2.4028912624891157 +1370.0,2.937458577353709 +1371.0,2.5090455269568244 +1372.0,2.496498707044282 +1373.0,2.5984419711567135 +1374.0,2.5415700195760333 +1375.0,2.427625861049035 +1376.0,2.507489664390094 +1377.0,2.890932183281663 +1378.0,2.6692300449163273 +1379.0,2.4497236382177223 +1380.0,2.9494422246114502 +1381.0,2.818636973322755 +1382.0,2.5132212827255778 +1383.0,2.40838252951743 +1384.0,2.5420849028597763 +1385.0,2.511885721722381 +1386.0,3.410387097333504 +1387.0,3.2428494844038056 +1388.0,2.540372959262089 +1389.0,2.545371506380575 +1390.0,2.778330554839315 +1391.0,2.9041431933549164 +1392.0,2.8120886873419284 +1393.0,3.764098447244051 +1394.0,2.552774044596075 +1395.0,2.4251883645555585 +1396.0,2.56333059485494 +1397.0,2.883984982236373 +1398.0,3.0385346149926793 +1399.0,3.005655008095867 +1400.0,3.3891818688758892 +1401.0,2.9901572836105226 +1402.0,2.940229892571655 +1403.0,3.7553414366389077 +1404.0,2.8366381757309624 +1405.0,2.4759433041622327 +1406.0,3.090026566181214 +1407.0,2.439882539442069 +1408.0,2.7631883684379126 +1409.0,2.7437727452702854 +1410.0,2.427334183201398 +1411.0,2.7258953474456464 +1412.0,3.585616981871109 +1413.0,3.3526541759566335 +1414.0,3.7222591802148006 +1415.0,2.680200928490947 +1416.0,2.53079160641142 +1417.0,3.005233736707667 +1418.0,2.5464648269816084 +1419.0,2.500555017661923 +1420.0,3.1152942829602326 +1421.0,2.5494518937362125 +1422.0,2.776840670849052 +1423.0,2.460061386444917 +1424.0,2.9122013234673005 +1425.0,2.430400610021041 +1426.0,2.613725288124217 +1427.0,3.2225568246660226 +1428.0,2.514338459328314 +1429.0,3.731688821808448 +1430.0,2.8832601199748207 +1431.0,2.8300126432418335 +1432.0,2.413463992734104 +1433.0,2.43092974541734 +1434.0,2.7768863661540846 +1435.0,2.5229986056410927 +1436.0,2.734123806531929 +1437.0,2.4146914204966166 +1438.0,2.8427868970539802 +1439.0,2.7427493892703527 +1440.0,2.8212641020113547 +1441.0,2.696907143120818 +1442.0,2.751297076580349 +1443.0,2.495545477611117 +1444.0,2.439387879748202 +1445.0,2.447923230307246 +1446.0,2.6476316338074706 +1447.0,3.516253914676916 +1448.0,2.963609381643808 +1449.0,2.826629357809666 +1450.0,2.457755045757874 +1451.0,3.085205666053135 +1452.0,2.7299704637041153 +1453.0,2.4860579626016848 +1454.0,2.4255213909128743 +1455.0,3.3574722510100363 +1456.0,2.4711417914830207 +1457.0,2.408426314226965 +1458.0,3.163872051550171 +1459.0,2.788432988991227 +1460.0,2.9194541763537183 +1461.0,2.428388126300656 +1462.0,2.9600749231486634 +1463.0,2.406939178394765 +1464.0,2.6866013451022557 +1465.0,3.482387692592324 +1466.0,2.735424711857918 +1467.0,2.5191159622378856 +1468.0,2.6247159074802884 +1469.0,2.511922351926514 +1470.0,2.7642292291056516 +1471.0,2.486112873011949 +1472.0,2.5706003422414745 +1473.0,2.7952822273767755 +1474.0,2.4095156336742796 +1475.0,2.4248800039501712 +1476.0,2.6053488779174048 +1477.0,2.5584314741632523 +1478.0,3.0264223180670595 +1479.0,2.7257295589928594 +1480.0,2.53136307577421 +1481.0,3.1476042534898467 +1482.0,3.1897003006311637 +1483.0,2.5770055260014177 +1484.0,3.2504056932044745 +1485.0,2.600805913498307 +1486.0,2.4574426540262833 +1487.0,3.1556299585192917 +1488.0,2.430909957989704 +1489.0,2.8224184661133878 +1490.0,2.595302046048589 +1491.0,2.8157593252358013 +1492.0,2.502653719866964 +1493.0,2.916272475074684 +1494.0,3.2022644615891425 +1495.0,2.672848031987261 +1496.0,2.604934996862796 +1497.0,2.4455394095716003 +1498.0,2.8764777741463403 +1499.0,3.185432480231639 +1500.0,2.9730114380233896 +1501.0,3.0198003941615728 +1502.0,2.4887749743227383 +1503.0,2.403008808035333 +1504.0,2.6748503995036703 +1505.0,2.605695867696135 +1506.0,2.4323503249311744 +1507.0,2.7090721228017887 +1508.0,2.6343220609283025 +1509.0,2.4440325258216253 +1510.0,3.2166316288207115 +1511.0,3.3853109149772216 +1512.0,2.4597835910857353 +1513.0,3.424952698457584 +1514.0,2.8085632777434624 +1515.0,3.076575178602984 +1516.0,2.4013537121455983 +1517.0,2.691587123276979 +1518.0,2.666648234408459 +1519.0,2.8258808333045895 +1520.0,3.134504227085718 +1521.0,2.4496493284986487 +1522.0,2.5501942889761637 +1523.0,2.733859882264401 +1524.0,4.343985222728786 +1525.0,2.405831236732008 +1526.0,2.4035325749383674 +1527.0,3.0199819359202293 +1528.0,2.4800672401380814 +1529.0,2.523300616000739 +1530.0,3.0572733288832685 +1531.0,2.408016596732177 +1532.0,2.5233285598602446 +1533.0,2.6545493691132833 +1534.0,2.5047353899356555 +1535.0,2.8832566354403695 +1536.0,3.637186330812506 +1537.0,3.35776483844878 +1538.0,2.5008353081434773 +1539.0,2.9710451119819172 +1540.0,2.979964163601324 +1541.0,2.9765935859608987 +1542.0,2.8082834477864314 +1543.0,2.447799349336257 +1544.0,2.864202918481376 +1545.0,2.6740207200977255 +1546.0,3.001870760134529 +1547.0,2.573841223983485 +1548.0,3.451206357696548 +1549.0,3.7736673345773397 +1550.0,2.415106378143011 +1551.0,3.030454320250956 +1552.0,3.0086130136425053 +1553.0,2.663053984360657 +1554.0,3.0311138808569504 +1555.0,2.4597882320309257 +1556.0,3.1228651527000357 +1557.0,2.402840071896769 +1558.0,2.543251109866681 +1559.0,2.4578596910885993 +1560.0,2.7820805658408103 +1561.0,3.347966714723419 +1562.0,2.628173197907563 +1563.0,2.677885049563756 +1564.0,2.6006065899843875 +1565.0,2.838916237708359 +1566.0,2.4596052494314584 +1567.0,2.5996459308306292 +1568.0,2.9420764948847125 +1569.0,2.620610391959139 +1570.0,2.5985153475875022 +1571.0,2.669391499490113 +1572.0,2.8944476119192983 +1573.0,2.4021970788896887 +1574.0,2.600652330910778 +1575.0,2.531263657187522 +1576.0,2.921898853741607 +1577.0,2.8341815520966565 +1578.0,2.650617898676433 +1579.0,2.8539430206483147 +1580.0,2.7272481233822674 +1581.0,2.7950044059198422 +1582.0,2.552726044073275 +1583.0,2.9782759720670464 +1584.0,2.538341026654755 +1585.0,2.684859896649547 +1586.0,2.5508053481533093 +1587.0,2.6546874321652227 +1588.0,3.5209463248710016 +1589.0,2.441581437100343 +1590.0,2.42602405679242 +1591.0,2.4971433935854046 +1592.0,2.630115806896507 +1593.0,2.5859590145808378 +1594.0,2.40704898579414 +1595.0,2.57643627950977 +1596.0,2.7997905189445023 +1597.0,2.48765398150075 +1598.0,4.128786254825905 +1599.0,3.6228153705685395 +1600.0,2.9834636671752617 +1601.0,2.576931065559691 +1602.0,2.527386751748912 +1603.0,2.7012916022776237 +1604.0,2.462287961041082 +1605.0,2.4471299149721153 +1606.0,2.5922213123400097 +1607.0,2.8130318880816505 +1608.0,2.643619110682233 +1609.0,2.4311414179410304 +1610.0,2.554512453274197 +1611.0,2.4495688381036107 +1612.0,3.825972689302273 +1613.0,2.600731986605778 +1614.0,2.4854029147571097 +1615.0,2.6934935162577194 +1616.0,2.574717887470217 +1617.0,2.6423758286443815 +1618.0,3.4368834371069634 +1619.0,2.551473051437741 +1620.0,2.580868216681614 +1621.0,2.59723352292006 +1622.0,2.5589143967891537 +1623.0,2.4691007188423777 +1624.0,3.190931513672072 +1625.0,2.8274589593817274 +1626.0,2.8615639510110515 +1627.0,3.075381111309328 +1628.0,3.922263265594869 +1629.0,2.6201410767009006 +1630.0,2.8395607091346413 +1631.0,2.540222050596419 +1632.0,2.855489001726729 +1633.0,2.434161988582154 +1634.0,2.821746869016237 +1635.0,2.463010505095361 +1636.0,2.560803278949356 +1637.0,2.628522001574059 +1638.0,3.42893636136355 +1639.0,2.475568644494082 +1640.0,2.938511630035822 +1641.0,2.7671316960053005 +1642.0,3.457271914241839 +1643.0,2.9052593989749393 +1644.0,2.7172070044811916 +1645.0,2.44886268836791 +1646.0,3.1691807085423918 +1647.0,2.699154687059357 +1648.0,2.4110067335029677 +1649.0,2.578099761111048 +1650.0,2.9634800112093664 +1651.0,3.1601607950637622 +1652.0,2.616598669807587 +1653.0,2.879717724066999 +1654.0,2.9177718569341105 +1655.0,2.4647699091209816 +1656.0,2.989925851706956 +1657.0,2.8644857296983766 +1658.0,2.4425714675184915 +1659.0,2.5831170058111974 +1660.0,2.5098616308850317 +1661.0,2.6126021433768396 +1662.0,2.4802691503552903 +1663.0,2.6423558135962626 +1664.0,2.8312996631877203 +1665.0,2.4989578922072253 +1666.0,3.200600979053382 +1667.0,2.745857118776368 +1668.0,3.27367884136454 +1669.0,2.5056956496576026 +1670.0,2.604117725027607 +1671.0,3.501602333412664 +1672.0,2.794835979947111 +1673.0,2.4062332809539075 +1674.0,3.922139936237737 +1675.0,2.469609978218163 +1676.0,2.8367310970065014 +1677.0,2.4705334547184497 +1678.0,2.5434460599363744 +1679.0,2.4157556196771126 +1680.0,2.4022828529117812 +1681.0,3.521806540123792 +1682.0,2.5525937178170754 +1683.0,2.5855444940843872 +1684.0,2.8589033753888935 +1685.0,2.5610607053174013 +1686.0,2.4279369406499005 +1687.0,3.3671578558252095 +1688.0,3.363846498134764 +1689.0,2.648889814209703 +1690.0,3.047073819618464 +1691.0,3.0553342558659486 +1692.0,2.4834478119303807 +1693.0,3.5538192678309777 +1694.0,3.6770321161927564 +1695.0,2.413358037756121 +1696.0,2.425035598479721 +1697.0,4.1952808956357455 +1698.0,3.1953026826183235 +1699.0,2.5702064689274295 +1700.0,2.4242582643484267 +1701.0,2.425491855603096 +1702.0,2.575059267474048 +1703.0,2.8158197043900053 +1704.0,2.5742825873628603 +1705.0,2.546771271758333 +1706.0,2.805459943456798 +1707.0,3.1900353456981874 +1708.0,2.730454445338705 +1709.0,2.545639827261839 +1710.0,3.132788646286423 +1711.0,2.41238121115022 +1712.0,2.8023104451715506 +1713.0,2.6891490861590106 +1714.0,3.0268372670569494 +1715.0,2.874629821850021 +1716.0,2.514152536303177 +1717.0,2.708423676829912 +1718.0,2.6934630032866633 +1719.0,2.4141269955511784 +1720.0,2.5883308110285133 +1721.0,2.414999668302352 +1722.0,2.774628836087142 +1723.0,3.0881884531166635 +1724.0,2.7660076181862645 +1725.0,2.7483489474492675 +1726.0,2.4861662424002895 +1727.0,2.7196946586011834 +1728.0,2.5336195844735117 +1729.0,2.604718769474684 +1730.0,2.905035425175058 +1731.0,2.9591569450952893 +1732.0,3.1186259367974625 +1733.0,2.4242685248974296 +1734.0,2.9436777868686246 +1735.0,2.651002455881497 +1736.0,2.497768122405749 +1737.0,2.848166768046361 +1738.0,2.565657849325233 +1739.0,2.587572396838411 +1740.0,2.45487390480996 +1741.0,2.6805896688289907 +1742.0,2.617351512191875 +1743.0,2.4219726662968877 +1744.0,2.6315989154313333 +1745.0,2.4303031478657178 +1746.0,2.408130903071674 +1747.0,2.5244881010635125 +1748.0,3.420236462430287 +1749.0,3.112662579710552 +1750.0,2.4486829567242405 +1751.0,3.7735206489241184 +1752.0,3.740322419059426 +1753.0,2.660026758610158 +1754.0,2.4797917204204634 +1755.0,2.5327756402871597 +1756.0,2.925138318772325 +1757.0,2.488393341057819 +1758.0,2.6668691723766385 +1759.0,2.410057392599073 +1760.0,2.9317935090570737 +1761.0,2.79445846558269 +1762.0,2.5915008028074995 +1763.0,2.484789500115594 +1764.0,3.0526668162969637 +1765.0,2.891752898023543 +1766.0,2.926421722991653 +1767.0,2.5648196170600026 +1768.0,2.53546766928828 +1769.0,2.7088309299928928 +1770.0,2.4135614464698802 +1771.0,2.656068395716476 +1772.0,2.4412258369565274 +1773.0,2.7758028754475808 +1774.0,2.4925859340694303 +1775.0,2.4088709865378592 +1776.0,2.9536976518838824 +1777.0,2.4674075533543816 +1778.0,2.558343532392339 +1779.0,3.0329760557704684 +1780.0,2.419624717499965 +1781.0,2.7106249487584066 +1782.0,3.0764609340340265 +1783.0,2.4837972386633616 +1784.0,2.543973265051705 +1785.0,2.9694346938636196 +1786.0,2.694921029341518 +1787.0,2.4489000088826343 +1788.0,2.546801666786066 +1789.0,2.7073617319169156 +1790.0,2.579189674546257 +1791.0,3.336667932387719 +1792.0,2.542045761678546 +1793.0,2.4714208564885607 +1794.0,2.634354033803397 +1795.0,2.6157731231673216 +1796.0,2.695168371766816 +1797.0,3.4918324275556802 +1798.0,2.532984195838099 +1799.0,3.3210569332421493 +1800.0,2.700307200506439 +1801.0,2.492205341514515 +1802.0,2.434898529877405 +1803.0,2.41476159970008 +1804.0,2.659135120049299 +1805.0,4.080462005301125 +1806.0,2.5553441538194437 +1807.0,2.431940946420322 +1808.0,2.5498951921353097 +1809.0,2.7992839153365057 +1810.0,2.567984912217998 +1811.0,2.545216647310307 +1812.0,2.5754491510369197 +1813.0,2.465029575051121 +1814.0,2.616274901402828 +1815.0,2.4930575137098168 +1816.0,2.723265898327414 +1817.0,2.6351483884972833 +1818.0,2.929006476601887 +1819.0,2.547453374907917 +1820.0,2.5071308352579056 +1821.0,2.4960064703866376 +1822.0,2.520635598933748 +1823.0,2.4875791377124115 +1824.0,2.8808821471483648 +1825.0,2.597938735628571 +1826.0,2.4818498894018384 +1827.0,2.5782692563820704 +1828.0,3.0307814990894792 +1829.0,3.2041864052044122 +1830.0,3.2035973296499254 +1831.0,2.9982226883378136 +1832.0,2.6710267322762267 +1833.0,2.6042668806480487 +1834.0,2.512000413348278 +1835.0,2.5297879238477328 +1836.0,3.251767108733086 +1837.0,3.4107981126478117 +1838.0,2.4107573612726787 +1839.0,2.7364832975280327 +1840.0,2.500438955604091 +1841.0,2.5437789130498034 +1842.0,2.6587975667104145 +1843.0,3.1866094980086563 +1844.0,2.471417392142129 +1845.0,2.434082801002063 +1846.0,2.4613332276919597 +1847.0,2.813551776480165 +1848.0,2.4426726490187978 +1849.0,2.4909624661867977 +1850.0,2.412219816809704 +1851.0,2.4319221867659024 +1852.0,2.5881018566030747 +1853.0,2.565293243083033 +1854.0,3.701077889536869 +1855.0,2.4501348202200477 +1856.0,4.186568209344066 +1857.0,2.855626877869897 +1858.0,3.1759150150957494 +1859.0,2.5564898963491816 +1860.0,2.722675591659978 +1861.0,3.7341179873994377 +1862.0,2.465170864055505 +1863.0,2.790559203389608 +1864.0,2.5446661694500343 +1865.0,3.119627221001165 +1866.0,2.6187397113443818 +1867.0,3.0949795937021 +1868.0,3.1573288638061463 +1869.0,2.59242447784752 +1870.0,2.6063103479563594 +1871.0,3.173949419149646 +1872.0,3.644872198955021 +1873.0,3.4419168561721003 +1874.0,4.325754227798736 +1875.0,2.539070488526324 +1876.0,4.464150757598768 +1877.0,2.6571388261407596 +1878.0,2.437800110136633 +1879.0,2.7574274343458214 +1880.0,4.178786266286243 +1881.0,2.4360523273792904 +1882.0,2.9165259789548057 +1883.0,2.785296591215069 +1884.0,2.408131346889052 +1885.0,2.522467859407454 +1886.0,2.4238533616950098 +1887.0,3.1575859697015036 +1888.0,2.9758339703565415 +1889.0,2.502366763003804 +1890.0,2.4869754997268267 +1891.0,2.6550631262772684 +1892.0,3.2170734172080935 +1893.0,2.4811104056807682 +1894.0,2.4686498482350823 +1895.0,2.9248543119582413 +1896.0,2.688294763512917 +1897.0,2.469430908824003 +1898.0,2.7286681272879467 +1899.0,2.6670054546123874 +1900.0,3.5822701161437047 +1901.0,2.422010676259705 +1902.0,2.463100827440368 +1903.0,2.5824635092904984 +1904.0,2.4243564076405457 +1905.0,2.5578302513180335 +1906.0,2.41042337767064 +1907.0,2.787123713484143 +1908.0,2.82586718073713 +1909.0,2.707853486141445 +1910.0,3.374686511200354 +1911.0,2.449081286710725 +1912.0,2.7839320982681377 +1913.0,2.6356300708132787 +1914.0,2.5726664303917994 +1915.0,2.7313044974189267 +1916.0,2.50064027541284 +1917.0,2.516598351948607 +1918.0,2.7941771207478 +1919.0,2.515396389405587 +1920.0,2.880168490480625 +1921.0,2.589743343711347 +1922.0,2.517040634379171 +1923.0,2.6491016574403954 +1924.0,2.5761067388405374 +1925.0,2.643681113136524 +1926.0,2.5620336433140563 +1927.0,2.529628943552053 +1928.0,2.697239129490985 +1929.0,2.738863065195481 +1930.0,2.6475742815624574 +1931.0,2.444635649048837 +1932.0,2.7013895334173847 +1933.0,2.529111683307924 +1934.0,2.4900869392044074 +1935.0,2.7894762307070584 +1936.0,2.4533165130310146 +1937.0,2.6238859280608375 +1938.0,2.7515160279390622 +1939.0,2.7882066366827125 +1940.0,2.510816974505357 +1941.0,3.712233625213749 +1942.0,2.606560617876357 +1943.0,2.4144705131430557 +1944.0,2.5048287637715188 +1945.0,2.5075780356437978 +1946.0,2.445262545882799 +1947.0,2.4112564318326126 +1948.0,2.4830580756324983 +1949.0,2.71636840509606 +1950.0,2.6662702359300123 +1951.0,2.493035087036403 +1952.0,2.6551965487908396 +1953.0,2.688363777722218 +1954.0,3.1122307941549554 +1955.0,2.679096546704146 +1956.0,2.4329146665403694 +1957.0,2.5109038396696195 +1958.0,2.50843795940932 +1959.0,2.4775945214931823 +1960.0,2.8855645090400275 +1961.0,2.962851607959411 +1962.0,2.49003311552574 +1963.0,2.451791137280182 +1964.0,2.421315726715463 +1965.0,3.2816597954191202 +1966.0,2.7483721567790056 +1967.0,2.915428063396683 +1968.0,2.888664950530118 +1969.0,3.2614974547077114 +1970.0,2.666343780850273 +1971.0,2.8539491016537024 +1972.0,3.2619907506347268 +1973.0,2.6806218529475507 +1974.0,2.5666563627128194 +1975.0,2.493718840396027 +1976.0,2.5757768110281587 +1977.0,2.6879106164880335 +1978.0,3.184684870940841 +1979.0,2.505173550898967 +1980.0,3.045032393495135 +1981.0,2.6553073929066433 +1982.0,2.4416046737150534 +1983.0,2.4256853441452026 +1984.0,2.6334864991348947 +1985.0,2.4728320792991774 +1986.0,2.4307646850647195 +1987.0,2.590910922404104 +1988.0,2.4617323696603917 +1989.0,2.805237881333352 +1990.0,2.523910981385971 +1991.0,3.075805624968385 +1992.0,3.122138453761275 +1993.0,2.4792859297457306 +1994.0,2.969147157539601 +1995.0,2.482562605491868 +1996.0,3.033848397974572 +1997.0,2.6641853837068705 +1998.0,2.6922934709360415 +1999.0,2.4736796657632065 +2000.0,2.4330488088639157 +2001.0,2.4534901555694186 +2002.0,2.8174461734189293 +2003.0,2.485619304460957 +2004.0,2.501249239066821 +2005.0,3.615472138007847 +2006.0,2.5808460451597064 +2007.0,2.4479178909578554 +2008.0,2.4335391555161285 +2009.0,2.8130698354818002 +2010.0,2.5760286647823714 +2011.0,2.5451125444110816 +2012.0,2.461513981825386 +2013.0,2.629671815512574 +2014.0,2.5049165709365298 +2015.0,2.450083198804238 +2016.0,2.9010248738977418 +2017.0,2.7298440277808638 +2018.0,2.4042778729198093 +2019.0,2.5986780371877543 +2020.0,2.538598456976501 +2021.0,2.551577226914019 +2022.0,2.4611836617713556 +2023.0,2.4150930172723815 +2024.0,2.4425708150288648 +2025.0,3.1434212066281013 +2026.0,2.512731962735474 +2027.0,2.4852057798195455 +2028.0,2.703688610529616 +2029.0,3.0620690099664865 +2030.0,2.5280241896765374 +2031.0,3.058121014821026 +2032.0,2.463400762313886 +2033.0,2.6363246236599474 +2034.0,2.746974951608816 +2035.0,2.9454762269894657 +2036.0,2.557548939944296 +2037.0,2.780453148402649 +2038.0,3.3077977518540385 +2039.0,2.4314021094857186 +2040.0,3.0624661793991113 +2041.0,2.548216971050756 +2042.0,3.08559121786685 +2043.0,2.851267612354034 +2044.0,2.9230186907838993 +2045.0,2.542495916783152 +2046.0,2.874250866303199 +2047.0,2.4112452272243705 +2048.0,2.9917000156109874 +2049.0,3.221861637364161 +2050.0,2.786412977348573 +2051.0,2.500524559093113 +2052.0,2.546711013165492 +2053.0,2.9835355665421726 +2054.0,2.4201189819122333 +2055.0,2.85847973392985 +2056.0,2.5850597839529503 +2057.0,2.5927265826709585 +2058.0,2.4298569407787602 +2059.0,2.551825954428413 +2060.0,2.8326895507098984 +2061.0,2.4899111598929866 +2062.0,2.507784421374217 +2063.0,3.6821234427190443 +2064.0,2.9662613162606517 +2065.0,2.684154233407242 +2066.0,2.445051471939002 +2067.0,2.485851103949261 +2068.0,2.5909809813487157 +2069.0,2.655089427806989 +2070.0,2.5274521199517057 +2071.0,2.737911877127697 +2072.0,2.639678839453069 +2073.0,3.5181768567600957 +2074.0,2.5800913428714187 +2075.0,2.507055962700033 +2076.0,2.82404802191571 +2077.0,4.136772662493845 +2078.0,2.7600378570528603 +2079.0,3.074837779042012 +2080.0,2.726539199778106 +2081.0,2.7832045781997072 +2082.0,2.4010807393946982 +2083.0,2.462713239895434 +2084.0,2.8784289076345697 +2085.0,2.5527953246320036 +2086.0,2.454769020730778 +2087.0,2.515355470034172 +2088.0,3.0682679703382236 +2089.0,2.574423957140217 +2090.0,2.9568512096595376 +2091.0,3.768921477693625 +2092.0,2.5051807589989963 +2093.0,2.6631033119029537 +2094.0,2.539809507500921 +2095.0,3.087418654563 +2096.0,2.5874346497503407 +2097.0,2.477874100846191 +2098.0,5.036355726897444 +2099.0,2.454228720827405 +2100.0,3.2505952875533692 +2101.0,2.4538555767013297 +2102.0,2.774677610988283 +2103.0,2.612940314490084 +2104.0,2.489282156140184 +2105.0,2.711143472645607 +2106.0,2.4322577108550103 +2107.0,2.7197845260641125 +2108.0,2.840434831925023 +2109.0,3.37960140216294 +2110.0,2.4717699000824633 +2111.0,2.489326217000432 +2112.0,2.6737801044166973 +2113.0,2.5815358125251597 +2114.0,2.553355013376742 +2115.0,2.970174034846549 +2116.0,2.4394238469305307 +2117.0,2.434471017503355 +2118.0,2.4691892990064215 +2119.0,2.6919927492240245 +2120.0,2.7068926219382794 +2121.0,2.616624768994133 +2122.0,2.540755037104074 +2123.0,2.686197884553865 +2124.0,2.419351965119705 +2125.0,2.7111831316636605 +2126.0,2.4088692343452367 +2127.0,2.694264076435467 +2128.0,2.4219732927396307 +2129.0,2.8732588526717406 +2130.0,2.5471385404471176 +2131.0,2.6987521688572556 +2132.0,3.234972670913629 +2133.0,3.1137732735843664 +2134.0,2.4511232677886454 +2135.0,3.387188767983337 +2136.0,2.7840128427947946 +2137.0,2.549209340191489 +2138.0,2.5164677421992008 +2139.0,2.562406579497694 +2140.0,2.5276202811433706 +2141.0,2.419842429079324 +2142.0,2.670794034007 +2143.0,2.5319776817690904 +2144.0,3.1230625670187555 +2145.0,2.5107203783633802 +2146.0,2.5339700075095477 +2147.0,2.426426366442451 +2148.0,2.522755492694347 +2149.0,2.4427940094125744 +2150.0,3.547535162891238 +2151.0,2.493278541258287 +2152.0,3.394550279980103 +2153.0,2.6818999415072047 +2154.0,2.7188569325075878 +2155.0,3.208949901717467 +2156.0,2.733235554252123 +2157.0,4.2199591559945615 +2158.0,5.3485757103244325 +2159.0,2.6289408541007835 +2160.0,3.631809882875354 +2161.0,4.369426713296581 +2162.0,2.7394378705355322 +2163.0,4.145673148612459 +2164.0,3.4992465348745916 +2165.0,3.314958487607619 +2166.0,4.4651630788748475 +2167.0,3.9547243858586825 +2168.0,2.6388027921129704 +2169.0,3.354600848513083 +2170.0,3.481921345755973 +2171.0,5.8075081534099 +2172.0,2.9659414313895667 +2173.0,4.481387792435551 +2174.0,2.918150477785229 +2175.0,4.962130074809513 +2176.0,2.7513887833711563 +2177.0,3.9680135560967082 +2178.0,3.525168603405399 +2179.0,3.8207184163798766 +2180.0,3.905678037593187 +2181.0,5.645151913597216 +2182.0,4.057065527380508 +2183.0,5.13525303231424 +2184.0,2.9221813247979904 +2185.0,3.0816747702192577 +2186.0,3.0867553878428917 +2187.0,3.4307693119303826 +2188.0,4.657159013650481 +2189.0,2.985202921335896 +2190.0,3.3795542210183656 +2191.0,3.2490463962836555 +2192.0,5.018230543409183 +2193.0,4.000618040591501 +2194.0,3.963802767860459 +2195.0,3.488689907890629 +2196.0,3.1158101275189978 +2197.0,4.232837795192115 +2198.0,3.159316977634683 +2199.0,5.010039428165429 diff --git a/tests/fixtures/catalogs/case_036_burst_middle_2200d.csv b/tests/fixtures/catalogs/case_036_burst_middle_2200d.csv new file mode 100644 index 0000000..02b3976 --- /dev/null +++ b/tests/fixtures/catalogs/case_036_burst_middle_2200d.csv @@ -0,0 +1,2201 @@ +time_days,magnitude +0.0,3.0989205615048228 +1.0,2.45589700783713 +2.0,3.344196613250689 +3.0,2.538511927540544 +4.0,2.4996915205628136 +5.0,2.535897293324016 +6.0,2.733118995943213 +7.0,2.855058225500953 +8.0,2.518113428664374 +9.0,2.606392702646403 +10.0,2.590919886223803 +11.0,2.6447048047651665 +12.0,2.4769014992563623 +13.0,3.1373424295171572 +14.0,2.5288758777401483 +15.0,2.4299054813015415 +16.0,3.2932495861230997 +17.0,2.422348209157462 +18.0,2.600600345803428 +19.0,2.5895878946620154 +20.0,2.8515715844302005 +21.0,3.8403403453481957 +22.0,2.637506569797637 +23.0,2.701907664728127 +24.0,2.717456225981229 +25.0,3.1288243643157276 +26.0,2.6543203217986924 +27.0,2.484432297141584 +28.0,3.08602861696619 +29.0,2.4148695721850433 +30.0,3.766194175485731 +31.0,2.9063122892010704 +32.0,2.8781539114969648 +33.0,2.599309483199336 +34.0,2.9026120398069946 +35.0,2.5633646809985238 +36.0,2.625666914501983 +37.0,2.626302741037442 +38.0,2.9984948222093877 +39.0,2.5486477894199546 +40.0,2.4697423123564524 +41.0,2.7467932226721627 +42.0,2.442747951712198 +43.0,2.5744534220273585 +44.0,2.689042767902074 +45.0,2.4797228913032052 +46.0,2.5146798274031266 +47.0,2.6877802633820025 +48.0,2.4516760542682507 +49.0,2.9835280952250054 +50.0,2.7416721006883185 +51.0,3.2278802419800874 +52.0,2.575655777757497 +53.0,2.5325843764786673 +54.0,2.8873852390801513 +55.0,2.7193768836941863 +56.0,2.492596918152495 +57.0,2.585405693555754 +58.0,2.424887413054545 +59.0,2.8472795495933823 +60.0,2.5925035010495106 +61.0,3.590264730297915 +62.0,2.750677903309917 +63.0,3.14462682308148 +64.0,2.518429898375048 +65.0,4.19505955453073 +66.0,2.8441213563874164 +67.0,2.53688069571524 +68.0,3.2997082692384994 +69.0,2.4048837301328625 +70.0,2.749948077425385 +71.0,2.459122022928242 +72.0,2.718435562892979 +73.0,2.6265876877227377 +74.0,3.055403364715951 +75.0,3.369017783513717 +76.0,2.504915440890734 +77.0,2.576166152454856 +78.0,2.7063092036515703 +79.0,2.8587129076262405 +80.0,2.5356386463247693 +81.0,2.7562968093825515 +82.0,2.419399773117898 +83.0,2.6147414661866573 +84.0,2.8869305699215264 +85.0,2.534597481239085 +86.0,2.487223151321375 +87.0,2.5232661316108547 +88.0,2.7856134272592072 +89.0,3.099895306613843 +90.0,2.782604063060235 +91.0,2.575179206556687 +92.0,2.647148226073189 +93.0,2.448596535390674 +94.0,2.7308322204695004 +95.0,2.596901591259709 +96.0,2.6490539550788372 +97.0,3.344689097102099 +98.0,3.1112793738619766 +99.0,2.468273522561389 +100.0,2.4857645207033925 +101.0,2.4428934954659196 +102.0,2.7040958264965456 +103.0,2.7578672113704616 +104.0,2.748803142367678 +105.0,2.798804096229053 +106.0,2.69819291304693 +107.0,2.946679936494136 +108.0,3.0138700076806866 +109.0,2.4213675433520123 +110.0,2.6510905793455306 +111.0,2.7283942221503614 +112.0,2.41907021490544 +113.0,3.4682718071069587 +114.0,2.7453045211415708 +115.0,3.1077083640214105 +116.0,2.50071748964485 +117.0,2.647686504675187 +118.0,2.471750550647331 +119.0,2.50239777409903 +120.0,2.5761039296871773 +121.0,2.4144974319406587 +122.0,2.4845931114988598 +123.0,2.521775856228339 +124.0,2.852503324095785 +125.0,2.4906608459653983 +126.0,2.4461368679453073 +127.0,2.5029383094795987 +128.0,2.6175074941803786 +129.0,2.413418103233662 +130.0,2.4486606807024955 +131.0,2.6217119678976246 +132.0,2.698883228029659 +133.0,2.628031706092704 +134.0,2.841141918280312 +135.0,2.5337999474998205 +136.0,2.498122862250771 +137.0,2.5090157298711477 +138.0,2.4009626498678944 +139.0,2.842526608002409 +140.0,2.566306689138026 +141.0,2.5954710574600313 +142.0,2.5204848658780454 +143.0,2.7298893270196576 +144.0,3.19320240484814 +145.0,2.8044039961554734 +146.0,3.012146945310924 +147.0,2.7273516573184113 +148.0,2.76769432276966 +149.0,2.6438579203399053 +150.0,2.490515362387319 +151.0,2.4960171993864013 +152.0,2.466140300953609 +153.0,2.402125319613058 +154.0,2.4580564758530734 +155.0,3.2407187416277456 +156.0,2.6983244796134307 +157.0,2.6824580638559725 +158.0,2.5721705480792365 +159.0,2.618005985874392 +160.0,3.004408244190503 +161.0,3.320210515530765 +162.0,2.874082027946672 +163.0,2.4514420167698 +164.0,2.6138740218146634 +165.0,2.8257342816563082 +166.0,2.5586172291232003 +167.0,3.417572782642705 +168.0,2.6943502292494355 +169.0,4.908817002972897 +170.0,2.53622866033423 +171.0,2.9694326530166286 +172.0,3.1851745477723465 +173.0,3.6045691823766117 +174.0,3.662472287115654 +175.0,2.6673880590311994 +176.0,2.6605935982578695 +177.0,2.441654395095478 +178.0,2.931705467608701 +179.0,2.5405044851124448 +180.0,2.689988984120313 +181.0,2.609281902605465 +182.0,2.6486028207817585 +183.0,2.80307959621946 +184.0,2.5095512280765457 +185.0,2.496806015920785 +186.0,2.8332871440419813 +187.0,3.406107171694812 +188.0,2.6093911311285227 +189.0,2.778608512814918 +190.0,2.517536408870391 +191.0,3.428420830595389 +192.0,2.9517499898368724 +193.0,3.2950894470689436 +194.0,3.1853619950688126 +195.0,2.6114201316361347 +196.0,2.411221040212976 +197.0,2.5852430103693926 +198.0,3.2693704144176645 +199.0,2.7708588953461364 +200.0,2.5360371053357285 +201.0,2.4795758711785423 +202.0,2.8146400759171497 +203.0,2.4457381312557174 +204.0,2.4143416113012743 +205.0,2.6909980130956397 +206.0,2.649549332330661 +207.0,2.5148373539273985 +208.0,3.0122932801041618 +209.0,3.0843940583134812 +210.0,2.419024698801961 +211.0,3.1730245753401607 +212.0,2.902350945000765 +213.0,2.4131588297104414 +214.0,2.6296906707493024 +215.0,2.567998072545971 +216.0,2.4154646856217448 +217.0,3.187840352862598 +218.0,2.444743606262386 +219.0,2.4090297859192447 +220.0,2.758274394761077 +221.0,2.483420153708067 +222.0,2.850373668437826 +223.0,2.6666086133102533 +224.0,2.640348077723854 +225.0,2.569071369910528 +226.0,2.4045927685510953 +227.0,2.5496787272729895 +228.0,2.4833675348463493 +229.0,2.514307291767588 +230.0,2.425560176351521 +231.0,3.442186415752245 +232.0,2.509696429979209 +233.0,2.4232545898187445 +234.0,2.486345821615385 +235.0,2.7669001099689368 +236.0,2.4430568023751973 +237.0,2.6538954034840856 +238.0,2.6834711729633565 +239.0,2.8730993348859832 +240.0,2.5749381221898737 +241.0,2.5207774465882062 +242.0,3.986223793809722 +243.0,2.5848946444972025 +244.0,2.517770334928138 +245.0,3.369592545961808 +246.0,2.909768196495268 +247.0,2.903388072756596 +248.0,2.442277743715834 +249.0,2.4675946901239145 +250.0,2.8612212252671423 +251.0,2.4242932567424513 +252.0,2.444550100392312 +253.0,3.295442936956375 +254.0,2.645706731684956 +255.0,2.5301405676187785 +256.0,2.428744779912745 +257.0,3.2132493546421115 +258.0,3.3877501028924093 +259.0,3.3363846270941586 +260.0,3.482461028953339 +261.0,2.408303580098499 +262.0,2.7406934078546796 +263.0,2.4525105687523023 +264.0,3.323082871555939 +265.0,2.4140999141689363 +266.0,3.161761647827259 +267.0,2.52368799726991 +268.0,2.6570085253896094 +269.0,2.493562339521165 +270.0,3.1442132121067514 +271.0,2.4718562851782817 +272.0,2.4955075375159392 +273.0,2.77215717925678 +274.0,2.732289573238095 +275.0,3.0840434671128936 +276.0,2.411992516019282 +277.0,3.0789743140578043 +278.0,2.639462194075079 +279.0,2.7250645282863095 +280.0,2.857206958771935 +281.0,2.573146415025521 +282.0,2.430841060989672 +283.0,2.6916996185436615 +284.0,2.6832072406220364 +285.0,2.8000237316012857 +286.0,2.5395235515455976 +287.0,2.502198909674804 +288.0,3.592664447627926 +289.0,2.77113297298252 +290.0,3.0348410189417745 +291.0,2.461547668109542 +292.0,2.484929068175844 +293.0,2.4814910831425467 +294.0,2.9211755627065275 +295.0,2.439991249938834 +296.0,2.4220884071933573 +297.0,2.4190812568131657 +298.0,2.902990391331006 +299.0,2.4390812660962453 +300.0,2.5117922740062943 +301.0,3.242808145839561 +302.0,2.528056836400738 +303.0,3.6166123538969583 +304.0,2.4505978186954755 +305.0,2.429315218311134 +306.0,4.1971747787831575 +307.0,2.549954040492753 +308.0,2.655423750232354 +309.0,2.4433843751746385 +310.0,2.5135355860018427 +311.0,2.5399989454845873 +312.0,2.704468409600674 +313.0,2.8189333590547605 +314.0,2.476017651821967 +315.0,2.5129206640351325 +316.0,2.4892903806407327 +317.0,2.4622515069759396 +318.0,2.57127091967662 +319.0,2.785781415394416 +320.0,2.455173448504514 +321.0,2.41386758365281 +322.0,2.4918641972443605 +323.0,2.8431461690040334 +324.0,2.930620899471354 +325.0,2.8843459234298803 +326.0,2.492831999804692 +327.0,2.4203737302598056 +328.0,2.46263169753442 +329.0,3.4565888554175226 +330.0,2.4013272641683203 +331.0,2.5633173648393495 +332.0,2.9621769579564328 +333.0,2.620804278404345 +334.0,3.4603339642339765 +335.0,2.7395419246106276 +336.0,3.9132788077162477 +337.0,2.4286815685927094 +338.0,2.656599304798654 +339.0,2.4149888533880417 +340.0,2.612158166476429 +341.0,2.4231139854963337 +342.0,2.7390349038478288 +343.0,2.5754162152077362 +344.0,3.434469189384033 +345.0,3.4012690200517373 +346.0,2.9072555052060434 +347.0,2.64695055489667 +348.0,2.6293612969782094 +349.0,2.7023601926308247 +350.0,2.66018568816833 +351.0,3.730043584756754 +352.0,3.004341061994902 +353.0,2.6272275490152808 +354.0,3.577270232679 +355.0,2.7264791013652365 +356.0,2.407144996197379 +357.0,2.6183660258367474 +358.0,2.4185767770177407 +359.0,2.4614068988086495 +360.0,2.590087326955253 +361.0,2.960210922041434 +362.0,2.42245390525554 +363.0,2.4152052726860807 +364.0,2.485797203777362 +365.0,3.1163633957983197 +366.0,2.4411916462508105 +367.0,3.2739617324121295 +368.0,2.5819187744941194 +369.0,2.923319344628789 +370.0,2.703269066810509 +371.0,2.9571614992734916 +372.0,2.5670606746630815 +373.0,2.419007151253525 +374.0,2.9336173124901794 +375.0,3.0946080885498644 +376.0,2.470289055727852 +377.0,2.883493847928137 +378.0,2.7584262346430983 +379.0,2.6101519376375064 +380.0,2.882339955405837 +381.0,2.7052721967271727 +382.0,2.496444179215226 +383.0,2.6046129843985155 +384.0,3.74123367774739 +385.0,2.5929927085594344 +386.0,2.4781354943366742 +387.0,2.457197356112292 +388.0,2.4883145533547304 +389.0,3.560432236875605 +390.0,2.5073702683630845 +391.0,2.516953070137717 +392.0,2.4592274543919226 +393.0,2.927421902155487 +394.0,2.4458420210299425 +395.0,2.4108549123125247 +396.0,2.49283399727769 +397.0,2.6148785115789464 +398.0,2.790617636543927 +399.0,2.7321615792058904 +400.0,2.490642546560052 +401.0,2.4622053772583072 +402.0,2.611581153733529 +403.0,2.511265717082754 +404.0,2.8126321395305975 +405.0,2.583903104892777 +406.0,2.7430719077114323 +407.0,2.834982601657316 +408.0,2.496955613845981 +409.0,2.861343008065892 +410.0,3.1134608639251633 +411.0,3.1080482566870877 +412.0,2.8063993789467085 +413.0,3.2312072699679573 +414.0,3.2978726886263217 +415.0,2.781951133361288 +416.0,2.64122331169101 +417.0,2.5894173514282954 +418.0,2.6025803986255784 +419.0,2.5344930675552644 +420.0,2.9326360231209017 +421.0,3.0180884311483456 +422.0,2.467215531621529 +423.0,2.829502098324171 +424.0,2.947851981576312 +425.0,2.6515670726172935 +426.0,2.663529172981521 +427.0,2.4784655239679854 +428.0,2.9758351187349525 +429.0,2.4585691170282518 +430.0,2.9344726023668066 +431.0,3.301950329186261 +432.0,2.710434839260153 +433.0,2.4086016961843875 +434.0,3.0008804341521533 +435.0,2.600363371239241 +436.0,2.7694956930444063 +437.0,2.9545258696406687 +438.0,2.540776151128972 +439.0,2.6720260667098907 +440.0,2.4642184526963664 +441.0,2.6505266356903516 +442.0,2.9992884493334007 +443.0,2.447705417355385 +444.0,2.5742352890811757 +445.0,2.4980822586836147 +446.0,2.526272016326327 +447.0,2.6347291408617375 +448.0,2.8369348617018235 +449.0,2.8466088140152275 +450.0,2.4139113351169357 +451.0,2.5364325262776237 +452.0,2.81005453577635 +453.0,2.480045780995575 +454.0,2.604220443457459 +455.0,2.7426812301443997 +456.0,2.855567623416718 +457.0,2.7575061973417836 +458.0,2.472547588676722 +459.0,3.307419139148111 +460.0,2.4501722697695127 +461.0,3.0918046617624304 +462.0,2.4886260990862374 +463.0,2.8308386351948336 +464.0,2.4991415993925368 +465.0,2.9920445053199476 +466.0,3.8097356767829442 +467.0,3.432311709011893 +468.0,2.646243224362149 +469.0,2.419226441984272 +470.0,2.9356424355833326 +471.0,2.6414141871188095 +472.0,2.587663019094857 +473.0,3.429789183722825 +474.0,2.577257512110053 +475.0,2.728815587669389 +476.0,2.403601230025014 +477.0,2.498189184806377 +478.0,2.4762806911777395 +479.0,2.5713982650591243 +480.0,3.3750117585625508 +481.0,2.6680582095401975 +482.0,2.64268269002638 +483.0,2.69802558899857 +484.0,3.496247441988287 +485.0,2.465568040631057 +486.0,2.483626070667874 +487.0,2.5016328749299594 +488.0,3.0435496801269393 +489.0,2.5041227370461963 +490.0,2.4703086578599183 +491.0,2.497526163183422 +492.0,2.4176209206618444 +493.0,2.724066777830825 +494.0,2.5935272570466337 +495.0,2.6570461565364285 +496.0,2.477957166801886 +497.0,2.688247495556789 +498.0,2.4485956865857164 +499.0,2.641517367971653 +500.0,2.542933617330439 +501.0,2.6662195551832077 +502.0,2.6604579183841404 +503.0,2.8283134049958423 +504.0,2.4227205395285125 +505.0,2.5907298598927238 +506.0,2.9343184387121504 +507.0,2.427582550057923 +508.0,2.5997706468797768 +509.0,3.4650068049610265 +510.0,2.4178767764478506 +511.0,2.5201967037835193 +512.0,2.752985014656624 +513.0,2.569556435838974 +514.0,3.142909817934392 +515.0,2.8797877854446865 +516.0,2.7224740685038964 +517.0,2.4678110197042926 +518.0,3.4025701286890415 +519.0,2.642875393971051 +520.0,2.5375794518657413 +521.0,2.4267682694339774 +522.0,2.4348114040811217 +523.0,2.6959281645233695 +524.0,2.5393531084965066 +525.0,2.5354586165509847 +526.0,3.9241866541818085 +527.0,2.4934619228763646 +528.0,3.4512733989936075 +529.0,2.70362974877368 +530.0,2.780049079755628 +531.0,2.901351694902226 +532.0,2.829171251838287 +533.0,2.6262960372520006 +534.0,3.0010972948972716 +535.0,2.699938429054783 +536.0,3.68318045020472 +537.0,2.620606329778853 +538.0,2.4849800906874355 +539.0,2.44717470951136 +540.0,3.2753987230111523 +541.0,3.8032402373141014 +542.0,2.657052496761278 +543.0,2.6819994503613525 +544.0,2.4576668273196636 +545.0,3.66858921983986 +546.0,2.650565706764894 +547.0,2.5016934067693537 +548.0,2.7723255197648635 +549.0,2.81337100047837 +550.0,2.4371416922513527 +551.0,2.4782605547716923 +552.0,3.3202286377491323 +553.0,2.8231289820727494 +554.0,2.406415889653229 +555.0,2.6536647386081382 +556.0,2.956830730741822 +557.0,2.5262151465860074 +558.0,3.22515779428914 +559.0,2.6979229062158416 +560.0,2.43018522209383 +561.0,2.777336825192104 +562.0,3.2305024936534137 +563.0,2.5111368397468135 +564.0,3.2149770569142895 +565.0,2.6502691870025967 +566.0,2.490107065836144 +567.0,2.4011699706745597 +568.0,2.779153117229374 +569.0,2.417689858332386 +570.0,2.4907306767416673 +571.0,2.552197854496371 +572.0,3.002609786319302 +573.0,2.6729524575728716 +574.0,2.5645197143586302 +575.0,2.636865345789563 +576.0,2.591507159922582 +577.0,2.869500976310931 +578.0,3.0066453591085143 +579.0,2.7335753877092 +580.0,2.780121865479599 +581.0,2.671397015156205 +582.0,3.0982302248186127 +583.0,2.4680104817606248 +584.0,2.9599210913181477 +585.0,2.495278784631551 +586.0,2.6262315796551405 +587.0,3.762968642797448 +588.0,2.6380640629592955 +589.0,3.391468340581913 +590.0,2.6458839345696608 +591.0,2.4287377232295118 +592.0,2.4996549957278837 +593.0,2.764244656436377 +594.0,3.5019432948225067 +595.0,2.4413683513106808 +596.0,2.6334859575566503 +597.0,2.7613071907190165 +598.0,2.445088663252296 +599.0,2.7541430393160584 +600.0,2.5905705495005407 +601.0,2.5093135547523193 +602.0,2.5883604066042603 +603.0,2.6938887068548887 +604.0,2.6946405837553087 +605.0,2.5024853414886965 +606.0,2.5230404331541516 +607.0,2.5990975858291736 +608.0,2.486624722727849 +609.0,2.4310539112399465 +610.0,2.646543033890836 +611.0,2.4427880238489217 +612.0,2.5341584077335297 +613.0,2.960532570649188 +614.0,2.869302260291092 +615.0,2.9213420130098076 +616.0,2.402936916601422 +617.0,2.844977674664259 +618.0,2.4241280489773027 +619.0,2.4235175784500416 +620.0,2.4018202974086353 +621.0,3.2877685940077956 +622.0,2.4862702071307163 +623.0,2.8245966943859737 +624.0,2.553533011832711 +625.0,2.7876041575208443 +626.0,2.4829830579648573 +627.0,3.177124862350618 +628.0,3.4474717695576027 +629.0,2.4606519030838077 +630.0,2.741285632227332 +631.0,2.835494664021147 +632.0,4.426027517972086 +633.0,2.8670932864861745 +634.0,2.9119256394396102 +635.0,2.594045523436854 +636.0,2.7957101206046224 +637.0,2.8397455447544107 +638.0,3.352893874139036 +639.0,2.473376395535307 +640.0,2.469845637095634 +641.0,2.4834554092659182 +642.0,2.436533997867209 +643.0,2.589470547694868 +644.0,2.5929126479365734 +645.0,2.6410323271794236 +646.0,2.6133562062826896 +647.0,2.4067645874046635 +648.0,2.531931415506741 +649.0,2.652701946756629 +650.0,2.796984787207422 +651.0,2.4530328760152185 +652.0,2.9766099447023526 +653.0,2.588603539910105 +654.0,2.418368914574374 +655.0,2.861871265684355 +656.0,2.7970472779918163 +657.0,2.5045859740628558 +658.0,2.590909900282468 +659.0,2.7410563780226167 +660.0,2.782923897162434 +661.0,2.716607435217531 +662.0,3.1339509674856387 +663.0,2.4794478986928623 +664.0,2.8683166781695957 +665.0,2.978581353796372 +666.0,3.4220058496712387 +667.0,2.681780412735564 +668.0,3.191602974591058 +669.0,2.4671333882228557 +670.0,2.5559615939254083 +671.0,2.7344503938261107 +672.0,3.1253512252913973 +673.0,2.4250026791251638 +674.0,2.645434539586379 +675.0,3.3200724331093348 +676.0,3.2897527213699327 +677.0,2.678035835138439 +678.0,2.855928969869972 +679.0,2.9751326645192013 +680.0,2.7047086942877474 +681.0,2.6694292479457427 +682.0,2.4477012704096213 +683.0,3.104802222466794 +684.0,3.1653956512966515 +685.0,2.5321928481724876 +686.0,2.697750433479842 +687.0,2.934015121888449 +688.0,3.166364527562539 +689.0,2.4932764178531484 +690.0,2.458609502774869 +691.0,2.624258559654299 +692.0,2.6226342380891725 +693.0,2.6049052443422305 +694.0,2.577403013985637 +695.0,3.0517114933805267 +696.0,2.4345456465080675 +697.0,2.8797224470589735 +698.0,3.2710081053853126 +699.0,3.135616060173719 +700.0,2.4942196038323674 +701.0,2.4075813619534085 +702.0,2.59637827928667 +703.0,3.2119636465418187 +704.0,2.5841834770192635 +705.0,2.775799603845767 +706.0,2.791744679622192 +707.0,2.9636864577588384 +708.0,2.869330772949599 +709.0,2.445060999970623 +710.0,3.080679165858262 +711.0,3.413596599679563 +712.0,2.658847912020356 +713.0,2.4457253935434933 +714.0,2.4221177994707643 +715.0,2.5954414093718867 +716.0,2.4847579622247213 +717.0,2.5695016215319852 +718.0,2.4679692528655277 +719.0,2.4479457977609087 +720.0,2.4499839476170915 +721.0,2.663515472839866 +722.0,2.5045445254527228 +723.0,2.5589655827519255 +724.0,2.5246973123239678 +725.0,2.4948465129730995 +726.0,2.734808719427863 +727.0,2.6097433312855824 +728.0,2.4484117972209063 +729.0,2.9235346629677688 +730.0,2.4525063190227336 +731.0,3.420514135169425 +732.0,2.6249679700251005 +733.0,2.494894294871641 +734.0,2.500268397529603 +735.0,2.5208345377622643 +736.0,3.3903463015606965 +737.0,3.5938065108178794 +738.0,2.5172262174740614 +739.0,2.9762023758987795 +740.0,2.9294447273790785 +741.0,2.6076557846376685 +742.0,3.253092299949836 +743.0,3.176105504361388 +744.0,2.466290295336389 +745.0,2.452886401944667 +746.0,2.5207481509653595 +747.0,2.7009983682941607 +748.0,2.477944400236195 +749.0,2.595713847936481 +750.0,2.592440063882676 +751.0,2.963046966542843 +752.0,2.842699879938185 +753.0,3.077700429300644 +754.0,2.4647176479144255 +755.0,3.154477092030095 +756.0,2.7968761305864054 +757.0,2.4694403269072898 +758.0,2.525549036650262 +759.0,2.4343536252335123 +760.0,3.306458645497637 +761.0,2.9411709596631113 +762.0,2.751276291364706 +763.0,2.5709543025449952 +764.0,3.094213506738636 +765.0,2.8567063550550875 +766.0,2.5473075865006702 +767.0,2.48866870391832 +768.0,2.762556123608498 +769.0,2.6867584820898274 +770.0,2.522878757168225 +771.0,3.642754888236909 +772.0,2.6330053147222507 +773.0,3.113245212443709 +774.0,2.4224188701137734 +775.0,2.4808141241585417 +776.0,3.3257931575545503 +777.0,2.4727512018589257 +778.0,3.0397310923257015 +779.0,2.441200026597269 +780.0,2.5604147122562733 +781.0,2.50129299472173 +782.0,3.680303278892001 +783.0,3.371746493092821 +784.0,2.873196908353969 +785.0,3.4277501737694145 +786.0,2.5828412463167894 +787.0,4.2451080373789525 +788.0,2.7830639303180353 +789.0,2.4277589221284077 +790.0,3.4788832317882328 +791.0,3.2452329824655877 +792.0,3.0459629680803384 +793.0,2.4098567182253703 +794.0,2.6623202797616954 +795.0,3.2157323382299103 +796.0,3.2640331372852653 +797.0,2.9716310934662036 +798.0,2.5753109436743755 +799.0,2.7581499573763892 +800.0,3.282941542770096 +801.0,3.348891719314844 +802.0,2.656202103147974 +803.0,4.04897529651011 +804.0,4.084648367364164 +805.0,2.6686912434265384 +806.0,2.7639628847309154 +807.0,2.740007505586342 +808.0,2.6863587579163988 +809.0,2.5407837708863026 +810.0,2.7269277418829536 +811.0,2.973975297280784 +812.0,2.7100802940681525 +813.0,2.4779686038989843 +814.0,2.4048286877123615 +815.0,2.4893685528977505 +816.0,2.835726051579394 +817.0,3.0577291844730112 +818.0,2.755157621521838 +819.0,2.506004646334653 +820.0,2.6379207019915203 +821.0,3.5852275974608583 +822.0,2.8737913636714842 +823.0,3.0423491203599102 +824.0,2.8846233800155083 +825.0,4.416890971133086 +826.0,2.664073429374059 +827.0,2.5718486226153017 +828.0,2.617171715046359 +829.0,2.4873888074624406 +830.0,2.867060635757464 +831.0,2.561678609232453 +832.0,2.6034799118770966 +833.0,3.6300574941737853 +834.0,2.5361843487110045 +835.0,2.521040897824742 +836.0,2.7339432066230076 +837.0,2.553856313980189 +838.0,2.4827372236061516 +839.0,3.24278817999432 +840.0,2.699324798502115 +841.0,3.4629629341556063 +842.0,2.952953837798974 +843.0,2.592969251106724 +844.0,2.4480828144244926 +845.0,2.60226418046945 +846.0,2.4691057474323665 +847.0,2.796007215237654 +848.0,2.6929615293336617 +849.0,2.5241947194794965 +850.0,2.786323320275717 +851.0,3.5147488632610124 +852.0,2.702069494912722 +853.0,2.5351296322780277 +854.0,2.4499865089319064 +855.0,2.4381932294698867 +856.0,2.40160574938766 +857.0,2.5328218700053267 +858.0,3.2305991704447914 +859.0,2.4146351790769844 +860.0,2.571102146364584 +861.0,3.302551133610453 +862.0,3.3724943514229917 +863.0,3.5081592761196703 +864.0,2.9290163800240148 +865.0,2.4466958369216685 +866.0,2.7067446767240826 +867.0,2.4391306091828846 +868.0,3.7588554604541926 +869.0,3.680079990276531 +870.0,2.4068594843797717 +871.0,2.48265652143529 +872.0,3.2938540216361396 +873.0,2.504506257453205 +874.0,2.4301463970561232 +875.0,2.819459192600386 +876.0,2.731188171911891 +877.0,2.4364175787866342 +878.0,3.18607596731008 +879.0,2.4591567043666624 +880.0,2.4564722229625513 +881.0,2.451643604817881 +882.0,2.715149536057302 +883.0,2.5179017459390445 +884.0,2.6749128102244115 +885.0,2.6826741122337348 +886.0,2.587071347355368 +887.0,2.8293935975886035 +888.0,2.4984522412542605 +889.0,2.6027913571782295 +890.0,2.816186636419029 +891.0,2.424987375288718 +892.0,4.23257454482343 +893.0,2.9222960724677383 +894.0,3.1082882753576384 +895.0,2.4150647124883187 +896.0,2.407720572493876 +897.0,2.595597522998919 +898.0,3.349837807244581 +899.0,2.535334676537169 +900.0,2.6307546898001077 +901.0,2.5692748164464945 +902.0,3.1269489348523924 +903.0,2.4189407596432386 +904.0,3.233936952791603 +905.0,3.9847702537831404 +906.0,3.1282201741388787 +907.0,2.842137572786245 +908.0,2.611262326607415 +909.0,2.4292925002605945 +910.0,3.0201192904768837 +911.0,3.1445141032819706 +912.0,2.49848655414746 +913.0,2.6369520111632894 +914.0,2.9922165446863964 +915.0,2.4736555555011006 +916.0,2.7909371521759745 +917.0,3.2579241849335636 +918.0,3.0258765795380906 +919.0,2.9157464429411446 +920.0,2.798698919264548 +921.0,2.8293390122411273 +922.0,2.569502025901925 +923.0,2.444288884814106 +924.0,2.4555532281548333 +925.0,2.476569929636923 +926.0,2.6233360791870535 +927.0,2.9564470063962967 +928.0,3.1664076356019026 +929.0,2.4984591017771085 +930.0,2.7884301129589595 +931.0,2.5469999103097294 +932.0,2.6364883427830366 +933.0,2.4524060137194463 +934.0,2.4163719038174793 +935.0,2.6137185441085546 +936.0,2.4956366173186195 +937.0,2.6167989177222295 +938.0,2.7765030910549577 +939.0,3.374714354319878 +940.0,2.728966443970388 +941.0,2.5516354851918495 +942.0,2.585527122150894 +943.0,3.080398971583328 +944.0,2.617531211211306 +945.0,2.621916593036477 +946.0,2.8606610561374213 +947.0,2.604396326824142 +948.0,2.9856968665036154 +949.0,3.0282045618674367 +950.0,4.110399012373658 +951.0,2.431423767248897 +952.0,2.8997788822946156 +953.0,2.4545447739813735 +954.0,2.484373983592843 +955.0,2.8387752297998743 +956.0,2.4062905434465987 +957.0,2.7894403296452124 +958.0,2.659179892271671 +959.0,2.610702625208492 +960.0,3.173703887357444 +961.0,2.653392840264069 +962.0,2.755800234213704 +963.0,2.5918528700212478 +964.0,2.443774570170358 +965.0,2.524626216583618 +966.0,2.447389514174547 +967.0,3.4300033866393953 +968.0,3.2987964197195963 +969.0,2.908069168513956 +970.0,2.4887055925169115 +971.0,2.601493251845123 +972.0,3.027173630304543 +973.0,3.7454136099229776 +974.0,3.148886493226242 +975.0,2.6166350916688614 +976.0,2.425801553171967 +977.0,2.4060480040978947 +978.0,2.961560247423611 +979.0,5.182804979277866 +980.0,2.684448544014226 +981.0,3.084799469451203 +982.0,3.188595703859187 +983.0,2.738738028918899 +984.0,2.5205686507346168 +985.0,2.917129509037826 +986.0,2.6415926739215054 +987.0,2.4339545825237248 +988.0,2.5778422204758007 +989.0,2.4382379254327646 +990.0,2.78743418097688 +991.0,3.7845071993690125 +992.0,2.4963860486328397 +993.0,2.637269458845511 +994.0,3.331009699895963 +995.0,3.632686301661181 +996.0,2.4256851101582746 +997.0,2.9566553668542657 +998.0,2.4319997488820473 +999.0,2.5079496335490488 +1000.0,2.5521832245171105 +1001.0,2.5273760863809556 +1002.0,2.7354856925805437 +1003.0,2.6172035263619637 +1004.0,2.699939227141541 +1005.0,2.563359343602179 +1006.0,3.0287087778317727 +1007.0,3.717806730231352 +1008.0,2.529825266937741 +1009.0,2.55227765242351 +1010.0,2.759225507126692 +1011.0,3.0816564809168314 +1012.0,2.820052618086813 +1013.0,2.513857729125419 +1014.0,2.9475997055240377 +1015.0,3.312309874106198 +1016.0,3.0015895684918776 +1017.0,2.408981607518304 +1018.0,2.557031448057308 +1019.0,2.542497168670367 +1020.0,2.4016591819043747 +1021.0,2.7795882396153284 +1022.0,2.538261570047773 +1023.0,3.09191175170098 +1024.0,2.673567533243868 +1025.0,2.6734538462079103 +1026.0,2.801058427487018 +1027.0,2.4203853297657054 +1028.0,2.577408897868582 +1029.0,2.6416598453652966 +1030.0,2.43227711249043 +1031.0,2.728689417462033 +1032.0,3.013303410652904 +1033.0,3.452757357033711 +1034.0,2.4111544000720646 +1035.0,2.503235034474602 +1036.0,2.563282527820173 +1037.0,2.7500044376039177 +1038.0,3.0385023321191973 +1039.0,2.447804380121676 +1040.0,3.0544128915308892 +1041.0,3.3211689912998845 +1042.0,2.7648006762313697 +1043.0,2.8299453461122566 +1044.0,2.472184489716051 +1045.0,2.4924920369549306 +1046.0,3.269389876240977 +1047.0,3.224064987855697 +1048.0,2.5976394742132634 +1049.0,2.402740400469026 +1050.0,3.7762975724051193 +1051.0,2.5049353823071234 +1052.0,2.661727984222834 +1053.0,2.5525868732682095 +1054.0,2.5569177179919547 +1055.0,2.53798625543317 +1056.0,3.2962820774137183 +1057.0,3.268433771418654 +1058.0,2.7974686609434416 +1059.0,2.6793923317978097 +1060.0,2.515168450343453 +1061.0,2.547811064708429 +1062.0,2.8232304124738157 +1063.0,2.4832067243715064 +1064.0,2.4522084623820293 +1065.0,2.4539880065071165 +1066.0,2.6583165053003346 +1067.0,2.8254229181388397 +1068.0,2.660457423544667 +1069.0,2.456154903539821 +1070.0,3.743008829927008 +1071.0,5.505107707862944 +1072.0,3.7493078852258632 +1073.0,2.5689592450326533 +1074.0,3.120379501022757 +1075.0,2.8906337140913756 +1076.0,3.422212091841316 +1077.0,4.499252188595913 +1078.0,2.8128457978230594 +1079.0,3.0743529254999657 +1080.0,3.2578625576549247 +1081.0,2.751702764129288 +1082.0,3.6961769714759907 +1083.0,4.309004555812555 +1084.0,6.59886656215188 +1085.0,4.732080902381243 +1086.0,3.7706657976694204 +1087.0,6.735676891563767 +1088.0,2.988047443697367 +1089.0,3.8484186395648505 +1090.0,2.6601333431405587 +1091.0,2.5122614785649513 +1092.0,3.889917751382434 +1093.0,2.733116925171525 +1094.0,4.476974634313059 +1095.0,2.7202485323985552 +1096.0,3.3223931346274673 +1097.0,2.873830725282692 +1098.0,5.585353349469718 +1099.0,3.18639170560833 +1100.0,3.8631280935151695 +1101.0,5.352293481812304 +1102.0,2.8357479786550206 +1103.0,2.7549019985045224 +1104.0,5.485135715453609 +1105.0,4.938473119851984 +1106.0,3.7154928628881514 +1107.0,3.7458105181048085 +1108.0,4.381729995803333 +1109.0,4.003298183543516 +1110.0,2.6583311306924995 +1111.0,4.057896487435323 +1112.0,2.6870699930357755 +1113.0,2.659862090978024 +1114.0,3.41641883455257 +1115.0,3.3935587613615805 +1116.0,2.583744962505898 +1117.0,2.659064245037664 +1118.0,5.365879126037166 +1119.0,4.04787689984673 +1120.0,5.823918820368947 +1121.0,3.429472416775779 +1122.0,3.5038224103458635 +1123.0,3.1829434291039354 +1124.0,5.745644631266254 +1125.0,3.6436302225008617 +1126.0,3.887958003116549 +1127.0,2.513437523995064 +1128.0,3.5106801575027204 +1129.0,6.3656822005913085 +1130.0,2.8845982818131857 +1131.0,2.4667490715540077 +1132.0,2.6389226869255467 +1133.0,3.082165990243515 +1134.0,2.5008891248351888 +1135.0,2.6535876678685346 +1136.0,2.4191106198343664 +1137.0,2.5899458045511388 +1138.0,2.635680885957479 +1139.0,3.9773457232196927 +1140.0,2.451514642369296 +1141.0,3.389393764471527 +1142.0,2.747646033163273 +1143.0,2.63715452629581 +1144.0,2.685192647162131 +1145.0,2.4040908458328243 +1146.0,2.641023910456963 +1147.0,2.6139100474134986 +1148.0,2.455993501306898 +1149.0,2.6032835177272546 +1150.0,2.716477674015607 +1151.0,2.5696515532359596 +1152.0,2.6454054979863253 +1153.0,2.405304103671909 +1154.0,2.4727468176492704 +1155.0,2.592010531592073 +1156.0,2.6100443711660786 +1157.0,2.588787799516312 +1158.0,2.41212426089335 +1159.0,2.7388859526106613 +1160.0,2.55199758950342 +1161.0,2.9571822783851935 +1162.0,3.366578905130088 +1163.0,2.5342274816918673 +1164.0,3.1291273930236363 +1165.0,2.688365085679987 +1166.0,2.453384484788438 +1167.0,4.64338577467376 +1168.0,2.7062154325891594 +1169.0,2.5136390637597064 +1170.0,2.5423692048870006 +1171.0,2.570691370298407 +1172.0,2.570791902268201 +1173.0,2.4202494407900392 +1174.0,2.4639949453470593 +1175.0,2.4051881623128937 +1176.0,3.542893582686093 +1177.0,2.892668513530926 +1178.0,2.7289026269470873 +1179.0,2.4112708021439704 +1180.0,2.753539645804988 +1181.0,2.4104764911459102 +1182.0,3.362182173426911 +1183.0,3.568013985384815 +1184.0,2.439071486105749 +1185.0,2.4037225294175166 +1186.0,2.5031574680052215 +1187.0,3.1044328392203755 +1188.0,2.4444489447243147 +1189.0,2.5508832025257773 +1190.0,3.0666541161564536 +1191.0,2.555453573890029 +1192.0,2.546741589976918 +1193.0,2.7912461921314047 +1194.0,2.573982321758371 +1195.0,2.589905006857729 +1196.0,3.0303019134503932 +1197.0,2.451022168432761 +1198.0,2.6071871000678595 +1199.0,2.555036690753049 +1200.0,2.6586332395393217 +1201.0,3.2060314704098363 +1202.0,2.472031049287563 +1203.0,3.3077996067732043 +1204.0,2.6997517003216878 +1205.0,2.751825199737872 +1206.0,2.633573487261364 +1207.0,2.506172800737491 +1208.0,2.41388135151146 +1209.0,2.9003439367352604 +1210.0,2.6698903071663542 +1211.0,2.6814298090685247 +1212.0,2.6337816799937603 +1213.0,2.8042498306729 +1214.0,2.5187198097125565 +1215.0,2.558091245174878 +1216.0,2.6816707625009797 +1217.0,2.801000481238606 +1218.0,2.6013856552724897 +1219.0,2.9786607042217517 +1220.0,2.5061437909293316 +1221.0,2.602138641206445 +1222.0,2.45845591306417 +1223.0,4.783586480122741 +1224.0,2.7390446826413344 +1225.0,3.0616440360615433 +1226.0,2.9583522166955265 +1227.0,2.4758244829461584 +1228.0,2.7713472095281513 +1229.0,3.0736820098333677 +1230.0,2.410223482293431 +1231.0,2.794768209806141 +1232.0,2.54839409206367 +1233.0,2.5997402880210174 +1234.0,2.420830730710383 +1235.0,2.6779987148443447 +1236.0,2.876350348957042 +1237.0,4.198168727339889 +1238.0,2.470151848711333 +1239.0,3.0181055694834376 +1240.0,2.4607563948801254 +1241.0,2.8271256491218892 +1242.0,2.5498485626920946 +1243.0,2.4393576020547525 +1244.0,3.2915148441747486 +1245.0,2.6267590007297987 +1246.0,2.4395525504373174 +1247.0,2.9746983188600695 +1248.0,2.4920470589312242 +1249.0,2.464826518284449 +1250.0,2.9877790347261266 +1251.0,2.457243095221572 +1252.0,2.4340195933134186 +1253.0,2.5796260691373987 +1254.0,2.7559411326424024 +1255.0,2.9706702738387554 +1256.0,2.4818394626884057 +1257.0,2.4154050027406795 +1258.0,2.6662020177750563 +1259.0,2.6006925012411646 +1260.0,2.5486825623898977 +1261.0,2.845774388577965 +1262.0,2.521014432482751 +1263.0,3.6817389827579676 +1264.0,2.7026247576610896 +1265.0,2.6386695348013927 +1266.0,2.5058415289255316 +1267.0,2.5686500614554384 +1268.0,2.409318256531831 +1269.0,2.5818737692469518 +1270.0,2.7987662870961234 +1271.0,2.991091145023098 +1272.0,2.501356331877817 +1273.0,2.4139921364923733 +1274.0,2.459474284757675 +1275.0,2.415767662716078 +1276.0,2.8586532612577593 +1277.0,2.5127914219021523 +1278.0,3.0551978241069975 +1279.0,2.4862163381724685 +1280.0,2.572025856129731 +1281.0,2.526517254501286 +1282.0,2.591795724308834 +1283.0,3.438076540978339 +1284.0,2.42810826777617 +1285.0,2.8842359279799052 +1286.0,3.4191503154040355 +1287.0,2.7102661949265654 +1288.0,2.5718861536689763 +1289.0,2.4737759172425795 +1290.0,3.2805306391220417 +1291.0,2.4069106183165414 +1292.0,3.3212322951470297 +1293.0,2.5462490487508296 +1294.0,2.7001016699024074 +1295.0,2.7654988953556257 +1296.0,2.6185189970042306 +1297.0,3.3997510126872155 +1298.0,2.495418477348455 +1299.0,2.5201494035515 +1300.0,2.5087873822305253 +1301.0,2.9760103133635742 +1302.0,2.693119239644627 +1303.0,2.6565997541080666 +1304.0,3.110565569784356 +1305.0,3.2081664316712515 +1306.0,2.5084442860170286 +1307.0,2.4340093952136836 +1308.0,3.4033745882639757 +1309.0,2.4006146602707106 +1310.0,3.137416507876446 +1311.0,2.4428833946087063 +1312.0,2.630184787646489 +1313.0,3.1497160184271284 +1314.0,2.7708612733537312 +1315.0,2.668208459650926 +1316.0,2.5552000598222975 +1317.0,2.757196347904845 +1318.0,3.3773160607910375 +1319.0,2.4829013496874213 +1320.0,2.51167891133882 +1321.0,2.871290549811821 +1322.0,2.6333595153498752 +1323.0,2.980085472896908 +1324.0,2.4063386601920107 +1325.0,2.4865088459112084 +1326.0,2.4101189128784446 +1327.0,3.0652218978856927 +1328.0,3.0666879396686104 +1329.0,2.4283837475360115 +1330.0,2.6253358573430883 +1331.0,2.8591909529769666 +1332.0,2.4224585261992586 +1333.0,3.0117635981109756 +1334.0,2.7323409293298013 +1335.0,2.798876410643875 +1336.0,2.403471625333211 +1337.0,2.415377228717809 +1338.0,3.6436324448831536 +1339.0,2.8212520395602376 +1340.0,2.5587739782237007 +1341.0,2.4626662614150594 +1342.0,2.4209245070594605 +1343.0,2.4593531153865067 +1344.0,2.4167704614762835 +1345.0,2.4434891755529478 +1346.0,2.492715586011383 +1347.0,2.5350451370963407 +1348.0,2.566977251607258 +1349.0,3.1567387453136826 +1350.0,2.966135621395323 +1351.0,3.0086917495441154 +1352.0,2.6756150144876867 +1353.0,2.464896907400025 +1354.0,2.459801692607365 +1355.0,2.6351552789676034 +1356.0,2.546950742607302 +1357.0,2.8025476326826113 +1358.0,2.411690916500539 +1359.0,2.6546850445971155 +1360.0,2.675705606034342 +1361.0,2.438394235204809 +1362.0,2.402194890676542 +1363.0,3.452525172010458 +1364.0,2.535533602729143 +1365.0,3.166861782172906 +1366.0,2.6468698618737325 +1367.0,3.3620540286608023 +1368.0,2.7636007055643037 +1369.0,2.4412705316457006 +1370.0,2.509408312189954 +1371.0,2.69950295675435 +1372.0,2.765720706450558 +1373.0,2.4373522440949595 +1374.0,2.552466620759565 +1375.0,2.5276974923223507 +1376.0,2.872711211885945 +1377.0,2.6019691305494415 +1378.0,2.5456404407439113 +1379.0,2.638387956337715 +1380.0,3.0544766544712982 +1381.0,2.5939483469023816 +1382.0,3.029265986748802 +1383.0,2.745425319710113 +1384.0,2.6997676870353153 +1385.0,2.676921838083328 +1386.0,2.742869632236569 +1387.0,2.4819173062712947 +1388.0,2.4034744012316356 +1389.0,2.7441839085276722 +1390.0,3.187874016604484 +1391.0,2.64802860089344 +1392.0,2.481278518652963 +1393.0,2.6055712262784536 +1394.0,2.4117994651732904 +1395.0,2.9151061831707867 +1396.0,2.5842869028498185 +1397.0,2.7995874247198147 +1398.0,2.571050409525029 +1399.0,2.507068898364125 +1400.0,2.4070514726614376 +1401.0,2.659776750059258 +1402.0,2.4064665649657027 +1403.0,3.426150095883443 +1404.0,2.4040527534157285 +1405.0,3.073298563363536 +1406.0,2.440808531215762 +1407.0,2.5072681017856637 +1408.0,2.441457371271962 +1409.0,3.0083845926539623 +1410.0,2.9032031473210207 +1411.0,2.72350542168922 +1412.0,2.424222740023235 +1413.0,2.4131581853363984 +1414.0,2.4810010265682028 +1415.0,2.5644665042424792 +1416.0,2.5085072873179515 +1417.0,2.7595902904630756 +1418.0,2.671124990561967 +1419.0,2.7032484112661246 +1420.0,2.409117573647342 +1421.0,2.7037387757360345 +1422.0,2.557392773894016 +1423.0,2.40204998223122 +1424.0,2.496209650556227 +1425.0,2.6119598448076897 +1426.0,2.5859038450644505 +1427.0,3.587895204165264 +1428.0,3.0985985201139936 +1429.0,2.6162231626838275 +1430.0,2.507158201103015 +1431.0,2.537708489900189 +1432.0,3.099184904238071 +1433.0,2.40016394483473 +1434.0,3.2294131132648918 +1435.0,2.574510125528007 +1436.0,2.5459057181862246 +1437.0,3.3652541044113673 +1438.0,2.6267018530344783 +1439.0,2.4879516941871884 +1440.0,2.456802893520073 +1441.0,2.9600926147757347 +1442.0,3.057297642643703 +1443.0,2.651038688377722 +1444.0,2.4024587951505936 +1445.0,2.417521627286065 +1446.0,3.367042386580296 +1447.0,3.1686977924832336 +1448.0,2.590691571766427 +1449.0,2.6292555758569534 +1450.0,2.4099424347915233 +1451.0,2.5596139357095593 +1452.0,2.753343383210544 +1453.0,2.708529240079644 +1454.0,3.0139531815333482 +1455.0,2.597013894750708 +1456.0,3.7356710710308985 +1457.0,2.9279300189701805 +1458.0,2.5351529408643443 +1459.0,3.168536156090317 +1460.0,2.5621873248698184 +1461.0,2.4119096714371526 +1462.0,2.609319954356092 +1463.0,2.538639058096121 +1464.0,2.4027513185766822 +1465.0,2.7536221563017538 +1466.0,3.1796254054250093 +1467.0,2.656706656470354 +1468.0,3.2150033345439217 +1469.0,2.5180028740367466 +1470.0,3.2841163534732747 +1471.0,2.453335751572322 +1472.0,2.649344121348625 +1473.0,2.9449023776936625 +1474.0,2.590197161042501 +1475.0,2.925222283239256 +1476.0,3.608477398543692 +1477.0,2.788189327291861 +1478.0,2.510287609961226 +1479.0,2.734088011311471 +1480.0,2.5507199307597204 +1481.0,2.44835830456043 +1482.0,2.582661729229461 +1483.0,2.4331999261324526 +1484.0,2.765853851452803 +1485.0,2.4406064824260096 +1486.0,2.789315835524578 +1487.0,3.2125552489366234 +1488.0,2.728161415508721 +1489.0,3.5482733550256884 +1490.0,2.831279921115478 +1491.0,2.4994689759729813 +1492.0,2.4931113935389297 +1493.0,2.7152222369382475 +1494.0,2.7997642374008738 +1495.0,2.7568765676419824 +1496.0,2.412256932349926 +1497.0,2.8710032062565283 +1498.0,2.9889592729482275 +1499.0,2.487618662001197 +1500.0,3.06556789470957 +1501.0,2.4087002504176804 +1502.0,2.405697192299763 +1503.0,3.126243522378392 +1504.0,2.807469108851915 +1505.0,2.9283228664614516 +1506.0,2.4062671532621263 +1507.0,2.57675943217 +1508.0,2.507725523310028 +1509.0,2.9337325307261146 +1510.0,2.862374215952883 +1511.0,2.4374397362357105 +1512.0,2.5476407537331207 +1513.0,2.8833305919115353 +1514.0,2.9018747559481985 +1515.0,2.957223285822144 +1516.0,3.059839307100996 +1517.0,2.9366915172603756 +1518.0,3.692098975212656 +1519.0,2.7023695222680155 +1520.0,2.4031268444308203 +1521.0,3.123364968807354 +1522.0,3.057304428811749 +1523.0,2.7301449946675795 +1524.0,2.762482094206719 +1525.0,2.444320954110724 +1526.0,2.5477168130311467 +1527.0,2.484879343485886 +1528.0,2.7560047320011853 +1529.0,2.413488041143039 +1530.0,2.528976060817812 +1531.0,2.822656676122775 +1532.0,2.721994249066113 +1533.0,2.968446796032307 +1534.0,2.479714576900798 +1535.0,2.4005545653314346 +1536.0,2.419052756767685 +1537.0,2.734352010800786 +1538.0,2.4230043448722403 +1539.0,2.453249694168385 +1540.0,3.0946146847154257 +1541.0,2.404871368250686 +1542.0,2.543098132402012 +1543.0,3.2180353177594174 +1544.0,2.5371548813148834 +1545.0,2.7491428844378634 +1546.0,2.695558588480398 +1547.0,2.5523852879961444 +1548.0,2.4604712404883133 +1549.0,2.495999906407944 +1550.0,2.6517707143530096 +1551.0,2.402363552718639 +1552.0,2.653876684956808 +1553.0,2.9047375525530152 +1554.0,2.5401821815488907 +1555.0,2.507083438772504 +1556.0,2.431109327252597 +1557.0,2.6323471304742063 +1558.0,3.4767171714283696 +1559.0,2.50673602251899 +1560.0,2.4524001482926847 +1561.0,2.6169373538418137 +1562.0,2.6386570335999444 +1563.0,2.4206042034811923 +1564.0,2.770831730770982 +1565.0,2.5521256686957496 +1566.0,2.4129098564739113 +1567.0,2.4042608789198807 +1568.0,2.8696039337974426 +1569.0,2.420297725397646 +1570.0,2.7493183395312597 +1571.0,2.864868201174766 +1572.0,2.518174695123077 +1573.0,2.5920408124311995 +1574.0,2.7146226998578182 +1575.0,3.0717001726129745 +1576.0,2.5828872691194884 +1577.0,2.471333118056108 +1578.0,2.657311662679706 +1579.0,3.0389579652986987 +1580.0,2.471099918474246 +1581.0,2.7847627255049945 +1582.0,3.648668917968727 +1583.0,2.6187505581843427 +1584.0,2.718312560211219 +1585.0,2.401344238058444 +1586.0,2.7351481004319464 +1587.0,3.2658624223090955 +1588.0,2.6553855669404793 +1589.0,2.4299198344608377 +1590.0,2.709510597235418 +1591.0,5.148548526951005 +1592.0,3.1720267701705933 +1593.0,2.492325602045062 +1594.0,2.987415204169274 +1595.0,2.4467469401984867 +1596.0,2.6336263765511623 +1597.0,2.478885169199735 +1598.0,2.4718156659093835 +1599.0,2.4718689975313817 +1600.0,2.7471638588708496 +1601.0,2.5270206978558862 +1602.0,2.6657255039552816 +1603.0,2.7014007458471876 +1604.0,3.3382986029666744 +1605.0,2.6253657304045985 +1606.0,2.6786213941653063 +1607.0,3.9341137944792193 +1608.0,3.2274443278993106 +1609.0,2.675671639811438 +1610.0,2.5471837145956036 +1611.0,2.489784326866223 +1612.0,2.7401204258588256 +1613.0,2.7501871276921377 +1614.0,2.404287211703335 +1615.0,2.554715855514826 +1616.0,2.510621205610655 +1617.0,3.3903637669226265 +1618.0,2.576950619811425 +1619.0,2.442975211635139 +1620.0,2.676786091332473 +1621.0,2.502969970583344 +1622.0,2.9187116488198255 +1623.0,2.8030498070969436 +1624.0,2.7926182376375586 +1625.0,2.6115411277786778 +1626.0,2.547948662435719 +1627.0,2.4258807856455036 +1628.0,3.3142769791250997 +1629.0,2.6877547179880645 +1630.0,2.643925626527417 +1631.0,2.4599074054224066 +1632.0,2.4677844020246753 +1633.0,2.769193367264738 +1634.0,2.6401741308745477 +1635.0,2.5748609712332056 +1636.0,2.8047544959897586 +1637.0,2.6580945283700927 +1638.0,2.691398246353815 +1639.0,2.501015946819154 +1640.0,2.963094871867179 +1641.0,2.560684477452921 +1642.0,2.799511602383999 +1643.0,2.9668030829092524 +1644.0,2.53947675914718 +1645.0,2.56063111472191 +1646.0,2.4606995192293635 +1647.0,2.4310286407453954 +1648.0,2.480949829929873 +1649.0,2.431425281702345 +1650.0,2.5265305675617356 +1651.0,3.069842898262909 +1652.0,2.6181996529872147 +1653.0,2.4815442210721033 +1654.0,2.9034980018168675 +1655.0,2.4274510591898655 +1656.0,2.668701283094126 +1657.0,2.880624448611713 +1658.0,2.7633217510436965 +1659.0,3.089343044920973 +1660.0,2.413387525065064 +1661.0,2.51922814513342 +1662.0,2.5953620744613604 +1663.0,2.435725070393884 +1664.0,2.5703775956841763 +1665.0,2.620628845888284 +1666.0,2.6093018049383656 +1667.0,2.552193797413611 +1668.0,2.647899249443591 +1669.0,2.9652684624198566 +1670.0,2.450199065219137 +1671.0,2.412160528853087 +1672.0,2.49215287178766 +1673.0,2.5372551837321033 +1674.0,3.8327810819458605 +1675.0,2.4203633398270306 +1676.0,2.867447491386312 +1677.0,2.4982782165117836 +1678.0,2.6633653619560214 +1679.0,2.478858239706917 +1680.0,2.554528464021759 +1681.0,2.6566805471418786 +1682.0,2.7813636020408565 +1683.0,2.876395898718962 +1684.0,2.4649371393157704 +1685.0,2.6637020674336713 +1686.0,2.5615417785657524 +1687.0,2.691293627073116 +1688.0,2.6885653910272964 +1689.0,2.832670940626331 +1690.0,2.5180387392987975 +1691.0,3.4159043721765703 +1692.0,2.44364441212089 +1693.0,2.524520441405185 +1694.0,2.6637276978942013 +1695.0,3.166547819326993 +1696.0,3.111270223374839 +1697.0,2.4271991311918115 +1698.0,2.655691252906762 +1699.0,2.520142683759529 +1700.0,2.4637125064202143 +1701.0,2.9570934358634515 +1702.0,2.860991388928329 +1703.0,2.5100979158220262 +1704.0,2.429987656679896 +1705.0,2.5913453571974494 +1706.0,2.8165152605355925 +1707.0,2.4045488337928282 +1708.0,2.5780998342832495 +1709.0,2.741576677629667 +1710.0,2.8119279123868814 +1711.0,2.4981627774797857 +1712.0,3.066604650013754 +1713.0,2.6223985682656523 +1714.0,2.66036270304959 +1715.0,2.737921613065147 +1716.0,2.5514952672385025 +1717.0,2.612833086764424 +1718.0,2.5704366810111074 +1719.0,2.6755471694426127 +1720.0,2.6303884060730254 +1721.0,2.6227317367560787 +1722.0,2.8399105907037994 +1723.0,2.98774614473161 +1724.0,2.5891435584856346 +1725.0,2.6078993259874985 +1726.0,3.0783028510248496 +1727.0,2.4016204064646747 +1728.0,3.0854647255853447 +1729.0,2.5752060621911226 +1730.0,3.141889495080639 +1731.0,2.443283838127772 +1732.0,2.6467621382990525 +1733.0,2.637984870352967 +1734.0,2.6294314257366898 +1735.0,2.502160281805652 +1736.0,4.125535017673497 +1737.0,2.542195978221216 +1738.0,2.5110072522616136 +1739.0,2.521744169705461 +1740.0,3.879259633909504 +1741.0,2.9286240817839895 +1742.0,2.4255287999821666 +1743.0,2.6508677022384193 +1744.0,2.5096291607894194 +1745.0,3.1530830635609823 +1746.0,3.337510655035945 +1747.0,2.5655465214783137 +1748.0,2.8019148948120636 +1749.0,2.599059583218796 +1750.0,3.2373613896018227 +1751.0,2.751833172107712 +1752.0,2.95884431014017 +1753.0,2.4094863630550662 +1754.0,2.5013680726106586 +1755.0,2.851783960675143 +1756.0,2.679916786103211 +1757.0,2.753576171890599 +1758.0,2.8180341207942923 +1759.0,2.6039581225404542 +1760.0,2.500695384225839 +1761.0,2.5978722785144437 +1762.0,2.6767741390813447 +1763.0,2.4934706258176926 +1764.0,2.552452364597123 +1765.0,2.471136508279303 +1766.0,3.759000227399251 +1767.0,2.6176887239025945 +1768.0,2.6035934132259504 +1769.0,2.916363657608504 +1770.0,2.588128262605214 +1771.0,2.4658850214568218 +1772.0,2.426474355747328 +1773.0,3.2652289232636997 +1774.0,3.052186615823337 +1775.0,3.1757495276109653 +1776.0,2.407410911454 +1777.0,2.4933453703063835 +1778.0,2.655014611290996 +1779.0,2.4675362356190385 +1780.0,2.809036997775461 +1781.0,2.9698319727190854 +1782.0,2.834119738385648 +1783.0,2.750064237546005 +1784.0,2.6328596389963477 +1785.0,3.5238273248846035 +1786.0,2.982933430664107 +1787.0,2.5566858498023697 +1788.0,2.8255371678662446 +1789.0,2.674536458607851 +1790.0,2.6036313619891565 +1791.0,2.566480134284841 +1792.0,3.2881527867639218 +1793.0,2.4982117708058307 +1794.0,2.513279343474715 +1795.0,2.698543166429708 +1796.0,3.3176812844562664 +1797.0,2.4545507697101603 +1798.0,2.7383266551646255 +1799.0,2.4943054571473025 +1800.0,2.8444438222094144 +1801.0,2.4213727732846646 +1802.0,3.196829186810232 +1803.0,2.562761889976214 +1804.0,2.4099252414708223 +1805.0,2.4278524451269554 +1806.0,2.5727836234777293 +1807.0,3.4943954370629267 +1808.0,2.6910837073592155 +1809.0,3.2827294625891126 +1810.0,2.617953312162296 +1811.0,2.504995970409664 +1812.0,3.181078194198833 +1813.0,2.4192639704799075 +1814.0,2.7615395250098977 +1815.0,3.0073610646494826 +1816.0,3.715218998393295 +1817.0,2.4454043227321325 +1818.0,3.2901676902126433 +1819.0,2.57845718642679 +1820.0,2.9120322088066515 +1821.0,2.798856332790828 +1822.0,3.8566451253224874 +1823.0,2.9317369100097217 +1824.0,2.9712371087792824 +1825.0,2.4529313434314584 +1826.0,2.649762806763838 +1827.0,2.5106448097291127 +1828.0,2.677978123892759 +1829.0,3.1804037805701726 +1830.0,2.4073708231367195 +1831.0,2.9630425641819995 +1832.0,2.773687318607651 +1833.0,3.3034758171986027 +1834.0,2.8488582340142545 +1835.0,2.7325482348241104 +1836.0,2.481718368453199 +1837.0,2.410410351154078 +1838.0,2.5470746978441623 +1839.0,2.831476964545501 +1840.0,2.8465375083194715 +1841.0,2.581794153670817 +1842.0,3.10185582420504 +1843.0,2.4752831889808324 +1844.0,2.725297594287719 +1845.0,2.9132485848392746 +1846.0,2.6677107455164997 +1847.0,3.111664268295498 +1848.0,2.6350649251767435 +1849.0,2.8199374130424375 +1850.0,3.0902714115016234 +1851.0,2.7002658737567207 +1852.0,2.4769474514836936 +1853.0,2.71908457383027 +1854.0,3.026879213846264 +1855.0,2.435346188971463 +1856.0,2.421508447534247 +1857.0,2.4088988572686465 +1858.0,2.900186708690448 +1859.0,2.4650807576690434 +1860.0,2.50127019613774 +1861.0,2.53639631412954 +1862.0,3.576797312631003 +1863.0,3.317532762611838 +1864.0,2.52933576788765 +1865.0,2.752260930997392 +1866.0,2.4778430886946374 +1867.0,3.233476103451886 +1868.0,2.4311303636037476 +1869.0,2.4190378604216236 +1870.0,2.4610572385447025 +1871.0,3.9169946780896465 +1872.0,2.769966630833052 +1873.0,2.5791675946334 +1874.0,2.465014027807578 +1875.0,2.450064933397859 +1876.0,2.6873141022241365 +1877.0,2.7289447031779104 +1878.0,2.6979653699273065 +1879.0,2.8586554030734033 +1880.0,4.059780739329177 +1881.0,2.4339703241710504 +1882.0,2.570736447096794 +1883.0,3.1961597707784946 +1884.0,2.43081857748665 +1885.0,2.946704264151035 +1886.0,2.635111864512382 +1887.0,2.590662280746874 +1888.0,2.437327705067683 +1889.0,2.4110338297803473 +1890.0,3.246391985209412 +1891.0,2.7627484243404434 +1892.0,2.5638377892705373 +1893.0,3.5473770365946233 +1894.0,2.661519438701622 +1895.0,2.4197698410439026 +1896.0,2.8232899910453106 +1897.0,2.5201104509474366 +1898.0,2.6564188160890425 +1899.0,3.1276610442897823 +1900.0,2.513589915626203 +1901.0,2.470852173602829 +1902.0,2.5473428995087066 +1903.0,2.8773972524677793 +1904.0,2.4507821205894316 +1905.0,3.202247860961274 +1906.0,2.538342165784261 +1907.0,2.7754075341563382 +1908.0,2.4234805378693838 +1909.0,2.84620008626372 +1910.0,3.0144176195236807 +1911.0,2.425488892946599 +1912.0,2.5322113787189053 +1913.0,2.540403078299308 +1914.0,2.5478017312830383 +1915.0,2.8235504992517395 +1916.0,2.4905104641205376 +1917.0,2.6389538274257855 +1918.0,2.969719648813178 +1919.0,2.4083297906470715 +1920.0,2.4827476615064072 +1921.0,3.0680058387168856 +1922.0,2.429327207551832 +1923.0,2.5395198018940133 +1924.0,2.4845435908226388 +1925.0,2.481571203182874 +1926.0,2.4822228543688167 +1927.0,2.4166659383258935 +1928.0,2.6075192267821645 +1929.0,2.4685895495031347 +1930.0,2.8829057427427296 +1931.0,3.058590625937914 +1932.0,2.4580850212647944 +1933.0,2.750116534715379 +1934.0,2.655674706969349 +1935.0,2.495414237798796 +1936.0,2.554317274117013 +1937.0,2.4746043392885024 +1938.0,2.728614965381724 +1939.0,2.4722431206870765 +1940.0,2.707841127719692 +1941.0,3.9378405158846492 +1942.0,2.6899540491051743 +1943.0,2.4616784287391478 +1944.0,2.6574732408084123 +1945.0,3.1388105302387457 +1946.0,2.59403048824531 +1947.0,2.9626356199130113 +1948.0,2.5818804814985437 +1949.0,2.4339849138751686 +1950.0,2.408033223243216 +1951.0,3.497286758138407 +1952.0,2.582714520229382 +1953.0,3.1891819549861795 +1954.0,2.4230686844460947 +1955.0,2.6255169790618686 +1956.0,3.0519453328131587 +1957.0,2.6376216257660574 +1958.0,2.6358274426725568 +1959.0,2.578346823236446 +1960.0,3.3375188163153098 +1961.0,2.451086301625332 +1962.0,2.56674595680842 +1963.0,2.467023217196765 +1964.0,2.6608175484206305 +1965.0,2.606109132831275 +1966.0,3.150573587953991 +1967.0,2.8015733687533526 +1968.0,2.769837407335916 +1969.0,2.6992772178302804 +1970.0,2.6386961496610426 +1971.0,3.526723597701422 +1972.0,2.996000195707585 +1973.0,2.8016654206171987 +1974.0,2.4529440231843798 +1975.0,2.511299128468418 +1976.0,2.4030969346289517 +1977.0,2.437118865042768 +1978.0,2.4432194704288657 +1979.0,2.569427996771886 +1980.0,2.651656858866627 +1981.0,2.5539038614384753 +1982.0,2.4371559407369237 +1983.0,2.7289603082094014 +1984.0,2.7602097804855696 +1985.0,2.761311041120595 +1986.0,2.411115975512222 +1987.0,3.1225131077002874 +1988.0,2.8055061145088094 +1989.0,2.9294088845663557 +1990.0,2.811547917906231 +1991.0,2.710205384840303 +1992.0,2.433487564230373 +1993.0,3.281581146315683 +1994.0,2.508559067233015 +1995.0,2.643410481708204 +1996.0,2.401810469742584 +1997.0,2.561687838556964 +1998.0,2.471573163612274 +1999.0,3.073574282928184 +2000.0,2.524455511831335 +2001.0,2.4279385725138227 +2002.0,2.4596099817994377 +2003.0,3.232349847936523 +2004.0,2.687536489996233 +2005.0,3.0293386478490025 +2006.0,2.4339668012569056 +2007.0,2.7416439635907164 +2008.0,2.761226833259825 +2009.0,2.5095012639730663 +2010.0,3.0944687097004255 +2011.0,2.602400952356684 +2012.0,3.3293582609133967 +2013.0,2.5671938142060347 +2014.0,2.5742833594562513 +2015.0,2.588302242825952 +2016.0,2.41476979133745 +2017.0,2.5795817978110476 +2018.0,2.4303252970197633 +2019.0,2.63636902528333 +2020.0,2.793412528599797 +2021.0,2.742124507322639 +2022.0,2.655030349562185 +2023.0,2.6879343949936896 +2024.0,2.579946790426233 +2025.0,2.553113287268144 +2026.0,3.2001854938303484 +2027.0,2.8249184257343063 +2028.0,2.6359202279175906 +2029.0,2.6047882606596655 +2030.0,3.6824503204361774 +2031.0,2.4691795600298887 +2032.0,2.8038169451000945 +2033.0,2.977003672169065 +2034.0,3.626951546316333 +2035.0,2.6472891042540625 +2036.0,2.5228974824262447 +2037.0,3.044748947029204 +2038.0,3.094566234338256 +2039.0,2.5959705426192254 +2040.0,2.40698779843385 +2041.0,2.614662270904248 +2042.0,2.563457065613496 +2043.0,2.55660557629295 +2044.0,2.748961356763946 +2045.0,2.4791529987542775 +2046.0,2.9562007136356896 +2047.0,2.9241323529822147 +2048.0,3.0526725227298788 +2049.0,2.9257419023572373 +2050.0,2.5537413550702057 +2051.0,2.8544705238531254 +2052.0,2.7103131261671556 +2053.0,2.6106557019810177 +2054.0,3.41411001975648 +2055.0,2.970416924037328 +2056.0,2.738686405335967 +2057.0,2.5641552963563874 +2058.0,2.4666400759874074 +2059.0,2.518804619231973 +2060.0,3.443703621246154 +2061.0,3.0311998625063166 +2062.0,2.5676939961100578 +2063.0,2.558051825425724 +2064.0,2.831608358562573 +2065.0,2.79932903500545 +2066.0,2.7140734442958125 +2067.0,2.458812877256855 +2068.0,2.980247757352229 +2069.0,3.0750206550460972 +2070.0,2.674653236398034 +2071.0,3.26818750760089 +2072.0,2.515851393589434 +2073.0,3.0791593818355296 +2074.0,2.4363398710362674 +2075.0,2.458503606392299 +2076.0,4.468630246835759 +2077.0,2.6066946518724605 +2078.0,2.4581494354027407 +2079.0,3.1240012986004992 +2080.0,2.4921500194938866 +2081.0,2.475842880475781 +2082.0,2.4987759458581924 +2083.0,2.7937166256535964 +2084.0,2.758048668807793 +2085.0,2.828862210617156 +2086.0,2.91597411023913 +2087.0,3.124685594838412 +2088.0,2.90733992680266 +2089.0,2.425472066301962 +2090.0,2.439189639613093 +2091.0,2.503725742858285 +2092.0,2.6520153441210264 +2093.0,2.4907973587462067 +2094.0,3.0540159786887857 +2095.0,2.5156542424862187 +2096.0,2.4712561610479296 +2097.0,2.4907416534463427 +2098.0,2.5520482083584515 +2099.0,2.641223910653888 +2100.0,2.4217802236784656 +2101.0,3.1641452117355167 +2102.0,2.733790876346657 +2103.0,2.9406148892687103 +2104.0,2.5816293892794984 +2105.0,3.085592872945155 +2106.0,4.276553944022913 +2107.0,2.923897737229348 +2108.0,2.571637467094803 +2109.0,2.5467889650236444 +2110.0,3.4787564405984712 +2111.0,2.92234024340037 +2112.0,2.498505809644883 +2113.0,2.4910613902906253 +2114.0,2.5728788215025156 +2115.0,2.6883466056621286 +2116.0,2.612510373380491 +2117.0,3.5267005448983686 +2118.0,2.440311451268276 +2119.0,2.8207163720415664 +2120.0,2.4780692650147613 +2121.0,2.502694918866186 +2122.0,2.6473320441090418 +2123.0,3.456113687518813 +2124.0,3.0904059123289547 +2125.0,3.8935108026773833 +2126.0,2.891850005319215 +2127.0,3.411146851224802 +2128.0,3.075816970035457 +2129.0,2.4415536171464494 +2130.0,3.0958652837924783 +2131.0,3.222582217419876 +2132.0,3.118801332867334 +2133.0,2.7782604335897614 +2134.0,2.770403497151624 +2135.0,3.200311200020257 +2136.0,3.157895753488431 +2137.0,4.001324935352024 +2138.0,2.7974272026588927 +2139.0,2.552937687630867 +2140.0,2.938729336113264 +2141.0,3.834895931362512 +2142.0,2.6020043642009205 +2143.0,2.413013005381113 +2144.0,2.5897765560374624 +2145.0,2.7087180611623127 +2146.0,2.4410026558028317 +2147.0,2.7942245839680093 +2148.0,2.6305760860768723 +2149.0,2.5108453185181423 +2150.0,3.356088918336089 +2151.0,2.6285916286208475 +2152.0,2.504893357360499 +2153.0,2.5154724359502887 +2154.0,2.4442449332234513 +2155.0,2.8993108357771833 +2156.0,2.552424586096902 +2157.0,2.8771540480237814 +2158.0,2.495219655934951 +2159.0,3.0876513664741583 +2160.0,2.4088719881485265 +2161.0,2.594573003852134 +2162.0,2.776581709239174 +2163.0,2.4237383675783923 +2164.0,2.443507671297312 +2165.0,2.539339538152799 +2166.0,2.610231625365831 +2167.0,2.503456838961667 +2168.0,2.4974161554048804 +2169.0,2.6496058425599704 +2170.0,2.5373821061475343 +2171.0,2.500484743051846 +2172.0,2.878502961695888 +2173.0,2.4163154683463164 +2174.0,3.118088390056633 +2175.0,3.0729385017021738 +2176.0,3.40192797141225 +2177.0,3.259624307837603 +2178.0,2.8782217949297966 +2179.0,2.745729226200837 +2180.0,2.600624835413919 +2181.0,2.779965949162436 +2182.0,2.4975465538679114 +2183.0,2.4463327790340386 +2184.0,2.5086883037792056 +2185.0,2.551019780750296 +2186.0,2.522300363446227 +2187.0,2.832926768896869 +2188.0,3.5520738832770196 +2189.0,2.742731696902423 +2190.0,2.877398292123764 +2191.0,2.4448318883310125 +2192.0,2.746093578694207 +2193.0,2.6247699001902314 +2194.0,3.3484202842574544 +2195.0,2.4733118031113808 +2196.0,2.9206108997799833 +2197.0,2.7750958749096997 +2198.0,2.553388867728705 +2199.0,2.4199887626481753 diff --git a/tests/fixtures/oracle/P34G_NORMATIVE_ETAS_ORACLE.csv b/tests/fixtures/oracle/P34G_NORMATIVE_ETAS_ORACLE.csv new file mode 100644 index 0000000..88dbda2 --- /dev/null +++ b/tests/fixtures/oracle/P34G_NORMATIVE_ETAS_ORACLE.csv @@ -0,0 +1,37 @@ +case_id,mode,days,catalog_sha256,decision_time_days,python_status,mc,b_value,alpha,c,p,mu,k,loglik,branching_proxy,raw_probability,events_total,events_above_mc +case_001_background_low_800d,background_low,800,956014d5d71abd6ac8feeae1cf4b1db7ea64a77db02656e9641a346223879d58,800.0,VALID,2.2,1.099734285330618,1.0,0.5,1.0,0.5812499853930415,2.061153622438558e-09,-717.297059778582,1.833171806761623e-08,0.0002694090685372297,800.0,465.0 +case_002_background_medium_800d,background_medium,800,cc0ad0ad54a8358a236d6a19c5a84b396f69f227276ca18e83eee4d93c422d14,800.0,VALID,2.6,0.7953231199060717,0.5,0.1,1.0,0.643749986037058,2.061153622438558e-09,-741.8290859280344,1.7235498282309823e-08,0.008867149728054247,800.0,515.0 +case_003_background_high_800d,background_high,800,d73cbdbc8d22c45d449a29caf5dde1aded42b578840cd81e45b75b86d8b5d7f4,800.0,VALID,3.2,0.697855521094888,0.5,0.1,1.0,0.7137500158886196,3.8312321291331035e-09,-763.554058005627,3.363669009239329e-08,0.054031000846136434,800.0,571.0 +case_004_periodic_800d,periodic,800,15b708cacc2767ab56718a0eeb3e04980a69994249b168e592cc77e1d5a8fb73,800.0,VALID,3.0,0.5356909909722868,0.5,0.05,1.5,0.6316932715101337,0.04277691523320041,-770.9063327211729,0.15503188244755117,0.12309020595717779,800.0,596.0 +case_005_clustered_800d,clustered,800,b2ae2825deccd2295bfa50eed794b7773981407edf59649d4b9115b47a5213c9,800.0,VALID,2.5,0.6247812984612532,0.5,0.5,1.5,0.4375608866917156,0.12642387873771102,-741.0579087948008,0.346682116859501,0.030059862312094898,800.0,530.0 +case_006_quiet_then_active_800d,quiet_then_active,800,a4608fa8963f49000a46470556842b8ac06fa7ab83b78555e96f8e225ad3a0f4,800.0,VALID,2.5,0.7009003995158389,0.5,0.5,1.2,0.4160073810704914,0.08919742443591262,-746.7191556247747,0.4418938525128649,0.02080729187747643,800.0,557.0 +case_007_active_then_quiet_800d,active_then_quiet,800,69c21e0d438c20fb2ddb908abfa79ff3d03b1cb14845041cef631a79b36da8a6,800.0,VALID,2.5,0.6673953511029859,1.0,0.5,1.0,0.38152578087188593,0.026493128451124313,-716.975046041562,0.4036731834121432,0.015471601311491279,800.0,500.0 +case_008_near_stationary_boundary_800d,near_stationary_boundary,800,e5265ba9f95fc4533f6201ad6614a06fe56139e928d2311b0b72d526f9cd51c7,800.0,VALID,2.8,0.7357318564356397,1.5,0.5,1.2,0.45316846977385483,0.007212573144946682,-677.5441234456912,0.10674695774502113,0.014760214955533701,800.0,404.0 +case_009_high_mc_800d,high_mc,800,375c5ee11b5c7158d8ae76d779e6150d14bf86d62a62c8425f812a65de901f73,800.0,VALID,3.6,0.9066054797152211,2.0,0.5,1.0,0.5923424638007629,0.0031099839690622807,-739.5185642670136,0.08560674314152507,0.04484181209692195,800.0,511.0 +case_010_low_count_800d,low_count,800,5859912e98af6109e236584640fab24e63035974b469ca67586b1fc83d340f66,800.0,INSUFFICIENT_EVIDENCE,,,,,,,,,,,, +case_011_burst_end_800d,burst_end,800,594a9b2ddc7b3c49c5aab6872eea011912708e143f104cf0970a6b84398a7421,800.0,VALID,2.6,0.9404099135211558,0.5,0.5,1.2,0.4981974250628138,0.0453024174277447,-728.3565857863855,0.206830572227464,0.0032409295169496533,800.0,491.0 +case_012_burst_middle_800d,burst_middle,800,537fe2ba37e984a1c38f5a0756d8325fa19c2f3e9c33da748cbc2325253626b8,800.0,VALID,2.6,0.8769163068480662,1.0,0.5,1.0,0.5292266301097045,0.010876690327215647,-727.0998272132118,0.14263560545256979,0.004213840249995715,800.0,490.0 +case_013_background_low_1400d,background_low,1400,dbb798e55c6adb1dff30fc86a014fa6c9fa125cd118d9a1348dfc8fcef203c6a,1400.0,VALID,2.2,1.0495544848005933,2.0,0.05,1.2,0.5386140053606987,0.002520749460849034,-1236.2795494813695,0.03524009965489289,0.00039810767849857154,1400.0,781.0 +case_014_background_medium_1400d,background_medium,1400,5154909d7e48e9784b3f8850885bf0b274cff64a6b395760b418c833e5aa2f5e,1400.0,VALID,2.6,0.7956680637368339,0.5,0.5,1.0,0.628560614704827,0.0038461300540931827,-1300.2670593105456,0.029968605637380984,0.008875918010944561,1400.0,906.0 +case_015_background_high_1400d,background_high,1400,e53fbbc26282f582a5c19ea4cf23940194008cdb81b904abd678f1035e36c734,1400.0,VALID,3.2,0.7606470965516604,0.5,0.05,1.5,0.6384522148520031,0.021991348227456287,-1322.6251753607683,0.07169951914260107,0.035363522235395295,1400.0,962.0 +case_016_periodic_1400d,periodic,1400,a1ba0145b73a1ad15ec39ec39a70bb6022bc504f2aa5250d7fb926220283348f,1400.0,VALID,3.2,0.6093905928965955,0.5,0.05,1.5,0.32038583590933567,0.1496854407626334,-1287.5075202066391,0.5132676978021283,0.0928092482477082,1400.0,911.0 +case_017_clustered_1400d,clustered,1400,f950fe0d163e05f4bcc675785b12517613e5f1e8a2a038a4cfded8b7e941503a,1400.0,VALID,2.5,0.7701112004147558,0.5,0.5,1.5,0.5057352981279892,0.08839106831953902,-1297.5475589954012,0.22372364972695316,0.008328441346998838,1400.0,909.0 +case_018_quiet_then_active_1400d,quiet_then_active,1400,c845f948ca4a61b7d1347787ce7543a596096e955de529612ee2e39b0a5963cb,1400.0,VALID,2.5,0.7208952188826765,0.5,0.5,1.0,0.3358202816881213,0.06122127150822187,-1263.9356666306066,0.5088313737949444,0.01747811641513264,1400.0,884.0 +case_019_active_then_quiet_1400d,active_then_quiet,1400,9c23b9fcf5cf9e97f1dbddf1e6808e1021c8125fafade6d62a3b9c42dec849b9,1400.0,VALID,2.5,0.6946293610425084,0.5,0.5,1.2,0.3401724339722853,0.09377129607911008,-1264.4081853795974,0.46434537925156516,0.01180988182986431,1400.0,876.0 +case_020_near_stationary_boundary_1400d,near_stationary_boundary,1400,cf03c6e43288ca3d63f6e60b00e1df8a0eb784c7ca4d7574a69e246fedf959fc,1400.0,VALID,2.7,0.7250225192913329,1.0,0.5,1.5,0.5863575499063457,0.01048748433998335,-1277.493607314164,0.0438552735429063,0.017395464205779865,1400.0,858.0 +case_021_high_mc_1400d,high_mc,1400,93ccdb4e389ef213160e005fa15ed6c0cc569dc6f78a87caad7cbf68e81b061d,1400.0,VALID,3.6,0.8558053169151272,2.0,0.05,1.0,0.640274489719008,0.0008411818139474562,-1306.0625030361796,0.026635846992481053,0.03958071269706065,1400.0,920.0 +case_022_low_count_1400d,low_count,1400,9e7a5bf7f158dd7b58c00037d105e142ea8dac8331d863dffc8c41c1b9e6b0e3,1400.0,INSUFFICIENT_EVIDENCE,,,,,,,,,,,, +case_023_burst_end_1400d,burst_end,1400,091c75980542ec8a01bb2b0dec7c4f0424632b8b8edf953e1bd741d15090d2a7,1400.0,VALID,2.6,1.023838099086735,1.0,0.1,1.5,0.5020329805897152,0.036016874393800365,-1249.7316349525108,0.13688403584103442,0.0029904260799565874,1400.0,809.0 +case_024_burst_middle_1400d,burst_middle,1400,b0ce65156c9a8c6bbdae9b12bb05379c56325c2de2b9f911d21fbab845a7126e,1400.0,VALID,2.6,0.9512106139360874,1.0,0.5,1.0,0.5086787271243919,0.012334520569026838,-1253.7592217838014,0.12998929592503153,0.002357809078767592,1400.0,814.0 +case_025_background_low_2200d,background_low,2200,cc8ec78ab75fbced51158fbd07d8370e5773f3fc8cee8742c3046f2fb64e8798,2200.0,VALID,2.2,1.0820636074149013,2.0,0.05,1.5,0.56212939368758,0.002384438701299438,-1960.4058662045084,0.016278668570267326,0.0003094583200184964,2200.0,1257.0 +case_026_background_medium_2200d,background_medium,2200,1972fc16fc08b9e981d1df61a7539d7075b282f87d31ece2944fbd7a1bbcb2b0,2200.0,VALID,2.6,0.7805842742395022,0.5,0.05,1.5,0.6768270534584337,3.883911884886316e-08,-2070.235032011074,1.2526798036628803e-07,0.010454641398727427,2200.0,1489.0 +case_027_background_high_2200d,background_high,2200,cf509915582347042dd4bb0defc357b39e7679378c5a3380cbf25e48e63c17e9,2200.0,VALID,3.2,0.7352749402889239,1.5,0.1,1.5,0.6890027330357608,0.0011351919699290885,-2086.177052988399,0.01061706995501572,0.041495602783691576,2200.0,1532.0 +case_028_periodic_2200d,periodic,2200,2dcb04376fc5f8cb782c50a4d87bf8d9e1c288fd65bb4a271dcf096608c7757f,2200.0,VALID,3.0,0.5321205608363526,0.5,0.05,1.5,0.62868556635269,0.04253607381653375,-2118.557573733619,0.15455278773774234,0.11945590016141217,2200.0,1634.0 +case_029_clustered_2200d,clustered,2200,b50c73b9fea25d704a93872afa68e7bc26898a03597f4f1803ab445d9b65e5c7,2200.0,VALID,2.5,0.8078798358991817,1.0,0.5,1.2,0.5386074779175423,0.017686055540327095,-2006.151520554388,0.12615018348937143,0.006276403726383717,2200.0,1353.0 +case_030_quiet_then_active_2200d,quiet_then_active,2200,78d0cd702d8932b8e196c85efbe62810518ecb881d7c32518ea1fb36963c0e31,2200.0,VALID,2.5,0.7108839569740354,0.5,0.5,1.0,0.29233480764520275,0.06762667093368173,-1957.694980369083,0.5588781779524366,0.02198356082917441,2200.0,1362.0 +case_031_active_then_quiet_2200d,active_then_quiet,2200,25078e1627b1bf87f500eaf302116a7cfc183f2ecff5b7cd5d35afd640b7cd6d,2200.0,VALID,2.5,0.6691931292595389,0.5,0.5,1.2,0.34598510689248974,0.08949913868281933,-1984.204244718301,0.45807950765768407,0.01684456130673695,2200.0,1390.0 +case_032_near_stationary_boundary_2200d,near_stationary_boundary,2200,e16dbd7e7e5faa788c35cd8b7162de94514ab4f9643effec95ae841c7d3ce9cf,2200.0,VALID,2.7,0.7383323690478368,0.5,0.1,1.2,0.5121540232867273,0.030361438910830048,-2002.337455050923,0.16120815360110818,0.01564152619721393,2200.0,1339.0 +case_033_high_mc_2200d,high_mc,2200,c4dca19169862290b9df6623f1eef185d3c1c96348c61aa8ba0fc6204ff0f8b3,2200.0,VALID,3.6,0.8553250878046821,0.5,0.5,1.5,0.5804897021604974,0.03859897365999218,-2034.9078762929498,0.09244067457394438,0.038188562509788526,2200.0,1406.0 +case_034_low_count_2200d,low_count,2200,12ea60134c410f16f418522731faf322bab254e43d04ad59721c95ca0913f9df,2200.0,VALID,2.7,0.9707707787667366,0.5,0.1,1.5,0.07282658417344605,2.061153622438558e-09,-579.1478812093028,5.958131341388319e-09,0.0003189885791839986,280.0,160.0 +case_035_burst_end_2200d,burst_end,2200,f63611e4fec7ae0462ff7e32aa372442961c955bf0a9bd6c1c3435965f530e97,2200.0,VALID,2.6,1.0027066474105577,2.0,0.5,1.0,0.5238813281371796,0.0019495689388865185,-1927.2054742720497,0.055882379553535914,0.0024665155604889355,2200.0,1206.0 +case_036_burst_middle_2200d,burst_middle,2200,0e464ef6905617422ce0fa86f3ef30f48d5917c7f1769805206ca9c16c86000a,2200.0,VALID,2.6,0.9772119359817875,1.0,0.5,1.5,0.5266746647133455,0.02400392845022185,-1957.995503585972,0.08024976330126563,0.001835573989175443,2200.0,1259.0 diff --git a/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE.csv b/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE.csv new file mode 100644 index 0000000..c20dbd4 --- /dev/null +++ b/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE.csv @@ -0,0 +1,37 @@ +case_id,mode,days,decision_time_days,catalog_sha256,contract_id,status,mc,b_value,alpha,c,p,mu,k,loglik,branching_proxy,events_total,events_above_mc,raw_probability +case_001_background_low_800d,background_low,800,800.0,956014d5d71abd6ac8feeae1cf4b1db7ea64a77db02656e9641a346223879d58,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.099734285330618,0.5,0.1,1.2,0.5812500125048311,4.843875586857497e-09,-717.2970597678407,2.2747518484288942e-08,800,465,0.00026940908278516584 +case_002_background_medium_800d,background_medium,800,800.0,cc0ad0ad54a8358a236d6a19c5a84b396f69f227276ca18e83eee4d93c422d14,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7953231199060717,0.5,0.5,1.0,0.6437499905126559,2.061153622438558e-09,-741.8290859207439,1.5984378229014198e-08,800,515,0.00886714978515446 +case_003_background_high_800d,background_high,800,800.0,d73cbdbc8d22c45d449a29caf5dde1aded42b578840cd81e45b75b86d8b5d7f4,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.697855521094888,0.5,0.5,1.5,0.7137499964412138,2.061153622438558e-09,-763.554057846621,5.274287457116134e-09,800,571,0.05403099749349061 +case_004_periodic_800d,periodic,800,800.0,15b708cacc2767ab56718a0eeb3e04980a69994249b168e592cc77e1d5a8fb73,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.0,0.5356909909722868,0.5,0.05,1.5,0.631693335813868,0.042776893258560635,-770.9063327211728,0.15503180280717152,800,596,0.12309020576844532 +case_005_clustered_800d,clustered,800,800.0,b2ae2825deccd2295bfa50eed794b7773981407edf59649d4b9115b47a5213c9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6247812984612532,0.5,0.5,1.5,0.4375608131102464,0.126423908117346,-741.0579087947996,0.3466821974249302,800,530,0.030059861450472347 +case_006_quiet_then_active_800d,quiet_then_active,800,800.0,a4608fa8963f49000a46470556842b8ac06fa7ab83b78555e96f8e225ad3a0f4,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7009003995158389,0.5,0.5,1.2,0.4160073580563775,0.08919743030952702,-746.7191556247744,0.44189388161139675,800,557,0.02080729201620657 +case_007_active_then_quiet_800d,active_then_quiet,800,800.0,69c21e0d438c20fb2ddb908abfa79ff3d03b1cb14845041cef631a79b36da8a6,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6673953511029859,1.0,0.5,1.0,0.381525785793053,0.026493125122001807,-716.9750460415614,0.40367313268663224,800,500,0.015471601063573481 +case_008_near_stationary_boundary_800d,near_stationary_boundary,800,800.0,e5265ba9f95fc4533f6201ad6614a06fe56139e928d2311b0b72d526f9cd51c7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.8,0.7357318564356397,1.5,0.5,1.2,0.45316847689767253,0.007212572850791551,-677.5441234456912,0.10674695339148951,800,404,0.01476021513899295 +case_009_high_mc_800d,high_mc,800,800.0,375c5ee11b5c7158d8ae76d779e6150d14bf86d62a62c8425f812a65de901f73,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.9066054797152211,2.0,0.5,1.0,0.5923424277912024,0.003109985385769341,-739.5185642670135,0.08560678213840692,800,511,0.04484181841883872 +case_010_low_count_800d,low_count,800,800.0,5859912e98af6109e236584640fab24e63035974b469ca67586b1fc83d340f66,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,INSUFFICIENT_EVIDENCE,,,,,,,,,,77,0, +case_011_burst_end_800d,burst_end,800,800.0,594a9b2ddc7b3c49c5aab6872eea011912708e143f104cf0970a6b84398a7421,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9404099135211558,0.5,0.5,1.2,0.49819734023348683,0.04530245787611279,-728.3565857863839,0.2068307568966184,800,491,0.003240930060184666 +case_012_burst_middle_800d,burst_middle,800,800.0,537fe2ba37e984a1c38f5a0756d8325fa19c2f3e9c33da748cbc2325253626b8,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.8769163068480662,1.0,0.5,1.0,0.5292266486950314,0.010876688327717727,-727.0998272132117,0.1426355792313952,800,490,0.004213840319811424 +case_013_background_low_1400d,background_low,1400,1400.0,dbb798e55c6adb1dff30fc86a014fa6c9fa125cd118d9a1348dfc8fcef203c6a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.0495544848005933,2.0,0.05,1.2,0.5386137689565788,0.002520781483974561,-1236.2795494812972,0.03524054733846967,1400,781,0.00039810764657854936 +case_014_background_medium_1400d,background_medium,1400,1400.0,5154909d7e48e9784b3f8850885bf0b274cff64a6b395760b418c833e5aa2f5e,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7956680637368339,0.5,0.5,1.0,0.6285604521446368,0.0038462228298340164,-1300.267059310508,0.029969328535346125,1400,906,0.008875921584342805 +case_015_background_high_1400d,background_high,1400,1400.0,e53fbbc26282f582a5c19ea4cf23940194008cdb81b904abd678f1035e36c734,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.7606470965516604,0.5,0.05,1.5,0.6384523140889641,0.021991325402971627,-1322.6251753607655,0.07169944472676454,1400,962,0.035363524342419295 +case_016_periodic_1400d,periodic,1400,1400.0,a1ba0145b73a1ad15ec39ec39a70bb6022bc504f2aa5250d7fb926220283348f,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.6093905928965958,0.5,0.05,1.5,0.32038602668884314,0.14968536105934832,-1287.5075202066337,0.5132674245015226,1400,911,0.09280924632674392 +case_017_clustered_1400d,clustered,1400,1400.0,f950fe0d163e05f4bcc675785b12517613e5f1e8a2a038a4cfded8b7e941503a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7701112004147558,0.5,0.5,1.5,0.5057352215374815,0.08839112115619419,-1297.5475589954012,0.22372378346002775,1400,909,0.008328441000662434 +case_018_quiet_then_active_1400d,quiet_then_active,1400,1400.0,c845f948ca4a61b7d1347787ce7543a596096e955de529612ee2e39b0a5963cb,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7208952188826765,0.5,0.5,1.0,0.3358204493539718,0.06122124448866267,-1263.935666630599,0.5088311492259491,1400,884,0.017478115282774764 +case_019_active_then_quiet_1400d,active_then_quiet,1400,1400.0,9c23b9fcf5cf9e97f1dbddf1e6808e1021c8125fafade6d62a3b9c42dec849b9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6946293610425084,0.5,0.5,1.2,0.34017240931151876,0.09377130521290872,-1264.4081853795974,0.4643454244811543,1400,876,0.011809881492137575 +case_020_near_stationary_boundary_1400d,near_stationary_boundary,1400,1400.0,cf03c6e43288ca3d63f6e60b00e1df8a0eb784c7ca4d7574a69e246fedf959fc,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.7250225192913329,1.0,0.5,1.5,0.5863579959220675,0.010487293184582892,-1277.4936073140027,0.04385447419273761,1400,858,0.0173954600372368 +case_021_high_mc_1400d,high_mc,1400,1400.0,93ccdb4e389ef213160e005fa15ed6c0cc569dc6f78a87caad7cbf68e81b061d,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.8558053169151272,2.0,0.05,1.0,0.6402745752201303,0.0008411795745944375,-1306.0625030361764,0.02663577608383399,1400,920,0.03958071572787192 +case_022_low_count_1400d,low_count,1400,1400.0,9e7a5bf7f158dd7b58c00037d105e142ea8dac8331d863dffc8c41c1b9e6b0e3,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,INSUFFICIENT_EVIDENCE,,,,,,,,,,160,0, +case_023_burst_end_1400d,burst_end,1400,1400.0,091c75980542ec8a01bb2b0dec7c4f0424632b8b8edf953e1bd741d15090d2a7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,1.023838099086735,1.0,0.1,1.5,0.5020330673055853,0.03601684695511102,-1249.7316349525072,0.13688393155884454,1400,809,0.0029904248868229955 +case_024_burst_middle_1400d,burst_middle,1400,1400.0,b0ce65156c9a8c6bbdae9b12bb05379c56325c2de2b9f911d21fbab845a7126e,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9512106139360874,1.0,0.5,1.0,0.508678901699931,0.012334489567807267,-1253.7592217837919,0.12998896921377573,1400,814,0.00235780907865768 +case_025_background_low_2200d,background_low,2200,2200.0,cc8ec78ab75fbced51158fbd07d8370e5773f3fc8cee8742c3046f2fb64e8798,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.0820636074149013,2.0,0.05,1.5,0.5621292681170443,0.0023844648504839127,-1960.4058662044881,0.01627884709190733,2200,1257,0.0003094583107809967 +case_026_background_medium_2200d,background_medium,2200,2200.0,1972fc16fc08b9e981d1df61a7539d7075b282f87d31ece2944fbd7a1bbcb2b0,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7805842742395022,0.5,0.5,1.5,0.6768181784918353,2.061153622438558e-09,-2070.235031342369,5.080814315973724e-09,2200,1489,0.010454503373755974 +case_027_background_high_2200d,background_high,2200,2200.0,cf509915582347042dd4bb0defc357b39e7679378c5a3380cbf25e48e63c17e9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.7352749402889239,1.5,0.1,1.5,0.689002744949222,0.0011350527281283047,-2086.177052984255,0.010615767673129706,2200,1532,0.04149557347427779 +case_028_periodic_2200d,periodic,2200,2200.0,2dcb04376fc5f8cb782c50a4d87bf8d9e1c288fd65bb4a271dcf096608c7757f,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.0,0.532120560836353,0.5,0.05,1.5,0.6286851928828824,0.04253621903647872,-2118.5575737336076,0.15455331538745976,2200,1634,0.11945588917593342 +case_029_clustered_2200d,clustered,2200,2200.0,b50c73b9fea25d704a93872afa68e7bc26898a03597f4f1803ab445d9b65e5c7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.8078798358991817,1.0,0.5,1.2,0.5386075463032499,0.01768603814387915,-2006.1515205543844,0.12615005940488602,2200,1353,0.006276403761040994 +case_030_quiet_then_active_2200d,quiet_then_active,2200,2200.0,78d0cd702d8932b8e196c85efbe62810518ecb881d7c32518ea1fb36963c0e31,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7108839569740354,0.5,0.5,1.0,0.2923347765348,0.06762667878608304,-1957.6949803690823,0.5588782428460012,2200,1362,0.021983561905975724 +case_031_active_then_quiet_2200d,active_then_quiet,2200,2200.0,25078e1627b1bf87f500eaf302116a7cfc183f2ecff5b7cd5d35afd640b7cd6d,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6691931292595389,0.5,0.5,1.2,0.34598514328492885,0.08949912503680903,-1984.2042447182987,0.45807943781390925,2200,1390,0.016844561550426573 +case_032_near_stationary_boundary_2200d,near_stationary_boundary,2200,2200.0,e16dbd7e7e5faa788c35cd8b7162de94514ab4f9643effec95ae841c7d3ce9cf,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.7383323690478368,0.5,0.1,1.2,0.5121540748754967,0.03036143527932269,-2002.3374550509202,0.16120813431913023,2200,1339,0.015641527187117643 +case_033_high_mc_2200d,high_mc,2200,2200.0,c4dca19169862290b9df6623f1eef185d3c1c96348c61aa8ba0fc6204ff0f8b3,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.8553250878046821,0.5,0.5,1.5,0.580490067428407,0.03859873397051614,-2034.9078762929414,0.09244010054166445,2200,1406,0.03818856665306303 +case_034_low_count_2200d,low_count,2200,2200.0,12ea60134c410f16f418522731faf322bab254e43d04ad59721c95ca0913f9df,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.9707707787667366,0.5,0.5,1.5,0.07282658601268899,2.5936052694235568e-09,-579.1478811949175,5.943304648945578e-09,280,160,0.00031898858729750845 +case_035_burst_end_2200d,burst_end,2200,2200.0,f63611e4fec7ae0462ff7e32aa372442961c955bf0a9bd6c1c3435965f530e97,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,1.0027066474105577,2.0,0.5,1.0,0.5238813747255058,0.0019495647502525974,-1927.2054742720372,0.05588225949067181,2200,1206,0.0024665134578351067 +case_036_burst_middle_2200d,burst_middle,2200,2200.0,0e464ef6905617422ce0fa86f3ef30f48d5917c7f1769805206ca9c16c86000a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9772119359817875,1.0,0.5,1.5,0.5266747937106212,0.02400385540502039,-1957.995503585962,0.08024951909706632,2200,1259,0.0018355741662855474 diff --git a/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN1.csv b/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN1.csv new file mode 100644 index 0000000..c20dbd4 --- /dev/null +++ b/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN1.csv @@ -0,0 +1,37 @@ +case_id,mode,days,decision_time_days,catalog_sha256,contract_id,status,mc,b_value,alpha,c,p,mu,k,loglik,branching_proxy,events_total,events_above_mc,raw_probability +case_001_background_low_800d,background_low,800,800.0,956014d5d71abd6ac8feeae1cf4b1db7ea64a77db02656e9641a346223879d58,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.099734285330618,0.5,0.1,1.2,0.5812500125048311,4.843875586857497e-09,-717.2970597678407,2.2747518484288942e-08,800,465,0.00026940908278516584 +case_002_background_medium_800d,background_medium,800,800.0,cc0ad0ad54a8358a236d6a19c5a84b396f69f227276ca18e83eee4d93c422d14,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7953231199060717,0.5,0.5,1.0,0.6437499905126559,2.061153622438558e-09,-741.8290859207439,1.5984378229014198e-08,800,515,0.00886714978515446 +case_003_background_high_800d,background_high,800,800.0,d73cbdbc8d22c45d449a29caf5dde1aded42b578840cd81e45b75b86d8b5d7f4,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.697855521094888,0.5,0.5,1.5,0.7137499964412138,2.061153622438558e-09,-763.554057846621,5.274287457116134e-09,800,571,0.05403099749349061 +case_004_periodic_800d,periodic,800,800.0,15b708cacc2767ab56718a0eeb3e04980a69994249b168e592cc77e1d5a8fb73,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.0,0.5356909909722868,0.5,0.05,1.5,0.631693335813868,0.042776893258560635,-770.9063327211728,0.15503180280717152,800,596,0.12309020576844532 +case_005_clustered_800d,clustered,800,800.0,b2ae2825deccd2295bfa50eed794b7773981407edf59649d4b9115b47a5213c9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6247812984612532,0.5,0.5,1.5,0.4375608131102464,0.126423908117346,-741.0579087947996,0.3466821974249302,800,530,0.030059861450472347 +case_006_quiet_then_active_800d,quiet_then_active,800,800.0,a4608fa8963f49000a46470556842b8ac06fa7ab83b78555e96f8e225ad3a0f4,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7009003995158389,0.5,0.5,1.2,0.4160073580563775,0.08919743030952702,-746.7191556247744,0.44189388161139675,800,557,0.02080729201620657 +case_007_active_then_quiet_800d,active_then_quiet,800,800.0,69c21e0d438c20fb2ddb908abfa79ff3d03b1cb14845041cef631a79b36da8a6,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6673953511029859,1.0,0.5,1.0,0.381525785793053,0.026493125122001807,-716.9750460415614,0.40367313268663224,800,500,0.015471601063573481 +case_008_near_stationary_boundary_800d,near_stationary_boundary,800,800.0,e5265ba9f95fc4533f6201ad6614a06fe56139e928d2311b0b72d526f9cd51c7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.8,0.7357318564356397,1.5,0.5,1.2,0.45316847689767253,0.007212572850791551,-677.5441234456912,0.10674695339148951,800,404,0.01476021513899295 +case_009_high_mc_800d,high_mc,800,800.0,375c5ee11b5c7158d8ae76d779e6150d14bf86d62a62c8425f812a65de901f73,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.9066054797152211,2.0,0.5,1.0,0.5923424277912024,0.003109985385769341,-739.5185642670135,0.08560678213840692,800,511,0.04484181841883872 +case_010_low_count_800d,low_count,800,800.0,5859912e98af6109e236584640fab24e63035974b469ca67586b1fc83d340f66,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,INSUFFICIENT_EVIDENCE,,,,,,,,,,77,0, +case_011_burst_end_800d,burst_end,800,800.0,594a9b2ddc7b3c49c5aab6872eea011912708e143f104cf0970a6b84398a7421,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9404099135211558,0.5,0.5,1.2,0.49819734023348683,0.04530245787611279,-728.3565857863839,0.2068307568966184,800,491,0.003240930060184666 +case_012_burst_middle_800d,burst_middle,800,800.0,537fe2ba37e984a1c38f5a0756d8325fa19c2f3e9c33da748cbc2325253626b8,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.8769163068480662,1.0,0.5,1.0,0.5292266486950314,0.010876688327717727,-727.0998272132117,0.1426355792313952,800,490,0.004213840319811424 +case_013_background_low_1400d,background_low,1400,1400.0,dbb798e55c6adb1dff30fc86a014fa6c9fa125cd118d9a1348dfc8fcef203c6a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.0495544848005933,2.0,0.05,1.2,0.5386137689565788,0.002520781483974561,-1236.2795494812972,0.03524054733846967,1400,781,0.00039810764657854936 +case_014_background_medium_1400d,background_medium,1400,1400.0,5154909d7e48e9784b3f8850885bf0b274cff64a6b395760b418c833e5aa2f5e,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7956680637368339,0.5,0.5,1.0,0.6285604521446368,0.0038462228298340164,-1300.267059310508,0.029969328535346125,1400,906,0.008875921584342805 +case_015_background_high_1400d,background_high,1400,1400.0,e53fbbc26282f582a5c19ea4cf23940194008cdb81b904abd678f1035e36c734,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.7606470965516604,0.5,0.05,1.5,0.6384523140889641,0.021991325402971627,-1322.6251753607655,0.07169944472676454,1400,962,0.035363524342419295 +case_016_periodic_1400d,periodic,1400,1400.0,a1ba0145b73a1ad15ec39ec39a70bb6022bc504f2aa5250d7fb926220283348f,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.6093905928965958,0.5,0.05,1.5,0.32038602668884314,0.14968536105934832,-1287.5075202066337,0.5132674245015226,1400,911,0.09280924632674392 +case_017_clustered_1400d,clustered,1400,1400.0,f950fe0d163e05f4bcc675785b12517613e5f1e8a2a038a4cfded8b7e941503a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7701112004147558,0.5,0.5,1.5,0.5057352215374815,0.08839112115619419,-1297.5475589954012,0.22372378346002775,1400,909,0.008328441000662434 +case_018_quiet_then_active_1400d,quiet_then_active,1400,1400.0,c845f948ca4a61b7d1347787ce7543a596096e955de529612ee2e39b0a5963cb,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7208952188826765,0.5,0.5,1.0,0.3358204493539718,0.06122124448866267,-1263.935666630599,0.5088311492259491,1400,884,0.017478115282774764 +case_019_active_then_quiet_1400d,active_then_quiet,1400,1400.0,9c23b9fcf5cf9e97f1dbddf1e6808e1021c8125fafade6d62a3b9c42dec849b9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6946293610425084,0.5,0.5,1.2,0.34017240931151876,0.09377130521290872,-1264.4081853795974,0.4643454244811543,1400,876,0.011809881492137575 +case_020_near_stationary_boundary_1400d,near_stationary_boundary,1400,1400.0,cf03c6e43288ca3d63f6e60b00e1df8a0eb784c7ca4d7574a69e246fedf959fc,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.7250225192913329,1.0,0.5,1.5,0.5863579959220675,0.010487293184582892,-1277.4936073140027,0.04385447419273761,1400,858,0.0173954600372368 +case_021_high_mc_1400d,high_mc,1400,1400.0,93ccdb4e389ef213160e005fa15ed6c0cc569dc6f78a87caad7cbf68e81b061d,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.8558053169151272,2.0,0.05,1.0,0.6402745752201303,0.0008411795745944375,-1306.0625030361764,0.02663577608383399,1400,920,0.03958071572787192 +case_022_low_count_1400d,low_count,1400,1400.0,9e7a5bf7f158dd7b58c00037d105e142ea8dac8331d863dffc8c41c1b9e6b0e3,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,INSUFFICIENT_EVIDENCE,,,,,,,,,,160,0, +case_023_burst_end_1400d,burst_end,1400,1400.0,091c75980542ec8a01bb2b0dec7c4f0424632b8b8edf953e1bd741d15090d2a7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,1.023838099086735,1.0,0.1,1.5,0.5020330673055853,0.03601684695511102,-1249.7316349525072,0.13688393155884454,1400,809,0.0029904248868229955 +case_024_burst_middle_1400d,burst_middle,1400,1400.0,b0ce65156c9a8c6bbdae9b12bb05379c56325c2de2b9f911d21fbab845a7126e,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9512106139360874,1.0,0.5,1.0,0.508678901699931,0.012334489567807267,-1253.7592217837919,0.12998896921377573,1400,814,0.00235780907865768 +case_025_background_low_2200d,background_low,2200,2200.0,cc8ec78ab75fbced51158fbd07d8370e5773f3fc8cee8742c3046f2fb64e8798,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.0820636074149013,2.0,0.05,1.5,0.5621292681170443,0.0023844648504839127,-1960.4058662044881,0.01627884709190733,2200,1257,0.0003094583107809967 +case_026_background_medium_2200d,background_medium,2200,2200.0,1972fc16fc08b9e981d1df61a7539d7075b282f87d31ece2944fbd7a1bbcb2b0,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7805842742395022,0.5,0.5,1.5,0.6768181784918353,2.061153622438558e-09,-2070.235031342369,5.080814315973724e-09,2200,1489,0.010454503373755974 +case_027_background_high_2200d,background_high,2200,2200.0,cf509915582347042dd4bb0defc357b39e7679378c5a3380cbf25e48e63c17e9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.7352749402889239,1.5,0.1,1.5,0.689002744949222,0.0011350527281283047,-2086.177052984255,0.010615767673129706,2200,1532,0.04149557347427779 +case_028_periodic_2200d,periodic,2200,2200.0,2dcb04376fc5f8cb782c50a4d87bf8d9e1c288fd65bb4a271dcf096608c7757f,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.0,0.532120560836353,0.5,0.05,1.5,0.6286851928828824,0.04253621903647872,-2118.5575737336076,0.15455331538745976,2200,1634,0.11945588917593342 +case_029_clustered_2200d,clustered,2200,2200.0,b50c73b9fea25d704a93872afa68e7bc26898a03597f4f1803ab445d9b65e5c7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.8078798358991817,1.0,0.5,1.2,0.5386075463032499,0.01768603814387915,-2006.1515205543844,0.12615005940488602,2200,1353,0.006276403761040994 +case_030_quiet_then_active_2200d,quiet_then_active,2200,2200.0,78d0cd702d8932b8e196c85efbe62810518ecb881d7c32518ea1fb36963c0e31,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7108839569740354,0.5,0.5,1.0,0.2923347765348,0.06762667878608304,-1957.6949803690823,0.5588782428460012,2200,1362,0.021983561905975724 +case_031_active_then_quiet_2200d,active_then_quiet,2200,2200.0,25078e1627b1bf87f500eaf302116a7cfc183f2ecff5b7cd5d35afd640b7cd6d,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6691931292595389,0.5,0.5,1.2,0.34598514328492885,0.08949912503680903,-1984.2042447182987,0.45807943781390925,2200,1390,0.016844561550426573 +case_032_near_stationary_boundary_2200d,near_stationary_boundary,2200,2200.0,e16dbd7e7e5faa788c35cd8b7162de94514ab4f9643effec95ae841c7d3ce9cf,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.7383323690478368,0.5,0.1,1.2,0.5121540748754967,0.03036143527932269,-2002.3374550509202,0.16120813431913023,2200,1339,0.015641527187117643 +case_033_high_mc_2200d,high_mc,2200,2200.0,c4dca19169862290b9df6623f1eef185d3c1c96348c61aa8ba0fc6204ff0f8b3,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.8553250878046821,0.5,0.5,1.5,0.580490067428407,0.03859873397051614,-2034.9078762929414,0.09244010054166445,2200,1406,0.03818856665306303 +case_034_low_count_2200d,low_count,2200,2200.0,12ea60134c410f16f418522731faf322bab254e43d04ad59721c95ca0913f9df,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.9707707787667366,0.5,0.5,1.5,0.07282658601268899,2.5936052694235568e-09,-579.1478811949175,5.943304648945578e-09,280,160,0.00031898858729750845 +case_035_burst_end_2200d,burst_end,2200,2200.0,f63611e4fec7ae0462ff7e32aa372442961c955bf0a9bd6c1c3435965f530e97,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,1.0027066474105577,2.0,0.5,1.0,0.5238813747255058,0.0019495647502525974,-1927.2054742720372,0.05588225949067181,2200,1206,0.0024665134578351067 +case_036_burst_middle_2200d,burst_middle,2200,2200.0,0e464ef6905617422ce0fa86f3ef30f48d5917c7f1769805206ca9c16c86000a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9772119359817875,1.0,0.5,1.5,0.5266747937106212,0.02400385540502039,-1957.995503585962,0.08024951909706632,2200,1259,0.0018355741662855474 diff --git a/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN2.csv b/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN2.csv new file mode 100644 index 0000000..c20dbd4 --- /dev/null +++ b/tests/fixtures/oracle/P34J_P34F_NORMATIVE_ETAS_ORACLE_RUN2.csv @@ -0,0 +1,37 @@ +case_id,mode,days,decision_time_days,catalog_sha256,contract_id,status,mc,b_value,alpha,c,p,mu,k,loglik,branching_proxy,events_total,events_above_mc,raw_probability +case_001_background_low_800d,background_low,800,800.0,956014d5d71abd6ac8feeae1cf4b1db7ea64a77db02656e9641a346223879d58,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.099734285330618,0.5,0.1,1.2,0.5812500125048311,4.843875586857497e-09,-717.2970597678407,2.2747518484288942e-08,800,465,0.00026940908278516584 +case_002_background_medium_800d,background_medium,800,800.0,cc0ad0ad54a8358a236d6a19c5a84b396f69f227276ca18e83eee4d93c422d14,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7953231199060717,0.5,0.5,1.0,0.6437499905126559,2.061153622438558e-09,-741.8290859207439,1.5984378229014198e-08,800,515,0.00886714978515446 +case_003_background_high_800d,background_high,800,800.0,d73cbdbc8d22c45d449a29caf5dde1aded42b578840cd81e45b75b86d8b5d7f4,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.697855521094888,0.5,0.5,1.5,0.7137499964412138,2.061153622438558e-09,-763.554057846621,5.274287457116134e-09,800,571,0.05403099749349061 +case_004_periodic_800d,periodic,800,800.0,15b708cacc2767ab56718a0eeb3e04980a69994249b168e592cc77e1d5a8fb73,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.0,0.5356909909722868,0.5,0.05,1.5,0.631693335813868,0.042776893258560635,-770.9063327211728,0.15503180280717152,800,596,0.12309020576844532 +case_005_clustered_800d,clustered,800,800.0,b2ae2825deccd2295bfa50eed794b7773981407edf59649d4b9115b47a5213c9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6247812984612532,0.5,0.5,1.5,0.4375608131102464,0.126423908117346,-741.0579087947996,0.3466821974249302,800,530,0.030059861450472347 +case_006_quiet_then_active_800d,quiet_then_active,800,800.0,a4608fa8963f49000a46470556842b8ac06fa7ab83b78555e96f8e225ad3a0f4,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7009003995158389,0.5,0.5,1.2,0.4160073580563775,0.08919743030952702,-746.7191556247744,0.44189388161139675,800,557,0.02080729201620657 +case_007_active_then_quiet_800d,active_then_quiet,800,800.0,69c21e0d438c20fb2ddb908abfa79ff3d03b1cb14845041cef631a79b36da8a6,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6673953511029859,1.0,0.5,1.0,0.381525785793053,0.026493125122001807,-716.9750460415614,0.40367313268663224,800,500,0.015471601063573481 +case_008_near_stationary_boundary_800d,near_stationary_boundary,800,800.0,e5265ba9f95fc4533f6201ad6614a06fe56139e928d2311b0b72d526f9cd51c7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.8,0.7357318564356397,1.5,0.5,1.2,0.45316847689767253,0.007212572850791551,-677.5441234456912,0.10674695339148951,800,404,0.01476021513899295 +case_009_high_mc_800d,high_mc,800,800.0,375c5ee11b5c7158d8ae76d779e6150d14bf86d62a62c8425f812a65de901f73,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.9066054797152211,2.0,0.5,1.0,0.5923424277912024,0.003109985385769341,-739.5185642670135,0.08560678213840692,800,511,0.04484181841883872 +case_010_low_count_800d,low_count,800,800.0,5859912e98af6109e236584640fab24e63035974b469ca67586b1fc83d340f66,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,INSUFFICIENT_EVIDENCE,,,,,,,,,,77,0, +case_011_burst_end_800d,burst_end,800,800.0,594a9b2ddc7b3c49c5aab6872eea011912708e143f104cf0970a6b84398a7421,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9404099135211558,0.5,0.5,1.2,0.49819734023348683,0.04530245787611279,-728.3565857863839,0.2068307568966184,800,491,0.003240930060184666 +case_012_burst_middle_800d,burst_middle,800,800.0,537fe2ba37e984a1c38f5a0756d8325fa19c2f3e9c33da748cbc2325253626b8,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.8769163068480662,1.0,0.5,1.0,0.5292266486950314,0.010876688327717727,-727.0998272132117,0.1426355792313952,800,490,0.004213840319811424 +case_013_background_low_1400d,background_low,1400,1400.0,dbb798e55c6adb1dff30fc86a014fa6c9fa125cd118d9a1348dfc8fcef203c6a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.0495544848005933,2.0,0.05,1.2,0.5386137689565788,0.002520781483974561,-1236.2795494812972,0.03524054733846967,1400,781,0.00039810764657854936 +case_014_background_medium_1400d,background_medium,1400,1400.0,5154909d7e48e9784b3f8850885bf0b274cff64a6b395760b418c833e5aa2f5e,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7956680637368339,0.5,0.5,1.0,0.6285604521446368,0.0038462228298340164,-1300.267059310508,0.029969328535346125,1400,906,0.008875921584342805 +case_015_background_high_1400d,background_high,1400,1400.0,e53fbbc26282f582a5c19ea4cf23940194008cdb81b904abd678f1035e36c734,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.7606470965516604,0.5,0.05,1.5,0.6384523140889641,0.021991325402971627,-1322.6251753607655,0.07169944472676454,1400,962,0.035363524342419295 +case_016_periodic_1400d,periodic,1400,1400.0,a1ba0145b73a1ad15ec39ec39a70bb6022bc504f2aa5250d7fb926220283348f,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.6093905928965958,0.5,0.05,1.5,0.32038602668884314,0.14968536105934832,-1287.5075202066337,0.5132674245015226,1400,911,0.09280924632674392 +case_017_clustered_1400d,clustered,1400,1400.0,f950fe0d163e05f4bcc675785b12517613e5f1e8a2a038a4cfded8b7e941503a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7701112004147558,0.5,0.5,1.5,0.5057352215374815,0.08839112115619419,-1297.5475589954012,0.22372378346002775,1400,909,0.008328441000662434 +case_018_quiet_then_active_1400d,quiet_then_active,1400,1400.0,c845f948ca4a61b7d1347787ce7543a596096e955de529612ee2e39b0a5963cb,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7208952188826765,0.5,0.5,1.0,0.3358204493539718,0.06122124448866267,-1263.935666630599,0.5088311492259491,1400,884,0.017478115282774764 +case_019_active_then_quiet_1400d,active_then_quiet,1400,1400.0,9c23b9fcf5cf9e97f1dbddf1e6808e1021c8125fafade6d62a3b9c42dec849b9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6946293610425084,0.5,0.5,1.2,0.34017240931151876,0.09377130521290872,-1264.4081853795974,0.4643454244811543,1400,876,0.011809881492137575 +case_020_near_stationary_boundary_1400d,near_stationary_boundary,1400,1400.0,cf03c6e43288ca3d63f6e60b00e1df8a0eb784c7ca4d7574a69e246fedf959fc,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.7250225192913329,1.0,0.5,1.5,0.5863579959220675,0.010487293184582892,-1277.4936073140027,0.04385447419273761,1400,858,0.0173954600372368 +case_021_high_mc_1400d,high_mc,1400,1400.0,93ccdb4e389ef213160e005fa15ed6c0cc569dc6f78a87caad7cbf68e81b061d,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.8558053169151272,2.0,0.05,1.0,0.6402745752201303,0.0008411795745944375,-1306.0625030361764,0.02663577608383399,1400,920,0.03958071572787192 +case_022_low_count_1400d,low_count,1400,1400.0,9e7a5bf7f158dd7b58c00037d105e142ea8dac8331d863dffc8c41c1b9e6b0e3,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,INSUFFICIENT_EVIDENCE,,,,,,,,,,160,0, +case_023_burst_end_1400d,burst_end,1400,1400.0,091c75980542ec8a01bb2b0dec7c4f0424632b8b8edf953e1bd741d15090d2a7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,1.023838099086735,1.0,0.1,1.5,0.5020330673055853,0.03601684695511102,-1249.7316349525072,0.13688393155884454,1400,809,0.0029904248868229955 +case_024_burst_middle_1400d,burst_middle,1400,1400.0,b0ce65156c9a8c6bbdae9b12bb05379c56325c2de2b9f911d21fbab845a7126e,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9512106139360874,1.0,0.5,1.0,0.508678901699931,0.012334489567807267,-1253.7592217837919,0.12998896921377573,1400,814,0.00235780907865768 +case_025_background_low_2200d,background_low,2200,2200.0,cc8ec78ab75fbced51158fbd07d8370e5773f3fc8cee8742c3046f2fb64e8798,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.2,1.0820636074149013,2.0,0.05,1.5,0.5621292681170443,0.0023844648504839127,-1960.4058662044881,0.01627884709190733,2200,1257,0.0003094583107809967 +case_026_background_medium_2200d,background_medium,2200,2200.0,1972fc16fc08b9e981d1df61a7539d7075b282f87d31ece2944fbd7a1bbcb2b0,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.7805842742395022,0.5,0.5,1.5,0.6768181784918353,2.061153622438558e-09,-2070.235031342369,5.080814315973724e-09,2200,1489,0.010454503373755974 +case_027_background_high_2200d,background_high,2200,2200.0,cf509915582347042dd4bb0defc357b39e7679378c5a3380cbf25e48e63c17e9,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.2,0.7352749402889239,1.5,0.1,1.5,0.689002744949222,0.0011350527281283047,-2086.177052984255,0.010615767673129706,2200,1532,0.04149557347427779 +case_028_periodic_2200d,periodic,2200,2200.0,2dcb04376fc5f8cb782c50a4d87bf8d9e1c288fd65bb4a271dcf096608c7757f,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.0,0.532120560836353,0.5,0.05,1.5,0.6286851928828824,0.04253621903647872,-2118.5575737336076,0.15455331538745976,2200,1634,0.11945588917593342 +case_029_clustered_2200d,clustered,2200,2200.0,b50c73b9fea25d704a93872afa68e7bc26898a03597f4f1803ab445d9b65e5c7,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.8078798358991817,1.0,0.5,1.2,0.5386075463032499,0.01768603814387915,-2006.1515205543844,0.12615005940488602,2200,1353,0.006276403761040994 +case_030_quiet_then_active_2200d,quiet_then_active,2200,2200.0,78d0cd702d8932b8e196c85efbe62810518ecb881d7c32518ea1fb36963c0e31,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.7108839569740354,0.5,0.5,1.0,0.2923347765348,0.06762667878608304,-1957.6949803690823,0.5588782428460012,2200,1362,0.021983561905975724 +case_031_active_then_quiet_2200d,active_then_quiet,2200,2200.0,25078e1627b1bf87f500eaf302116a7cfc183f2ecff5b7cd5d35afd640b7cd6d,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.5,0.6691931292595389,0.5,0.5,1.2,0.34598514328492885,0.08949912503680903,-1984.2042447182987,0.45807943781390925,2200,1390,0.016844561550426573 +case_032_near_stationary_boundary_2200d,near_stationary_boundary,2200,2200.0,e16dbd7e7e5faa788c35cd8b7162de94514ab4f9643effec95ae841c7d3ce9cf,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.7383323690478368,0.5,0.1,1.2,0.5121540748754967,0.03036143527932269,-2002.3374550509202,0.16120813431913023,2200,1339,0.015641527187117643 +case_033_high_mc_2200d,high_mc,2200,2200.0,c4dca19169862290b9df6623f1eef185d3c1c96348c61aa8ba0fc6204ff0f8b3,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,3.6,0.8553250878046821,0.5,0.5,1.5,0.580490067428407,0.03859873397051614,-2034.9078762929414,0.09244010054166445,2200,1406,0.03818856665306303 +case_034_low_count_2200d,low_count,2200,2200.0,12ea60134c410f16f418522731faf322bab254e43d04ad59721c95ca0913f9df,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.7,0.9707707787667366,0.5,0.5,1.5,0.07282658601268899,2.5936052694235568e-09,-579.1478811949175,5.943304648945578e-09,280,160,0.00031898858729750845 +case_035_burst_end_2200d,burst_end,2200,2200.0,f63611e4fec7ae0462ff7e32aa372442961c955bf0a9bd6c1c3435965f530e97,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,1.0027066474105577,2.0,0.5,1.0,0.5238813747255058,0.0019495647502525974,-1927.2054742720372,0.05588225949067181,2200,1206,0.0024665134578351067 +case_036_burst_middle_2200d,burst_middle,2200,2200.0,0e464ef6905617422ce0fa86f3ef30f48d5917c7f1769805206ca9c16c86000a,CAMEFF-FM-v1.4-P34F-NUMERICAL-REPRODUCIBILITY-v1,AVAILABLE,2.6,0.9772119359817875,1.0,0.5,1.5,0.5266747937106212,0.02400385540502039,-1957.995503585962,0.08024951909706632,2200,1259,0.0018355741662855474 diff --git a/tests/test_baseline_expert.c b/tests/test_baseline_expert.c deleted file mode 100644 index d376949..0000000 --- a/tests/test_baseline_expert.c +++ /dev/null @@ -1,107 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include -#include - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf(stderr, "check failed: %s at line %d\n", \ - #condition, __LINE__); \ - return 1; \ - } \ -} while (0) - -#define CHECK_CLOSE(actual, expected, tolerance) do { \ - if (fabs((actual) - (expected)) > (tolerance)) { \ - fprintf(stderr, \ - "check failed: %s ~= %s at line %d\n", \ - #actual, #expected, __LINE__); \ - return 1; \ - } \ -} while (0) - -static void initialize_frame(cameff_signal_frame_t *frame) { - size_t i; - - (void)memset(frame, 0, sizeof(*frame)); - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - frame->signals[i].value = 0.60; - frame->signals[i].confidence = 0.80; - frame->signals[i].supporting_events = 20U; - frame->signals[i].available = 1; - } - - frame->selected_event_count = 20U; - frame->data_confidence = 0.80; -} - -int main(void) { - cameff_signal_frame_t frame; - cameff_config_t config; - cameff_assessment_t legacy; - cameff_expert_result_t expert_result; - const cameff_expert_t *expert; - cameff_status_t status; - - initialize_frame(&frame); - cameff_config_default(&config); - - legacy = cameff_assess(&frame, &config); - - expert = cameff_baseline_expert(); - - CHECK(expert != NULL); - CHECK(expert->applicability != NULL); - CHECK(expert->evaluate != NULL); - - CHECK_CLOSE( - expert->applicability(&frame, NULL, NULL), - 1.0, - 1e-12 - ); - - status = expert->evaluate( - &frame, - &config, - NULL, - NULL, - &expert_result - ); - - CHECK(status == CAMEFF_STATUS_OK); - CHECK(expert_result.status == CAMEFF_EXPERT_OK); - - CHECK_CLOSE( - expert_result.hazard_evidence, - legacy.evidence_score, - 1e-12 - ); - - CHECK_CLOSE( - expert_result.confidence, - legacy.confidence, - 1e-12 - ); - - CHECK( - expert_result.decision == - legacy.level - ); - - CHECK_CLOSE( - expert_result.preparation_evidence, - 0.0, - 1e-12 - ); - - CHECK_CLOSE( - expert_result.cascade_evidence, - 0.0, - 1e-12 - ); - - puts("baseline expert tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/test_evaluation.c b/tests/test_evaluation.c deleted file mode 100644 index fefd484..0000000 --- a/tests/test_evaluation.c +++ /dev/null @@ -1,323 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include -#include - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf( \ - stderr, \ - "check failed: %s at line %d\n", \ - #condition, \ - __LINE__ \ - ); \ - return 1; \ - } \ -} while (0) - -static void initialize_frame( - cameff_signal_frame_t *frame, - double value, - double confidence -) { - size_t i; - - (void)memset(frame, 0, sizeof(*frame)); - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - frame->signals[i].value = value; - frame->signals[i].confidence = confidence; - frame->signals[i].supporting_events = 40U; - frame->signals[i].available = 1; - } - - frame->selected_event_count = 40U; - frame->data_confidence = confidence; -} - -static void initialize_subduction_region( - cameff_region_profile_t *region -) { - (void)memset(region, 0, sizeof(*region)); - - (void)snprintf( - region->region_id, - sizeof(region->region_id), - "%s", - "test-subduction-region" - ); - - region->tectonic_setting = - CAMEFF_TECTONIC_SUBDUCTION; - - region->subduction_affinity = 1.0; - region->crustal_fault_affinity = 0.10; - region->transform_affinity = 0.05; - region->volcanic_affinity = 0.05; - - region->fault_map_confidence = 0.90; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static int test_end_to_end_subduction_evaluation(void) { - cameff_signal_frame_t frame; - cameff_config_t config; - cameff_region_profile_t region; - cameff_evaluation_options_t options; - cameff_evaluation_result_t result; - - initialize_frame(&frame, 0.80, 0.90); - initialize_subduction_region(®ion); - cameff_config_default(&config); - cameff_evaluation_options_default(&options); - - CHECK( - cameff_evaluate_experts( - &frame, - &config, - ®ion, - &options, - &result - ) == CAMEFF_STATUS_OK - ); - - CHECK( - result.patterns.count == - CAMEFF_PATTERN_COUNT - ); - - CHECK( - result.patterns.dominant_pattern == - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ); - - CHECK( - result.fusion.expert_result_count == 4U - ); - - CHECK( - result.fusion.hazard_evidence >= 0.0 - ); - - CHECK( - result.fusion.hazard_evidence <= 1.0 - ); - - CHECK( - result.fusion.preparation_evidence >= 0.0 - ); - - CHECK( - result.fusion.preparation_evidence <= 1.0 - ); - - CHECK( - result.fusion.cascade_evidence >= 0.0 - ); - - CHECK( - result.fusion.cascade_evidence <= 1.0 - ); - - CHECK( - result.fusion.fused_confidence > 0.0 - ); - - CHECK( - strcmp( - result.fusion.expert_results[0].expert_name, - "baseline" - ) == 0 - ); - - CHECK( - strcmp( - result.fusion.expert_results[1].expert_name, - "subduction" - ) == 0 - ); - - CHECK( - strcmp( - result.fusion.expert_results[2].expert_name, - "crustal-fault" - ) == 0 - ); - - CHECK( - strcmp( - result.fusion.expert_results[3].expert_name, - "seismic-cascade" - ) == 0 - ); - - CHECK( - result.fusion.expert_results[0].status == - CAMEFF_EXPERT_OK - ); - - return 0; -} - -static int test_quiet_background_evaluation(void) { - cameff_signal_frame_t frame; - cameff_config_t config; - cameff_region_profile_t region; - cameff_evaluation_options_t options; - cameff_evaluation_result_t result; - - initialize_frame(&frame, 0.0, 1.0); - initialize_subduction_region(®ion); - cameff_config_default(&config); - cameff_evaluation_options_default(&options); - - CHECK( - cameff_evaluate_experts( - &frame, - &config, - ®ion, - &options, - &result - ) == CAMEFF_STATUS_OK - ); - - CHECK( - result.patterns.dominant_pattern == - CAMEFF_PATTERN_BACKGROUND - ); - - CHECK( - result.fusion.decision == - CAMEFF_DECISION_BACKGROUND - ); - - return 0; -} - -static int test_explanation_output(void) { - cameff_signal_frame_t frame; - cameff_config_t config; - cameff_region_profile_t region; - cameff_evaluation_options_t options; - cameff_evaluation_result_t result; - char explanation[8192]; - - initialize_frame(&frame, 0.75, 0.90); - initialize_subduction_region(®ion); - cameff_config_default(&config); - cameff_evaluation_options_default(&options); - - CHECK( - cameff_evaluate_experts( - &frame, - &config, - ®ion, - &options, - &result - ) == CAMEFF_STATUS_OK - ); - - CHECK( - cameff_format_evaluation( - &result, - explanation, - sizeof(explanation) - ) == CAMEFF_STATUS_OK - ); - - CHECK( - strstr( - explanation, - "dominant_pattern=" - ) != NULL - ); - - CHECK( - strstr( - explanation, - "fused_hazard_evidence=" - ) != NULL - ); - - CHECK( - strstr( - explanation, - "expert=baseline" - ) != NULL - ); - - CHECK( - strstr( - explanation, - "expert=subduction" - ) != NULL - ); - - CHECK( - strstr( - explanation, - "routing_strength=" - ) != NULL - ); - - CHECK( - strstr( - explanation, - "decision=" - ) != NULL - ); - - return 0; -} - -static int test_invalid_options(void) { - cameff_signal_frame_t frame; - cameff_config_t config; - cameff_region_profile_t region; - cameff_evaluation_options_t options; - cameff_evaluation_result_t result; - - initialize_frame(&frame, 0.50, 0.80); - initialize_subduction_region(®ion); - cameff_config_default(&config); - cameff_evaluation_options_default(&options); - - options.watch_threshold = 0.80; - options.elevated_threshold = 0.70; - - CHECK( - cameff_evaluate_experts( - &frame, - &config, - ®ion, - &options, - &result - ) == CAMEFF_STATUS_INVALID_ARGUMENT - ); - - return 0; -} - -int main(void) { - CHECK( - test_end_to_end_subduction_evaluation() == 0 - ); - - CHECK( - test_quiet_background_evaluation() == 0 - ); - - CHECK( - test_explanation_output() == 0 - ); - - CHECK( - test_invalid_options() == 0 - ); - - puts("end-to-end evaluation tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/test_expert_registry.c b/tests/test_expert_registry.c deleted file mode 100644 index 1a09aa4..0000000 --- a/tests/test_expert_registry.c +++ /dev/null @@ -1,286 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include -#include - -#define TEST_TOLERANCE 1e-12 - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf(stderr, "check failed: %s at line %d\n", \ - #condition, __LINE__); \ - return 1; \ - } \ -} while (0) - -#define CHECK_CLOSE(actual, expected, tolerance) do { \ - if (fabs((actual) - (expected)) > (tolerance)) { \ - fprintf(stderr, \ - "check failed: %s ~= %s at line %d\n", \ - #actual, #expected, __LINE__); \ - return 1; \ - } \ -} while (0) - -static void initialize_frame( - cameff_signal_frame_t *frame -) { - size_t i; - - (void)memset(frame, 0, sizeof(*frame)); - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - frame->signals[i].value = 0.70; - frame->signals[i].confidence = 0.90; - frame->signals[i].supporting_events = 25U; - frame->signals[i].available = 1; - } - - frame->selected_event_count = 25U; - frame->data_confidence = 0.90; -} - -static void initialize_region( - cameff_region_profile_t *region -) { - (void)memset(region, 0, sizeof(*region)); - - region->tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION; - region->subduction_affinity = 1.0; - region->fault_map_confidence = 0.90; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static double subduction_applicability( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - (void)frame; - (void)patterns; - - if (region == NULL) { - return 0.0; - } - - return region->subduction_affinity; -} - -static cameff_status_t subduction_evaluate( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -) { - (void)frame; - (void)config; - (void)region; - (void)patterns; - - if (result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - "test-subduction" - ); - - result->hazard_evidence = 0.75; - result->preparation_evidence = 0.80; - result->confidence = 0.85; - result->decision = CAMEFF_DECISION_ELEVATED; - result->status = CAMEFF_EXPERT_OK; - - return CAMEFF_STATUS_OK; -} - -static const cameff_expert_t TEST_SUBDUCTION_EXPERT = { - "test-subduction", - CAMEFF_PATTERN_SUBDUCTION_PREPARATION, - subduction_applicability, - subduction_evaluate -}; - -static int test_registration(void) { - cameff_expert_registry_t registry; - - cameff_expert_registry_init(®istry); - - CHECK(cameff_expert_registry_count(®istry) == 0U); - - CHECK( - cameff_expert_registry_register( - ®istry, - cameff_baseline_expert() - ) == CAMEFF_STATUS_OK - ); - - CHECK( - cameff_expert_registry_register( - ®istry, - &TEST_SUBDUCTION_EXPERT - ) == CAMEFF_STATUS_OK - ); - - CHECK(cameff_expert_registry_count(®istry) == 2U); - - CHECK( - cameff_expert_registry_get(®istry, 0U) == - cameff_baseline_expert() - ); - - CHECK( - cameff_expert_registry_get(®istry, 2U) == - NULL - ); - - CHECK( - cameff_expert_registry_register( - ®istry, - &TEST_SUBDUCTION_EXPERT - ) == CAMEFF_STATUS_INVALID_ARGUMENT - ); - - return 0; -} - -static int test_routing_strength(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t patterns; - double routing_strength; - - initialize_frame(&frame); - initialize_region(®ion); - (void)memset(&patterns, 0, sizeof(patterns)); - - patterns.count = CAMEFF_PATTERN_COUNT; - - patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].pattern_id = - CAMEFF_PATTERN_SUBDUCTION_PREPARATION; - - patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership = 0.80; - - routing_strength = - cameff_expert_routing_strength( - &TEST_SUBDUCTION_EXPERT, - &frame, - ®ion, - &patterns - ); - - CHECK_CLOSE(routing_strength, 0.80, TEST_TOLERANCE); - - routing_strength = - cameff_expert_routing_strength( - cameff_baseline_expert(), - &frame, - ®ion, - &patterns - ); - - CHECK_CLOSE(routing_strength, 1.0, TEST_TOLERANCE); - - return 0; -} - -static int test_activation_and_abstention(void) { - cameff_expert_registry_t registry; - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t patterns; - cameff_config_t config; - cameff_expert_result_t results[CAMEFF_MAX_EXPERTS]; - size_t result_count; - - initialize_frame(&frame); - initialize_region(®ion); - cameff_config_default(&config); - - (void)memset(&patterns, 0, sizeof(patterns)); - patterns.count = CAMEFF_PATTERN_COUNT; - - patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].pattern_id = - CAMEFF_PATTERN_SUBDUCTION_PREPARATION; - - patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership = 0.10; - - cameff_expert_registry_init(®istry); - - CHECK( - cameff_expert_registry_register( - ®istry, - cameff_baseline_expert() - ) == CAMEFF_STATUS_OK - ); - - CHECK( - cameff_expert_registry_register( - ®istry, - &TEST_SUBDUCTION_EXPERT - ) == CAMEFF_STATUS_OK - ); - - CHECK( - cameff_expert_registry_evaluate( - ®istry, - &frame, - &config, - ®ion, - &patterns, - 0.20, - results, - CAMEFF_MAX_EXPERTS, - &result_count - ) == CAMEFF_STATUS_OK - ); - - CHECK(result_count == 2U); - - CHECK(results[0].status == CAMEFF_EXPERT_OK); - CHECK_CLOSE( - results[0].routing_strength, - 1.0, - TEST_TOLERANCE - ); - - CHECK(results[1].status == CAMEFF_EXPERT_ABSTAIN); - CHECK_CLOSE( - results[1].routing_strength, - 0.10, - TEST_TOLERANCE - ); - - CHECK( - results[1].decision == - CAMEFF_DECISION_INSUFFICIENT_DATA - ); - - return 0; -} - -int main(void) { - CHECK(test_registration() == 0); - CHECK(test_routing_strength() == 0); - CHECK(test_activation_and_abstention() == 0); - - puts("expert registry tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/test_fusion.c b/tests/test_fusion.c deleted file mode 100644 index d1a0af1..0000000 --- a/tests/test_fusion.c +++ /dev/null @@ -1,372 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include -#include - -#define TEST_TOLERANCE 1e-12 - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf(stderr, \ - "check failed: %s at line %d\n", \ - #condition, __LINE__); \ - return 1; \ - } \ -} while (0) - -#define CHECK_CLOSE(actual, expected, tolerance) do { \ - if (fabs((actual) - (expected)) > (tolerance)) { \ - fprintf(stderr, \ - "check failed: %s ~= %s at line %d\n", \ - #actual, #expected, __LINE__); \ - return 1; \ - } \ -} while (0) - -static void initialize_result( - cameff_expert_result_t *result, - const char *name, - cameff_expert_status_t status, - double routing_strength, - double confidence, - double hazard, - double preparation, - double cascade -) { - (void)memset(result, 0, sizeof(*result)); - - (void)snprintf( - result->expert_name, - sizeof(result->expert_name), - "%s", - name - ); - - result->status = status; - result->routing_strength = routing_strength; - result->confidence = confidence; - result->hazard_evidence = hazard; - result->preparation_evidence = preparation; - result->cascade_evidence = cascade; -} - -static void initialize_patterns( - cameff_pattern_result_t *patterns, - double confidence -) { - (void)memset(patterns, 0, sizeof(*patterns)); - - patterns->count = CAMEFF_PATTERN_COUNT; - patterns->dominant_pattern = - CAMEFF_PATTERN_SUBDUCTION_PREPARATION; - - patterns->classification_confidence = - confidence; -} - -static int test_weighted_fusion(void) { - cameff_expert_result_t experts[2]; - cameff_pattern_result_t patterns; - cameff_multi_expert_result_t fused; - double expected_hazard; - double expected_preparation; - double expected_cascade; - - initialize_result( - &experts[0], - "subduction", - CAMEFF_EXPERT_OK, - 0.80, - 0.90, - 0.80, - 0.85, - 0.10 - ); - - initialize_result( - &experts[1], - "cascade", - CAMEFF_EXPERT_OK, - 0.40, - 0.50, - 0.50, - 0.20, - 0.90 - ); - - initialize_patterns(&patterns, 1.0); - - /* - * Effective weights: - * - * subduction = 0.80 * 0.90 = 0.72 - * cascade = 0.40 * 0.50 = 0.20 - */ - expected_hazard = - ((0.72 * 0.80) + (0.20 * 0.50)) / - (0.72 + 0.20); - - expected_preparation = - ((0.72 * 0.85) + (0.20 * 0.20)) / - (0.72 + 0.20); - - expected_cascade = - ((0.72 * 0.10) + (0.20 * 0.90)) / - (0.72 + 0.20); - - CHECK( - cameff_fuse_expert_results( - experts, - 2U, - &patterns, - 0.25, - 0.45, - 0.70, - &fused - ) == CAMEFF_STATUS_OK - ); - - CHECK_CLOSE( - fused.hazard_evidence, - expected_hazard, - TEST_TOLERANCE - ); - - CHECK_CLOSE( - fused.preparation_evidence, - expected_preparation, - TEST_TOLERANCE - ); - - CHECK_CLOSE( - fused.cascade_evidence, - expected_cascade, - TEST_TOLERANCE - ); - - CHECK( - fused.decision == - CAMEFF_DECISION_ELEVATED - ); - - CHECK( - fused.dominant_pattern == - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ); - - return 0; -} - -static int test_abstention_is_excluded(void) { - cameff_expert_result_t experts[2]; - cameff_pattern_result_t patterns; - cameff_multi_expert_result_t fused; - - initialize_result( - &experts[0], - "baseline", - CAMEFF_EXPERT_OK, - 1.0, - 0.80, - 0.60, - 0.00, - 0.00 - ); - - initialize_result( - &experts[1], - "crustal-fault", - CAMEFF_EXPERT_ABSTAIN, - 0.10, - 1.00, - 1.00, - 1.00, - 1.00 - ); - - initialize_patterns(&patterns, 1.0); - - CHECK( - cameff_fuse_expert_results( - experts, - 2U, - &patterns, - 0.25, - 0.45, - 0.70, - &fused - ) == CAMEFF_STATUS_OK - ); - - CHECK_CLOSE( - fused.hazard_evidence, - 0.60, - TEST_TOLERANCE - ); - - CHECK_CLOSE( - fused.preparation_evidence, - 0.00, - TEST_TOLERANCE - ); - - CHECK_CLOSE( - fused.cascade_evidence, - 0.00, - TEST_TOLERANCE - ); - - CHECK( - fused.expert_results[1].status == - CAMEFF_EXPERT_ABSTAIN - ); - - return 0; -} - -static int test_no_active_experts(void) { - cameff_expert_result_t experts[2]; - cameff_pattern_result_t patterns; - cameff_multi_expert_result_t fused; - - initialize_result( - &experts[0], - "subduction", - CAMEFF_EXPERT_ABSTAIN, - 0.10, - 0.90, - 0.90, - 0.90, - 0.00 - ); - - initialize_result( - &experts[1], - "cascade", - CAMEFF_EXPERT_INSUFFICIENT_DATA, - 0.40, - 0.10, - 0.80, - 0.10, - 0.80 - ); - - initialize_patterns(&patterns, 0.80); - - CHECK( - cameff_fuse_expert_results( - experts, - 2U, - &patterns, - 0.25, - 0.45, - 0.70, - &fused - ) == CAMEFF_STATUS_OK - ); - - CHECK_CLOSE( - fused.hazard_evidence, - 0.0, - TEST_TOLERANCE - ); - - CHECK_CLOSE( - fused.fused_confidence, - 0.0, - TEST_TOLERANCE - ); - - CHECK( - fused.decision == - CAMEFF_DECISION_INSUFFICIENT_DATA - ); - - return 0; -} - -static int test_low_classification_confidence(void) { - cameff_expert_result_t expert; - cameff_pattern_result_t patterns; - cameff_multi_expert_result_t fused; - - initialize_result( - &expert, - "subduction", - CAMEFF_EXPERT_OK, - 1.0, - 0.90, - 0.90, - 0.90, - 0.00 - ); - - initialize_patterns(&patterns, 0.20); - - CHECK( - cameff_fuse_expert_results( - &expert, - 1U, - &patterns, - 0.25, - 0.45, - 0.70, - &fused - ) == CAMEFF_STATUS_OK - ); - - CHECK_CLOSE( - fused.fused_confidence, - 0.18, - TEST_TOLERANCE - ); - - CHECK( - fused.decision == - CAMEFF_DECISION_INSUFFICIENT_DATA - ); - - return 0; -} - -static int test_invalid_thresholds(void) { - cameff_expert_result_t expert; - cameff_multi_expert_result_t fused; - - initialize_result( - &expert, - "baseline", - CAMEFF_EXPERT_OK, - 1.0, - 1.0, - 0.50, - 0.00, - 0.00 - ); - - CHECK( - cameff_fuse_expert_results( - &expert, - 1U, - NULL, - 0.25, - 0.80, - 0.70, - &fused - ) == CAMEFF_STATUS_INVALID_ARGUMENT - ); - - return 0; -} - -int main(void) { - CHECK(test_weighted_fusion() == 0); - CHECK(test_abstention_is_excluded() == 0); - CHECK(test_no_active_experts() == 0); - CHECK(test_low_classification_confidence() == 0); - CHECK(test_invalid_thresholds() == 0); - - puts("expert fusion tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/test_m2_contracts.c b/tests/test_m2_contracts.c deleted file mode 100644 index bc7e3c9..0000000 --- a/tests/test_m2_contracts.c +++ /dev/null @@ -1,85 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf(stderr, "check failed: %s at line %d\n", #condition, __LINE__); \ - return 1; \ - } \ -} while (0) - -static double test_applicability( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns -) { - (void)frame; - (void)region; - (void)patterns; - return 1.0; -} - -static cameff_status_t test_evaluate( - const cameff_signal_frame_t *frame, - const cameff_config_t *config, - const cameff_region_profile_t *region, - const cameff_pattern_result_t *patterns, - cameff_expert_result_t *result -) { - (void)frame; - (void)config; - (void)region; - (void)patterns; - - if (result == NULL) { - return CAMEFF_STATUS_INVALID_ARGUMENT; - } - - (void)memset(result, 0, sizeof(*result)); - result->status = CAMEFF_EXPERT_OK; - result->applicability = 1.0; - result->confidence = 1.0; - return CAMEFF_STATUS_OK; -} - -int main(void) { - cameff_region_profile_t region; - cameff_pattern_result_t patterns; - cameff_expert_t expert; - cameff_expert_result_t result; - cameff_multi_expert_result_t fused; - - (void)memset(®ion, 0, sizeof(region)); - (void)memset(&patterns, 0, sizeof(patterns)); - (void)memset(&result, 0, sizeof(result)); - (void)memset(&fused, 0, sizeof(fused)); - - region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION; - region.subduction_affinity = 1.0; - patterns.count = CAMEFF_PATTERN_COUNT; - patterns.dominant_pattern = CAMEFF_PATTERN_SUBDUCTION_PREPARATION; - - expert = (cameff_expert_t){ - "contract-test", - CAMEFF_PATTERN_SUBDUCTION_PREPARATION, - test_applicability, - test_evaluate - }; - - CHECK(CAMEFF_PATTERN_COUNT == 7U); - CHECK(CAMEFF_MAX_EXPERTS >= 4U); - CHECK(region.tectonic_setting == CAMEFF_TECTONIC_SUBDUCTION); - CHECK(patterns.count == CAMEFF_PATTERN_COUNT); - CHECK(expert.applicability(NULL, ®ion, &patterns) == 1.0); - CHECK(expert.evaluate(NULL, NULL, ®ion, &patterns, &result) == CAMEFF_STATUS_OK); - CHECK(result.status == CAMEFF_EXPERT_OK); - - fused.dominant_pattern = patterns.dominant_pattern; - fused.decision = CAMEFF_DECISION_INSUFFICIENT_DATA; - CHECK(fused.dominant_pattern == CAMEFF_PATTERN_SUBDUCTION_PREPARATION); - - puts("milestone 2 contract tests passed"); - return 0; -} diff --git a/tests/test_main.c b/tests/test_main.c deleted file mode 100644 index 9bce2a9..0000000 --- a/tests/test_main.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "cameff/cameff.h" -#include -#include -#include - -#define CHECK(condition) do { if (!(condition)) { fprintf(stderr, "check failed: %s at line %d\n", #condition, __LINE__); return 1; } } while (0) - -static cameff_event_t make_event(int64_t timestamp, double latitude, double longitude, - double depth, double magnitude) { - cameff_event_t event; - (void)memset(&event, 0, sizeof(event)); - event.epoch_seconds = timestamp; - event.latitude_deg = latitude; - event.longitude_deg = longitude; - event.depth_km = depth; - event.magnitude = magnitude; - return event; -} - -int main(void) { - cameff_catalog_t catalog; - cameff_config_t config; - cameff_analysis_window_t window; - cameff_signal_frame_t frame; - cameff_assessment_t assessment; - int64_t cutoff = 0; - size_t i; - - CHECK(fabs(cameff_haversine_km(0.0, 0.0, 0.0, 1.0) - 111.195) < 0.2); - CHECK(cameff_parse_iso8601_utc("2026-01-31T00:00:00Z", &cutoff) == CAMEFF_STATUS_OK); - cameff_catalog_init(&catalog); - cameff_config_default(&config); - for (i = 0U; i < 12U; i++) { - cameff_event_t event = make_event(cutoff - (int64_t)(11U - i) * 3600, - 10.0 + 0.01 * (double)i, 123.0, - 40.0 - (double)i, 4.0 + 0.08 * (double)i); - CHECK(cameff_catalog_append(&catalog, &event) == CAMEFF_STATUS_OK); - } - window = (cameff_analysis_window_t){10.0, 123.0, 100.0, 7U, cutoff}; - CHECK(cameff_extract_signal_frame(&catalog, &window, &config, &frame) == CAMEFF_STATUS_OK); - CHECK(frame.selected_event_count == 12U); - CHECK(frame.signals[CAMEFF_SIGNAL_TEMPORAL_ACCELERATION].value > 0.5); - assessment = cameff_assess(&frame, &config); - CHECK(assessment.available_signal_count >= 7U); - CHECK(assessment.level != CAMEFF_DECISION_INSUFFICIENT_DATA); - cameff_catalog_free(&catalog); - puts("all tests passed"); - return 0; -} diff --git a/tests/test_pattern.c b/tests/test_pattern.c deleted file mode 100644 index 8ce07be..0000000 --- a/tests/test_pattern.c +++ /dev/null @@ -1,305 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include -#include - -#define TEST_TOLERANCE 1e-12 - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf(stderr, "check failed: %s at line %d\n", \ - #condition, __LINE__); \ - return 1; \ - } \ -} while (0) - -#define CHECK_CLOSE(actual, expected, tolerance) do { \ - if (fabs((actual) - (expected)) > (tolerance)) { \ - fprintf(stderr, \ - "check failed: %s ~= %s at line %d\n", \ - #actual, #expected, __LINE__); \ - return 1; \ - } \ -} while (0) - -static void initialize_frame( - cameff_signal_frame_t *frame, - double value, - double confidence -) { - size_t i; - - (void)memset(frame, 0, sizeof(*frame)); - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - frame->signals[i].value = value; - frame->signals[i].confidence = confidence; - frame->signals[i].supporting_events = 30U; - frame->signals[i].available = 1; - } - - frame->selected_event_count = 30U; - frame->data_confidence = confidence; -} - -static void initialize_region( - cameff_region_profile_t *region -) { - (void)memset(region, 0, sizeof(*region)); - - region->tectonic_setting = CAMEFF_TECTONIC_UNKNOWN; - region->fault_map_confidence = 0.80; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static int test_memberships_are_normalized(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t result; - cameff_status_t status; - double total; - size_t i; - - initialize_frame(&frame, 0.50, 0.80); - initialize_region(®ion); - - region.subduction_affinity = 1.0; - region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION; - - status = cameff_classify_patterns( - &frame, - ®ion, - &result - ); - - CHECK(status == CAMEFF_STATUS_OK); - CHECK(result.count == CAMEFF_PATTERN_COUNT); - - total = 0.0; - - for (i = 0U; i < result.count; ++i) { - CHECK(result.scores[i].membership >= 0.0); - CHECK(result.scores[i].membership <= 1.0); - CHECK(result.scores[i].confidence >= 0.0); - CHECK(result.scores[i].confidence <= 1.0); - - total += result.scores[i].membership; - } - - CHECK_CLOSE(total, 1.0, TEST_TOLERANCE); - - return 0; -} - -static int test_quiet_signals_favor_background(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t result; - - initialize_frame(&frame, 0.0, 1.0); - initialize_region(®ion); - - CHECK( - cameff_classify_patterns( - &frame, - ®ion, - &result - ) == CAMEFF_STATUS_OK - ); - - CHECK( - result.dominant_pattern == - CAMEFF_PATTERN_BACKGROUND - ); - - return 0; -} - -static int test_subduction_profile_favors_subduction(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t result; - - initialize_frame(&frame, 0.75, 0.90); - initialize_region(®ion); - - region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION; - region.subduction_affinity = 1.0; - - CHECK( - cameff_classify_patterns( - &frame, - ®ion, - &result - ) == CAMEFF_STATUS_OK - ); - - CHECK( - result.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership > - result.scores[ - CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY - ].membership - ); - - CHECK( - result.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership > - result.scores[ - CAMEFF_PATTERN_VOLCANIC_UNREST - ].membership - ); - - return 0; -} - -static int test_crustal_profile_favors_crustal_pattern(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t result; - - initialize_frame(&frame, 0.70, 0.90); - initialize_region(®ion); - - region.tectonic_setting = CAMEFF_TECTONIC_CRUSTAL; - region.crustal_fault_affinity = 1.0; - region.fault_map_confidence = 0.25; - - frame.signals[ - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ].value = 1.0; - - CHECK( - cameff_classify_patterns( - &frame, - ®ion, - &result - ) == CAMEFF_STATUS_OK - ); - - CHECK( - result.scores[ - CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION - ].membership > - result.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership - ); - - return 0; -} - -static int test_low_quality_increases_unknown(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t low_quality; - cameff_pattern_result_t high_quality; - - initialize_frame(&frame, 0.40, 0.20); - initialize_region(®ion); - - region.catalog_completeness = 0.10; - region.station_coverage = 0.10; - region.regional_prior_confidence = 0.10; - - frame.data_confidence = 0.10; - frame.signals[ - CAMEFF_SIGNAL_CATALOG_COMPLETENESS - ].value = 0.10; - - CHECK( - cameff_classify_patterns( - &frame, - ®ion, - &low_quality - ) == CAMEFF_STATUS_OK - ); - - initialize_frame(&frame, 0.40, 0.90); - initialize_region(®ion); - - CHECK( - cameff_classify_patterns( - &frame, - ®ion, - &high_quality - ) == CAMEFF_STATUS_OK - ); - - CHECK( - low_quality.scores[ - CAMEFF_PATTERN_UNKNOWN - ].membership > - high_quality.scores[ - CAMEFF_PATTERN_UNKNOWN - ].membership - ); - - CHECK( - low_quality.classification_confidence < - high_quality.classification_confidence - ); - - return 0; -} - -static int test_invalid_arguments(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_pattern_result_t result; - - initialize_frame(&frame, 0.50, 0.80); - initialize_region(®ion); - - CHECK( - cameff_classify_patterns( - NULL, - ®ion, - &result - ) == CAMEFF_STATUS_INVALID_ARGUMENT - ); - - CHECK( - cameff_classify_patterns( - &frame, - NULL, - &result - ) == CAMEFF_STATUS_INVALID_ARGUMENT - ); - - CHECK( - cameff_classify_patterns( - &frame, - ®ion, - NULL - ) == CAMEFF_STATUS_INVALID_ARGUMENT - ); - - return 0; -} - -int main(void) { - CHECK(test_memberships_are_normalized() == 0); - CHECK(test_quiet_signals_favor_background() == 0); - CHECK(test_subduction_profile_favors_subduction() == 0); - CHECK(test_crustal_profile_favors_crustal_pattern() == 0); - CHECK(test_low_quality_increases_unknown() == 0); - CHECK(test_invalid_arguments() == 0); - - CHECK( - strcmp( - cameff_pattern_name( - CAMEFF_PATTERN_SEISMIC_CASCADE - ), - "SEISMIC_CASCADE" - ) == 0 - ); - - puts("pattern classifier tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/test_specialized_experts.c b/tests/test_specialized_experts.c deleted file mode 100644 index 83b431a..0000000 --- a/tests/test_specialized_experts.c +++ /dev/null @@ -1,196 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include -#include - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf(stderr, "check failed: %s at line %d\n", \ - #condition, __LINE__); \ - return 1; \ - } \ -} while (0) - -static void initialize_frame( - cameff_signal_frame_t *frame, - double value -) { - size_t i; - - (void)memset(frame, 0, sizeof(*frame)); - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - frame->signals[i].value = value; - frame->signals[i].confidence = 0.90; - frame->signals[i].supporting_events = 30U; - frame->signals[i].available = 1; - } - - frame->selected_event_count = 30U; - frame->data_confidence = 0.90; -} - -static void initialize_region( - cameff_region_profile_t *region -) { - (void)memset(region, 0, sizeof(*region)); - - region->fault_map_confidence = 0.80; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static int evaluate_expert( - const cameff_expert_t *expert, - cameff_signal_frame_t *frame, - cameff_region_profile_t *region, - cameff_expert_result_t *result -) { - cameff_config_t config; - - cameff_config_default(&config); - - CHECK(expert != NULL); - CHECK(expert->applicability != NULL); - CHECK(expert->evaluate != NULL); - - CHECK( - expert->evaluate( - frame, - &config, - region, - NULL, - result - ) == CAMEFF_STATUS_OK - ); - - CHECK(result->hazard_evidence >= 0.0); - CHECK(result->hazard_evidence <= 1.0); - CHECK(result->preparation_evidence >= 0.0); - CHECK(result->preparation_evidence <= 1.0); - CHECK(result->cascade_evidence >= 0.0); - CHECK(result->cascade_evidence <= 1.0); - CHECK(result->confidence >= 0.0); - CHECK(result->confidence <= 1.0); - - return 0; -} - -static int test_subduction_expert(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_expert_result_t result; - const cameff_expert_t *expert; - - initialize_frame(&frame, 0.80); - initialize_region(®ion); - - region.tectonic_setting = CAMEFF_TECTONIC_SUBDUCTION; - region.subduction_affinity = 1.0; - - expert = cameff_subduction_expert(); - - CHECK( - expert->applicability( - &frame, - ®ion, - NULL - ) > 0.80 - ); - - CHECK(evaluate_expert(expert, &frame, ®ion, &result) == 0); - CHECK(result.status == CAMEFF_EXPERT_OK); - CHECK(result.preparation_evidence > 0.50); - CHECK(result.cascade_evidence == 0.0); - - return 0; -} - -static int test_crustal_fault_uncertainty_is_guarded(void) { - cameff_signal_frame_t quiet_frame; - cameff_signal_frame_t active_frame; - cameff_region_profile_t region; - cameff_expert_result_t quiet_result; - cameff_expert_result_t active_result; - const cameff_expert_t *expert; - - initialize_frame(&quiet_frame, 0.0); - initialize_frame(&active_frame, 0.80); - initialize_region(®ion); - - region.tectonic_setting = CAMEFF_TECTONIC_CRUSTAL; - region.crustal_fault_affinity = 0.70; - region.fault_map_confidence = 0.10; - - expert = cameff_crustal_fault_expert(); - - CHECK( - evaluate_expert( - expert, - &quiet_frame, - ®ion, - &quiet_result - ) == 0 - ); - - CHECK( - evaluate_expert( - expert, - &active_frame, - ®ion, - &active_result - ) == 0 - ); - - CHECK( - active_result.preparation_evidence > - quiet_result.preparation_evidence - ); - - CHECK( - quiet_result.hazard_evidence < 0.45 - ); - - return 0; -} - -static int test_cascade_expert(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_expert_result_t result; - const cameff_expert_t *expert; - - initialize_frame(&frame, 0.85); - initialize_region(®ion); - - expert = cameff_cascade_expert(); - - CHECK( - expert->applicability( - &frame, - ®ion, - NULL - ) > 0.70 - ); - - CHECK(evaluate_expert(expert, &frame, ®ion, &result) == 0); - CHECK(result.status == CAMEFF_EXPERT_OK); - CHECK(result.cascade_evidence > 0.60); - CHECK( - result.cascade_evidence > - result.preparation_evidence - ); - - return 0; -} - -int main(void) { - CHECK(test_subduction_expert() == 0); - CHECK(test_crustal_fault_uncertainty_is_guarded() == 0); - CHECK(test_cascade_expert() == 0); - - puts("specialized expert tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/test_structural_cases.c b/tests/test_structural_cases.c deleted file mode 100644 index 94d1494..0000000 --- a/tests/test_structural_cases.c +++ /dev/null @@ -1,464 +0,0 @@ -#include "cameff/cameff.h" - -#include -#include - -#define CHECK(condition) do { \ - if (!(condition)) { \ - fprintf( \ - stderr, \ - "check failed: %s at line %d\n", \ - #condition, \ - __LINE__ \ - ); \ - return 1; \ - } \ -} while (0) - -static void initialize_frame( - cameff_signal_frame_t *frame, - double activity, - double acceleration, - double concentration, - double magnitude, - double depth, - double b_value, - double completeness, - double fault_map, - double confidence -) { - size_t i; - - (void)memset(frame, 0, sizeof(*frame)); - - for (i = 0U; i < CAMEFF_SIGNAL_COUNT; ++i) { - frame->signals[i].confidence = confidence; - frame->signals[i].supporting_events = 50U; - frame->signals[i].available = 1; - } - - frame->signals[ - CAMEFF_SIGNAL_ACTIVITY_RATE - ].value = activity; - - frame->signals[ - CAMEFF_SIGNAL_TEMPORAL_ACCELERATION - ].value = acceleration; - - frame->signals[ - CAMEFF_SIGNAL_SPATIAL_CONCENTRATION - ].value = concentration; - - frame->signals[ - CAMEFF_SIGNAL_MAGNITUDE_TREND - ].value = magnitude; - - frame->signals[ - CAMEFF_SIGNAL_DEPTH_MIGRATION - ].value = depth; - - frame->signals[ - CAMEFF_SIGNAL_B_VALUE_ANOMALY - ].value = b_value; - - frame->signals[ - CAMEFF_SIGNAL_CATALOG_COMPLETENESS - ].value = completeness; - - frame->signals[ - CAMEFF_SIGNAL_FAULT_MAP_CONFIDENCE - ].value = fault_map; - - frame->selected_event_count = 50U; - frame->data_confidence = confidence; -} - -static void initialize_region( - cameff_region_profile_t *region, - const char *region_id -) { - (void)memset(region, 0, sizeof(*region)); - - (void)snprintf( - region->region_id, - sizeof(region->region_id), - "%s", - region_id - ); - - region->fault_map_confidence = 0.80; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static int find_expert( - const cameff_evaluation_result_t *result, - const char *expert_name -) { - size_t i; - - for ( - i = 0U; - i < result->fusion.expert_result_count; - ++i - ) { - if (strcmp( - result->fusion - .expert_results[i] - .expert_name, - expert_name - ) == 0) { - return (int)i; - } - } - - return -1; -} - -static int evaluate_case( - const cameff_signal_frame_t *frame, - const cameff_region_profile_t *region, - cameff_evaluation_result_t *result -) { - cameff_config_t config; - cameff_evaluation_options_t options; - - cameff_config_default(&config); - cameff_evaluation_options_default(&options); - - return cameff_evaluate_experts( - frame, - &config, - region, - &options, - result - ) == CAMEFF_STATUS_OK; -} - -/* - * Structural analogue of the 2011 Japan case: - * strong subduction affinity with elevated temporal, - * magnitude and depth-related channels. - */ -static int test_japan_structure(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_evaluation_result_t result; - int subduction_index; - - initialize_frame( - &frame, - 0.78, - 0.88, - 0.76, - 0.84, - 0.80, - 0.72, - 0.92, - 0.90, - 0.92 - ); - - initialize_region(®ion, "japan-structural"); - - region.tectonic_setting = - CAMEFF_TECTONIC_SUBDUCTION; - - region.subduction_affinity = 1.00; - region.crustal_fault_affinity = 0.15; - region.transform_affinity = 0.05; - region.volcanic_affinity = 0.10; - - CHECK(evaluate_case(&frame, ®ion, &result)); - - CHECK( - result.patterns.dominant_pattern == - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ); - - subduction_index = - find_expert(&result, "subduction"); - - CHECK(subduction_index >= 0); - - CHECK( - result.fusion.expert_results[ - (size_t)subduction_index - ].status == CAMEFF_EXPERT_OK - ); - - CHECK( - result.fusion.expert_results[ - (size_t)subduction_index - ].preparation_evidence > 0.50 - ); - - return 0; -} - -/* - * Structural analogue of the Russia case: - * subduction setting with strong activity and concentration. - */ -static int test_russia_structure(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_evaluation_result_t result; - - initialize_frame( - &frame, - 0.82, - 0.78, - 0.83, - 0.76, - 0.74, - 0.70, - 0.88, - 0.86, - 0.88 - ); - - initialize_region(®ion, "russia-structural"); - - region.tectonic_setting = - CAMEFF_TECTONIC_SUBDUCTION; - - region.subduction_affinity = 0.95; - region.crustal_fault_affinity = 0.20; - region.transform_affinity = 0.05; - - CHECK(evaluate_case(&frame, ®ion, &result)); - - CHECK( - result.patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership > - result.patterns.scores[ - CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION - ].membership - ); - - CHECK( - result.fusion.preparation_evidence > 0.0 - ); - - return 0; -} - -/* - * Structural analogue of the Cebu case: - * concentrated crustal activity with uncertain fault mapping. - */ -static int test_cebu_structure(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_evaluation_result_t result; - int crustal_index; - - initialize_frame( - &frame, - 0.76, - 0.72, - 0.94, - 0.70, - 0.38, - 0.68, - 0.82, - 0.25, - 0.84 - ); - - initialize_region(®ion, "cebu-structural"); - - region.tectonic_setting = - CAMEFF_TECTONIC_CRUSTAL; - - region.subduction_affinity = 0.15; - region.crustal_fault_affinity = 0.92; - region.transform_affinity = 0.10; - - region.fault_map_confidence = 0.20; - region.catalog_completeness = 0.82; - region.station_coverage = 0.78; - region.regional_prior_confidence = 0.75; - - CHECK(evaluate_case(&frame, ®ion, &result)); - - CHECK( - result.patterns.dominant_pattern == - CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION - ); - - crustal_index = - find_expert(&result, "crustal-fault"); - - CHECK(crustal_index >= 0); - - CHECK( - result.fusion.expert_results[ - (size_t)crustal_index - ].status == CAMEFF_EXPERT_OK - ); - - CHECK( - result.fusion.expert_results[ - (size_t)crustal_index - ].preparation_evidence > 0.45 - ); - - return 0; -} - -/* - * Structural analogue of the Davao case: - * a subduction region with meaningful crustal ambiguity. - */ -static int test_davao_structure(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_evaluation_result_t result; - - initialize_frame( - &frame, - 0.74, - 0.80, - 0.78, - 0.74, - 0.82, - 0.66, - 0.84, - 0.72, - 0.85 - ); - - initialize_region(®ion, "davao-structural"); - - region.tectonic_setting = - CAMEFF_TECTONIC_MIXED; - - region.subduction_affinity = 0.88; - region.crustal_fault_affinity = 0.48; - region.transform_affinity = 0.10; - - region.fault_map_confidence = 0.65; - region.catalog_completeness = 0.84; - region.station_coverage = 0.82; - region.regional_prior_confidence = 0.82; - - CHECK(evaluate_case(&frame, ®ion, &result)); - - CHECK( - result.patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership > - result.patterns.scores[ - CAMEFF_PATTERN_CRUSTAL_FAULT_ACTIVATION - ].membership - ); - - CHECK( - result.fusion.expert_result_count == 4U - ); - - CHECK( - result.fusion.expert_coverage > 0.0 - ); - - return 0; -} - -/* - * Structural analogue of the Venezuela case: - * transform-dominant regional context. - * - * Milestone 2 does not yet implement a transform expert. - * This test intentionally documents that architectural gap. - */ -static int test_venezuela_structure(void) { - cameff_signal_frame_t frame; - cameff_region_profile_t region; - cameff_evaluation_result_t result; - int subduction_index; - int crustal_index; - - initialize_frame( - &frame, - 0.68, - 0.72, - 0.80, - 0.66, - 0.42, - 0.60, - 0.86, - 0.75, - 0.88 - ); - - initialize_region( - ®ion, - "venezuela-structural" - ); - - region.tectonic_setting = - CAMEFF_TECTONIC_TRANSFORM; - - region.subduction_affinity = 0.05; - region.crustal_fault_affinity = 0.20; - region.transform_affinity = 1.00; - region.volcanic_affinity = 0.00; - - region.fault_map_confidence = 0.75; - region.catalog_completeness = 0.86; - region.station_coverage = 0.82; - region.regional_prior_confidence = 0.90; - - CHECK(evaluate_case(&frame, ®ion, &result)); - - CHECK( - result.patterns.dominant_pattern == - CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY - ); - - subduction_index = - find_expert(&result, "subduction"); - - crustal_index = - find_expert(&result, "crustal-fault"); - - CHECK(subduction_index >= 0); - CHECK(crustal_index >= 0); - - CHECK( - result.fusion.expert_results[ - (size_t)subduction_index - ].status == CAMEFF_EXPERT_ABSTAIN - ); - - /* - * The current framework has no transform-specific expert. - * The baseline and cascade experts may still contribute, - * but transform interpretation remains incomplete. - */ - CHECK( - result.patterns.scores[ - CAMEFF_PATTERN_TRANSFORM_FAULT_ACTIVITY - ].membership > - result.patterns.scores[ - CAMEFF_PATTERN_SUBDUCTION_PREPARATION - ].membership - ); - - return 0; -} - -int main(void) { - CHECK(test_japan_structure() == 0); - CHECK(test_russia_structure() == 0); - CHECK(test_cebu_structure() == 0); - CHECK(test_davao_structure() == 0); - CHECK(test_venezuela_structure() == 0); - - puts("structural hindcast case tests passed"); - return 0; -} \ No newline at end of file diff --git a/tests/unit/test_cameff.c b/tests/unit/test_cameff.c new file mode 100644 index 0000000..882fc73 --- /dev/null +++ b/tests/unit/test_cameff.c @@ -0,0 +1,11 @@ +#include "cameff.h" +#include +#include +#include + +int main(void) { + double p = 0.168235; + assert(fabs(cameff_sigmoid(cameff_probability_logit(p)) - p) < 1e-12); + puts("C17 smoke test passed"); + return 0; +} diff --git a/tests/validation/test_hindcast.c b/tests/validation/test_hindcast.c deleted file mode 100644 index 7991c81..0000000 --- a/tests/validation/test_hindcast.c +++ /dev/null @@ -1,687 +0,0 @@ -#include "../../src/data/earthquake_catalog.h" -#include "../../src/validation/cameff_pipeline_adapter.h" -#include "../../src/validation/hindcast.h" - -#include -#include -#include -#include -#include - -#ifndef CAMEFF_TEST_SOURCE_DIR -#error "CAMEFF_TEST_SOURCE_DIR is not defined" -#endif - -static EarthquakeCatalog load_test_catalog(void) -{ - EarthquakeCatalog catalog; - int status; - - status = catalog_load_csv( - CAMEFF_TEST_SOURCE_DIR - "/tests/data/fixtures/valid_catalog.csv", - &catalog - ); - - assert(status == CAMEFF_CATALOG_OK); - assert(catalog.count == 3); - - return catalog; -} - -static EarthquakeEvent target_event( - const EarthquakeCatalog *catalog -) -{ - assert(catalog != NULL); - assert(catalog->count == 3); - - return catalog->events[2]; -} - -static void test_experiment_initialization(void) -{ - HindcastExperiment experiment; - - hindcast_experiment_initialize( - &experiment - ); - - assert(experiment.source_catalog == NULL); - assert(experiment.observation_start == 0); - assert(experiment.cutoff_time == 0); - assert(experiment.analysis_radius_km == 0.0); - assert(experiment.evaluator == NULL); - assert(experiment.evaluator_context == NULL); -} - -static void test_result_initialization(void) -{ - HindcastResult result; - - hindcast_result_initialize(&result); - - assert( - result.status == - CAMEFF_HINDCAST_NOT_EVALUATED - ); - - assert(result.evidence_event_count == 0); - assert(result.hazard_score == 0.0); - assert(result.confidence == 0.0); - assert(result.signal_count == 0U); - assert(result.dominant_pattern[0] == '\0'); - assert(result.dominant_expert[0] == '\0'); -} - -static void test_valid_experiment_contract(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - status = - hindcast_experiment_validate( - &experiment - ); - - assert(status == CAMEFF_HINDCAST_OK); -} - -static void test_future_cutoff_rejected(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp + 1; - - experiment.analysis_radius_km = 100.0; - - assert( - hindcast_experiment_validate( - &experiment - ) == - CAMEFF_HINDCAST_INVALID_TIME_WINDOW - ); -} - -static void test_hindcast_constructs_evidence_window(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - status = run_hindcast( - &experiment, - &result - ); - - assert( - status == - CAMEFF_HINDCAST_NOT_EVALUATED - ); - - assert( - result.status == - CAMEFF_HINDCAST_NOT_EVALUATED - ); - - assert(result.evidence_event_count == 2); - - assert( - result.cutoff_time == - experiment.target.timestamp - ); - - assert(result.hazard_score == 0.0); - assert(result.confidence == 0.0); - assert(result.signal_count == 0U); - assert(result.dominant_pattern[0] == '\0'); - assert(result.dominant_expert[0] == '\0'); -} - -static void test_empty_evidence_window(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - /* - * This very narrow interval contains no prior events. - */ - experiment.observation_start = - experiment.target.timestamp - 10; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - status = run_hindcast( - &experiment, - &result - ); - - assert( - status == - CAMEFF_HINDCAST_NO_EVIDENCE - ); - - assert(result.evidence_event_count == 0); -} - -static void test_invalid_radius_rejected(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 0.0; - - assert( - hindcast_experiment_validate( - &experiment - ) == - CAMEFF_HINDCAST_INVALID_RADIUS - ); -} - -static void populate_mock_signals( - CameffEvaluationOutput *output -) -{ - size_t index; - - assert(output != NULL); - - output->signal_count = - CAMEFF_SIGNAL_COUNT; - - for (index = 0U; - index < CAMEFF_SIGNAL_COUNT; - index++) - { - output->signals[index].value = 0.50; - output->signals[index].confidence = 0.80; - output->signals[index].supporting_events = 2U; - output->signals[index].available = 1; - } -} - -static int mock_successful_evaluator( - const EarthquakeCatalog *evidence_catalog, - const EarthquakeEvent *target_context, - CameffEvaluationOutput *output, - void *user_context -) -{ - (void)target_context; - (void)user_context; - - assert(evidence_catalog != NULL); - assert(evidence_catalog->count == 2); - assert(output != NULL); - - output->hazard_score = 0.75; - output->confidence = 0.80; - - populate_mock_signals(output); - - strcpy( - output->dominant_pattern, - "subduction-preparation" - ); - - strcpy( - output->dominant_expert, - "subduction" - ); - - return CAMEFF_EVALUATOR_OK; -} - -static int mock_invalid_evaluator( - const EarthquakeCatalog *evidence_catalog, - const EarthquakeEvent *target_context, - CameffEvaluationOutput *output, - void *user_context -) -{ - (void)evidence_catalog; - (void)target_context; - (void)user_context; - - output->hazard_score = 1.5; - output->confidence = 0.8; - - populate_mock_signals(output); - - strcpy( - output->dominant_pattern, - "invalid" - ); - - strcpy( - output->dominant_expert, - "invalid" - ); - - return CAMEFF_EVALUATOR_OK; -} - -static void test_hindcast_invokes_evaluator(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - experiment.evaluator = - mock_successful_evaluator; - - status = run_hindcast( - &experiment, - &result - ); - - assert(status == CAMEFF_HINDCAST_OK); - assert(result.status == CAMEFF_HINDCAST_OK); - assert(result.evidence_event_count == 2); - assert(result.hazard_score == 0.75); - assert(result.confidence == 0.80); - - assert( - result.signal_count == - CAMEFF_SIGNAL_COUNT - ); - - assert(result.signals[0].available == 1); - assert(result.signals[0].value == 0.50); - assert(result.signals[0].confidence == 0.80); - - assert( - strcmp( - result.dominant_pattern, - "subduction-preparation" - ) == 0 - ); - - assert( - strcmp( - result.dominant_expert, - "subduction" - ) == 0 - ); -} - -static void test_invalid_evaluator_output_rejected(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - experiment.evaluator = - mock_invalid_evaluator; - - status = run_hindcast( - &experiment, - &result - ); - - assert( - status == - CAMEFF_HINDCAST_EVALUATION_FAILED - ); - - assert( - result.status == - CAMEFF_HINDCAST_EVALUATION_FAILED - ); -} - -static void initialize_test_subduction_region( - cameff_region_profile_t *region -) -{ - assert(region != NULL); - - (void)memset( - region, - 0, - sizeof(*region) - ); - - (void)snprintf( - region->region_id, - sizeof(region->region_id), - "%s", - "japan-trench-test" - ); - - region->tectonic_setting = - CAMEFF_TECTONIC_SUBDUCTION; - - region->subduction_affinity = 1.0; - region->crustal_fault_affinity = 0.10; - region->transform_affinity = 0.05; - region->volcanic_affinity = 0.05; - - region->fault_map_confidence = 0.90; - region->catalog_completeness = 0.90; - region->station_coverage = 0.90; - region->regional_prior_confidence = 0.90; -} - -static void test_real_pipeline_adapter_rejects_missing_cutoff(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - CameffPipelineAdapterContext adapter_context; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - cameff_pipeline_adapter_context_initialize( - &adapter_context - ); - - adapter_context.analysis_latitude = - experiment.target.latitude; - - adapter_context.analysis_longitude = - experiment.target.longitude; - - adapter_context.analysis_radius_km = - experiment.analysis_radius_km; - - adapter_context.lookback_days = 365U; - - /* - * Deliberately leave: - * - * adapter_context.cutoff_epoch_seconds == 0 - * - * The adapter must reject the invalid context. - */ - initialize_test_subduction_region( - &adapter_context.region - ); - - experiment.evaluator = - cameff_pipeline_evaluator; - - experiment.evaluator_context = - &adapter_context; - - status = run_hindcast( - &experiment, - &result - ); - - assert( - status == - CAMEFF_HINDCAST_EVALUATION_FAILED - ); -} - -static void test_real_pipeline_adapter(void) -{ - EarthquakeCatalog catalog; - HindcastExperiment experiment; - HindcastResult result; - CameffPipelineAdapterContext adapter_context; - int status; - - catalog = load_test_catalog(); - - hindcast_experiment_initialize( - &experiment - ); - - experiment.target = - target_event(&catalog); - - experiment.source_catalog = &catalog; - - experiment.observation_start = - (time_t)1299600000; - - experiment.cutoff_time = - experiment.target.timestamp; - - experiment.analysis_radius_km = 100.0; - - cameff_pipeline_adapter_context_initialize( - &adapter_context - ); - - adapter_context.analysis_latitude = - experiment.target.latitude; - - adapter_context.analysis_longitude = - experiment.target.longitude; - - adapter_context.analysis_radius_km = - experiment.analysis_radius_km; - - adapter_context.lookback_days = 365U; - - /* - * This is the required assignment. - * - * It is placed after experiment.cutoff_time has been - * configured and before run_hindcast() is called. - */ - adapter_context.cutoff_epoch_seconds = - (int64_t)experiment.cutoff_time; - - initialize_test_subduction_region( - &adapter_context.region - ); - - /* - * The fixture contains only two pre-event earthquakes. - * Lower the minimum for this small integration fixture. - * - * This is test configuration only, not operational - * calibration. - */ - adapter_context.config.minimum_events = 2U; - - experiment.evaluator = - cameff_pipeline_evaluator; - - experiment.evaluator_context = - &adapter_context; - - status = run_hindcast( - &experiment, - &result - ); - - assert(status == CAMEFF_HINDCAST_OK); - assert(result.status == CAMEFF_HINDCAST_OK); - assert(result.evidence_event_count == 2); - - assert(result.hazard_score >= 0.0); - assert(result.hazard_score <= 1.0); - - assert(result.confidence >= 0.0); - assert(result.confidence <= 1.0); - - assert( - result.signal_count == - CAMEFF_SIGNAL_COUNT - ); - - assert( - result.signals[ - CAMEFF_SIGNAL_ACTIVITY_RATE - ].available == 1 - ); - - assert( - result.signals[ - CAMEFF_SIGNAL_ACTIVITY_RATE - ].supporting_events == 2U - ); - - assert(result.dominant_pattern[0] != '\0'); - assert(result.dominant_expert[0] != '\0'); -} - -int main(void) -{ - test_experiment_initialization(); - test_result_initialization(); - test_valid_experiment_contract(); - test_future_cutoff_rejected(); - test_hindcast_constructs_evidence_window(); - test_empty_evidence_window(); - test_invalid_radius_rejected(); - test_hindcast_invokes_evaluator(); - test_invalid_evaluator_output_rejected(); - test_real_pipeline_adapter_rejects_missing_cutoff(); - test_real_pipeline_adapter(); - - return 0; -} \ No newline at end of file diff --git a/third_party/scipy_lbfgsb/PROVENANCE.txt b/third_party/scipy_lbfgsb/PROVENANCE.txt new file mode 100644 index 0000000..f1f4c98 --- /dev/null +++ b/third_party/scipy_lbfgsb/PROVENANCE.txt @@ -0,0 +1,14 @@ +Source project: SciPy +Source version: 1.17.0 +Source archive SHA-256: 2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e +Original files: +- scipy/optimize/__lbfgsb.c +- scipy/optimize/__lbfgsb.h + +Adaptation: +- Removed Python/NumPy wrapper header dependency. +- Exposed the internal setulb routine as cameff_lbfgsb_setulb. +- Retained the official SciPy C translation and BSD-3-Clause license text. +- Linked against system BLAS and LAPACK. + +No L-BFGS-B algorithm statements were rewritten. diff --git a/third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.c b/third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.c new file mode 100644 index 0000000..ac989fe --- /dev/null +++ b/third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.c @@ -0,0 +1,3767 @@ +/* + * Copyright (C) 2024 SciPy developers + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * a. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * b. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * c. Names of the SciPy Developers may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * + * This file is a C translation of the Fortran code written by Ciyou Zhu, + * Richard Byrd, Jorge Nocedal and Jose Luis Morales with the original + * description below. + * Some of the functions have been modified and certain arguments are rendered + * obsolete to be used in SciPy however original docstrings are kept at the top + * of each function for reference. + * + */ + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * =========== L-BFGS-B (version 3.0. April 25, 2011 =================== + * + * This is a modified version of L-BFGS-B. Minor changes in the updated + * code appear preceded by a line comment as follows + * + * c-jlm-jn + * + * Major changes are described in the accompanying paper: + * + * Jorge Nocedal and Jose Luis Morales, Remark on "Algorithm 778: + * L-BFGS-B: Fortran Subroutines for Large-Scale Bound Constrained + * Optimization" (2011). To appear in ACM Transactions on + * Mathematical Software, + * + * The paper describes an improvement and a correction to Algorithm 778. + * It is shown that the performance of the algorithm can be improved + * significantly by making a relatively simple modication to the subspace + * minimization phase. The correction concerns an error caused by the use + * of routine dpmeps to estimate machine precision. + * + * The total work space **wa** required by the new version is + * + * 2*m*n + 11m*m + 5*n + 8*m + * + * the old version required + * + * 2*m*n + 12m*m + 4*n + 12*m + * + * + * J. Nocedal Department of Electrical Engineering and + * Computer Science. + * Northwestern University. Evanston, IL. USA + * + * + * J.L Morales Departamento de Matematicas, + * Instituto Tecnologico Autonomo de Mexico + * Mexico D.F. Mexico. + * + * March 2011 + * + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * The original BSD-3 licensed Fortran code can be found at + * + * https://users.iems.northwestern.edu/~nocedal/lbfgsb.html + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * References: + * + * [1]: R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound + * Constrained Optimization, (1995), SIAM Journal on Scientific and + * Statistical Computing, 16, 5, pp. 1190-1208. + * [2]: C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B, + * FORTRAN routines for large scale bound constrained optimization (1997), + * ACM Transactions on Mathematical Software, 23, 4, pp. 550 - 560. + * [3]: J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: + * L-BFGS-B, FORTRAN routines for large scale bound constrained + * optimization (2011), ACM Transactions on Mathematical Software, 38, 1. + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "__lbfgsb.h" + + +enum Status { + START = 0, + NEW_X = 1, + RESTART = 2, // RESTART FROM LINESEARCH + FG = 3, // REQUEST FG FOR THE CURRENT X + CONVERGENCE = 4, + STOP = 5, + WARNING = 6, + ERROR = 7, + ABNORMAL = 8 // ABNORMAL TERMINATION IN LINE SEARCH (WHY NOT AN ERROR?) +}; + + +enum StatusMsg { + NO_MSG = 0, + + FG_START = 301, + FG_LNSRCH = 302, + + CONV_GRAD = 401, // CONVERGENCE: NORM OF PROJECTED GRADIENT <= PGTOL + CONV_F = 402, // CONVERGENCE: PROGRESS <= FACTR*EPSMCH + + STOP_CPU = 501, // CPU EXCEEDING THE TIME LIMIT ?! + STOP_ITER = 502, // TOTAL NO. OF F,G EVALUATIONS EXCEEDS LIMIT + STOP_GRAD = 503, // PROJECTED GRADIENT IS SUFFICIENTLY SMALL + STOP_ITERC = 504, // TOTAL NO. of ITERATIONS REACHED LIMIT + STOP_CALLB = 505, // CALLBACK REQUESTED HALT + + WARN_ROUND = 601, // ROUNDING ERRORS PREVENT PROGRESS + WARN_STPMAX = 602, // STP = STPMAX + WARN_STPMIN = 603, // STP = STPMIN + WARN_XTOL = 604, // XTOL TEST SATISFIED ?! + + ERROR_NOFEAS = 701, // NO FEASIBLE SOLUTION + ERROR_FACTR = 702, // FACTR < 0 + ERROR_FTOL = 703, // FTOL < 0 + ERROR_GTOL = 704, // GTOL < 0 + ERROR_XTOL = 705, // XTOL < 0 + ERROR_STP1 = 706, // STP < STPMIN + ERROR_STP2 = 707, // STP > STPMAX + ERROR_STPMIN = 708, // STPMIN < 0 + ERROR_STPMAX = 709, // STPMAX < STPMIN + ERROR_INITG = 710, // INITIAL G >= 0 + ERROR_M = 711, // M <= 0 + ERROR_N = 712, // N <= 0 + ERROR_NBD = 713 // INVALID NBD +}; + + +// Internal functions + +static void mainlb( + int n, int m, double* x, double* l, double* u, + int* nbd, double* f, double* g, double factr, double pgtol, + double* ws, double* wy, double* sy, double* ss, double* wt, double* wn, + double* snd, double* z, double* r, double* d, double* t, double* xp, + double* wa, int* index, int* iwhere, int* indx2, int* task, int* task_msg, + int* lsave, int* isave, double* dsave, int maxls, int* ln_task, int* ln_taskmsg +); +static void active( + int n, double* l, double* u, int* nbd, double* x, + int* iwhere, int* prjctd, int* cnstnd, int* boxed +); +static void bmv( + int m, double* sy, double* wt, int col, + double* v, double* p, int* info +); +static void cauchy( + int n, double* x, double* l, double* u, + int* nbd, double *g, int* iorder, int* iwhere, double* t, + double* d, double* xcp, int m, double* wy, double* ws, + double* sy, double* wt, double theta, int col, + int head, double* p, double* c, double* wbp, double* v, int* nseg, + double sbgnrm, int* info +); +static void cmprlb( + int n, int m, double* x, double* g, + double* ws, double* wy, double* sy, double* wt, + double* z, double* r, double* wa, int* index, + double theta, int col, int head, int nfree, + int cnstnd, int* info +); +static void errclb( + int n, int m, double factr, double* l, + double* u, int* nbd, int* task, int* task_msg, int* info, int* k +); +static void formk( + int n, int nsub, int* ind, int nenter, + int ileave, int* indx2, int iupdat, int updatd, + double* wn, double* wn1, int m, double* ws, double* wy, + double* sy, double theta, int col, int head, + int* info +); +static void formt( + int m, double* wt, double* sy, double* ss, int col, + double theta, int* info +); +static void freev( + int n, int* nfree, int* idx, int* nenter, int* ileave, int* idx2, + int* iwhere, int* wrk, int updatd, int cnstnd, + int iter +); +static void hpsolb(int n, double* t, int* iorder, int iheap); +static void lnsrlb( + int n, double* l, double* u, int* nbd, double* x, + double f, double* fold, double *gd, double *gdold, double* g, + double* d, double* r, double* t, double* z, double* stp, double* dnorm, + double* dtd, double* xstep, double* stpmx, int iter, int* ifun, + int* iback, int* nfgv, int* info, int* task, int* task_msg, int boxed, + int cnstnd, int* isave, double* dsave, int* temp_task, int* temp_task_msg +); +static void matupd( + int n, int m, double* ws, double *wy, double* sy, double* ss, + double* d, double* r, int* itail, int iupdat, int* col, + int* head, double* theta, double rr, double dr, double stp, + double dtd +); +static void projgr( + int n, double* l, double* u, int* nbd, + double* x, double* g, double* sbgnrm +); +static void subsm( + int n, int m, int nsub, int* ind, double* l, + double* u, int* nbd, double* x, double* d, double* xp, + double* ws, double* wy, double theta, double* xx, + double* gg, int col, int head, int* iword, double* wv, + double* wn, int* info +); + +// Line search functions +static void dcsrch( + double f, double g, double* stp, double ftol, + double gtol, double xtol, double stpmin, + double stpmax, int* task, int* task_msg, int* isave, double* dsave +); +static void dcstep ( + double* stx, double* fx, double* dx, double* sty, double* fy, double* dy, + double* stp, double fp, double dp, int* brackt, + double stpmin, double stpmax +); + +static double epsmach = 2.220446049250313e-016; /* np.finfo(np.float64).eps */ + + +void +setulb(int n, int m, double* x, double* l, double* u, int* nbd, double* f, + double* g, double factr, double pgtol, double* wa, int* iwa, int* task, + int* lsave, int* isave, double* dsave, int maxls, int* ln_task) +{ + // ************ + // + // Subroutine setulb + // + // This subroutine partitions the working arrays wa and iwa, and + // then uses the limited memory BFGS method to solve the bound + // constrained optimization problem by calling mainlb. + // (The direct method will be used in the subspace minimization.) + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // x is a double precision array of dimension n. + // On entry x is an approximation to the solution. + // On exit x is the current approximation. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound on x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound on x. + // On exit u is unchanged. + // + // nbd is an integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, and + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // f is a double precision variable. + // On first entry f is unspecified. + // On final exit f is the value of the function at x. + // + // g is a double precision array of dimension n. + // On first entry g is unspecified. + // On final exit g is the value of the gradient at x. + // + // factr is a double precision variable. + // On entry factr >= 0 is specified by the user. The iteration + // will stop when + // + // (f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= factr*epsmch + // + // where epsmch is the machine precision, which is automatically + // generated by the code. Typical values for factr: 1.d+12 for + // low accuracy; 1.d+7 for moderate accuracy; 1.d+1 for extremely + // high accuracy. + // On exit factr is unchanged. + // + // pgtol is a double precision variable. + // On entry pgtol >= 0 is specified by the user. The iteration + // will stop when + // + // max{|proj g_i | i = 1, ..., n} <= pgtol + // + // where pg_i is the ith component of the projected gradient. + // On exit pgtol is unchanged. + // + // wa is a double precision working array of length + // (2mmax + 5)nmax + 12mmax^2 + 12mmax. + // + // iwa is an integer working array of length 3nmax. + // + // task is a working string of characters of length 60 indicating + // the current job when entering and quitting this subroutine. + // + // iprint is an integer variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // csave is a working string of characters of length 60. + // + // lsave is a logical working array of dimension 4. + // On exit with 'task' = NEW_X, the following information is + // available: + // If lsave(1) = .true. then the initial X has been replaced by + // its projection in the feasible set; + // If lsave(2) = .true. then the problem is constrained; + // If lsave(3) = .true. then each variable has upper and lower + // bounds; + // + // isave is an integer working array of dimension 44. + // On exit with 'task' = NEW_X, the following information is + // available: + // isave(22) = the total number of intervals explored in the + // search of Cauchy points; + // isave(26) = the total number of skipped BFGS updates before + // the current iteration; + // isave(30) = the number of current iteration; + // isave(31) = the total number of BFGS updates prior the current + // iteration; + // isave(33) = the number of intervals explored in the search of + // Cauchy point in the current iteration; + // isave(34) = the total number of function and gradient + // evaluations; + // isave(36) = the number of function value or gradient + // evaluations in the current iteration; + // if isave(37) = 0 then the subspace argmin is within the box; + // if isave(37) = 1 then the subspace argmin is beyond the box; + // isave(38) = the number of free variables in the current + // iteration; + // isave(39) = the number of active constraints in the current + // iteration; + // n + 1 - isave(40) = the number of variables leaving the set of + // active constraints in the current iteration; + // isave(41) = the number of variables entering the set of active + // constraints in the current iteration. + // + // dsave is a double precision working array of dimension 29. + // On exit with 'task' = NEW_X, the following information is + // available: + // dsave(1) = current 'theta' in the BFGS matrix; + // dsave(2) = f(x) in the previous iteration; + // dsave(3) = factr*epsmch; + // dsave(4) = 2-norm of the line search direction vector; + // dsave(5) = the machine precision epsmch generated by the code; + // dsave(7) = the accumulated time spent on searching for + // Cauchy points; + // dsave(8) = the accumulated time spent on + // subspace minimization; + // dsave(9) = the accumulated time spent on line search; + // dsave(11) = the slope of the line search function at + // the current point of line search; + // dsave(12) = the maximum relative step length imposed in + // line search; + // dsave(13) = the infinity norm of the projected gradient; + // dsave(14) = the relative step length in the line search; + // dsave(15) = the slope of the line search function at + // the starting point of the line search; + // dsave(16) = the square of the 2-norm of the line search + // direction vector. + // + // Subprograms called: + // + // L-BFGS-B Library ... mainlb. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: a + // limited memory FORTRAN code for solving bound constrained + // optimization problems'', Tech. Report, NAM-11, EECS Department, + // Northwestern University, 1994. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + // + int lws, lr, lz, lt, ld, lxp, lwa, lwy, lsy, lss, lwt, lwn, lsnd; + + if (task[0] == START) + { + // Pointer olympics + isave[0] = m*n; + isave[1] = m*m; + isave[2] = 4*m*m; + isave[3] = 0; // ws m*n + isave[4] = isave[3] + isave[0]; // wy m*n + isave[5] = isave[4] + isave[0]; // wsy m**2 + isave[6] = isave[5] + isave[1]; // wss m**2 + isave[7] = isave[6] + isave[1]; // wt m**2 + isave[8] = isave[7] + isave[1]; // wn 4*m**2 + isave[9] = isave[8] + isave[2]; // wsnd 4*m**2 + isave[10] = isave[9] + isave[2]; // wz n + isave[11] = isave[10] + n; // wr n + isave[12] = isave[11] + n; // wd n + isave[13] = isave[12] + n; // wt n + isave[14] = isave[13] + n; // wxp n + isave[15] = isave[14] + n; // wa 8*m + } + + lws = isave[3]; + lwy = isave[4]; + lsy = isave[5]; + lss = isave[6]; + lwt = isave[7]; + lwn = isave[8]; + lsnd = isave[9]; + lz = isave[10]; + lr = isave[11]; + ld = isave[12]; + lt = isave[13]; + lxp = isave[14]; + lwa = isave[15]; + + mainlb(n, m, x, l, u, nbd, f, g, factr, pgtol, &wa[lws], &wa[lwy], &wa[lsy], + &wa[lss], &wa[lwt], &wa[lwn], &wa[lsnd], &wa[lz], &wa[lr], &wa[ld], + &wa[lt], &wa[lxp], &wa[lwa], iwa, &iwa[n], &iwa[2*n], &task[0], &task[1], + lsave, &isave[21], dsave, maxls, &ln_task[0], &ln_task[1]); + + return; +} + + +void +mainlb(int n, int m, double* x, double* l, double* u, + int* nbd, double* f, double* g, double factr, double pgtol, + double* ws, double* wy, double* sy, double* ss, double* wt, double* wn, + double* snd, double* z, double* r, double* d, double* t, double* xp, + double* wa, int* index, int* iwhere, int* indx2, int* task, + int* task_msg, int* lsave, int* isave, double* dsave, int maxls, + int* temp_task, int* temp_taskmsg) +{ + // ************ + // + // Subroutine mainlb + // + // This subroutine solves bound constrained optimization problems by + // using the compact formula of the limited memory BFGS updates. + // + // n is an integer variable. + // On entry n is the number of variables. + // On exit n is unchanged. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric + // corrections allowed in the limited memory matrix. + // On exit m is unchanged. + // + // x is a double precision array of dimension n. + // On entry x is an approximation to the solution. + // On exit x is the current approximation. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound of x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound of x. + // On exit u is unchanged. + // + // nbd is an integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // f is a double precision variable. + // On first entry f is unspecified. + // On final exit f is the value of the function at x. + // + // g is a double precision array of dimension n. + // On first entry g is unspecified. + // On final exit g is the value of the gradient at x. + // + // factr is a double precision variable. + // On entry factr >= 0 is specified by the user. The iteration + // will stop when + // + // (f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= factr*epsmch + // + // where epsmch is the machine precision, which is automatically + // generated by the code. + // On exit factr is unchanged. + // + // pgtol is a double precision variable. + // On entry pgtol >= 0 is specified by the user. The iteration + // will stop when + // + // max{|proj g_i | i = 1, ..., n} <= pgtol + // + // where pg_i is the ith component of the projected gradient. + // On exit pgtol is unchanged. + // + // ws, wy, sy, and wt are double precision working arrays used to + // store the following information defining the limited memory + // BFGS matrix: + // ws, of dimension n x m, stores S, the matrix of s-vectors; + // wy, of dimension n x m, stores Y, the matrix of y-vectors; + // sy, of dimension m x m, stores S'Y; + // ss, of dimension m x m, stores S'S; + // yy, of dimension m x m, stores Y'Y; + // wt, of dimension m x m, stores the Cholesky factorization + // of (theta*S'S+LD^(-1)L'); see eq. + // (2.26) in [3]. + // + // wn is a double precision working array of dimension 2m x 2m + // used to store the LEL^T factorization of the indefinite matrix + // K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // + // where E = [-I 0] + // [ 0 I] + // + // snd is a double precision working array of dimension 2m x 2m + // used to store the lower triangular part of + // N = [Y' ZZ'Y L_a'+R_z'] + // [L_a +R_z S'AA'S ] + // + // z(n),r(n),d(n),t(n), xp(n),wa(8*m) are double precision working arrays. + // z is used at different times to store the Cauchy point and + // the Newton point. + // xp is used to safeguard the projected Newton direction + // + // sg(m),sgo(m),yg(m),ygo(m) are double precision working arrays. + // + // index is an integer working array of dimension n. + // In subroutine freev, index is used to store the free and fixed + // variables at the Generalized Cauchy Point (GCP). + // + // iwhere is an integer working array of dimension n used to record + // the status of the vector x for GCP computation. + // iwhere(i)=0 or -3 if x(i) is free and has bounds, + // 1 if x(i) is fixed at l(i), and l(i) .ne. u(i) + // 2 if x(i) is fixed at u(i), and u(i) .ne. l(i) + // 3 if x(i) is always fixed, i.e., u(i)=x(i)=l(i) + // -1 if x(i) is always free, i.e., no bounds on it. + // + // indx2 is an integer working array of dimension n. + // Within subroutine cauchy, indx2 corresponds to the array iorder. + // In subroutine freev, a list of variables entering and leaving + // the free set is stored in indx2, and it is passed on to + // subroutine formk with this information. + // + // task is a working string of characters of length 60 indicating + // the current job when entering and leaving this subroutine. + // + // iprint is an INTEGER variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // csave is a working string of characters of length 60. + // + // lsave is a logical working array of dimension 4. + // + // isave is an integer working array of dimension 23. + // + // dsave is a double precision working array of dimension 29. + // + // + // Subprograms called + // + // L-BFGS-B Library ... cauchy, subsm, lnsrlb, formk, + // + // errclb, prn1lb, prn2lb, prn3lb, active, projgr, + // + // freev, cmprlb, matupd, formt. + // + // Minpack2 Library ... timer + // + // Linpack Library ... dcopy, ddot. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: FORTRAN + // Subroutines for Large Scale Bound Constrained Optimization'' + // Tech. Report, NAM-11, EECS Department, Northwestern University, + // 1994. + // + // [3] R. Byrd, J. Nocedal and R. Schnabel "Representations of + // Quasi-Newton Matrices and their use in Limited Memory Methods'', + // Mathematical Programming 63 (1994), no. 4, pp. 129-156. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int prjctd, cnstnd, boxed, updatd, wrk; + int i, k, nintol, iback, nskip, head, col, iter, itail, iupdat; + int nseg, nfgv, info, ifun, iword, nfree, nact, ileave, nenter; + double theta, fold, dr, rr, tol, xstep, sbgnrm, stpmx, ddum, dnorm, dtd; + double gd, gdold, stp; + int one_int = 1; + + stpmx = 0.0; + + if (*task == START) { + + // Initialize counters and scalars + col = 0; // size : Actual number of variable metric corrections + head = 0; // index : Location of the first s- or y-vector in S or Y + theta = 1.0; + iupdat = 0; // size : Total number of BFGS updates made so far + updatd = 0; // bool : Whether L-BFGS matrix is updated + iback = 0; + itail = 0; // index + iword = 0; + nact = 0; + ileave = 0; // index : idx2[ileave:n] are the variables leaving the free set + nenter = 0; // size : No of variables entering the free set + fold = 0.0; + dnorm = 0.0; + gd = 0.0; + sbgnrm = 0.0; + stp = 0.0; + gdold = 0.0; + dtd = 0.0; + + // For operation counts + iter = 0; + nfgv = 0; + nseg = 0; + nintol = 0; + nskip = 0; + nfree = n; + ifun = 0; + // For stopping tolerance + tol = factr * epsmach; + + // 'info' records the termination information. + info = 0; + + // Check the input arguments for errors + errclb(n, m, factr, l, u, nbd, task, task_msg, &info, &k); + if (*task == ERROR) { return; } + + // Initialize iwhere & project x onto the feasible set + active(n, l, u, nbd, x, iwhere, &prjctd, &cnstnd, &boxed); + + // End of the initialization + } else { + // Restore local variables + prjctd = lsave[0]; + cnstnd = lsave[1]; + boxed = lsave[2]; + updatd = lsave[3]; + + nintol = isave[0]; + // = isave[1]; + // = isave[2]; + iback = isave[3]; + nskip = isave[4]; + head = isave[5]; + col = isave[6]; + itail = isave[7]; + iter = isave[8]; + iupdat = isave[9]; + // = isave[10]; + nseg = isave[11]; + nfgv = isave[12]; + info = isave[13]; + ifun = isave[14]; + iword = isave[15]; + nfree = isave[16]; + nact = isave[17]; + ileave = isave[18]; + nenter = isave[19]; + + theta = dsave[0]; + fold = dsave[1]; + tol = dsave[2]; + dnorm = dsave[3]; + // = dsave[4]; + // = dsave[5]; + // = dsave[6]; + // = dsave[7]; + // = dsave[8]; + // = dsave[9]; + gd = dsave[10]; + stpmx = dsave[11]; + sbgnrm = dsave[12]; + stp = dsave[13]; + gdold = dsave[14]; + dtd = dsave[15]; + + // After returning from the driver go to the point where execution is to resume. + if ((*task == FG) && (*task_msg == FG_LNSRCH)) { goto LINE666; } + if (*task == NEW_X) { goto LINE777; } + if ((*task == FG) && (*task_msg == FG_START)) { goto LINE111; } + if (*task == STOP) + { + if (*task_msg == STOP_CPU) + { + dcopy_(&n, t, &one_int, x, &one_int); + dcopy_(&n, r, &one_int, g, &one_int); + *f = fold; + } + goto LINE999; + } + } + + // Compute f0 and g0. + *task = FG; + *task_msg = FG_START; + + // Return to the driver to calculate f and g, then reenter at 111 + goto LINE1000; + +LINE111: + nfgv = 1; + + // Compute the infinity norm of the (-) projected gradient. + projgr(n, l, u, nbd, x, g, &sbgnrm); + + if (sbgnrm <= pgtol) + { + *task = CONVERGENCE; + *task_msg = CONV_GRAD; + goto LINE999; + } + + // ----------------- the beginning of the loop -------------------------- +LINE222: + iword = -1; + + if ((!cnstnd) && (col > 0)) + { + dcopy_(&n, x, &one_int, z, &one_int); + wrk = updatd; + nseg = 0; + goto LINE333; + } + + ///////////////////////////////////////////////////// + // + // Compute the Generalized Cauchy Point (GCP). + // + ///////////////////////////////////////////////////// + cauchy(n, x, l, u, nbd, g, indx2, iwhere, t, d, z, m, wy, ws, sy, wt, theta, + col, head, wa, &wa[2*m], &wa[4*m], &wa[6*m], &nseg, sbgnrm, &info); + if (info != 0) + { + // Singular triangular system detected; refresh the lbfgs memory. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + + nintol += nseg; + + // Count the entering and leaving variables for iter > 0; + // find the index set of free and active variables at the GCP. + freev(n, &nfree, index, &nenter, &ileave, indx2, iwhere, &wrk, updatd, + cnstnd, iter); + nact = n - nfree; + +LINE333: + // If there are no free variables or B=theta*I, then skip the subspace + // minimization. + if ((nfree == 0) || (col == 0)) { goto LINE555; } + + ///////////////////////////////////////////////////// + // + // Subspace minimization + // + ///////////////////////////////////////////////////// + + // Form the LEL^T factorization of the indefinite + // matrix K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // where E = [-I 0] + // [ 0 I] + if (wrk) + { + formk(n, nfree, index, nenter, ileave, indx2, iupdat, updatd, wn, snd, + m, ws, wy, sy, theta, col, head, &info); + } + if (info != 0) + { + // nonpositive definiteness in Cholesky factorization; + // refresh the lbfgs memory and restart the iteration. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + + // compute r=-Z'B(xcp-xk)-Z'g (using wa(2m+1)=W'(xcp-x) from 'cauchy'). + cmprlb(n, m, x, g, ws, wy, sy, wt, z, r, wa, index, theta, col, head, nfree, + cnstnd, &info); + if (info != 0) { goto LINE444; } + + // Call the direct method. + subsm(n, m, nfree, index, l, u, nbd, z, r, xp, ws, wy, theta, x, g, col, + head, &iword, wa, wn, &info); + +LINE444: + if (info != 0) + { + // singular triangular system detected; + // refresh the lbfgs memory and restart the iteration. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + +LINE555: + + ///////////////////////////////////////////////////// + // + // Line search and optimality tests. + // + ///////////////////////////////////////////////////// + + // Generate the search direction d := z - x. + for (i = 0; i < n; i++) + { + d[i] = z[i] - x[i]; + } + +LINE666: + lnsrlb(n, l, u, nbd, x, *f, &fold, &gd, &gdold, g, d, r, t, z, &stp, &dnorm, + &dtd, &xstep, &stpmx, iter, &ifun, &iback, &nfgv, &info, task, + task_msg, boxed, cnstnd, &isave[21], &dsave[16], temp_task, temp_taskmsg); + + if ((info != 0) || (iback >= maxls)) + { + dcopy_(&n, t, &one_int, x, &one_int); + dcopy_(&n, r, &one_int, g, &one_int); + *f = fold; + + if (col == 0) + { + // Abnormal termination + if (info == 0) + { + info = -9; + // Restore the actual number of f and g evaluations etc. + nfgv--; + ifun--; + iback--; + } + *task = ABNORMAL; + *task_msg = NO_MSG; + iter++; + goto LINE999; + } else { + // Refresh the lbfgs memory and restart the iteration. + if (info == 0) { nfgv--; } + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + *task = RESTART; + *task_msg = NO_MSG; + goto LINE222; + } + } else if ((*task == FG) && (*task_msg == FG_LNSRCH)) { + // Return to the driver for calculating f and g; renter at 666. + goto LINE1000; + } else { + // Calculate and print out the quantities related to the new X. + iter++; + + // Compute the infinity norm of the projected (-)gradient. + projgr(n, l, u, nbd, x, g, &sbgnrm); + + goto LINE1000; + } + +LINE777: + + // Test for termination. + if (sbgnrm <= pgtol) + { + // Terminate the algorithm. + *task = CONVERGENCE; + *task_msg = CONV_GRAD; + goto LINE999; + } + ddum = fmax(fmax(fabs(fold), fabs(*f)), 1.0); + if ((fold - *f) <= tol*ddum) + { + // Terminate the algorithm. + *task = CONVERGENCE; + *task_msg = CONV_F; + if (iback >= 10) { info = -5; } + // i.e. to issue a warning if iback > 10 in the line search. + goto LINE999; + } + + // Compute d=newx-oldx, r=newg-oldg, rr=y'y and dr=y's. + for (i = 0; i < n; i++) + { + r[i] = g[i] - r[i]; + } + // 42 + rr = pow(dnrm2_(&n, r, &one_int), 2.0); + + if (stp == 1.0) + { + dr = gd - gdold; + ddum = -gdold; + } else { + dr = (gd - gdold)*stp; + dscal_(&n, &stp, d, &one_int); + ddum = -gdold*stp; + } + + if (dr <= epsmach*ddum) + { + // Skip the L-BFGS update. + nskip += 1; + updatd = 0; + goto LINE888; + } + + ///////////////////////////////////////////////////// + // + // Update the L-BFGS matrix. + // + ///////////////////////////////////////////////////// + updatd = 1; + iupdat += 1; + + // Update matrices WS and WY and form the middle matrix in B. + matupd(n, m, ws, wy, sy, ss, d, r, &itail, iupdat, &col, &head, &theta, + rr, dr, stp, dtd); + + // Form the upper half of the pds T = theta*SS + L*D^(-1)*L'; + // Store T in the upper triangular of the array wt; + // Cholesky factorize T to J*J' with + // J' stored in the upper triangular of wt. + formt(m, wt, sy, ss, col, theta, &info); + + if (info != 0) + { + // Nonpositive definiteness in Cholesky factorization; + // refresh the lbfgs memory and restart the iteration. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + + // Now the inverse of the middle matrix in B is + + // [ D^(1/2) O ] [ -D^(1/2) D^(-1/2)*L' ] + // [ -L*D^(-1/2) J ] [ 0 J' ] +LINE888: + // -------------------- the end of the loop ----------------------------- + goto LINE222; + +LINE999: + ; + +LINE1000: + // Save local variables + lsave[0] = prjctd; + lsave[1] = cnstnd; + lsave[2] = boxed; + lsave[3] = updatd; + + isave[0] = nintol; + isave[3] = iback; + isave[4] = nskip; + isave[5] = head; + isave[6] = col; + isave[7] = itail; + isave[8] = iter; + isave[9] = iupdat; + isave[11] = nseg; + isave[12] = nfgv; + isave[13] = info; + isave[14] = ifun; + isave[15] = iword; + isave[16] = nfree; + isave[17] = nact; + isave[18] = ileave; + isave[19] = nenter; + + dsave[0] = theta; + dsave[1] = fold; + dsave[2] = tol; + dsave[3] = dnorm; + // dsave[4] = epsmch; + // dsave[5] = cpu1; + // dsave[6] = cachyt; + // dsave[7] = sbtime; + // dsave[8] = lnscht; + // dsave[9] = time1; + dsave[10] = gd; + dsave[11] = stpmx; + dsave[12] = sbgnrm; + dsave[13] = stp; + dsave[14] = gdold; + dsave[15] = dtd; + + return; +} + + +void +active(int n, double* l, double* u, int* nbd, double* x, + int* iwhere, int* prjctd, int* cnstnd, int* boxed) +{ + // ************ + // + // Subroutine active + // + // This subroutine initializes iwhere and projects the initial x to + // the feasible set if necessary. + // + // iwhere is an integer array of dimension n. + // On entry iwhere is unspecified. + // On exit iwhere(i)=-1 if x(i) has no bounds + // 3 if l(i)=u(i) + // 0 otherwise. + // In cauchy, iwhere is given finer gradations. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i; + + // Initialize nbdd, prjctd, cnstnd, and boxed. + *prjctd = 0; + *cnstnd = 0; + *boxed = 1; + + // Project the initial x to the feasible set if necessary. + + for (i = 0; i < n; i++) + { + if (nbd[i] > 0) + { + if ((nbd[i] <= 2) && (x[i] <= l[i])) + { + if (x[i] < l[i]) + { + *prjctd = 1; + x[i] = l[i]; + } + } else if ((nbd[i] >= 2) && (x[i] >= u[i])) { + if (x[i] > u[i]) + { + *prjctd = 1; + x[i] = u[i]; + } + } + } + } + // 10 + + // Initialize iwhere and assign values to cnstnd and boxed. + for (i = 0; i < n; i++) + { + if (nbd[i] != 2) { *boxed = 0; } + if (nbd[i] == 0) + { + // This variable is always free + iwhere[i] = -1; + } else { + // Otherwise set x(i)=mid(x(i), u(i), l(i)). + *cnstnd = 1; + if ((nbd[i] == 2) && (u[i] - l[i] <= 0.0)) + { + // This variable is always fixed. + iwhere[i] = 3; + } else { + iwhere[i] = 0; + } + } + } + // 20 + + return; +} + + +void +bmv(int m, double* sy, double* wt, int col, double* v, double* p, int* info) +{ + // ************ + // + // Subroutine bmv + // + // This subroutine computes the product of the 2m x 2m middle matrix + // in the compact L-BFGS formula of B and a 2m vector v; + // it returns the product in p. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // sy is a double precision array of dimension m x m. + // On entry sy specifies the matrix S'Y. + // On exit sy is unchanged. + // + // wt is a double precision array of dimension m x m. + // On entry wt specifies the upper triangular matrix J' which is + // the Cholesky factor of (thetaS'S+LD^(-1)L'). + // On exit wt is unchanged. + // + // col is an integer variable. + // On entry col specifies the number of s-vectors (or y-vectors) + // stored in the compact L-BFGS formula. + // On exit col is unchanged. + // + // v is a double precision array of dimension 2col. + // On entry v specifies vector v. + // On exit v is unchanged. + // + // p is a double precision array of dimension 2col. + // On entry p is unspecified. + // On exit p is the product Mv. + // + // info is an integer variable. + // On entry info is unspecified. + // On exit info = 0 for normal return, + // = nonzero for abnormal return when the system + // to be solved by dtrsl is singular. + // + // Subprograms called: + // + // Linpack ... dtrsl. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, k, i2, one_int = 1; + double ssum; + char *uplo = "U", *trans = "T", *diag = "N"; + + if (col == 0) { return; } + + // PART I: solve [ D^(1/2) O ] [ p1 ] = [ v1 ] + // [ -L*D^(-1/2) J ] [ p2 ] [ v2 ]. + + // solve Jp2=v2+LD^(-1)v1. + p[col] = v[col]; + for (i = 1; i < col; i++) + { + i2 = col + i; + ssum = 0.0; + for (k = 0; k <= i-1; k++) + { + ssum = ssum + sy[i + m*k] * v[k] / sy[k + m*k]; + } + // 10 + p[i2] = v[i2] + ssum; + } + // 20 + + // Solve the triangular system + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + dtrtrs_(uplo, trans, diag, &col, &one_int, wt, &m, &p[col], &col, info); + if (*info != 0) { return; } + + // Solve D^(1/2)p1=v1. + for (i = 0; i < col; i++) + { + p[i] = v[i] / sqrt(sy[i + m*i]); + } + // 30 + + // PART II: solve [ -D^(1/2) D^(-1/2)*L' ] [ p1 ] = [ p1 ] + // [ 0 J' ] [ p2 ] [ p2 ]. + + // solve J^Tp2=p2. + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + trans = "N"; + dtrtrs_(uplo, trans, diag, &col, &one_int, wt, &m, &p[col], &col, info); + if (*info != 0) { return; } + + // compute p1=-D^(-1/2)(p1-D^(-1/2)L'p2) + // =-D^(-1/2)p1+D^(-1)L'p2. + + for (i = 0; i < col; i++) + { + p[i] = -p[i] / sqrt(sy[i + m*i]); + } + // 40 + + for (i = 0; i < col; i++) + { + ssum = 0.0; + for (k = i+1; k < col; k++) + { + ssum = ssum + sy[k + m*i] * p[col + k] / sy[i + m*i]; + } + // 50 + p[i] = p[i] + ssum; + } + // 60 + + return; +} + + +void +cauchy(int n, double* x, double* l, double* u, + int* nbd, double *g, int* iorder, int* iwhere, double* t, + double* d, double* xcp, int m, double* wy, double* ws, + double* sy, double* wt, double theta, int col, + int head, double* p, double* c, double* wbp, double* v, + int* nseg, double sbgnrm, int* info) +{ + // ************ + // + // Subroutine cauchy + // + // For given x, l, u, g (with sbgnrm > 0), and a limited memory + // BFGS matrix B defined in terms of matrices WY, WS, WT, and + // scalars head, col, and theta, this subroutine computes the + // generalized Cauchy point (GCP), defined as the first local + // minimizer of the quadratic + // + // Q(x + s) = g's + 1/2 s'Bs + // + // along the projected gradient direction P(x-tg,l,u). + // The routine returns the GCP in xcp. + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // x is a double precision array of dimension n. + // On entry x is the starting point for the GCP computation. + // On exit x is unchanged. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound of x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound of x. + // On exit u is unchanged. + // + // nbd is an integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, and + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // g is a double precision array of dimension n. + // On entry g is the gradient of f(x). g must be a nonzero vector. + // On exit g is unchanged. + // + // iorder is an integer working array of dimension n. + // iorder will be used to store the breakpoints in the piecewise + // linear path and free variables encountered. On exit, + // iorder(1),...,iorder(nleft) are indices of breakpoints + // which have not been encountered; + // iorder(nleft+1),...,iorder(nbreak) are indices of + // encountered breakpoints; and + // iorder(nfree),...,iorder(n) are indices of variables which + // have no bound constraits along the search direction. + // + // iwhere is an integer array of dimension n. + // On entry iwhere indicates only the permanently fixed (iwhere=3) + // or free (iwhere= -1) components of x. + // On exit iwhere records the status of the current x variables. + // iwhere(i)=-3 if x(i) is free and has bounds, but is not moved + // 0 if x(i) is free and has bounds, and is moved + // 1 if x(i) is fixed at l(i), and l(i) .ne. u(i) + // 2 if x(i) is fixed at u(i), and u(i) .ne. l(i) + // 3 if x(i) is always fixed, i.e., u(i)=x(i)=l(i) + // -1 if x(i) is always free, i.e., it has no bounds. + // + // t is a double precision working array of dimension n. + // t will be used to store the break points. + // + // d is a double precision array of dimension n used to store + // the Cauchy direction P(x-tg)-x. + // + // xcp is a double precision array of dimension n used to return the + // GCP on exit. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // ws, wy, sy, and wt are double precision arrays. + // On entry they store information that defines the + // limited memory BFGS matrix: + // ws(n,m) stores S, a set of s-vectors; + // wy(n,m) stores Y, a set of y-vectors; + // sy(m,m) stores S'Y; + // wt(m,m) stores the + // Cholesky factorization of (theta*S'S+LD^(-1)L'). + // On exit these arrays are unchanged. + // + // theta is a double precision variable. + // On entry theta is the scaling factor specifying B_0 = theta I. + // On exit theta is unchanged. + // + // col is an integer variable. + // On entry col is the actual number of variable metric + // corrections stored so far. + // On exit col is unchanged. + // + // head is an integer variable. + // On entry head is the location of the first s-vector (or y-vector) + // in S (or Y). + // On exit col is unchanged. + // + // p is a double precision working array of dimension 2m. + // p will be used to store the vector p = W^(T)d. + // + // c is a double precision working array of dimension 2m. + // c will be used to store the vector c = W^(T)(xcp-x). + // + // wbp is a double precision working array of dimension 2m. + // wbp will be used to store the row of W corresponding + // to a breakpoint. + // + // v is a double precision working array of dimension 2m. + // + // nseg is an integer variable. + // On exit nseg records the number of quadratic segments explored + // in searching for the GCP. + // + // sg and yg are double precision arrays of dimension m. + // On entry sg and yg store S'g and Y'g correspondingly. + // On exit they are unchanged. + // + // iprint is an INTEGER variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // sbgnrm is a double precision variable. + // On entry sbgnrm is the norm of the projected gradient at x. + // On exit sbgnrm is unchanged. + // + // info is an integer variable. + // On entry info is 0. + // On exit info = 0 for normal return, + // = nonzero for abnormal return when the system + // used in routine bmv is singular. + // + // Subprograms called: + // + // L-BFGS-B Library ... hpsolb, bmv. + // + // Linpack ... dscal dcopy, daxpy. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: FORTRAN + // Subroutines for Large Scale Bound Constrained Optimization'' + // Tech. Report, NAM-11, EECS Department, Northwestern University, + // 1994. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int bnded, xlower, xupper; + int i, j, col2, nfree, nbreak, pointr, ibp, nleft, ibkmin, iter, one_int = 1; + double f1, f2, dt, dtm, tsum, dibp, zibp, dibp2, bkmin, tu, tl, wmc, wmp; + double wmw, tj, tj0, neggi, f2_org; + + f1 = 0.0; + tl = 0.0; + tu = 0.0; + + if (sbgnrm <= 0.0) + { + dcopy_(&n, x, &one_int, xcp, &one_int); + return; + } + bnded = 1; + nfree = n; + nbreak = -1; + ibkmin = 0; + bkmin = 0.0; + col2 = 2*col; + + // We set p to zero and build it up as we determine d. + for (i = 0; i < col2; i++) + { + p[i] = 0.0; + } + // 20 + + // In the following loop we determine for each variable its boud status and + // its breakpoint, and update p accordingly. Smallest breakpoint is identified. + for (i = 0; i < n; i++) + { + neggi = -g[i]; + if ((iwhere[i] != 3) && (iwhere[i] != -1)) + { + // If x[i] is not a constant and has bounds, compute the difference + // between x[i] and its bounds. + if (nbd[i] <= 2) { tl = x[i] - l[i]; } + if (nbd[i] >= 2) { tu = u[i] - x[i]; } + + // If a varaible is close enough to a bound, we treat it as at bound. + xlower = ((nbd[i] <= 2) && (tl <= 0.0)); + xupper = ((nbd[i] >= 2) && (tu <= 0.0)); + + // Reset iwhere[i] + iwhere[i] = 0; + if (xlower) { + if (neggi <= 0.0) { iwhere[i] = 1; } + } else if (xupper) { + if (neggi >= 0.0) { iwhere[i] = 2; } + } else { + if (fabs(neggi) <= 0.0) { iwhere[i] = -3; } + } + } + pointr = head; + if ((iwhere[i] != 0) && (iwhere[i] != -1)) + { + d[i] = 0.0; + } else { + d[i] = neggi; + f1 = f1 - neggi * neggi; + // Calculate p := p - W'e_i* (g_i). + for (j = 0; j < col; j++) { + p[j] = p[j] + wy[i + n*pointr]*neggi; + p[col + j] = p[col + j] + ws[i + n*pointr]*neggi; + pointr = (pointr + 1) % m; + } + // 40 + if ((nbd[i] <= 2) && (nbd[i] != 0) && (neggi < 0.0)) + { + // x(i) + d(i) is bounded; compute t(i). + nbreak += 1; + iorder[nbreak] = i; + t[nbreak] = tl / (-neggi); + if ((nbreak == 0) || (t[nbreak] < bkmin)) + { + bkmin = t[nbreak]; + ibkmin = nbreak; + } + } else if ((nbd[i] >= 2) && (neggi > 0.0)) { + // x(i) + d(i) is bounded; compute t(i). + nbreak += 1; + iorder[nbreak] = i; + t[nbreak] = tu / neggi; + if ((nbreak == 0) || (t[nbreak] < bkmin)) + { + bkmin = t[nbreak]; + ibkmin = nbreak; + } + } else { + // x(i) + d(i) is not bounded. + nfree -= 1; + iorder[nfree] = i; + if (fabs(neggi) > 0.0) { bnded = 0; } + } + } + } + // 50 + + // The indices of the nonzero components of d are now stored + // in iorder(1),...,iorder(nbreak) and iorder(nfree),...,iorder(n). + // The smallest of the nbreak breakpoints is in t(ibkmin)=bkmin. + if (theta != 1.0) + { + // Complete the initialization of p for theta not= one. + dscal_(&col, &theta, &p[col], &one_int); + } + // Initialize GCP xcp = x. + dcopy_(&n, x, &one_int, xcp, &one_int); + if ((nbreak == -1) && (nfree == n)) + { + // is a zero vector, return with the initial xcp as GCP. + return; + } + // Initialize c = W'(xcp - x) = 0. + for (j = 0; j < col2; j++) + { + c[j] = 0.0; + } + // 60 + + // Initialize derivative f2. + f2 = -(theta) * f1; + f2_org = f2; + if (col > 0) { + bmv(m, sy, wt, col, p, v, info); + if (*info != 0) { return; } + f2 = f2 - ddot_(&col2, v, &one_int, p, &one_int); + } + dtm = -f1 / f2; + tsum = 0.0; + *nseg = 1; + + // If there are no breakpoints, locate the GCP and return. + if (nbreak == -1) { goto LINE888; } + nleft = nbreak; + iter = 0; + tj = 0.0; + + // ------------------- the beginning of the loop ------------------------- + while (1) + { + // Find the next smallest breakpoint; + // compute dt = t(nleft) - t(nleft + 1). + tj0 = tj; + if (iter == 0) + { + // Since we already have the smallest breakpoint we need not do + // heapsort yet. Often only one breakpoint is used and the + // cost of heapsort is avoided. + tj = bkmin; + ibp = iorder[ibkmin]; + } else { + if (iter == 1) + { + // Replace the already used smallest breakpoint with the + // breakpoint numbered nbreak > nlast, before heapsort call. + if (ibkmin != nbreak) + { + t[ibkmin] = t[nbreak]; + iorder[ibkmin] = iorder[nbreak]; + } + } + // Update heap structure of breakpoints (if iter=2, initialize heap). + hpsolb(nleft, t, iorder, iter - 1); + tj = t[nleft]; + ibp = iorder[nleft]; + } + + dt = tj - tj0; + + // If a minimizer is within this interval, locate the GCP and return. + if (dtm < dt) { goto LINE888; } + + // Otherwise fix one variable and reset the corresponding component + // of d to zero. + tsum = tsum + dt; + nleft -= 1; + iter += 1; + dibp = d[ibp]; + d[ibp] = 0.0; + if (dibp > 0.0) { + zibp = u[ibp] - x[ibp]; + xcp[ibp] = u[ibp]; + iwhere[ibp] = 2; + } else { + zibp = l[ibp] - x[ibp]; + xcp[ibp] = l[ibp]; + iwhere[ibp] = 1; + } + if (nleft == -1 && nbreak == n) { + // All n variables are fixed, return with xcp as GCP. + dtm = dt; + goto LINE999; + } + + // Update the derivative information. + nseg += 1; + dibp2 = pow(dibp, 2.0); + + // Update f1 and f2 + + // Temporarily set f1 and f2 for col=0. + f1 = f1 + dt * f2 + dibp2 - theta*dibp*zibp; + f2 = f2 - theta*dibp2; + if (col > 0) { + // Update c = c + dt*p. + daxpy_(&col2, &dt, p, &one_int, c, &one_int); + // Choose wbp, the row of W corresponding to the breakpoint encountered. + pointr = head; + for (j = 0; j < col; j++) { + wbp[j] = wy[ibp + n*pointr]; + wbp[col + j] = theta * ws[ibp + n*pointr]; + pointr = (pointr + 1) % m; + } + // 70 + + // Compute (wbp)Mc, (wbp)Mp, and (wbp)M(wbp)'. + bmv(m, sy, wt, col, wbp, v, info); + if (*info != 0) { return; } + wmc = ddot_(&col2, c, &one_int, v, &one_int); + wmp = ddot_(&col2, p, &one_int, v, &one_int); + wmw = ddot_(&col2, wbp, &one_int, v, &one_int); + // Update p = p - dibp*wbp. + dibp = -dibp; + daxpy_(&col2, &dibp, wbp, &one_int, p, &one_int); + dibp = -dibp; + + // Complete updating f1 and f2 while col > 0. + f1 = f1 + dibp*wmc; + f2 = f2 + dibp*2.0*wmp - dibp2*wmw; + } + + f2 = fmax(epsmach*f2_org, f2); + + if (nleft >= 0) { + // to repeat the loop for unsearched intervals. + dtm = -f1 / f2; + } else if (bnded) { + dtm = 0.0; + break; + } else { + dtm = -f1 / f2; + break; + } + } + + // ------------------- the end of the loop ------------------------------- + +LINE888: + if (dtm <= 0.0) { dtm = 0.0; } + tsum = tsum + dtm; + + // Move free variables (i.e. the ones w/o breakpoints) and the variables + // whose breakpoints haven't been reached. + daxpy_(&n, &tsum, d, &one_int, xcp, &one_int); + +LINE999: + // Update c = c + dtm*p = W'(x^c - x) + // which will be used in computing r = Z'(B(x^c - x) + g). + + if (col > 0) { daxpy_(&col2, &dtm, p, &one_int, c, &one_int); } + + return; +} + + +void +cmprlb(int n, int m, double* x, double* g, + double* ws, double* wy, double* sy, double* wt, + double* z, double* r, double* wa, int* index, + double theta, int col, int head, int nfree, + int cnstnd, int* info) +{ + // ************ + // + // Subroutine cmprlb + // + // This subroutine computes r=-Z'B(xcp-xk)-Z'g by using + // wa(2m+1)=W'(xcp-x) from subroutine cauchy. + // + // Subprograms called: + // + // L-BFGS-B Library ... bmv. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, j, k, pointr; + double a1, a2; + + if ((!cnstnd) && (col > 0)) + { + for (i = 0; i < n; i++) { r[i] = -g[i]; } + // 26 + } else { + for (i = 0; i < nfree; i++) + { + k = index[i]; + r[i] = -theta*(z[k] - x[k]) - g[k]; + } + // 30 + + bmv(m, sy, wt, col, &wa[2*m], wa, info); + if (*info != 0) { *info = -8; return; } + pointr = head; + for (j = 0; j < col; j++) + { + a1 = wa[j]; + a2 = theta*wa[col + j]; + for (i = 0; i < nfree; i++) + { + k = index[i]; + r[i] = r[i] + wy[k + n*pointr]*a1 + ws[k + n*pointr]*a2; + } + // 32 + pointr = (pointr + 1) % m; + } + // 34 + } + + return; +} + + +void +errclb(int n, int m, double factr, double* l, + double* u, int* nbd, int* task, int* task_msg, int* info, + int* k) +{ + // ************ + // + // Subroutine errclb + // + // This subroutine checks the validity of the input data. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i; + + // Check the input arguments for errors. + if (n <= 0) { *task = ERROR; *task_msg = ERROR_N; } + if (m <= 0) { *task = ERROR; *task_msg = ERROR_M; } + if (factr < 0) { *task = ERROR; *task_msg = ERROR_FACTR; } + + // Check the validity of the arrays nbd(i), u(i), and l(i). + for (i = 0; i < n; i++) + { + if ((nbd[i] < 0) || (nbd[i] > 3)) + { + *task = ERROR; + *task_msg = ERROR_NBD; + *info = -6; + *k = i; + } + if (nbd[i] == 2) + { + if (l[i] > u[i]) + { + // Return + *task = ERROR; + *task_msg = ERROR_NOFEAS; + *info = -7; + *k = i; + } + } + } + + return; +} + + +void +formk(int n, int nsub, int* ind, int nenter, int ileave, + int* indx2, int iupdat, int updatd, double* wn, + double* wn1, int m, double* ws, double* wy, + double* sy, double theta, int col, int head, int* info) +{ + // ************ + // + // Subroutine formk + // + // This subroutine forms the LEL^T factorization of the indefinite + // + // matrix K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // where E = [-I 0] + // [ 0 I] + // The matrix K can be shown to be equal to the matrix M^[-1]N + // occurring in section 5.1 of [1], as well as to the matrix + // Mbar^[-1] Nbar in section 5.3. + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // nsub is an integer variable + // On entry nsub is the number of subspace variables in free set. + // On exit nsub is not changed. + // + // ind is an integer array of dimension nsub. + // On entry ind specifies the indices of subspace variables. + // On exit ind is unchanged. + // + // nenter is an integer variable. + // On entry nenter is the number of variables entering the + // free set. + // On exit nenter is unchanged. + // + // ileave is an integer variable. + // On entry indx2(ileave),...,indx2(n) are the variables leaving + // the free set. + // On exit ileave is unchanged. + // + // indx2 is an integer array of dimension n. + // On entry indx2(1),...,indx2(nenter) are the variables entering + // the free set, while indx2(ileave),...,indx2(n) are the + // variables leaving the free set. + // On exit indx2 is unchanged. + // + // iupdat is an integer variable. + // On entry iupdat is the total number of BFGS updates made so far. + // On exit iupdat is unchanged. + // + // updatd is a logical variable. + // On entry 'updatd' is true if the L-BFGS matrix is updatd. + // On exit 'updatd' is unchanged. + // + // wn is a double precision array of dimension 2m x 2m. + // On entry wn is unspecified. + // On exit the upper triangle of wn stores the LEL^T factorization + // of the 2*col x 2*col indefinite matrix + // [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // + // wn1 is a double precision array of dimension 2m x 2m. + // On entry wn1 stores the lower triangular part of + // [Y' ZZ'Y L_a'+R_z'] + // [L_a+R_z S'AA'S ] + // in the previous iteration. + // On exit wn1 stores the corresponding updated matrices. + // The purpose of wn1 is just to store these inner products + // so they can be easily updated and inserted into wn. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // ws, wy, sy, and wtyy are double precision arrays; + // theta is a double precision variable; + // col is an integer variable; + // head is an integer variable. + // On entry they store the information defining the + // limited memory BFGS matrix: + // ws(n,m) stores S, a set of s-vectors; + // wy(n,m) stores Y, a set of y-vectors; + // sy(m,m) stores S'Y; + // wtyy(m,m) stores the Cholesky factorization + // of (theta*S'S+LD^(-1)L') + // theta is the scaling factor specifying B_0 = theta I; + // col is the number of variable metric corrections stored; + // head is the location of the 1st s- (or y-) vector in S (or Y). + // On exit they are unchanged. + // + // info is an integer variable. + // On entry info is unspecified. + // On exit info = 0 for normal return; + // = -1 when the 1st Cholesky factorization failed; + // = -2 when the 2st Cholesky factorization failed. + // + // Subprograms called: + // + // Linpack ... dcopy, dpofa, dtrsl. + // + // + // References: + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: a + // limited memory FORTRAN code for solving bound constrained + // optimization problems'', Tech. Report, NAM-11, EECS Department, + // Northwestern University, 1994. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int m2, ipntr, jpntr, iy, is, jy, js, is1, js1, k1, i, k, col2, pbegin, pend; + int dbegin, dend, upcl, one_int = 1, temp_int; + double temp1, temp2, temp3, temp4; + char *uplo = "U", *trans = "T", *diag = "N"; + + // Form the lower triangular part of + // WN1 = [Y' ZZ'Y L_a'+R_z'] + // [L_a+R_z S'AA'S ] + // where L_a is the strictly lower triangular part of S'AA'Y + // R_z is the upper triangular part of S'ZZ'Y. + + if (updatd) + { + if (iupdat > m) + { + // Shift old part of WN1. + for (jy = 0; jy < m - 1; jy++) + { + js = m + jy; + temp_int = m - (jy + 1); + dcopy_(&temp_int, &wn1[(jy + 1) + 2*m*(jy + 1)], &one_int, &wn1[jy + 2*m*jy], &one_int); + dcopy_(&temp_int, &wn1[(js + 1) + 2*m*(js + 1)], &one_int, &wn1[js + 2*m*js], &one_int); + temp_int = m - 1; + dcopy_(&temp_int, &wn1[(m + 1) + 2*m*(jy + 1)], &one_int, &wn1[m + 2*m*jy], &one_int); + } + // 10 + } + + // Put new rows in blocks (1,1), (2,1) and (2,2). + pbegin = 0; // Inclusive loop start + pend = nsub; // Exclusive loop end + dbegin = nsub; // Inclusive loop start + dend = n; // Exclusive loop end + iy = col - 1; + is = m + col - 1; + ipntr = head + col - 1; + if (ipntr >= m) { ipntr -= m; } + jpntr = head; + + for (jy = 0; jy < col; jy++) + { + js = m + jy; + temp1 = 0.0; + temp2 = 0.0; + temp3 = 0.0; + + // Compute element jy of row 'col' of Y'ZZ'Y. + for (k = pbegin; k < pend; k++) + { + k1 = ind[k]; + temp1 = temp1 + wy[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 15 + + // Compute elements jy of row 'col' of L_a and S'AA'S. + for (k = dbegin; k < dend; k++) + { + k1 = ind[k]; + temp2 = temp2 + ws[k1 + n*ipntr]*ws[k1 + n*jpntr]; + temp3 = temp3 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 16 + wn1[iy + 2*m*jy] = temp1; + wn1[is + 2*m*js] = temp2; + wn1[is + 2*m*jy] = temp3; + jpntr = (jpntr + 1) % m; + } + // 20 + + // Put new column in block (2,1) + jy = col - 1; + jpntr = head + col - 1; + if (jpntr >= m) { jpntr -= m; } + ipntr = head; + + for (i = 0; i < col; i++) + { + is = m + i; + temp3 = 0.0; + // Compute element i of column 'col' of R_z. + for (k = pbegin; k < pend; k++) + { + k1 = ind[k]; + temp3 = temp3 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 25 + ipntr = (ipntr + 1) % m; + wn1[is + 2*m*jy] = temp3; + } + // 30 + + upcl = col - 1; + } else { + upcl = col; + } + + // modify the old parts in blocks (1,1) and (2,2) due to changes + // in the set of free variables. + ipntr = head; + for (iy = 0; iy < upcl; iy++) + { + is = m + iy; + jpntr = head; + for (jy = 0; jy <= iy; jy++) + { + js = m + jy; + temp1 = 0.0; + temp2 = 0.0; + temp3 = 0.0; + temp4 = 0.0; + + for (k = 0; k < nenter; k++) + { + k1 = indx2[k]; + temp1 = temp1 + wy[k1 + n*ipntr]*wy[k1 + n*jpntr]; + temp2 = temp2 + ws[k1 + n*ipntr]*ws[k1 + n*jpntr]; + } + // 35 + for (k = ileave; k < n; k++) + { + k1 = indx2[k]; + temp3 = temp3 + wy[k1 + n*ipntr]*wy[k1 + n*jpntr]; + temp4 = temp4 + ws[k1 + n*ipntr]*ws[k1 + n*jpntr]; + } + // 36 + + wn1[iy + 2*m*jy] = wn1[iy + 2*m*jy] + temp1 - temp3; + wn1[is + 2*m*js] = wn1[is + 2*m*js] - temp2 + temp4; + jpntr = (jpntr + 1) % m; + } + // 40 + + ipntr = (ipntr + 1) % m; + } + // 45 + + // Modify the old parts in block (2,1) + ipntr = head; + for (is = m; is < m + upcl; is++) + { + jpntr = head; + for (jy = 0; jy < upcl; jy++) + { + temp1 = 0.0; + temp3 = 0.0; + for (k = 0; k < nenter; k++) + { + k1 = indx2[k]; + temp1 = temp1 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 50 + for (k = ileave; k < n; k++) + { + k1 = indx2[k]; + temp3 = temp3 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 51 + if (is <= jy + m) + { + wn1[is + 2*m*jy] = wn1[is + 2*m*jy] + temp1 - temp3; + } else { + wn1[is + 2*m*jy] = wn1[is + 2*m*jy] - temp1 + temp3; + } + jpntr = (jpntr + 1) % m; + } + // 55 + ipntr = (ipntr + 1) % m; + } + // 60 + + // Form the upper triangle of WN = [D+Y' ZZ'Y/theta -L_a'+R_z' ] + // [-L_a +R_z S'AA'S*theta] + + m2 = 2*m; + for (iy = 0; iy < col; iy++) + { + is = col + iy; + is1 = m + iy; + for (jy = 0; jy <= iy; jy++) + { + js = col + jy; + js1 = m + jy; + wn[jy + m2*iy] = wn1[iy + m2*jy] / theta; + wn[js + m2*is] = wn1[is1 + m2*js1] * theta; + } + // 65 + for (jy = 0; jy < iy; jy++) + { + wn[jy + m2*is] = -wn1[is1 + m2*jy]; + } + // 66 + for (jy = iy; jy < col; jy++) + { + wn[jy + m2*is] = wn1[is1 + m2*jy]; + } + // 67 + wn[iy + m2*iy] = wn[iy + m2*iy] + sy[iy + m*iy]; + } + // 70 + + // Form the upper triangle of WN= [ LL' L^-1(-L_a'+R_z')] + // [(-L_a +R_z)L'^-1 S'AA'S*theta ] + // + // first Cholesky factor (1,1) block of wn to get LL' + // with L' stored in the upper triangle of wn. + + // dpotrf(uplo, n, a, lda, info) + dpotrf_(uplo, &col, wn, &m2, info); + if (*info != 0) { *info = -1; return; } + + // Then form L^-1(-L_a'+R_z') in the (1,2) block. + col2 = 2*col; + + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + dtrtrs_(uplo, trans, diag, &col, &col, wn, &m2, &wn[m2*col], &m2, info); + + // Form S'AA'S*theta + (L^-1(-L_a'+R_z'))'L^-1(-L_a'+R_z') in the upper + // triangle of (2,2) block of wn. + for (is = col; is < col2; is++) + { + for (js = is; js < col2; js++) + { + wn[is + m2*js] = wn[is + m2*js] + ddot_(&col, &wn[m2*is], &one_int, &wn[m2*js], &one_int); + } + // 74 + } + // 72 + + // dpotrf(uplo, n, a, lda, info) + dpotrf_(uplo, &col, &wn[col + m2*col], &m2, info); + if (*info != 0) { *info = -2; } + + return; +} + + +void +formt(int m, double* wt, double* sy, double* ss, int col, + double theta, int* info) +{ + // ************ + // + // Subroutine formt + // + // This subroutine forms the upper half of the pos. def. and symm. + // T = theta*SS + L*D^(-1)*L', stores T in the upper triangle + // of the array wt, and performs the Cholesky factorization of T + // to produce J*J', with J' stored in the upper triangle of wt. + // + // Subprograms called: + // + // Linpack ... dpofa. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, j, k, k1; + double ddum; + char *uplo = "U"; + + // Form the upper half of T = theta*SS + L*D^(-1)*L', store T in the upper + // triangle of the array wt. + for (j = 0; j < col; j++) + { + wt[m*j] = theta*ss[m*j]; + } + // 52 + + for (i = 1; i < col; i++) + { + for (j = i; j < col; j++) + { + k1 = (i > j ? j : i); + ddum = 0.0; + for (k = 0; k < k1; k++) + { + ddum = ddum + ((sy[i + m*k] * sy[j + m*k]) / sy[k + m*k]); + } + // 53 + wt[i + m*j] = ddum + theta*ss[i + m*j]; + } + // 54 + } + // 55 + + // Cholesky factorize T to J*J' with J' stored in the upper triangle of wt. + // dpotrf(uplo, n, a, lda, info) + dpotrf_(uplo, &col, wt, &m, info); + if (*info != 0) { *info = -3; } + + return; +} + + +void +freev(int n, int* nfree, int* idx, int* nenter, int* ileave, int* idx2, + int* iwhere, int* wrk, int updatd, int cnstnd, + int iter) +{ + // ************ + // + // Subroutine freev + // + // This subroutine counts the entering and leaving variables when + // iter > 0, and finds the index set of free and active variables + // at the GCP. + // + // cnstnd is a logical variable indicating whether bounds are present + // + // index is an integer array of dimension n + // for i=1,...,nfree, index(i) are the indices of free variables + // for i=nfree+1,...,n, index(i) are the indices of bound variables + // On entry after the first iteration, index gives + // the free variables at the previous iteration. + // On exit it gives the free variables based on the determination + // in cauchy using the array iwhere. + // + // indx2 is an integer array of dimension n + // On entry indx2 is unspecified. + // On exit with iter>0, indx2 indicates which variables + // have changed status since the previous iteration. + // For i= 1,...,nenter, indx2(i) have changed from bound to free. + // For i= ileave+1,...,n, indx2(i) have changed from free to bound. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, iact, k; + + // in formk + // nenter will be used as exclusive upper bound + // ileave will be used as the inclusive lower bound + + *nenter = 0; + *ileave = n; + if ((iter > 0) && cnstnd) + { + // Count the entering and leaving variables. + for (i = 0; i < *nfree; i++) + { + k = idx[i]; + + if (iwhere[k] > 0) + { + *ileave -= 1; + idx2[*ileave] = k; + } + } + // 20 + for (i = *nfree; i < n; i++) + { + k = idx[i]; + if (iwhere[k] <= 0) + { + idx2[*nenter] = k; + *nenter += 1; + } + } + // 22 + } + + *wrk = ((*ileave < n) || (*nenter > 0) || updatd); + + // Find the index set of free and active variables at the GCP. + *nfree = 0; + iact = n; + for (i = 0; i < n; i++) + { + if (iwhere[i] <= 0) + { + idx[*nfree] = i; + *nfree += 1; + } else { + iact -= 1; + idx[iact] = i; + } + } + // 24 + + return; +} + + +void +hpsolb(int n, double* t, int* iorder, int iheap) +{ + // ************ + // + // Subroutine hpsolb + // + // This subroutine sorts out the least element of t, and puts the + // remaining elements of t in a heap. + // + // n is an integer variable. + // On entry n is the dimension of the arrays t and iorder. + // On exit n is unchanged. + // + // t is a double precision array of dimension n. + // On entry t stores the elements to be sorted, + // On exit t(n) stores the least elements of t, and t(1) to t(n-1) + // stores the remaining elements in the form of a heap. + // + // iorder is an integer array of dimension n. + // On entry iorder(i) is the index of t(i). + // On exit iorder(i) is still the index of t(i), but iorder may be + // permuted in accordance with t. + // + // iheap is an integer variable specifying the task. + // On entry iheap should be set as follows: + // iheap .eq. 0 if t(1) to t(n) is not in the form of a heap, + // iheap .ne. 0 if otherwise. + // On exit iheap is unchanged. + // + // + // References: + // Algorithm 232 of CACM (J. W. J. Williams): HEAPSORT. + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // ************ + int i, j, k, indxin, indxout; + double ddum, out; + + if (iheap == 0) + { + // Rearrange the elements t(1) to t(n) to form a heap. + for (k = 2; k <= n + 1; k++) + { + ddum = t[k-1]; + indxin = iorder[k-1]; + + // Add ddum to the heap + i = k; + while (1) + { + if (i > 1) + { + j = i / 2; + if (ddum < t[j-1]) + { + t[i-1] = t[j-1]; + iorder[i-1] = iorder[j-1]; + i = j; + } else { + break; + } + } else { + break; + } + } + // 10 + + t[i-1] = ddum; + iorder[i-1] = indxin; + } + // 20 + } + + // Assign to 'out' the value of t(1), the least member of the heap, and + // rearrange the remaining members to form a heap as elements 1 to n-1 of t. + if (n > 0) + { + i = 1; + out = t[0]; + indxout = iorder[0]; + ddum = t[n]; + indxin = iorder[n]; + + // Restore the heap + while (1) + { + j = i + i; + if (j <= n) + { + if (t[j] < t[j-1]) { j++; } + if (t[j-1] < ddum) + { + t[i-1] = t[j-1]; + iorder[i-1] = iorder[j-1]; + i = j; + } else { + break; + } + } else { + break; + } + } + t[i-1] = ddum; + iorder[i-1] = indxin; + + // Put the least member in t(n). + t[n] = out; + iorder[n] = indxout; + } + + return; +} + + +void +lnsrlb(int n, double* l, double* u, int* nbd, double* x, + double f, double* fold, double *gd, double *gdold, double* g, + double* d, double* r, double* t, double* z, double* stp, double* dnorm, + double* dtd, double* xstep, double* stpmx, int iter, int* ifun, + int* iback, int* nfgv, int* info, int* task, int* task_msg, + int boxed, int cnstnd, int* isave, double* dsave, int* temp_task, + int* temp_taskmsg) +{ + // ********** + // + // Subroutine lnsrlb + // + // This subroutine calls subroutine dcsrch from the Minpack2 library + // to perform the line search. Subroutine dscrch is safeguarded so + // that all trial points lie within the feasible region. + // + // Subprograms called: + // + // Minpack2 Library ... dcsrch. + // + // Linpack ... dtrsl, ddot. + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ********** + int i, one_int = 1; + double a1, a2, ftol = 1e-3, gtol = 0.9, xtol = 0.1; + if (*task_msg == FG_LNSRCH) { goto LINE556; } + + *dnorm = dnrm2_(&n, d, &one_int); + *dtd = pow(*dnorm, 2.0); + + // Determine the maximum step length. + *stpmx = 1.0e+10; + if (cnstnd) + { + if (iter == 0) + { + *stpmx = 1.0; + } else { + for (i = 0; i < n; i++) + { + a1 = d[i]; + if (nbd[i] != 0) + { + if ((a1 < 0.0) && (nbd[i] <= 2)) + { + a2 = l[i] - x[i]; + if (a2 >= 0.0) + { + *stpmx = 0.0; + } else if (a1*(*stpmx) < a2) { + *stpmx = a2 / a1; + } + } else if ((a1 > 0.0) && (nbd[i] >= 2)) { + a2 = u[i] - x[i]; + if (a2 <= 0.0) + { + *stpmx = 0.0; + } else if (a1*(*stpmx) > a2) { + *stpmx = a2 / a1; + } + } + } + } + // 43 + } + } + + if ((iter == 0) && (!(boxed))) + { + *stp = fmin(1.0 / (*dnorm), *stpmx); + } else { + *stp = 1.0; + } + + for (i = 0; i < n; i++) + { + t[i] = x[i]; + r[i] = g[i]; + } + + *fold = f; // Later used in mainlb, see control flow after returning from this function. + *ifun = 0; + *iback = 0; + *temp_task = START; + *temp_taskmsg = NO_MSG; +LINE556: + *gd = ddot_(&n, g, &one_int, d, &one_int); + if (*ifun == 0) + { + *gdold = *gd; + if (*gd >= 0.0) + { + // The directional derivative >= 0, line search is impossible. + *info = -4; + return; + } + } + dcsrch(f, *gd, stp, ftol, gtol, xtol, 0.0, *stpmx, temp_task, temp_taskmsg, + isave, dsave); + + *xstep = (*stp) * (*dnorm); + if ((*temp_task != CONVERGENCE) && (*temp_task != WARNING)) + { + *task = FG; + *task_msg = FG_LNSRCH; + *ifun += 1; + *nfgv += 1; + *iback = *ifun - 1; + if (*stp == 1.0) + { + // for (i = 0; i < n; i++) { x[i] = z[i]; } + dcopy_(&n, z, &one_int, x, &one_int); + } else { + for (i = 0; i < n; i++) + { + // Take step and prevent rounding error beyond bound. + x[i] = (*stp) * d[i] + t[i]; + if ((nbd[i] == 1) || (nbd[i] == 2)) { x[i] = fmax(x[i], l[i]); } + if ((nbd[i] == 2) || (nbd[i] == 3)) { x[i] = fmin(x[i], u[i]); } + } + // 41 + } + } else { + *task = NEW_X; + *task_msg = NO_MSG; + } + + return; +} + + +void +matupd(int n, int m, double* ws, double *wy, double* sy, double* ss, + double* d, double* r, int* itail, int iupdat, int* col, + int* head, double* theta, double rr, double dr, double stp, + double dtd) +{ + // ************ + // + // Subroutine matupd + // + // This subroutine updates matrices WS and WY, and forms the + // middle matrix in B. + // + // Subprograms called: + // + // Linpack ... dcopy, ddot. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int j, pointr, temp_int, one_int = 1; + + // Set pointers for matrices WS and WY. + if (iupdat <= m) + { + *col = iupdat; + *itail = (*head + iupdat - 1) % m; + } else { + *itail = (*itail + 1) % m; + *head = (*head + 1) % m; + } + + // Update matrices WS and WY. + dcopy_(&n, d, &one_int, &ws[(*itail) * n], &one_int); + dcopy_(&n, r, &one_int, &wy[(*itail) * n], &one_int); + + // Set theta=yy/ys. + *theta = rr / dr; + + // Form the middle matrix in B. + // update the upper triangle of SS (m, m), and the lower triangle of SY (m, m): + if (iupdat > m) + { + for (j = 1; j < *col; j++) + { + dcopy_(&j, &ss[1 + m*j], &one_int, &ss[m*(j-1)], &one_int); + temp_int = *col - j; + dcopy_(&temp_int, &sy[j + m*j], &one_int, &sy[(j-1) + m*(j-1)], &one_int); + } + // 50 + } + + // add new information: the last row of SY and the last column of SS + pointr = *head; + for (j = 0; j < *col - 1; j++) + { + sy[*col - 1 + m*j] = ddot_(&n, d, &one_int, &wy[pointr*n], &one_int); + ss[j + m*(*col - 1)] = ddot_(&n, &ws[pointr*n], &one_int, &d[0], &one_int); + pointr = (pointr + 1) % m; + } + // 51 + + ss[(*col - 1) + m*(*col - 1)] = (stp == 1.0 ? dtd : stp*stp*dtd ); + sy[(*col - 1) + m*(*col - 1)] = dr; + + return; +} + + +void +projgr(int n, double* l, double* u, int* nbd, + double* x, double* g, double* sbgnrm) +{ + // ************ + // + // Subroutine projgr + // + // This subroutine computes the infinity norm of the projected + // gradient. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i; + double gi; + + *sbgnrm = 0.0; + for (i = 0; i < n; i++) + { + gi = g[i]; + if (gi != gi) + { + // NaN value in gradient: propagate it + *sbgnrm = gi; + return; + } + if (nbd[i] != 0) + { + if (gi < 0.0) + { + if (nbd[i] >= 2) { gi = fmax(x[i] - u[i], gi); } + } else { + if (nbd[i] <= 2) { gi = fmin(x[i] - l[i], gi); } + } + } + *sbgnrm = fmax(*sbgnrm, fabs(gi)); + } + // 15 + + return; +} + + +void subsm(int n, int m, int nsub, int* ind, + double* l, double* u, int* nbd, double* x, + double* d, double* xp, double* ws, double* wy, + double theta, double* xx, double* gg, int col, + int head, int* iword, double* wv, double* wn, int* info) +{ + // ********************************************************************** + // + // This routine contains the major changes in the updated version. + // The changes are described in the accompanying paper + // + // Jose Luis Morales, Jorge Nocedal + // "Remark On Algorithm 788: L-BFGS-B: Fortran Subroutines for Large-Scale + // Bound Constrained Optimization". Decemmber 27, 2010. + // + // J.L. Morales Departamento de Matematicas, + // Instituto Tecnologico Autonomo de Mexico + // Mexico D.F. + // + // J, Nocedal Department of Electrical Engineering and + // Computer Science. + // Northwestern University. Evanston, IL. USA + // + // January 17, 2011 + // + // ********************************************************************** + // + // + // Subroutine subsm + // + // Given xcp, l, u, r, an index set that specifies + // the active set at xcp, and an l-BFGS matrix B + // (in terms of WY, WS, SY, WT, head, col, and theta), + // this subroutine computes an approximate solution + // of the subspace problem + // + // (P) min Q(x) = r'(x-xcp) + 1/2 (x-xcp)' B (x-xcp) + // + // subject to l<=x<=u + // x_i=xcp_i for all i in A(xcp) + // + // along the subspace unconstrained Newton direction + // + // d = -(Z'BZ)^(-1) r. + // + // The formula for the Newton direction, given the L-BFGS matrix + // and the Sherman-Morrison formula, is + // + // d = (1/theta)r + (1/theta*2) Z'WK^(-1)W'Z r. + // + // where + // K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // + // Note that this procedure for computing d differs + // from that described in [1]. One can show that the matrix K is + // equal to the matrix M^[-1]N in that paper. + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // nsub is an integer variable. + // On entry nsub is the number of free variables. + // On exit nsub is unchanged. + // + // ind is an integer array of dimension nsub. + // On entry ind specifies the coordinate indices of free variables. + // On exit ind is unchanged. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound of x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound of x. + // On exit u is unchanged. + // + // nbd is a integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, and + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // x is a double precision array of dimension n. + // On entry x specifies the Cauchy point xcp. + // On exit x(i) is the minimizer of Q over the subspace of + // free variables. + // + // d is a double precision array of dimension n. + // On entry d is the reduced gradient of Q at xcp. + // On exit d is the Newton direction of Q. + // + // xp is a double precision array of dimension n. + // used to safeguard the projected Newton direction + // + // xx is a double precision array of dimension n + // On entry it holds the current iterate + // On output it is unchanged + // gg is a double precision array of dimension n + // On entry it holds the gradient at the current iterate + // On output it is unchanged + // + // ws and wy are double precision arrays; + // theta is a double precision variable; + // col is an integer variable; + // head is an integer variable. + // On entry they store the information defining the + // limited memory BFGS matrix: + // ws(n,m) stores S, a set of s-vectors; + // wy(n,m) stores Y, a set of y-vectors; + // theta is the scaling factor specifying B_0 = theta I; + // col is the number of variable metric corrections stored; + // head is the location of the 1st s- (or y-) vector in S (or Y). + // On exit they are unchanged. + // + // iword is an integer variable. + // On entry iword is unspecified. + // On exit iword specifies the status of the subspace solution. + // iword = 0 if the solution is in the box, + // 1 if some bound is encountered. + // + // wv is a double precision working array of dimension 2m. + // + // wn is a double precision array of dimension 2m x 2m. + // On entry the upper triangle of wn stores the LEL^T factorization + // of the indefinite matrix + // + // K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // where E = [-I 0] + // [ 0 I] + // On exit wn is unchanged. + // + // iprint is an INTEGER variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // info is an integer variable. + // On entry info is unspecified. + // On exit info = 0 for normal return, + // = nonzero for abnormal return + // when the matrix K is ill-conditioned. + // + // Subprograms called: + // + // Linpack dtrsl. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int pointr, m2, col2, ibd, jy, js, i, j, k, one_int = 1; + double alpha, xk, dk, temp, temp1, temp2, dd_p; + char *uplo = "U", *trans = "T", *diag = "N"; + + // n, m, col, nsub are size variables. + // ind, head are index variables/arrays. + if (nsub <= 0) { return; } + + // Compute wv = W'Zd. + pointr = head; + for (i = 0; i < col; i++) + { + temp1 = 0.0; + temp2 = 0.0; + for (j = 0; j < nsub; j++) + { + k = ind[j]; + temp1 += wy[k + n*pointr]*d[j]; + temp2 += ws[k + n*pointr]*d[j]; + } + wv[i] = temp1; + wv[col + i] = theta*temp2; + pointr = (pointr + 1) % m; + } + + // Compute wv:=K^(-1)wv. + m2 = 2*m; + col2 = 2*col; + + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + dtrtrs_(uplo, trans, diag, &col2, &one_int, wn, &m2, wv, &m2, info); + if (*info != 0) { return; } + + for (i = 0; i < col; i++) { wv[i] = -wv[i]; } + + trans = "N"; + dtrtrs_(uplo, trans, diag, &col2, &one_int, wn, &m2, wv, &m2, info); + if (*info != 0) { return; } + + // Compute d = (1/theta)d + (1/theta**2)Z'W wv. + pointr = head; + for (jy = 0; jy < col; jy++) + { + js = col + jy; + for (i = 0; i < nsub; i++) + { + k = ind[i]; + d[i] = d[i] + (wy[k + n*pointr] * wv[jy] / theta) + + (ws[k + n*pointr] * wv[js]); + } + // 30 + pointr = (pointr + 1) % m; + } + // 40 + + temp = 1.0 / theta; + // n, da, dx, incx + dscal_(&nsub, &temp, d, &one_int); + + // ----------------------------------------------------- + // Let us try the projection, d is the Newton direction. + + *iword = 0; + // for (i = 0; i < n; i++) { xp[i] = x[i]; } + dcopy_(&n, x, &one_int, xp, &one_int); + + for (i = 0; i < nsub; i++) + { + k = ind[i]; + dk = d[i]; + xk = x[k]; + if (nbd[k] != 0) + { + if (nbd[k] == 1) // Lower bounds only + { + x[k] = fmax(l[k], xk + dk); + if (x[k] == l[k]) { *iword = 1; } + } else { + if (nbd[k] == 2) // Upper and lower bounds + { + xk = fmax(l[k], xk + dk); + x[k] = fmin(u[k], xk); + if ((x[k] == l[k]) || (x[k] == u[k])) { *iword = 1; } + } else { + if (nbd[k] == 3) // Upper bounds only + { + x[k] = fmin(u[k], xk + dk); + if (x[k] == u[k]) { *iword = 1; } + } + } + } + } else { // Free variables + x[k] = xk + dk; + } + } + // 50 + + if (*iword == 0) { return; } + + // Check sign of the directional derivative + dd_p = 0.0; + for (i = 0; i < n; i++) { dd_p = dd_p + (x[i] - xx[i])*gg[i]; } + // 55 + + if (dd_p > 0.0) + { + // for (i = 0; i < n; i++) { x[i] = xp[i]; } + dcopy_(&n, xp, &one_int, x, &one_int); + } else { + return; + } + + // ------------------------------------------------------------- + alpha = 1.0; + temp1 = 1.0; + ibd = 0; + + for (i = 0; i < nsub; i++) + { + k = ind[i]; + dk = d[i]; + if (nbd[k] != 0) + { + if ((dk < 0.0) && (nbd[k] <= 2)) + { + temp2 = l[k] - x[k]; + if (temp2 >= 0.0) + { + temp1 = 0.0; + } else if (dk * alpha < temp2) { + temp1 = temp2 / dk; + } + } else if ((dk > 0.0) && (nbd[k] >= 2)) { + temp2 = u[k] - x[k]; + if (temp2 <= 0.0) { + temp1 = 0.0; + } else if (dk * alpha > temp2) { + temp1 = temp2 / dk; + } + } + if (temp1 < alpha) + { + alpha = temp1; + ibd = i; + } + } + } + // 60 + + if (alpha < 1.0) + { + dk = d[ibd]; + k = ind[ibd]; + if (dk > 0.0) + { + x[k] = u[k]; + d[ibd] = 0.0; + } else if (dk < 0.0) { + x[k] = l[k]; + d[ibd] = 0.0; + } + } + + for (i = 0; i < nsub; i++) + { + k = ind[i]; + x[k] = x[k] + alpha*d[i]; + } + // 70 + + return; +} + + +void +dcsrch(double f, double g, double* stp, double ftol, double gtol, + double xtol, double stpmin, double stpmax, int* task, + int* task_msg, int* isave, double* dsave) +{ + // ********** + // + // Subroutine dcsrch + // + // This subroutine finds a step that satisfies a sufficient + // decrease condition and a curvature condition. + // + // Each call of the subroutine updates an interval with + // endpoints stx and sty. The interval is initially chosen + // so that it contains a minimizer of the modified function + // + // psi(stp) = f(stp) - f(0) - ftol*stp*f'(0). + // + // If psi(stp) <= 0 and f'(stp) >= 0 for some step, then the + // interval is chosen so that it contains a minimizer of f. + // + // The algorithm is designed to find a step that satisfies + // the sufficient decrease condition + // + // f(stp) <= f(0) + ftol*stp*f'(0), + // + // and the curvature condition + // + // abs(f'(stp)) <= gtol*abs(f'(0)). + // + // If ftol is less than gtol and if, for example, the function + // is bounded below, then there is always a step which satisfies + // both conditions. + // + // If no step can be found that satisfies both conditions, then + // the algorithm stops with a warning. In this case stp only + // satisfies the sufficient decrease condition. + // + // A typical invocation of dcsrch has the following outline: + // + // task = 'START' + // 10 continue + // call dcsrch( ... ) + // if (task .eq. 'FG') then + // Evaluate the function and the gradient at stp + // goto 10 + // end if + // + // NOTE: The user must no alter work arrays between calls. + // + // The subroutine statement is + // + // subroutine dcsrch(f,g,stp,ftol,gtol,xtol,stpmin,stpmax, + // task,isave,dsave) + // where + // + // f is a double precision variable. + // On initial entry f is the value of the function at 0. + // On subsequent entries f is the value of the + // function at stp. + // On exit f is the value of the function at stp. + // + // g is a double precision variable. + // On initial entry g is the derivative of the function at 0. + // On subsequent entries g is the derivative of the + // function at stp. + // On exit g is the derivative of the function at stp. + // + // stp is a double precision variable. + // On entry stp is the current estimate of a satisfactory + // step. On initial entry, a positive initial estimate + // must be provided. + // On exit stp is the current estimate of a satisfactory step + // if task = 'FG'. If task = 'CONV' then stp satisfies + // the sufficient decrease and curvature condition. + // + // ftol is a double precision variable. + // On entry ftol specifies a nonnegative tolerance for the + // sufficient decrease condition. + // On exit ftol is unchanged. + // + // gtol is a double precision variable. + // On entry gtol specifies a nonnegative tolerance for the + // curvature condition. + // On exit gtol is unchanged. + // + // xtol is a double precision variable. + // On entry xtol specifies a nonnegative relative tolerance + // for an acceptable step. The subroutine exits with a + // warning if the relative difference between sty and stx + // is less than xtol. + // On exit xtol is unchanged. + // + // stpmin is a double precision variable. + // On entry stpmin is a nonnegative lower bound for the step. + // On exit stpmin is unchanged. + // + // stpmax is a double precision variable. + // On entry stpmax is a nonnegative upper bound for the step. + // On exit stpmax is unchanged. + // + // task is a character variable of length at least 60. + // On initial entry task must be set to 'START'. + // On exit task indicates the required action: + // + // If task(1:2) = 'FG' then evaluate the function and + // derivative at stp and call dcsrch again. + // + // If task(1:4) = 'CONV' then the search is successful. + // + // If task(1:4) = 'WARN' then the subroutine is not able + // to satisfy the convergence conditions. The exit value of + // stp contains the best point found during the search. + // + // If task(1:5) = 'ERROR' then there is an error in the + // input arguments. + // + // On exit with convergence, a warning or an error, the + // variable task contains additional information. + // + // isave is an integer work array of dimension 2. + // + // dsave is a double precision work array of dimension 13. + // + // Subprograms called + // + // MINPACK-2 ... dcstep + // + // MINPACK-1 Project. June 1983. + // Argonne National Laboratory. + // Jorge J. More' and David J. Thuente. + // + // MINPACK-2 Project. October 1993. + // Argonne National Laboratory and University of Minnesota. + // Brett M. Averick, Richard G. Carter, and Jorge J. More'. + // + // ********** + int brackt, stage; + double finit, ftest, fm, fx, fxm, fy, fym, ginit, gtest, gm, gx, gxm, gy; + double gym, stx, sty, stmin, stmax, width, width1; + double xtrapl = 1.1; + double xtrapu = 4.0; + + // Initialization block. + if (*task == START) + { + // Check the input arguments for errors. + if (*stp < stpmin) { *task = ERROR; *task_msg = ERROR_STP1; } + if (*stp > stpmax) { *task = ERROR; *task_msg = ERROR_STP2; } + if (g >= 0.0) { *task = ERROR; *task_msg = ERROR_INITG; } + if (ftol < 0.0) { *task = ERROR; *task_msg = ERROR_FTOL; } + if (gtol < 0.0) { *task = ERROR; *task_msg = ERROR_GTOL; } + if (xtol < 0.0) { *task = ERROR; *task_msg = ERROR_XTOL; } + if (stpmin < 0.0) { *task = ERROR; *task_msg = ERROR_STPMIN; } + if (stpmax < stpmin) { *task = ERROR; *task_msg = ERROR_STPMAX; } + + // Exit if there are errors on input. + if (*task == ERROR) { return; } + + // Initialize local variables. + brackt = 0; + stage = 1; + finit = f; + ginit = g; + gtest = ftol * ginit; + width = stpmax - stpmin; + width1 = width / 0.5; + + // The variables stx, fx, gx contain the values of the step, function, + // and derivative at the best step. + // The variables sty, fy, gy contain the value of the step, function, + // and derivative at sty. + // The variables stp, f, g contain the values of the step, function, + // and derivative at stp. + stx = 0.0; + fx = finit; + gx = ginit; + sty = 0.0; + fy = finit; + gy = ginit; + stmin = 0.0; + stmax = *stp + xtrapu*(*stp); + + *task = FG; + *task_msg = NO_MSG; + goto SAVEVARS; + + } else { + // Restore local variables. + if (isave[0] == 1) { + brackt = 1; + } else { + brackt = 0; + } + stage = isave[1]; + ginit = dsave[0]; + gtest = dsave[1]; + gx = dsave[2]; + gy = dsave[3]; + finit = dsave[4]; + fx = dsave[5]; + fy = dsave[6]; + stx = dsave[7]; + sty = dsave[8]; + stmin = dsave[9]; + stmax = dsave[10]; + width = dsave[11]; + width1 = dsave[12]; + + } + + // If psi(stp) <= 0 and f'(stp) >= 0 for some step, then the algorithm + // enters the second stage. + ftest = finit + (*stp)*gtest; + if ((stage == 1) && (f <= ftest) && (g >= 0.0)) { stage = 2; } + + // Test for warnings. + if ((brackt) && ((*stp <= stmin) || (*stp >= stmax))) + { + *task = WARNING; + *task_msg = WARN_ROUND; + } + if ((brackt) && ((stmax - stmin) <= xtol * stmax)) + { + *task = WARNING; + *task_msg = WARN_XTOL; + } + if ((*stp == stpmax) && (f <= ftest) && (g <= gtest)) { + *task = WARNING; + *task_msg = WARN_STPMAX; + } + if ((*stp == stpmin) && ((f > ftest) || (g >= gtest))) { + *task = WARNING; + *task_msg = WARN_STPMIN; + } + // Test for convergence. + if ((f <= ftest) && (fabs(g) <= gtol * (-ginit))) { + *task = CONVERGENCE; + } + + // Test for termination. + if ((*task == WARNING) || (*task == CONVERGENCE)) + { + goto SAVEVARS; + } + + // A modified function is used to predict the step during the first stage if + // a lower function value has been obtained but the decrease is not sufficient. + + if ((stage == 1) && (f <= fx) && (f > ftest)) + { + // Define the modified function and derivative values. + fm = f - (*stp)*gtest; + fxm = fx - stx*gtest; + fym = fy - sty*gtest; + gm = g - gtest; + gxm = gx - gtest; + gym = gy - gtest; + + // Call dcstep to update stx, sty, and to compute the new step. + dcstep(&stx, &fxm, &gxm, &sty, &fym, &gym, stp, fm, gm, &brackt, stmin, stmax); + + // Reset the function and derivative values for f. + fx = fxm + stx*gtest; + fy = fym + sty*gtest; + gx = gxm + gtest; + gy = gym + gtest; + + } else { + // Call dcstep to update stx, sty, and to compute the new step. + dcstep(&stx, &fx, &gx, &sty, &fy, &gy, stp, f, g, &brackt, stmin, stmax); + } + + // Decide if a bisection step is needed. + if (brackt) + { + if (fabs(sty - stx) >= 0.66*width1) + { + *stp = stx + 0.5*(sty - stx); + } + width1 = width; + width = fabs(sty - stx); + } + + // Set the minimum and maximum steps allowed for stp. + if (brackt) + { + stmin = fmin(stx,sty); + stmax = fmax(stx,sty); + } else { + stmin = *stp + xtrapl*(*stp - stx); + stmax = *stp + xtrapu*(*stp - stx); + } + + // Force the step to be within the bounds stpmax and stpmin. + *stp = fmax(*stp, stpmin); + *stp = fmin(*stp, stpmax); + + // If further progress is not possible, let stp be the best point obtained + // during the search. + + if (((brackt) && (*stp <= stmin || *stp >= stmax)) || + ((brackt) && (stmax - stmin <= xtol * stmax))) + { + *stp = stx; + } + + // Obtain another function and derivative. + *task = FG; + *task_msg = NO_MSG; + +SAVEVARS: + if (brackt) + { + isave[0] = 1; + } else { + isave[0] = 0; + } + + isave[1] = stage; + dsave[0] = ginit; + dsave[1] = gtest; + dsave[2] = gx; + dsave[3] = gy; + dsave[4] = finit; + dsave[5] = fx; + dsave[6] = fy; + dsave[7] = stx; + dsave[8] = sty; + dsave[9] = stmin; + dsave[10] = stmax; + dsave[11] = width; + dsave[12] = width1; + + return; +} + + +void +dcstep (double* stx, double* fx, double* dx, double* sty, double* fy, double* dy, + double* stp, double fp, double dp, int* brackt, + double stpmin, double stpmax) +{ + // ********** + // + // Subroutine dcstep + // + // This subroutine computes a safeguarded step for a search + // procedure and updates an interval that contains a step that + // satisfies a sufficient decrease and a curvature condition. + // + // The parameter stx contains the step with the least function + // value. If brackt is set to .true. then a minimizer has + // been bracketed in an interval with endpoints stx and sty. + // The parameter stp contains the current step. + // The subroutine assumes that if brackt is set to .true. then + // + // min(stx,sty) < stp < max(stx,sty), + // + // and that the derivative at stx is negative in the direction + // of the step. + // + // The subroutine statement is + // + // subroutine dcstep(stx,fx,dx,sty,fy,dy,stp,fp,dp,brackt, + // stpmin,stpmax) + // + // where + // + // stx is a double precision variable. + // On entry stx is the best step obtained so far and is an + // endpoint of the interval that contains the minimizer. + // On exit stx is the updated best step. + // + // fx is a double precision variable. + // On entry fx is the function at stx. + // On exit fx is the function at stx. + // + // dx is a double precision variable. + // On entry dx is the derivative of the function at + // stx. The derivative must be negative in the direction of + // the step, that is, dx and stp - stx must have opposite + // signs. + // On exit dx is the derivative of the function at stx. + // + // sty is a double precision variable. + // On entry sty is the second endpoint of the interval that + // contains the minimizer. + // On exit sty is the updated endpoint of the interval that + // contains the minimizer. + // + // fy is a double precision variable. + // On entry fy is the function at sty. + // On exit fy is the function at sty. + // + // dy is a double precision variable. + // On entry dy is the derivative of the function at sty. + // On exit dy is the derivative of the function at the exit sty. + // + // stp is a double precision variable. + // On entry stp is the current step. If brackt is set to .true. + // then on input stp must be between stx and sty. + // On exit stp is a new trial step. + // + // fp is a double precision variable. + // On entry fp is the function at stp + // On exit fp is unchanged. + // + // dp is a double precision variable. + // On entry dp is the derivative of the function at stp. + // On exit dp is unchanged. + // + // brackt is a logical variable. + // On entry brackt specifies if a minimizer has been bracketed. + // Initially brackt must be set to .false. + // On exit brackt specifies if a minimizer has been bracketed. + // When a minimizer is bracketed brackt is set to .true. + // + // stpmin is a double precision variable. + // On entry stpmin is a lower bound for the step. + // On exit stpmin is unchanged. + // + // stpmax is a double precision variable. + // On entry stpmax is an upper bound for the step. + // On exit stpmax is unchanged. + // + // MINPACK-1 Project. June 1983 + // Argonne National Laboratory. + // Jorge J. More' and David J. Thuente. + // + // MINPACK-2 Project. October 1993. + // Argonne National Laboratory and University of Minnesota. + // Brett M. Averick and Jorge J. More'. + // + // ********** + double gamma, p, q, r, s, sgnd, stpc, stpf, stpq, theta; + sgnd = dp * (*dx / fabs(*dx)); + + // First case: A higher function value. The minimum is bracketed. + // If the cubic step is closer to stx than the quadratic step, the + // cubic step is taken, otherwise the average of the cubic and + // quadratic steps is taken. + + if (fp > *fx) + { + theta = 3.0 * (*fx - fp) / (*stp - *stx) + *dx + dp; + s = fmax(fabs(theta), fmax(fabs(*dx), fabs(dp))); + gamma = s * sqrt(pow(theta / s, 2.0) - (*dx / s)*(dp / s)); + if (*stp < *stx) { gamma = -gamma; } + p = (gamma - *dx) + theta; + q = ((gamma - *dx) + gamma) + dp; + r = p / q; + stpc = *stx + r * (*stp - *stx); + stpq = *stx + ((*dx / ((*fx - fp) / (*stp - *stx) + *dx)) / 2.0) * (*stp - *stx); + if (fabs(stpc - *stx) < fabs(stpq - *stx)) + { + stpf = stpc; + } else { + stpf = stpc + (stpq - stpc) / 2.0; + } + *brackt = 1; + + } else if (sgnd < 0.0) { + + // Second case: A lower function value and derivatives of opposite + // sign. The minimum is bracketed. If the cubic step is farther from + // stp than the secant step, the cubic step is taken, otherwise the + // secant step is taken. + + theta = 3.0 * (*fx - fp) / (*stp - *stx) + *dx + dp; + s = fmax(fabs(theta), fmax(fabs(*dx), fabs(dp))); + gamma = s * sqrt(pow(theta / s, 2.0) - (*dx / s)*(dp / s)); + if (*stp > *stx) { gamma = -gamma; } + p = (gamma - dp) + theta; + q = ((gamma - dp) + gamma) + *dx; + r = p / q; + stpc = *stp + r * (*stx - *stp); + stpq = *stp + (dp / (dp - *dx)) * (*stx - *stp); + if (fabs(stpc - *stp) > fabs(stpq - *stp)) + { + stpf = stpc; + } else { + stpf = stpq; + } + *brackt = 1; + + } else if (fabs(dp) < fabs(*dx)) { + + // Third case: A lower function value, derivatives of the same sign, + // and the magnitude of the derivative decreases. + + // The cubic step is computed only if the cubic tends to infinity + // in the direction of the step or if the minimum of the cubic + // is beyond stp. Otherwise the cubic step is defined to be the + // secant step. + + theta = 3.0 * (*fx - fp) / (*stp - *stx) + *dx + dp; + s = fmax(fabs(theta),fmax(fabs(*dx), fabs(dp))); + + // The case gamma = 0 only arises if the cubic does not tend + // to infinity in the direction of the step. + + gamma = s*sqrt(fmax(0.0, pow(theta/s, 2.0) - (*dx / s) * (dp / s))); + if (*stp > *stx) { gamma = -gamma; } + p = (gamma - dp) + theta; + q = (gamma + (*dx - dp)) + gamma; + r = p / q; + if ((r < 0.0) && (gamma != 0.0)) + { + stpc = *stp + r*(*stx - *stp); + } else if (*stp > *stx) { + stpc = stpmax; + } else { + stpc = stpmin; + } + stpq = *stp + (dp / (dp - *dx)) * (*stx - *stp); + + if (*brackt) + { + // A minimizer has been bracketed. If the cubic step is + // closer to stp than the secant step, the cubic step is + // taken, otherwise the secant step is taken. + + if (fabs(stpc - *stp) < fabs(stpq - *stp)) + { + stpf = stpc; + } else { + stpf = stpq; + } + if (*stp > *stx) + { + stpf = fmin(*stp + 0.66*(*sty - *stp), stpf); + } else { + stpf = fmax(*stp + 0.66*(*sty - *stp), stpf); + } + } else { + // A minimizer has not been bracketed. If the cubic step is + // farther from stp than the secant step, the cubic step is + // taken, otherwise the secant step is taken. + + if (fabs(stpc - *stp) > fabs(stpq - *stp)) + { + stpf = stpc; + } else { + stpf = stpq; + } + stpf = fmin(stpmax, stpf); + stpf = fmax(stpmin, stpf); + } + + } else { + // Fourth case: A lower function value, derivatives of the same sign, + // and the magnitude of the derivative does not decrease. If the + // minimum is not bracketed, the step is either stpmin or stpmax, + // otherwise the cubic step is taken. + + if (*brackt) { + theta = 3.0 * (fp - *fy) / (*sty - *stp) + *dy + dp; + s = fmax(fabs(theta), fmax(fabs(*dy), fabs(dp))); + gamma = s*sqrt(pow(theta/s, 2.0) - (*dy / s) * (dp / s)); + if (*stp > *sty) { gamma = -gamma; } + p = (gamma - dp) + theta; + q = ((gamma - dp) + gamma) + *dy; + r = p / q; + stpc = *stp + r*(*sty - *stp); + stpf = stpc; + } else if (*stp > *stx) { + stpf = stpmax; + } else { + stpf = stpmin; + } + } + + // Update the interval which contains a minimizer. + + if (fp > *fx) { + *sty = *stp; + *fy = fp; + *dy = dp; + } else { + if (sgnd < 0.0) { + *sty = *stx; + *fy = *fx; + *dy = *dx; + } + *stx = *stp; + *fx = fp; + *dx = dp; + } + + // Compute the new step. + + *stp = stpf; + + return; +} diff --git a/third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.h b/third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.h new file mode 100644 index 0000000..1ac42a4 --- /dev/null +++ b/third_party/scipy_lbfgsb/SCIPY_1_17_0_ORIGINAL___lbfgsb.h @@ -0,0 +1,192 @@ +#ifndef __LBFGSB_H +#define __LBFGSB_H + +#define PY_SSIZE_T_CLEAN +#include "Python.h" +#include "numpy/arrayobject.h" +#include + +#define PYERR(errobj,message) {PyErr_SetString(errobj,message); return NULL;} + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +// BLAS +void daxpy_(int* n, double* alpha, double* x, int* incx, double* y, int* incy); +void dscal_(int* n, double* alpha, double* x, int* incx); +void dcopy_(int* n, double* x, int* incx, double* y, int* incy); +double dnrm2_(int* n, double* x, int* incx); +double ddot_(int* n, double* x, int* incx, double* y, int* incy); + +// LAPACK +void dpotrf_(char* uplo, int* n, double* a, int* lda, int* info); +void dtrtrs_(char* uplo, char* trans, char* diag, int* n, int* nrhs, double* a, int* lda, double* b, int* ldb, int* info); + +static PyObject* lbfgsb_error; + +static void setulb(int n, int m, double* x, double* l, double* u, int* nbd, double* f, + double* g, double factr, double pgtol, double* wa, int* iwa, int* task, + int* lsave, int* isave, double* dsave, int maxls, int* ln_task +); + +static char doc_setulb[] = "setulb(m,x,l,u,nbd,f,g,factr,pgtol,wa,iwa,task,lsave,isave,dsave,maxls,ln_task)"; + +static PyObject* +lbfgsb_setulb(PyObject *self, PyObject *args) +{ + int m, n, maxls; + double f, factr, pgtol; + int *nbd, *iwa, *isave, *lsave, *taskptr, *ln_taskptr; + double *x, *l, *u, *g, *wa, *dsave; + + PyArrayObject *ap_x=NULL, *ap_l=NULL, *ap_u=NULL, *ap_g=NULL, *ap_nbd=NULL; + PyArrayObject *ap_wa=NULL, *ap_iwa=NULL, *ap_task=NULL, *ap_ln_task=NULL; + PyArrayObject *ap_lsave=NULL, *ap_isave=NULL, *ap_dsave=NULL; + + // Check argument types + // m,x,l,u,nbd,f,g,factr,pgtol,wa,iwa,task,lsave,isave,dsave,maxls,ln_task + if (!(PyArg_ParseTuple(args, + "iO!O!O!O!dO!ddO!O!O!O!O!O!iO!", + &m, // i + &PyArray_Type, (PyObject **)&ap_x, // O! + &PyArray_Type, (PyObject **)&ap_l, // O! + &PyArray_Type, (PyObject **)&ap_u, // O! + &PyArray_Type, (PyObject **)&ap_nbd, // O! + &f, // d + &PyArray_Type, (PyObject **)&ap_g, // O! + &factr, // d + &pgtol, // d + &PyArray_Type, (PyObject **)&ap_wa, // O! + &PyArray_Type, (PyObject **)&ap_iwa, // O! + &PyArray_Type, (PyObject **)&ap_task, // O! + &PyArray_Type, (PyObject **)&ap_lsave, // O! + &PyArray_Type, (PyObject **)&ap_isave, // O! + &PyArray_Type, (PyObject **)&ap_dsave, // O! + &maxls, // i + &PyArray_Type, (PyObject **)&ap_ln_task // O! + ))) { return NULL; } + + // Check if arrays are contiguous and with the right dtype. + // All arrays are 1D hence both F and C contiguous flags are set to True. + if (!(PyArray_IS_C_CONTIGUOUS(ap_x)) || (PyArray_TYPE(ap_x) != NPY_FLOAT64)) + { + PYERR(lbfgsb_error, " Argument (x) must be a contiguous array of type float64."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_l)) || (PyArray_TYPE(ap_l) != NPY_FLOAT64)) + { + PYERR(lbfgsb_error, " Argument (l) must be a contiguous array of type float64."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_u)) || (PyArray_TYPE(ap_u) != NPY_FLOAT64)) + { + PYERR(lbfgsb_error, " Argument (u) must be a contiguous array of type float64."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_wa)) || (PyArray_TYPE(ap_wa) != NPY_FLOAT64)) + { + PYERR(lbfgsb_error, " Argument (wa) must be a contiguous array of type float64."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_iwa)) || (PyArray_TYPE(ap_iwa) != NPY_INT32)) + { + PYERR(lbfgsb_error, " Argument (iwa) must be a contiguous array of type int32."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_dsave)) || (PyArray_TYPE(ap_dsave) != NPY_FLOAT64)) + { + PYERR(lbfgsb_error, " Argument (dsave) must be a contiguous array of type float64."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_nbd)) || (PyArray_TYPE(ap_nbd) != NPY_INT32)) + { + PYERR(lbfgsb_error, " Argument (nbd) must be a contiguous array of type int32."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_task)) || (PyArray_TYPE(ap_task) != NPY_INT32)) + { + PYERR(lbfgsb_error, " Argument (task) must be a contiguous array of type int32."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_lsave)) || (PyArray_TYPE(ap_lsave) != NPY_INT32)) + { + PYERR(lbfgsb_error, " Argument (lsave) must be a contiguous array of type int32."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_isave)) || (PyArray_TYPE(ap_isave) != NPY_INT32)) + { + PYERR(lbfgsb_error, " Argument (isave) must be a contiguous array of type int32."); + } + if (!(PyArray_IS_C_CONTIGUOUS(ap_ln_task)) || (PyArray_TYPE(ap_ln_task) != NPY_INT32)) + { + PYERR(lbfgsb_error, " Argument (ln_task) must be a contiguous array of type int32."); + } + n = PyArray_DIMS(ap_x)[0]; + + x = (double *)PyArray_DATA(ap_x); + l = (double *)PyArray_DATA(ap_l); + u = (double *)PyArray_DATA(ap_u); + nbd = (int *)PyArray_DATA(ap_nbd); + g = (double *)PyArray_DATA(ap_g); + wa = (double *)PyArray_DATA(ap_wa); + iwa = (int *)PyArray_DATA(ap_iwa); + lsave = (int *)PyArray_DATA(ap_lsave); + isave = (int *)PyArray_DATA(ap_isave); + dsave = (double *)PyArray_DATA(ap_dsave); + taskptr = (int *)PyArray_DATA(ap_task); + ln_taskptr = (int *)PyArray_DATA(ap_ln_task); + + // Make the function call + setulb(n, m, x, l, u, nbd, &f, g, factr, pgtol, wa, iwa, taskptr, lsave, + isave, dsave, maxls, ln_taskptr); + + Py_RETURN_NONE; +} + +static struct PyMethodDef lbfgsb_module_methods[] = { + {"setulb", lbfgsb_setulb, METH_VARARGS, doc_setulb}, + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef moduledef = { + PyModuleDef_HEAD_INIT, + "_lbfgsb", + NULL, + -1, + lbfgsb_module_methods, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC +PyInit__lbfgsb(void) +{ + PyObject *module, *mdict; + + import_array(); + + module = PyModule_Create(&moduledef); + if (module == NULL) { + return NULL; + } + + mdict = PyModule_GetDict(module); + if (mdict == NULL) { + return NULL; + } + lbfgsb_error = PyErr_NewException ("_lbfgsb.error", NULL, NULL); + if (lbfgsb_error == NULL) { + return NULL; + } + if (PyDict_SetItemString(mdict, "error", lbfgsb_error)) { + return NULL; + } + +#if Py_GIL_DISABLED + PyUnstable_Module_SetGIL(module, Py_MOD_GIL_NOT_USED); +#endif + + return module; +} + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* ifndef */ \ No newline at end of file diff --git a/third_party/scipy_lbfgsb/lbfgsb_standalone.c b/third_party/scipy_lbfgsb/lbfgsb_standalone.c new file mode 100644 index 0000000..da035fa --- /dev/null +++ b/third_party/scipy_lbfgsb/lbfgsb_standalone.c @@ -0,0 +1,3767 @@ +/* + * Copyright (C) 2024 SciPy developers + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * a. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * b. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * c. Names of the SciPy Developers may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * + * This file is a C translation of the Fortran code written by Ciyou Zhu, + * Richard Byrd, Jorge Nocedal and Jose Luis Morales with the original + * description below. + * Some of the functions have been modified and certain arguments are rendered + * obsolete to be used in SciPy however original docstrings are kept at the top + * of each function for reference. + * + */ + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * =========== L-BFGS-B (version 3.0. April 25, 2011 =================== + * + * This is a modified version of L-BFGS-B. Minor changes in the updated + * code appear preceded by a line comment as follows + * + * c-jlm-jn + * + * Major changes are described in the accompanying paper: + * + * Jorge Nocedal and Jose Luis Morales, Remark on "Algorithm 778: + * L-BFGS-B: Fortran Subroutines for Large-Scale Bound Constrained + * Optimization" (2011). To appear in ACM Transactions on + * Mathematical Software, + * + * The paper describes an improvement and a correction to Algorithm 778. + * It is shown that the performance of the algorithm can be improved + * significantly by making a relatively simple modication to the subspace + * minimization phase. The correction concerns an error caused by the use + * of routine dpmeps to estimate machine precision. + * + * The total work space **wa** required by the new version is + * + * 2*m*n + 11m*m + 5*n + 8*m + * + * the old version required + * + * 2*m*n + 12m*m + 4*n + 12*m + * + * + * J. Nocedal Department of Electrical Engineering and + * Computer Science. + * Northwestern University. Evanston, IL. USA + * + * + * J.L Morales Departamento de Matematicas, + * Instituto Tecnologico Autonomo de Mexico + * Mexico D.F. Mexico. + * + * March 2011 + * + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * The original BSD-3 licensed Fortran code can be found at + * + * https://users.iems.northwestern.edu/~nocedal/lbfgsb.html + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * References: + * + * [1]: R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound + * Constrained Optimization, (1995), SIAM Journal on Scientific and + * Statistical Computing, 16, 5, pp. 1190-1208. + * [2]: C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B, + * FORTRAN routines for large scale bound constrained optimization (1997), + * ACM Transactions on Mathematical Software, 23, 4, pp. 550 - 560. + * [3]: J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: + * L-BFGS-B, FORTRAN routines for large scale bound constrained + * optimization (2011), ACM Transactions on Mathematical Software, 38, 1. + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "lbfgsb_standalone.h" + + +enum Status { + START = 0, + NEW_X = 1, + RESTART = 2, // RESTART FROM LINESEARCH + FG = 3, // REQUEST FG FOR THE CURRENT X + CONVERGENCE = 4, + STOP = 5, + WARNING = 6, + ERROR = 7, + ABNORMAL = 8 // ABNORMAL TERMINATION IN LINE SEARCH (WHY NOT AN ERROR?) +}; + + +enum StatusMsg { + NO_MSG = 0, + + FG_START = 301, + FG_LNSRCH = 302, + + CONV_GRAD = 401, // CONVERGENCE: NORM OF PROJECTED GRADIENT <= PGTOL + CONV_F = 402, // CONVERGENCE: PROGRESS <= FACTR*EPSMCH + + STOP_CPU = 501, // CPU EXCEEDING THE TIME LIMIT ?! + STOP_ITER = 502, // TOTAL NO. OF F,G EVALUATIONS EXCEEDS LIMIT + STOP_GRAD = 503, // PROJECTED GRADIENT IS SUFFICIENTLY SMALL + STOP_ITERC = 504, // TOTAL NO. of ITERATIONS REACHED LIMIT + STOP_CALLB = 505, // CALLBACK REQUESTED HALT + + WARN_ROUND = 601, // ROUNDING ERRORS PREVENT PROGRESS + WARN_STPMAX = 602, // STP = STPMAX + WARN_STPMIN = 603, // STP = STPMIN + WARN_XTOL = 604, // XTOL TEST SATISFIED ?! + + ERROR_NOFEAS = 701, // NO FEASIBLE SOLUTION + ERROR_FACTR = 702, // FACTR < 0 + ERROR_FTOL = 703, // FTOL < 0 + ERROR_GTOL = 704, // GTOL < 0 + ERROR_XTOL = 705, // XTOL < 0 + ERROR_STP1 = 706, // STP < STPMIN + ERROR_STP2 = 707, // STP > STPMAX + ERROR_STPMIN = 708, // STPMIN < 0 + ERROR_STPMAX = 709, // STPMAX < STPMIN + ERROR_INITG = 710, // INITIAL G >= 0 + ERROR_M = 711, // M <= 0 + ERROR_N = 712, // N <= 0 + ERROR_NBD = 713 // INVALID NBD +}; + + +// Internal functions + +static void mainlb( + int n, int m, double* x, double* l, double* u, + int* nbd, double* f, double* g, double factr, double pgtol, + double* ws, double* wy, double* sy, double* ss, double* wt, double* wn, + double* snd, double* z, double* r, double* d, double* t, double* xp, + double* wa, int* index, int* iwhere, int* indx2, int* task, int* task_msg, + int* lsave, int* isave, double* dsave, int maxls, int* ln_task, int* ln_taskmsg +); +static void active( + int n, double* l, double* u, int* nbd, double* x, + int* iwhere, int* prjctd, int* cnstnd, int* boxed +); +static void bmv( + int m, double* sy, double* wt, int col, + double* v, double* p, int* info +); +static void cauchy( + int n, double* x, double* l, double* u, + int* nbd, double *g, int* iorder, int* iwhere, double* t, + double* d, double* xcp, int m, double* wy, double* ws, + double* sy, double* wt, double theta, int col, + int head, double* p, double* c, double* wbp, double* v, int* nseg, + double sbgnrm, int* info +); +static void cmprlb( + int n, int m, double* x, double* g, + double* ws, double* wy, double* sy, double* wt, + double* z, double* r, double* wa, int* index, + double theta, int col, int head, int nfree, + int cnstnd, int* info +); +static void errclb( + int n, int m, double factr, double* l, + double* u, int* nbd, int* task, int* task_msg, int* info, int* k +); +static void formk( + int n, int nsub, int* ind, int nenter, + int ileave, int* indx2, int iupdat, int updatd, + double* wn, double* wn1, int m, double* ws, double* wy, + double* sy, double theta, int col, int head, + int* info +); +static void formt( + int m, double* wt, double* sy, double* ss, int col, + double theta, int* info +); +static void freev( + int n, int* nfree, int* idx, int* nenter, int* ileave, int* idx2, + int* iwhere, int* wrk, int updatd, int cnstnd, + int iter +); +static void hpsolb(int n, double* t, int* iorder, int iheap); +static void lnsrlb( + int n, double* l, double* u, int* nbd, double* x, + double f, double* fold, double *gd, double *gdold, double* g, + double* d, double* r, double* t, double* z, double* stp, double* dnorm, + double* dtd, double* xstep, double* stpmx, int iter, int* ifun, + int* iback, int* nfgv, int* info, int* task, int* task_msg, int boxed, + int cnstnd, int* isave, double* dsave, int* temp_task, int* temp_task_msg +); +static void matupd( + int n, int m, double* ws, double *wy, double* sy, double* ss, + double* d, double* r, int* itail, int iupdat, int* col, + int* head, double* theta, double rr, double dr, double stp, + double dtd +); +static void projgr( + int n, double* l, double* u, int* nbd, + double* x, double* g, double* sbgnrm +); +static void subsm( + int n, int m, int nsub, int* ind, double* l, + double* u, int* nbd, double* x, double* d, double* xp, + double* ws, double* wy, double theta, double* xx, + double* gg, int col, int head, int* iword, double* wv, + double* wn, int* info +); + +// Line search functions +static void dcsrch( + double f, double g, double* stp, double ftol, + double gtol, double xtol, double stpmin, + double stpmax, int* task, int* task_msg, int* isave, double* dsave +); +static void dcstep ( + double* stx, double* fx, double* dx, double* sty, double* fy, double* dy, + double* stp, double fp, double dp, int* brackt, + double stpmin, double stpmax +); + +static double epsmach = 2.220446049250313e-016; /* np.finfo(np.float64).eps */ + + +void +cameff_lbfgsb_setulb(int n, int m, double* x, double* l, double* u, int* nbd, double* f, + double* g, double factr, double pgtol, double* wa, int* iwa, int* task, + int* lsave, int* isave, double* dsave, int maxls, int* ln_task) +{ + // ************ + // + // Subroutine setulb + // + // This subroutine partitions the working arrays wa and iwa, and + // then uses the limited memory BFGS method to solve the bound + // constrained optimization problem by calling mainlb. + // (The direct method will be used in the subspace minimization.) + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // x is a double precision array of dimension n. + // On entry x is an approximation to the solution. + // On exit x is the current approximation. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound on x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound on x. + // On exit u is unchanged. + // + // nbd is an integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, and + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // f is a double precision variable. + // On first entry f is unspecified. + // On final exit f is the value of the function at x. + // + // g is a double precision array of dimension n. + // On first entry g is unspecified. + // On final exit g is the value of the gradient at x. + // + // factr is a double precision variable. + // On entry factr >= 0 is specified by the user. The iteration + // will stop when + // + // (f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= factr*epsmch + // + // where epsmch is the machine precision, which is automatically + // generated by the code. Typical values for factr: 1.d+12 for + // low accuracy; 1.d+7 for moderate accuracy; 1.d+1 for extremely + // high accuracy. + // On exit factr is unchanged. + // + // pgtol is a double precision variable. + // On entry pgtol >= 0 is specified by the user. The iteration + // will stop when + // + // max{|proj g_i | i = 1, ..., n} <= pgtol + // + // where pg_i is the ith component of the projected gradient. + // On exit pgtol is unchanged. + // + // wa is a double precision working array of length + // (2mmax + 5)nmax + 12mmax^2 + 12mmax. + // + // iwa is an integer working array of length 3nmax. + // + // task is a working string of characters of length 60 indicating + // the current job when entering and quitting this subroutine. + // + // iprint is an integer variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // csave is a working string of characters of length 60. + // + // lsave is a logical working array of dimension 4. + // On exit with 'task' = NEW_X, the following information is + // available: + // If lsave(1) = .true. then the initial X has been replaced by + // its projection in the feasible set; + // If lsave(2) = .true. then the problem is constrained; + // If lsave(3) = .true. then each variable has upper and lower + // bounds; + // + // isave is an integer working array of dimension 44. + // On exit with 'task' = NEW_X, the following information is + // available: + // isave(22) = the total number of intervals explored in the + // search of Cauchy points; + // isave(26) = the total number of skipped BFGS updates before + // the current iteration; + // isave(30) = the number of current iteration; + // isave(31) = the total number of BFGS updates prior the current + // iteration; + // isave(33) = the number of intervals explored in the search of + // Cauchy point in the current iteration; + // isave(34) = the total number of function and gradient + // evaluations; + // isave(36) = the number of function value or gradient + // evaluations in the current iteration; + // if isave(37) = 0 then the subspace argmin is within the box; + // if isave(37) = 1 then the subspace argmin is beyond the box; + // isave(38) = the number of free variables in the current + // iteration; + // isave(39) = the number of active constraints in the current + // iteration; + // n + 1 - isave(40) = the number of variables leaving the set of + // active constraints in the current iteration; + // isave(41) = the number of variables entering the set of active + // constraints in the current iteration. + // + // dsave is a double precision working array of dimension 29. + // On exit with 'task' = NEW_X, the following information is + // available: + // dsave(1) = current 'theta' in the BFGS matrix; + // dsave(2) = f(x) in the previous iteration; + // dsave(3) = factr*epsmch; + // dsave(4) = 2-norm of the line search direction vector; + // dsave(5) = the machine precision epsmch generated by the code; + // dsave(7) = the accumulated time spent on searching for + // Cauchy points; + // dsave(8) = the accumulated time spent on + // subspace minimization; + // dsave(9) = the accumulated time spent on line search; + // dsave(11) = the slope of the line search function at + // the current point of line search; + // dsave(12) = the maximum relative step length imposed in + // line search; + // dsave(13) = the infinity norm of the projected gradient; + // dsave(14) = the relative step length in the line search; + // dsave(15) = the slope of the line search function at + // the starting point of the line search; + // dsave(16) = the square of the 2-norm of the line search + // direction vector. + // + // Subprograms called: + // + // L-BFGS-B Library ... mainlb. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: a + // limited memory FORTRAN code for solving bound constrained + // optimization problems'', Tech. Report, NAM-11, EECS Department, + // Northwestern University, 1994. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + // + int lws, lr, lz, lt, ld, lxp, lwa, lwy, lsy, lss, lwt, lwn, lsnd; + + if (task[0] == START) + { + // Pointer olympics + isave[0] = m*n; + isave[1] = m*m; + isave[2] = 4*m*m; + isave[3] = 0; // ws m*n + isave[4] = isave[3] + isave[0]; // wy m*n + isave[5] = isave[4] + isave[0]; // wsy m**2 + isave[6] = isave[5] + isave[1]; // wss m**2 + isave[7] = isave[6] + isave[1]; // wt m**2 + isave[8] = isave[7] + isave[1]; // wn 4*m**2 + isave[9] = isave[8] + isave[2]; // wsnd 4*m**2 + isave[10] = isave[9] + isave[2]; // wz n + isave[11] = isave[10] + n; // wr n + isave[12] = isave[11] + n; // wd n + isave[13] = isave[12] + n; // wt n + isave[14] = isave[13] + n; // wxp n + isave[15] = isave[14] + n; // wa 8*m + } + + lws = isave[3]; + lwy = isave[4]; + lsy = isave[5]; + lss = isave[6]; + lwt = isave[7]; + lwn = isave[8]; + lsnd = isave[9]; + lz = isave[10]; + lr = isave[11]; + ld = isave[12]; + lt = isave[13]; + lxp = isave[14]; + lwa = isave[15]; + + mainlb(n, m, x, l, u, nbd, f, g, factr, pgtol, &wa[lws], &wa[lwy], &wa[lsy], + &wa[lss], &wa[lwt], &wa[lwn], &wa[lsnd], &wa[lz], &wa[lr], &wa[ld], + &wa[lt], &wa[lxp], &wa[lwa], iwa, &iwa[n], &iwa[2*n], &task[0], &task[1], + lsave, &isave[21], dsave, maxls, &ln_task[0], &ln_task[1]); + + return; +} + + +void +mainlb(int n, int m, double* x, double* l, double* u, + int* nbd, double* f, double* g, double factr, double pgtol, + double* ws, double* wy, double* sy, double* ss, double* wt, double* wn, + double* snd, double* z, double* r, double* d, double* t, double* xp, + double* wa, int* index, int* iwhere, int* indx2, int* task, + int* task_msg, int* lsave, int* isave, double* dsave, int maxls, + int* temp_task, int* temp_taskmsg) +{ + // ************ + // + // Subroutine mainlb + // + // This subroutine solves bound constrained optimization problems by + // using the compact formula of the limited memory BFGS updates. + // + // n is an integer variable. + // On entry n is the number of variables. + // On exit n is unchanged. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric + // corrections allowed in the limited memory matrix. + // On exit m is unchanged. + // + // x is a double precision array of dimension n. + // On entry x is an approximation to the solution. + // On exit x is the current approximation. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound of x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound of x. + // On exit u is unchanged. + // + // nbd is an integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // f is a double precision variable. + // On first entry f is unspecified. + // On final exit f is the value of the function at x. + // + // g is a double precision array of dimension n. + // On first entry g is unspecified. + // On final exit g is the value of the gradient at x. + // + // factr is a double precision variable. + // On entry factr >= 0 is specified by the user. The iteration + // will stop when + // + // (f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= factr*epsmch + // + // where epsmch is the machine precision, which is automatically + // generated by the code. + // On exit factr is unchanged. + // + // pgtol is a double precision variable. + // On entry pgtol >= 0 is specified by the user. The iteration + // will stop when + // + // max{|proj g_i | i = 1, ..., n} <= pgtol + // + // where pg_i is the ith component of the projected gradient. + // On exit pgtol is unchanged. + // + // ws, wy, sy, and wt are double precision working arrays used to + // store the following information defining the limited memory + // BFGS matrix: + // ws, of dimension n x m, stores S, the matrix of s-vectors; + // wy, of dimension n x m, stores Y, the matrix of y-vectors; + // sy, of dimension m x m, stores S'Y; + // ss, of dimension m x m, stores S'S; + // yy, of dimension m x m, stores Y'Y; + // wt, of dimension m x m, stores the Cholesky factorization + // of (theta*S'S+LD^(-1)L'); see eq. + // (2.26) in [3]. + // + // wn is a double precision working array of dimension 2m x 2m + // used to store the LEL^T factorization of the indefinite matrix + // K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // + // where E = [-I 0] + // [ 0 I] + // + // snd is a double precision working array of dimension 2m x 2m + // used to store the lower triangular part of + // N = [Y' ZZ'Y L_a'+R_z'] + // [L_a +R_z S'AA'S ] + // + // z(n),r(n),d(n),t(n), xp(n),wa(8*m) are double precision working arrays. + // z is used at different times to store the Cauchy point and + // the Newton point. + // xp is used to safeguard the projected Newton direction + // + // sg(m),sgo(m),yg(m),ygo(m) are double precision working arrays. + // + // index is an integer working array of dimension n. + // In subroutine freev, index is used to store the free and fixed + // variables at the Generalized Cauchy Point (GCP). + // + // iwhere is an integer working array of dimension n used to record + // the status of the vector x for GCP computation. + // iwhere(i)=0 or -3 if x(i) is free and has bounds, + // 1 if x(i) is fixed at l(i), and l(i) .ne. u(i) + // 2 if x(i) is fixed at u(i), and u(i) .ne. l(i) + // 3 if x(i) is always fixed, i.e., u(i)=x(i)=l(i) + // -1 if x(i) is always free, i.e., no bounds on it. + // + // indx2 is an integer working array of dimension n. + // Within subroutine cauchy, indx2 corresponds to the array iorder. + // In subroutine freev, a list of variables entering and leaving + // the free set is stored in indx2, and it is passed on to + // subroutine formk with this information. + // + // task is a working string of characters of length 60 indicating + // the current job when entering and leaving this subroutine. + // + // iprint is an INTEGER variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // csave is a working string of characters of length 60. + // + // lsave is a logical working array of dimension 4. + // + // isave is an integer working array of dimension 23. + // + // dsave is a double precision working array of dimension 29. + // + // + // Subprograms called + // + // L-BFGS-B Library ... cauchy, subsm, lnsrlb, formk, + // + // errclb, prn1lb, prn2lb, prn3lb, active, projgr, + // + // freev, cmprlb, matupd, formt. + // + // Minpack2 Library ... timer + // + // Linpack Library ... dcopy, ddot. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: FORTRAN + // Subroutines for Large Scale Bound Constrained Optimization'' + // Tech. Report, NAM-11, EECS Department, Northwestern University, + // 1994. + // + // [3] R. Byrd, J. Nocedal and R. Schnabel "Representations of + // Quasi-Newton Matrices and their use in Limited Memory Methods'', + // Mathematical Programming 63 (1994), no. 4, pp. 129-156. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int prjctd, cnstnd, boxed, updatd, wrk; + int i, k, nintol, iback, nskip, head, col, iter, itail, iupdat; + int nseg, nfgv, info, ifun, iword, nfree, nact, ileave, nenter; + double theta, fold, dr, rr, tol, xstep, sbgnrm, stpmx, ddum, dnorm, dtd; + double gd, gdold, stp; + int one_int = 1; + + stpmx = 0.0; + + if (*task == START) { + + // Initialize counters and scalars + col = 0; // size : Actual number of variable metric corrections + head = 0; // index : Location of the first s- or y-vector in S or Y + theta = 1.0; + iupdat = 0; // size : Total number of BFGS updates made so far + updatd = 0; // bool : Whether L-BFGS matrix is updated + iback = 0; + itail = 0; // index + iword = 0; + nact = 0; + ileave = 0; // index : idx2[ileave:n] are the variables leaving the free set + nenter = 0; // size : No of variables entering the free set + fold = 0.0; + dnorm = 0.0; + gd = 0.0; + sbgnrm = 0.0; + stp = 0.0; + gdold = 0.0; + dtd = 0.0; + + // For operation counts + iter = 0; + nfgv = 0; + nseg = 0; + nintol = 0; + nskip = 0; + nfree = n; + ifun = 0; + // For stopping tolerance + tol = factr * epsmach; + + // 'info' records the termination information. + info = 0; + + // Check the input arguments for errors + errclb(n, m, factr, l, u, nbd, task, task_msg, &info, &k); + if (*task == ERROR) { return; } + + // Initialize iwhere & project x onto the feasible set + active(n, l, u, nbd, x, iwhere, &prjctd, &cnstnd, &boxed); + + // End of the initialization + } else { + // Restore local variables + prjctd = lsave[0]; + cnstnd = lsave[1]; + boxed = lsave[2]; + updatd = lsave[3]; + + nintol = isave[0]; + // = isave[1]; + // = isave[2]; + iback = isave[3]; + nskip = isave[4]; + head = isave[5]; + col = isave[6]; + itail = isave[7]; + iter = isave[8]; + iupdat = isave[9]; + // = isave[10]; + nseg = isave[11]; + nfgv = isave[12]; + info = isave[13]; + ifun = isave[14]; + iword = isave[15]; + nfree = isave[16]; + nact = isave[17]; + ileave = isave[18]; + nenter = isave[19]; + + theta = dsave[0]; + fold = dsave[1]; + tol = dsave[2]; + dnorm = dsave[3]; + // = dsave[4]; + // = dsave[5]; + // = dsave[6]; + // = dsave[7]; + // = dsave[8]; + // = dsave[9]; + gd = dsave[10]; + stpmx = dsave[11]; + sbgnrm = dsave[12]; + stp = dsave[13]; + gdold = dsave[14]; + dtd = dsave[15]; + + // After returning from the driver go to the point where execution is to resume. + if ((*task == FG) && (*task_msg == FG_LNSRCH)) { goto LINE666; } + if (*task == NEW_X) { goto LINE777; } + if ((*task == FG) && (*task_msg == FG_START)) { goto LINE111; } + if (*task == STOP) + { + if (*task_msg == STOP_CPU) + { + dcopy_(&n, t, &one_int, x, &one_int); + dcopy_(&n, r, &one_int, g, &one_int); + *f = fold; + } + goto LINE999; + } + } + + // Compute f0 and g0. + *task = FG; + *task_msg = FG_START; + + // Return to the driver to calculate f and g, then reenter at 111 + goto LINE1000; + +LINE111: + nfgv = 1; + + // Compute the infinity norm of the (-) projected gradient. + projgr(n, l, u, nbd, x, g, &sbgnrm); + + if (sbgnrm <= pgtol) + { + *task = CONVERGENCE; + *task_msg = CONV_GRAD; + goto LINE999; + } + + // ----------------- the beginning of the loop -------------------------- +LINE222: + iword = -1; + + if ((!cnstnd) && (col > 0)) + { + dcopy_(&n, x, &one_int, z, &one_int); + wrk = updatd; + nseg = 0; + goto LINE333; + } + + ///////////////////////////////////////////////////// + // + // Compute the Generalized Cauchy Point (GCP). + // + ///////////////////////////////////////////////////// + cauchy(n, x, l, u, nbd, g, indx2, iwhere, t, d, z, m, wy, ws, sy, wt, theta, + col, head, wa, &wa[2*m], &wa[4*m], &wa[6*m], &nseg, sbgnrm, &info); + if (info != 0) + { + // Singular triangular system detected; refresh the lbfgs memory. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + + nintol += nseg; + + // Count the entering and leaving variables for iter > 0; + // find the index set of free and active variables at the GCP. + freev(n, &nfree, index, &nenter, &ileave, indx2, iwhere, &wrk, updatd, + cnstnd, iter); + nact = n - nfree; + +LINE333: + // If there are no free variables or B=theta*I, then skip the subspace + // minimization. + if ((nfree == 0) || (col == 0)) { goto LINE555; } + + ///////////////////////////////////////////////////// + // + // Subspace minimization + // + ///////////////////////////////////////////////////// + + // Form the LEL^T factorization of the indefinite + // matrix K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // where E = [-I 0] + // [ 0 I] + if (wrk) + { + formk(n, nfree, index, nenter, ileave, indx2, iupdat, updatd, wn, snd, + m, ws, wy, sy, theta, col, head, &info); + } + if (info != 0) + { + // nonpositive definiteness in Cholesky factorization; + // refresh the lbfgs memory and restart the iteration. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + + // compute r=-Z'B(xcp-xk)-Z'g (using wa(2m+1)=W'(xcp-x) from 'cauchy'). + cmprlb(n, m, x, g, ws, wy, sy, wt, z, r, wa, index, theta, col, head, nfree, + cnstnd, &info); + if (info != 0) { goto LINE444; } + + // Call the direct method. + subsm(n, m, nfree, index, l, u, nbd, z, r, xp, ws, wy, theta, x, g, col, + head, &iword, wa, wn, &info); + +LINE444: + if (info != 0) + { + // singular triangular system detected; + // refresh the lbfgs memory and restart the iteration. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + +LINE555: + + ///////////////////////////////////////////////////// + // + // Line search and optimality tests. + // + ///////////////////////////////////////////////////// + + // Generate the search direction d := z - x. + for (i = 0; i < n; i++) + { + d[i] = z[i] - x[i]; + } + +LINE666: + lnsrlb(n, l, u, nbd, x, *f, &fold, &gd, &gdold, g, d, r, t, z, &stp, &dnorm, + &dtd, &xstep, &stpmx, iter, &ifun, &iback, &nfgv, &info, task, + task_msg, boxed, cnstnd, &isave[21], &dsave[16], temp_task, temp_taskmsg); + + if ((info != 0) || (iback >= maxls)) + { + dcopy_(&n, t, &one_int, x, &one_int); + dcopy_(&n, r, &one_int, g, &one_int); + *f = fold; + + if (col == 0) + { + // Abnormal termination + if (info == 0) + { + info = -9; + // Restore the actual number of f and g evaluations etc. + nfgv--; + ifun--; + iback--; + } + *task = ABNORMAL; + *task_msg = NO_MSG; + iter++; + goto LINE999; + } else { + // Refresh the lbfgs memory and restart the iteration. + if (info == 0) { nfgv--; } + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + *task = RESTART; + *task_msg = NO_MSG; + goto LINE222; + } + } else if ((*task == FG) && (*task_msg == FG_LNSRCH)) { + // Return to the driver for calculating f and g; renter at 666. + goto LINE1000; + } else { + // Calculate and print out the quantities related to the new X. + iter++; + + // Compute the infinity norm of the projected (-)gradient. + projgr(n, l, u, nbd, x, g, &sbgnrm); + + goto LINE1000; + } + +LINE777: + + // Test for termination. + if (sbgnrm <= pgtol) + { + // Terminate the algorithm. + *task = CONVERGENCE; + *task_msg = CONV_GRAD; + goto LINE999; + } + ddum = fmax(fmax(fabs(fold), fabs(*f)), 1.0); + if ((fold - *f) <= tol*ddum) + { + // Terminate the algorithm. + *task = CONVERGENCE; + *task_msg = CONV_F; + if (iback >= 10) { info = -5; } + // i.e. to issue a warning if iback > 10 in the line search. + goto LINE999; + } + + // Compute d=newx-oldx, r=newg-oldg, rr=y'y and dr=y's. + for (i = 0; i < n; i++) + { + r[i] = g[i] - r[i]; + } + // 42 + rr = pow(dnrm2_(&n, r, &one_int), 2.0); + + if (stp == 1.0) + { + dr = gd - gdold; + ddum = -gdold; + } else { + dr = (gd - gdold)*stp; + dscal_(&n, &stp, d, &one_int); + ddum = -gdold*stp; + } + + if (dr <= epsmach*ddum) + { + // Skip the L-BFGS update. + nskip += 1; + updatd = 0; + goto LINE888; + } + + ///////////////////////////////////////////////////// + // + // Update the L-BFGS matrix. + // + ///////////////////////////////////////////////////// + updatd = 1; + iupdat += 1; + + // Update matrices WS and WY and form the middle matrix in B. + matupd(n, m, ws, wy, sy, ss, d, r, &itail, iupdat, &col, &head, &theta, + rr, dr, stp, dtd); + + // Form the upper half of the pds T = theta*SS + L*D^(-1)*L'; + // Store T in the upper triangular of the array wt; + // Cholesky factorize T to J*J' with + // J' stored in the upper triangular of wt. + formt(m, wt, sy, ss, col, theta, &info); + + if (info != 0) + { + // Nonpositive definiteness in Cholesky factorization; + // refresh the lbfgs memory and restart the iteration. + info = 0; + col = 0; + head = 0; + theta = 1.0; + iupdat = 0; + updatd = 0; + goto LINE222; + } + + // Now the inverse of the middle matrix in B is + + // [ D^(1/2) O ] [ -D^(1/2) D^(-1/2)*L' ] + // [ -L*D^(-1/2) J ] [ 0 J' ] +LINE888: + // -------------------- the end of the loop ----------------------------- + goto LINE222; + +LINE999: + ; + +LINE1000: + // Save local variables + lsave[0] = prjctd; + lsave[1] = cnstnd; + lsave[2] = boxed; + lsave[3] = updatd; + + isave[0] = nintol; + isave[3] = iback; + isave[4] = nskip; + isave[5] = head; + isave[6] = col; + isave[7] = itail; + isave[8] = iter; + isave[9] = iupdat; + isave[11] = nseg; + isave[12] = nfgv; + isave[13] = info; + isave[14] = ifun; + isave[15] = iword; + isave[16] = nfree; + isave[17] = nact; + isave[18] = ileave; + isave[19] = nenter; + + dsave[0] = theta; + dsave[1] = fold; + dsave[2] = tol; + dsave[3] = dnorm; + // dsave[4] = epsmch; + // dsave[5] = cpu1; + // dsave[6] = cachyt; + // dsave[7] = sbtime; + // dsave[8] = lnscht; + // dsave[9] = time1; + dsave[10] = gd; + dsave[11] = stpmx; + dsave[12] = sbgnrm; + dsave[13] = stp; + dsave[14] = gdold; + dsave[15] = dtd; + + return; +} + + +void +active(int n, double* l, double* u, int* nbd, double* x, + int* iwhere, int* prjctd, int* cnstnd, int* boxed) +{ + // ************ + // + // Subroutine active + // + // This subroutine initializes iwhere and projects the initial x to + // the feasible set if necessary. + // + // iwhere is an integer array of dimension n. + // On entry iwhere is unspecified. + // On exit iwhere(i)=-1 if x(i) has no bounds + // 3 if l(i)=u(i) + // 0 otherwise. + // In cauchy, iwhere is given finer gradations. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i; + + // Initialize nbdd, prjctd, cnstnd, and boxed. + *prjctd = 0; + *cnstnd = 0; + *boxed = 1; + + // Project the initial x to the feasible set if necessary. + + for (i = 0; i < n; i++) + { + if (nbd[i] > 0) + { + if ((nbd[i] <= 2) && (x[i] <= l[i])) + { + if (x[i] < l[i]) + { + *prjctd = 1; + x[i] = l[i]; + } + } else if ((nbd[i] >= 2) && (x[i] >= u[i])) { + if (x[i] > u[i]) + { + *prjctd = 1; + x[i] = u[i]; + } + } + } + } + // 10 + + // Initialize iwhere and assign values to cnstnd and boxed. + for (i = 0; i < n; i++) + { + if (nbd[i] != 2) { *boxed = 0; } + if (nbd[i] == 0) + { + // This variable is always free + iwhere[i] = -1; + } else { + // Otherwise set x(i)=mid(x(i), u(i), l(i)). + *cnstnd = 1; + if ((nbd[i] == 2) && (u[i] - l[i] <= 0.0)) + { + // This variable is always fixed. + iwhere[i] = 3; + } else { + iwhere[i] = 0; + } + } + } + // 20 + + return; +} + + +void +bmv(int m, double* sy, double* wt, int col, double* v, double* p, int* info) +{ + // ************ + // + // Subroutine bmv + // + // This subroutine computes the product of the 2m x 2m middle matrix + // in the compact L-BFGS formula of B and a 2m vector v; + // it returns the product in p. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // sy is a double precision array of dimension m x m. + // On entry sy specifies the matrix S'Y. + // On exit sy is unchanged. + // + // wt is a double precision array of dimension m x m. + // On entry wt specifies the upper triangular matrix J' which is + // the Cholesky factor of (thetaS'S+LD^(-1)L'). + // On exit wt is unchanged. + // + // col is an integer variable. + // On entry col specifies the number of s-vectors (or y-vectors) + // stored in the compact L-BFGS formula. + // On exit col is unchanged. + // + // v is a double precision array of dimension 2col. + // On entry v specifies vector v. + // On exit v is unchanged. + // + // p is a double precision array of dimension 2col. + // On entry p is unspecified. + // On exit p is the product Mv. + // + // info is an integer variable. + // On entry info is unspecified. + // On exit info = 0 for normal return, + // = nonzero for abnormal return when the system + // to be solved by dtrsl is singular. + // + // Subprograms called: + // + // Linpack ... dtrsl. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, k, i2, one_int = 1; + double ssum; + char *uplo = "U", *trans = "T", *diag = "N"; + + if (col == 0) { return; } + + // PART I: solve [ D^(1/2) O ] [ p1 ] = [ v1 ] + // [ -L*D^(-1/2) J ] [ p2 ] [ v2 ]. + + // solve Jp2=v2+LD^(-1)v1. + p[col] = v[col]; + for (i = 1; i < col; i++) + { + i2 = col + i; + ssum = 0.0; + for (k = 0; k <= i-1; k++) + { + ssum = ssum + sy[i + m*k] * v[k] / sy[k + m*k]; + } + // 10 + p[i2] = v[i2] + ssum; + } + // 20 + + // Solve the triangular system + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + dtrtrs_(uplo, trans, diag, &col, &one_int, wt, &m, &p[col], &col, info); + if (*info != 0) { return; } + + // Solve D^(1/2)p1=v1. + for (i = 0; i < col; i++) + { + p[i] = v[i] / sqrt(sy[i + m*i]); + } + // 30 + + // PART II: solve [ -D^(1/2) D^(-1/2)*L' ] [ p1 ] = [ p1 ] + // [ 0 J' ] [ p2 ] [ p2 ]. + + // solve J^Tp2=p2. + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + trans = "N"; + dtrtrs_(uplo, trans, diag, &col, &one_int, wt, &m, &p[col], &col, info); + if (*info != 0) { return; } + + // compute p1=-D^(-1/2)(p1-D^(-1/2)L'p2) + // =-D^(-1/2)p1+D^(-1)L'p2. + + for (i = 0; i < col; i++) + { + p[i] = -p[i] / sqrt(sy[i + m*i]); + } + // 40 + + for (i = 0; i < col; i++) + { + ssum = 0.0; + for (k = i+1; k < col; k++) + { + ssum = ssum + sy[k + m*i] * p[col + k] / sy[i + m*i]; + } + // 50 + p[i] = p[i] + ssum; + } + // 60 + + return; +} + + +void +cauchy(int n, double* x, double* l, double* u, + int* nbd, double *g, int* iorder, int* iwhere, double* t, + double* d, double* xcp, int m, double* wy, double* ws, + double* sy, double* wt, double theta, int col, + int head, double* p, double* c, double* wbp, double* v, + int* nseg, double sbgnrm, int* info) +{ + // ************ + // + // Subroutine cauchy + // + // For given x, l, u, g (with sbgnrm > 0), and a limited memory + // BFGS matrix B defined in terms of matrices WY, WS, WT, and + // scalars head, col, and theta, this subroutine computes the + // generalized Cauchy point (GCP), defined as the first local + // minimizer of the quadratic + // + // Q(x + s) = g's + 1/2 s'Bs + // + // along the projected gradient direction P(x-tg,l,u). + // The routine returns the GCP in xcp. + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // x is a double precision array of dimension n. + // On entry x is the starting point for the GCP computation. + // On exit x is unchanged. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound of x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound of x. + // On exit u is unchanged. + // + // nbd is an integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, and + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // g is a double precision array of dimension n. + // On entry g is the gradient of f(x). g must be a nonzero vector. + // On exit g is unchanged. + // + // iorder is an integer working array of dimension n. + // iorder will be used to store the breakpoints in the piecewise + // linear path and free variables encountered. On exit, + // iorder(1),...,iorder(nleft) are indices of breakpoints + // which have not been encountered; + // iorder(nleft+1),...,iorder(nbreak) are indices of + // encountered breakpoints; and + // iorder(nfree),...,iorder(n) are indices of variables which + // have no bound constraits along the search direction. + // + // iwhere is an integer array of dimension n. + // On entry iwhere indicates only the permanently fixed (iwhere=3) + // or free (iwhere= -1) components of x. + // On exit iwhere records the status of the current x variables. + // iwhere(i)=-3 if x(i) is free and has bounds, but is not moved + // 0 if x(i) is free and has bounds, and is moved + // 1 if x(i) is fixed at l(i), and l(i) .ne. u(i) + // 2 if x(i) is fixed at u(i), and u(i) .ne. l(i) + // 3 if x(i) is always fixed, i.e., u(i)=x(i)=l(i) + // -1 if x(i) is always free, i.e., it has no bounds. + // + // t is a double precision working array of dimension n. + // t will be used to store the break points. + // + // d is a double precision array of dimension n used to store + // the Cauchy direction P(x-tg)-x. + // + // xcp is a double precision array of dimension n used to return the + // GCP on exit. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // ws, wy, sy, and wt are double precision arrays. + // On entry they store information that defines the + // limited memory BFGS matrix: + // ws(n,m) stores S, a set of s-vectors; + // wy(n,m) stores Y, a set of y-vectors; + // sy(m,m) stores S'Y; + // wt(m,m) stores the + // Cholesky factorization of (theta*S'S+LD^(-1)L'). + // On exit these arrays are unchanged. + // + // theta is a double precision variable. + // On entry theta is the scaling factor specifying B_0 = theta I. + // On exit theta is unchanged. + // + // col is an integer variable. + // On entry col is the actual number of variable metric + // corrections stored so far. + // On exit col is unchanged. + // + // head is an integer variable. + // On entry head is the location of the first s-vector (or y-vector) + // in S (or Y). + // On exit col is unchanged. + // + // p is a double precision working array of dimension 2m. + // p will be used to store the vector p = W^(T)d. + // + // c is a double precision working array of dimension 2m. + // c will be used to store the vector c = W^(T)(xcp-x). + // + // wbp is a double precision working array of dimension 2m. + // wbp will be used to store the row of W corresponding + // to a breakpoint. + // + // v is a double precision working array of dimension 2m. + // + // nseg is an integer variable. + // On exit nseg records the number of quadratic segments explored + // in searching for the GCP. + // + // sg and yg are double precision arrays of dimension m. + // On entry sg and yg store S'g and Y'g correspondingly. + // On exit they are unchanged. + // + // iprint is an INTEGER variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // sbgnrm is a double precision variable. + // On entry sbgnrm is the norm of the projected gradient at x. + // On exit sbgnrm is unchanged. + // + // info is an integer variable. + // On entry info is 0. + // On exit info = 0 for normal return, + // = nonzero for abnormal return when the system + // used in routine bmv is singular. + // + // Subprograms called: + // + // L-BFGS-B Library ... hpsolb, bmv. + // + // Linpack ... dscal dcopy, daxpy. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: FORTRAN + // Subroutines for Large Scale Bound Constrained Optimization'' + // Tech. Report, NAM-11, EECS Department, Northwestern University, + // 1994. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int bnded, xlower, xupper; + int i, j, col2, nfree, nbreak, pointr, ibp, nleft, ibkmin, iter, one_int = 1; + double f1, f2, dt, dtm, tsum, dibp, zibp, dibp2, bkmin, tu, tl, wmc, wmp; + double wmw, tj, tj0, neggi, f2_org; + + f1 = 0.0; + tl = 0.0; + tu = 0.0; + + if (sbgnrm <= 0.0) + { + dcopy_(&n, x, &one_int, xcp, &one_int); + return; + } + bnded = 1; + nfree = n; + nbreak = -1; + ibkmin = 0; + bkmin = 0.0; + col2 = 2*col; + + // We set p to zero and build it up as we determine d. + for (i = 0; i < col2; i++) + { + p[i] = 0.0; + } + // 20 + + // In the following loop we determine for each variable its boud status and + // its breakpoint, and update p accordingly. Smallest breakpoint is identified. + for (i = 0; i < n; i++) + { + neggi = -g[i]; + if ((iwhere[i] != 3) && (iwhere[i] != -1)) + { + // If x[i] is not a constant and has bounds, compute the difference + // between x[i] and its bounds. + if (nbd[i] <= 2) { tl = x[i] - l[i]; } + if (nbd[i] >= 2) { tu = u[i] - x[i]; } + + // If a varaible is close enough to a bound, we treat it as at bound. + xlower = ((nbd[i] <= 2) && (tl <= 0.0)); + xupper = ((nbd[i] >= 2) && (tu <= 0.0)); + + // Reset iwhere[i] + iwhere[i] = 0; + if (xlower) { + if (neggi <= 0.0) { iwhere[i] = 1; } + } else if (xupper) { + if (neggi >= 0.0) { iwhere[i] = 2; } + } else { + if (fabs(neggi) <= 0.0) { iwhere[i] = -3; } + } + } + pointr = head; + if ((iwhere[i] != 0) && (iwhere[i] != -1)) + { + d[i] = 0.0; + } else { + d[i] = neggi; + f1 = f1 - neggi * neggi; + // Calculate p := p - W'e_i* (g_i). + for (j = 0; j < col; j++) { + p[j] = p[j] + wy[i + n*pointr]*neggi; + p[col + j] = p[col + j] + ws[i + n*pointr]*neggi; + pointr = (pointr + 1) % m; + } + // 40 + if ((nbd[i] <= 2) && (nbd[i] != 0) && (neggi < 0.0)) + { + // x(i) + d(i) is bounded; compute t(i). + nbreak += 1; + iorder[nbreak] = i; + t[nbreak] = tl / (-neggi); + if ((nbreak == 0) || (t[nbreak] < bkmin)) + { + bkmin = t[nbreak]; + ibkmin = nbreak; + } + } else if ((nbd[i] >= 2) && (neggi > 0.0)) { + // x(i) + d(i) is bounded; compute t(i). + nbreak += 1; + iorder[nbreak] = i; + t[nbreak] = tu / neggi; + if ((nbreak == 0) || (t[nbreak] < bkmin)) + { + bkmin = t[nbreak]; + ibkmin = nbreak; + } + } else { + // x(i) + d(i) is not bounded. + nfree -= 1; + iorder[nfree] = i; + if (fabs(neggi) > 0.0) { bnded = 0; } + } + } + } + // 50 + + // The indices of the nonzero components of d are now stored + // in iorder(1),...,iorder(nbreak) and iorder(nfree),...,iorder(n). + // The smallest of the nbreak breakpoints is in t(ibkmin)=bkmin. + if (theta != 1.0) + { + // Complete the initialization of p for theta not= one. + dscal_(&col, &theta, &p[col], &one_int); + } + // Initialize GCP xcp = x. + dcopy_(&n, x, &one_int, xcp, &one_int); + if ((nbreak == -1) && (nfree == n)) + { + // is a zero vector, return with the initial xcp as GCP. + return; + } + // Initialize c = W'(xcp - x) = 0. + for (j = 0; j < col2; j++) + { + c[j] = 0.0; + } + // 60 + + // Initialize derivative f2. + f2 = -(theta) * f1; + f2_org = f2; + if (col > 0) { + bmv(m, sy, wt, col, p, v, info); + if (*info != 0) { return; } + f2 = f2 - ddot_(&col2, v, &one_int, p, &one_int); + } + dtm = -f1 / f2; + tsum = 0.0; + *nseg = 1; + + // If there are no breakpoints, locate the GCP and return. + if (nbreak == -1) { goto LINE888; } + nleft = nbreak; + iter = 0; + tj = 0.0; + + // ------------------- the beginning of the loop ------------------------- + while (1) + { + // Find the next smallest breakpoint; + // compute dt = t(nleft) - t(nleft + 1). + tj0 = tj; + if (iter == 0) + { + // Since we already have the smallest breakpoint we need not do + // heapsort yet. Often only one breakpoint is used and the + // cost of heapsort is avoided. + tj = bkmin; + ibp = iorder[ibkmin]; + } else { + if (iter == 1) + { + // Replace the already used smallest breakpoint with the + // breakpoint numbered nbreak > nlast, before heapsort call. + if (ibkmin != nbreak) + { + t[ibkmin] = t[nbreak]; + iorder[ibkmin] = iorder[nbreak]; + } + } + // Update heap structure of breakpoints (if iter=2, initialize heap). + hpsolb(nleft, t, iorder, iter - 1); + tj = t[nleft]; + ibp = iorder[nleft]; + } + + dt = tj - tj0; + + // If a minimizer is within this interval, locate the GCP and return. + if (dtm < dt) { goto LINE888; } + + // Otherwise fix one variable and reset the corresponding component + // of d to zero. + tsum = tsum + dt; + nleft -= 1; + iter += 1; + dibp = d[ibp]; + d[ibp] = 0.0; + if (dibp > 0.0) { + zibp = u[ibp] - x[ibp]; + xcp[ibp] = u[ibp]; + iwhere[ibp] = 2; + } else { + zibp = l[ibp] - x[ibp]; + xcp[ibp] = l[ibp]; + iwhere[ibp] = 1; + } + if (nleft == -1 && nbreak == n) { + // All n variables are fixed, return with xcp as GCP. + dtm = dt; + goto LINE999; + } + + // Update the derivative information. + nseg += 1; + dibp2 = pow(dibp, 2.0); + + // Update f1 and f2 + + // Temporarily set f1 and f2 for col=0. + f1 = f1 + dt * f2 + dibp2 - theta*dibp*zibp; + f2 = f2 - theta*dibp2; + if (col > 0) { + // Update c = c + dt*p. + daxpy_(&col2, &dt, p, &one_int, c, &one_int); + // Choose wbp, the row of W corresponding to the breakpoint encountered. + pointr = head; + for (j = 0; j < col; j++) { + wbp[j] = wy[ibp + n*pointr]; + wbp[col + j] = theta * ws[ibp + n*pointr]; + pointr = (pointr + 1) % m; + } + // 70 + + // Compute (wbp)Mc, (wbp)Mp, and (wbp)M(wbp)'. + bmv(m, sy, wt, col, wbp, v, info); + if (*info != 0) { return; } + wmc = ddot_(&col2, c, &one_int, v, &one_int); + wmp = ddot_(&col2, p, &one_int, v, &one_int); + wmw = ddot_(&col2, wbp, &one_int, v, &one_int); + // Update p = p - dibp*wbp. + dibp = -dibp; + daxpy_(&col2, &dibp, wbp, &one_int, p, &one_int); + dibp = -dibp; + + // Complete updating f1 and f2 while col > 0. + f1 = f1 + dibp*wmc; + f2 = f2 + dibp*2.0*wmp - dibp2*wmw; + } + + f2 = fmax(epsmach*f2_org, f2); + + if (nleft >= 0) { + // to repeat the loop for unsearched intervals. + dtm = -f1 / f2; + } else if (bnded) { + dtm = 0.0; + break; + } else { + dtm = -f1 / f2; + break; + } + } + + // ------------------- the end of the loop ------------------------------- + +LINE888: + if (dtm <= 0.0) { dtm = 0.0; } + tsum = tsum + dtm; + + // Move free variables (i.e. the ones w/o breakpoints) and the variables + // whose breakpoints haven't been reached. + daxpy_(&n, &tsum, d, &one_int, xcp, &one_int); + +LINE999: + // Update c = c + dtm*p = W'(x^c - x) + // which will be used in computing r = Z'(B(x^c - x) + g). + + if (col > 0) { daxpy_(&col2, &dtm, p, &one_int, c, &one_int); } + + return; +} + + +void +cmprlb(int n, int m, double* x, double* g, + double* ws, double* wy, double* sy, double* wt, + double* z, double* r, double* wa, int* index, + double theta, int col, int head, int nfree, + int cnstnd, int* info) +{ + // ************ + // + // Subroutine cmprlb + // + // This subroutine computes r=-Z'B(xcp-xk)-Z'g by using + // wa(2m+1)=W'(xcp-x) from subroutine cauchy. + // + // Subprograms called: + // + // L-BFGS-B Library ... bmv. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, j, k, pointr; + double a1, a2; + + if ((!cnstnd) && (col > 0)) + { + for (i = 0; i < n; i++) { r[i] = -g[i]; } + // 26 + } else { + for (i = 0; i < nfree; i++) + { + k = index[i]; + r[i] = -theta*(z[k] - x[k]) - g[k]; + } + // 30 + + bmv(m, sy, wt, col, &wa[2*m], wa, info); + if (*info != 0) { *info = -8; return; } + pointr = head; + for (j = 0; j < col; j++) + { + a1 = wa[j]; + a2 = theta*wa[col + j]; + for (i = 0; i < nfree; i++) + { + k = index[i]; + r[i] = r[i] + wy[k + n*pointr]*a1 + ws[k + n*pointr]*a2; + } + // 32 + pointr = (pointr + 1) % m; + } + // 34 + } + + return; +} + + +void +errclb(int n, int m, double factr, double* l, + double* u, int* nbd, int* task, int* task_msg, int* info, + int* k) +{ + // ************ + // + // Subroutine errclb + // + // This subroutine checks the validity of the input data. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i; + + // Check the input arguments for errors. + if (n <= 0) { *task = ERROR; *task_msg = ERROR_N; } + if (m <= 0) { *task = ERROR; *task_msg = ERROR_M; } + if (factr < 0) { *task = ERROR; *task_msg = ERROR_FACTR; } + + // Check the validity of the arrays nbd(i), u(i), and l(i). + for (i = 0; i < n; i++) + { + if ((nbd[i] < 0) || (nbd[i] > 3)) + { + *task = ERROR; + *task_msg = ERROR_NBD; + *info = -6; + *k = i; + } + if (nbd[i] == 2) + { + if (l[i] > u[i]) + { + // Return + *task = ERROR; + *task_msg = ERROR_NOFEAS; + *info = -7; + *k = i; + } + } + } + + return; +} + + +void +formk(int n, int nsub, int* ind, int nenter, int ileave, + int* indx2, int iupdat, int updatd, double* wn, + double* wn1, int m, double* ws, double* wy, + double* sy, double theta, int col, int head, int* info) +{ + // ************ + // + // Subroutine formk + // + // This subroutine forms the LEL^T factorization of the indefinite + // + // matrix K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // where E = [-I 0] + // [ 0 I] + // The matrix K can be shown to be equal to the matrix M^[-1]N + // occurring in section 5.1 of [1], as well as to the matrix + // Mbar^[-1] Nbar in section 5.3. + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // nsub is an integer variable + // On entry nsub is the number of subspace variables in free set. + // On exit nsub is not changed. + // + // ind is an integer array of dimension nsub. + // On entry ind specifies the indices of subspace variables. + // On exit ind is unchanged. + // + // nenter is an integer variable. + // On entry nenter is the number of variables entering the + // free set. + // On exit nenter is unchanged. + // + // ileave is an integer variable. + // On entry indx2(ileave),...,indx2(n) are the variables leaving + // the free set. + // On exit ileave is unchanged. + // + // indx2 is an integer array of dimension n. + // On entry indx2(1),...,indx2(nenter) are the variables entering + // the free set, while indx2(ileave),...,indx2(n) are the + // variables leaving the free set. + // On exit indx2 is unchanged. + // + // iupdat is an integer variable. + // On entry iupdat is the total number of BFGS updates made so far. + // On exit iupdat is unchanged. + // + // updatd is a logical variable. + // On entry 'updatd' is true if the L-BFGS matrix is updatd. + // On exit 'updatd' is unchanged. + // + // wn is a double precision array of dimension 2m x 2m. + // On entry wn is unspecified. + // On exit the upper triangle of wn stores the LEL^T factorization + // of the 2*col x 2*col indefinite matrix + // [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // + // wn1 is a double precision array of dimension 2m x 2m. + // On entry wn1 stores the lower triangular part of + // [Y' ZZ'Y L_a'+R_z'] + // [L_a+R_z S'AA'S ] + // in the previous iteration. + // On exit wn1 stores the corresponding updated matrices. + // The purpose of wn1 is just to store these inner products + // so they can be easily updated and inserted into wn. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // ws, wy, sy, and wtyy are double precision arrays; + // theta is a double precision variable; + // col is an integer variable; + // head is an integer variable. + // On entry they store the information defining the + // limited memory BFGS matrix: + // ws(n,m) stores S, a set of s-vectors; + // wy(n,m) stores Y, a set of y-vectors; + // sy(m,m) stores S'Y; + // wtyy(m,m) stores the Cholesky factorization + // of (theta*S'S+LD^(-1)L') + // theta is the scaling factor specifying B_0 = theta I; + // col is the number of variable metric corrections stored; + // head is the location of the 1st s- (or y-) vector in S (or Y). + // On exit they are unchanged. + // + // info is an integer variable. + // On entry info is unspecified. + // On exit info = 0 for normal return; + // = -1 when the 1st Cholesky factorization failed; + // = -2 when the 2st Cholesky factorization failed. + // + // Subprograms called: + // + // Linpack ... dcopy, dpofa, dtrsl. + // + // + // References: + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: a + // limited memory FORTRAN code for solving bound constrained + // optimization problems'', Tech. Report, NAM-11, EECS Department, + // Northwestern University, 1994. + // + // (Postscript files of these papers are available via anonymous + // ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int m2, ipntr, jpntr, iy, is, jy, js, is1, js1, k1, i, k, col2, pbegin, pend; + int dbegin, dend, upcl, one_int = 1, temp_int; + double temp1, temp2, temp3, temp4; + char *uplo = "U", *trans = "T", *diag = "N"; + + // Form the lower triangular part of + // WN1 = [Y' ZZ'Y L_a'+R_z'] + // [L_a+R_z S'AA'S ] + // where L_a is the strictly lower triangular part of S'AA'Y + // R_z is the upper triangular part of S'ZZ'Y. + + if (updatd) + { + if (iupdat > m) + { + // Shift old part of WN1. + for (jy = 0; jy < m - 1; jy++) + { + js = m + jy; + temp_int = m - (jy + 1); + dcopy_(&temp_int, &wn1[(jy + 1) + 2*m*(jy + 1)], &one_int, &wn1[jy + 2*m*jy], &one_int); + dcopy_(&temp_int, &wn1[(js + 1) + 2*m*(js + 1)], &one_int, &wn1[js + 2*m*js], &one_int); + temp_int = m - 1; + dcopy_(&temp_int, &wn1[(m + 1) + 2*m*(jy + 1)], &one_int, &wn1[m + 2*m*jy], &one_int); + } + // 10 + } + + // Put new rows in blocks (1,1), (2,1) and (2,2). + pbegin = 0; // Inclusive loop start + pend = nsub; // Exclusive loop end + dbegin = nsub; // Inclusive loop start + dend = n; // Exclusive loop end + iy = col - 1; + is = m + col - 1; + ipntr = head + col - 1; + if (ipntr >= m) { ipntr -= m; } + jpntr = head; + + for (jy = 0; jy < col; jy++) + { + js = m + jy; + temp1 = 0.0; + temp2 = 0.0; + temp3 = 0.0; + + // Compute element jy of row 'col' of Y'ZZ'Y. + for (k = pbegin; k < pend; k++) + { + k1 = ind[k]; + temp1 = temp1 + wy[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 15 + + // Compute elements jy of row 'col' of L_a and S'AA'S. + for (k = dbegin; k < dend; k++) + { + k1 = ind[k]; + temp2 = temp2 + ws[k1 + n*ipntr]*ws[k1 + n*jpntr]; + temp3 = temp3 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 16 + wn1[iy + 2*m*jy] = temp1; + wn1[is + 2*m*js] = temp2; + wn1[is + 2*m*jy] = temp3; + jpntr = (jpntr + 1) % m; + } + // 20 + + // Put new column in block (2,1) + jy = col - 1; + jpntr = head + col - 1; + if (jpntr >= m) { jpntr -= m; } + ipntr = head; + + for (i = 0; i < col; i++) + { + is = m + i; + temp3 = 0.0; + // Compute element i of column 'col' of R_z. + for (k = pbegin; k < pend; k++) + { + k1 = ind[k]; + temp3 = temp3 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 25 + ipntr = (ipntr + 1) % m; + wn1[is + 2*m*jy] = temp3; + } + // 30 + + upcl = col - 1; + } else { + upcl = col; + } + + // modify the old parts in blocks (1,1) and (2,2) due to changes + // in the set of free variables. + ipntr = head; + for (iy = 0; iy < upcl; iy++) + { + is = m + iy; + jpntr = head; + for (jy = 0; jy <= iy; jy++) + { + js = m + jy; + temp1 = 0.0; + temp2 = 0.0; + temp3 = 0.0; + temp4 = 0.0; + + for (k = 0; k < nenter; k++) + { + k1 = indx2[k]; + temp1 = temp1 + wy[k1 + n*ipntr]*wy[k1 + n*jpntr]; + temp2 = temp2 + ws[k1 + n*ipntr]*ws[k1 + n*jpntr]; + } + // 35 + for (k = ileave; k < n; k++) + { + k1 = indx2[k]; + temp3 = temp3 + wy[k1 + n*ipntr]*wy[k1 + n*jpntr]; + temp4 = temp4 + ws[k1 + n*ipntr]*ws[k1 + n*jpntr]; + } + // 36 + + wn1[iy + 2*m*jy] = wn1[iy + 2*m*jy] + temp1 - temp3; + wn1[is + 2*m*js] = wn1[is + 2*m*js] - temp2 + temp4; + jpntr = (jpntr + 1) % m; + } + // 40 + + ipntr = (ipntr + 1) % m; + } + // 45 + + // Modify the old parts in block (2,1) + ipntr = head; + for (is = m; is < m + upcl; is++) + { + jpntr = head; + for (jy = 0; jy < upcl; jy++) + { + temp1 = 0.0; + temp3 = 0.0; + for (k = 0; k < nenter; k++) + { + k1 = indx2[k]; + temp1 = temp1 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 50 + for (k = ileave; k < n; k++) + { + k1 = indx2[k]; + temp3 = temp3 + ws[k1 + n*ipntr]*wy[k1 + n*jpntr]; + } + // 51 + if (is <= jy + m) + { + wn1[is + 2*m*jy] = wn1[is + 2*m*jy] + temp1 - temp3; + } else { + wn1[is + 2*m*jy] = wn1[is + 2*m*jy] - temp1 + temp3; + } + jpntr = (jpntr + 1) % m; + } + // 55 + ipntr = (ipntr + 1) % m; + } + // 60 + + // Form the upper triangle of WN = [D+Y' ZZ'Y/theta -L_a'+R_z' ] + // [-L_a +R_z S'AA'S*theta] + + m2 = 2*m; + for (iy = 0; iy < col; iy++) + { + is = col + iy; + is1 = m + iy; + for (jy = 0; jy <= iy; jy++) + { + js = col + jy; + js1 = m + jy; + wn[jy + m2*iy] = wn1[iy + m2*jy] / theta; + wn[js + m2*is] = wn1[is1 + m2*js1] * theta; + } + // 65 + for (jy = 0; jy < iy; jy++) + { + wn[jy + m2*is] = -wn1[is1 + m2*jy]; + } + // 66 + for (jy = iy; jy < col; jy++) + { + wn[jy + m2*is] = wn1[is1 + m2*jy]; + } + // 67 + wn[iy + m2*iy] = wn[iy + m2*iy] + sy[iy + m*iy]; + } + // 70 + + // Form the upper triangle of WN= [ LL' L^-1(-L_a'+R_z')] + // [(-L_a +R_z)L'^-1 S'AA'S*theta ] + // + // first Cholesky factor (1,1) block of wn to get LL' + // with L' stored in the upper triangle of wn. + + // dpotrf(uplo, n, a, lda, info) + dpotrf_(uplo, &col, wn, &m2, info); + if (*info != 0) { *info = -1; return; } + + // Then form L^-1(-L_a'+R_z') in the (1,2) block. + col2 = 2*col; + + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + dtrtrs_(uplo, trans, diag, &col, &col, wn, &m2, &wn[m2*col], &m2, info); + + // Form S'AA'S*theta + (L^-1(-L_a'+R_z'))'L^-1(-L_a'+R_z') in the upper + // triangle of (2,2) block of wn. + for (is = col; is < col2; is++) + { + for (js = is; js < col2; js++) + { + wn[is + m2*js] = wn[is + m2*js] + ddot_(&col, &wn[m2*is], &one_int, &wn[m2*js], &one_int); + } + // 74 + } + // 72 + + // dpotrf(uplo, n, a, lda, info) + dpotrf_(uplo, &col, &wn[col + m2*col], &m2, info); + if (*info != 0) { *info = -2; } + + return; +} + + +void +formt(int m, double* wt, double* sy, double* ss, int col, + double theta, int* info) +{ + // ************ + // + // Subroutine formt + // + // This subroutine forms the upper half of the pos. def. and symm. + // T = theta*SS + L*D^(-1)*L', stores T in the upper triangle + // of the array wt, and performs the Cholesky factorization of T + // to produce J*J', with J' stored in the upper triangle of wt. + // + // Subprograms called: + // + // Linpack ... dpofa. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, j, k, k1; + double ddum; + char *uplo = "U"; + + // Form the upper half of T = theta*SS + L*D^(-1)*L', store T in the upper + // triangle of the array wt. + for (j = 0; j < col; j++) + { + wt[m*j] = theta*ss[m*j]; + } + // 52 + + for (i = 1; i < col; i++) + { + for (j = i; j < col; j++) + { + k1 = (i > j ? j : i); + ddum = 0.0; + for (k = 0; k < k1; k++) + { + ddum = ddum + ((sy[i + m*k] * sy[j + m*k]) / sy[k + m*k]); + } + // 53 + wt[i + m*j] = ddum + theta*ss[i + m*j]; + } + // 54 + } + // 55 + + // Cholesky factorize T to J*J' with J' stored in the upper triangle of wt. + // dpotrf(uplo, n, a, lda, info) + dpotrf_(uplo, &col, wt, &m, info); + if (*info != 0) { *info = -3; } + + return; +} + + +void +freev(int n, int* nfree, int* idx, int* nenter, int* ileave, int* idx2, + int* iwhere, int* wrk, int updatd, int cnstnd, + int iter) +{ + // ************ + // + // Subroutine freev + // + // This subroutine counts the entering and leaving variables when + // iter > 0, and finds the index set of free and active variables + // at the GCP. + // + // cnstnd is a logical variable indicating whether bounds are present + // + // index is an integer array of dimension n + // for i=1,...,nfree, index(i) are the indices of free variables + // for i=nfree+1,...,n, index(i) are the indices of bound variables + // On entry after the first iteration, index gives + // the free variables at the previous iteration. + // On exit it gives the free variables based on the determination + // in cauchy using the array iwhere. + // + // indx2 is an integer array of dimension n + // On entry indx2 is unspecified. + // On exit with iter>0, indx2 indicates which variables + // have changed status since the previous iteration. + // For i= 1,...,nenter, indx2(i) have changed from bound to free. + // For i= ileave+1,...,n, indx2(i) have changed from free to bound. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i, iact, k; + + // in formk + // nenter will be used as exclusive upper bound + // ileave will be used as the inclusive lower bound + + *nenter = 0; + *ileave = n; + if ((iter > 0) && cnstnd) + { + // Count the entering and leaving variables. + for (i = 0; i < *nfree; i++) + { + k = idx[i]; + + if (iwhere[k] > 0) + { + *ileave -= 1; + idx2[*ileave] = k; + } + } + // 20 + for (i = *nfree; i < n; i++) + { + k = idx[i]; + if (iwhere[k] <= 0) + { + idx2[*nenter] = k; + *nenter += 1; + } + } + // 22 + } + + *wrk = ((*ileave < n) || (*nenter > 0) || updatd); + + // Find the index set of free and active variables at the GCP. + *nfree = 0; + iact = n; + for (i = 0; i < n; i++) + { + if (iwhere[i] <= 0) + { + idx[*nfree] = i; + *nfree += 1; + } else { + iact -= 1; + idx[iact] = i; + } + } + // 24 + + return; +} + + +void +hpsolb(int n, double* t, int* iorder, int iheap) +{ + // ************ + // + // Subroutine hpsolb + // + // This subroutine sorts out the least element of t, and puts the + // remaining elements of t in a heap. + // + // n is an integer variable. + // On entry n is the dimension of the arrays t and iorder. + // On exit n is unchanged. + // + // t is a double precision array of dimension n. + // On entry t stores the elements to be sorted, + // On exit t(n) stores the least elements of t, and t(1) to t(n-1) + // stores the remaining elements in the form of a heap. + // + // iorder is an integer array of dimension n. + // On entry iorder(i) is the index of t(i). + // On exit iorder(i) is still the index of t(i), but iorder may be + // permuted in accordance with t. + // + // iheap is an integer variable specifying the task. + // On entry iheap should be set as follows: + // iheap .eq. 0 if t(1) to t(n) is not in the form of a heap, + // iheap .ne. 0 if otherwise. + // On exit iheap is unchanged. + // + // + // References: + // Algorithm 232 of CACM (J. W. J. Williams): HEAPSORT. + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // ************ + int i, j, k, indxin, indxout; + double ddum, out; + + if (iheap == 0) + { + // Rearrange the elements t(1) to t(n) to form a heap. + for (k = 2; k <= n + 1; k++) + { + ddum = t[k-1]; + indxin = iorder[k-1]; + + // Add ddum to the heap + i = k; + while (1) + { + if (i > 1) + { + j = i / 2; + if (ddum < t[j-1]) + { + t[i-1] = t[j-1]; + iorder[i-1] = iorder[j-1]; + i = j; + } else { + break; + } + } else { + break; + } + } + // 10 + + t[i-1] = ddum; + iorder[i-1] = indxin; + } + // 20 + } + + // Assign to 'out' the value of t(1), the least member of the heap, and + // rearrange the remaining members to form a heap as elements 1 to n-1 of t. + if (n > 0) + { + i = 1; + out = t[0]; + indxout = iorder[0]; + ddum = t[n]; + indxin = iorder[n]; + + // Restore the heap + while (1) + { + j = i + i; + if (j <= n) + { + if (t[j] < t[j-1]) { j++; } + if (t[j-1] < ddum) + { + t[i-1] = t[j-1]; + iorder[i-1] = iorder[j-1]; + i = j; + } else { + break; + } + } else { + break; + } + } + t[i-1] = ddum; + iorder[i-1] = indxin; + + // Put the least member in t(n). + t[n] = out; + iorder[n] = indxout; + } + + return; +} + + +void +lnsrlb(int n, double* l, double* u, int* nbd, double* x, + double f, double* fold, double *gd, double *gdold, double* g, + double* d, double* r, double* t, double* z, double* stp, double* dnorm, + double* dtd, double* xstep, double* stpmx, int iter, int* ifun, + int* iback, int* nfgv, int* info, int* task, int* task_msg, + int boxed, int cnstnd, int* isave, double* dsave, int* temp_task, + int* temp_taskmsg) +{ + // ********** + // + // Subroutine lnsrlb + // + // This subroutine calls subroutine dcsrch from the Minpack2 library + // to perform the line search. Subroutine dscrch is safeguarded so + // that all trial points lie within the feasible region. + // + // Subprograms called: + // + // Minpack2 Library ... dcsrch. + // + // Linpack ... dtrsl, ddot. + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ********** + int i, one_int = 1; + double a1, a2, ftol = 1e-3, gtol = 0.9, xtol = 0.1; + if (*task_msg == FG_LNSRCH) { goto LINE556; } + + *dnorm = dnrm2_(&n, d, &one_int); + *dtd = pow(*dnorm, 2.0); + + // Determine the maximum step length. + *stpmx = 1.0e+10; + if (cnstnd) + { + if (iter == 0) + { + *stpmx = 1.0; + } else { + for (i = 0; i < n; i++) + { + a1 = d[i]; + if (nbd[i] != 0) + { + if ((a1 < 0.0) && (nbd[i] <= 2)) + { + a2 = l[i] - x[i]; + if (a2 >= 0.0) + { + *stpmx = 0.0; + } else if (a1*(*stpmx) < a2) { + *stpmx = a2 / a1; + } + } else if ((a1 > 0.0) && (nbd[i] >= 2)) { + a2 = u[i] - x[i]; + if (a2 <= 0.0) + { + *stpmx = 0.0; + } else if (a1*(*stpmx) > a2) { + *stpmx = a2 / a1; + } + } + } + } + // 43 + } + } + + if ((iter == 0) && (!(boxed))) + { + *stp = fmin(1.0 / (*dnorm), *stpmx); + } else { + *stp = 1.0; + } + + for (i = 0; i < n; i++) + { + t[i] = x[i]; + r[i] = g[i]; + } + + *fold = f; // Later used in mainlb, see control flow after returning from this function. + *ifun = 0; + *iback = 0; + *temp_task = START; + *temp_taskmsg = NO_MSG; +LINE556: + *gd = ddot_(&n, g, &one_int, d, &one_int); + if (*ifun == 0) + { + *gdold = *gd; + if (*gd >= 0.0) + { + // The directional derivative >= 0, line search is impossible. + *info = -4; + return; + } + } + dcsrch(f, *gd, stp, ftol, gtol, xtol, 0.0, *stpmx, temp_task, temp_taskmsg, + isave, dsave); + + *xstep = (*stp) * (*dnorm); + if ((*temp_task != CONVERGENCE) && (*temp_task != WARNING)) + { + *task = FG; + *task_msg = FG_LNSRCH; + *ifun += 1; + *nfgv += 1; + *iback = *ifun - 1; + if (*stp == 1.0) + { + // for (i = 0; i < n; i++) { x[i] = z[i]; } + dcopy_(&n, z, &one_int, x, &one_int); + } else { + for (i = 0; i < n; i++) + { + // Take step and prevent rounding error beyond bound. + x[i] = (*stp) * d[i] + t[i]; + if ((nbd[i] == 1) || (nbd[i] == 2)) { x[i] = fmax(x[i], l[i]); } + if ((nbd[i] == 2) || (nbd[i] == 3)) { x[i] = fmin(x[i], u[i]); } + } + // 41 + } + } else { + *task = NEW_X; + *task_msg = NO_MSG; + } + + return; +} + + +void +matupd(int n, int m, double* ws, double *wy, double* sy, double* ss, + double* d, double* r, int* itail, int iupdat, int* col, + int* head, double* theta, double rr, double dr, double stp, + double dtd) +{ + // ************ + // + // Subroutine matupd + // + // This subroutine updates matrices WS and WY, and forms the + // middle matrix in B. + // + // Subprograms called: + // + // Linpack ... dcopy, ddot. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int j, pointr, temp_int, one_int = 1; + + // Set pointers for matrices WS and WY. + if (iupdat <= m) + { + *col = iupdat; + *itail = (*head + iupdat - 1) % m; + } else { + *itail = (*itail + 1) % m; + *head = (*head + 1) % m; + } + + // Update matrices WS and WY. + dcopy_(&n, d, &one_int, &ws[(*itail) * n], &one_int); + dcopy_(&n, r, &one_int, &wy[(*itail) * n], &one_int); + + // Set theta=yy/ys. + *theta = rr / dr; + + // Form the middle matrix in B. + // update the upper triangle of SS (m, m), and the lower triangle of SY (m, m): + if (iupdat > m) + { + for (j = 1; j < *col; j++) + { + dcopy_(&j, &ss[1 + m*j], &one_int, &ss[m*(j-1)], &one_int); + temp_int = *col - j; + dcopy_(&temp_int, &sy[j + m*j], &one_int, &sy[(j-1) + m*(j-1)], &one_int); + } + // 50 + } + + // add new information: the last row of SY and the last column of SS + pointr = *head; + for (j = 0; j < *col - 1; j++) + { + sy[*col - 1 + m*j] = ddot_(&n, d, &one_int, &wy[pointr*n], &one_int); + ss[j + m*(*col - 1)] = ddot_(&n, &ws[pointr*n], &one_int, &d[0], &one_int); + pointr = (pointr + 1) % m; + } + // 51 + + ss[(*col - 1) + m*(*col - 1)] = (stp == 1.0 ? dtd : stp*stp*dtd ); + sy[(*col - 1) + m*(*col - 1)] = dr; + + return; +} + + +void +projgr(int n, double* l, double* u, int* nbd, + double* x, double* g, double* sbgnrm) +{ + // ************ + // + // Subroutine projgr + // + // This subroutine computes the infinity norm of the projected + // gradient. + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int i; + double gi; + + *sbgnrm = 0.0; + for (i = 0; i < n; i++) + { + gi = g[i]; + if (gi != gi) + { + // NaN value in gradient: propagate it + *sbgnrm = gi; + return; + } + if (nbd[i] != 0) + { + if (gi < 0.0) + { + if (nbd[i] >= 2) { gi = fmax(x[i] - u[i], gi); } + } else { + if (nbd[i] <= 2) { gi = fmin(x[i] - l[i], gi); } + } + } + *sbgnrm = fmax(*sbgnrm, fabs(gi)); + } + // 15 + + return; +} + + +void subsm(int n, int m, int nsub, int* ind, + double* l, double* u, int* nbd, double* x, + double* d, double* xp, double* ws, double* wy, + double theta, double* xx, double* gg, int col, + int head, int* iword, double* wv, double* wn, int* info) +{ + // ********************************************************************** + // + // This routine contains the major changes in the updated version. + // The changes are described in the accompanying paper + // + // Jose Luis Morales, Jorge Nocedal + // "Remark On Algorithm 788: L-BFGS-B: Fortran Subroutines for Large-Scale + // Bound Constrained Optimization". Decemmber 27, 2010. + // + // J.L. Morales Departamento de Matematicas, + // Instituto Tecnologico Autonomo de Mexico + // Mexico D.F. + // + // J, Nocedal Department of Electrical Engineering and + // Computer Science. + // Northwestern University. Evanston, IL. USA + // + // January 17, 2011 + // + // ********************************************************************** + // + // + // Subroutine subsm + // + // Given xcp, l, u, r, an index set that specifies + // the active set at xcp, and an l-BFGS matrix B + // (in terms of WY, WS, SY, WT, head, col, and theta), + // this subroutine computes an approximate solution + // of the subspace problem + // + // (P) min Q(x) = r'(x-xcp) + 1/2 (x-xcp)' B (x-xcp) + // + // subject to l<=x<=u + // x_i=xcp_i for all i in A(xcp) + // + // along the subspace unconstrained Newton direction + // + // d = -(Z'BZ)^(-1) r. + // + // The formula for the Newton direction, given the L-BFGS matrix + // and the Sherman-Morrison formula, is + // + // d = (1/theta)r + (1/theta*2) Z'WK^(-1)W'Z r. + // + // where + // K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // + // Note that this procedure for computing d differs + // from that described in [1]. One can show that the matrix K is + // equal to the matrix M^[-1]N in that paper. + // + // n is an integer variable. + // On entry n is the dimension of the problem. + // On exit n is unchanged. + // + // m is an integer variable. + // On entry m is the maximum number of variable metric corrections + // used to define the limited memory matrix. + // On exit m is unchanged. + // + // nsub is an integer variable. + // On entry nsub is the number of free variables. + // On exit nsub is unchanged. + // + // ind is an integer array of dimension nsub. + // On entry ind specifies the coordinate indices of free variables. + // On exit ind is unchanged. + // + // l is a double precision array of dimension n. + // On entry l is the lower bound of x. + // On exit l is unchanged. + // + // u is a double precision array of dimension n. + // On entry u is the upper bound of x. + // On exit u is unchanged. + // + // nbd is a integer array of dimension n. + // On entry nbd represents the type of bounds imposed on the + // variables, and must be specified as follows: + // nbd(i)=0 if x(i) is unbounded, + // 1 if x(i) has only a lower bound, + // 2 if x(i) has both lower and upper bounds, and + // 3 if x(i) has only an upper bound. + // On exit nbd is unchanged. + // + // x is a double precision array of dimension n. + // On entry x specifies the Cauchy point xcp. + // On exit x(i) is the minimizer of Q over the subspace of + // free variables. + // + // d is a double precision array of dimension n. + // On entry d is the reduced gradient of Q at xcp. + // On exit d is the Newton direction of Q. + // + // xp is a double precision array of dimension n. + // used to safeguard the projected Newton direction + // + // xx is a double precision array of dimension n + // On entry it holds the current iterate + // On output it is unchanged + // gg is a double precision array of dimension n + // On entry it holds the gradient at the current iterate + // On output it is unchanged + // + // ws and wy are double precision arrays; + // theta is a double precision variable; + // col is an integer variable; + // head is an integer variable. + // On entry they store the information defining the + // limited memory BFGS matrix: + // ws(n,m) stores S, a set of s-vectors; + // wy(n,m) stores Y, a set of y-vectors; + // theta is the scaling factor specifying B_0 = theta I; + // col is the number of variable metric corrections stored; + // head is the location of the 1st s- (or y-) vector in S (or Y). + // On exit they are unchanged. + // + // iword is an integer variable. + // On entry iword is unspecified. + // On exit iword specifies the status of the subspace solution. + // iword = 0 if the solution is in the box, + // 1 if some bound is encountered. + // + // wv is a double precision working array of dimension 2m. + // + // wn is a double precision array of dimension 2m x 2m. + // On entry the upper triangle of wn stores the LEL^T factorization + // of the indefinite matrix + // + // K = [-D -Y'ZZ'Y/theta L_a'-R_z' ] + // [L_a -R_z theta*S'AA'S ] + // where E = [-I 0] + // [ 0 I] + // On exit wn is unchanged. + // + // iprint is an INTEGER variable that must be set by the user. + // It controls the frequency and type of output generated: + // iprint<0 no output is generated; + // iprint=0 print only one line at the last iteration; + // 0100 print details of every iteration including x and g; + // + // + // info is an integer variable. + // On entry info is unspecified. + // On exit info = 0 for normal return, + // = nonzero for abnormal return + // when the matrix K is ill-conditioned. + // + // Subprograms called: + // + // Linpack dtrsl. + // + // + // References: + // + // [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited + // memory algorithm for bound constrained optimization'', + // SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. + // + // + // + // * * * + // + // NEOS, November 1994. (Latest revision June 1996.) + // Optimization Technology Center. + // Argonne National Laboratory and Northwestern University. + // Written by + // Ciyou Zhu + // in collaboration with R.H. Byrd, P. Lu-Chen and J. Nocedal. + // + // + // ************ + int pointr, m2, col2, ibd, jy, js, i, j, k, one_int = 1; + double alpha, xk, dk, temp, temp1, temp2, dd_p; + char *uplo = "U", *trans = "T", *diag = "N"; + + // n, m, col, nsub are size variables. + // ind, head are index variables/arrays. + if (nsub <= 0) { return; } + + // Compute wv = W'Zd. + pointr = head; + for (i = 0; i < col; i++) + { + temp1 = 0.0; + temp2 = 0.0; + for (j = 0; j < nsub; j++) + { + k = ind[j]; + temp1 += wy[k + n*pointr]*d[j]; + temp2 += ws[k + n*pointr]*d[j]; + } + wv[i] = temp1; + wv[col + i] = theta*temp2; + pointr = (pointr + 1) % m; + } + + // Compute wv:=K^(-1)wv. + m2 = 2*m; + col2 = 2*col; + + // dtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info) + dtrtrs_(uplo, trans, diag, &col2, &one_int, wn, &m2, wv, &m2, info); + if (*info != 0) { return; } + + for (i = 0; i < col; i++) { wv[i] = -wv[i]; } + + trans = "N"; + dtrtrs_(uplo, trans, diag, &col2, &one_int, wn, &m2, wv, &m2, info); + if (*info != 0) { return; } + + // Compute d = (1/theta)d + (1/theta**2)Z'W wv. + pointr = head; + for (jy = 0; jy < col; jy++) + { + js = col + jy; + for (i = 0; i < nsub; i++) + { + k = ind[i]; + d[i] = d[i] + (wy[k + n*pointr] * wv[jy] / theta) + + (ws[k + n*pointr] * wv[js]); + } + // 30 + pointr = (pointr + 1) % m; + } + // 40 + + temp = 1.0 / theta; + // n, da, dx, incx + dscal_(&nsub, &temp, d, &one_int); + + // ----------------------------------------------------- + // Let us try the projection, d is the Newton direction. + + *iword = 0; + // for (i = 0; i < n; i++) { xp[i] = x[i]; } + dcopy_(&n, x, &one_int, xp, &one_int); + + for (i = 0; i < nsub; i++) + { + k = ind[i]; + dk = d[i]; + xk = x[k]; + if (nbd[k] != 0) + { + if (nbd[k] == 1) // Lower bounds only + { + x[k] = fmax(l[k], xk + dk); + if (x[k] == l[k]) { *iword = 1; } + } else { + if (nbd[k] == 2) // Upper and lower bounds + { + xk = fmax(l[k], xk + dk); + x[k] = fmin(u[k], xk); + if ((x[k] == l[k]) || (x[k] == u[k])) { *iword = 1; } + } else { + if (nbd[k] == 3) // Upper bounds only + { + x[k] = fmin(u[k], xk + dk); + if (x[k] == u[k]) { *iword = 1; } + } + } + } + } else { // Free variables + x[k] = xk + dk; + } + } + // 50 + + if (*iword == 0) { return; } + + // Check sign of the directional derivative + dd_p = 0.0; + for (i = 0; i < n; i++) { dd_p = dd_p + (x[i] - xx[i])*gg[i]; } + // 55 + + if (dd_p > 0.0) + { + // for (i = 0; i < n; i++) { x[i] = xp[i]; } + dcopy_(&n, xp, &one_int, x, &one_int); + } else { + return; + } + + // ------------------------------------------------------------- + alpha = 1.0; + temp1 = 1.0; + ibd = 0; + + for (i = 0; i < nsub; i++) + { + k = ind[i]; + dk = d[i]; + if (nbd[k] != 0) + { + if ((dk < 0.0) && (nbd[k] <= 2)) + { + temp2 = l[k] - x[k]; + if (temp2 >= 0.0) + { + temp1 = 0.0; + } else if (dk * alpha < temp2) { + temp1 = temp2 / dk; + } + } else if ((dk > 0.0) && (nbd[k] >= 2)) { + temp2 = u[k] - x[k]; + if (temp2 <= 0.0) { + temp1 = 0.0; + } else if (dk * alpha > temp2) { + temp1 = temp2 / dk; + } + } + if (temp1 < alpha) + { + alpha = temp1; + ibd = i; + } + } + } + // 60 + + if (alpha < 1.0) + { + dk = d[ibd]; + k = ind[ibd]; + if (dk > 0.0) + { + x[k] = u[k]; + d[ibd] = 0.0; + } else if (dk < 0.0) { + x[k] = l[k]; + d[ibd] = 0.0; + } + } + + for (i = 0; i < nsub; i++) + { + k = ind[i]; + x[k] = x[k] + alpha*d[i]; + } + // 70 + + return; +} + + +void +dcsrch(double f, double g, double* stp, double ftol, double gtol, + double xtol, double stpmin, double stpmax, int* task, + int* task_msg, int* isave, double* dsave) +{ + // ********** + // + // Subroutine dcsrch + // + // This subroutine finds a step that satisfies a sufficient + // decrease condition and a curvature condition. + // + // Each call of the subroutine updates an interval with + // endpoints stx and sty. The interval is initially chosen + // so that it contains a minimizer of the modified function + // + // psi(stp) = f(stp) - f(0) - ftol*stp*f'(0). + // + // If psi(stp) <= 0 and f'(stp) >= 0 for some step, then the + // interval is chosen so that it contains a minimizer of f. + // + // The algorithm is designed to find a step that satisfies + // the sufficient decrease condition + // + // f(stp) <= f(0) + ftol*stp*f'(0), + // + // and the curvature condition + // + // abs(f'(stp)) <= gtol*abs(f'(0)). + // + // If ftol is less than gtol and if, for example, the function + // is bounded below, then there is always a step which satisfies + // both conditions. + // + // If no step can be found that satisfies both conditions, then + // the algorithm stops with a warning. In this case stp only + // satisfies the sufficient decrease condition. + // + // A typical invocation of dcsrch has the following outline: + // + // task = 'START' + // 10 continue + // call dcsrch( ... ) + // if (task .eq. 'FG') then + // Evaluate the function and the gradient at stp + // goto 10 + // end if + // + // NOTE: The user must no alter work arrays between calls. + // + // The subroutine statement is + // + // subroutine dcsrch(f,g,stp,ftol,gtol,xtol,stpmin,stpmax, + // task,isave,dsave) + // where + // + // f is a double precision variable. + // On initial entry f is the value of the function at 0. + // On subsequent entries f is the value of the + // function at stp. + // On exit f is the value of the function at stp. + // + // g is a double precision variable. + // On initial entry g is the derivative of the function at 0. + // On subsequent entries g is the derivative of the + // function at stp. + // On exit g is the derivative of the function at stp. + // + // stp is a double precision variable. + // On entry stp is the current estimate of a satisfactory + // step. On initial entry, a positive initial estimate + // must be provided. + // On exit stp is the current estimate of a satisfactory step + // if task = 'FG'. If task = 'CONV' then stp satisfies + // the sufficient decrease and curvature condition. + // + // ftol is a double precision variable. + // On entry ftol specifies a nonnegative tolerance for the + // sufficient decrease condition. + // On exit ftol is unchanged. + // + // gtol is a double precision variable. + // On entry gtol specifies a nonnegative tolerance for the + // curvature condition. + // On exit gtol is unchanged. + // + // xtol is a double precision variable. + // On entry xtol specifies a nonnegative relative tolerance + // for an acceptable step. The subroutine exits with a + // warning if the relative difference between sty and stx + // is less than xtol. + // On exit xtol is unchanged. + // + // stpmin is a double precision variable. + // On entry stpmin is a nonnegative lower bound for the step. + // On exit stpmin is unchanged. + // + // stpmax is a double precision variable. + // On entry stpmax is a nonnegative upper bound for the step. + // On exit stpmax is unchanged. + // + // task is a character variable of length at least 60. + // On initial entry task must be set to 'START'. + // On exit task indicates the required action: + // + // If task(1:2) = 'FG' then evaluate the function and + // derivative at stp and call dcsrch again. + // + // If task(1:4) = 'CONV' then the search is successful. + // + // If task(1:4) = 'WARN' then the subroutine is not able + // to satisfy the convergence conditions. The exit value of + // stp contains the best point found during the search. + // + // If task(1:5) = 'ERROR' then there is an error in the + // input arguments. + // + // On exit with convergence, a warning or an error, the + // variable task contains additional information. + // + // isave is an integer work array of dimension 2. + // + // dsave is a double precision work array of dimension 13. + // + // Subprograms called + // + // MINPACK-2 ... dcstep + // + // MINPACK-1 Project. June 1983. + // Argonne National Laboratory. + // Jorge J. More' and David J. Thuente. + // + // MINPACK-2 Project. October 1993. + // Argonne National Laboratory and University of Minnesota. + // Brett M. Averick, Richard G. Carter, and Jorge J. More'. + // + // ********** + int brackt, stage; + double finit, ftest, fm, fx, fxm, fy, fym, ginit, gtest, gm, gx, gxm, gy; + double gym, stx, sty, stmin, stmax, width, width1; + double xtrapl = 1.1; + double xtrapu = 4.0; + + // Initialization block. + if (*task == START) + { + // Check the input arguments for errors. + if (*stp < stpmin) { *task = ERROR; *task_msg = ERROR_STP1; } + if (*stp > stpmax) { *task = ERROR; *task_msg = ERROR_STP2; } + if (g >= 0.0) { *task = ERROR; *task_msg = ERROR_INITG; } + if (ftol < 0.0) { *task = ERROR; *task_msg = ERROR_FTOL; } + if (gtol < 0.0) { *task = ERROR; *task_msg = ERROR_GTOL; } + if (xtol < 0.0) { *task = ERROR; *task_msg = ERROR_XTOL; } + if (stpmin < 0.0) { *task = ERROR; *task_msg = ERROR_STPMIN; } + if (stpmax < stpmin) { *task = ERROR; *task_msg = ERROR_STPMAX; } + + // Exit if there are errors on input. + if (*task == ERROR) { return; } + + // Initialize local variables. + brackt = 0; + stage = 1; + finit = f; + ginit = g; + gtest = ftol * ginit; + width = stpmax - stpmin; + width1 = width / 0.5; + + // The variables stx, fx, gx contain the values of the step, function, + // and derivative at the best step. + // The variables sty, fy, gy contain the value of the step, function, + // and derivative at sty. + // The variables stp, f, g contain the values of the step, function, + // and derivative at stp. + stx = 0.0; + fx = finit; + gx = ginit; + sty = 0.0; + fy = finit; + gy = ginit; + stmin = 0.0; + stmax = *stp + xtrapu*(*stp); + + *task = FG; + *task_msg = NO_MSG; + goto SAVEVARS; + + } else { + // Restore local variables. + if (isave[0] == 1) { + brackt = 1; + } else { + brackt = 0; + } + stage = isave[1]; + ginit = dsave[0]; + gtest = dsave[1]; + gx = dsave[2]; + gy = dsave[3]; + finit = dsave[4]; + fx = dsave[5]; + fy = dsave[6]; + stx = dsave[7]; + sty = dsave[8]; + stmin = dsave[9]; + stmax = dsave[10]; + width = dsave[11]; + width1 = dsave[12]; + + } + + // If psi(stp) <= 0 and f'(stp) >= 0 for some step, then the algorithm + // enters the second stage. + ftest = finit + (*stp)*gtest; + if ((stage == 1) && (f <= ftest) && (g >= 0.0)) { stage = 2; } + + // Test for warnings. + if ((brackt) && ((*stp <= stmin) || (*stp >= stmax))) + { + *task = WARNING; + *task_msg = WARN_ROUND; + } + if ((brackt) && ((stmax - stmin) <= xtol * stmax)) + { + *task = WARNING; + *task_msg = WARN_XTOL; + } + if ((*stp == stpmax) && (f <= ftest) && (g <= gtest)) { + *task = WARNING; + *task_msg = WARN_STPMAX; + } + if ((*stp == stpmin) && ((f > ftest) || (g >= gtest))) { + *task = WARNING; + *task_msg = WARN_STPMIN; + } + // Test for convergence. + if ((f <= ftest) && (fabs(g) <= gtol * (-ginit))) { + *task = CONVERGENCE; + } + + // Test for termination. + if ((*task == WARNING) || (*task == CONVERGENCE)) + { + goto SAVEVARS; + } + + // A modified function is used to predict the step during the first stage if + // a lower function value has been obtained but the decrease is not sufficient. + + if ((stage == 1) && (f <= fx) && (f > ftest)) + { + // Define the modified function and derivative values. + fm = f - (*stp)*gtest; + fxm = fx - stx*gtest; + fym = fy - sty*gtest; + gm = g - gtest; + gxm = gx - gtest; + gym = gy - gtest; + + // Call dcstep to update stx, sty, and to compute the new step. + dcstep(&stx, &fxm, &gxm, &sty, &fym, &gym, stp, fm, gm, &brackt, stmin, stmax); + + // Reset the function and derivative values for f. + fx = fxm + stx*gtest; + fy = fym + sty*gtest; + gx = gxm + gtest; + gy = gym + gtest; + + } else { + // Call dcstep to update stx, sty, and to compute the new step. + dcstep(&stx, &fx, &gx, &sty, &fy, &gy, stp, f, g, &brackt, stmin, stmax); + } + + // Decide if a bisection step is needed. + if (brackt) + { + if (fabs(sty - stx) >= 0.66*width1) + { + *stp = stx + 0.5*(sty - stx); + } + width1 = width; + width = fabs(sty - stx); + } + + // Set the minimum and maximum steps allowed for stp. + if (brackt) + { + stmin = fmin(stx,sty); + stmax = fmax(stx,sty); + } else { + stmin = *stp + xtrapl*(*stp - stx); + stmax = *stp + xtrapu*(*stp - stx); + } + + // Force the step to be within the bounds stpmax and stpmin. + *stp = fmax(*stp, stpmin); + *stp = fmin(*stp, stpmax); + + // If further progress is not possible, let stp be the best point obtained + // during the search. + + if (((brackt) && (*stp <= stmin || *stp >= stmax)) || + ((brackt) && (stmax - stmin <= xtol * stmax))) + { + *stp = stx; + } + + // Obtain another function and derivative. + *task = FG; + *task_msg = NO_MSG; + +SAVEVARS: + if (brackt) + { + isave[0] = 1; + } else { + isave[0] = 0; + } + + isave[1] = stage; + dsave[0] = ginit; + dsave[1] = gtest; + dsave[2] = gx; + dsave[3] = gy; + dsave[4] = finit; + dsave[5] = fx; + dsave[6] = fy; + dsave[7] = stx; + dsave[8] = sty; + dsave[9] = stmin; + dsave[10] = stmax; + dsave[11] = width; + dsave[12] = width1; + + return; +} + + +void +dcstep (double* stx, double* fx, double* dx, double* sty, double* fy, double* dy, + double* stp, double fp, double dp, int* brackt, + double stpmin, double stpmax) +{ + // ********** + // + // Subroutine dcstep + // + // This subroutine computes a safeguarded step for a search + // procedure and updates an interval that contains a step that + // satisfies a sufficient decrease and a curvature condition. + // + // The parameter stx contains the step with the least function + // value. If brackt is set to .true. then a minimizer has + // been bracketed in an interval with endpoints stx and sty. + // The parameter stp contains the current step. + // The subroutine assumes that if brackt is set to .true. then + // + // min(stx,sty) < stp < max(stx,sty), + // + // and that the derivative at stx is negative in the direction + // of the step. + // + // The subroutine statement is + // + // subroutine dcstep(stx,fx,dx,sty,fy,dy,stp,fp,dp,brackt, + // stpmin,stpmax) + // + // where + // + // stx is a double precision variable. + // On entry stx is the best step obtained so far and is an + // endpoint of the interval that contains the minimizer. + // On exit stx is the updated best step. + // + // fx is a double precision variable. + // On entry fx is the function at stx. + // On exit fx is the function at stx. + // + // dx is a double precision variable. + // On entry dx is the derivative of the function at + // stx. The derivative must be negative in the direction of + // the step, that is, dx and stp - stx must have opposite + // signs. + // On exit dx is the derivative of the function at stx. + // + // sty is a double precision variable. + // On entry sty is the second endpoint of the interval that + // contains the minimizer. + // On exit sty is the updated endpoint of the interval that + // contains the minimizer. + // + // fy is a double precision variable. + // On entry fy is the function at sty. + // On exit fy is the function at sty. + // + // dy is a double precision variable. + // On entry dy is the derivative of the function at sty. + // On exit dy is the derivative of the function at the exit sty. + // + // stp is a double precision variable. + // On entry stp is the current step. If brackt is set to .true. + // then on input stp must be between stx and sty. + // On exit stp is a new trial step. + // + // fp is a double precision variable. + // On entry fp is the function at stp + // On exit fp is unchanged. + // + // dp is a double precision variable. + // On entry dp is the derivative of the function at stp. + // On exit dp is unchanged. + // + // brackt is a logical variable. + // On entry brackt specifies if a minimizer has been bracketed. + // Initially brackt must be set to .false. + // On exit brackt specifies if a minimizer has been bracketed. + // When a minimizer is bracketed brackt is set to .true. + // + // stpmin is a double precision variable. + // On entry stpmin is a lower bound for the step. + // On exit stpmin is unchanged. + // + // stpmax is a double precision variable. + // On entry stpmax is an upper bound for the step. + // On exit stpmax is unchanged. + // + // MINPACK-1 Project. June 1983 + // Argonne National Laboratory. + // Jorge J. More' and David J. Thuente. + // + // MINPACK-2 Project. October 1993. + // Argonne National Laboratory and University of Minnesota. + // Brett M. Averick and Jorge J. More'. + // + // ********** + double gamma, p, q, r, s, sgnd, stpc, stpf, stpq, theta; + sgnd = dp * (*dx / fabs(*dx)); + + // First case: A higher function value. The minimum is bracketed. + // If the cubic step is closer to stx than the quadratic step, the + // cubic step is taken, otherwise the average of the cubic and + // quadratic steps is taken. + + if (fp > *fx) + { + theta = 3.0 * (*fx - fp) / (*stp - *stx) + *dx + dp; + s = fmax(fabs(theta), fmax(fabs(*dx), fabs(dp))); + gamma = s * sqrt(pow(theta / s, 2.0) - (*dx / s)*(dp / s)); + if (*stp < *stx) { gamma = -gamma; } + p = (gamma - *dx) + theta; + q = ((gamma - *dx) + gamma) + dp; + r = p / q; + stpc = *stx + r * (*stp - *stx); + stpq = *stx + ((*dx / ((*fx - fp) / (*stp - *stx) + *dx)) / 2.0) * (*stp - *stx); + if (fabs(stpc - *stx) < fabs(stpq - *stx)) + { + stpf = stpc; + } else { + stpf = stpc + (stpq - stpc) / 2.0; + } + *brackt = 1; + + } else if (sgnd < 0.0) { + + // Second case: A lower function value and derivatives of opposite + // sign. The minimum is bracketed. If the cubic step is farther from + // stp than the secant step, the cubic step is taken, otherwise the + // secant step is taken. + + theta = 3.0 * (*fx - fp) / (*stp - *stx) + *dx + dp; + s = fmax(fabs(theta), fmax(fabs(*dx), fabs(dp))); + gamma = s * sqrt(pow(theta / s, 2.0) - (*dx / s)*(dp / s)); + if (*stp > *stx) { gamma = -gamma; } + p = (gamma - dp) + theta; + q = ((gamma - dp) + gamma) + *dx; + r = p / q; + stpc = *stp + r * (*stx - *stp); + stpq = *stp + (dp / (dp - *dx)) * (*stx - *stp); + if (fabs(stpc - *stp) > fabs(stpq - *stp)) + { + stpf = stpc; + } else { + stpf = stpq; + } + *brackt = 1; + + } else if (fabs(dp) < fabs(*dx)) { + + // Third case: A lower function value, derivatives of the same sign, + // and the magnitude of the derivative decreases. + + // The cubic step is computed only if the cubic tends to infinity + // in the direction of the step or if the minimum of the cubic + // is beyond stp. Otherwise the cubic step is defined to be the + // secant step. + + theta = 3.0 * (*fx - fp) / (*stp - *stx) + *dx + dp; + s = fmax(fabs(theta),fmax(fabs(*dx), fabs(dp))); + + // The case gamma = 0 only arises if the cubic does not tend + // to infinity in the direction of the step. + + gamma = s*sqrt(fmax(0.0, pow(theta/s, 2.0) - (*dx / s) * (dp / s))); + if (*stp > *stx) { gamma = -gamma; } + p = (gamma - dp) + theta; + q = (gamma + (*dx - dp)) + gamma; + r = p / q; + if ((r < 0.0) && (gamma != 0.0)) + { + stpc = *stp + r*(*stx - *stp); + } else if (*stp > *stx) { + stpc = stpmax; + } else { + stpc = stpmin; + } + stpq = *stp + (dp / (dp - *dx)) * (*stx - *stp); + + if (*brackt) + { + // A minimizer has been bracketed. If the cubic step is + // closer to stp than the secant step, the cubic step is + // taken, otherwise the secant step is taken. + + if (fabs(stpc - *stp) < fabs(stpq - *stp)) + { + stpf = stpc; + } else { + stpf = stpq; + } + if (*stp > *stx) + { + stpf = fmin(*stp + 0.66*(*sty - *stp), stpf); + } else { + stpf = fmax(*stp + 0.66*(*sty - *stp), stpf); + } + } else { + // A minimizer has not been bracketed. If the cubic step is + // farther from stp than the secant step, the cubic step is + // taken, otherwise the secant step is taken. + + if (fabs(stpc - *stp) > fabs(stpq - *stp)) + { + stpf = stpc; + } else { + stpf = stpq; + } + stpf = fmin(stpmax, stpf); + stpf = fmax(stpmin, stpf); + } + + } else { + // Fourth case: A lower function value, derivatives of the same sign, + // and the magnitude of the derivative does not decrease. If the + // minimum is not bracketed, the step is either stpmin or stpmax, + // otherwise the cubic step is taken. + + if (*brackt) { + theta = 3.0 * (fp - *fy) / (*sty - *stp) + *dy + dp; + s = fmax(fabs(theta), fmax(fabs(*dy), fabs(dp))); + gamma = s*sqrt(pow(theta/s, 2.0) - (*dy / s) * (dp / s)); + if (*stp > *sty) { gamma = -gamma; } + p = (gamma - dp) + theta; + q = ((gamma - dp) + gamma) + *dy; + r = p / q; + stpc = *stp + r*(*sty - *stp); + stpf = stpc; + } else if (*stp > *stx) { + stpf = stpmax; + } else { + stpf = stpmin; + } + } + + // Update the interval which contains a minimizer. + + if (fp > *fx) { + *sty = *stp; + *fy = fp; + *dy = dp; + } else { + if (sgnd < 0.0) { + *sty = *stx; + *fy = *fx; + *dy = *dx; + } + *stx = *stp; + *fx = fp; + *dx = dp; + } + + // Compute the new step. + + *stp = stpf; + + return; +} diff --git a/third_party/scipy_lbfgsb/lbfgsb_standalone.h b/third_party/scipy_lbfgsb/lbfgsb_standalone.h new file mode 100644 index 0000000..46a09e8 --- /dev/null +++ b/third_party/scipy_lbfgsb/lbfgsb_standalone.h @@ -0,0 +1,33 @@ +#ifndef CAMEFF_SCIPY_LBFGSB_STANDALONE_H +#define CAMEFF_SCIPY_LBFGSB_STANDALONE_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BLAS */ +void daxpy_(int* n, double* alpha, double* x, int* incx, double* y, int* incy); +void dscal_(int* n, double* alpha, double* x, int* incx); +void dcopy_(int* n, double* x, int* incx, double* y, int* incy); +double dnrm2_(int* n, double* x, int* incx); +double ddot_(int* n, double* x, int* incx, double* y, int* incy); + +/* LAPACK */ +void dpotrf_(char* uplo, int* n, double* a, int* lda, int* info); +void dtrtrs_(char* uplo, char* trans, char* diag, int* n, int* nrhs, + double* a, int* lda, double* b, int* ldb, int* info); + +void cameff_lbfgsb_setulb( + int n, int m, double* x, double* l, double* u, int* nbd, double* f, + double* g, double factr, double pgtol, double* wa, int* iwa, int* task, + int* lsave, int* isave, double* dsave, int maxls, int* ln_task +); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tools/cameff_cli.c b/tools/cameff_cli.c new file mode 100644 index 0000000..fe9ec50 --- /dev/null +++ b/tools/cameff_cli.c @@ -0,0 +1,123 @@ +#include "cameff.h" + +#include +#include +#include + + +static int run_etas_csv(int argc, char **argv) { + FILE *fp; + cameff_event_t *events = NULL; + size_t capacity = 1024, count = 0; + double decision_time; + cameff_etas_fit_t fit; + double probability = 0.0; + char line[256]; + + if (argc != 4) { + fprintf(stderr, "usage: cameff_cli etas-csv EVENTS_CSV DECISION_TIME_DAYS\n"); + return 2; + } + + decision_time = strtod(argv[3], NULL); + fp = fopen(argv[2], "r"); + if (fp == NULL) { + perror("fopen"); + return 2; + } + + events = (cameff_event_t *)malloc(capacity * sizeof(*events)); + if (events == NULL) { + fclose(fp); + return 2; + } + + if (fgets(line, sizeof(line), fp) == NULL) { + free(events); + fclose(fp); + return 2; + } + + while (fgets(line, sizeof(line), fp) != NULL) { + double t, m; + if (sscanf(line, "%lf,%lf", &t, &m) != 2) continue; + if (count == capacity) { + cameff_event_t *next; + capacity *= 2; + next = (cameff_event_t *)realloc(events, capacity * sizeof(*events)); + if (next == NULL) { + free(events); + fclose(fp); + return 2; + } + events = next; + } + events[count].time_days = t; + events[count].magnitude = m; + count++; + } + fclose(fp); + + if (cameff_fit_temporal_etas(events, count, decision_time, &fit) != CAMEFF_AVAILABLE) { + printf("{\"status\":\"%s\"}\n", cameff_availability_name(fit.status)); + free(events); + return 3; + } + + if (cameff_seven_day_m6_probability(events, count, decision_time, &fit, &probability) + != CAMEFF_AVAILABLE) { + free(events); + return 3; + } + + printf( + "{\"status\":\"AVAILABLE\",\"mc\":%.17g,\"b_value\":%.17g," + "\"alpha\":%.17g,\"c\":%.17g,\"p\":%.17g,\"mu\":%.17g," + "\"k\":%.17g,\"loglik\":%.17g,\"branching_proxy\":%.17g," + "\"raw_probability\":%.17g}\n", + fit.mc, fit.b_value, fit.alpha, fit.c, fit.p, fit.mu, fit.k, + fit.loglik, fit.branching_proxy, probability + ); + + free(events); + return 0; +} + +static int run_calibration(int argc, char **argv) { + cameff_calibration_t c; + double raw, out; + cameff_availability_t status; + + if (argc != 10) { + fprintf(stderr, + "usage: cameff_cli calibrate RAW ROWS POS PREV INTERCEPT COEF_LOGP COEF_NEGLOG1MP STATUS\n"); + return 2; + } + + raw = strtod(argv[2], NULL); + memset(&c, 0, sizeof(c)); + c.training_rows = (size_t)strtoull(argv[3], NULL, 10); + c.training_positives = (size_t)strtoull(argv[4], NULL, 10); + c.training_prevalence = strtod(argv[5], NULL); + c.intercept = strtod(argv[6], NULL); + c.coef_log_p = strtod(argv[7], NULL); + c.coef_neg_log_1mp = strtod(argv[8], NULL); + c.status = strcmp(argv[9], "AVAILABLE") == 0 + ? CAMEFF_AVAILABLE : CAMEFF_INSUFFICIENT_EVIDENCE; + + status = cameff_apply_p29k_calibration(raw, &c, &out); + printf("{\"status\":\"%s\",\"calibrated_probability\":%.17g}\n", + cameff_availability_name(status), + status == CAMEFF_AVAILABLE ? out : 0.0); + return status == CAMEFF_AVAILABLE ? 0 : 3; +} + +int main(int argc, char **argv) { + if (argc >= 2 && strcmp(argv[1], "calibrate") == 0) + return run_calibration(argc, argv); + if (argc >= 2 && strcmp(argv[1], "etas-csv") == 0) + return run_etas_csv(argc, argv); + + fprintf(stderr, "cameff_cli: supported commands: calibrate, etas-csv\n"); + return 2; +}