diff --git a/backend/.test_durations b/backend/.test_durations index f8848e60a..0ce502124 100644 --- a/backend/.test_durations +++ b/backend/.test_durations @@ -1,4652 +1,4864 @@ { - "tests/test_access_identity.py::test_a_cold_start_outage_is_not_logged_per_request": 0.058058816000084335, - "tests/test_access_identity.py::test_a_failed_refresh_is_not_retried_by_every_request": 0.038276191999784714, - "tests/test_access_identity.py::test_a_kid_that_never_appears_is_refused_and_does_not_loop": 0.02930783200008591, - "tests/test_access_identity.py::test_a_malformed_key_set_refuses_rather_than_raising": 0.02253494700016745, - "tests/test_access_identity.py::test_a_partial_config_is_treated_as_absent": 0.018853615999660178, - "tests/test_access_identity.py::test_a_rotation_inside_the_floor_waits_for_it": 0.021270442000286494, - "tests/test_access_identity.py::test_a_stale_set_still_verifies_while_refreshing_fails": 0.017733101999965584, - "tests/test_access_identity.py::test_a_success_is_not_logged_as_a_refusal": 0.022317042999702608, - "tests/test_access_identity.py::test_a_token_for_another_application_is_refused": 0.017682902999695216, - "tests/test_access_identity.py::test_a_token_from_another_team_is_refused": 0.019773014000065814, - "tests/test_access_identity.py::test_a_token_naming_nobody_is_refused": 0.01569156899972768, - "tests/test_access_identity.py::test_a_token_signed_by_someone_else_is_refused": 0.08864193100021112, - "tests/test_access_identity.py::test_a_token_with_no_audience_claim_is_refused": 0.01733470199974363, - "tests/test_access_identity.py::test_a_valid_assertion_yields_the_email": 0.1170962139999574, - "tests/test_access_identity.py::test_a_wrong_audience_names_both": 0.02214661899984094, - "tests/test_access_identity.py::test_an_expired_assertion_is_refused": 0.020553831000142964, - "tests/test_access_identity.py::test_an_outage_is_never_reported_as_an_unknown_key_id[0]": 0.018321406000268325, - "tests/test_access_identity.py::test_an_outage_is_never_reported_as_an_unknown_key_id[25260]": 0.022273012999903585, - "tests/test_access_identity.py::test_an_unknown_key_id_triggers_one_refetch": 0.017515936999870974, - "tests/test_access_identity.py::test_an_unsigned_token_is_refused": 0.016016399000136516, - "tests/test_access_identity.py::test_cloudflare_being_unreachable_refuses_rather_than_admits": 0.021007880999832196, - "tests/test_access_identity.py::test_every_refusal_says_why": 0.02159715899983894, - "tests/test_access_identity.py::test_forged_kids_do_not_fetch_once_per_request": 0.03920498599995881, - "tests/test_access_identity.py::test_large_drift_is_not_tolerated": 0.01790512099978514, - "tests/test_access_identity.py::test_missing_config_names_the_variables": 0.018560160000106407, - "tests/test_access_identity.py::test_no_config_means_no_identity": 0.018712107999817817, - "tests/test_access_identity.py::test_no_token_at_all_is_not_logged": 0.02176967699983834, - "tests/test_access_identity.py::test_one_unknown_kid_costs_one_fetch_not_two": 0.01920621099998243, - "tests/test_access_identity.py::test_past_the_grace_the_stale_set_is_refused": 0.021712636999836832, - "tests/test_access_identity.py::test_rubbish_is_refused": 0.018117989000074886, - "tests/test_access_identity.py::test_serving_a_stale_set_is_not_silent": 0.02786134499979198, - "tests/test_access_identity.py::test_small_clock_drift_is_tolerated": 0.01923155700001189, - "tests/test_access_identity.py::test_the_email_is_normalised": 0.017518812999924194, - "tests/test_access_identity.py::test_the_key_set_is_cached": 0.02527010199992219, - "tests/test_access_identity.py::test_the_stale_warning_is_throttled": 0.0721708139999464, - "tests/test_access_identity.py::test_the_token_is_never_logged": 0.02386918499996682, - "tests/test_access_identity.py::test_unreachable_cloudflare_is_distinguishable_from_a_bad_token": 0.016567532000181018, - "tests/test_access_seam.py::test_a_deactivated_administrator_is_refused": 0.015167634999897928, - "tests/test_access_seam.py::test_a_signed_in_administrator_is_admitted": 0.015279078999810736, - "tests/test_access_seam.py::test_a_signed_in_member_is_not_an_administrator": 0.015629132999947615, - "tests/test_access_seam.py::test_a_verified_assertion_also_satisfies_get_current_user": 0.031890124999790714, - "tests/test_access_seam.py::test_a_verified_assertion_beats_the_bypass": 0.02081774399994174, - "tests/test_access_seam.py::test_a_verified_assertion_makes_require_admin_an_admin": 0.02015246299993123, - "tests/test_access_seam.py::test_an_assertion_that_does_not_verify_is_refused": 0.01851653400012765, - "tests/test_access_seam.py::test_an_unconfigured_verifier_is_never_consulted": 0.015662051000163046, - "tests/test_access_seam.py::test_no_assertion_and_no_bypass_is_refused": 0.020642048999889084, - "tests/test_access_seam.py::test_the_assertion_is_what_gets_verified": 0.021350817999973515, - "tests/test_access_seam.py::test_the_bypass_still_works_where_it_is_opted_into": 0.019101926999837815, - "tests/test_access_seam.py::test_the_identity_carries_a_stable_id_derived_from_the_email": 0.027289804000020013, - "tests/test_access_seam.py::test_the_plain_email_header_is_not_trusted": 0.015853752999873905, - "tests/test_access_seam.py::test_the_provider_says_where_the_identity_came_from": 0.024082697000039843, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_all_three_are_behind_require_admin[delete-kwargs2]": 0.135220512999922, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_all_three_are_behind_require_admin[get-kwargs0]": 0.1341151849999278, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_all_three_are_behind_require_admin[put-kwargs1]": 0.13970258399990598, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_delete_is_logged_too": 0.14711093300002176, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_delete_returns_the_node_to_its_registration_choice": 0.13207101900002272, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_get_answers_for_a_node_nothing_has_ever_heard_of": 0.13875418700013142, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_get_reports_the_registration_choice_as_a_raw_piece": 0.14062618899970403, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_put_is_logged_like_the_owner_assignment_route": 0.1396121440002389, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_put_sets_the_override_and_records_who_set_it": 0.15098155700025018, - "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_put_takes_effect_without_waiting_for_the_ttl": 0.14344322399983866, - "tests/test_admin_routes.py::TestAlerts::test_alerts_filters_severity": 0.139029581999921, - "tests/test_admin_routes.py::TestAlerts::test_alerts_returns_list": 0.15979365000021062, - "tests/test_admin_routes.py::TestConfig::test_config_history_returns_list": 0.1395433000002413, - "tests/test_admin_routes.py::TestConfig::test_get_node_config_live_fallback": 0.14525066299984246, - "tests/test_admin_routes.py::TestConfig::test_get_tower_config_returns_the_live_view": 0.14402524900015123, - "tests/test_admin_routes.py::TestEvents::test_events_respect_limit": 0.13502890399990974, - "tests/test_admin_routes.py::TestEvents::test_list_events_returns_list": 0.14794071300002543, - "tests/test_admin_routes.py::TestEvents::test_log_event_appears_in_list": 0.14011030999995455, - "tests/test_admin_routes.py::TestLeaderboard::test_a_caller_with_a_session_still_gets_them": 0.1450803300001553, - "tests/test_admin_routes.py::TestLeaderboard::test_a_caller_with_no_session_is_not_told_what_each_node_missed": 0.13377426000010928, - "tests/test_admin_routes.py::TestLeaderboard::test_a_stray_field_is_refused_rather_than_dropped": 0.014487511999732305, - "tests/test_admin_routes.py::TestLeaderboard::test_cancelling_one_caller_does_not_cancel_the_others_sharing_it": 0.12843640999994932, - "tests/test_admin_routes.py::TestLeaderboard::test_concurrent_cold_start_requests_share_one_summaries_call": 0.022232742000142025, - "tests/test_admin_routes.py::TestLeaderboard::test_each_caller_gets_exactly_its_row_keys[cold-start]": 0.1370634049999353, - "tests/test_admin_routes.py::TestLeaderboard::test_each_caller_gets_exactly_its_row_keys[snapshot]": 0.2679128650001985, - "tests/test_admin_routes.py::TestLeaderboard::test_its_neighbours_under_the_same_prefix_still_want_a_session": 0.13802439000028244, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_answers_a_caller_with_no_session": 0.14057338199972946, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_does_not_publish_a_name_that_is_a_node_id": 0.15050529200016172, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_empty": 0.13872658099990076, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_leaves_out_a_node_with_no_registry_row": 0.15038624199996775, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_names_nodes_the_same_way_with_a_cold_snapshot": 0.14220941499979745, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_reports_the_ref_and_still_reads_id_keyed_state": 0.14274121899984493, - "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_with_node": 0.12997378999966713, - "tests/test_admin_routes.py::TestLeaderboard::test_the_cold_start_fallback_withholds_a_private_node[False-1]": 0.13807208100024582, - "tests/test_admin_routes.py::TestLeaderboard::test_the_cold_start_fallback_withholds_a_private_node[True-0]": 0.1437910469999224, - "tests/test_admin_routes.py::TestLeaderboard::test_the_published_row_declares_exactly_the_public_fields": 0.01903494299972408, - "tests/test_admin_routes.py::TestMetrics::test_metrics_returns_expected_fields": 0.15303219899988107, - "tests/test_admin_routes.py::TestMetrics::test_mn_pos_history_counts_the_smoothers_keys": 0.1482491009999194, - "tests/test_admin_routes.py::TestNodeContacts::test_a_node_that_reported_nothing_is_absent": 0.048965899999984686, - "tests/test_admin_routes.py::TestNodeContacts::test_both_routes_are_gated_on_require_admin": 0.015205489000209127, - "tests/test_admin_routes.py::TestNodeContacts::test_deleting_removes_the_row": 0.07757080199985467, - "tests/test_admin_routes.py::TestNodeContacts::test_deleting_what_is_not_there_is_not_an_error": 0.032232333999672846, - "tests/test_admin_routes.py::TestNodeContacts::test_it_lists_what_the_store_holds": 1.891846398000098, - "tests/test_admin_routes.py::TestNodeHealth::test_check_detects_offline": 0.024914165000382127, - "tests/test_admin_routes.py::TestNodeReconnectEvent::test_fresh_connect_has_no_reconnect_flag": 0.024219805000029737, - "tests/test_admin_routes.py::TestNodeReconnectEvent::test_reconnect_flag_in_meta": 0.027527603999942585, - "tests/test_admin_routes.py::TestNodeRefs::test_it_covers_a_connected_node_the_registry_cannot_answer_for": 0.13739587899999606, - "tests/test_admin_routes.py::TestNodeRefs::test_it_is_gated_on_require_admin": 0.019739389000051233, - "tests/test_admin_routes.py::TestNodeRefs::test_it_names_the_node_behind_a_ref": 0.13956475500003762, - "tests/test_admin_routes.py::TestQueueSaturationAlert::test_drop_event_logged_when_throttle_expires": 0.07987270900025578, - "tests/test_admin_routes.py::TestStaleTasks::test_no_stale_when_recent": 0.024257661000092412, - "tests/test_admin_routes.py::TestStaleTasks::test_stale_when_old": 0.024015418000089994, - "tests/test_admin_routes.py::TestStorage::test_storage_returns_json": 0.14623984399963774, - "tests/test_admin_routes.py::TestUsers::test_list_users": 0.1346949560002031, - "tests/test_admin_routes.py::TestUsers::test_set_role_invalid_user": 0.13403407500004505, - "tests/test_adsb_capture_timestamps.py::TestAdsbLolCaptureTime::test_poll_time_stands_in_when_the_row_carries_no_capture_time": 0.01899850199993125, - "tests/test_adsb_capture_timestamps.py::TestAdsbLolCaptureTime::test_the_client_resolves_seen_pos_at_fetch_time": 0.024850818000004438, - "tests/test_adsb_capture_timestamps.py::TestAdsbLolCaptureTime::test_the_rows_capture_time_is_carried_through": 0.02153883400023915, - "tests/test_adsb_capture_timestamps.py::TestBothIngestPathsUseIt::test_frame_processor_path": 0.026748855999812804, - "tests/test_adsb_capture_timestamps.py::TestBothIngestPathsUseIt::test_tcp_fast_path": 0.016305113999806053, - "tests/test_adsb_capture_timestamps.py::TestCalibrationCanNowRefuseAnOldFix::test_a_live_fix_within_the_budget_is_still_recorded": 0.017176007999978538, - "tests/test_adsb_capture_timestamps.py::TestCalibrationCanNowRefuseAnOldFix::test_an_external_fix_of_a_typical_age_is_refused": 0.015907072000118205, - "tests/test_adsb_capture_timestamps.py::TestExternalCacheFreshness::test_a_stalled_feed_stops_being_served": 0.015083347000199865, - "tests/test_adsb_capture_timestamps.py::TestExternalCacheFreshness::test_an_unstamped_entry_is_not_assumed_fresh": 0.016404433999696266, - "tests/test_adsb_capture_timestamps.py::TestExternalCacheFreshness::test_reports_the_entrys_own_capture_time": 0.015106546999732018, - "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_a_frame_with_no_timestamp_falls_back_to_receipt": 0.02119226499985416, - "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_a_node_clock_ahead_of_ours_is_not_trusted": 0.025703187000317484, - "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_a_node_clock_far_behind_ours_is_not_trusted": 0.023729530999844428, - "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_backlog_within_the_bound_is_reported_honestly": 0.024799432000236266, - "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_the_fallback_is_counted_rather_than_silent": 0.02237344399986796, - "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_the_frames_own_capture_time_is_used": 0.021983307000027708, - "tests/test_adsb_capture_timestamps.py::TestOpenSkyCaptureTime::test_poll_time_stands_in_when_the_row_carries_no_position_time": 0.016493716999775643, - "tests/test_adsb_capture_timestamps.py::TestOpenSkyCaptureTime::test_position_time_is_the_capture_stamp": 0.020530732999986867, - "tests/test_adsb_capture_timestamps.py::TestStalledFeedExpiry::test_a_fetch_that_reaches_no_source_still_ages_the_cache": 0.020826909000334126, - "tests/test_adsb_capture_timestamps.py::TestStalledFeedExpiry::test_entries_past_the_budget_are_dropped": 0.017745153000305436, - "tests/test_adsb_capture_timestamps.py::TestStalledFeedExpiry::test_unstamped_entries_are_dropped": 0.01575273800017385, - "tests/test_adsb_cross_validation_gates.py::TestNullIsland::test_a_report_carrying_no_position_penalises_nobody": 0.019913991999828795, - "tests/test_adsb_cross_validation_gates.py::TestOneVotePerSample::test_a_new_divergent_sample_still_counts": 0.01590226299981623, - "tests/test_adsb_cross_validation_gates.py::TestOneVotePerSample::test_a_sample_ages_out_before_the_next_cycle_could_rejudge_it": 0.017366621999826748, - "tests/test_adsb_cross_validation_gates.py::TestOneVotePerSample::test_the_window_is_shorter_than_the_cycle": 0.018051243999707367, - "tests/test_adsb_cross_validation_gates.py::TestTemporalGates::test_a_report_older_than_the_budget_penalises_nobody": 0.02215671699991617, - "tests/test_adsb_cross_validation_gates.py::TestTemporalGates::test_truth_older_than_the_budget_penalises_nobody": 0.025331779999987702, - "tests/test_adsb_cross_validation_gates.py::TestTemporalGates::test_unstamped_truth_penalises_nobody": 0.02344189599989477, - "tests/test_adsb_cross_validation_gates.py::TestTheCheckStillWorks::test_a_co_timed_agreeing_report_is_left_alone": 0.016070815999910337, - "tests/test_adsb_cross_validation_gates.py::TestTheCheckStillWorks::test_a_co_timed_divergent_report_is_penalised": 0.01896331700004339, - "tests/test_adsb_freshness_regressions.py::TestCalibrationSkewStaysOnOneClock::test_a_node_whose_clock_is_off_still_calibrates": 0.017972290999978213, - "tests/test_adsb_freshness_regressions.py::TestCalibrationSkewStaysOnOneClock::test_both_ingest_paths_record_server_receipt_alongside_capture": 0.014513723999925787, - "tests/test_adsb_freshness_regressions.py::TestCrossValidationCannotBeBypassed::test_a_future_stamp_does_not_grant_immunity": 0.015657184000019697, - "tests/test_adsb_freshness_regressions.py::TestCrossValidationCannotBeBypassed::test_every_sample_in_one_frame_is_judged": 0.025795512000058807, - "tests/test_adsb_freshness_regressions.py::TestDirectCacheConsumersGateOnAge::test_verification_truth_pool_refuses_a_stale_external_entry": 0.025952541999913592, - "tests/test_adsb_freshness_regressions.py::TestExternalStampsAreBounded::test_a_future_external_stamp_cannot_outlive_the_prune": 0.01904177700021137, - "tests/test_adsb_freshness_regressions.py::TestForwardSkewIsNotTrusted::test_a_stamp_seconds_into_the_future_is_refused": 0.01623245400014639, - "tests/test_adsb_freshness_regressions.py::TestForwardSkewIsNotTrusted::test_ordinary_jitter_is_still_accepted": 0.01434758599975794, - "tests/test_adsb_freshness_regressions.py::TestLastGoodRowsKeepTheirOriginalAge::test_a_cached_row_is_not_restamped_as_fresh": 0.01586394399987512, - "tests/test_adsb_freshness_regressions.py::TestLastGoodRowsKeepTheirOriginalAge::test_the_client_stamps_absolute_capture_time": 0.02259859399987363, - "tests/test_adsb_freshness_regressions.py::TestNonFiniteFeedValuesDoNotBlankTheCache::test_a_nan_capture_time_drops_one_row_not_the_poll": 0.02839350900012505, - "tests/test_adsb_freshness_regressions.py::TestSimIngestIsBoundedToo::test_a_future_push_stamp_is_refused": 0.0276004169998032, - "tests/test_adsb_freshness_regressions.py::TestSimIngestIsBoundedToo::test_an_honest_push_stamp_is_kept": 0.024060016000021278, - "tests/test_adsb_freshness_regressions.py::TestStampsNeverRegress::test_an_older_frame_does_not_overwrite_a_newer_fix": 0.017827345000114292, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_node_verification_altitude_stats_come_from_the_airborne_match_alone": 0.014057432999607045, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_node_verification_survives_a_grounded_truth_candidate": 0.015593626000054428, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_validate_altitude_stats_come_from_the_airborne_match_alone": 0.015634283000281357, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_validate_ground_truth_survives_a_grounded_aircraft": 0.017211884000062128, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_a_non_dict_tag_is_passed_through_not_unpacked[bad1]": 0.04170947099987643, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_a_non_dict_tag_is_passed_through_not_unpacked[ground]": 0.05281729800003632, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_adsb_bootstrap_after_solver_failure_coerces_to_zero": 0.023005570000123043, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_coercion_leaves_absent_keys_absent": 0.014476671999773316, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_initial_guess_injection_does_not_kill_the_frame": 0.0963943899998867, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_inline_tag_survives_when_the_fresh_injection_does_not_fire": 0.06664700799979073, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_null_ground_speed_does_not_kill_the_frame": 0.040959757000109676, - "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_refresh_between_solves_coerces_to_zero": 0.02228839300028085, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_403_logs_and_propagates_without_retry": 0.015756458000169005, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_429_retries_once_after_a_backoff": 0.01702280899962716, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_nameless_area_does_not_raise_at_construction": 0.013178041999708512, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[42]": 0.015475487000230714, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[None]": 0.014488902999801212, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[bad3]": 0.01841780299992024, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[not-a-dict]": 0.012869289000036588, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_an_area_missing_lat_or_lon_is_also_skipped": 0.015521591999913653, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_area_still_configured_keeps_cache_and_serves_it_on_failure": 0.017429577000029894, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_areas_are_spaced_by_five_seconds": 0.01582659800010333, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_cache_hit_leaves_last_status_untouched": 0.016833028000064587, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_dropped_area_is_forgotten_from_all_three_dicts": 0.02196422400015763, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_empty_areas": 0.014596552000057272, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_all_deduplicates": 0.015079814000046099, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_all_still_serves_the_good_areas_alongside_a_malformed_one": 0.01661242599993784, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_caches_within_interval": 0.017601726000066265, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_returns_aircraft": 0.01638693100017008, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_returns_cache_on_error": 0.019249680000257285, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_url_format": 0.014514361000010467, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_gzip_response_is_decompressed": 0.02021173799994358, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_last_status_distinguishes_success_from_failure": 0.01588083599995116, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_malformed_area_does_not_leave_orphaned_per_area_state": 0.01644584699988627, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_re_added_area_does_not_serve_its_previous_occupancy": 0.014647096999851783, - "tests/test_adsb_lol.py::TestAdsbLolClient::test_request_carries_contact_ua_and_gzip": 0.016623027999457918, - "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_a_failed_fetch_serves_the_last_good_result": 0.017586196999900494, - "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_a_prolonged_outage_stops_serving_it": 0.019769855000049574, - "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_a_successful_fetch_refreshes_the_budget": 0.01820752599996922, - "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_the_rate_limiter_still_serves_a_fresh_cache": 0.01980072099991048, - "tests/test_adsb_regions.py::TestAntimeridianSplit::test_a_band_across_the_antimeridian_is_split_not_swept": 0.015195052999843028, - "tests/test_adsb_regions.py::TestAntimeridianSplit::test_a_split_costing_the_same_as_the_sweep_is_still_taken": 0.01782729499996094, - "tests/test_adsb_regions.py::TestAntimeridianSplit::test_a_split_dearer_than_the_sweep_is_not_taken": 0.016260701999954108, - "tests/test_adsb_regions.py::TestAntimeridianSplit::test_the_negative_side_splits_the_same_way": 0.01648260100000698, - "tests/test_adsb_regions.py::TestAntimeridianSplit::test_the_split_costs_less_than_the_parallel_it_replaces": 0.016045921000113594, - "tests/test_adsb_regions.py::TestAntimeridianSplit::test_the_union_covers_every_member_plus_its_range": 0.020714621000024636, - "tests/test_adsb_regions.py::TestBboxStaysInRange::test_a_clamped_latitude_alone_forces_the_sweep": 0.01576583400014897, - "tests/test_adsb_regions.py::TestBboxStaysInRange::test_a_pole_crossing_band_is_swept_rather_than_split": 0.018499682000310713, - "tests/test_adsb_regions.py::TestBboxStaysInRange::test_near_pole_latitude_is_clamped_not_pushed_past_ninety": 0.027365429000155927, - "tests/test_adsb_regions.py::TestBboxStaysInRange::test_normal_mid_latitude_region_is_unchanged": 0.01647595999997975, - "tests/test_adsb_regions.py::TestBboxStaysInRange::test_saturated_dlon_gives_the_full_sweep_not_an_out_of_range_edge": 0.015543536000222957, - "tests/test_adsb_regions.py::TestCellOf::test_cell_is_stable_across_calls": 0.01367747899985261, - "tests/test_adsb_regions.py::TestCellOf::test_column_width_in_km_is_stable_across_latitudes": 0.018657764999943538, - "tests/test_adsb_regions.py::TestCellOf::test_distant_positions_get_distinct_cells": 0.012588158999733423, - "tests/test_adsb_regions.py::TestCellOf::test_nearby_positions_share_a_cell": 0.012945564000119703, - "tests/test_adsb_regions.py::TestCellOf::test_pole_does_not_explode": 0.016675922000104038, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_a_polar_region_is_a_finite_in_range_box_not_an_explosion": 0.03676989599989611, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_coverage_invariant_holds_wherever_a_span_can_reach_it[85.0]": 0.015629498999714997, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_coverage_invariant_holds_wherever_a_span_can_reach_it[89.0]": 0.014954955000121117, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_no_exception_and_a_finite_bounded_span[85.0]": 0.017819967999912478, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_no_exception_and_a_finite_bounded_span[89.0]": 0.018726705999824844, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_no_exception_and_a_finite_bounded_span[90.0]": 0.019451453999863588, - "tests/test_adsb_regions.py::TestDlonNearThePole::test_the_pole_gets_the_honest_full_sweep": 0.01867221999987123, - "tests/test_adsb_regions.py::TestMalformedPositions::test_a_boolean_is_not_a_latitude": 0.01657851100003427, - "tests/test_adsb_regions.py::TestMalformedPositions::test_a_fleet_of_rubbish_yields_no_regions_rather_than_an_exception": 0.016532492999886017, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[both-out-of-range]": 0.017656176000173218, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[inf-lat]": 0.015854002000196488, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[lat-below-minus-90]": 0.01658595900016735, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[lon-below-minus-180]": 0.016074848000016573, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[nan-lat]": 0.01465168699996866, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[nan-lon]": 0.017037247999951433, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[neg-inf-lon]": 0.018731256999899415, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[none-lat]": 0.021122663999904034, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[string-lat]": 0.015663655999787807, - "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[string-lon]": 0.01512250100017809, - "tests/test_adsb_regions.py::TestMalformedPositions::test_boolean_false_pair_is_reported_as_unusable_not_absent": 0.015561269999807337, - "tests/test_adsb_regions.py::TestMalformedPositions::test_dropped_positions_are_logged_with_a_count": 0.016808398999955898, - "tests/test_adsb_regions.py::TestMalformedPositions::test_is_position_absent_does_not_treat_a_bool_as_the_sentinel": 0.016881211999816514, - "tests/test_adsb_regions.py::TestMalformedPositions::test_the_extremes_of_the_valid_range_are_kept": 0.01684047899993857, - "tests/test_adsb_regions.py::TestRegionGeometry::test_as_area_matches_the_client_contract": 0.01664725700015879, - "tests/test_adsb_regions.py::TestRegionGeometry::test_bbox_contains_every_member_plus_its_range": 0.017749380000168458, - "tests/test_adsb_regions.py::TestRegionGeometry::test_bbox_covers_high_latitude_members_across_the_cell": 0.020137288000114495, - "tests/test_adsb_regions.py::TestRegionGeometry::test_metro_cluster_costs_one_opensky_credit": 0.014611638000133098, - "tests/test_adsb_regions.py::TestRegionGeometry::test_radius_covers_every_member_plus_its_range": 0.02785222799980147, - "tests/test_adsb_regions.py::TestRegionGeometry::test_radius_never_breaches_the_schema_cap": 0.017189392000091175, - "tests/test_adsb_regions.py::TestRegionGeometry::test_tight_cluster_is_far_tighter_than_the_ceiling": 0.01942288500003997, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_a_distant_node_does_not_displace_the_others": 0.019781714999908218, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_cap_boundary_is_not_truncated": 0.017071983000278124, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_cap_is_enforced_and_logged": 0.018192206000321676, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_no_nodes_gives_no_regions": 0.017772353000054864, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_only_the_exact_origin_pair_reads_as_absent": 0.01950844400016649, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_ordering_is_deterministic": 0.016211213000133284, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_request_count_does_not_grow_with_node_count": 0.01678235600024891, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_the_absence_test_is_one_predicate_the_whole_backend_shares": 0.016339067999751933, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_three_metros_give_three_regions": 0.01849451499992938, - "tests/test_adsb_regions.py::TestRegionsForNodes::test_unpositioned_nodes_are_dropped": 0.014957693999804178, - "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_entry_conversion": 0.01515645500012397, - "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_keys_stay_lowercase": 0.015518584000119517, - "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_on_ground_sentinel_strings_coerce_to_zero": 0.014754529000128969, - "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_skips_invalid_latlon": 0.015223403999925722, - "tests/test_adsb_seed_backend.py::TestAdsbSeedStatusPayload::test_association_status_carries_the_adsb_seed_block": 0.14279831899989404, - "tests/test_adsb_seed_backend.py::TestConfirmedTrackViewsAdsbHex::test_untagged_track_carries_none": 0.017487674000221887, - "tests/test_adsb_seed_backend.py::TestConfirmedTrackViewsAdsbHex::test_view_carries_the_adsb_hex_key": 0.019222326000090106, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_frame_processor_writer[ground-kin2]": 0.026362195000046995, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_frame_processor_writer[moving-kin0]": 0.021372161000044798, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_frame_processor_writer[nokin-kin1]": 0.02265223699987473, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_record_without_derived_fields_falls_back_on_read[ground-kin2]": 0.019047060000048077, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_record_without_derived_fields_falls_back_on_read[moving-kin0]": 0.01729781200015168, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_record_without_derived_fields_falls_back_on_read[nokin-kin1]": 0.017572441000083927, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_sim_ingest_writer[ground-kin2]": 0.016756460000124207, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_sim_ingest_writer[moving-kin0]": 0.018674756000109483, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_sim_ingest_writer[nokin-kin1]": 0.019379019999860247, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_tcp_handler_writer[ground-kin2]": 0.0164193929999783, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_tcp_handler_writer[moving-kin0]": 0.016632820000040738, - "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_tcp_handler_writer[nokin-kin1]": 0.022573274000023957, - "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_cross_world_state_is_not_attached": 0.035201254999947196, - "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_existing_adsb_list_never_overwritten": 0.02472848300021724, - "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_frame_without_adsb_gains_index_aligned_list_in_active_mode": 0.02767085000004954, - "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_off_and_shadow_mode_leave_the_frame_untouched": 0.026005641999972795, - "tests/test_adsb_seed_backend.py::TestProcessOneFrameSolverQueue::test_adsb_inputs_reach_the_solver_queue": 0.03355737900005806, - "tests/test_adsb_seed_backend.py::TestProcessOneFrameSolverQueue::test_claiming_failure_cannot_cost_the_frame": 0.027495602000044528, - "tests/test_adsb_seed_backend.py::TestProcessOneFrameSolverQueue::test_empty_adsb_inputs_add_nothing": 0.03186872699984633, - "tests/test_adsb_seed_backend.py::TestSeedWorldWiring::test_a_sim_and_a_real_node_over_one_footprint_get_no_overlap_zone": 0.02211383899998509, - "tests/test_adsb_seed_backend.py::TestSeedWorldWiring::test_associator_gets_the_state_world_resolver": 0.02110807000008208, - "tests/test_adsb_seed_backend.py::TestSeedWorldWiring::test_two_synthetic_nodes_over_one_footprint_still_pair": 0.03041157400002703, - "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_all_tagged_history_returns_the_hex": 0.022049523000077897, - "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_hist_without_adsb_keys_returns_none": 0.014808643000151278, - "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_last_n_untagged_is_the_swap_signature": 0.01810812599978817, - "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_track_adsb_hex_matching_is_fine": 0.016582696999876134, - "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_track_adsb_hex_mismatch_forces_none": 0.01441117900003519, - "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_two_distinct_hexes_in_window_is_ambiguous": 0.01853270100014015, - "tests/test_adsb_seed_backend.py::TestWorldStamp::test_frame_processor_writer_stamps_by_node_class": 0.02189746300018669, - "tests/test_adsb_seed_backend.py::TestWorldStamp::test_tcp_writer_honours_the_handshake_verdict": 0.013127133000125468, - "tests/test_adsb_seed_backend.py::TestWorldStamp::test_tcp_writer_stamps_real_for_a_hardware_node": 0.012916186999973434, - "tests/test_adsb_seed_backend.py::TestWorldStamp::test_tcp_writer_stamps_sim_for_a_synthetic_node": 0.016105251999988468, - "tests/test_adsb_single_node.py::TestArc::test_a_disconnected_node_leaves_the_entry_without_an_arc": 0.013518529000066337, - "tests/test_adsb_single_node.py::TestArc::test_below_the_differential_floor_the_entry_survives_without_an_arc": 0.013590702000101373, - "tests/test_adsb_single_node.py::TestBindingDefault::test_an_unrecognised_value_degrades_to_shadow": 0.7190457200001674, - "tests/test_adsb_single_node.py::TestBindingDefault::test_unset_means_binding": 0.6740198300001339, - "tests/test_adsb_single_node.py::TestDownstream::test_dedup_prefers_the_adsb_fix_over_a_solver_estimate": 0.016166537999879438, - "tests/test_adsb_single_node.py::TestDownstream::test_entry_survives_the_per_node_ws_filter": 0.013375831000075777, - "tests/test_adsb_single_node.py::TestDownstream::test_multinode_still_outranks_it": 0.014755637000007482, - "tests/test_adsb_single_node.py::TestDownstream::test_the_builder_publishes_the_entry_and_leaves_detection_arcs_alone": 0.015089966000005006, - "tests/test_adsb_single_node.py::TestQualification::test_a_stale_second_node_does_not_disqualify": 0.01960670499988737, - "tests/test_adsb_single_node.py::TestQualification::test_flight_is_null_without_an_adsb_cache_entry": 0.015043427000136944, - "tests/test_adsb_single_node.py::TestQualification::test_newest_fresh_claim_supplies_the_measurement": 0.01677478700003121, - "tests/test_adsb_single_node.py::TestQualification::test_one_fresh_claim_emits_the_contract_entry": 0.022912979999773597, - "tests/test_adsb_single_node.py::TestQualification::test_repeat_claims_from_one_node_still_qualify": 0.016704168999694957, - "tests/test_adsb_single_node.py::TestQualification::test_stale_claims_emit_nothing": 0.01933335600006103, - "tests/test_adsb_single_node.py::TestQualification::test_two_distinct_nodes_emit_nothing": 0.014769869000019753, - "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_aircraft_are_converted_and_stamped_adsb_lol": 0.022481700000071214, - "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_areas_are_named_for_their_region_so_the_client_cache_keys_line_up": 0.018635919999724138, - "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_every_region_failing_covers_nothing": 0.030838882999887574, - "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_only_the_regions_that_answered_are_reported_covered": 0.10465674699980809, - "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_a_fleet_with_no_positions_at_all_says_so": 0.05716020899990326, - "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_a_node_missing_one_coordinate_is_not_placed_on_the_prime_meridian": 0.0699917000001733, - "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_a_null_coordinate_pair_reads_as_unpositioned_not_as_rubbish": 0.08111588399992797, - "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_one_unusable_position_does_not_starve_the_rest": 0.06387992800000575, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_429_costs_only_its_own_region_and_logs_when_credits_return": 0.02107912400015266, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_non_200_leaves_that_region_uncovered_and_says_so": 0.022856933999946705, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_region_nothing_was_asked_for_is_not_reported_covered": 0.0206594789999599, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[None]": 0.016145834000099057, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[abc123]": 0.01909578100003273, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[short0]": 0.017232362000186185, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[short1]": 0.02254376299993055, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_states_field_that_is_not_a_list_leaves_the_box_to_the_fallback[payload0]": 0.017019826999785437, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_states_field_that_is_not_a_list_leaves_the_box_to_the_fallback[payload1]": 0.017326340999943568, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_states_field_that_is_not_a_list_leaves_the_box_to_the_fallback[payload2]": 0.019998671000166723, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_transport_error_does_not_abandon_the_regions_behind_it": 0.023990275000187467, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_empty_sky_counts_as_covered[None]": 0.015009620999990148, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_empty_sky_counts_as_covered[states0]": 0.015324585000143998, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_unreadable_200_leaves_the_region_to_the_fallback[None-raises0]": 0.02022376699983397, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_unreadable_200_leaves_the_region_to_the_fallback[payload1-None]": 0.01988146300027438, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_every_region_failing_at_the_transport_does_discard_the_pool": 0.024406864000184214, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_one_malformed_state_vector_costs_only_itself": 0.019969799999898896, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_states_are_parsed_and_stamped_opensky": 0.01662901999998212, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_the_bounding_box_of_each_region_is_what_is_queried": 0.01815291699995214, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_the_burst_is_capped_rather_than_tracking_the_region_count": 0.041156667999985075, - "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_the_regions_are_asked_concurrently": 0.026336475999869435, - "tests/test_adsb_truth_regions.py::TestProviderHandover::test_a_malformed_opensky_200_still_reaches_the_fallback[None-raises0]": 0.042268918999752714, - "tests/test_adsb_truth_regions.py::TestProviderHandover::test_a_malformed_opensky_200_still_reaches_the_fallback[payload1-None]": 0.07535995800003548, - "tests/test_adsb_truth_regions.py::TestProviderHandover::test_an_aircraft_both_providers_saw_keeps_the_entry_that_names_its_supplier": 0.0578075240000544, - "tests/test_adsb_truth_regions.py::TestProviderHandover::test_both_providers_key_the_cache_in_the_same_case": 0.06272613599958277, - "tests/test_adsb_truth_regions.py::TestProviderHandover::test_only_the_uncovered_regions_are_handed_to_the_fallback": 0.055356392000021515, - "tests/test_adsb_truth_regions.py::TestProviderHandover::test_the_summary_names_only_the_regions_the_fallback_actually_covered": 0.059839249000106065, - "tests/test_adsb_truth_regions.py::TestRangeBeyondTheQueryMargin::test_a_max_range_that_is_not_a_number_is_not_measured_against_it": 0.08196319700005006, - "tests/test_adsb_truth_regions.py::TestRangeBeyondTheQueryMargin::test_a_range_past_the_margin_names_the_range_and_the_margin": 0.07350966900003186, - "tests/test_adsb_truth_regions.py::TestRangeBeyondTheQueryMargin::test_the_margin_itself_is_not_reported_as_a_shortfall": 0.06921448700018118, - "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_a_429_that_left_a_region_uncovered_does_arm_it": 0.030793369999855713, - "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_a_429_the_fallback_covered_costs_no_backoff": 0.02437911099991652, - "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_another_region_s_gap_does_not_charge_the_credit_budget": 0.0193366179998975, - "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_the_fallback_failing_outright_leaves_the_429_charged": 0.02085539999984576, - "tests/test_adsb_truth_regions.py::TestRegionFetch::test_a_total_failure_keeps_the_last_good_cache": 0.0235934659999657, - "tests/test_adsb_truth_regions.py::TestRegionFetch::test_an_empty_successful_fetch_clears_rather_than_hiding": 0.021892442000080337, - "tests/test_adsb_truth_regions.py::TestRegionFetch::test_every_metro_is_represented_in_the_merged_cache": 0.030206306000081895, - "tests/test_adsb_truth_regions.py::TestRegionFetch::test_the_fallback_throwing_outright_still_keeps_opensky_s_regions": 0.021724881999944046, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_a_half_covered_region_goes_to_the_fallback": 0.020312992000071972, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_a_truthfully_empty_box_replaces_the_cache_though_everything_else_failed": 0.01739611900006821, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_both_boxes_are_asked_for_and_merge_into_one_region": 0.028588194000121803, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_every_box_failing_at_the_transport_discards_the_pool": 0.019837258000052316, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_one_box_failing_at_the_transport_keeps_the_pool": 0.021639486000140096, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_one_box_refused_credit_leaves_the_whole_region_uncovered": 0.021530792000021393, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_the_burst_stays_capped_when_regions_split": 0.04696976599984737, - "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_the_half_that_answered_survives_the_fallback_failing_too": 0.016541126000220174, - "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_failing_client_is_removed": 0.08374175500011916, - "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_failing_owner_client_is_removed": 0.055795367999962764, - "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_ground_truth_slimmed_to_last_position": 0.1136592030002248, - "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_owner_client_gets_only_their_nodes": 0.0867537850001554, - "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_updates_state_and_sends_to_clients": 0.08351325600006021, - "tests/test_aircraft_broadcast.py::TestFilterPayloadToNodes::test_empty_node_set_yields_nothing": 0.06733110699997269, - "tests/test_aircraft_broadcast.py::TestFilterPayloadToNodes::test_filters_to_given_nodes": 0.06706093400021018, - "tests/test_aircraft_broadcast.py::TestFilterPayloadToNodes::test_multinode_kept_when_contributor_owned": 0.06307755599959819, - "tests/test_aircraft_broadcast.py::TestRealOnlyDict::test_filters_to_real_nodes": 0.06563340199977574, - "tests/test_aircraft_broadcast.py::TestRealOnlyDict::test_multinode_aircraft_kept_when_any_contributor_real": 0.05584481699997923, - "tests/test_aircraft_flush.py::TestBroadcastAircraft::test_updates_state_bytes": 0.07289862599986918, - "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_a_raising_client_is_dropped_without_counting_a_timeout": 0.07102110300002096, - "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_live_clients_are_fanned_out_too": 0.18736524700011614, - "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_many_slow_clients_cost_one_timeout_not_one_each": 0.17890551699974822, - "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_owner_clients_are_fanned_out_with_their_filtered_payloads": 0.1850851760000296, - "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_slow_client_is_dropped_and_the_others_are_served": 0.18367285799990896, - "tests/test_aircraft_flush.py::TestRealOnlyDict::test_empty_aircraft": 0.06497730700016291, - "tests/test_aircraft_flush.py::TestRealOnlyDict::test_filters_synthetic_nodes": 0.06383274399991024, - "tests/test_aircraft_flush.py::TestRealOnlyDict::test_multinode_includes_if_any_real": 0.0627167019999888, - "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_an_unregistered_node_reaches_no_public_feed": 0.1008364790000087, - "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_the_frame_kept_on_state_is_neither_redacted_nor_substituted": 0.07506988900013312, - "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_the_public_feed_is_published_under_the_ref": 0.09164500300016698, - "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_the_real_only_feed_still_finds_its_nodes_after_substitution": 0.08034984699975212, - "tests/test_aircraft_flush_refs.py::TestOwnerFeed::test_substituting_first_would_empty_it": 0.06152007100013179, - "tests/test_aircraft_flush_refs.py::TestOwnerFeed::test_the_owner_snapshot_is_filtered_by_id_then_published_as_a_ref": 0.08586103100014952, - "tests/test_alerting.py::TestCallTimeCapture::test_auth_captured_once_not_reread_when_thread_runs": 0.06974463699975786, - "tests/test_alerting.py::TestCallTimeCapture::test_environment_captured_once_not_reread_when_thread_runs": 0.05776824400004443, - "tests/test_alerting.py::TestCallTimeCapture::test_format_captured_once_not_reread_when_thread_runs": 0.053102740999747766, - "tests/test_alerting.py::TestCallTimeCapture::test_host_captured_once_not_reread_when_thread_runs": 0.05556638299981387, - "tests/test_alerting.py::TestCallTimeCapture::test_url_captured_once_not_reread_when_thread_runs": 0.05020035799998368, - "tests/test_alerting.py::TestClickupChatFormat::test_content_contains_alert_type_message_and_each_meta_pair": 0.08320033499990132, - "tests/test_alerting.py::TestClickupChatFormat::test_content_includes_environment_and_host_lines": 0.043204156999763654, - "tests/test_alerting.py::TestClickupChatFormat::test_empty_meta_renders_cleanly": 0.059379695999950854, - "tests/test_alerting.py::TestClickupChatFormat::test_full_call_pins_url_headers_and_body_together": 0.0790855959999135, - "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_a_different_alert_type_is_not_blocked": 0.09957231100020181, - "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_a_send_is_refused_while_the_same_type_is_still_in_flight": 0.08284833599986996, - "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_the_in_flight_marker_is_cleared_after_a_failed_delivery": 0.07549882500006788, - "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_the_in_flight_marker_is_cleared_once_delivery_ends": 0.07761339600006067, - "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_exhausted_retriable_failure_reopens_the_slot_early": 0.0833349619999808, - "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_failed_release_does_not_clobber_slot_claimed_by_later_send": 0.09776466399989658, - "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_terminal_4xx_keeps_its_cooldown_slot": 0.07066269999972974, - "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_the_reopen_deadline_outranks_a_shorter_cooldown": 0.07844043899990538, - "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_the_reopen_deadline_survives_a_cooldown_change": 0.06973718599988388, - "tests/test_alerting.py::TestDeliveryRetry::test_400_is_not_retried": 0.07739267799979643, - "tests/test_alerting.py::TestDeliveryRetry::test_401_is_not_retried": 0.07357395900021402, - "tests/test_alerting.py::TestDeliveryRetry::test_500_is_retried_and_the_alert_arrives": 0.07339971299984427, - "tests/test_alerting.py::TestDeliveryRetry::test_backoff_delays_fall_inside_their_own_attempt_window": 0.08672011600015139, - "tests/test_alerting.py::TestDeliveryRetry::test_backoff_is_jittered_rather_than_a_fixed_schedule": 0.11755375799998546, - "tests/test_alerting.py::TestDeliveryRetry::test_backoff_is_slept_between_attempts_but_not_after_the_last": 0.09808421899992936, - "tests/test_alerting.py::TestDeliveryRetry::test_connection_error_is_retried_and_the_alert_arrives": 0.09261347200003911, - "tests/test_alerting.py::TestDeliveryRetry::test_cooldown_is_held_across_retries_and_reopened_once_at_the_end": 0.108947267999838, - "tests/test_alerting.py::TestDeliveryRetry::test_delivery_that_eventually_succeeds_keeps_its_cooldown_slot": 0.06982495200008998, - "tests/test_alerting.py::TestDeliveryRetry::test_delivery_that_succeeds_on_retry_is_not_logged_at_error": 0.06674997899995105, - "tests/test_alerting.py::TestDeliveryRetry::test_exhausted_delivery_is_logged_at_error": 0.08718415100020138, - "tests/test_alerting.py::TestDeliveryRetry::test_non_retriable_failure_is_logged_at_error": 0.0849295340003664, - "tests/test_alerting.py::TestDeliveryRetry::test_read_timeout_is_retried": 0.09104760100012754, - "tests/test_alerting.py::TestDeliveryRetry::test_retrying_is_bounded": 0.09671287500009385, - "tests/test_alerting.py::TestDeliveryRetry::test_successful_first_attempt_does_not_sleep": 0.08584229300004154, - "tests/test_alerting.py::TestDeliveryRetry::test_unexpected_exception_is_not_retried": 0.07633681899983458, - "tests/test_alerting.py::TestDeliveryRetryDetails::test_a_terminal_4xx_mid_sequence_keeps_the_cooldown_slot": 0.06356024900014745, - "tests/test_alerting.py::TestDeliveryRetryDetails::test_a_terminal_4xx_mid_sequence_stops_the_retries": 0.09412256400014485, - "tests/test_alerting.py::TestDeliveryRetryDetails::test_exhausted_5xx_log_keeps_the_greppable_wording": 0.08781889699980638, - "tests/test_alerting.py::TestDeliveryRetryDetails::test_one_client_serves_the_whole_sequence": 0.07771353699990868, - "tests/test_alerting.py::TestDeliveryRetryDetails::test_terminal_4xx_log_keeps_the_greppable_wording": 0.07895927300000949, - "tests/test_alerting.py::TestDeliveryRetryDetails::test_unreachable_sink_logs_the_traceback_once_at_the_end": 0.12296800400008578, - "tests/test_alerting.py::TestEnvironmentAndHost::test_alert_environment_empty_yields_unknown": 0.09460242500017557, - "tests/test_alerting.py::TestEnvironmentAndHost::test_alert_environment_stripped": 0.07245563399987986, - "tests/test_alerting.py::TestEnvironmentAndHost::test_alert_environment_unset_yields_unknown": 0.049764454000069236, - "tests/test_alerting.py::TestEnvironmentAndHost::test_gethostname_empty_string_yields_unknown": 0.07201241899997513, - "tests/test_alerting.py::TestEnvironmentAndHost::test_gethostname_raising_falls_back_to_unknown_and_does_not_propagate": 0.05760671800021555, - "tests/test_alerting.py::TestEnvironmentAndHost::test_raw_body_reflects_call_time_environment_and_host": 0.05698279999978695, - "tests/test_alerting.py::TestLogDestination::test_logs_disabled_when_url_unset": 0.06901955699981954, - "tests/test_alerting.py::TestLogDestination::test_logs_scheme_and_host_without_leaking_token_or_full_url": 0.07098589399993216, - "tests/test_alerting.py::TestLogDestination::test_logs_unparseable_url_without_a_bare_scheme_and_host": 0.06274437899992336, - "tests/test_alerting.py::TestLogDestination::test_unbalanced_ipv6_bracket_does_not_raise": 0.06123991100002968, - "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_no_warning_when_clickup_chat_format_and_auth_set": 0.059511759999850256, - "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_no_warning_when_raw_format_and_auth_empty": 0.07149390999984462, - "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_warns_when_clickup_chat_format_and_auth_empty": 0.10042400199995427, - "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_warns_when_url_unparseable_and_clickup_chat_auth_empty": 0.08130685300011464, - "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_204_is_still_a_successful_delivery": 0.06066862499983472, - "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_redirect_is_not_counted_as_delivered": 0.06184438499985845, - "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_redirect_is_not_retried": 0.065443841999695, - "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_redirect_names_the_url_rather_than_the_token": 0.06704107400014436, - "tests/test_alerting.py::TestRetryCostsTheSinkNoMoreThanBefore::test_a_lowercased_retry_after_is_honoured": 0.08181219500011139, - "tests/test_alerting.py::TestRetryCostsTheSinkNoMoreThanBefore::test_retry_after_is_honoured_on_a_5xx_too": 0.06714699000008295, - "tests/test_alerting.py::TestRetryCostsTheSinkNoMoreThanBefore::test_the_reopen_window_covers_a_full_sequence_of_attempts": 0.08402112600015244, - "tests/test_alerting.py::TestSendAlert::test_cooldown_blocks_duplicate_alert": 0.06980587299995022, - "tests/test_alerting.py::TestSendAlert::test_different_alert_types_independent_cooldown": 0.05836420300011014, - "tests/test_alerting.py::TestSendAlert::test_disabled_returns_without_calling_httpx": 0.04984854700001051, - "tests/test_alerting.py::TestSendAlert::test_empty_cooldown_env_var_treated_as_unset": 0.0383354469997812, - "tests/test_alerting.py::TestSendAlert::test_is_enabled_false_when_url_unset": 0.03665077400000882, - "tests/test_alerting.py::TestSendAlert::test_is_enabled_true_when_url_set": 0.03433208799970089, - "tests/test_alerting.py::TestSendAlert::test_malformed_cooldown_does_not_raise_and_does_not_silence_alert": 0.04596646999993936, - "tests/test_alerting.py::TestSendAlert::test_malformed_cooldown_falls_back_to_exactly_300": 0.029048081999917486, - "tests/test_alerting.py::TestSendAlert::test_malformed_cooldown_logs_warning_with_bad_value": 0.02814209899997877, - "tests/test_alerting.py::TestSendAlert::test_raw_format_default_matches_current_payload_exactly": 0.026388337999605938, - "tests/test_alerting.py::TestSendAlert::test_unrecognised_format_warns_and_falls_back_to_raw": 0.06347478299971954, - "tests/test_alerting.py::TestSendAlert::test_webhook_4xx_response_does_not_raise": 0.0375439639999513, - "tests/test_alerting.py::TestSendAlert::test_webhook_error_does_not_propagate": 0.07109176300014042, - "tests/test_alerting.py::TestSendAlert::test_whitespace_only_cooldown_treated_as_unset_and_does_not_warn": 0.06241078500011099, - "tests/test_alerting.py::TestSendAlert::test_zero_cooldown_disables_suppression": 0.09574193800017383, - "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_cooldown_strips_surrounding_whitespace": 0.088516387999789, - "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_webhook_auth_strips_surrounding_whitespace": 0.0753814979998424, - "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_webhook_format_strips_whitespace_and_uses_clickup_body": 0.07518648900008884, - "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_webhook_url_strips_surrounding_whitespace": 0.13016373100003875, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_403_is_still_terminal": 0.07979910099993504, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_408_is_retried": 0.09766542499983188, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_429_is_retried_and_the_alert_arrives": 0.08474731999990581, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_malformed_retry_after_falls_back_to_the_backoff": 0.08028426300029423, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_retry_after_is_capped": 0.07123625499980335, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_retry_after_is_honoured_over_the_backoff": 0.07326393600010306, - "tests/test_alerting.py::TestTransient4xxAreRetried::test_retry_after_never_shortens_the_backoff": 0.07420673199999328, - "tests/test_analysis_weather.py::test_fetch_historical_filters_to_requested_window": 0.05734046899988243, - "tests/test_analysis_weather.py::test_fetch_historical_handles_naive_datetimes": 0.06287657899997612, - "tests/test_analysis_weather.py::test_fetch_historical_returns_empty_on_http_error": 0.06246423099992171, - "tests/test_analysis_weather.py::test_fetch_historical_returns_empty_on_payload_missing_hourly": 0.06533301700005723, - "tests/test_analysis_weather.py::test_fetch_historical_returns_empty_when_end_before_start": 0.06249143699983506, - "tests/test_analysis_weather.py::test_fetch_historical_returns_one_row_per_hour": 0.06471319099978246, - "tests/test_analytics_refresh.py::TestAccuracyStats::test_all_zero_errors": 0.06257300300012503, - "tests/test_analytics_refresh.py::TestAccuracyStats::test_empty_samples": 0.06905990999985079, - "tests/test_analytics_refresh.py::TestAccuracyStats::test_multiple_sources_split": 0.06177160700008244, - "tests/test_analytics_refresh.py::TestAccuracyStats::test_percentiles_correct": 0.07357228000023497, - "tests/test_analytics_refresh.py::TestAccuracyStats::test_single_sample": 0.06372667899995577, - "tests/test_analytics_refresh.py::TestConnectedNodesSnapshot::test_snapshot_with_lock": 0.060771342000180084, - "tests/test_analytics_refresh.py::TestMissedDetectionsCountsClaimsAsDetections::test_a_freshly_claimed_aircraft_is_detected_not_missed": 0.0566764319999038, - "tests/test_analytics_refresh.py::TestMissedDetectionsCountsClaimsAsDetections::test_a_stale_claim_still_reads_as_missed": 0.07058702600033939, - "tests/test_analytics_refresh.py::TestMissedDetectionsHonoursConfiguredBeamWidth::test_default_width_follows_the_shared_constant_not_a_local_copy": 0.05633942400004344, - "tests/test_analytics_refresh.py::TestMissedDetectionsHonoursConfiguredBeamWidth::test_wide_beam_node_counts_an_aircraft_a_narrow_beam_would_miss": 0.06817102199988767, - "tests/test_analytics_refresh.py::TestNodeRefInPublicPayloads::test_both_analytics_variants_carry_it": 0.07633142699978634, - "tests/test_analytics_refresh.py::TestNodeRefInPublicPayloads::test_the_handle_is_the_key_it_is_published_under": 0.09788433399990026, - "tests/test_analytics_refresh.py::TestNodeRefInPublicPayloads::test_the_nodes_payload_carries_it": 0.07385181200015722, - "tests/test_analytics_refresh.py::TestNumpySerializationTrap::test_nested_numpy_in_analytics_shape": 0.0630403929997101, - "tests/test_analytics_refresh.py::TestNumpySerializationTrap::test_orjson_accepts_numpy_with_flag": 0.06663497299996379, - "tests/test_analytics_refresh.py::TestNumpySerializationTrap::test_orjson_rejects_numpy_float64_by_default": 0.07573437299993202, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_blocked_node_no_rewards": 0.07413570399967284, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_high_detection_rate_penalty": 0.06648418400027367, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_high_trust_rewards_node": 0.06302858100002595, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_low_trust_blocks_node": 0.058935097999892605, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_neighbour_consistency_penalty": 0.06724626599998373, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_penalty_cap": 0.0777321519999532, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_reputation_never_above_one": 0.057472549999829425, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_reputation_never_negative": 0.06086945799984278, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_stale_heartbeat_penalty": 0.10346259800007829, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_summary_shape": 0.060227882999924987, - "tests/test_analytics_refresh.py::TestReputationEvaluations::test_unblock_resets_reputation_to_0_3": 0.07309835999990355, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_at_exactly_max_range": 0.10290668899983757, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_beam_wraps_at_360_degrees": 0.07539805600004001, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_beyond_max_range": 0.07123862499997813, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_narrow_beam_10deg": 0.07277719899980184, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_near_boundary_inside": 0.0734450200000083, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_near_boundary_outside": 0.08316869400005089, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_on_boresight_but_too_far": 0.07911043699982656, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_on_boresight_within_range": 0.0707773259998703, - "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_within_range_and_beam_30deg_offset": 0.09443931200007682, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_east": 0.060179449000088425, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_north": 0.08557425400022112, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_northeast": 0.07212307099985082, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_east": 0.06590117399991868, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_north": 0.07242866700016748, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_south": 0.0683821979998811, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_west": 0.06503294000003734, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_same_point": 0.06613343799972426, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_same_point_nonzero": 0.06072317699999985, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_south": 0.062296073999959845, - "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_west": 0.06896523199998228, - "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_acute_angle_geometry": 0.0750935030000619, - "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_collinear_near_baseline_gives_large_angle": 0.08453871999995499, - "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_degenerate_aircraft_at_rx_returns_180": 0.08611680799981514, - "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_degenerate_aircraft_at_tx_returns_180": 0.07372329999998328, - "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_symmetric_geometry_approximates_90": 0.08510076400011712, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_a_changed_digest_triggers_a_rebuild": 0.08181911800033959, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_a_later_change_triggers_another_rebuild": 0.03975030499987042, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_a_node_without_a_polygon_is_skipped": 0.0409801579996838, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_an_unchanged_digest_costs_nothing": 0.047811031000037474, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_first_build_is_never_delayed_by_the_floor": 0.05250655800023196, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_recheck_floor_skips_known_nodes": 0.07287215600013042, - "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_sub_bucket_drift_does_not_rebuild": 0.04566994600008911, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_cycle_rebuilds_at_most_the_budget": 0.04343704299981255, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_deferred_node_commits_its_digest_only_when_it_rebuilds": 0.0444765769998412, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_node_that_moves_back_before_its_turn_is_dequeued": 0.06431940400011626, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_node_that_moves_back_forgets_its_enqueue_time": 0.08165807799991853, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_requeued_node_does_not_lose_its_place": 0.06003984099993431, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_retrip_keeps_the_original_enqueue_time": 0.059436000999994576, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_backlog_gauge_reports_what_is_still_owed": 0.04717358700031582, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_bookkeeping_never_outlives_the_queue": 0.056742798999721344, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_excess_is_carried_and_drained_in_order": 0.046849444999907064, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_oldest_wait_gauge_reads_the_front_of_the_queue": 0.056474682999805736, - "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildIsOffTheAnalyticsJob::test_refresh_analytics_and_nodes_does_not_rebuild_grids": 0.06926181599988013, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_a_coasting_track_is_excluded": 0.05961607900007948, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_a_freshly_associated_track_is_included": 0.05745324899976367, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_hex_is_lowercased": 0.05487014599998474, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_missing_n_missed_defaults_harmless_for_stub_tracks": 0.04779951299997265, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_newest_detection_tag_outranks_a_stale_track_hex": 0.06170518099997935, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_no_pipeline_returns_empty_set": 0.05221296700005951, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_track_without_adsb_hex_is_skipped": 0.06439047399976516, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_untagged_newest_detection_falls_back_to_the_track_hex": 0.06851937500005079, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_a_fresh_claim_from_another_node_does_not": 0.06161275500016927, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_a_fresh_claim_from_this_node_counts_as_detected": 0.05410419199984062, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_a_stale_claim_does_not": 0.06538916299996345, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_claims_and_tracker_tracks_are_unioned": 0.05226526699971146, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_hex_is_lowercased": 0.04639934900001208, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_malformed_claim_entries_are_survived": 0.06106688799991389, - "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_this_node_is_found_behind_another_node_s_newer_claim": 0.07944860900011008, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_event_on_detected_then_gone_with_fresh_in_fov_adsb": 0.07198410700016211, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_liveness_guard_blocks_a_dark_node": 0.06588041300005898, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_memory_expires_without_an_event_when_no_fresh_fix_ever_arrives": 0.07723413500002607, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_no_event_for_never_detected_aircraft": 0.07763706400010051, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_no_event_when_the_adsb_fix_is_stale": 0.04787161700005527, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_no_event_when_the_fresh_fix_is_outside_the_current_fov": 0.05870645900017735, - "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_per_cycle_cap": 0.05852980699978616, - "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_absent_key_keeps_monostatic_scoring": 0.07681637799964847, - "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_beam_still_gates_under_the_bistatic_rule": 0.0890608270001394, - "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_bistatic_rule_excludes_what_monostatic_includes": 0.10267135999993116, - "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_bistatic_rule_includes_targets_inside_the_budget": 0.08228020399997149, - "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_a_meaningful_limit_move_still_changes_the_digest": 0.07196685600024466, - "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_float_digest_still_works_unquantized_by_the_tuple_branch": 0.06028789499987397, - "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_limit_is_quantized_to_the_same_2km_grain": 0.06626249200030543, - "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_none_entries_pass_through": 0.06100451299994347, - "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_state_code_compared_exactly": 0.06380242999966868, - "tests/test_analytics_routes.py::TestAccuracy::test_accuracy_returns_bytes": 0.20638359700001274, - "tests/test_analytics_routes.py::TestAccuracy::test_accuracy_with_data": 0.19594932499990136, - "tests/test_analytics_routes.py::TestAdsbReport::test_missing_fields": 0.17283876600004078, - "tests/test_analytics_routes.py::TestAdsbReport::test_valid_report": 0.2111212020001858, - "tests/test_analytics_routes.py::TestAnalytics::test_analytics_real_only": 0.1932985749999716, - "tests/test_analytics_routes.py::TestAnalytics::test_analytics_returns_bytes": 0.19535049699993579, - "tests/test_analytics_routes.py::TestAnalytics::test_node_analytics_found": 0.20637823599986405, - "tests/test_analytics_routes.py::TestAnalytics::test_node_analytics_not_found": 0.18573284199987938, - "tests/test_analytics_routes.py::TestAnomalies::test_anomalies_empty": 0.18939985200017873, - "tests/test_analytics_routes.py::TestAnomalies::test_anomalies_with_data": 0.19670300999973733, - "tests/test_analytics_routes.py::TestAssociationStatus::test_claiming_counters_reflect_the_associator": 0.21390538900027423, - "tests/test_analytics_routes.py::TestAssociationStatus::test_status_includes_claiming_block": 0.21503940299999158, - "tests/test_analytics_routes.py::TestAssociationStatus::test_status_reports_world_skipped_pairs": 0.18875315800028147, - "tests/test_analytics_routes.py::TestAssociationStatus::test_status_returns_expected_fields": 0.1908882249999806, - "tests/test_analytics_routes.py::TestAssociationStatus::test_track_pairs_block_reports_the_live_counters": 0.19639674699988063, - "tests/test_analytics_routes.py::TestOverlaps::test_overlaps_returns_bytes": 0.19976425799995923, - "tests/test_analytics_routes.py::TestPerNodeAnalyticsRoute::test_the_id_the_ref_stands_in_for_is_not_an_address_for_it": 0.18794919199990545, - "tests/test_analytics_routes.py::TestPerNodeAnalyticsRoute::test_the_route_carries_the_ref": 0.18868051500044203, - "tests/test_anonymous_admin_closed.py::test_local_may_keep_the_bypass": 0.10299550600007024, - "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_leaves_the_verifier_unconfigured[docker-compose.prod.yml]": 0.07139707900000758, - "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_leaves_the_verifier_unconfigured[docker-compose.staging.yml]": 0.07716392999986965, - "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_leaves_the_verifier_unconfigured[docker-compose.test.yml]": 0.09785499599956893, - "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_opts_into_the_anonymous_admin[docker-compose.prod.yml]": 0.07523999799991543, - "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_opts_into_the_anonymous_admin[docker-compose.staging.yml]": 0.09597241400001622, - "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_opts_into_the_anonymous_admin[docker-compose.test.yml]": 0.07497535500010599, - "tests/test_api_reference.py::test_every_component_is_reached_by_a_published_operation": 0.06384524399982183, - "tests/test_api_reference.py::test_every_published_tag_is_declared_and_grouped_once": 0.072970739000084, - "tests/test_api_reference.py::test_fastapis_own_pages_are_gone[/docs/oauth2-redirect]": 0.21524398000019573, - "tests/test_api_reference.py::test_fastapis_own_pages_are_gone[/docs]": 0.19213630200010812, - "tests/test_api_reference.py::test_fastapis_own_pages_are_gone[/redoc]": 0.19503454199980297, - "tests/test_api_reference.py::test_it_publishes_exactly_these_operations": 0.2839096640000207, - "tests/test_api_reference.py::test_no_account_admin_or_test_route_is_listed": 0.04785719500000596, - "tests/test_api_reference.py::test_the_api_vhost_serves_tower_finders_schema_from_its_own_origin": 0.12120619699976487, - "tests/test_api_reference.py::test_the_description_keeps_the_node_apis_sections_under_its_own_lead": 0.050362557999733326, - "tests/test_api_reference.py::test_the_node_operations_are_the_contracts_own": 0.06061478300011913, - "tests/test_api_reference.py::test_the_page_loads_the_pinned_scalar_under_its_own_policy": 0.17963103499982935, - "tests/test_api_reference.py::test_the_page_renders_each_document_with_scalars_uploads_off": 0.18063672299990685, - "tests/test_api_reference.py::test_the_policy_admits_the_inline_script_by_its_hash": 0.2019838780001919, - "tests/test_api_reference.py::test_the_served_document_is_the_public_one": 0.18523911200009024, - "tests/test_api_reference.py::test_the_whole_schema_is_for_an_administrator": 0.19676241799993477, - "tests/test_api_reference.py::test_without_tower_finder_the_location_is_not_rendered": 0.09523389700007101, - "tests/test_arc_builder.py::TestArcCacheIntegration::test_dropped_hex_is_evicted": 0.057657563999782724, - "tests/test_arc_builder.py::TestArcCacheIntegration::test_unchanged_fleet_second_build_zero_rebuilds": 0.06587342300008459, - "tests/test_arc_builder.py::TestArcDifferentialFloor::test_above_floor_builds": 0.061393576000000394, - "tests/test_arc_builder.py::TestArcDifferentialFloor::test_below_floor_returns_none": 0.06828203600025518, - "tests/test_arc_builder.py::TestArcDifferentialFloor::test_floor_boundary": 0.06861598000000413, - "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[0.0]": 0.05334110099965983, - "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[40000.0]": 0.05376961799970559, - "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[9000.0]": 0.04823868899984518, - "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[None]": 0.07529792000013913, - "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_arc_points_satisfy_2d_differential": 0.052566671000022325, - "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_track_altitude_is_ignored": 0.051375066999980845, - "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_accepts_supersonic_displacement": 0.056398858000193286, - "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_rejects_too_recent": 0.05421986900023512, - "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_returns_gs_and_track_from_two_samples": 0.06513324199977433, - "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_returns_none_without_log": 0.0545137930000692, - "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_bare_flag_without_types_dropped": 0.05439157400019212, - "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_disallowed_types_stripped_supersonic_survives": 0.0753404780002711, - "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_gt_flagged_hex_survives_clean_emit": 0.06564213300021038, - "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_only_disallowed_types_unflags": 0.05947689100003117, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_arc_points_lie_on_measured_differential_within_limit": 0.07057627299991509, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_delay_beyond_differential_limit_returns_none": 0.077689644999964, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_known_position_no_longer_trims_the_arc": 0.08882380399973044, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_monostatic_range_excludes_out_of_reach_bearings": 0.0549030079998829, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_omni_node_spans_beyond_any_wedge": 0.0700196440000127, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_point_budget_is_bounded": 0.06086035399994216, - "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_wedge_arc_stays_inside_genuine_beam": 0.08537134900007004, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_fuzz_off_emits_the_true_midpoint": 0.05268489199988835, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_icon_is_displaced_by_about_the_node_offset": 0.06581945299990366, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_icon_sits_on_the_published_arc": 0.08081535199994505, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_internal_state_stays_in_the_true_frame": 0.06698582600006375, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_recent_positions_are_served_from_the_public_store": 0.060872816000255625, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_rms_gate_nulled_arc_still_moves_the_icon": 0.05306075699991197, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_solver_position_is_translated_for_arc_tracks": 0.053904943999896204, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_solver_position_untouched_for_an_adsb_seed_track": 0.056269757000109166, - "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_the_true_store_never_receives_the_public_position": 0.0502968470000269, - "tests/test_arc_builder.py::TestBearingDeg::test_east": 0.049424574999875404, - "tests/test_arc_builder.py::TestBearingDeg::test_north": 0.06147770899974603, - "tests/test_arc_builder.py::TestBearingDeg::test_round_trip": 0.06666450300008364, - "tests/test_arc_builder.py::TestBearingDeg::test_south": 0.04837907099977201, - "tests/test_arc_builder.py::TestBearingDeg::test_west": 0.06445839599996361, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_37_points_for_normal_delay": 0.0582620819998283, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_arc_coords_are_finite": 0.06465930200010916, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_arc_within_max_range": 0.045320774000174424, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_explicit_beam_azimuth": 0.06907784000009087, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_min_two_points": 0.07429045799995038, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_monotonically_increases_with_delay": 0.07576399700019465, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_nan_beam_width_does_not_poison_the_arc_with_nan_points": 0.07756701399989652, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_narrow_beam_yields_fewer_points": 0.0817030509997494, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_non_finite_max_bistatic_defers_to_configured_max_range": 0.0713664659999722, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_list_of_pairs": 0.06809598600011668, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_for_negative_delay": 0.07324412799971469, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_for_none_delay": 0.05589357199983169, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_for_zero_delay": 0.05351846400003524, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_missing_rx_coords": 0.05222421300004498, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_missing_tx_coords": 0.06073007499981031, - "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_very_large_delay_no_crash": 0.0696967969997786, - "tests/test_arc_builder.py::TestEnuToLla::test_east_offset": 0.06160352099982447, - "tests/test_arc_builder.py::TestEnuToLla::test_north_offset": 0.05719254300015564, - "tests/test_arc_builder.py::TestEnuToLla::test_zero_enu_is_rx": 0.048876320999852396, - "tests/test_arc_builder.py::TestFloorTrackStillEmits::test_above_floor_track_gets_arc": 0.05889426699991418, - "tests/test_arc_builder.py::TestFloorTrackStillEmits::test_below_floor_track_emits_without_arc": 0.06681008800001109, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_expired_hold_also_restores_arc": 0.0749766940000427, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_held_position_coasts_instead_of_freezing": 0.06437889899984839, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_hold_clears_when_gate_stops_firing": 0.05296370300015951, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_hold_engages_and_records_anchor": 0.04693215700012843, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_hold_releases_after_max_hold": 0.05206816100007927, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_seen_reports_real_age": 0.07423965999987558, - "tests/test_arc_builder.py::TestGateHoldIsBounded::test_stale_track_is_not_rendered": 0.056047938999654434, - "tests/test_arc_builder.py::TestGatePreservesArc::test_clean_rms_keeps_arc_and_new_position": 0.06497552499968151, - "tests/test_arc_builder.py::TestGatePreservesArc::test_rms_gate_suppresses_arc_and_reverts_lat_lon": 0.059193159999949785, - "tests/test_arc_builder.py::TestGatePreservesArc::test_speed_gate_keeps_arc_and_reverts_lat_lon": 0.05080007200012915, - "tests/test_arc_builder.py::TestPositionJumpAnomaly::test_normal_motion_not_flagged": 0.05652301300006002, - "tests/test_arc_builder.py::TestPositionJumpAnomaly::test_teleport_not_flagged_but_observable": 0.06307853700013766, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_altitude_change_does_not_invalidate_cache": 0.04741549600021244, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_cached_equals_fresh": 0.07478745799994613, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_delay_change_rebuilds": 0.058022983999990174, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_delay_change_still_rebuilds_regardless_of_altitude": 0.05230755999991743, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_identical_inputs_build_once": 0.0528557790000832, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_jitter_within_epsilon_hits": 0.06004093299998203, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_none_delay_caches_and_hits": 0.05709153500015418, - "tests/test_arc_builder.py::TestSingleNodeArcCache::test_position_change_hits_cache": 0.06340555499991751, - "tests/test_arc_builder.py::TestTrackEntryPaths::test_drone_target_class": 0.055493021000074805, - "tests/test_arc_builder.py::TestTrackEntryPaths::test_speed_knots_aircraft": 0.073243554000328, - "tests/test_arc_builder.py::TestTrackEntryPaths::test_track_angle_range": 0.06435192200001438, - "tests/test_arc_builder.py::TestTrackEntryPaths::test_track_has_target_class": 0.058338747000107105, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_empty_archive_dir_returns_zero_stats": 1.9149020720001317, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_empty_dirs_pruned_after_delete": 0.55363249800007, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_file_within_retention_not_deleted": 0.4566367709999213, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_fresh_file_not_uploaded": 0.3949760460000107, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_no_upload_when_r2_disabled": 0.05880584400006228, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_old_file_is_uploaded_to_r2": 0.37593190100005813, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_old_file_uploaded_then_deleted": 0.6139790659999562, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_tracks_parquet_deleted_past_retention": 0.5159032139997635, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_tracks_parquet_uploaded_under_tracks_prefix": 0.9472844679999071, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_upload_cap_respected": 6.736452207000184, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_uploaded_file_content_in_r2": 0.7312544760000037, - "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_very_old_file_deleted_locally": 0.38471899599994686, - "tests/test_archive_lifecycle.py::TestIterArchiveFiles::test_non_dir_entries_at_each_level_are_skipped": 0.05609672400009913, - "tests/test_archive_lifecycle.py::TestIterArchiveFiles::test_oserror_during_iteration_does_not_crash": 0.07732454699998925, - "tests/test_archive_lifecycle.py::TestIterArchiveFiles::test_parquet_and_json_files_are_yielded": 0.07135066499995446, - "tests/test_archive_lifecycle.py::TestPruneEmptyDirs::test_base_dir_is_never_removed": 0.07519428600016909, - "tests/test_archive_lifecycle.py::TestPruneEmptyDirs::test_dir_with_files_is_kept": 0.06808099099976062, - "tests/test_archive_lifecycle.py::TestPruneEmptyDirs::test_empty_leaf_dir_is_removed": 0.06193334899990077, - "tests/test_archive_lifecycle.py::TestRetentionDisabled::test_old_file_deleted_when_retention_positive": 0.07515115999967747, - "tests/test_archive_lifecycle.py::TestRetentionDisabled::test_old_file_kept_when_retention_negative": 0.06351956899993638, - "tests/test_archive_lifecycle.py::TestRetentionDisabled::test_old_file_kept_when_retention_zero": 0.07693763200018111, - "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleCap::test_files_beyond_cap_are_skipped": 8.254573407999715, - "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleEmptyDir::test_nonexistent_dir_returns_zero_stats": 0.08594594299984237, - "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleOSError::test_stat_oserror_skips_file_no_error_counted": 0.0745998419999978, - "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleOSError::test_unlink_oserror_increments_errors": 0.061272399000017685, - "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleOSError::test_upload_failure_increments_errors": 0.06333413900006235, - "tests/test_archive_lifecycle.py::TestUploadSentinel::test_existing_sentinel_skips_re_upload": 0.06640192200006823, - "tests/test_archive_lifecycle.py::TestUploadSentinel::test_file_without_sentinel_not_deleted": 0.05737340099994981, - "tests/test_archive_lifecycle.py::TestUploadSentinel::test_sentinel_created_on_successful_upload": 0.07432062700036113, - "tests/test_archive_lifecycle.py::TestUploadSentinel::test_sentinel_not_created_on_failed_upload": 0.0663283730002604, - "tests/test_archive_lifecycle.py::TestUploadSentinel::test_sentinel_removed_with_file": 0.07160526699999537, - "tests/test_auth.py::TestAuthDependencies::test_get_current_user_auth_disabled_returns_anonymous": 0.021860798000034265, - "tests/test_auth.py::TestAuthDependencies::test_get_current_user_invalid_token_raises_401": 0.017142074000048524, - "tests/test_auth.py::TestAuthDependencies::test_get_current_user_missing_cookie_raises_401": 0.01908737500002644, - "tests/test_auth.py::TestAuthDependencies::test_require_admin_auth_disabled_returns_anonymous": 0.01582615999996051, - "tests/test_auth.py::TestAuthDependencies::test_require_admin_non_admin_raises_403": 0.01861200799976359, - "tests/test_auth.py::TestAuthFlagDerivation::test_auth_is_enabled_without_any_provider_configured": 0.07278847500015218, - "tests/test_auth.py::TestAuthFlagDerivation::test_configured_access_beats_the_flag": 0.06723387300030481, - "tests/test_auth.py::TestAuthFlagDerivation::test_flag_alone_enables_bypass_with_no_environment_set": 0.05841966000002685, - "tests/test_auth.py::TestAuthFlagDerivation::test_flag_enables_bypass_in_production": 0.0476165510001465, - "tests/test_auth.py::TestAuthFlagDerivation::test_half_configured_access_does_not_beat_the_flag[CF_ACCESS_AUD]": 0.0656987790000585, - "tests/test_auth.py::TestAuthFlagDerivation::test_half_configured_access_does_not_beat_the_flag[CF_ACCESS_TEAM_DOMAIN]": 0.07041407499991692, - "tests/test_auth.py::TestAuthFlagDerivation::test_module_flags_come_from_the_derivation": 0.05219087200021022, - "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[dev]": 0.05710023099982209, - "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[production]": 0.06180406299995411, - "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[staging]": 0.06182411799977672, - "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[test]": 0.05794350800010761, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[ 1]": 0.06574325100018541, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[0]": 0.14533606600002713, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[1 ]": 0.06876291200001106, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[True]": 0.05992440199997873, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[]": 0.07529593500021292, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[on]": 0.08086079300005622, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[true]": 0.0587317649999477, - "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[yes]": 0.06526051600008032, - "tests/test_auth.py::TestAuthFlagDerivation::test_test_env_alone_does_not_enable_bypass": 0.059612921999814716, - "tests/test_auth.py::TestJWT::test_expired_token_rejected": 0.07427436000011767, - "tests/test_auth.py::TestJWT::test_garbage_token_rejected": 0.07367103699994004, - "tests/test_auth.py::TestJWT::test_tampered_token_not_readable": 0.08288107699991087, - "tests/test_auth.py::TestJWT::test_token_contains_subject": 0.06984256400005506, - "tests/test_auth.py::TestJWT::test_token_has_expiry": 0.07912695399954828, - "tests/test_auth.py::TestJWT::test_write_and_read_token_roundtrip": 0.057138275000170324, - "tests/test_auth.py::TestNodeOwnership::test_a_new_owner_takes_the_node_without_the_last_ones_claim": 0.05326166800000465, - "tests/test_auth.py::TestNodeOwnership::test_a_node_that_never_registered_cannot_be_owned": 0.04911856600006104, - "tests/test_auth.py::TestNodeOwnership::test_assigning_the_owner_a_node_already_has_changes_nothing": 0.04618229700008669, - "tests/test_auth.py::TestNodeOwnership::test_clearing_the_owner_leaves_the_node_unclaimed": 0.0502794349999931, - "tests/test_auth.py::TestNodeOwnership::test_set_and_clear_node_owner": 0.05999262899990754, - "tests/test_auth.py::TestNodeOwnership::test_set_node_owner_updates_existing_owner": 0.0425820670000121, - "tests/test_auth.py::TestSqlitePragmas::test_engine_uses_wal_and_safety_pragmas": 0.07688599800007978, - "tests/test_auth.py::test_admin_route_refuses_anonymous_callers_without_the_flag": 10.102650035999886, - "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_a_node_that_never_registered_cannot_be_given_an_owner": 0.13373794899985114, - "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_list_node_owners_empty": 0.13356682699986777, - "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_list_node_owners_shows_owned": 0.13795911900001556, - "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_set_node_owner_invalid_uuid_returns_404": 0.13286060499990526, - "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_set_node_owner_nonexistent_user_returns_404": 0.12978860299995176, - "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_set_node_owner_null_clears_ownership": 0.1357498720001331, - "tests/test_auth_routes.py::TestClaimRoutes::test_a_click_binds_and_opens_a_session": 0.1333142080000016, - "tests/test_auth_routes.py::TestClaimRoutes::test_a_decline_answers_ok_and_then_stops_working": 0.1314701729997978, - "tests/test_auth_routes.py::TestClaimRoutes::test_a_link_for_a_node_claimed_meanwhile_is_409": 0.12987712800008921, - "tests/test_auth_routes.py::TestClaimRoutes::test_a_spent_link_is_400_rather_than_saying_which_of_three_it_was": 0.13156693799987806, - "tests/test_auth_routes.py::TestClaimRoutes::test_an_address_nobody_confirmed_is_not_what_a_node_was_claimed_with": 0.1393907900001068, - "tests/test_auth_routes.py::TestClaimRoutes::test_an_admin_clearing_an_owner_also_clears_the_claim": 0.23199572499993337, - "tests/test_auth_routes.py::TestClaimRoutes::test_an_admin_reassigning_a_node_clears_the_claim_that_bound_it": 0.23506738300034158, - "tests/test_auth_routes.py::TestClaimRoutes::test_an_admin_reassigning_a_node_to_its_own_owner_keeps_the_claim": 0.23984010599997418, - "tests/test_auth_routes.py::TestClaimRoutes::test_an_unknown_link_answers_exactly_as_a_spent_one": 0.13286044499977834, - "tests/test_auth_routes.py::TestClaimRoutes::test_releasing_a_node_the_caller_does_not_own_is_404": 0.13628745500022887, - "tests/test_auth_routes.py::TestClaimRoutes::test_the_owner_list_names_the_address_a_node_was_claimed_with": 0.1477025809999759, - "tests/test_auth_routes.py::TestClaimRoutes::test_the_preview_names_the_node_without_spending_the_link": 0.13953753800001323, - "tests/test_auth_routes.py::TestClaimRoutes::test_the_preview_of_an_unknown_link_is_404": 0.13942421200022181, - "tests/test_auth_routes.py::TestClaimRoutes::test_the_signed_in_user_carries_the_fleet_flag": 0.1325824289999673, - "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_a_request_without_an_assertion_is_not_redirected": 0.1344926240001314, - "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_a_service_token_is_not_redirected": 0.1319842749999225, - "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_an_access_session_is_told_to_visit_the_edge_logout": 0.14308245899997019, - "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_an_access_session_still_has_its_auth_cookie_cleared": 0.13107093200005693, - "tests/test_auth_routes.py::TestMeEndpoint::test_logout_clears_auth_cookie": 0.13747672800013788, - "tests/test_auth_routes.py::TestMeEndpoint::test_logout_returns_ok": 0.13266796300013084, - "tests/test_auth_routes.py::TestMeEndpoint::test_me_reports_the_access_identity_rather_than_the_anonymous_admin": 0.13602613100010785, - "tests/test_auth_routes.py::TestMeEndpoint::test_me_returns_anonymous_admin_in_test_mode": 0.14918966499999442, - "tests/test_auth_routes.py::TestMeEndpoint::test_me_says_there_is_no_fleet_when_the_flag_is_unset": 0.15978092900013507, - "tests/test_auth_routes.py::TestMeEndpoint::test_me_says_whether_this_server_runs_a_fleet": 0.14134901000011268, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_a_body_without_private_is_rejected": 0.13790101599988702, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_clearing_a_node_registered_public_makes_it_public_again": 0.1347097930001837, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_clearing_privacy_on_a_node_you_do_not_own_is_404": 0.1286346979998143, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_clearing_returns_the_node_to_its_registration_choice": 0.1326394990001063, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_privacy_on_a_node_you_do_not_own_is_404": 0.13326398799972594, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_private_returns_the_override_state": 0.13143371099999968, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_private_takes_effect_without_waiting_for_the_ttl": 0.1323180480001156, - "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_public_overrides_a_private_registration": 0.13290822400017532, - "tests/test_auth_routes.py::TestMyNodes::test_an_owned_node_carries_the_ref_the_public_surfaces_key_on": 0.13199644400015131, - "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_empty_when_no_ownership": 0.13064551800016488, - "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_entry_carries_position_status_for_a_private_node": 0.13373146799995084, - "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_entry_has_expected_fields": 0.13116602199988847, - "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_lists_owned_node": 0.13096697499986476, - "tests/test_auth_routes.py::TestMyNodesCarriesLocationPrivacy::test_a_node_registered_public_reads_public_from_its_registration": 0.13852526300024692, - "tests/test_auth_routes.py::TestMyNodesCarriesLocationPrivacy::test_a_registered_node_names_its_registration": 0.13587897799993698, - "tests/test_auth_routes.py::TestMyNodesCarriesLocationPrivacy::test_an_override_outranks_it_and_says_so": 0.1325262380003096, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_a_null_receiver_stays_null": 0.016611403999831964, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_each_row_uses_its_own_nodes_offset": 0.015332747999991625, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_every_other_column_is_untouched": 0.016617374000134078, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_it_lands_exactly_where_the_live_surfaces_publish": 0.017729370999859384, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_input_table_is_not_stamped": 0.017101252999964345, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_receiver_moves_into_the_donut": 0.02054336499963938, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_result_is_stamped_published": 0.01687611299985292, - "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_transmitter_stays_true": 0.01777255599995442, - "tests/test_backfill_archive_fuzz.py::TestNeedsFuzzing::test_a_stamped_file_does_not": 0.016986282999823743, - "tests/test_backfill_archive_fuzz.py::TestNeedsFuzzing::test_an_unstamped_file_needs_it": 0.01696141500019621, - "tests/test_backfill_archive_fuzz.py::TestNeedsFuzzing::test_the_timestamp_guard_skips_post_fuzz_files": 0.017599508000103015, - "tests/test_backfill_archive_fuzz.py::TestRunRefusals::test_it_refuses_when_fuzzing_is_off": 0.015154939000012746, - "tests/test_backfill_archive_fuzz.py::TestRunRefusals::test_it_refuses_without_an_explicit_salt": 0.01353830699986247, - "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_a_file_written_by_the_writer_is_never_touched": 0.019480335999787712, - "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_a_pre_fuzz_file_is_rewritten": 3.3541014839997843, - "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_a_second_pass_is_a_no_op": 0.023675940999737577, - "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_force_rewrites_a_stamped_file": 0.019100666000213096, - "tests/test_background_tasks.py::TestAnalyticsRefreshPacing::test_a_cycle_longer_than_the_interval_still_leaves_a_gap": 0.015679599999657512, - "tests/test_background_tasks.py::TestAnalyticsRefreshPacing::test_a_failed_cycle_waits_the_whole_interval": 0.02424918599990633, - "tests/test_background_tasks.py::TestAnalyticsRefreshPacing::test_the_sleep_absorbs_the_cycle_cost": 0.014919579000206795, - "tests/test_background_tasks.py::TestBroadcastAircraft::test_updates_state": 0.017491093999979057, - "tests/test_background_tasks.py::TestRealOnlyDict::test_empty_data": 0.014616578999948615, - "tests/test_background_tasks.py::TestRealOnlyDict::test_filters_synthetic_nodes": 0.014297805000069275, - "tests/test_background_tasks.py::TestRealOnlyDict::test_includes_multinode_with_real_contributor": 0.014379257999962647, - "tests/test_background_tasks.py::TestTaskTimestamps::test_bump_task_error_is_atomic_under_threads": 0.0181385070000033, - "tests/test_background_tasks.py::TestTaskTimestamps::test_task_error_counts": 0.01553083599992533, - "tests/test_background_tasks.py::TestTaskTimestamps::test_task_last_success_updated": 0.017301419999967038, - "tests/test_blah2_poller.py::test_a_blah2_frame_becomes_a_v1_wire_frame": 0.01599923700018735, - "tests/test_blah2_poller.py::test_a_blocked_node_is_not_a_target": 0.052798917000018264, - "tests/test_blah2_poller.py::test_a_cancel_that_httpx_absorbs_still_stops_the_radar": 0.07412570499991489, - "tests/test_blah2_poller.py::test_a_credential_that_cannot_be_decrypted_is_not_polled_without_it": 0.03916453200008618, - "tests/test_blah2_poller.py::test_a_live_radar_is_streaming": 0.06754877699995632, - "tests/test_blah2_poller.py::test_a_node_missing_from_the_registries_is_registered_before_its_frame": 0.05593412799998987, - "tests/test_blah2_poller.py::test_a_node_without_a_configuration_has_its_frames_dropped": 0.07478191500035791, - "tests/test_blah2_poller.py::test_a_radar_clock_beyond_the_limit_files_nothing_and_says_so": 0.2704277509999429, - "tests/test_blah2_poller.py::test_a_radar_that_keeps_failing_is_unreachable": 0.21561841500010814, - "tests/test_blah2_poller.py::test_a_radar_that_recovers_streams_again": 0.2913596470000357, - "tests/test_blah2_poller.py::test_a_radar_with_no_detection_yet_is_stalled_not_unreachable": 0.244069823000018, - "tests/test_blah2_poller.py::test_a_repeated_frame_is_filed_once": 0.13796514600016963, - "tests/test_blah2_poller.py::test_a_write_for_a_superseded_epoch_changes_nothing": 0.10905659200011542, - "tests/test_blah2_poller.py::test_an_active_probed_radar_is_a_target": 0.04636098200012384, - "tests/test_blah2_poller.py::test_an_address_the_policy_refuses_is_never_contacted": 0.1841801650002708, - "tests/test_blah2_poller.py::test_an_answer_refreshes_the_nodes_heartbeat": 0.07087584599980801, - "tests/test_blah2_poller.py::test_an_empty_frame_is_a_valid_wire_frame": 0.014489142000002175, - "tests/test_blah2_poller.py::test_an_endpoint_changed_since_its_probe_is_not_a_target": 0.049442083000030834, - "tests/test_blah2_poller.py::test_an_idle_radar_serving_its_last_frame_is_stalled": 0.2692757760000859, - "tests/test_blah2_poller.py::test_an_unreachable_radar_backs_off": 0.017696909999813215, - "tests/test_blah2_poller.py::test_credentials_are_presented": 0.06807889900005648, - "tests/test_blah2_poller.py::test_empty_frames_are_filed": 0.0820494790000339, - "tests/test_blah2_poller.py::test_health_reports_whether_this_deployment_polls": 0.13844962100006342, - "tests/test_blah2_poller.py::test_more_detections_than_a_v1_frame_holds_is_no_frame": 0.013619358999903852, - "tests/test_blah2_poller.py::test_new_frames_are_queued_under_the_node_and_mirrored": 0.09299523300001056, - "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[-False]": 0.016550214999824675, - "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[0-False]": 0.01747618399986095, - "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[1-True]": 0.017062677000012627, - "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[true-False]": 0.02232454299996789, - "tests/test_blah2_poller.py::test_stopping_the_poller_stops_every_radar": 0.06979281300004914, - "tests/test_blah2_poller.py::test_stopping_the_poller_while_it_stops_a_radar[CancelledError]": 0.053141144000164786, - "tests/test_blah2_poller.py::test_stopping_the_poller_while_it_stops_a_radar[RuntimeError]": 0.05592592300013166, - "tests/test_blah2_poller.py::test_the_address_is_vetted_again_every_session": 0.584744995000392, - "tests/test_blah2_poller.py::test_the_poller_follows_the_registry": 0.21659262499997567, - "tests/test_blah2_poller.py::test_the_registry_is_re_read_without_being_asked": 0.14859451200004514, - "tests/test_blah2_poller.py::test_the_running_app_polls_a_radar_into_its_frame_workers": 0.6035256430000118, - "tests/test_blah2_poller.py::test_the_task_polls_where_polling_is_on": 0.0574354980001317, - "tests/test_blah2_poller.py::test_the_task_returns_at_once_where_polling_is_off": 0.019807315999969433, - "tests/test_blah2_poller.py::test_the_undefined_prefix_is_stripped": 0.054799925999986954, - "tests/test_blah2_probe.py::test_a_config_that_is_not_json_is_not_blah2": 0.03185415099983402, - "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[-1]": 0.015562855999860403, - "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[0.75]": 0.01452491299983194, - "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[0]": 0.014936701999886282, - "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[None]": 0.014654346000043006, - "tests/test_blah2_probe.py::test_a_detection_frame_parses": 0.014330622999978004, - "tests/test_blah2_probe.py::test_a_frame_that_does_not_advance_is_stalled": 0.0926600109996798, - "tests/test_blah2_probe.py::test_a_live_stock_blah2_passes": 0.08647846300004858, - "tests/test_blah2_probe.py::test_a_missing_config_is_a_bad_response": 0.03132666200008316, - "tests/test_blah2_probe.py::test_a_radar_that_has_not_detected_yet_is_refused": 0.03504042300028232, - "tests/test_blah2_probe.py::test_a_site_name_is_optional": 0.015255695999940144, - "tests/test_blah2_probe.py::test_a_skewed_radar_clock_is_refused_with_the_offset[-60-behind]": 0.09987191300001541, - "tests/test_blah2_probe.py::test_a_skewed_radar_clock_is_refused_with_the_offset[60-ahead]": 0.09899531099972592, - "tests/test_blah2_probe.py::test_a_small_clock_offset_is_accepted": 0.10530934800021896, - "tests/test_blah2_probe.py::test_an_adelaide_receiver_with_its_own_transmitter_is_accepted": 0.015726089000054344, - "tests/test_blah2_probe.py::test_an_empty_body_means_no_detection_yet[ \\n]": 0.015231755999820962, - "tests/test_blah2_probe.py::test_an_empty_body_means_no_detection_yet[]": 0.01439364799989562, - "tests/test_blah2_probe.py::test_an_empty_frame_is_valid": 0.014513750000105574, - "tests/test_blah2_probe.py::test_an_oversized_detection_is_refused": 0.04329738400019778, - "tests/test_blah2_probe.py::test_blah2_arm_is_refused_after_config_alone": 0.040710026999704496, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[hello]": 0.015654541999992944, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]": 0.03169628799992097, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[[]]": 0.01441773400006241, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[undefined]": 0.014639284999930169, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[undefinedundefined{\"timestamp\": 1700000000000, \"delay\": [12.5, 12.5], \"doppler\": [-40.0, -40.0], \"snr\": [14.2, 14.2]}]": 0.0141249630000857, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"delay\": [], \"doppler\": [], \"snr\": []}]": 0.014621192000049632, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": \"1700000000000\", \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.014542766999966261, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": -1, \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.014907364000237067, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": 1, \"doppler\": 2, \"snr\": 3}]": 0.015473618000214628, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [\"1\"], \"doppler\": [2], \"snr\": [3]}]": 0.01513932200009549, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [1.0], \"doppler\": [], \"snr\": []}]": 0.015346490999945672, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [NaN], \"doppler\": [2], \"snr\": [3]}]": 0.014211848000059035, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [], \"doppler\": []}]": 0.014486239999769168, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000.5, \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.014208420000159094, - "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": true, \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.01451476600004753, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[blah2]": 0.016959976000180177, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config0]": 0.014239845000020068, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config10]": 0.021139052999842534, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config11]": 0.015171433999967121, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config12]": 0.02339604199983114, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config13]": 0.01754222999988997, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config14]": 0.019139507000090816, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config15]": 0.017876638000188905, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config16]": 0.015459061999990809, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config17]": 0.01638973599960991, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config18]": 0.01602675699973588, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config19]": 0.017432835000136038, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config2]": 0.014734200999782843, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config3]": 0.017310674000100335, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config4]": 0.014741929999900094, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config5]": 0.014595275000374386, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config6]": 0.014740127000095526, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config7]": 0.014937949999875855, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config8]": 0.018304295999769238, - "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config9]": 0.015066226999806531, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path0-10.5001]": 0.01773919700008264, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path1--30.2501]": 0.014484484000149678, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path2-13]": 0.014999900000020716, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path3-Elsewhere]": 0.01492425100013861, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path4-10.7501]": 0.014224304999970627, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path5--30.5001]": 0.014498166999828754, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path6-301]": 0.014702827999826695, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path7-Other tower]": 0.015462287999753244, - "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path8-204640001]": 0.016590350999877046, - "tests/test_blah2_probe.py::test_fs_is_optional": 0.017924466000067696, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path0-3000000]": 0.015384241999981896, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path1-HackRF]": 0.014470759000005273, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path2-1.5]": 0.014565724000249247, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path3-3100]": 0.014844997000182047, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path4-False]": 0.014420641999777217, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path5-False]": 0.015507846999980757, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path6-extra]": 0.016313398000193047, - "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path7-value7]": 0.015497503000005963, - "tests/test_blah2_probe.py::test_stock_config_parses": 0.028682013000207007, - "tests/test_blah2_probe.py::test_the_blah2_arm_shape_is_sent_to_the_node_route": 0.014923772999964058, - "tests/test_blah2_probe.py::test_the_default_policy_keeps_the_probe_off_loopback": 0.03571924399989257, - "tests/test_blah2_probe.py::test_the_example_config_is_refused_after_config_alone": 0.03198545300006117, - "tests/test_blah2_probe.py::test_the_example_matches_however_the_numbers_are_spelled": 0.01794369600020218, - "tests/test_blah2_probe.py::test_the_example_matches_on_position_whatever_the_names": 0.015887125999825003, - "tests/test_blah2_probe.py::test_the_fingerprint_hashes_a_canonical_form": 0.015915683999992325, - "tests/test_blah2_probe.py::test_the_fingerprint_ignores_number_spelling": 0.014665826999817, - "tests/test_blah2_probe.py::test_the_fingerprint_refuses_a_config_that_is_not_blah2": 0.01643819700007043, - "tests/test_blah2_probe.py::test_the_fingerprint_treats_negative_zero_as_zero": 0.016303758999583806, - "tests/test_blah2_probe.py::test_the_first_frame_after_an_api_restart_loses_its_undefined_prefix": 0.014515687999846705, - "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[0.5-1.75]": 0.014872696000111318, - "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[1.5-3.0]": 0.015513125999859767, - "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[2.5-5.0]": 0.01601888299978782, - "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[60.0-5.0]": 0.018357155999865427, - "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[None-1.75]": 0.017241357000330026, - "tests/test_blah2_probe.py::test_the_probe_requests_only_config_and_detection": 0.1027376810000078, - "tests/test_blah2_probe.py::test_the_probe_waits_by_the_radars_own_cpi": 0.09103768799991485, - "tests/test_blah2_probe.py::test_the_shipped_adelaide_example_is_refused": 0.017654370999935054, - "tests/test_blah2_probe.py::test_the_undefined_prefix_quirk_does_not_fail_the_probe": 0.11091334200023084, - "tests/test_blah2_probe.py::test_the_whole_probe_is_bounded": 0.33440663599981235, - "tests/test_calibration.py::TestAgeGate::test_a_fix_at_the_limit_is_recorded": 0.014787952999995468, - "tests/test_calibration.py::TestAgeGate::test_a_fresh_fix_is_recorded": 0.01717012400013118, - "tests/test_calibration.py::TestAgeGate::test_a_stale_fix_is_refused": 0.014938330999939353, - "tests/test_calibration.py::TestAgeGate::test_the_limit_is_the_solvers_stated_one": 0.01448830099980114, - "tests/test_calibration.py::TestBothCallSitesUseIt::test_frame_path_routes_through_the_helper": 0.017273351000085313, - "tests/test_calibration.py::TestBothCallSitesUseIt::test_solver_does_not_calibrate_at_all": 0.01550671300014983, - "tests/test_calibration.py::TestClaimLaneRecorder::test_a_fresh_claim_records_one_point": 0.01681736099999398, - "tests/test_calibration.py::TestClaimLaneRecorder::test_an_unusable_position_or_node_records_nothing": 0.016337845999942147, - "tests/test_calibration.py::TestClaimLaneRecorder::test_the_age_rule_still_applies": 0.01730849299997317, - "tests/test_calibration.py::TestClaimLaneRecorder::test_the_point_is_stamped_with_detection_ts": 0.01678548800009594, - "tests/test_calibration.py::TestClaimLaneRecorder::test_there_is_no_skew_rule": 0.01756848400009403, - "tests/test_calibration.py::TestFanOut::test_an_empty_node_list_records_nothing": 0.014813383000046088, - "tests/test_calibration.py::TestFanOut::test_every_contributing_node_gets_the_point": 0.014791230000128053, - "tests/test_calibration.py::TestFixDetectionSkewGate::test_a_recorded_point_is_stamped_with_detection_ts_not_fix_ts": 0.019127479999951902, - "tests/test_calibration.py::TestFixDetectionSkewGate::test_a_skew_at_the_limit_is_recorded": 0.04112207599996509, - "tests/test_calibration.py::TestFixDetectionSkewGate::test_a_skew_past_the_limit_records_nothing": 0.01579985599983047, - "tests/test_calibration.py::TestFixDetectionSkewGate::test_skew_is_symmetric": 0.10643569500007288, - "tests/test_calibration.py::TestPositionGuard::test_a_missing_position_is_refused": 0.01508955600002082, - "tests/test_calibration.py::TestPositionGuard::test_blank_node_ids_are_skipped": 0.018325462999882802, - "tests/test_calibration.py::TestPositionGuard::test_null_island_is_refused": 0.01428208800007269, - "tests/test_calibration_from_claims.py::TestBeyondTheCoveragePrior::test_a_fix_past_the_prior_still_records": 0.015373899999985952, - "tests/test_calibration_from_claims.py::TestExclusivity::test_a_rival_inside_the_claim_gate_blocks_the_point": 0.02145162300030279, - "tests/test_calibration_from_claims.py::TestExclusivity::test_a_rival_outside_the_claim_gate_does_not": 0.018647739999778423, - "tests/test_calibration_from_claims.py::TestExclusivity::test_dark_projection_contention_blocks_the_point": 0.015456560999837166, - "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_hold_whose_fix_aged_past_the_claim_cap_records_nothing": 0.02490941600012775, - "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_refreshed_hold_is_judged_on_the_fresh_fixs_residual": 0.01708746400004202, - "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_refreshed_hold_records_like_a_path_2_claim": 0.017959040000050663, - "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_refreshed_holds_registry_entry_carries_no_calibration_keys": 0.0261558669999431, - "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_follow_claims_record_nothing": 0.018109660999925836, - "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_hold_claims_record_nothing_once_the_transponder_stops": 0.018836081999779708, - "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_a_gap_inside_the_window_does_not_reset": 0.016631447000008848, - "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_keeps_recording_once_mature": 0.01771755300001132, - "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_records_on_the_third_claim_and_not_before": 0.01598526599991601, - "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_streak_resets_after_a_long_gap": 0.016450356999712312, - "tests/test_calibration_from_claims.py::TestNodeTags::test_a_cached_competitor_inside_the_gate_blocks_a_tag": 0.0165346920000502, - "tests/test_calibration_from_claims.py::TestNodeTags::test_a_clean_tag_records": 0.016505045999792856, - "tests/test_calibration_from_claims.py::TestNodeTags::test_a_path1_hex_is_never_assigned_by_path2": 0.015032979999887175, - "tests/test_calibration_from_claims.py::TestRecordedPosition::test_the_point_is_the_dead_reckoned_position": 0.016657019999911427, - "tests/test_calibration_from_claims.py::TestResidualAndFreshness::test_doppler_residual_beyond_the_calibration_gate": 0.018592445000194857, - "tests/test_calibration_from_claims.py::TestResidualAndFreshness::test_residual_inside_the_claim_gate_but_beyond_the_calibration_gate": 0.019684671999812053, - "tests/test_calibration_from_claims.py::TestResidualAndFreshness::test_stale_fix_inside_the_claim_age_cap": 0.01990767699976459, - "tests/test_claim_link_delivery.py::test_nothing_is_sent_without_a_host_to_address_the_link_to": 0.017144541999869034, - "tests/test_claim_link_delivery.py::test_the_link_follows_force_https": 0.018856765000009545, - "tests/test_claim_link_delivery.py::test_the_link_lands_on_the_consoles_claim_page": 0.020365478000030635, - "tests/test_claim_routes.py::test_a_claim_row_survives_a_re_registration": 0.15852399099981085, - "tests/test_claim_routes.py::test_a_click_landing_on_the_clickers_own_binding_succeeds": 0.13392600300016966, - "tests/test_claim_routes.py::test_a_click_refused_for_a_taken_node_does_not_spend_the_link": 0.043507195000074717, - "tests/test_claim_routes.py::test_a_decline_leaves_a_link_minted_since_alone": 0.038010012999848186, - "tests/test_claim_routes.py::test_a_decline_leaves_the_address_on_file": 0.0315873559998181, - "tests/test_claim_routes.py::test_a_decline_returns_the_node_to_unowned": 0.03985586899989357, - "tests/test_claim_routes.py::test_a_declined_link_cannot_then_be_redeemed": 0.034067745999891486, - "tests/test_claim_routes.py::test_a_link_for_a_node_claimed_meanwhile_is_refused": 0.03780957400022089, - "tests/test_claim_routes.py::test_a_link_for_an_address_the_node_has_since_replaced_is_refused": 0.09317295500022738, - "tests/test_claim_routes.py::test_a_link_still_in_a_mailbox_cannot_claim_a_node_whose_claim_was_cleared": 0.0937961809997887, - "tests/test_claim_routes.py::test_a_refused_click_leaves_the_address_unconfirmed": 0.03654906000019764, - "tests/test_claim_routes.py::test_a_release_by_somebody_who_does_not_own_it_is_refused": 0.19755618300018796, - "tests/test_claim_routes.py::test_a_release_clears_the_binding_and_the_address": 0.13634620100015127, - "tests/test_claim_routes.py::test_a_released_node_can_be_claimed_again": 0.26505095200013784, - "tests/test_claim_routes.py::test_a_second_click_on_the_same_link_does_nothing": 0.10293498300006831, - "tests/test_claim_routes.py::test_a_second_node_joins_the_account_the_address_already_has": 0.11917658200013648, - "tests/test_claim_routes.py::test_a_sign_in_link_cannot_claim_a_node": 0.05259783600013179, - "tests/test_claim_routes.py::test_an_empty_token_is_refused": 0.01704210200000489, - "tests/test_claim_routes.py::test_an_expired_link_is_refused": 0.03500037000003431, - "tests/test_claim_routes.py::test_an_unknown_link_is_refused": 0.023149729999886404, - "tests/test_claim_routes.py::test_declining_an_unknown_link_is_false": 0.01838547999977891, - "tests/test_claim_routes.py::test_one_click_binds_the_node": 0.11306272100023307, - "tests/test_claim_routes.py::test_one_click_confirms_the_address": 0.09394586500002333, - "tests/test_claim_routes.py::test_one_click_creates_the_account_when_the_address_is_new": 0.09499221900023258, - "tests/test_claim_routes.py::test_one_click_spends_the_link": 0.09521410599973024, - "tests/test_claim_routes.py::test_only_the_hash_of_a_token_is_ever_stored": 0.05990776400017239, - "tests/test_claim_routes.py::test_releasing_an_unowned_node_is_false": 0.04646834900017893, - "tests/test_claim_routes.py::test_the_claim_row_and_the_node_row_agree_on_the_node": 0.054536439000003156, - "tests/test_claim_routes.py::test_the_two_expiries_agree": 0.02983059400003185, - "tests/test_classify_migration_gap.py::test_a_destructive_gap_names_the_downgrade_target": 0.9075855319999846, - "tests/test_classify_migration_gap.py::test_an_additive_gap_is_safe_to_serve": 0.8469841059998089, - "tests/test_classify_migration_gap.py::test_an_undeclared_revision_is_graded_destructive": 0.7880797289999464, - "tests/test_classify_migration_gap.py::test_an_unknown_ref_reports_cleanly_rather_than_raising": 0.7697843379999085, - "tests/test_classify_migration_gap.py::test_no_gap_when_the_restored_tree_ships_every_revision": 0.6850195049999002, - "tests/test_classify_migration_gap.py::test_restoring_a_pre_alembic_tree_puts_the_whole_history_in_the_gap": 0.8946519900000567, - "tests/test_custody.py::TestCanonicalize::test_different_key_order_same_output": 0.06476943600000595, - "tests/test_custody.py::TestCanonicalize::test_no_whitespace": 0.10427280899989455, - "tests/test_custody.py::TestCanonicalize::test_sorted_keys": 0.08090066699992349, - "tests/test_custody.py::TestChainRecovery::test_recovered_prev_hash": 0.10555340500013699, - "tests/test_custody.py::TestCrossKeyVerification::test_wrong_key_rejects": 0.09591338199993515, - "tests/test_custody.py::TestEdgeCases::test_close_hour_no_detections_returns_none": 0.05562288000010085, - "tests/test_custody.py::TestEdgeCases::test_signed_packet_with_adsb": 0.13088362100006634, - "tests/test_custody.py::TestHashChainBuilder::test_add_detections": 0.07162034400016637, - "tests/test_custody.py::TestHashChainBuilder::test_chain_links": 0.10310322500026814, - "tests/test_custody.py::TestHashChainBuilder::test_chain_log_persisted": 0.06963080300010915, - "tests/test_custody.py::TestHashChainBuilder::test_close_hour": 0.12610218100007842, - "tests/test_custody.py::TestHashChainBuilder::test_initial_prev_hash": 0.11338691699984338, - "tests/test_custody.py::TestHashChainBuilder::test_no_pending": 0.07307235800021772, - "tests/test_custody.py::TestHashChainVerifier::test_first_entry_valid": 0.06576932799976021, - "tests/test_custody.py::TestHashChainVerifier::test_full_chain_valid": 0.12730000300030042, - "tests/test_custody.py::TestHashChainVerifier::test_second_entry_valid": 0.11340697200012073, - "tests/test_custody.py::TestHashChainVerifier::test_wrong_prev_hash_rejected": 0.09172442799990677, - "tests/test_custody.py::TestModelsSerialization::test_hash_chain_entry_round_trip": 0.10411505199999738, - "tests/test_custody.py::TestModelsSerialization::test_node_identity_round_trip": 0.0675489350001044, - "tests/test_custody.py::TestModelsSerialization::test_signed_packet_round_trip": 0.07280861599997479, - "tests/test_custody.py::TestPacketSigner::test_delay_matches": 0.14032551100012824, - "tests/test_custody.py::TestPacketSigner::test_doppler_matches": 0.06460091500025555, - "tests/test_custody.py::TestPacketSigner::test_has_signature": 0.11487427599990951, - "tests/test_custody.py::TestPacketSigner::test_node_id": 0.07641905900004531, - "tests/test_custody.py::TestPacketSigner::test_payload_hash_is_64_hex": 0.23699859299995296, - "tests/test_custody.py::TestPacketSigner::test_signing_mode": 0.054620631000034336, - "tests/test_custody.py::TestPacketSigner::test_snr_matches": 0.06733555100004196, - "tests/test_custody.py::TestPacketSigner::test_timestamp": 0.07797582799980773, - "tests/test_custody.py::TestPacketVerifier::test_accepts_valid": 0.1281716849998702, - "tests/test_custody.py::TestPacketVerifier::test_rejects_tampered": 0.07953297600010956, - "tests/test_custody.py::TestPacketVerifier::test_rejects_unknown_node": 0.10005582500025412, - "tests/test_custody.py::TestSignatureVerifier::test_registered_nodes": 0.08440859599977557, - "tests/test_custody.py::TestSignatureVerifier::test_reject_wrong_hash": 0.1094111840000096, - "tests/test_custody.py::TestSignatureVerifier::test_verify_valid_packet": 0.06878632899997683, - "tests/test_custody.py::TestSigningVerification::test_hash_sha256_is_deterministic": 0.07664083799977561, - "tests/test_custody.py::TestSigningVerification::test_hash_sha256_returns_64_hex": 0.06473994099997071, - "tests/test_custody.py::TestSigningVerification::test_sign_hex_returns_hex": 0.08665696300022319, - "tests/test_custody.py::TestSigningVerification::test_sign_returns_bytes": 0.14248717800001032, - "tests/test_custody.py::TestSigningVerification::test_signature_verifies": 0.08412409099992146, - "tests/test_custody.py::TestSigningVerification::test_tampered_data_fails": 0.06871288399997866, - "tests/test_custody.py::TestSoftwareCryptoBackend::test_fingerprint_is_16_hex": 0.09267179400012537, - "tests/test_custody.py::TestSoftwareCryptoBackend::test_key_file_created": 0.07885728699989158, - "tests/test_custody.py::TestSoftwareCryptoBackend::test_public_key_pem_format": 0.06767203200001859, - "tests/test_custody.py::TestSoftwareCryptoBackend::test_reloaded_key_matches": 0.09825865799984967, - "tests/test_custody.py::TestSoftwareCryptoBackend::test_serial_starts_with_syn": 0.07923265099998389, - "tests/test_custody.py::TestSoftwareCryptoBackend::test_signing_mode_is_software": 0.17704745399987587, - "tests/test_custody_routes.py::TestCustodyChainEntry::test_rolling_cap": 0.2038766589998886, - "tests/test_custody_routes.py::TestCustodyChainEntry::test_submit_entry": 0.19590045000018108, - "tests/test_custody_routes.py::TestCustodyChainEntry::test_submit_entry_no_auth": 0.20091864899995926, - "tests/test_custody_routes.py::TestCustodyChainEntryVerification::test_chain_entry_with_registered_key_exception_path": 0.20468544300001668, - "tests/test_custody_routes.py::TestCustodyChainEntryVerification::test_chain_node_with_identity_returns_identity_dict": 0.20471380899994074, - "tests/test_custody_routes.py::TestCustodyIqCommitment::test_rolling_cap": 0.20663739400015402, - "tests/test_custody_routes.py::TestCustodyIqCommitment::test_submit_commitment": 0.20979715999988002, - "tests/test_custody_routes.py::TestCustodyIqCommitment::test_submit_no_auth": 0.2317587420000109, - "tests/test_custody_routes.py::TestCustodyRead::test_chain_not_found": 0.17955195100012133, - "tests/test_custody_routes.py::TestCustodyRead::test_status_empty": 0.21993326799997703, - "tests/test_custody_routes.py::TestCustodyRead::test_verify_not_found": 0.19263563599997724, - "tests/test_custody_routes.py::TestCustodyRegister::test_register_empty_node_id": 0.2275538010001128, - "tests/test_custody_routes.py::TestCustodyRegister::test_register_missing_node_id": 0.22663804800004073, - "tests/test_custody_routes.py::TestCustodyRegister::test_register_no_api_key": 0.21087267600000814, - "tests/test_custody_routes.py::TestCustodyRegister::test_register_success": 0.21272677499996462, - "tests/test_custody_routes.py::TestCustodyRegister::test_register_wrong_api_key": 0.19173288800016053, - "tests/test_custody_routes.py::TestCustodyVerifyChain::test_verify_chain_exception_returns_500": 0.1982963360001122, - "tests/test_custody_routes.py::TestCustodyVerifyChain::test_verify_chain_no_public_key_returns_400": 0.19603018199995859, - "tests/test_dark_follow.py::TestAnchorDeadReckoning::test_dead_reckoning_honours_it": 0.08589589399980468, - "tests/test_dark_follow.py::TestAnchorDeadReckoning::test_dead_reckoning_still_refuses_a_far_solve": 0.058365064000099665, - "tests/test_dark_follow.py::TestAnchorDeadReckoning::test_the_flat_gate_refuses_a_fast_anchor": 0.05014587400023629, - "tests/test_dark_follow.py::TestClaiming::test_a_caller_that_cannot_take_the_split_gets_no_path_3": 0.06902343200022187, - "tests/test_dark_follow.py::TestClaiming::test_a_matching_detection_is_claimed_and_a_stray_is_not": 0.09745740599987585, - "tests/test_dark_follow.py::TestClaiming::test_a_stale_track_claims_nothing": 0.08130595900001936, - "tests/test_dark_follow.py::TestClaiming::test_adsb_wins_a_contested_detection": 0.10869224400016719, - "tests/test_dark_follow.py::TestClaiming::test_off_mode_claims_nothing": 0.08742938300019887, - "tests/test_dark_follow.py::TestFollowPass::test_a_node_with_no_config_is_dropped_not_the_key": 0.07468534399981763, - "tests/test_dark_follow.py::TestFollowPass::test_a_single_node_is_not_enough": 0.07139820600013991, - "tests/test_dark_follow.py::TestFollowPass::test_no_newer_claim_is_no_new_solve": 0.06436657600011131, - "tests/test_dark_follow.py::TestFollowPass::test_off_mode_does_nothing": 0.0622069300000021, - "tests/test_dark_follow.py::TestFollowPass::test_shadow_classifies_a_displaced_solve_as_not_ok": 0.06927067699962208, - "tests/test_dark_follow.py::TestFollowPass::test_shadow_records_and_never_publishes": 0.18150846800017462, - "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[False-binding]": 0.0593596900000648, - "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[False-shadow]": 0.05479740800001309, - "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[True-binding]": 0.05685714400010511, - "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[True-shadow]": 0.06324464300018917, - "tests/test_dark_follow.py::TestFollowPass::test_the_adsb_pass_ignores_follow_claims": 0.07535382899982324, - "tests/test_dark_follow.py::TestFollowPass::test_the_rate_limit_holds_between_passes": 0.05902934499999901, - "tests/test_dark_follow.py::TestFollowPass::test_three_nodes_produce_one_anchored_queue_item": 0.06317715600016527, - "tests/test_dark_follow.py::TestGateSigmaClamp::test_a_manoeuvre_sigma_gates_exactly_like_the_ceiling": 0.06831414999987828, - "tests/test_dark_follow.py::TestGateSigmaClamp::test_a_normal_target_is_untouched": 0.07519630500041785, - "tests/test_dark_follow.py::TestGateSigmaClamp::test_the_clamp_is_what_narrows_it": 0.06640167499995187, - "tests/test_dark_follow.py::TestGhostGuard::test_a_good_solve_clears_the_streak": 0.10678091399995537, - "tests/test_dark_follow.py::TestGhostGuard::test_a_published_record_counts_and_clears": 0.05542176299991297, - "tests/test_dark_follow.py::TestGhostGuard::test_a_withheld_record_does_not_clear_an_existing_streak": 0.06372950299987679, - "tests/test_dark_follow.py::TestGhostGuard::test_an_n2_unconfirmed_record_is_withheld_not_charged": 0.07743126399986977, - "tests/test_dark_follow.py::TestGhostGuard::test_rejected_history_records_feed_the_guard": 0.07549297700006719, - "tests/test_dark_follow.py::TestGhostGuard::test_the_cooldown_expires": 0.06778675299983661, - "tests/test_dark_follow.py::TestGhostGuard::test_two_rejected_solves_drop_the_key": 0.07870404499976758, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_a_noisy_velocity_is_counted_by_reason": 0.07712085399998614, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_a_stale_track_is_counted_as_age": 0.06659907099992779, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_an_adsb_key_is_not_in_the_population_at_all": 0.06587482999998429, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_an_eligible_key_bumps_nothing": 0.07172036899987688, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_each_gate_has_its_own_counter[dark_follow_inelig_min_nodes-kwargs2]": 0.07763371300029576, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_each_gate_has_its_own_counter[dark_follow_inelig_min_solves-kwargs1]": 0.059420244999955685, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_each_gate_has_its_own_counter[dark_follow_inelig_no_pos-kwargs0]": 0.05336088700005348, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_no_filter_state_is_counted": 0.06420630999991772, - "tests/test_dark_follow.py::TestIneligibilityCounters::test_the_cooldown_a_drop_starts_is_counted_on_the_next_rebuild": 0.07971590200008905, - "tests/test_dark_follow.py::TestKeyOwnership::test_a_solve_further_out_mints_rather_than_joining": 0.06072466499995244, - "tests/test_dark_follow.py::TestKeyOwnership::test_a_solve_next_to_a_freshly_followed_key_is_shadowed": 0.053656824999734454, - "tests/test_dark_follow.py::TestKeyOwnership::test_an_n2_solve_cannot_join_a_followed_n3_key": 0.06936002900010863, - "tests/test_dark_follow.py::TestKeyOwnership::test_ownership_expires": 0.09644706799986125, - "tests/test_dark_follow.py::TestKeyOwnership::test_the_follow_lanes_own_solve_still_lands_on_its_key": 0.07636809699988589, - "tests/test_dark_follow.py::TestKeyOwnership::test_the_inert_modes_key_exactly_as_before[off]": 0.05655267599991021, - "tests/test_dark_follow.py::TestKeyOwnership::test_the_inert_modes_key_exactly_as_before[shadow]": 0.06620120799993856, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_fresh_episode_is_budgeted_from_its_first_rebuild": 0.06819336199987447, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_key_that_is_not_manoeuvring_is_still_dropped": 0.06393597000010232, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_manoeuvring_key_is_kept_over_the_ceiling": 0.06593672199983303, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_sigma_past_the_hard_ceiling_is_dropped_mid_manoeuvre": 0.06649713499996324, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_the_reprieve_expires_after_keep_max_s": 0.057893817999911334, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_the_target_carries_the_real_sigma_not_the_clamped_one": 0.07486154699995495, - "tests/test_dark_follow.py::TestManoeuvreReprieve::test_the_two_reject_drop_still_applies_to_a_kept_key": 0.06087450800032457, - "tests/test_dark_follow.py::TestModesInProcessOneFrame::test_binding_strips_the_followed_detection": 0.11553441199998815, - "tests/test_dark_follow.py::TestModesInProcessOneFrame::test_shadow_leaves_the_frame_whole": 0.14670471500016902, - "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_a_third_node_is_unaffected": 0.07235229799994158, - "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_the_skipped_key_keeps_its_target_status": 0.16806715199982136, - "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_two_nodes_are_enqueued_when_the_bypass_is_on": 0.0449544280002101, - "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_two_nodes_are_not_enqueued_when_the_bypass_is_off": 0.05803066599992235, - "tests/test_dark_follow.py::TestPseudoStates::test_a_key_that_was_never_wide_is_not_a_target": 0.06197991100020772, - "tests/test_dark_follow.py::TestPseudoStates::test_a_narrow_last_solve_on_a_wide_key_is_still_a_target": 0.05674954199980675, - "tests/test_dark_follow.py::TestPseudoStates::test_a_noisy_velocity_drops_the_key": 0.07555222000019057, - "tests/test_dark_follow.py::TestPseudoStates::test_a_stale_track_is_not": 0.05214044200010903, - "tests/test_dark_follow.py::TestPseudoStates::test_an_adsb_key_is_never_followed": 0.07668504700018275, - "tests/test_dark_follow.py::TestPseudoStates::test_an_established_track_is_a_target": 0.05588979999970434, - "tests/test_dark_follow.py::TestPseudoStates::test_no_filter_state_is_not": 0.06593745000009221, - "tests/test_dark_follow.py::TestPseudoStates::test_off_mode_has_no_targets": 0.06959527799995158, - "tests/test_dark_follow.py::TestPseudoStates::test_too_few_nodes_is_not": 0.05767407300004379, - "tests/test_dark_follow.py::TestPseudoStates::test_too_few_solves_is_not": 0.05695833200002198, - "tests/test_dark_follow.py::TestShadowedSolveIsARejection::test_a_solve_the_lane_does_not_own_still_publishes": 0.05444536599975436, - "tests/test_dark_follow.py::TestShadowedSolveIsARejection::test_refusals_never_reach_the_follow_ghost_guard": 0.07677302599995528, - "tests/test_dark_follow.py::TestShadowedSolveIsARejection::test_the_solve_is_recorded_counted_and_not_published": 0.0670882559995789, - "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_no_shared_tracks_still_mints": 0.054359604000183026, - "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_one_shared_track_shadows_beyond_the_shadow_radius": 0.0567130960000668, - "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_shared_tracks_do_not_widen_the_gate": 0.07906741299984787, - "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_stale_shared_ids_do_not_count": 0.11016163799990863, - "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_two_shared_tracks_join_the_followed_key": 0.06559124399996108, - "tests/test_dark_key_track_continuity.py::TestOrdinaryCandidates::test_a_track_sharing_key_beats_a_nearer_stranger": 0.09768298700009836, - "tests/test_dark_key_track_continuity.py::TestOrdinaryCandidates::test_an_out_of_gate_sharer_is_not_joined": 0.058777115999873786, - "tests/test_dark_key_track_continuity.py::TestOrdinaryCandidates::test_without_shared_ids_the_nearer_key_still_wins": 0.058797147999939625, - "tests/test_dark_key_track_continuity.py::TestRecentTrackIdMemory::test_a_missing_or_malformed_memory_is_not_a_crash": 0.07011890800004039, - "tests/test_dark_key_track_continuity.py::TestRecentTrackIdMemory::test_ids_merge_across_writes_and_prune_by_age": 0.1223205119999875, - "tests/test_dark_key_track_continuity.py::TestRecentTrackIdMemory::test_the_memory_is_capped": 0.1946434080000472, - "tests/test_deploy_scope.py::test_a_comment_beside_a_change_in_one_file_deploys": 0.9037461759996859, - "tests/test_deploy_scope.py::test_a_comment_beside_a_typescript_change_deploys": 0.8979913729997406, - "tests/test_deploy_scope.py::test_a_deleted_module_deploys": 0.784291015000008, - "tests/test_deploy_scope.py::test_a_dropped_noqa_is_inert": 0.8814686299999721, - "tests/test_deploy_scope.py::test_a_file_that_will_not_parse_deploys[after]": 0.8639083050002228, - "tests/test_deploy_scope.py::test_a_file_that_will_not_parse_deploys[before]": 0.7891423600003691, - "tests/test_deploy_scope.py::test_a_mode_change_deploys": 0.8248092510000333, - "tests/test_deploy_scope.py::test_a_module_that_became_markdown_deploys": 0.7809173479997753, - "tests/test_deploy_scope.py::test_a_new_module_deploys": 0.7896026900000379, - "tests/test_deploy_scope.py::test_a_renamed_local_deploys": 0.8815467880001506, - "tests/test_deploy_scope.py::test_a_requirements_change_deploys": 0.7932863939997787, - "tests/test_deploy_scope.py::test_a_requoted_string_is_inert": 0.8468448910002735, - "tests/test_deploy_scope.py::test_a_retargeted_symlink_deploys": 0.749204189000011, - "tests/test_deploy_scope.py::test_a_reworded_comment_is_inert": 0.897326208999857, - "tests/test_deploy_scope.py::test_a_submodule_bump_deploys": 0.8446166069998071, - "tests/test_deploy_scope.py::test_an_edited_docstring_deploys": 0.9046094690002064, - "tests/test_deploy_scope.py::test_an_empty_diff_deploys": 0.6749095340001077, - "tests/test_deploy_scope.py::test_an_undiffable_base_deploys[no-base]": 0.6840378000001692, - "tests/test_deploy_scope.py::test_an_undiffable_base_deploys[unknown-base]": 0.7831697410001652, - "tests/test_deploy_scope.py::test_markdown_alone_is_inert": 0.9711901950001902, - "tests/test_deploy_scope.py::test_markdown_under_a_public_directory_deploys[dashboard/public/help.md]": 0.7905124760000035, - "tests/test_deploy_scope.py::test_markdown_under_a_public_directory_deploys[public/help.md]": 0.7889345590003813, - "tests/test_deploy_scope.py::test_reformatting_is_inert[trailing-blank-lines]": 0.9432705639999313, - "tests/test_deploy_scope.py::test_reformatting_is_inert[trailing-whitespace]": 0.8923545750001267, - "tests/test_deploy_scope.py::test_reformatting_is_inert[wrapped-with-a-magic-trailing-comma]": 0.9762984010001219, - "tests/test_deploy_workflows.py::test_a_stale_marker_refuses_the_deploy_before_the_rollback_point_is_taken[production]": 0.2967124460001287, - "tests/test_deploy_workflows.py::test_a_stale_marker_refuses_the_deploy_before_the_rollback_point_is_taken[staging]": 0.5270635350000248, - "tests/test_deploy_workflows.py::test_a_stale_marker_refuses_the_deploy_before_the_rollback_point_is_taken[test]": 0.10195333899991965, - "tests/test_deploy_workflows.py::test_marker_is_cleared_only_once_the_app_answers[production]": 0.2485811270000795, - "tests/test_deploy_workflows.py::test_marker_is_cleared_only_once_the_app_answers[staging]": 0.1881260300001486, - "tests/test_deploy_workflows.py::test_marker_is_cleared_only_once_the_app_answers[test]": 0.12057863499990162, - "tests/test_deploy_workflows.py::test_marker_is_written_after_the_rollback_point_and_before_anything_moves[production]": 0.384810577999815, - "tests/test_deploy_workflows.py::test_marker_is_written_after_the_rollback_point_and_before_anything_moves[staging]": 0.10421900400024242, - "tests/test_deploy_workflows.py::test_marker_is_written_after_the_rollback_point_and_before_anything_moves[test]": 0.1074431359998016, - "tests/test_deploy_workflows.py::test_nothing_between_the_marker_write_and_the_tree_move_can_refuse[production]": 0.26424214500002563, - "tests/test_deploy_workflows.py::test_nothing_between_the_marker_write_and_the_tree_move_can_refuse[staging]": 0.11252555100031714, - "tests/test_deploy_workflows.py::test_nothing_between_the_marker_write_and_the_tree_move_can_refuse[test]": 0.11739470200018332, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-pull_request-refs/heads/main]": 0.25591322499985836, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-pull_request-refs/heads/topic]": 0.17978848899997502, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-pull_request-refs/pull/417/merge]": 0.13658726399989973, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-push-refs/heads/main]": 0.23866690400018342, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-push-refs/heads/topic]": 0.2260771459998523, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-push-refs/pull/417/merge]": 0.31692008699974394, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-workflow_dispatch-refs/heads/main]": 0.18410134300006575, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-workflow_dispatch-refs/heads/topic]": 0.2060762110002088, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-workflow_dispatch-refs/pull/417/merge]": 0.25598276200003056, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-pull_request-refs/heads/main]": 0.31306301099994016, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-pull_request-refs/heads/topic]": 0.2916390909999791, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-pull_request-refs/pull/417/merge]": 0.32502323100038666, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-push-refs/heads/main]": 0.269591347999949, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-push-refs/heads/topic]": 0.24775764499986508, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-push-refs/pull/417/merge]": 0.37941310400015027, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-workflow_dispatch-refs/heads/main]": 0.31257728499986115, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-workflow_dispatch-refs/heads/topic]": 0.38752883400024984, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-workflow_dispatch-refs/pull/417/merge]": 0.3120334519996959, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-pull_request-refs/heads/main]": 0.2631054280000171, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-pull_request-refs/heads/topic]": 0.29239061099974606, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-pull_request-refs/pull/417/merge]": 0.21949599999993552, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-push-refs/heads/main]": 0.24503084300022238, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-push-refs/heads/topic]": 0.22012271900007363, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-push-refs/pull/417/merge]": 0.28536080899993976, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-workflow_dispatch-refs/heads/main]": 0.23123012099995321, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-workflow_dispatch-refs/heads/topic]": 0.23563292899984845, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-workflow_dispatch-refs/pull/417/merge]": 0.24032086700003674, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-pull_request-refs/heads/main]": 0.34126967099973626, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-pull_request-refs/heads/topic]": 0.2952862549998372, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-pull_request-refs/pull/417/merge]": 0.3312786839999262, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-push-refs/heads/main]": 0.3725015830000302, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-push-refs/heads/topic]": 0.36261959399985244, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-push-refs/pull/417/merge]": 0.2571033010001429, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-workflow_dispatch-refs/heads/main]": 0.2625848469997436, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-workflow_dispatch-refs/heads/topic]": 0.22025749999988875, - "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-workflow_dispatch-refs/pull/417/merge]": 0.25345937200017943, - "tests/test_deploy_workflows.py::test_rollback_job_reads_back_what_the_deploy_wrote[production]": 0.732049305999908, - "tests/test_deploy_workflows.py::test_rollback_job_reads_back_what_the_deploy_wrote[staging]": 0.22250826900017273, - "tests/test_deploy_workflows.py::test_rollback_job_reads_back_what_the_deploy_wrote[test]": 0.2018747499996607, - "tests/test_deploy_workflows.py::test_the_stack_stays_up_until_the_new_image_exists[production]": 0.23270889800028272, - "tests/test_deploy_workflows.py::test_the_stack_stays_up_until_the_new_image_exists[staging]": 0.09913117999963106, - "tests/test_deploy_workflows.py::test_the_stack_stays_up_until_the_new_image_exists[test]": 0.08120379300021341, - "tests/test_detection_mirror.py::TestBatchCarriesTheRef::test_a_node_with_no_ref_sends_none_rather_than_a_null": 0.055720971000255304, - "tests/test_detection_mirror.py::TestBatchCarriesTheRef::test_a_registered_node_sends_its_ref": 0.05787253099992995, - "tests/test_detection_mirror.py::test_a_batch_that_builds_empty_is_not_posted_and_is_counted": 0.13246581299995341, - "tests/test_detection_mirror.py::test_a_duplicate_host_refuses_to_arm": 0.06655902800002877, - "tests/test_detection_mirror.py::test_a_failed_batch_counts_frames_not_batches": 0.06651366400024017, - "tests/test_detection_mirror.py::test_a_failing_drain_or_build_does_not_kill_the_task": 0.1634351110001262, - "tests/test_detection_mirror.py::test_a_failing_target_is_named_in_the_log_line_and_the_event": 0.08115470600000663, - "tests/test_detection_mirror.py::test_a_full_queue_drops_rather_than_raising": 0.05810062399996241, - "tests/test_detection_mirror.py::test_a_hung_target_does_not_hold_the_others_back": 0.08426592199975858, - "tests/test_detection_mirror.py::test_a_mixed_drain_counts_the_departed_node_while_sending_the_survivor": 0.09975158900010683, - "tests/test_detection_mirror.py::test_a_non_https_url_refuses_to_arm": 0.08245778899959078, - "tests/test_detection_mirror.py::test_a_partial_landing_credits_only_what_arrived": 0.07557484400012981, - "tests/test_detection_mirror.py::test_a_receiver_that_queues_nothing_is_a_failure_not_a_success": 0.069952445999661, - "tests/test_detection_mirror.py::test_a_refusing_receiver_is_counted_not_raised": 0.0618989390002298, - "tests/test_detection_mirror.py::test_a_saturated_queue_logs_its_own_line_throttled": 0.05931125400002202, - "tests/test_detection_mirror.py::test_a_single_target_still_arms_as_before": 0.08403999500001191, - "tests/test_detection_mirror.py::test_an_empty_key_entry_sends_that_receiver_no_key": 0.10773838400018576, - "tests/test_detection_mirror.py::test_an_empty_url_entry_refuses_to_arm": 0.06399892800004636, - "tests/test_detection_mirror.py::test_an_unreachable_receiver_is_counted_not_raised": 0.06584064000003309, - "tests/test_detection_mirror.py::test_an_unusable_response_is_a_failure_not_a_silent_success[missing-frames-queued]": 0.15143679299967516, - "tests/test_detection_mirror.py::test_an_unusable_response_is_a_failure_not_a_silent_success[non-json-body]": 0.07750246499972491, - "tests/test_detection_mirror.py::test_armed_offer_queues_the_frame": 0.060468771000159904, - "tests/test_detection_mirror.py::test_arming_clears_the_counters": 0.06862675000002127, - "tests/test_detection_mirror.py::test_batch_carries_position_tags_in_the_pipeline_shape": 0.05858871499981433, - "tests/test_detection_mirror.py::test_batch_groups_by_node_and_carries_config": 0.09292493199973251, - "tests/test_detection_mirror.py::test_batch_skips_a_node_whose_config_left_the_registry": 0.14517039699967427, - "tests/test_detection_mirror.py::test_comma_separated_targets_are_trimmed": 0.19529205899971203, - "tests/test_detection_mirror.py::test_configure_from_env_resets_health_state": 0.05210481499989328, - "tests/test_detection_mirror.py::test_each_target_receives_the_same_batch_with_its_own_key": 0.06344719300000179, - "tests/test_detection_mirror.py::test_mismatched_url_and_key_counts_refuse_to_arm[more-keys-than-urls]": 0.06708889900005488, - "tests/test_detection_mirror.py::test_mismatched_url_and_key_counts_refuse_to_arm[more-urls-than-keys]": 0.05454222700018363, - "tests/test_detection_mirror.py::test_mismatched_url_and_key_counts_refuse_to_arm[two-urls-no-key]": 0.06253775100003622, - "tests/test_detection_mirror.py::test_offer_holds_the_wire_model_not_a_converted_dict": 0.05774507299997822, - "tests/test_detection_mirror.py::test_offer_is_a_no_op_when_unarmed": 0.10027801000001091, - "tests/test_detection_mirror.py::test_one_failing_target_leaves_the_other_healthy_and_credited": 0.10153253400017093, - "tests/test_detection_mirror.py::test_one_http_url_refuses_the_whole_configuration": 0.049885788000210596, - "tests/test_detection_mirror.py::test_send_posts_the_bulk_shape_with_the_key": 0.0645032429999901, - "tests/test_detection_mirror.py::test_the_lifespan_arms_the_mirror_and_starts_its_task": 0.20541956799979744, - "tests/test_detection_mirror.py::test_the_task_fans_one_drain_out_to_every_target": 0.08323695099988981, - "tests/test_detection_mirror.py::test_the_task_returns_at_once_when_unarmed": 0.08013418599989564, - "tests/test_detection_mirror.py::test_unset_url_leaves_the_mirror_unarmed": 0.0836892600000283, - "tests/test_digitalocean_client.py::test_aclose_closes_the_pool": 0.058204132999890135, - "tests/test_digitalocean_client.py::test_droplet_tag_defaults": 0.06276817900015885, - "tests/test_digitalocean_client.py::test_get_json_refuses_without_token": 0.05917983899985302, - "tests/test_digitalocean_client.py::test_get_json_sends_the_bearer_per_request_and_raises_on_status": 0.05552828200006843, - "tests/test_digitalocean_client.py::test_token_is_read_per_call": 0.06651530799990724, - "tests/test_digitalocean_client.py::test_wrappers_unwrap_the_envelope": 0.05964438599994537, - "tests/test_e2e_pipeline.py::TestBackgroundFrameLoop::test_loop_drains_queue_and_increments_counter[asyncio]": 0.1680120999999417, - "tests/test_e2e_pipeline.py::TestBackgroundFrameLoop::test_loop_promotes_track_to_active[asyncio]": 0.25379632299996047, - "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_extra_frames_beyond_n_window_do_not_reset_track": 0.22892364599988468, - "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_first_frame_creates_tentative_track": 0.06749259999969581, - "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_m_of_n_frames_promote_track_to_active": 0.17419151999979476, - "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_node_registered_in_analytics_after_frames": 0.07092356199996175, - "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_promoted_track_appears_in_event_writer": 0.30451931299990065, - "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_promoted_track_has_stable_id": 0.291379920999816, - "tests/test_e2e_pipeline.py::TestFullE2E::test_handshake_order_enforced": 0.060173042000315036, - "tests/test_e2e_pipeline.py::TestFullE2E::test_node_registered_in_state_after_handshake": 0.06998799599978156, - "tests/test_e2e_pipeline.py::TestFullE2E::test_node_status_disconnected_after_eof": 0.07943847299998197, - "tests/test_e2e_pipeline.py::TestFullE2E::test_tcp_frames_flow_through_to_active_track": 0.2521725300000526, - "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_analytics_refresh_includes_node_after_processing": 0.29459067599987065, - "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_leaderboard_includes_node_with_detections": 0.3492121170002065, - "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_missed_detections_computed_for_node": 0.2627388310002061, - "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_storage_endpoint_disk_fields": 0.05623766299959243, - "tests/test_e2e_pipeline.py::TestGeolocationAfterPromotion::test_adsb_track_populates_active_geo_aircraft": 0.694100841999898, - "tests/test_e2e_pipeline.py::TestGeolocationAfterPromotion::test_geolocation_attempted_after_promotion": 0.5705835139999635, - "tests/test_e2e_pipeline.py::TestGeolocationAfterPromotion::test_non_adsb_track_geo_attempted": 0.5232779540001502, - "tests/test_e2e_pipeline.py::TestRegressions::test_frame_without_timestamp_is_rejected": 0.06523343600019871, - "tests/test_e2e_pipeline.py::TestRegressions::test_malformed_json_does_not_crash_handler": 0.09600479700020514, - "tests/test_e2e_pipeline.py::TestRegressions::test_non_finite_adsb_coords_skipped_in_enqueue": 0.07745605399986744, - "tests/test_e2e_pipeline.py::TestRegressions::test_pipeline_does_not_share_state_across_nodes": 0.4148670309998579, - "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_config_ack_sent_before_any_frame": 0.07102297399978852, - "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_invalid_config_sends_nack_and_rejects_node": 0.05892216699999153, - "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_queue_full_increments_drop_counter": 0.060034524999991845, - "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_rate_limiter_disabled_enqueues_all": 0.06832365900004334, - "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_rate_limiter_drops_rapid_duplicates": 0.05968641499998739, - "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_single_detection_lands_in_queue": 0.06267381699990437, - "tests/test_email_address.py::test_addresses_are_accepted[ADA@EXAMPLE.COM]": 0.055574902999978804, - "tests/test_email_address.py::test_addresses_are_accepted[a@b.co]": 0.11391028400021241, - "tests/test_email_address.py::test_addresses_are_accepted[ada.lovelace+nodes@example.co.uk]": 0.06717296800024997, - "tests/test_email_address.py::test_addresses_are_accepted[ada@example.com]": 0.08100948500009508, - "tests/test_email_address.py::test_non_addresses_are_refused[ ada@example.com-leading space]": 0.06117458800008535, - "tests/test_email_address.py::test_non_addresses_are_refused[-empty]": 0.05914747399992848, - "tests/test_email_address.py::test_non_addresses_are_refused[@example.com-no local part]": 0.06089838800016878, - "tests/test_email_address.py::test_non_addresses_are_refused[ada @example.com-inner space]": 0.05330247100005181, - "tests/test_email_address.py::test_non_addresses_are_refused[ada example.com-no at sign]": 0.0609870860000683, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@-no domain]": 0.0705439060000117, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@.com-empty leading label]": 0.06642992500019318, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@@example.com-two at signs]": 0.05971832800014454, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@example.-empty trailing label]": 0.07201137599986396, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@example.com -trailing space]": 0.059014229000013074, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@example@com-at sign in the domain]": 0.06054627699995763, - "tests/test_email_address.py::test_non_addresses_are_refused[ada@localhost-single-label domain]": 0.0550315100001626, - "tests/test_email_address.py::test_non_addresses_are_refused[ada\\n@example.com-newline]": 0.07464337800001886, - "tests/test_email_address.py::test_non_addresses_are_refused[ada\\t@example.com-tab]": 0.054588240999919435, - "tests/test_email_address.py::test_the_bound_matches_the_column_the_two_tables_share": 0.0767385220003689, - "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_access_audience_may_differ_per_environment[staging]": 0.050769874000025084, - "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_access_audience_may_differ_per_environment[test]": 0.06262495800001489, - "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_anonymous_admin_flag_may_never_differ[staging]": 0.02491816899987498, - "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_anonymous_admin_flag_may_never_differ[test]": 0.03294230000005882, - "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[staging-networks.retina-edge.external]": 0.055943038000123124, - "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[staging-services.server.networks.retina-edge]": 0.06760043100007351, - "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[test-networks.retina-edge.external]": 0.08514067999999497, - "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[test-services.server.networks.retina-edge]": 0.07932819300003757, - "tests/test_env_parity_scoping.py::TestMailTransport::test_staging_may_not": 0.029272169000023496, - "tests/test_env_parity_scoping.py::TestMailTransport::test_the_sender_identity_may_never_differ": 0.028907682999943063, - "tests/test_env_parity_scoping.py::TestMailTransport::test_the_test_droplet_may_diverge": 0.02768051699968055, - "tests/test_env_parity_scoping.py::TestScopeValidation::test_scoping_to_the_reference_is_rejected": 0.02983317100029126, - "tests/test_env_parity_scoping.py::TestScopeValidation::test_unknown_environment_is_rejected": 0.026752543999919, - "tests/test_env_parity_scoping.py::TestScoping::test_non_matching_path_is_never_allowed": 0.07354723299999932, - "tests/test_env_parity_scoping.py::TestScoping::test_scoped_entry_applies_only_to_its_own_environment": 0.04643134200023269, - "tests/test_env_parity_scoping.py::TestScoping::test_unscoped_entry_applies_to_every_environment": 0.05735078800012161, - "tests/test_epoch_alignment.py::TestProcessSolverItemWiring::test_flag_off_leaves_the_input_untouched": 0.019728387000213843, - "tests/test_epoch_alignment.py::TestProcessSolverItemWiring::test_flag_on_hands_the_solver_aligned_delays": 0.015817687999970076, - "tests/test_epoch_alignment.py::TestPureHelper::test_each_delay_moves_by_its_own_doppler_rate": 0.033783466999921075, - "tests/test_epoch_alignment.py::TestPureHelper::test_fc_spelled_FC_is_accepted": 0.0185715889997482, - "tests/test_epoch_alignment.py::TestPureHelper::test_input_is_not_mutated": 0.02202083799988941, - "tests/test_epoch_alignment.py::TestPureHelper::test_newest_measurement_is_the_epoch_and_is_untouched": 0.03660819200013066, - "tests/test_epoch_alignment.py::TestPureHelper::test_single_measurement_input_is_a_no_op": 0.021453457000234266, - "tests/test_epoch_alignment.py::TestPureHelper::test_timestamp_ms_is_restamped_to_the_epoch": 0.027561486999729823, - "tests/test_epoch_alignment.py::TestPureHelper::test_zero_doppler_measurement_is_unchanged": 0.020117111999979898, - "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_alignment_moves_the_stale_delay_toward_the_truth[vel_kms0]": 0.02143094000007295, - "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_alignment_moves_the_stale_delay_toward_the_truth[vel_kms1]": 0.017686644999685086, - "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_alignment_moves_the_stale_delay_toward_the_truth[vel_kms2]": 0.02057732599996598, - "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_correction_and_truth_share_a_sign": 0.021002953000333946, - "tests/test_epoch_alignment.py::TestSkipPath::test_missing_field_skips_the_whole_input[broken0]": 0.024725839000211636, - "tests/test_epoch_alignment.py::TestSkipPath::test_missing_field_skips_the_whole_input[broken1]": 0.025871158999962063, - "tests/test_epoch_alignment.py::TestSkipPath::test_missing_t_s_key_entirely_skips": 0.029920539999693574, - "tests/test_epoch_alignment.py::TestSkipPath::test_unknown_node_config_skips": 0.03183884600002784, - "tests/test_external_adsb_units.py::test_a_non_numeric_ground_speed_becomes_unknown_rather_than_raising": 0.02378167199958625, - "tests/test_external_adsb_units.py::test_adsb_lol_ground_speed_is_converted_from_knots": 0.017567340999903536, - "tests/test_external_adsb_units.py::test_both_feeds_agree_on_one_aircrafts_speed": 0.037454778999972405, - "tests/test_external_adsb_units.py::test_opensky_velocity_is_stored_unconverted": 0.020138462999966578, - "tests/test_feed_gc_task.py::TestGCWithoutAFeedBuild::test_feed_gc_is_in_the_staleness_registry": 0.020353893000219614, - "tests/test_feed_gc_task.py::TestGCWithoutAFeedBuild::test_stale_arc_motion_is_pruned_by_the_task_body": 0.019530734999989363, - "tests/test_feed_gc_task.py::TestGCWithoutAFeedBuild::test_the_loop_reports_success_to_the_task_registry": 0.023731928999723095, - "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_assisted_entry_keeps_its_longer_lane_expiry": 0.026978188000384762, - "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_fresh_dark_entry_is_kept": 0.024068877999980032, - "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_pruning_twice_is_idempotent": 0.022699956999758797, - "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_stale_dark_entry_is_popped_and_its_anomaly_hex_discarded": 0.023220412999990003, - "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_the_task_body_runs_the_multinode_expiry_too": 0.021248743999649378, - "tests/test_feed_history_snapshot.py::test_arc_builder_survives_a_concurrently_appended_history": 0.6288505080001414, - "tests/test_feed_multinode.py::TestAdsbAssistedLane::test_adsb_keyed_entry_is_assisted_and_carries_the_hex": 0.017462570000134292, - "tests/test_feed_multinode.py::TestAdsbAssistedLane::test_dark_keyed_entry_is_not_assisted_and_has_no_hex": 0.016626781000240953, - "tests/test_feed_multinode.py::TestAdsbAssistedLane::test_result_adsb_hex_does_not_override_a_dark_key": 0.017571383999893442, - "tests/test_feed_multinode.py::TestGsSource::test_kf_entry_gs_uses_learned_velocity_by_default": 0.01929011300012462, - "tests/test_feed_multinode.py::TestGsSource::test_no_kf_entry_uses_solve_velocity": 0.01927002800016453, - "tests/test_feed_multinode.py::TestGsSource::test_track_gs_source_solve_restores_old_behaviour": 0.01936881300002824, - "tests/test_feed_multinode.py::TestGsSource::test_vel_untrusted_active_mode_drops_solve_sourced_gs_track": 0.017407859000059034, - "tests/test_feed_multinode.py::TestGsSource::test_vel_untrusted_active_mode_keeps_kf_sourced_gs_track": 0.02385088200003338, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_assisted_entry_past_the_cap_holds_its_dead_reckoned_point": 0.05810816699977295, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_dr_horizon_is_capped_at_mn_dr_cap_s": 0.01712020099989786, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_fresh_entry_is_dead_reckoned_fully": 0.018625596999982008, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_solve_epoch_position_equals_the_fix_at_zero_age": 0.018515952999905494, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_solve_epoch_position_is_published_undead_reckoned": 0.016340392000074644, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonSource::test_kf_entry_dr_uses_learned_velocity_by_default": 0.020412489999898753, - "tests/test_feed_multinode.py::TestMultinodeDeadReckonSource::test_track_dr_source_solve_restores_old_behaviour": 0.021356136999884257, - "tests/test_feed_multinode.py::TestMultinodeEntryFailureIsolation::test_one_raising_entry_does_not_abort_the_build": 0.02204190199995537, - "tests/test_feed_multinode.py::TestMultinodeEntryFailureIsolation::test_repeated_failures_are_rate_limited_to_one_log_line": 0.017439525000327194, - "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_assisted_entry_at_the_same_age_survives": 0.01862261400015086, - "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_assisted_entry_still_expires_at_60s": 0.01794511500020235, - "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_dark_entry_inside_the_dark_expiry_is_rendered": 0.047024979000070743, - "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_dark_entry_past_the_dark_expiry_is_dropped": 0.028771583999969153, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_dark_lane_gets_the_dark_floor_and_the_known_lane_does_not": 0.017602166999949986, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_formal_sigma_widens_the_disc": 0.017393284000036147, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_kf_state_supplies_the_velocity_sigma": 0.017962418000024627, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_known_lane_n2_entry_carries_the_bare_floor": 0.01691481000011663, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_no_kf_state_uses_the_default_velocity_sigma": 0.017074112000045716, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_result_adsb_hex_does_not_soften_a_dark_key": 0.017713009999852147, - "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_solve_epoch_position_rides_along_with_the_sigma": 0.017612104999898293, - "tests/test_feed_multinode.py::TestVelTrustDisplay::test_trusted_active_mode_keeps_gs_track_no_flag": 0.01850595799965049, - "tests/test_feed_multinode.py::TestVelTrustDisplay::test_untrusted_active_mode_drops_gs_track": 0.01737691000016639, - "tests/test_feed_multinode.py::TestVelTrustDisplay::test_untrusted_default_env_keeps_gs_track": 0.018051382000294325, - "tests/test_frame_processor.py::TestAppendTrackHistory::test_appends_position": 0.016019339000195032, - "tests/test_frame_processor.py::TestAppendTrackHistory::test_different_positions_appended": 0.018841969000050085, - "tests/test_frame_processor.py::TestAppendTrackHistory::test_respects_maxlen": 0.017064800000071045, - "tests/test_frame_processor.py::TestAppendTrackHistory::test_skips_duplicate_positions": 0.01724597499992342, - "tests/test_frame_processor.py::TestAppendTrackHistory::test_survives_gc_popping_the_public_twin_mid_append": 0.016348065999864048, - "tests/test_frame_processor.py::TestArchiveBuffering::test_failed_flush_retains_frames_in_buffer": 0.016995182000073328, - "tests/test_frame_processor.py::TestArchiveBuffering::test_flush_empty_is_noop": 0.01667173000009825, - "tests/test_frame_processor.py::TestArchiveBuffering::test_successful_flush_drops_persisted_prefix": 0.01721903900011057, - "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_adsb_only_excluded_from_map": 0.02512393800020618, - "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_detecting_nodes_lists_every_node_seeing_a_hex": 0.022264541999902576, - "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_pending_arcs_cover_adsb_tracks_with_buffer_key_fields": 0.024168952000081845, - "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_pending_arcs_still_skip_tentative_tracks": 0.024760590000141747, - "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_returns_valid_structure": 0.02422854700012067, - "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_five_second_old_coasting_track_is_excluded_at_three": 0.016975986999796078, - "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_fresh_track_survives_beside_a_stale_one": 0.01631447600016145, - "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_no_frame_time_disables_the_filter": 0.017143338999858315, - "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_same_track_is_included_at_ten": 0.015857962000154657, - "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_tentative_is_still_excluded_regardless_of_freshness": 0.023330005999923742, - "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_zero_disables_the_filter": 0.016330551999999443, - "tests/test_frame_processor.py::TestDedupAircraft::test_contributing_nodes_merged_onto_survivor": 0.01909302299986848, - "tests/test_frame_processor.py::TestDedupAircraft::test_distinct_aircraft_are_not_merged": 0.0169736110001395, - "tests/test_frame_processor.py::TestDedupAircraft::test_distinct_ground_truth_never_merged_despite_proximity": 0.016663269999980912, - "tests/test_frame_processor.py::TestDedupAircraft::test_empty_and_singleton_are_passthrough": 0.01619996799990986, - "tests/test_frame_processor.py::TestDedupAircraft::test_multinode_wins_over_single_node_arc": 0.049368628999900466, - "tests/test_frame_processor.py::TestDedupAircraft::test_one_aircraft_one_entry_via_ground_truth": 0.11115919700000632, - "tests/test_frame_processor.py::TestDedupAircraft::test_proximity_fallback_without_ground_truth": 0.018760074000056193, - "tests/test_frame_processor.py::TestDedupAircraft::test_vertically_separated_aircraft_not_merged": 0.017589747999863903, - "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_altitude_separated_multinode_entries_both_survive": 0.016376707000063107, - "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_distant_arc_still_collapses_under_the_solve": 0.01887427499991645, - "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_equal_node_count_breaks_on_freshness": 0.01668907299995226, - "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_fresher_higher_node_solve_wins_the_tie": 0.016097855000225536, - "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_proximity_path_unchanged_apart_from_the_tie_break": 0.018247861999952875, - "tests/test_frame_processor.py::TestGetNodeConfigs::test_leaves_the_stored_config_alone": 0.020048061000125017, - "tests/test_frame_processor.py::TestGetNodeConfigs::test_omits_an_unplaced_node": 0.018159255000000485, - "tests/test_frame_processor.py::TestGetNodeConfigs::test_resolves_a_null_altitude": 0.02851841499978036, - "tests/test_frame_processor.py::TestGetNodeConfigs::test_returns_configs": 0.01596888900007798, - "tests/test_frame_processor.py::TestGetNodeConfigs::test_skips_missing_config": 0.019096459999900617, - "tests/test_frame_processor.py::TestGetNodeConfigs::test_wanted_narrows_the_snapshot": 0.01631250699983866, - "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_creates_pipeline_for_new_node": 0.03131979699992371, - "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_null_altitudes_default_rather_than_reach_the_geolocator_as_none": 0.04374962199995025, - "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_returns_cached_pipeline": 0.03239276599992991, - "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_returns_none_for_a_node_with_no_usable_position": 0.025562927999999374, - "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_aircraft_between_pushes_survives": 0.017671362000328372, - "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_despawned_aircraft_is_pruned": 0.016440393000038966, - "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_live_aircraft_survives": 0.01726124099968729, - "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_track_history_keeps_the_longer_window": 0.01961813799994161, - "tests/test_frame_processor.py::TestMultinodeToAircraft::test_basic_conversion": 0.023558997000009185, - "tests/test_frame_processor.py::TestMultinodeToAircraft::test_clean_result_discards_hex": 0.017191537000144308, - "tests/test_frame_processor.py::TestMultinodeToAircraft::test_contributing_track_anomaly_propagates": 0.019848314999762806, - "tests/test_frame_processor.py::TestMultinodeToAircraft::test_subsonic_not_flagged": 0.016903971000147067, - "tests/test_frame_processor.py::TestMultinodeToAircraft::test_supersonic_speed_is_not_flagged": 0.017301126000120348, - "tests/test_frame_processor.py::TestNormalizeHexKey::test_basic": 0.017023357000198303, - "tests/test_frame_processor.py::TestNormalizeHexKey::test_empty": 0.028667133999988437, - "tests/test_frame_processor.py::TestNormalizeHexKey::test_none": 0.026811948999693413, - "tests/test_frame_processor.py::TestNormalizeHexKey::test_whitespace": 0.024615076999907615, - "tests/test_frame_processor.py::TestPositionDistanceKm::test_known_distance": 0.024625594999861278, - "tests/test_frame_processor.py::TestPositionDistanceKm::test_same_point": 0.03803603000005751, - "tests/test_frame_processor.py::TestPositionDistanceKm::test_small_distance": 0.022266431999923952, - "tests/test_frame_processor.py::TestProcessOneFrame::test_claiming_anchored_inputs_reach_the_solver_queue": 0.032788322000214976, - "tests/test_frame_processor.py::TestProcessOneFrame::test_invalid_adsb_entries_skipped": 0.025862652999876445, - "tests/test_frame_processor.py::TestProcessOneFrame::test_process_valid_frame": 0.05606476099956126, - "tests/test_frame_processor.py::TestProcessOneFrame::test_sets_aircraft_dirty_with_adsb": 0.026130714999908378, - "tests/test_frame_processor.py::TestResolveAltitudes::test_a_null_takes_the_terrain_default": 0.017349955000099726, - "tests/test_frame_processor.py::TestResolveAltitudes::test_an_absent_altitude_takes_the_terrain_default": 0.019225422999625152, - "tests/test_frame_processor.py::TestResolveAltitudes::test_sea_level_survives": 0.016243095999925572, - "tests/test_frame_processor.py::TestResolveGroundTruthHex::test_exact_match": 0.015131439000242608, - "tests/test_frame_processor.py::TestResolveGroundTruthHex::test_no_match_too_far": 0.015867538999827957, - "tests/test_frame_processor.py::TestResolveGroundTruthHex::test_proximity_match": 0.016263969999954497, - "tests/test_frame_worker_sharding.py::test_drain_helpers_walk_every_shard": 0.017454452000038145, - "tests/test_frame_worker_sharding.py::test_frames_from_different_nodes_still_run_in_parallel": 0.048495927999965716, - "tests/test_frame_worker_sharding.py::test_health_check_sees_a_backlog_spread_across_shards": 0.017055572999879587, - "tests/test_frame_worker_sharding.py::test_one_worker_is_a_plain_fifo": 0.07850525900016692, - "tests/test_frame_worker_sharding.py::test_queue_depth_counts_frames_parked_in_shards": 0.03782818800004861, - "tests/test_frame_worker_sharding.py::test_same_node_frames_are_serial_and_keep_arrival_order": 0.3517052069998954, - "tests/test_frame_worker_sharding.py::test_shard_mapping_is_stable_across_processes": 0.021213865000163423, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_altitude_m_to_ft_conversion": 0.01971650799987401, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_external_cache_used_when_live_absent": 0.017142092000312914, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_external_cache_used_when_live_stale": 0.017259415000125955, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_heading_passthrough": 0.019456103000266012, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_live_feed_returned_when_fresh": 0.017557938999971157, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_missing_lat_uses_solver_fallback": 0.018938607000109187, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_non_numeric_alt_defaults_to_zero": 0.01893383000015092, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_non_numeric_velocity_defaults_to_zero": 0.018773163999867393, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_none_alt_defaults_to_zero": 0.01749487800020688, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_velocity_ms_to_knots_conversion": 0.018434949000038614, - "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_zero_alt_m_produces_zero_alt_baro": 0.01666903000000275, - "tests/test_geo_delay_freshness.py::TestAdsbBootstrapCarriesDelay::test_first_encounter_fallback_seeds_delay_from_newest_detection": 0.0236603139996987, - "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_identity_evidence_comes_from_the_newest_detection": 0.024836943999844152, - "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_lazy_event_refreshes_delay_via_track_ref": 0.024347423999870443, - "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_materialized_event_refreshes_delay": 0.02336793399990711, - "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_materialized_multi_detection_event_takes_the_newest": 0.02349097400019673, - "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_zero_delay_does_not_clobber_last_good_value": 0.024249727000096755, - "tests/test_geo_delay_freshness.py::TestSolvedTrackUsesNewestDetection::test_latest_delay_is_newest_not_oldest": 0.022570183999732762, - "tests/test_geo_equivalence.py::TestInNodeBeam::test_a_zero_beam_width_is_treated_as_missing": 0.01871466100010366, - "tests/test_geo_equivalence.py::TestInNodeBeam::test_an_explicit_aim_wins_over_broadside": 0.01580077799985702, - "tests/test_geo_equivalence.py::TestInNodeBeam::test_it_agrees_on_a_randomised_sweep": 0.10834200099975533, - "tests/test_geo_equivalence.py::TestInNodeBeam::test_no_tx_and_no_aim_skips_the_bearing_test": 0.015960962999770345, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_infinite_max_range_km_falls_back_to_the_default": 0.020125049999933253, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_nan_azimuth_with_tx_falls_back_to_real_broadside_not_null_island": 0.0157157470000584, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_nan_azimuth_without_tx_falls_back_to_none_not_a_fabricated_bearing": 0.01631292900015069, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_nan_beam_width_falls_back_to_the_shared_default": 0.022662367000066297, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_non_finite_max_bistatic_range_km_is_treated_as_absent": 0.022053558000152407, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_string_zero_max_bistatic_no_longer_causes_a_false_miss": 0.020468216999915967, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_string_zero_max_bistatic_range_is_cast_to_a_falsy_float": 0.022399621999966257, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[-inf]": 0.021380613999781417, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[inf]": 0.018964150000329028, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[nan]": 0.01621568199993817, - "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[not-a-number]": 0.020031464999874515, - "tests/test_geo_equivalence.py::TestPrimitives::test_bearing_matches": 0.019509148999759418, - "tests/test_geo_equivalence.py::TestPrimitives::test_bistatic_delay_matches_the_helper": 0.019838259000152902, - "tests/test_geo_equivalence.py::TestPrimitives::test_haversine_matches": 0.019495776000212572, - "tests/test_geo_equivalence.py::TestPrimitives::test_haversine_matches_the_helpers_asin_form": 0.02185506999990139, - "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_config_ack_sent_to_node": 0.02794706400004543, - "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_detection_frames_land_in_queue": 0.02877594799997496, - "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_node_registered_after_config": 0.029169492999699287, - "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_node_status_set_after_disconnect": 0.020652708000170605, - "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_active_track_has_stable_id": 0.06303686199998992, - "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_first_frame_creates_tentative_track": 0.025006714000028296, - "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_geolocation_attempted_after_promotion": 0.14824073699992368, - "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_n_frames_promote_to_active": 0.06053528299980826, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_aircraft_json_parseable": 0.14641713900005016, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_dashboard_counts_node": 0.15384570699961841, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_dashboard_publishes_the_refresh_cadence": 0.15325450399996043, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_health_ok": 0.1462788469998486, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_radar_analytics_returns_json": 0.14556940099987514, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_radar_nodes_returns_json": 0.15516493299992362, - "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_unauthenticated_admin_write_rejected": 0.1454096660002051, - "tests/test_golden_path.py::TestGoldenPath_Layer4_FullStack::test_full_golden_path": 0.20753611200007072, - "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_a_rebuild_waiting_too_long_is_degraded": 0.018593378999867127, - "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_a_steady_queue_that_drains_is_healthy": 0.017470168000045305, - "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_an_empty_queue_is_healthy_whatever_the_gauge_says": 0.018170866000218666, - "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_the_ceiling_is_configurable": 0.018364781999935076, - "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_the_cold_start_warm_up_does_not_fire": 0.016492913000092813, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_anomaly_flood": 0.14929310699994858, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_coverage_rebuild_backlog": 0.14138144899993677, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_coverage_rebuild_backlog_within_budget_is_healthy": 0.03275591300007363, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_high_miss_rate": 0.1564513989999341, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_invalid_accuracy_bytes_handled": 0.159021163000034, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_no_active_tracks": 0.15563459999998486, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_node_dropout": 0.15807740499985812, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_accuracy_degraded": 0.15342208399988522, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_latency_high": 0.1528574330000083, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_queue_backpressure": 0.16134035599998242, - "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_queue_drops": 0.14934071600009702, - "tests/test_health_branches.py::TestMissRateThreshold::test_a_blind_network_is_still_degraded": 0.017212057000051573, - "tests/test_health_branches.py::TestMissRateThreshold::test_nodes_with_nothing_in_range_do_not_drag_the_average_down": 0.016763037999908192, - "tests/test_health_branches.py::TestMissRateThreshold::test_the_observed_operating_band_is_not_degraded": 0.03146304100027919, - "tests/test_health_branches.py::TestMissRateThreshold::test_the_threshold_is_configurable": 0.016972507000218684, - "tests/test_health_branches.py::TestMissRateThreshold::test_the_threshold_is_the_boundary_it_claims_to_be": 0.016445757999917987, - "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_a_lifetime_count_alone_is_not_degraded": 0.015991509000059523, - "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_a_process_that_never_dropped_is_not_degraded": 0.016440105999890875, - "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_a_recent_drop_is_degraded_and_names_both_counts": 0.01741645300012351, - "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_record_solver_queue_drop_bumps_and_stamps": 0.01800300500008234, - "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_the_window_is_configurable": 0.019392552000226715, - "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_a_degraded_server_still_answers_the_question": 0.1489393540000492, - "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_a_healthy_server_with_a_fleet_says_so": 0.13603063000005022, - "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_a_healthy_server_without_one_says_so_too": 0.1496450869999535, - "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_the_readiness_probe_body_is_left_alone": 0.14653599600001144, - "tests/test_health_branches.py::TestThresholdSettings::test_a_malformed_value_falls_back_instead_of_raising": 0.01751686099987637, - "tests/test_health_branches.py::TestThresholdSettings::test_an_unset_value_uses_the_default": 0.0166020239998943, - "tests/test_health_branches.py::TestThresholdSettings::test_node_dropout_threshold_is_read_the_same_way": 0.017200789999833432, - "tests/test_health_branches.py::TestThresholdSettings::test_the_setting_is_read_per_call_not_once_at_import": 0.016002939999680166, - "tests/test_health_branches.py::TestThresholdSettings::test_whitespace_is_treated_as_unset": 0.01591626500021448, - "tests/test_health_monitor.py::TestComputeHealthIssues::test_healthy_state_has_no_issues": 0.03109204499992302, - "tests/test_health_monitor.py::TestComputeHealthIssues::test_known_lane_samples_do_not_flag_accuracy": 0.017112984999812397, - "tests/test_health_monitor.py::TestComputeHealthIssues::test_multinode_still_flags_alongside_known_lane_samples": 0.01664280799991502, - "tests/test_health_monitor.py::TestComputeHealthIssues::test_single_node_arc_error_does_not_flag_accuracy": 0.01632652600005713, - "tests/test_health_monitor.py::TestComputeHealthIssues::test_solver_drops_flagged_as_warning": 0.01801157299996703, - "tests/test_health_monitor.py::TestComputeHealthIssues::test_trusted_solve_degradation_flags_accuracy": 0.016524039999922024, - "tests/test_health_monitor.py::TestDarkSamplesReachTheProbe::test_accurate_dark_solves_do_not": 0.016228894000050786, - "tests/test_health_monitor.py::TestDarkSamplesReachTheProbe::test_dark_samples_are_binned_under_multinode_solve": 0.01709198599996853, - "tests/test_health_monitor.py::TestDarkSamplesReachTheProbe::test_degraded_dark_solves_fire_the_alert": 0.017680218999885255, - "tests/test_health_monitor.py::TestRunCycle::test_fires_alert_per_issue": 0.015463937999811606, - "tests/test_health_monitor.py::TestRunCycle::test_resolved_alert_when_issue_clears": 0.015637981000054424, - "tests/test_health_routes.py::TestHealth::test_health_degraded_disk_low": 0.13845122600014292, - "tests/test_health_routes.py::TestHealth::test_health_degraded_queue_saturated": 0.14681602999985444, - "tests/test_health_routes.py::TestHealth::test_health_degraded_stale_task": 0.14661771800001588, - "tests/test_health_routes.py::TestHealth::test_health_disk_usage_exception_does_not_crash": 0.15971273300033317, - "tests/test_health_routes.py::TestHealth::test_health_ok": 0.13946655099994132, - "tests/test_health_routes.py::TestHealth::test_health_strict_returns_200_when_ok": 0.1444321519998084, - "tests/test_health_routes.py::TestHealth::test_health_strict_returns_503_when_degraded": 0.14212757899986173, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[A1B2C3]": 0.01759709499992823, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[None]": 0.0175943520000601, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[]": 0.017261429999962274, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[a1b2c3d]": 0.02533083000002989, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[a1b2c]": 0.020880500999737706, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[g1b2c3]": 0.015982685999915702, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[mn-adsb-a1b2c3]": 0.01691154499962977, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[obj-01373]": 0.022110953999799676, - "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[~~a1b2c3]": 0.016367158999855747, - "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[000001]": 0.0184724030000325, - "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[a1b2c3]": 0.025917012000036266, - "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[abcdef]": 0.018344679999927394, - "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[~a1b2c3]": 0.01922465200004808, - "tests/test_infrastructure.py::test_a_droplet_with_no_metrics_is_named_rather_than_left_blank": 0.02265128299995922, - "tests/test_infrastructure.py::test_a_malformed_sample_costs_its_own_metric_only": 0.01962330599985762, - "tests/test_infrastructure.py::test_a_non_finite_sample_is_skipped_not_clamped": 0.016785577999826273, - "tests/test_infrastructure.py::test_an_http_status_is_named_in_the_error": 0.022113799999942785, - "tests/test_infrastructure.py::test_build_snapshot_reports_unconfigured_without_token": 0.018523464999816497, - "tests/test_infrastructure.py::test_build_snapshot_survives_one_check_failing": 0.029522862000021632, - "tests/test_infrastructure.py::test_build_snapshot_survives_one_droplet_failing": 0.02224902500006465, - "tests/test_infrastructure.py::test_build_snapshot_survives_one_metric_failing": 0.021681551000028776, - "tests/test_infrastructure.py::test_check_and_droplet_pipelines_overlap": 0.018215077999911955, - "tests/test_infrastructure.py::test_concurrent_cold_callers_share_one_build": 0.021855061999985992, - "tests/test_infrastructure.py::test_cpu_series_is_busy_fraction_of_counter_deltas": 0.015647776999685448, - "tests/test_infrastructure.py::test_cpu_series_skips_an_interval_a_mode_has_no_sample_for": 0.016457726999988154, - "tests/test_infrastructure.py::test_cpu_series_without_idle_or_with_flat_counters_is_empty": 0.016275102999770752, - "tests/test_infrastructure.py::test_route_answers_503_when_a_cold_build_overruns": 0.02904177499999605, - "tests/test_infrastructure.py::test_route_returns_the_snapshot": 0.14021940900011032, - "tests/test_infrastructure.py::test_route_serves_the_last_good_snapshot_when_a_build_overruns": 0.03422863600030723, - "tests/test_infrastructure.py::test_snapshot_is_cached_for_the_ttl": 0.022796614999833764, - "tests/test_infrastructure.py::test_summarise_check_status_and_worst_uptime": 0.017224577000433783, - "tests/test_infrastructure.py::test_the_route_is_gated_on_require_admin": 0.01780498300013278, - "tests/test_infrastructure.py::test_unconfigured_snapshot_is_not_cached": 0.018423976999883962, - "tests/test_infrastructure.py::test_used_fraction_aligns_on_timestamp_and_skips_gaps": 0.01653030299985403, - "tests/test_ingest_event_loop.py::TestIngestDoesNotBlockTheLoop::test_bulk_registration_leaves_the_app_responsive": 2.0489944799999193, - "tests/test_ingest_event_loop.py::TestIngestDoesNotBlockTheLoop::test_single_node_registration_leaves_the_app_responsive": 2.030052937000164, - "tests/test_ingest_event_loop.py::TestRegistrationStillHappens::test_bulk_node_is_registered": 0.07118803599996681, - "tests/test_ingest_event_loop.py::TestRegistrationStillHappens::test_single_node_is_registered": 0.05248736399994414, - "tests/test_ingest_event_loop.py::TestRegistrationStillHappens::test_the_registration_reaches_the_associator": 0.04086518199983402, - "tests/test_ingest_event_loop.py::TestTheNonHttpPathDoesNotBlockTheLoop::test_v1_pipeline_registration_leaves_the_loop_free": 2.083184326000037, - "tests/test_ingest_event_loop.py::TestTheNonHttpRegistrationStillHappens::test_the_v1_node_reaches_the_registries": 0.0834045280000737, - "tests/test_known_claiming.py::TestContention::test_a_track_truncated_away_does_not_contest": 0.07070911400001023, - "tests/test_known_claiming.py::TestContention::test_claim_over_an_established_dark_track_is_contested": 0.07415684999978112, - "tests/test_known_claiming.py::TestContention::test_contested_still_set_for_a_track_inside_the_cap": 0.07911432999981116, - "tests/test_known_claiming.py::TestContention::test_ineligible_dark_track_does_not_contest": 0.05868326699987847, - "tests/test_known_claiming.py::TestContention::test_projection_set_is_capped": 0.08440502099961122, - "tests/test_known_claiming.py::TestGateVsFixAge::test_aged_fix_widens_the_gate": 0.07839546199988945, - "tests/test_known_claiming.py::TestGateVsFixAge::test_fresh_fix_keeps_the_base_gate": 0.08554473799995321, - "tests/test_known_claiming.py::TestGateVsFixAge::test_past_the_age_cap_is_no_candidate_at_all": 0.07887836100007917, - "tests/test_known_claiming.py::TestGlobalAssignment::test_no_geometry_claims_nothing": 0.0811539599999378, - "tests/test_known_claiming.py::TestGlobalAssignment::test_one_to_one_beats_greedy_on_a_crossing_pair": 0.07152869800029293, - "tests/test_known_claiming.py::TestGlobalAssignment::test_positionless_node_claims_nothing": 0.08296365300020625, - "tests/test_known_claiming.py::TestGlobalAssignment::test_ungated_detection_stays_dark": 0.0721910030001709, - "tests/test_known_claiming.py::TestGroundSentinelInTags::test_grounded_tag_does_not_silently_disable_the_lane": 0.08761555000023691, - "tests/test_known_claiming.py::TestGroundSentinelInTags::test_grounded_tag_still_claims": 0.06421970499991403, - "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_binding_strips_claimed_indices_from_the_pipeline_frame": 0.12606631100015875, - "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_known_lane_gets_its_own_perf_bucket": 0.1583450030000222, - "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_off_computes_nothing": 0.11515274800012776, - "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_perf_line_carries_the_known_bucket": 0.09403857899997092, - "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_shadow_records_the_claim_but_changes_nothing_downstream": 0.13201978600000075, - "tests/test_known_claiming.py::TestNodeBiasHook::test_missing_module_degrades_silently": 0.07838586900015798, - "tests/test_known_claiming.py::TestNodeBiasHook::test_residuals_are_recorded_signed": 0.0842282209998757, - "tests/test_known_claiming.py::TestNodeTagPrecedence::test_node_supplied_tag_wins_over_a_better_cached_match": 0.06772561199977645, - "tests/test_known_claiming.py::TestNodeTagPrecedence::test_tag_is_not_regated": 0.06009239200011507, - "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[antimeridian]": 0.29297446700002183, - "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[bistatic]": 0.4000829210001484, - "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[coverage_limit]": 0.4225145469999916, - "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[fov]": 0.47043945499967776, - "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[high_latitude]": 0.3452514099997188, - "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[monostatic]": 0.3550634569999147, - "tests/test_known_claiming.py::TestRegistryContract::test_claim_record_shape": 0.07634830699998929, - "tests/test_known_claiming.py::TestRegistryContract::test_reset_for_tests_clears_registry_and_counters": 0.06834892200004106, - "tests/test_known_claiming.py::TestStripAndGc::test_feed_gc_prunes_stale_hexes_only": 0.0765645599999516, - "tests/test_known_claiming.py::TestStripAndGc::test_non_list_keys_pass_through": 0.06696926999984498, - "tests/test_known_claiming.py::TestStripAndGc::test_strip_all_claimed_leaves_empty_lists": 0.07695531800004574, - "tests/test_known_claiming.py::TestVisibilityGate::test_beyond_the_footprint_claims_nothing": 0.08150843199996416, - "tests/test_known_claiming.py::TestVisibilityGate::test_in_beam_candidate_still_claims": 0.07286987600014072, - "tests/test_known_claiming.py::TestVisibilityGate::test_node_tag_is_not_visibility_gated": 0.06365670899981524, - "tests/test_known_claiming.py::TestVisibilityGate::test_out_of_beam_bearing_claims_nothing": 0.07034733500017865, - "tests/test_known_claiming.py::TestVisibilityGate::test_prescreen_rejects_are_counted_as_visibility_rejects": 0.0724315900001784, - "tests/test_known_claiming.py::TestVisibilityGate::test_the_learned_coverage_prior_does_not_gate_claims": 0.09219864299984692, - "tests/test_known_claiming.py::TestVisibilityGate::test_the_wedge_and_footprint_still_gate_with_a_prior_present": 0.06600241099999948, - "tests/test_known_claiming.py::TestWorldGate::test_handshake_verdict_beats_the_prefix_rule": 0.0720540479999272, - "tests/test_known_claiming.py::TestWorldGate::test_node_tag_is_not_world_gated": 0.08059979300014675, - "tests/test_known_claiming.py::TestWorldGate::test_real_node_skips_a_sim_world_candidate": 0.08128012700012732, - "tests/test_known_claiming.py::TestWorldGate::test_sim_node_claims_a_sim_world_candidate": 0.07288177999976142, - "tests/test_known_claiming.py::TestWorldGate::test_sim_node_skips_a_real_world_candidate": 0.07640716299943051, - "tests/test_known_claiming.py::TestWorldGate::test_unregistered_node_falls_back_to_the_prefix_rule": 0.07515811999996913, - "tests/test_known_claiming.py::TestWorldGate::test_untagged_candidate_is_not_gated": 0.07663154000010763, - "tests/test_known_lane.py::TestAccuracySampleThrottle::test_distinct_hexes_are_throttled_independently": 0.0702124530000674, - "tests/test_known_lane.py::TestAccuracySampleThrottle::test_same_hex_samples_again_once_the_window_elapses": 0.06831299899999976, - "tests/test_known_lane.py::TestAccuracySampleThrottle::test_second_attempt_within_the_window_is_not_sampled": 0.07321726499981196, - "tests/test_known_lane.py::TestAccuracySampleThrottle::test_throttle_map_is_swept_of_dead_hexes": 0.06982017299992549, - "tests/test_known_lane.py::TestAccuracySampleThrottle::test_unconverged_attempts_do_not_consume_the_window": 0.07342741399997976, - "tests/test_known_lane.py::TestClaimSelection::test_a_newer_claim_reopens_the_hex": 0.08462904899988644, - "tests/test_known_lane.py::TestClaimSelection::test_contested_claims_are_skipped": 0.06734959200002777, - "tests/test_known_lane.py::TestClaimSelection::test_incompatible_timestamps_drop_the_lagging_node": 0.07668442599992886, - "tests/test_known_lane.py::TestClaimSelection::test_malformed_claim_entries_are_survived": 0.08282473000008395, - "tests/test_known_lane.py::TestClaimSelection::test_missing_adsb_fix_produces_no_attempt": 0.10716661800006477, - "tests/test_known_lane.py::TestClaimSelection::test_newest_claim_per_node_wins": 0.07340509700020448, - "tests/test_known_lane.py::TestClaimSelection::test_single_node_claims_produce_no_attempt": 0.0674909529998331, - "tests/test_known_lane.py::TestClaimSelection::test_stale_claims_produce_no_attempt": 0.06869069300000774, - "tests/test_known_lane.py::TestClaimSelection::test_unchanged_registry_is_not_resolved_twice": 0.07012171700012004, - "tests/test_known_lane.py::TestClassification::test_displaced_solve_is_a_ghost_and_still_sampled": 0.08885873100007302, - "tests/test_known_lane.py::TestClassification::test_ghost_is_never_published_even_in_binding": 0.07302884399996401, - "tests/test_known_lane.py::TestClassification::test_solver_exception_counts_as_no_converge": 0.07400902599988513, - "tests/test_known_lane.py::TestClassification::test_unconverged_solve_records_but_never_samples": 0.06501418800007741, - "tests/test_known_lane.py::TestMaybeRunPass::test_interval_gate_holds_between_passes": 0.07807045700019444, - "tests/test_known_lane.py::TestMaybeRunPass::test_live_flag_absent_is_a_noop": 0.0809323260000383, - "tests/test_known_lane.py::TestMaybeRunPass::test_never_raises_even_on_a_garbage_registry": 0.0957120410000698, - "tests/test_known_lane.py::TestMaybeRunPass::test_off_mode_returns_before_the_lock": 0.08328371899983722, - "tests/test_known_lane.py::TestModeGating::test_binding_publishes_under_the_hex": 0.07494136299987986, - "tests/test_known_lane.py::TestModeGating::test_binding_supersedes_the_regular_pipelines_entry": 0.07807766899986746, - "tests/test_known_lane.py::TestModeGating::test_off_mode_does_nothing_at_all": 0.07086544300000241, - "tests/test_known_lane.py::TestModeGating::test_shadow_records_but_publishes_nothing": 0.08864307499993629, - "tests/test_known_lane.py::TestModeGating::test_unrecognised_live_mode_falls_back_to_off": 0.07356153799992171, - "tests/test_known_lane.py::TestModeGating::test_unrecognised_override_falls_back_to_off": 0.07549540300010449, - "tests/test_known_lane.py::TestPublishFailureContainment::test_a_failing_publish_does_not_skip_the_remaining_hexes": 0.08225026600007368, - "tests/test_known_lane.py::TestPublishResidualGate::test_absent_rms_delay_publishes": 0.07269815600011498, - "tests/test_known_lane.py::TestPublishResidualGate::test_high_rms_truth_match_is_classified_sampled_but_not_published": 0.09228048400018452, - "tests/test_known_lane.py::TestPublishResidualGate::test_low_rms_truth_match_publishes_ungated": 0.06660066599988568, - "tests/test_known_lane.py::TestPublishResidualGate::test_raising_the_bound_publishes_the_same_solve": 0.06910714100013138, - "tests/test_known_lane.py::TestPublishResidualGate::test_shadow_mode_never_counts_a_rejection": 0.062435332999712045, - "tests/test_known_lane.py::TestRealSolve::test_three_node_claims_solve_and_tag_n_nodes": 0.06657711599996219, - "tests/test_known_lane.py::TestRealSolve::test_two_node_claims_solve_and_truth_match": 0.08334646799971779, - "tests/test_known_lane.py::TestSliceAAbsence::test_absent_known_claims_is_a_noop": 0.08115975400005482, - "tests/test_known_lane.py::TestSliceAAbsence::test_absent_mode_reads_as_off": 0.08393233100036923, - "tests/test_known_track_follow.py::TestFollowClaim::test_c_a_fresh_fix_stays_with_path_2": 0.08444090100010726, - "tests/test_known_track_follow.py::TestFollowClaim::test_c_a_new_node_claims_from_the_lanes_own_position": 0.11919379400001162, - "tests/test_known_track_follow.py::TestFollowClaim::test_c_nothing_is_offered_below_the_solve_count": 0.0760967509997954, - "tests/test_known_track_follow.py::TestFollowClaim::test_c_nothing_is_offered_for_a_stale_entry": 0.06835992399987845, - "tests/test_known_track_follow.py::TestFollowClaim::test_c_the_original_stale_fix_is_carried_when_a_hold_has_one": 0.11576079600035882, - "tests/test_known_track_follow.py::TestFollowClaim::test_c_the_path_is_off_when_the_max_age_is_zero": 0.06538008000006812, - "tests/test_known_track_follow.py::TestReanchor::test_b_a_fix_seeded_ghost_never_reanchors": 0.09845744399990508, - "tests/test_known_track_follow.py::TestReanchor::test_b_inconsistent_kf_ghosts_do_not_reanchor": 0.09058498199988207, - "tests/test_known_track_follow.py::TestReanchor::test_b_two_consistent_kf_ghosts_reanchor_and_publish": 0.08238855800004785, - "tests/test_known_track_follow.py::TestStaleAdsbVelocity::test_a_fresh_fix_still_seeds_the_velocity": 0.07266736299993681, - "tests/test_known_track_follow.py::TestStaleAdsbVelocity::test_a_stale_eastbound_fix_does_not_hold_the_filter_east": 0.10218719499994222, - "tests/test_known_track_follow.py::test_solver_stats_export_the_new_counters": 0.1416023340002539, - "tests/test_known_track_hold.py::TestDelayRatePhysics::test_delay_rate_sign_against_the_simulator": 0.08539159800011475, - "tests/test_known_track_hold.py::TestHoldPath::test_fresh_fix_that_agrees_refreshes_the_hold": 0.06691536799985442, - "tests/test_known_track_hold.py::TestHoldPath::test_fresh_fix_that_disagrees_drops_the_hold": 0.060790813999801685, - "tests/test_known_track_hold.py::TestHoldPath::test_gap_beyond_the_window_expires_the_hold": 0.06082806199970037, - "tests/test_known_track_hold.py::TestHoldPath::test_hold_precedes_dark_follow": 0.07124960599958285, - "tests/test_known_track_hold.py::TestHoldPath::test_tagged_frame_then_silence_keeps_the_claim": 0.10305258900007175, - "tests/test_known_track_hold.py::TestHoldPath::test_zero_gap_is_the_rollback_lever": 0.09396576100016318, - "tests/test_known_track_hold.py::TestKnownLaneStaleSeed::test_fresh_fix_seeds_from_the_fix": 0.09859130399991045, - "tests/test_known_track_hold.py::TestKnownLaneStaleSeed::test_stale_fix_seeds_from_the_lanes_own_solve": 0.08503840300022603, - "tests/test_known_track_hold.py::TestKnownLaneStaleSeed::test_stale_fix_without_a_prior_solve_falls_back": 0.0905066809998516, - "tests/test_known_track_hold.py::TestSimulationIntegration::test_link_survives_the_transponder_going_quiet": 0.1741639629999554, - "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[None-False]": 0.22872950599980868, - "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[None-True]": 0.21580714699985037, - "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[executor-False]": 0.2279138389999389, - "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[executor-True]": 0.21642609600007745, - "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[solver-False]": 0.23099956700002622, - "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[solver-True]": 0.21925720899957923, - "tests/test_lifespan_cleanup.py::test_partial_startup_still_stops_workers": 0.24012073500011866, - "tests/test_lifespan_cleanup.py::test_restart_refuses_stopping_solver_before_restoring_or_priming_state": 0.10689413299996886, - "tests/test_lifespan_cleanup.py::test_restart_refuses_unfinished_background_work_before_restoring_state": 0.07990381200011143, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[ ]": 0.20448212499991314, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[%00]": 0.3160124769999584, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[../../etc/passwd]": 0.37172836800004916, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[]": 0.20071015799976522, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]": 0.23642836199974226, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[never-issued]": 0.19346358799998598, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_get_on_the_consume_route_does_not_redeem": 0.44635776700010865, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_second_redemption_fails": 0.45993027399981656, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_an_existing_superuser_cannot_sign_in_by_link": 0.42268040599992673, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_redeeming_opens_a_session": 0.398242737000146, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_redeeming_twice_does_not_create_two_accounts": 0.45163086399998065, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_account_is_never_an_administrator": 0.3042617809996955, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_account_records_how_it_was_made": 0.4100647130003381, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_cookie_is_a_session_for_that_person": 0.3155956690002313, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_cookie_is_httponly_and_secure": 0.6448601890001555, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_failure_message_does_not_distinguish_the_reason": 0.4286948910000774, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_signed_in_user_carries_what_me_would_say_about_the_fleet": 0.30784826499984774, - "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_superuser_refusal_is_indistinguishable_from_a_dead_link": 0.5271004910000556, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_a_capped_address_still_gets_202": 0.21719267699995726, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_a_malformed_address_is_rejected": 0.22899959799997305, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_a_refused_request_mints_no_token": 0.21727860700002566, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_accepts_and_mails_a_link": 0.3165111869998327, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_an_unknown_address_gets_the_same_answer_as_a_known_one": 0.3122766499998306, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_no_session_cookie_is_set_by_asking": 0.2390983279997272, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_link_host_comes_from_configuration_not_the_request": 0.22515284300015992, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_link_lands_at_the_consoles_root": 0.3281487430001562, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_mail_reads_as_written": 0.22911083000008148, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_mailed_link_carries_the_token_and_nothing_else_does": 0.20982264899976144, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_response_body_never_carries_the_token": 0.2196843650003757, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_unavailable_when_mail_is_not_configured": 0.197671008000043, - "tests/test_magic_link_routes.py::TestRequestMagicLink::test_unavailable_when_the_link_host_is_unknown": 0.21366035400001238, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/%2F%2Fevil.example.com]": 0.20906148700009908, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[//evil.example.com/settings]": 0.19850026399990384, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[//evil.example.com]": 0.2104496649999419, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/\\\\evil.example.com]": 0.1971781079998891, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]": 0.20671652300006826, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/set tings]": 0.19601452299980338, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/settings#danger]": 0.23455013300008432, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/settings?tab=security]": 0.2170358649998434, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[]": 0.20251639299999624, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[https://evil.example.com/]": 0.3198100690001411, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[javascript:alert(1)]": 0.22455147199980274, - "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[settings]": 0.2285504960000253, - "tests/test_magic_link_routes.py::TestSignInDestination::test_it_does_not_change_the_answer": 0.38788652699986415, - "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/data/2026/09/17]": 0.2009902620000048, - "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/nodes/ret-0042]": 0.21745668899984594, - "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/settings]": 0.2150217880002856, - "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/sim/physics]": 0.2593679260000954, - "tests/test_magic_link_routes.py::TestSignInDestination::test_without_one_the_link_is_bare": 0.22210690699989755, - "tests/test_magic_link_routes.py::TestSourceDerivation::test_a_forwarding_header_from_an_untrusted_peer_buys_no_quota": 1.2550742849998642, - "tests/test_magic_link_routes.py::TestSourceDerivation::test_address_variants_share_quota[192.0.2.1-::ffff:192.0.2.1-192.0.2.2]": 0.09793598099986411, - "tests/test_magic_link_routes.py::TestSourceDerivation::test_address_variants_share_quota[2001:db8:1:2::1-2001:db8:1:2::2-2001:db8:1:3::1]": 0.08533211600001778, - "tests/test_magic_link_routes.py::TestSourceDerivation::test_trusted_proxy_uses_last_untrusted_hop": 0.0718200070000421, - "tests/test_magic_link_routes.py::TestSourceQuota::test_a_full_source_table_refuses_new_sources": 0.19883396100021855, - "tests/test_magic_link_routes.py::TestSourceQuota::test_beyond_the_quota_nothing_is_mailed": 0.3975664740000866, - "tests/test_magic_link_routes.py::TestSourceQuota::test_the_quota_counts_requests_not_addresses": 0.4499348329998156, - "tests/test_magic_links.py::TestConsumeMagicLink::test_a_second_redemption_fails": 0.10416896799983988, - "tests/test_magic_links.py::TestConsumeMagicLink::test_a_used_link_is_not_deleted": 0.1056513169999107, - "tests/test_magic_links.py::TestConsumeMagicLink::test_an_empty_token_fails_without_touching_the_database[ ]": 0.06387583500008986, - "tests/test_magic_links.py::TestConsumeMagicLink::test_an_empty_token_fails_without_touching_the_database[None]": 0.05688587699978598, - "tests/test_magic_links.py::TestConsumeMagicLink::test_an_empty_token_fails_without_touching_the_database[]": 0.17168439300030514, - "tests/test_magic_links.py::TestConsumeMagicLink::test_an_expired_link_fails": 0.0781132519998664, - "tests/test_magic_links.py::TestConsumeMagicLink::test_an_unknown_token_fails": 0.05849446600018382, - "tests/test_magic_links.py::TestConsumeMagicLink::test_redeeming_invalidates_the_addresss_other_links": 0.3570298559998264, - "tests/test_magic_links.py::TestConsumeMagicLink::test_redeeming_leaves_another_addresss_links_alone": 0.12099551299979794, - "tests/test_magic_links.py::TestConsumeMagicLink::test_returns_the_email": 0.08916349000014634, - "tests/test_magic_links.py::TestCreateMagicLink::test_asking_again_does_not_invalidate_the_outstanding_link": 0.10392043599995304, - "tests/test_magic_links.py::TestCreateMagicLink::test_email_is_normalised": 0.07219842100016649, - "tests/test_magic_links.py::TestCreateMagicLink::test_expiry_is_fifteen_minutes": 0.0678803240000434, - "tests/test_magic_links.py::TestCreateMagicLink::test_returns_a_token_and_stores_only_its_hash": 0.08656735299996399, - "tests/test_magic_links.py::TestCreateMagicLink::test_the_raw_token_appears_nowhere_in_the_row": 0.09521902699975726, - "tests/test_magic_links.py::TestCreateMagicLink::test_two_requests_give_two_different_tokens": 0.09531525899978988, - "tests/test_magic_links.py::TestOutstandingLinkCap::test_beyond_the_cap_no_link_is_issued": 0.16453790400009893, - "tests/test_magic_links.py::TestOutstandingLinkCap::test_expired_links_do_not_count_against_the_cap": 0.15785877999996956, - "tests/test_magic_links.py::TestOutstandingLinkCap::test_expired_rows_are_cleared_rather_than_accumulating": 0.10518892099980803, - "tests/test_magic_links.py::TestOutstandingLinkCap::test_the_cap_is_per_address": 0.16274875400017663, - "tests/test_magic_links.py::test_a_claim_link_cannot_be_redeemed_as_a_sign_in": 0.07980530400004682, - "tests/test_magic_links.py::test_a_refusal_by_intent_leaves_the_link_usable_by_its_rightful_redeemer": 0.07472703000007641, - "tests/test_magic_links.py::test_a_sign_in_link_cannot_be_redeemed_as_a_claim": 0.09500480699989566, - "tests/test_magic_links.py::test_a_sign_in_link_is_about_nobody_s_node": 0.11112172699995426, - "tests/test_magic_links.py::test_claiming_does_not_wipe_an_outstanding_sign_in_link": 0.11953520199995182, - "tests/test_magic_links.py::test_claiming_one_node_does_not_wipe_the_link_for_another": 0.1275196000001415, - "tests/test_magic_links.py::test_invalidating_an_unknown_handle_is_not_an_error": 0.07465739200006283, - "tests/test_magic_links.py::test_invalidating_makes_a_link_unredeemable": 0.10016005900001801, - "tests/test_magic_links.py::test_invalidating_one_link_leaves_the_others_alone": 0.1229320520001238, - "tests/test_magic_links.py::test_peeking_a_spent_link_gives_nothing": 0.12479437600018173, - "tests/test_magic_links.py::test_peeking_does_not_spend_the_link": 0.1271382470001754, - "tests/test_magic_links.py::test_peeking_is_bound_by_intent_like_redeeming": 0.08375894699975106, - "tests/test_magic_links.py::test_signing_in_does_not_wipe_an_outstanding_claim_link": 0.10767315099997177, - "tests/test_magic_links.py::test_the_cap_is_counted_per_intent": 0.14189794700018865, - "tests/test_magic_links.py::test_the_node_travels_with_a_claim_link": 0.07741006600031142, - "tests/test_magic_links.py::test_the_sweep_still_clears_abandoned_links_of_the_same_intent": 0.09779315800005861, - "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_complete_configuration_resolves": 0.06455450600014956, - "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_each_missing_setting_is_unconfigured_and_named[CLOUDFLARE_ACCOUNT_ID]": 0.06520930799979396, - "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_each_missing_setting_is_unconfigured_and_named[CLOUDFLARE_EMAIL_TOKEN]": 0.06968269500021051, - "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_each_missing_setting_is_unconfigured_and_named[MAIL_FROM]": 0.06633317799992255, - "tests/test_mail.py::TestLogDestination::test_log_transport_is_announced_loudly": 0.12353453800028547, - "tests/test_mail.py::TestLogDestination::test_names_the_transport_and_sender": 0.08733949800011942, - "tests/test_mail.py::TestLogDestination::test_never_prints_the_token": 0.2759143389998826, - "tests/test_mail.py::TestLogDestination::test_says_nothing_when_unconfigured": 0.06834036699979151, - "tests/test_mail.py::TestLogTransport::test_needs_no_token": 0.0636225559999275, - "tests/test_mail.py::TestLogTransport::test_refusal_leaves_mail_unconfigured_rather_than_falling_back": 0.0895618879999347, - "tests/test_mail.py::TestLogTransport::test_refused_in_production": 0.09789978300000257, - "tests/test_mail.py::TestSend::test_a_bare_sender_address_is_sent_without_a_name": 0.07785945999967225, - "tests/test_mail.py::TestSend::test_a_linefeed_in_a_header_is_refused_without_raising[subject]": 0.0780954220001604, - "tests/test_mail.py::TestSend::test_a_linefeed_in_a_header_is_refused_without_raising[to]": 0.08762119500011067, - "tests/test_mail.py::TestSend::test_a_network_failure_is_logged_and_returns_false[timeout]": 0.06527914600019358, - "tests/test_mail.py::TestSend::test_a_network_failure_is_logged_and_returns_false[unreachable]": 0.14227398799994262, - "tests/test_mail.py::TestSend::test_a_non_ascii_body_still_sends": 0.0714231520003068, - "tests/test_mail.py::TestSend::test_an_error_response_is_logged_with_cloudflares_reason": 0.06927158599978611, - "tests/test_mail.py::TestSend::test_an_error_response_that_is_not_json_does_not_raise": 0.07315885600019101, - "tests/test_mail.py::TestSend::test_an_undeliverable_recipient_is_a_failure[permanent_bounces]": 0.055788062000146965, - "tests/test_mail.py::TestSend::test_an_undeliverable_recipient_is_a_failure[suppressed_recipients]": 0.06155803200022092, - "tests/test_mail.py::TestSend::test_authenticates_with_the_token_as_a_bearer": 0.07220516499978658, - "tests/test_mail.py::TestSend::test_log_transport_keeps_a_long_url_unbroken": 0.08071402599989597, - "tests/test_mail.py::TestSend::test_log_transport_writes_the_body": 0.08934245499995086, - "tests/test_mail.py::TestSend::test_posts_to_the_accounts_send_endpoint": 0.0761650509998617, - "tests/test_mail.py::TestSend::test_sends_sender_recipient_subject_and_body": 0.07570096999984344, - "tests/test_mail.py::TestSend::test_the_request_has_a_timeout": 0.07001451599990105, - "tests/test_mail.py::TestSend::test_token_never_appears_in_logs_on_failure[error-response]": 0.07611372099995606, - "tests/test_mail.py::TestSend::test_token_never_appears_in_logs_on_failure[network]": 0.09903364600017994, - "tests/test_mail.py::TestSend::test_unconfigured_returns_false_and_does_not_raise": 0.07173373599971455, - "tests/test_mail.py::TestSendInBackground::test_a_thread_that_never_started_gives_its_slot_back": 0.06787753900016469, - "tests/test_mail.py::TestSendInBackground::test_delivery_runs_on_the_thread": 0.09204659600004561, - "tests/test_mail.py::TestSendInBackground::test_drops_the_send_once_the_cap_is_reached": 0.07464259800008222, - "tests/test_mail.py::TestSendInBackground::test_returns_without_waiting_for_delivery": 0.0630290710000736, - "tests/test_mail.py::TestSendInBackground::test_the_slot_is_released_when_delivery_finishes": 0.08730838400015273, - "tests/test_mail.py::TestSendInBackground::test_the_slot_is_released_when_delivery_raises": 0.07390541900031167, - "tests/test_mail.py::TestSendInBackground::test_thread_creation_failure_does_not_reach_the_caller": 0.0875096830000075, - "tests/test_mail.py::TestTransport::test_empty_string_treated_as_unset": 0.054599837000068874, - "tests/test_mail.py::TestTransport::test_unknown_value_warns_and_is_unconfigured": 0.07112531999996463, - "tests/test_mail.py::TestTransport::test_unset_does_not_warn": 0.07673354199960158, - "tests/test_mail.py::TestTransport::test_unset_is_unconfigured": 0.059893952999800604, - "tests/test_mail.py::TestTransport::test_value_is_case_insensitive_and_trimmed": 0.07200753999995868, - "tests/test_mail.py::TestTransport::test_whitespace_only_treated_as_unset": 0.05783903799988366, - "tests/test_mender_lookup.py::test_a_401_raises_mender_unreachable": 0.14167447200020433, - "tests/test_mender_lookup.py::test_a_5xx_raises_mender_unreachable": 0.08188471099992967, - "tests/test_mender_lookup.py::test_a_device_with_another_identity_resolves_to_none": 0.07392453500006013, - "tests/test_mender_lookup.py::test_a_full_page_logs_a_warning_and_still_resolves": 0.15180998799996814, - "tests/test_mender_lookup.py::test_a_garbage_mender_server_raises_mender_unreachable": 0.08976106799991612, - "tests/test_mender_lookup.py::test_a_json_object_body_raises_mender_unreachable": 0.09543496900028003, - "tests/test_mender_lookup.py::test_a_list_of_non_dict_elements_raises_mender_unreachable": 0.07847324199997274, - "tests/test_mender_lookup.py::test_a_malformed_device_ahead_of_the_requested_one_still_resolves_it": 0.07255767500009824, - "tests/test_mender_lookup.py::test_a_malformed_device_with_no_match_raises_mender_unreachable": 0.1398486479999974, - "tests/test_mender_lookup.py::test_a_malformed_timeout_raises_mender_unreachable": 0.09152188899997782, - "tests/test_mender_lookup.py::test_a_non_ascii_mender_server_raises_mender_unreachable": 0.11879134299988436, - "tests/test_mender_lookup.py::test_a_non_json_200_raises_mender_unreachable": 0.08227484899975934, - "tests/test_mender_lookup.py::test_a_non_list_auth_sets_raises_mender_unreachable": 0.07909725199988316, - "tests/test_mender_lookup.py::test_a_non_pem_pubkey_resolves_without_a_fingerprint": 0.08482669899967732, - "tests/test_mender_lookup.py::test_a_non_string_auth_set_id_resolves_without_it": 0.15721263700015697, - "tests/test_mender_lookup.py::test_a_non_string_node_id_raises_mender_unreachable": 0.09726525200017022, - "tests/test_mender_lookup.py::test_a_non_string_pubkey_resolves_without_a_fingerprint": 0.10400766400016437, - "tests/test_mender_lookup.py::test_a_pending_device_resolves_but_is_not_accepted": 0.1226058539996302, - "tests/test_mender_lookup.py::test_a_timeout_raises_mender_unreachable": 0.32564714399995864, - "tests/test_mender_lookup.py::test_accepted_status_with_no_accepted_auth_set_is_ambiguous": 0.07900427599997784, - "tests/test_mender_lookup.py::test_an_accepted_auth_set_with_a_non_accepted_status_warns_but_resolves_to_its_own_status": 0.09291846200017062, - "tests/test_mender_lookup.py::test_an_accepted_device_resolves": 0.08483299100021213, - "tests/test_mender_lookup.py::test_an_auth_set_list_with_a_non_dict_element_raises_mender_unreachable": 0.0874747479999769, - "tests/test_mender_lookup.py::test_an_empty_server_falls_back_to_the_default": 0.09377906999998231, - "tests/test_mender_lookup.py::test_an_empty_timeout_falls_back_to_the_default": 0.09752111700004207, - "tests/test_mender_lookup.py::test_an_unknown_device_resolves_to_none": 0.07487315700018371, - "tests/test_mender_lookup.py::test_identity_data_as_a_string_raises_mender_unreachable": 0.07883856000012202, - "tests/test_mender_lookup.py::test_mender_pat_set_after_import_is_picked_up": 0.0930719789998875, - "tests/test_mender_lookup.py::test_more_than_one_accepted_set_is_refused_rather_than_resolved": 0.09390257099994415, - "tests/test_metro_and_arcs.py::TestArcBuilderWithDelay::test_accepts_float_delay": 0.11530587199968068, - "tests/test_metro_and_arcs.py::TestArcBuilderWithDelay::test_accepts_track_object": 0.10600532100011151, - "tests/test_metro_and_arcs.py::TestArcBuilderWithDelay::test_zero_delay_returns_none": 0.0879428220000591, - "tests/test_metro_and_arcs.py::TestKnownMetros::test_has_atl_and_gvl": 0.11922604699998374, - "tests/test_metro_and_arcs.py::TestKnownMetros::test_metro_has_required_keys": 0.08989581800028645, - "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_case_insensitive": 0.0946297279999726, - "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_empty_string": 0.12074340200001643, - "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_multiple_metros": 0.09014922299979844, - "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_single_metro": 0.07671272300012788, - "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_unknown_metro_skipped": 0.08756320699990283, - "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_whitespace_handling": 0.09936264799989658, - "tests/test_migrations.py::test_0015_downgrade_hands_the_owners_back": 5.9006160779999846, - "tests/test_migrations.py::test_0015_folds_every_owner_into_the_claims": 4.899428382000224, - "tests/test_migrations.py::test_0015_refuses_an_owner_for_a_node_that_never_registered": 3.891568091999943, - "tests/test_migrations.py::test_0016_downgrade_drops_both_polled_radar_tables": 4.091734421999945, - "tests/test_migrations.py::test_every_migration_declares_rollback_safety": 0.04173016599997936, - "tests/test_migrations.py::test_every_migration_is_numbered_for_chain_order": 0.04671359600001779, - "tests/test_migrations.py::test_migrations_have_exactly_one_head": 4.3992050550000386, - "tests/test_migrations.py::test_migrations_produce_the_schema_create_all_produces": 5.943602804999955, - "tests/test_migrations.py::test_rollback_ahead_sentinel_matches_alembics_wording": 3.800091944000087, - "tests/test_migrations.py::test_upgrade_downgrade_upgrade_round_trips": 14.462358409999979, - "tests/test_migrations.py::test_upgrading_a_pre_alembic_database_succeeds": 8.405669718000127, - "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_anchored_n2_inside_the_tight_cap_is_published": 0.029249732000153017, - "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_anchored_n2_past_the_tight_cap_is_rejected": 0.02857424799981345, - "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_anchored_n3_keeps_the_lane_cap": 0.05538159900015671, - "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_bottom_up_n2_keeps_the_lane_cap": 0.032791842999813525, - "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_cap_is_tunable_without_a_deploy": 0.031393036999816104, - "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_default_cap_is_1_5_km": 0.03298386700021183, - "tests/test_mlat_history.py::TestDarkAccuracySamples::test_adsb_anchored_solve_is_not_double_sampled_here": 0.0400675300002149, - "tests/test_mlat_history.py::TestDarkAccuracySamples::test_known_lane_records_are_not_sampled_by_this_path": 0.04104403999963324, - "tests/test_mlat_history.py::TestDarkAccuracySamples::test_no_ground_truth_means_no_sample": 0.04755074300010165, - "tests/test_mlat_history.py::TestDarkAccuracySamples::test_published_dark_solve_with_gt_is_sampled": 0.06509054799971636, - "tests/test_mlat_history.py::TestDarkAccuracySamples::test_rejected_solve_is_not_sampled": 0.06491071499976897, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_a_narrowed_dark_cap_rejects_what_the_default_publishes": 0.02906962200017915, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_adsb_anchored_solve_keeps_the_tight_cap": 0.05223983099972429, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_adsb_reject_leaves_the_dark_counter_alone": 0.029522853999878862, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_dark_reject_bumps_the_dark_counter_as_well": 0.027462431999992987, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_dark_solve_inside_the_dark_cap_is_published": 0.037827698000000964, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_dark_solve_past_the_dark_cap_is_rejected": 0.028716581000026054, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_default_dark_cap_is_two_grid_steps": 0.06744288799995957, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_env_var_overrides_the_dark_cap": 0.03280899700007467, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_history_record_carries_the_cap_that_judged_it": 0.058817268999746375, - "tests/test_mlat_history.py::TestDisplacementCapByLane::test_non_transponder_id_is_judged_dark": 0.029342242999973678, - "tests/test_mlat_history.py::TestDisplacementCapKm::test_anchored_n2_beats_either_lane[False]": 0.02857038599995576, - "tests/test_mlat_history.py::TestDisplacementCapKm::test_anchored_n2_beats_either_lane[True]": 0.03167641399977583, - "tests/test_mlat_history.py::TestDisplacementCapKm::test_dark_is_taken_as_given": 0.029874292999920726, - "tests/test_mlat_history.py::TestDisplacementCapKm::test_gate_and_record_both_read_it": 0.038051552999831983, - "tests/test_mlat_history.py::TestDisplacementCapKm::test_lane_caps_apply_otherwise": 0.02862978299981478, - "tests/test_mlat_history.py::TestEndpoint::test_all_returns_window": 0.05341436600019733, - "tests/test_mlat_history.py::TestEndpoint::test_lookup_by_hex": 0.05231422600013502, - "tests/test_mlat_history.py::TestEndpoint::test_rejects_nearby_within_10km": 0.046478435000153695, - "tests/test_mlat_history.py::TestEndpoint::test_requires_hex_or_all": 0.04992977899996731, - "tests/test_mlat_history.py::TestEndpoint::test_unknown_hex_returns_empty": 0.05216261000009581, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_a_node_aimed_away_is_named_foreign": 0.04633362699996724, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_a_node_out_of_range_is_foreign": 0.06125473499969303, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_all_nodes_in_cone_is_not_contaminated": 0.0446027970006071, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_an_adsb_record_is_not_stamped": 0.04531388799978231, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_no_ground_truth_means_no_stamp": 0.05318203900014851, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_trimmed_nodes_are_judged_too": 0.043687224999303, - "tests/test_mlat_history.py::TestForeignNodeStamp::test_unregistered_nodes_are_not_stamped_clean": 0.04379079799991814, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_adsb_fix_dead_reckoned": 0.03997416599986536, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_dark_record_keeps_proximity_scan": 0.037947366000025795, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_record_alt_source_absent_is_none": 0.03808441299997867, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_record_carries_alt_source": 0.03547598100021787, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_binds_own_trail_not_nearest": 0.04386352500000612, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_no_trail_uses_live_adsb": 0.05945842099981746, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_stale_adsb_abstains": 0.0455984829998215, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_stale_trail_falls_back_to_adsb": 0.03966197399972771, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_unknown_hex_abstains": 0.04963790200008589, - "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_uppercase_hex_normalized": 0.048811760000035065, - "tests/test_mlat_history.py::TestKeyDecisionObservability::test_a_reject_carries_neither_field": 0.02959322200013048, - "tests/test_mlat_history.py::TestKeyDecisionObservability::test_a_second_solve_nearby_is_recorded_as_a_re_key": 0.096816206000085, - "tests/test_mlat_history.py::TestKeyDecisionObservability::test_a_solve_measured_before_the_entry_it_joins_is_still_a_re_key": 0.03265988699990885, - "tests/test_mlat_history.py::TestKeyDecisionObservability::test_adsb_lane_records_its_branch_and_no_distance": 0.030678079999916008, - "tests/test_mlat_history.py::TestKeyDecisionObservability::test_first_dark_solve_is_recorded_as_a_mint": 0.03371092699990186, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_default_lane_is_all_and_counts_every_lane": 0.05534109299969714, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_hex_lookup_reports_the_lane_block_too": 0.05629358099940873, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_known_volume_cannot_evict_dark_records_from_the_response": 0.054492269000093074, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_lane_dark_returns_only_dark_records": 0.04713849500012657, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_lane_known_returns_only_known_records": 0.05119744800049375, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_limit_is_clamped_to_the_maximum": 0.05141967500003375, - "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_unknown_lane_is_rejected": 0.043144756000401685, - "tests/test_mlat_history.py::TestPerLaneDeques::test_all_query_merges_both_lanes_in_ts_order": 0.0841915030000564, - "tests/test_mlat_history.py::TestPerLaneDeques::test_hex_lookup_finds_a_known_lane_publish": 0.05502237700011392, - "tests/test_mlat_history.py::TestPerLaneDeques::test_known_lane_records_go_to_the_known_deque": 0.044672840000202996, - "tests/test_mlat_history.py::TestPerLaneDeques::test_known_lane_volume_cannot_evict_dark_records": 0.04590940599973692, - "tests/test_mlat_history.py::TestPerLaneDeques::test_regular_records_go_to_the_regular_deque": 0.048280544000135706, - "tests/test_mlat_history.py::TestPerLaneDeques::test_window_effective_minutes_is_zero_on_an_empty_store": 0.04994965800005957, - "tests/test_mlat_history.py::TestPerLaneDeques::test_window_effective_minutes_reports_the_oldest_record_held": 0.04635074999941935, - "tests/test_mlat_history.py::TestRecording::test_a_badly_fitted_n2_reject_is_labelled_chi2": 0.03405586400003813, - "tests/test_mlat_history.py::TestRecording::test_age_prune_drops_old_records": 0.046505100999866045, - "tests/test_mlat_history.py::TestRecording::test_beam_reject_is_recorded": 0.029395377000128065, - "tests/test_mlat_history.py::TestRecording::test_displacement_reject_records_distance": 0.03077612200013391, - "tests/test_mlat_history.py::TestRecording::test_known_lane_record_is_not_dark_inflated": 0.04420891399990978, - "tests/test_mlat_history.py::TestRecording::test_n2_reject_says_which_of_the_two_causes_it_was": 0.029961268000079144, - "tests/test_mlat_history.py::TestRecording::test_n2_unconfirmed_is_recorded": 0.03499567600033515, - "tests/test_mlat_history.py::TestRecording::test_published_record_carries_the_calibrated_sigma": 0.03535132100023475, - "tests/test_mlat_history.py::TestRecording::test_published_solve_records_positions_and_gt": 0.03979316099980679, - "tests/test_mlat_history.py::TestRecording::test_published_solver_hex_matches_feed_hex": 0.033337375000201064, - "tests/test_mlat_history.py::TestRecording::test_record_without_n_nodes_has_no_sigma": 0.039278731000194966, - "tests/test_mlat_history.py::TestRecording::test_reset_for_tests_clears_history": 0.03700934099992992, - "tests/test_mlat_history.py::TestRecording::test_rms_delay_reject_is_recorded": 0.03323468700000376, - "tests/test_mlat_history.py::TestRecording::test_rms_doppler_reject_is_recorded": 0.027419415000167646, - "tests/test_mlat_history.py::TestRecording::test_stale_gt_is_not_stamped": 0.029574650999848018, - "tests/test_mlat_history.py::TestRecording::test_unconverged_is_recorded": 0.030286117999821727, - "tests/test_mlat_history.py::TestResolveSkipDump::test_lane_filter_applies_to_skips": 0.07501122299981944, - "tests/test_mlat_history.py::TestResolveSkipDump::test_skip_records_the_blocking_claim": 0.09320909299958657, - "tests/test_mlat_history.py::TestResolveSkipDump::test_skips_do_not_land_in_the_solve_history": 0.07693453999991107, - "tests/test_mlat_history.py::TestResolveSkipDump::test_unknown_kind_is_rejected": 0.04072949300007167, - "tests/test_mlat_history.py::TestTrailSnapshotRace::test_nearest_gt_survives_concurrent_appends": 5.301628702999778, - "tests/test_mlat_verification.py::TestAdsbFallback::test_adsb_aircraft_used_when_no_ground_truth_trail": 0.04455644600056985, - "tests/test_mlat_verification.py::TestAdsbFallback::test_non_finite_feed_values_do_not_poison_the_truth_pool": 0.04140232500003549, - "tests/test_mlat_verification.py::TestAdsbFallbackEdgeCases::test_adsb_entry_with_lat_none_filtered": 0.05045817399968655, - "tests/test_mlat_verification.py::TestAdsbFallbackEdgeCases::test_adsb_hex_already_in_trails_not_duplicated": 0.04950355600067269, - "tests/test_mlat_verification.py::TestAdsbFallbackEdgeCases::test_stale_adsb_entry_not_added_to_truth_pool": 0.044433743999888975, - "tests/test_mlat_verification.py::TestByNodeCount::test_by_node_count_populated": 0.05590432500002862, - "tests/test_mlat_verification.py::TestEmptyState::test_empty_multinode_tracks": 0.040403119000075094, - "tests/test_mlat_verification.py::TestEmptyState::test_empty_truth_pool": 0.04225830799941832, - "tests/test_mlat_verification.py::TestEmptyState::test_returns_valid_json_always": 0.041113799000413564, - "tests/test_mlat_verification.py::TestExternalAdsbFallback::test_external_adsb_skipped_when_already_in_live": 0.042416639000748546, - "tests/test_mlat_verification.py::TestExternalAdsbFallback::test_external_adsb_skipped_when_no_coords": 0.05867161500009388, - "tests/test_mlat_verification.py::TestExternalAdsbFallback::test_external_adsb_used_as_truth": 0.047580350999396614, - "tests/test_mlat_verification.py::TestExternalAdsbTruthSchema::test_external_truth_keeps_metric_altitude_and_speed": 0.0404135459993995, - "tests/test_mlat_verification.py::TestHttpEndpoint::test_endpoint_reflects_refresh": 0.08180984900036492, - "tests/test_mlat_verification.py::TestHttpEndpoint::test_endpoint_returns_200": 0.043372018999889406, - "tests/test_mlat_verification.py::TestHttpEndpoint::test_mlat_accuracy_endpoint_reflects_refresh": 0.061082131000148365, - "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_empty_samples_returns_zero_count": 0.04533806899962656, - "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_per_aircraft_collapses_repeats_to_one_point_per_hex_per_n": 0.055877155999951356, - "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_per_aircraft_normal_excludes_anomalous": 0.03898519300037151, - "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_stats_are_grouped_by_node_count": 0.05428485299944441, - "tests/test_mlat_verification.py::TestMlatSummaryHelper::test_summary_returns_empty_dict_on_corrupt_bytes": 0.03812335400016309, - "tests/test_mlat_verification.py::TestMlatSummaryHelper::test_summary_returns_expected_keys_after_refresh": 0.041418245999921055, - "tests/test_mlat_verification.py::TestMlatSummaryHelper::test_summary_returns_zeros_when_no_matches": 0.04032220099998085, - "tests/test_mlat_verification.py::TestNoDoubleMatching::test_two_solves_near_same_truth_only_one_matches": 0.04814145299997108, - "tests/test_mlat_verification.py::TestPercentiles::test_percentile_with_multiple_matches": 0.05228803199997856, - "tests/test_mlat_verification.py::TestProximityThreshold::test_solve_beyond_threshold_not_matched": 0.0410143879998941, - "tests/test_mlat_verification.py::TestProximityThreshold::test_solve_within_threshold_matched": 0.057230089999393385, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_multiple_close_targets_each_matched": 0.08264190200043231, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_noisy_measurements_still_converge[0.5-5.0]": 0.06561004199966192, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_noisy_measurements_still_converge[1.0-10.0]": 0.1236157910007023, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[2-1.0]": 0.08809607700004563, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[3-0.5]": 0.06308227600038663, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[4-0.5]": 0.07635535100007473, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[5-0.5]": 0.07293164299971977, - "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_moving_target": 0.07160399200029133, - "tests/test_mlat_verification.py::TestSingleMatch::test_close_solve_matches_truth": 0.04125021600020773, - "tests/test_mlat_verification.py::TestSingleMatch::test_error_metrics_in_summary": 0.05164980200015634, - "tests/test_mlat_verification.py::TestSolveResultFiltering::test_future_timestamp_skipped": 0.044217915999979596, - "tests/test_mlat_verification.py::TestSolveResultFiltering::test_solve_at_the_null_island_sentinel_is_skipped": 0.037773714999730146, - "tests/test_mlat_verification.py::TestSolveResultFiltering::test_solve_on_the_equator_is_kept": 0.044500167000023794, - "tests/test_mlat_verification.py::TestStaleFiltering::test_stale_multinode_result_skipped": 0.05107875000021522, - "tests/test_mlat_verification.py::TestStaleFiltering::test_stale_truth_point_skipped": 0.04269886900010533, - "tests/test_mlat_verification.py::TestStaleFiltering::test_time_matched_trail_point_used": 0.04336724099948697, - "tests/test_mlat_verification.py::TestTrackFields::test_all_expected_track_keys_present": 0.0409752200002913, - "tests/test_mlat_verification.py::TestTrackFields::test_rms_values_carried_through_to_track": 0.045448926999142714, - "tests/test_mlat_verification.py::TestTracksLimit::test_tracks_list_capped_at_100": 0.12470071600000665, - "tests/test_mn_lifetime.py::TestFeedGates::test_n2_confirmed_is_rendered": 0.04288764800048739, - "tests/test_mn_lifetime.py::TestFeedGates::test_n2_gate_disabled_via_min_solves_1": 0.03329974499956734, - "tests/test_mn_lifetime.py::TestFeedGates::test_n2_one_shot_is_not_rendered": 0.034522525999818754, - "tests/test_mn_lifetime.py::TestFeedGates::test_n3_confirmed_old_entry_is_rendered": 0.03287782999996125, - "tests/test_mn_lifetime.py::TestFeedGates::test_n3_one_shot_past_ttl_is_not_rendered_but_not_expired": 0.035828370000672294, - "tests/test_mn_lifetime.py::TestFeedGates::test_n3_one_shot_within_ttl_is_rendered": 0.03812557499986724, - "tests/test_mn_lifetime.py::TestForgetMnKey::test_all_four_stores_are_cleared": 0.03868675700005042, - "tests/test_mn_lifetime.py::TestForgetMnKey::test_forgetting_an_unknown_key_is_a_no_op": 0.038384945999951015, - "tests/test_mn_lifetime.py::TestHistoryRecord::test_published_record_carries_solve_count_and_source_track_ids": 0.040569289999893954, - "tests/test_mn_lifetime.py::TestHistoryRecord::test_published_record_carries_supersession_verdicts": 0.03830852200007939, - "tests/test_mn_lifetime.py::TestHistoryRecord::test_reject_record_carries_empty_supersession_fields": 0.033775504999994155, - "tests/test_mn_lifetime.py::TestHistoryRecordKfAction::test_published_records_carry_the_filter_action": 0.09024223699952927, - "tests/test_mn_lifetime.py::TestHistoryRecordKfAction::test_reject_record_carries_none": 0.036982932000228175, - "tests/test_mn_lifetime.py::TestSolveCount::test_first_publish_solve_count_is_1": 0.03743912900017676, - "tests/test_mn_lifetime.py::TestSolveCount::test_second_publish_same_position_solve_count_is_2": 0.03957838899941635, - "tests/test_mn_lifetime.py::TestSupersession::test_a_neighbour_five_km_off_is_no_longer_popped": 0.036495843000466266, - "tests/test_mn_lifetime.py::TestSupersession::test_an_in_gate_neighbour_at_a_different_altitude_is_counted_separately": 0.04066745499994795, - "tests/test_mn_lifetime.py::TestSupersession::test_disjoint_track_ids_do_not_supersede": 0.038209932000427216, - "tests/test_mn_lifetime.py::TestSupersession::test_shared_track_id_far_away_does_not_supersede": 0.03506489600022178, - "tests/test_mn_lifetime.py::TestSupersession::test_shared_track_id_within_the_gate_supersedes_old_entry": 0.03780639800015706, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_a_missing_altitude_on_either_side_fails_open": 0.036983628000143653, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_entry_far_ahead_of_this_solve_is_not_reckoned_backwards": 0.03672357400000692, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_entry_with_no_position_cannot_match_spatially": 0.03918728999997256, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_entry_with_no_source_ids_of_its_own_cannot_match_by_subset": 0.06305779500007702, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_out_of_order_entry_is_dead_reckoned_backwards": 0.038225234000037744, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_close_but_far_apart_in_altitude_does_not_match": 0.03727939400005198, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_dead_reckoning_carries_a_fast_target_into_the_gate": 0.044746805999693606, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_entry_older_than_max_age_does_not_match": 0.032412663999821234, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_identical_inputs_close_by_at_a_different_altitude_do_not_match": 0.037845582000500144, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_identical_inputs_match_beyond_the_spatial_gate_but_not_unboundedly": 0.0482428199993592, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_inside_the_age_scaled_gate_matches_and_reports_the_distance": 0.03890854599967497, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_just_outside_the_age_scaled_gate_does_not_match": 0.03965942099966924, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_partial_overlap_far_away_is_refused": 0.03624886899979174, - "tests/test_mn_lifetime.py::TestSupersessionMatch::test_the_supersession_base_is_tighter_than_the_keying_base": 0.0395203539992508, - "tests/test_mn_stale_coast.py::TestEvidenceAccessors::test_manoeuvre_level_is_none_without_filter_state": 0.05635194799924648, - "tests/test_mn_stale_coast.py::TestEvidenceAccessors::test_was_dropped_honours_a_shorter_window": 0.07963190700002087, - "tests/test_mn_stale_coast.py::TestEvidenceAccessors::test_was_dropped_reports_a_live_cooldown_and_nothing_else": 0.1377019520000431, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_a_key_older_than_the_ceiling_is_no_candidate": 0.057520311000189395, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_a_key_solved_a_moment_ago_is_no_candidate": 0.05484778600020945, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_a_key_too_far_away_is_no_candidate": 0.06196806500020102, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_altitude_mismatch_keeps_the_key": 0.05015247099981934, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_an_adsb_assisted_key_is_never_retired": 0.044675171000108094, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_disabled_by_env_changes_nothing": 0.04585456399945542, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_kf_manoeuvre_level_is_evidence_on_its_own": 0.062001618000522285, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_no_turn_evidence_keeps_the_key": 0.07183879399917714, - "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_turn_dropped_key_is_retired_and_its_trail_transplanted": 0.04108157099972232, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[0.0]": 0.04522916899941265, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[3.9]": 0.041959861000123055, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[300.0]": 0.07476816999997027, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[60.1]": 0.051672702000360005, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_an_entry_without_a_position_is_skipped": 0.04890382599978693, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_evidence_refusal_outranks_an_altitude_one": 0.1253709060001711, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_manoeuvre_at_the_threshold_is_not_evidence": 0.14903443499997593, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_picks_the_nearest_of_several_candidates": 0.054702959999758605, - "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_unknown_altitude_fails_open": 0.05293126600008691, - "tests/test_nginx_app_vhost.py::test_data_is_the_consoles_own_page": 0.05768744199986031, - "tests/test_nginx_app_vhost.py::test_no_redirect_names_a_hostname": 0.04675140699964686, - "tests/test_nginx_app_vhost.py::test_no_vhost_serves_the_deleted_map": 0.12733721199992942, - "tests/test_nginx_app_vhost.py::test_nothing_is_served_from_the_old_mount": 0.10612991299967689, - "tests/test_nginx_app_vhost.py::test_the_console_is_the_root": 0.2152528989995517, - "tests/test_nginx_app_vhost.py::test_the_old_explorers_paths_land_on_the_page": 0.05751516700047432, - "tests/test_nginx_app_vhost.py::test_the_old_mount_redirects_every_path_to_its_root_twin": 0.06332751000036296, - "tests/test_nginx_app_vhost.py::test_the_slashless_mount_redirects_too": 0.07584318299996085, - "tests/test_nginx_credential_zones.py::test_every_credential_location_uses_the_tight_zone": 0.15452982500028156, - "tests/test_nginx_credential_zones.py::test_no_credential_location_falls_into_the_general_api_zone": 0.13169677599989882, - "tests/test_nginx_credential_zones.py::test_the_credential_prefix_is_present_on_three_vhosts": 0.1453986649999024, - "tests/test_nginx_credential_zones.py::test_the_magic_link_endpoints_inherit_the_credential_prefix": 0.11662090999925567, - "tests/test_nginx_credential_zones.py::test_the_session_endpoints_are_still_the_only_ones_excused": 0.19039570600034494, - "tests/test_nginx_default_server.py::test_exactly_one_vhost_is_the_declared_default": 0.23653177600044728, - "tests/test_nginx_default_server.py::test_the_catch_all_precedes_every_named_vhost": 0.1364867479996974, - "tests/test_nginx_default_server.py::test_the_catch_all_refuses_rather_than_serving_anything": 0.06446196799970494, - "tests/test_nginx_default_server.py::test_the_catch_all_still_demands_cloudflares_client_certificate": 0.0705091849999917, - "tests/test_nginx_default_server.py::test_the_default_is_the_catch_all_and_not_a_named_vhost": 0.0882407589997456, - "tests/test_nginx_default_server.py::test_the_laptop_stack_keeps_its_fall_through": 0.1792925529994136, - "tests/test_nginx_origin_marker.py::test_each_suite_probes_the_marker[ci.yml (production smoke)]": 0.5398373660000289, - "tests/test_nginx_origin_marker.py::test_each_suite_probes_the_marker[staging-smoke-test.sh]": 0.07083141799967052, - "tests/test_nginx_origin_marker.py::test_each_suite_sources_the_shared_marker[ci.yml (production smoke)]": 0.2448522640002011, - "tests/test_nginx_origin_marker.py::test_each_suite_sources_the_shared_marker[staging-smoke-test.sh]": 0.11217347600040739, - "tests/test_nginx_origin_marker.py::test_every_tls_vhost_sends_the_marker": 0.19607457200027056, - "tests/test_nginx_origin_marker.py::test_no_suite_hardcodes_the_marker[ci.yml (production smoke)]": 0.2742920600007892, - "tests/test_nginx_origin_marker.py::test_no_suite_hardcodes_the_marker[staging-smoke-test.sh]": 0.05750286500006041, - "tests/test_nginx_origin_marker.py::test_the_marker_is_set_with_always": 0.1590987269996731, - "tests/test_nginx_origin_marker.py::test_the_marker_value_is_a_literal": 0.06701810100003058, - "tests/test_nginx_origin_marker.py::test_the_shell_and_the_config_agree_on_the_header_name": 0.07320107799978359, - "tests/test_nginx_origin_marker.py::test_the_shell_and_the_config_agree_on_the_marker": 0.06368972599966582, - "tests/test_nginx_origin_marker.py::test_the_shell_side_is_lowercase": 0.049907942000118055, - "tests/test_nginx_relative_redirects.py::test_no_block_turns_absolute_redirects_back_on[plain]": 0.04463738699996611, - "tests/test_nginx_relative_redirects.py::test_no_block_turns_absolute_redirects_back_on[tls]": 0.05017747400006556, - "tests/test_nginx_relative_redirects.py::test_redirects_are_relative_on_every_vhost[plain]": 0.08440306200009218, - "tests/test_nginx_relative_redirects.py::test_redirects_are_relative_on_every_vhost[tls]": 0.10875892199965165, - "tests/test_nginx_rewrite_ordering.py::test_every_proxy_pass_variable_is_assigned_in_its_location": 0.04515010600016467, - "tests/test_nginx_rewrite_ordering.py::test_no_break_before_a_set": 0.04244012199978897, - "tests/test_nginx_rewrite_ordering.py::test_the_template_still_has_locations_to_check": 0.09186714600036794, - "tests/test_nginx_static_cache.py::test_every_other_static_file_is_revalidated": 0.0493481020002946, - "tests/test_nginx_static_cache.py::test_immutable_is_confined_to_hashed_assets": 0.10518725299971265, - "tests/test_no_real_identities.py::test_no_real_node_identity_is_tracked": 5.0163386750004975, - "tests/test_node_auth.py::test_a_committed_token_resolves_in_a_later_session": 0.07590100399966104, - "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Basic abc]": 0.0546022269995774, - "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Bearer ]": 0.04979510100019979, - "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Bearer]": 0.04800656599991271, - "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Token xyz]": 0.048246428000311425, - "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[]": 0.047280128999773297, - "tests/test_node_auth.py::test_a_minted_node_ref_matches_the_wire_pattern": 0.038680147999457404, - "tests/test_node_auth.py::test_a_minted_token_resolves": 0.07254748800005473, - "tests/test_node_auth.py::test_a_revoked_token_does_not_resolve": 0.06549824700005047, - "tests/test_node_auth.py::test_an_uncommitted_registration_leaves_no_usable_token": 0.064641493999261, - "tests/test_node_auth.py::test_an_unknown_token_is_401": 0.04745248699964577, - "tests/test_node_auth.py::test_minting_does_not_repeat": 0.11632537599962234, - "tests/test_node_auth.py::test_only_the_hash_is_stored": 0.07378360299935594, - "tests/test_node_auth.py::test_revoking_reports_how_many_it_revoked": 0.06706567899982474, - "tests/test_node_auth.py::test_the_scheme_is_case_insensitive[BEARER]": 0.0665476160002072, - "tests/test_node_auth.py::test_the_scheme_is_case_insensitive[Bearer]": 0.06729743599998983, - "tests/test_node_auth.py::test_the_scheme_is_case_insensitive[bearer]": 0.07142251399909583, - "tests/test_node_bias.py::TestBiasEstimator::test_converges_on_synthetic_biased_residuals": 0.06913764499995523, - "tests/test_node_bias.py::TestBiasEstimator::test_maturity_bar_distinct_hexes": 0.041682351999952516, - "tests/test_node_bias.py::TestBiasEstimator::test_maturity_bar_sample_count": 0.042488311999477446, - "tests/test_node_bias.py::TestBiasEstimator::test_maturity_bar_spread": 0.04684886599989113, - "tests/test_node_bias.py::TestContractDefaults::test_record_accepts_unknown_keys_without_raising": 0.04064862500035815, - "tests/test_node_bias.py::TestContractDefaults::test_record_drops_non_finite_and_empty_keys": 0.03654071099981593, - "tests/test_node_bias.py::TestContractDefaults::test_trust_below_sample_bar_stays_at_prior": 0.11714091900012136, - "tests/test_node_bias.py::TestContractDefaults::test_unknown_node_bias_is_zero": 0.04989905499996894, - "tests/test_node_bias.py::TestContractDefaults::test_unknown_node_trust_is_neutral_prior": 0.05045057600000291, - "tests/test_node_bias.py::TestCrossValidationRejectsUnusableFixes::test_a_self_report_with_boolean_coordinates_is_not_penalised": 0.23235594800007675, - "tests/test_node_bias.py::TestCrossValidationRejectsUnusableFixes::test_a_self_report_without_a_position_is_not_penalised": 0.17864892100033103, - "tests/test_node_bias.py::TestLyingRadar::test_misfitting_node_trust_sinks_while_peers_keep_theirs": 0.04200534899973718, - "tests/test_node_bias.py::TestSelfReportCoexistence::test_cross_validation_skips_backend_fed_samples": 0.048533323000810924, - "tests/test_node_bias.py::TestSelfReportCoexistence::test_route_and_backend_samples_share_one_score": 0.16729508899970824, - "tests/test_node_bias.py::TestSnapshotCompat::test_backend_fed_samples_round_trip_with_provenance": 0.06674431199962783, - "tests/test_node_bias.py::TestSnapshotCompat::test_old_format_snapshot_still_loads": 0.06974074099980498, - "tests/test_node_bias.py::TestSurfacing::test_node_analytics_includes_bias_block": 0.18323258499958683, - "tests/test_node_bias.py::TestSurfacing::test_node_analytics_omits_bias_block_when_unknown": 0.2076789480001935, - "tests/test_node_claim_endpoint.py::test_a_bad_bearer_is_401_rather_than_a_body_refusal": 0.09764222399962819, - "tests/test_node_claim_endpoint.py::test_a_body_that_is_not_json_is_400_invalid_claim": 0.1089047569998911, - "tests/test_node_claim_endpoint.py::test_a_bounced_address_is_not_mailed_again": 0.20076632099971903, - "tests/test_node_claim_endpoint.py::test_a_bounced_address_reads_unclaimed_with_the_flag": 0.16740883599959488, - "tests/test_node_claim_endpoint.py::test_a_different_address_after_a_bounce_is_mailed_normally": 0.15735682099966652, - "tests/test_node_claim_endpoint.py::test_a_get_without_a_bearer_is_401": 0.07189487699952224, - "tests/test_node_claim_endpoint.py::test_a_missing_address_is_400_invalid_claim": 0.08414122300018789, - "tests/test_node_claim_endpoint.py::test_a_nomination_records_a_challenge_and_mails_its_token": 0.1300505050007814, - "tests/test_node_claim_endpoint.py::test_a_nomination_stores_the_address_and_answers_pending": 0.1548792539997521, - "tests/test_node_claim_endpoint.py::test_a_rate_limited_nomination_is_not_stored": 0.25729738700010785, - "tests/test_node_claim_endpoint.py::test_a_refused_nomination_on_an_owned_node_writes_nothing": 0.1447388769997815, - "tests/test_node_claim_endpoint.py::test_a_second_address_drops_the_verified_flag": 0.16485710799997833, - "tests/test_node_claim_endpoint.py::test_a_second_address_replaces_the_first_challenge": 0.18281405000016093, - "tests/test_node_claim_endpoint.py::test_an_address_at_its_link_cap_leaves_no_dead_challenge_behind": 0.210366853999858, - "tests/test_node_claim_endpoint.py::test_an_address_that_is_not_one_is_400": 0.1014631609996286, - "tests/test_node_claim_endpoint.py::test_an_expired_challenge_does_not_make_a_repeated_put_mail_again": 0.16278543499947773, - "tests/test_node_claim_endpoint.py::test_an_expired_challenge_is_still_resendable": 0.16732182900022963, - "tests/test_node_claim_endpoint.py::test_an_expired_challenge_reads_unclaimed_with_the_address_still_on_file": 0.1882128060001378, - "tests/test_node_claim_endpoint.py::test_an_owned_node_accepts_the_address_it_is_bound_to": 0.13881990299978497, - "tests/test_node_claim_endpoint.py::test_an_owned_node_refuses_a_different_address_and_names_the_bound_one": 0.1352787350001563, - "tests/test_node_claim_endpoint.py::test_get_answers_owned_with_the_bound_address": 0.1431039779999992, - "tests/test_node_claim_endpoint.py::test_get_answers_unclaimed_for_a_node_that_never_nominated": 0.1183451540000533, - "tests/test_node_claim_endpoint.py::test_get_writes_nothing": 0.09482521599966276, - "tests/test_node_claim_endpoint.py::test_no_bearer_is_401_and_writes_nothing": 0.09275516599973344, - "tests/test_node_claim_endpoint.py::test_re_sending_the_same_address_answers_pending_without_mailing_again": 0.12878358099987963, - "tests/test_node_claim_endpoint.py::test_resend_mails_again_where_a_repeated_put_does_not": 0.12557429599974057, - "tests/test_node_claim_endpoint.py::test_resend_mints_a_fresh_token_rather_than_repeating_the_old_one": 0.15575732499974038, - "tests/test_node_claim_endpoint.py::test_resend_on_an_owned_node_is_refused": 0.13676337000015337, - "tests/test_node_claim_endpoint.py::test_resend_with_nothing_on_file_answers_unclaimed_and_mails_nothing": 0.3659049709995088, - "tests/test_node_claim_endpoint.py::test_the_address_is_normalised_before_it_is_stored": 0.11881804800032114, - "tests/test_node_claim_endpoint.py::test_the_sixth_nomination_in_an_hour_is_429_with_a_retry_after": 0.25749298799973985, - "tests/test_node_claim_store.py::test_a_bounce_drops_the_challenge_so_the_node_reads_unclaimed": 0.07220815500022582, - "tests/test_node_claim_store.py::test_a_bounce_on_a_node_with_no_challenge_gives_back_no_handle": 0.08730091799952788, - "tests/test_node_claim_store.py::test_a_different_address_after_a_bounce_starts_clean": 0.11151710000012827, - "tests/test_node_claim_store.py::test_a_new_address_drops_the_verified_flag": 0.06789116900017689, - "tests/test_node_claim_store.py::test_a_node_that_never_nominated_has_no_row": 0.0565545780004868, - "tests/test_node_claim_store.py::test_a_second_challenge_replaces_the_first_and_returns_its_handle": 0.10598415000004024, - "tests/test_node_claim_store.py::test_clearing_a_claim_leaves_no_row_and_no_challenge": 0.0892972570004531, - "tests/test_node_claim_store.py::test_clearing_a_node_that_has_no_claim_is_not_an_error": 0.08863139400000364, - "tests/test_node_claim_store.py::test_dropping_a_challenge_returns_its_handle_and_then_none": 0.07356252299996413, - "tests/test_node_claim_store.py::test_marking_a_node_with_no_claim_does_nothing": 0.07515644900013285, - "tests/test_node_claim_store.py::test_marking_undeliverable_for_a_superseded_address_does_nothing": 0.07610887700002422, - "tests/test_node_claim_store.py::test_marking_verified_for_a_superseded_address_does_nothing": 0.07289868099996966, - "tests/test_node_claim_store.py::test_nominating_an_address_stores_it_unverified": 0.057667506000143476, - "tests/test_node_claim_store.py::test_rewriting_the_same_address_leaves_verified_alone": 0.07044950499948754, - "tests/test_node_claim_store.py::test_the_first_challenge_displaces_nothing": 0.08583251999925778, - "tests/test_node_claim_store.py::test_verifying_a_superseded_address_leaves_the_live_challenge_alone": 0.06790137800044249, - "tests/test_node_claim_store.py::test_verifying_spends_the_challenge": 0.06722207800066826, - "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[7]": 0.046069343999533885, - "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[None]": 0.04831452600001285, - "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[ada@example.com]": 0.04631466100045145, - "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[payload0]": 0.03966565599966998, - "tests/test_node_claim_validation.py::test_a_missing_address_is_refused": 0.046060775999649195, - "tests/test_node_claim_validation.py::test_a_non_string_address_is_refused": 0.04035077799971987, - "tests/test_node_claim_validation.py::test_a_null_address_is_refused_rather_than_clearing_anything": 0.04226401199957763, - "tests/test_node_claim_validation.py::test_an_address_already_normalised_is_unchanged": 0.04120280899996942, - "tests/test_node_claim_validation.py::test_an_address_at_the_bound_is_accepted": 0.0401283829996828, - "tests/test_node_claim_validation.py::test_an_address_comes_back_normalised": 0.07131829899981312, - "tests/test_node_claim_validation.py::test_an_over_long_address_is_refused_on_its_trimmed_form": 0.04416851499991026, - "tests/test_node_claim_validation.py::test_an_unknown_key_is_named_back": 0.037984908999987965, - "tests/test_node_claim_validation.py::test_several_unknown_keys_always_name_the_same_one": 0.04107542599967928, - "tests/test_node_claim_validation.py::test_the_published_schema_is_not_shared_between_callers": 0.04393729900039034, - "tests/test_node_claim_validation.py::test_the_published_schema_requires_the_one_field_it_describes": 0.049536215999978594, - "tests/test_node_claim_validation.py::test_whitespace_alone_is_refused": 0.04006300899982307, - "tests/test_node_config_endpoint.py::test_a_body_that_is_not_an_object_is_400": 0.10133860299993103, - "tests/test_node_config_endpoint.py::test_a_body_that_is_not_json_is_400": 0.09086731899969891, - "tests/test_node_config_endpoint.py::test_a_change_reaches_the_pipeline_once": 0.12521064399925308, - "tests/test_node_config_endpoint.py::test_a_changed_field_mints_the_next_version_and_supersedes_the_last": 0.11647813199988377, - "tests/test_node_config_endpoint.py::test_a_failed_handoff_alerts_and_keeps_the_stored_version": 0.113957948999996, - "tests/test_node_config_endpoint.py::test_a_long_unknown_field_is_400_rather_than_500": 0.09462630900043223, - "tests/test_node_config_endpoint.py::test_a_new_version_reaches_the_pipeline": 0.18317729799991866, - "tests/test_node_config_endpoint.py::test_a_null_callsign_is_accepted_and_stored": 0.1984335099996315, - "tests/test_node_config_endpoint.py::test_a_resend_with_both_antenna_fields_null_is_not_a_change": 0.1929764569999861, - "tests/test_node_config_endpoint.py::test_a_revoked_token_is_401": 0.07882759099993564, - "tests/test_node_config_endpoint.py::test_an_invalid_body_without_a_token_is_still_401": 0.07722019600032581, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[above_bound]": 0.10005335399955584, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[azimuth_exclusive_max]": 0.15244886600021346, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[below_bound]": 0.10598096499961684, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[empty_callsign]": 0.13646667600005458, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[exclusive_min]": 0.08077928299962878, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[missing]": 0.08722997599943483, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[unknown]": 0.11891382800013162, - "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[width_exclusive_min]": 0.10096097899986489, - "tests/test_node_config_endpoint.py::test_an_unauthenticated_call_is_401": 0.09737586800019926, - "tests/test_node_config_endpoint.py::test_an_unchanged_resend_does_not_touch_the_pipeline": 0.22834203499996875, - "tests/test_node_config_endpoint.py::test_an_unchanged_resend_returns_the_active_version": 0.10847432499986098, - "tests/test_node_config_endpoint.py::test_an_unparseable_body_without_a_token_is_still_401": 0.1072982939999747, - "tests/test_node_config_endpoint.py::test_the_baseline_matches_what_the_fixture_seeded": 0.10267902200030221, - "tests/test_node_config_endpoint.py::test_the_node_row_follows_the_active_version": 0.11294894200000272, - "tests/test_node_config_endpoint.py::test_the_route_commits": 0.10167544700016151, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[beam_azimuth_deg]": 0.06564656799992008, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[beam_width_deg]": 0.06796016899943425, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[cpi_s]": 0.06941427399988243, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[delay_tolerance_us]": 0.07684845899984794, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[doppler_tolerance_hz]": 0.08585573500067767, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[fc_hz]": 0.07595114300011119, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[fs_hz]": 0.08125402099994972, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[max_range_km]": 0.08036188799997035, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[rx_alt_ft]": 0.07880753900053605, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[rx_lat]": 0.07855068800017762, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[rx_lon]": 0.08295089299963365, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_alt_ft]": 0.13130763899971498, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_callsign]": 0.12520280700027797, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_lat]": 0.07478151900068042, - "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_lon]": 0.07835045499950866, - "tests/test_node_config_store.py::test_a_changed_configuration_supersedes_the_previous_version": 0.10617915300008463, - "tests/test_node_config_store.py::test_a_null_callsign_round_trips": 0.07109403000004022, - "tests/test_node_config_store.py::test_a_null_position_round_trips": 0.06444291899970267, - "tests/test_node_config_store.py::test_a_resend_is_unchanged_however_many_times_it_arrives": 0.07459782199975962, - "tests/test_node_config_store.py::test_a_version_is_never_reused_once_the_active_row_is_superseded": 0.10264155800041408, - "tests/test_node_config_store.py::test_an_azimuth_appearing_is_a_new_version": 0.1275114809996012, - "tests/test_node_config_store.py::test_an_unchanged_configuration_keeps_its_version": 0.07662974400000166, - "tests/test_node_config_store.py::test_filling_in_a_null_is_a_change_in_both_directions": 0.10163244499972279, - "tests/test_node_config_store.py::test_nothing_is_committed": 0.07870307400025922, - "tests/test_node_config_store.py::test_the_compared_fields_are_every_geometry_column": 0.041640916999767796, - "tests/test_node_config_store.py::test_the_configuration_belongs_to_the_node_that_sent_it": 0.08563558700006979, - "tests/test_node_config_store.py::test_the_first_configuration_is_version_one": 0.07623061399999642, - "tests/test_node_config_store.py::test_versions_go_on_climbing_across_several_changes": 0.09338173300056951, - "tests/test_node_config_validation.py::test_a_baseline_shorter_than_the_degenerate_threshold_is_rejected": 0.037659603000065545, - "tests/test_node_config_validation.py::test_a_boolean_is_not_accepted_as_a_number": 0.03399873700027456, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[bool-false]": 0.028533896000681125, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[bool-true]": 0.02749617900008161, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[empty-string]": 0.03530515800048306, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[float]": 0.04066240400015886, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[infinity]": 0.033705339999869466, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[int-too-large-for-a-float]": 0.02886818900014987, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[int]": 0.029749319000075047, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[list]": 0.03334412100048212, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[nan]": 0.032925364000220725, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[negative-infinity]": 0.030096712000158732, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[negative-numeric-string]": 0.027315986000303383, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[non-numeric-string]": 0.03188504400077363, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[null]": 0.027886846999990667, - "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[numeric-string]": 0.040388529999745515, - "tests/test_node_config_validation.py::test_a_missing_beam_width_is_still_rejected": 0.03766662699990775, - "tests/test_node_config_validation.py::test_a_missing_field_is_rejected": 0.04123898000034387, - "tests/test_node_config_validation.py::test_a_missing_key_is_still_an_error": 0.049215138999898045, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-rx_lat]": 0.0682510519995958, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-rx_lon]": 0.0659387189998597, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-tx_lat]": 0.0689162380003836, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-tx_lon]": 0.05854762499984645, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-rx_lat]": 0.0339418239996121, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-rx_lon]": 0.03643091700041623, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-tx_lat]": 0.0384740470003635, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-tx_lon]": 0.05438758699938262, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-rx_lat]": 0.044871170000078564, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-rx_lon]": 0.044502799000383675, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-tx_lat]": 0.052383682999789016, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-tx_lon]": 0.0748301370003901, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-rx_lat]": 0.11154340699977183, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-rx_lon]": 0.05189610499974151, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-tx_lat]": 0.04490121100025135, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-tx_lon]": 0.03781570399996781, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-rx_lat]": 0.033619553000335145, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-rx_lon]": 0.03622551200032831, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-tx_lat]": 0.04829437400030656, - "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-tx_lon]": 0.07065347599927918, - "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[51.42]": 0.03234408099979191, - "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[None]": 0.033092884000325284, - "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[value2]": 0.03140172099983829, - "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[value3]": 0.036645933000272635, - "tests/test_node_config_validation.py::test_a_non_string_callsign_is_rejected[123]": 0.03374853700006497, - "tests/test_node_config_validation.py::test_a_non_string_callsign_is_rejected[value1]": 0.034605082999860315, - "tests/test_node_config_validation.py::test_a_null_callsign_is_preserved_not_defaulted": 0.030953648000377143, - "tests/test_node_config_validation.py::test_a_null_is_accepted_for_exactly_the_fields_published_as_nullable": 0.03583196099998531, - "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[5]": 0.03340274699985457, - "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[None]": 0.033254435999879206, - "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[payload3]": 0.03445403299974714, - "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[payload4]": 0.036402994000127364, - "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[payload5]": 0.036381239000093046, - "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[rx_lat]": 0.0346235109996087, - "tests/test_node_config_validation.py::test_a_present_beam_width_keeps_the_contract_interval[0.1]": 0.043608823000340635, - "tests/test_node_config_validation.py::test_a_present_beam_width_keeps_the_contract_interval[360]": 0.04573764899987509, - "tests/test_node_config_validation.py::test_a_usable_altitude_is_kept_as_a_float[below-sea-level]": 0.03457797100008975, - "tests/test_node_config_validation.py::test_a_usable_altitude_is_kept_as_a_float[numeric-string]": 0.034464104999642586, - "tests/test_node_config_validation.py::test_a_usable_altitude_is_kept_as_a_float[sea-level]": 0.0498308969995378, - "tests/test_node_config_validation.py::test_a_valid_config_passes_through_unchanged": 0.03564904899985777, - "tests/test_node_config_validation.py::test_a_validated_config_survives_canonicalisation_unchanged": 0.03419893000000229, - "tests/test_node_config_validation.py::test_altitude_alone_does_not_separate_a_coincident_pair": 0.03685383200036085, - "tests/test_node_config_validation.py::test_an_absent_altitude_becomes_null": 0.03590274799944382, - "tests/test_node_config_validation.py::test_an_empty_payload_is_rejected_rather_than_defaulted": 0.04152613999985988, - "tests/test_node_config_validation.py::test_an_explicit_null_rx_is_not_overruled_by_a_stray_legacy_lat": 0.03547263600012229, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[beam_azimuth_deg]": 0.03601343399986945, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[beam_width_deg]": 0.03324819500039666, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[cpi_s]": 0.03243288699968616, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[delay_tolerance_us]": 0.0382165150003857, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[doppler_tolerance_hz]": 0.03402523300019311, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[fc_hz]": 0.03539062700019713, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[fs_hz]": 0.03460346699966976, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[max_range_km]": 0.035670756000399706, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[rx_alt_ft]": 0.03653631299994231, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[rx_lat]": 0.034421049000229686, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[rx_lon]": 0.0369597220005744, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[tx_alt_ft]": 0.04305101299951275, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[tx_lat]": 0.03495914399991307, - "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[tx_lon]": 0.040402540000286535, - "tests/test_node_config_validation.py::test_an_out_of_range_coordinate_is_reported_before_a_missing_pair": 0.05091885899992121, - "tests/test_node_config_validation.py::test_an_unknown_field_is_rejected": 0.036088057000142726, - "tests/test_node_config_validation.py::test_an_unknown_field_is_reported_before_a_missing_one": 0.02676106199987771, - "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[bool]": 0.04815488699978232, - "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[int-too-large-for-a-float]": 0.04214183700014473, - "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[nan]": 0.04833354500033238, - "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[non-numeric-string]": 0.0511181110000507, - "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[null]": 0.05066904799969052, - "tests/test_node_config_validation.py::test_an_unusable_axis_nulls_its_partner": 0.030275302000063675, - "tests/test_node_config_validation.py::test_baseline_check_is_skipped_when_a_side_is_null": 0.04588259100000869, - "tests/test_node_config_validation.py::test_canonical_config_leaves_the_input_dict_alone": 0.07020180499966955, - "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[int]": 0.044266661000619933, - "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[list]": 0.0367557930003386, - "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[none]": 0.05216699900029198, - "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[string]": 0.05317141600016839, - "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[tuple]": 0.03316908399983731, - "tests/test_node_config_validation.py::test_canonicalising_twice_changes_nothing": 0.038921757000025536, - "tests/test_node_config_validation.py::test_config_invalid_carries_a_field_and_a_reason": 0.03302219999977751, - "tests/test_node_config_validation.py::test_every_missing_field_is_reported_by_name": 0.04053148799994233, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[beam_azimuth_deg]": 0.033237926000310836, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[beam_width_deg]": 0.03131761299982827, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[cpi_s]": 0.033830390999810334, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[delay_tolerance_us]": 0.03596745300001203, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[doppler_tolerance_hz]": 0.03584797199937384, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[fc_hz]": 0.036227812000106496, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[fs_hz]": 0.037359085999469244, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[max_range_km]": 0.03387659200006965, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[rx_alt_ft]": 0.03169241700015846, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[rx_lat]": 0.03515112400009457, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[rx_lon]": 0.03462570000010601, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[tx_alt_ft]": 0.03520644699983677, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[tx_lat]": 0.03707529099938256, - "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[tx_lon]": 0.03297897899983582, - "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[beam_width_deg]": 0.03520966500036593, - "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[cpi_s]": 0.037559937999503745, - "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[delay_tolerance_us]": 0.03515726000023278, - "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[doppler_tolerance_hz]": 0.03808697599970401, - "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[max_range_km]": 0.033729024999502144, - "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[rx_lat]": 0.03170607399988512, - "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[rx_lon]": 0.034671720000005735, - "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[tx_lat]": 0.0307146510003804, - "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[tx_lon]": 0.03026689999978771, - "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides0-rx_lat]": 0.03604519700047604, - "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides1-rx_lon]": 0.04366465099974448, - "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides2-tx_lat]": 0.03955469499987885, - "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides3-tx_lon]": 0.06312789100047667, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[beam_azimuth_deg-0]": 0.03405268899996372, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[beam_azimuth_deg-359.999]": 0.033958955999878526, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[beam_width_deg-360]": 0.03381084800003009, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[cpi_s-10]": 0.036827793999691494, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fc_hz-1000000]": 0.0404370769997513, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fc_hz-6000000000]": 0.044896166999933484, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fs_hz-100000]": 0.03424284800030364, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fs_hz-20000000]": 0.030624525000348513, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[max_range_km-1000]": 0.036024488000293786, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_alt_ft--1500]": 0.026184660000126314, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_alt_ft-30000]": 0.03168372499976613, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lat--90]": 0.03136454300056357, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lat-90]": 0.03099231200030772, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lon--180]": 0.027048676000049454, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lon-180]": 0.03227958000024955, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_alt_ft--1500]": 0.031006294000235357, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_alt_ft-30000]": 0.03736041800038947, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lat--90]": 0.031292644000131986, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lat-90]": 0.034326094000334706, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lon--180]": 0.027173558999948, - "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lon-180]": 0.029384768000454642, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-beam_azimuth_deg]": 0.03712124499998026, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-beam_width_deg]": 0.03575759499972264, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-cpi_s]": 0.03642997499991907, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-delay_tolerance_us]": 0.03624452999974892, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-doppler_tolerance_hz]": 0.033681794999665726, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-fc_hz]": 0.04302891499992256, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-fs_hz]": 0.03527541100038434, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-max_range_km]": 0.03649124000003212, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-rx_alt_ft]": 0.03572942299933857, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-rx_lat]": 0.038135956000132865, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-rx_lon]": 0.037266867000198545, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-tx_alt_ft]": 0.03666126199959763, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-tx_lat]": 0.029372907999913878, - "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-tx_lon]": 0.03140250800015565, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-beam_azimuth_deg]": 0.04951269900038824, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-beam_width_deg]": 0.03922613899931093, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-cpi_s]": 0.055273238999689056, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-delay_tolerance_us]": 0.05489794300046924, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-doppler_tolerance_hz]": 0.034231943000122556, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-fc_hz]": 0.03968855599987364, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-fs_hz]": 0.038510604000293824, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-max_range_km]": 0.05051678499967238, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-rx_alt_ft]": 0.03473070799964262, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-rx_lat]": 0.05842681399963112, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-rx_lon]": 0.05249558099967544, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-tx_alt_ft]": 0.0380178799996429, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-tx_lat]": 0.03056722599967543, - "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-tx_lon]": 0.03845242800025517, - "tests/test_node_config_validation.py::test_integers_are_normalised_to_floats": 0.03231172199957655, - "tests/test_node_config_validation.py::test_nan_is_rejected[beam_azimuth_deg]": 0.03518579999945359, - "tests/test_node_config_validation.py::test_nan_is_rejected[beam_width_deg]": 0.0374344519996157, - "tests/test_node_config_validation.py::test_nan_is_rejected[cpi_s]": 0.04434595500015348, - "tests/test_node_config_validation.py::test_nan_is_rejected[delay_tolerance_us]": 0.051155626999388915, - "tests/test_node_config_validation.py::test_nan_is_rejected[doppler_tolerance_hz]": 0.053170842999406887, - "tests/test_node_config_validation.py::test_nan_is_rejected[fc_hz]": 0.03567486500014638, - "tests/test_node_config_validation.py::test_nan_is_rejected[fs_hz]": 0.03677371799994944, - "tests/test_node_config_validation.py::test_nan_is_rejected[max_range_km]": 0.033563347999916004, - "tests/test_node_config_validation.py::test_nan_is_rejected[rx_alt_ft]": 0.03940053600035753, - "tests/test_node_config_validation.py::test_nan_is_rejected[rx_lat]": 0.032344093000119756, - "tests/test_node_config_validation.py::test_nan_is_rejected[rx_lon]": 0.03503072900002735, - "tests/test_node_config_validation.py::test_nan_is_rejected[tx_alt_ft]": 0.031979323000541626, - "tests/test_node_config_validation.py::test_nan_is_rejected[tx_lat]": 0.041943011000057595, - "tests/test_node_config_validation.py::test_nan_is_rejected[tx_lon]": 0.037065787999836175, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-beam_azimuth_deg]": 0.030666264000046795, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-beam_width_deg]": 0.03336488900004042, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-cpi_s]": 0.036995313000261376, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-delay_tolerance_us]": 0.04204748800066227, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-doppler_tolerance_hz]": 0.03460115300003963, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-fc_hz]": 0.034042088000205695, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-fs_hz]": 0.03460438299953239, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-max_range_km]": 0.03340338900034112, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-rx_alt_ft]": 0.03679840599943418, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-rx_lat]": 0.03698140500000591, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-rx_lon]": 0.03689119499995286, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-tx_alt_ft]": 0.03960468099967329, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-tx_lat]": 0.036384725000061735, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-tx_lon]": 0.03606635699952676, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-beam_azimuth_deg]": 0.040904831000261765, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-beam_width_deg]": 0.03950024799996754, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-cpi_s]": 0.04125434000025052, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-delay_tolerance_us]": 0.03632240700017064, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-doppler_tolerance_hz]": 0.03491683500033105, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-fc_hz]": 0.041309826000087924, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-fs_hz]": 0.03181296299999303, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-max_range_km]": 0.034047391999592946, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-rx_alt_ft]": 0.030946241000037844, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-rx_lat]": 0.03718863299991426, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-rx_lon]": 0.0359713580000971, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-tx_alt_ft]": 0.03999178499998379, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-tx_lat]": 0.03460485599953245, - "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-tx_lon]": 0.035949524999978166, - "tests/test_node_config_validation.py::test_non_geometry_keys_pass_through_unchanged": 0.03398857600041083, - "tests/test_node_config_validation.py::test_null_beam_azimuth_is_preserved_not_defaulted": 0.04336627900011081, - "tests/test_node_config_validation.py::test_null_beam_width_is_preserved_not_defaulted": 0.036503042000276764, - "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[full]": 0.038344768000570184, - "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[neither]": 0.038805770000635675, - "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[no-altitude]": 0.03642005799974868, - "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[no-rx]": 0.0435301179995804, - "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[no-tx]": 0.04415818600000421, - "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[one-altitude]": 0.03809913700024481, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_azimuth_deg--1]": 0.03686181800048871, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_azimuth_deg-360]": 0.038198141000066244, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_width_deg-0]": 0.03898887300010756, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_width_deg-360.1]": 0.05572572400024001, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_width_deg-361]": 0.039653474999795435, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[cpi_s--1]": 0.036972161999983655, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[cpi_s-0]": 0.034154565000335424, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[cpi_s-10.001]": 0.03617186900009983, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[delay_tolerance_us--1]": 0.040203820999977324, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[delay_tolerance_us-0]": 0.04178862200024014, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[doppler_tolerance_hz--1]": 0.03670963500007929, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[doppler_tolerance_hz-0]": 0.03313788500008741, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fc_hz-6000000001]": 0.03634466199991948, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fc_hz-999999]": 0.03810566500033019, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fs_hz-20000001]": 0.046571715999562, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fs_hz-99999]": 0.03933699799972601, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[max_range_km-0]": 0.041304042000319896, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[max_range_km-1001]": 0.043928151999807596, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_alt_ft--1501]": 0.03584282700012409, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_alt_ft-30001]": 0.03369676400006938, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lat--91]": 0.036916406999807805, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lat-91]": 0.03974977799998669, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lon--181]": 0.03557815900012429, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lon-181]": 0.03752330000043003, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_alt_ft--1501]": 0.04623784199975489, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_alt_ft-30001]": 0.038955988999532565, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_callsign-]": 0.033326140999633935, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_callsign-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": 0.03854022499945131, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lat--91]": 0.0345909490001759, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lat-91]": 0.03450947699957396, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lon--181]": 0.041643577000286314, - "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lon-181]": 0.03850624000006064, - "tests/test_node_config_validation.py::test_position_status_on_a_config_that_never_saw_validate_config[empty]": 0.12214716299968131, - "tests/test_node_config_validation.py::test_position_status_on_a_config_that_never_saw_validate_config[latitude-without-longitude]": 0.034262006000062684, - "tests/test_node_config_validation.py::test_position_status_on_a_config_that_never_saw_validate_config[unrelated-keys-only]": 0.039342175999991014, - "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[rx-null-island]": 0.03636618100017586, - "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[rx-on-the-equator]": 0.04027499800076839, - "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[tx-null-island]": 0.03512162700053523, - "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[tx-on-the-prime-meridian]": 0.046400229999562725, - "tests/test_node_config_validation.py::test_rx_and_tx_at_the_same_point_is_rejected": 0.0449104149993218, - "tests/test_node_config_validation.py::test_sharing_one_coordinate_is_not_a_degenerate_baseline[override0]": 0.03770755499999723, - "tests/test_node_config_validation.py::test_sharing_one_coordinate_is_not_a_degenerate_baseline[override1]": 0.037800827999944886, - "tests/test_node_config_validation.py::test_the_field_named_is_always_a_string": 0.03601076400036618, - "tests/test_node_config_validation.py::test_the_legacy_flat_spelling_becomes_the_rx_pair": 0.03377038899998297, - "tests/test_node_config_validation.py::test_the_output_carries_exactly_the_contract_fields": 0.03456478899988724, - "tests/test_node_config_validation.py::test_the_payload_is_not_mutated": 0.03718220400014616, - "tests/test_node_config_validation.py::test_the_published_callsign_length_is_where_the_validator_refuses": 0.03176162599947929, - "tests/test_node_config_validation.py::test_the_returned_dict_is_not_the_payload": 0.04069021899977088, - "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000.0-delay_tolerance_us]": 0.03952931100047863, - "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000.0-doppler_tolerance_hz]": 0.04074487100024271, - "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000000.0-delay_tolerance_us]": 0.037903100999756134, - "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000000.0-doppler_tolerance_hz]": 0.03479716800029564, - "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1e+300-delay_tolerance_us]": 0.061343921000570845, - "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1e+300-doppler_tolerance_hz]": 0.03827584800001205, - "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[rx-null-island]": 0.041148506000354246, - "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[rx-on-the-equator]": 0.07889233500009141, - "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[rx-on-the-prime-meridian]": 0.04484571600005438, - "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[tx-null-island]": 0.04581555000049775, - "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[tx-on-the-equator]": 0.05389436699988437, - "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[tx-on-the-prime-meridian]": 0.04771535899999435, - "tests/test_node_config_validation.py::test_zero_beam_azimuth_is_not_null": 0.03741783899977236, - "tests/test_node_contact_endpoint.py::test_a_bad_bearer_is_401_rather_than_a_body_refusal": 0.06701724499998818, - "tests/test_node_contact_endpoint.py::test_a_body_that_is_not_an_object_is_refused": 0.090494943000067, - "tests/test_node_contact_endpoint.py::test_a_body_that_is_not_json_is_refused_the_same_way": 0.06883804500057522, - "tests/test_node_contact_endpoint.py::test_a_contact_document_is_stored": 0.08003662499959319, - "tests/test_node_contact_endpoint.py::test_a_contact_put_carries_a_bounced_address": 0.10829248300024119, - "tests/test_node_contact_endpoint.py::test_a_contact_put_carries_the_claim_state": 0.10803025899986096, - "tests/test_node_contact_endpoint.py::test_a_contact_put_does_not_touch_the_claim": 0.10093773700054953, - "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload0-middle_name]": 0.06609975900028076, - "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload1-email]": 0.06581691300016246, - "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload2-phone]": 0.07286935800084393, - "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload3-first_name]": 0.07428768099953231, - "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload4-last_name]": 0.06709809099993436, - "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload5-country]": 0.06901909999987765, - "tests/test_node_contact_endpoint.py::test_a_resend_clears_what_it_omits": 0.09300779099976353, - "tests/test_node_contact_endpoint.py::test_an_empty_document_is_accepted_and_stores_nulls": 0.08155266899984781, - "tests/test_node_contact_endpoint.py::test_no_bearer_is_401_and_writes_nothing": 0.06632997299993804, - "tests/test_node_contact_endpoint.py::test_the_response_carries_the_time_the_row_was_written": 0.07598728299990398, - "tests/test_node_contact_store.py::test_delete_contact_is_false_when_there_was_nothing_to_delete": 0.062206443000377476, - "tests/test_node_contact_store.py::test_delete_contact_removes_the_row_and_says_so": 0.07427351499973156, - "tests/test_node_contact_store.py::test_every_contact_field_is_nullable": 0.07217513299974598, - "tests/test_node_contact_store.py::test_list_contacts_returns_every_row_keyed_by_node": 0.21080709399984698, - "tests/test_node_contact_store.py::test_the_migrated_schema_holds_a_contact_row": 0.06513917099982791, - "tests/test_node_contact_store.py::test_updated_at_comes_back_aware_on_the_unchanged_path": 0.07178628499968909, - "tests/test_node_contact_store.py::test_upsert_holds_one_row_per_node": 0.07159870399982537, - "tests/test_node_contact_store.py::test_upsert_leaves_updated_at_alone_when_nothing_moved": 0.07508929000005082, - "tests/test_node_contact_store.py::test_upsert_moves_updated_at_when_a_field_changes": 0.09157730900005845, - "tests/test_node_contact_store.py::test_upsert_replaces_wholesale_rather_than_merging": 0.07396532500024477, - "tests/test_node_contact_store.py::test_upsert_writes_a_row_for_a_node_that_had_none": 0.06699181100020724, - "tests/test_node_contact_validation.py::test_a_body_that_is_not_an_object_is_refused": 0.05301304800013895, - "tests/test_node_contact_validation.py::test_a_country_code_is_stored_upper_case[GB]": 0.051327871999546915, - "tests/test_node_contact_validation.py::test_a_country_code_is_stored_upper_case[Gb]": 0.08220725199953449, - "tests/test_node_contact_validation.py::test_a_country_code_is_stored_upper_case[gb]": 0.08686799499992048, - "tests/test_node_contact_validation.py::test_a_country_longer_than_the_column_is_refused_as_too_long[GBR]": 0.05992544199989425, - "tests/test_node_contact_validation.py::test_a_country_longer_than_the_column_is_refused_as_too_long[united kingdom]": 0.05368140099972152, - "tests/test_node_contact_validation.py::test_a_country_survives_surrounding_whitespace": 0.0576107859997137, - "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[1]": 0.06347374999995736, - "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[??]": 0.05753354799981025, - "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[G1]": 0.06423824700004843, - "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[G]": 0.05247901800021282, - "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[email-256]": 0.04758614100046543, - "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[first_name-65]": 0.04881727600013619, - "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[last_name-65]": 0.047315061000517744, - "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[phone-33]": 0.04861770700017587, - "tests/test_node_contact_validation.py::test_a_field_that_is_only_whitespace_normalises_to_null": 0.04475113100033923, - "tests/test_node_contact_validation.py::test_a_full_document_passes_through_unchanged": 0.046652985000037006, - "tests/test_node_contact_validation.py::test_a_non_string_is_refused[3.5]": 0.05451489900042361, - "tests/test_node_contact_validation.py::test_a_non_string_is_refused[42]": 0.07352241699936712, - "tests/test_node_contact_validation.py::test_a_non_string_is_refused[True]": 0.15043868099974134, - "tests/test_node_contact_validation.py::test_a_non_string_is_refused[value3]": 0.07241504100011298, - "tests/test_node_contact_validation.py::test_a_non_string_is_refused[value4]": 0.10499759399999675, - "tests/test_node_contact_validation.py::test_a_number_is_kept_as_typed[(020) 7946-0000]": 0.09297466600037296, - "tests/test_node_contact_validation.py::test_a_number_is_kept_as_typed[+44 20 7946 0000]": 0.08699131299999863, - "tests/test_node_contact_validation.py::test_a_number_is_kept_as_typed[07700900123]": 0.11748205799995048, - "tests/test_node_contact_validation.py::test_a_phone_that_is_not_a_number_is_refused[()]": 0.08588835000000472, - "tests/test_node_contact_validation.py::test_a_phone_that_is_not_a_number_is_refused[+44-EXT]": 0.11693376900029762, - "tests/test_node_contact_validation.py::test_a_phone_that_is_not_a_number_is_refused[not a number]": 0.07220853000035277, - "tests/test_node_contact_validation.py::test_a_shallow_check_does_not_refuse_a_working_address[a.b@sub.example.com]": 0.07041716699995959, - "tests/test_node_contact_validation.py::test_a_shallow_check_does_not_refuse_a_working_address[ada+node@example.co.uk]": 0.052902465000443044, - "tests/test_node_contact_validation.py::test_a_well_formed_code_is_taken_on_trust": 0.057804205999673286, - "tests/test_node_contact_validation.py::test_an_absent_field_is_null_rather_than_missing": 0.04566240899976037, - "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[@example.com]": 0.046351215999493434, - "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada lovelace@example.com]": 0.04591845800041483, - "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada@@example.com]": 0.04815024900017306, - "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada@]": 0.04972663799981092, - "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada@example]": 0.05099564800002554, - "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada]": 0.04352161699989665, - "tests/test_node_contact_validation.py::test_an_empty_document_is_a_null_per_field": 0.04724809500021365, - "tests/test_node_contact_validation.py::test_an_unknown_field_is_named_back": 0.06355922000057035, - "tests/test_node_contact_validation.py::test_surrounding_whitespace_is_stripped": 0.04324634600061472, - "tests/test_node_contact_validation.py::test_the_country_pattern_published_is_the_one_enforced": 0.05672084600018934, - "tests/test_node_contact_validation.py::test_the_published_schema_matches_the_bounds": 0.07364474399992105, - "tests/test_node_contact_validation.py::test_the_schema_is_fresh_every_call": 0.05145648000006986, - "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[POST-/v1/nodes/detection-body0]": 0.10386732499955542, - "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[POST-/v1/nodes/heartbeat-body1]": 0.12102092000031917, - "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[PUT-/v1/nodes/config-body2]": 0.11455530800003544, - "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[PUT-/v1/nodes/contact-body3]": 0.1652331280006365, - "tests/test_node_error_taxonomy.py::test_a_body_that_cannot_even_be_read_is_a_400_in_the_taxonomy": 0.09262571599992953, - "tests/test_node_error_taxonomy.py::test_a_body_that_is_not_json_at_all_is_a_400": 0.09525785899995753, - "tests/test_node_error_taxonomy.py::test_a_frame_naming_a_node_is_refused_by_the_key_it_added": 0.11103319800031386, - "tests/test_node_error_taxonomy.py::test_a_long_field_path_is_truncated_to_the_contracts_bound": 0.107870002999789, - "tests/test_node_error_taxonomy.py::test_a_malformed_agreements_block_answers_like_a_bad_config": 0.06734913600030268, - "tests/test_node_error_taxonomy.py::test_a_malformed_frame_is_a_400_naming_the_field": 0.11281963200008249, - "tests/test_node_error_taxonomy.py::test_a_path_that_merely_starts_with_the_prefix_is_not_under_it": 0.07201115299949379, - "tests/test_node_error_taxonomy.py::test_an_invalid_configuration_still_says_so": 0.11400348900042445, - "tests/test_node_error_taxonomy.py::test_an_oversized_body_is_untouched": 0.09534451000035915, - "tests/test_node_error_taxonomy.py::test_an_unhandled_exception_answers_500_in_the_taxonomy": 0.11669691200040688, - "tests/test_node_error_taxonomy.py::test_an_unhandled_exception_outside_the_prefix_keeps_the_plain_text_500": 0.08447497799988923, - "tests/test_node_error_taxonomy.py::test_an_unknown_node_state_is_a_400": 0.11286051299975952, - "tests/test_node_error_taxonomy.py::test_an_unrouted_path_under_the_prefix_is_in_the_taxonomy": 0.08190757300008045, - "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[POST-/v1/nodes/detection-body0]": 0.10560202900023796, - "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[POST-/v1/nodes/heartbeat-body1]": 0.11105426700032694, - "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[PUT-/v1/nodes/config-body2]": 0.12459213800002544, - "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[PUT-/v1/nodes/contact-body3]": 0.10908287600068434, - "tests/test_node_error_taxonomy.py::test_the_500_names_no_detail_and_leaks_no_exception_text": 0.115559530999235, - "tests/test_node_error_taxonomy.py::test_the_field_path_carries_an_array_index": 0.1090554269999302, - "tests/test_node_error_taxonomy.py::test_the_refusal_names_the_field_and_nothing_else": 0.11221349000061309, - "tests/test_node_error_taxonomy.py::test_the_rest_of_the_api_keeps_fastapis_shape": 0.06519552700001441, - "tests/test_node_fixtures.py::test_accepted_in_mender_resolves_to_an_accepted_record": 0.07090710800002853, - "tests/test_node_fixtures.py::test_alerts_captures_a_call_time_import": 0.08711066999967443, - "tests/test_node_fixtures.py::test_alerts_is_empty_when_nothing_alerts": 0.07195045900016339, - "tests/test_node_fixtures.py::test_each_mender_fixture_is_undone_at_teardown": 0.07301216100086094, - "tests/test_node_fixtures.py::test_mender_down_raises_mender_unreachable": 0.08405049000020881, - "tests/test_node_fixtures.py::test_node_client_does_not_run_the_lifespan": 0.09369177699954889, - "tests/test_node_fixtures.py::test_node_client_installs_and_removes_the_override": 0.06605335099993681, - "tests/test_node_fixtures.py::test_node_client_reports_status_json_content_and_headers": 0.08971668799995314, - "tests/test_node_fixtures.py::test_node_client_requests_read_the_node_session_database": 0.11935762400025851, - "tests/test_node_fixtures.py::test_pending_in_mender_resolves_but_is_not_accepted": 0.07976978599981521, - "tests/test_node_fixtures.py::test_registered_node_unpacks_as_token_then_node_id": 0.14013442899977235, - "tests/test_node_fixtures.py::test_the_seed_survives_a_rollback": 0.11961384800042651, - "tests/test_node_fixtures.py::test_the_seeded_node_has_one_active_configuration": 0.1456729740002629, - "tests/test_node_fixtures.py::test_the_seeded_node_is_active_at_config_version_one": 0.18036338600040835, - "tests/test_node_fixtures.py::test_the_seeded_node_is_registered_with_the_pipeline": 0.12436201999980767, - "tests/test_node_fixtures.py::test_the_seeded_token_actually_authenticates": 0.13588754299962602, - "tests/test_node_fixtures.py::test_the_seeded_token_is_a_live_row_hashing_to_the_stored_hash": 0.17609822399981567, - "tests/test_node_fixtures.py::test_unknown_in_mender_resolves_to_none": 0.07598197199968126, - "tests/test_node_ids.py::test_a_clash_mints_again_and_keeps_the_callers_work": 0.12444701099957456, - "tests/test_node_ids.py::test_a_clash_on_the_first_statement_of_a_transaction_mints_again": 0.11492908899981558, - "tests/test_node_ids.py::test_a_fault_in_the_callers_own_rows_is_not_retried_as_a_clash": 0.13438123099967925, - "tests/test_node_ids.py::test_a_minted_id_is_the_prefix_and_eight_hex": 0.10489030899998397, - "tests/test_node_ids.py::test_every_system_prefix_is_three_lowercase_letters[bla]": 0.09645075399930647, - "tests/test_node_ids.py::test_every_system_prefix_is_three_lowercase_letters[ret]": 0.0725719939996452, - "tests/test_node_ids.py::test_fleet_ids_are_never_minted": 0.09314017899987448, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[e2e--bla]": 0.07999469300011697, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[e2e--ret]": 0.07277055299982749, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[realnode--bla]": 0.07946223799990548, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[realnode--ret]": 0.07225760099981926, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[synth--bla]": 0.07022055200059185, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[synth--ret]": 0.07850322700005563, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[test--bla]": 0.05894218599996748, - "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[test--ret]": 0.06626248600059625, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[-None]": 0.06557002399949852, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[bla1a2b3c4d-bla]": 0.07406627100044716, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1A2B3C4D-None]": 0.07316491100027633, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1a2b3c4-None]": 0.07125771499977418, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1a2b3c4d-ret]": 0.06214402899968263, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1a2b3c4d5-None]": 0.5936524689996077, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[synth-0a1b2c3d-None]": 0.06935230100043555, - "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[xyz1a2b3c4d-None]": 0.06537144400044781, - "tests/test_node_ids.py::test_the_last_clash_is_raised_once_the_attempts_run_out": 0.13164951899943844, - "tests/test_node_models.py::test_a_config_for_an_unknown_node_is_rejected": 0.10895041699950525, - "tests/test_node_models.py::test_a_config_missing_a_processing_parameter_is_rejected[cpi_s]": 0.10615410999980668, - "tests/test_node_models.py::test_a_config_missing_a_processing_parameter_is_rejected[delay_tolerance_us]": 0.10578602500027046, - "tests/test_node_models.py::test_a_config_missing_a_processing_parameter_is_rejected[doppler_tolerance_hz]": 0.12989800700006526, - "tests/test_node_models.py::test_a_node_ref_is_unique": 0.11411460299996179, - "tests/test_node_models.py::test_a_node_round_trips": 0.11669106199997259, - "tests/test_node_models.py::test_a_token_hash_is_unique": 0.12715407200039408, - "tests/test_node_models.py::test_a_zero_beam_azimuth_is_kept_as_zero": 0.16576879000012923, - "tests/test_node_models.py::test_beam_azimuth_null_survives_a_round_trip": 0.1331464509999023, - "tests/test_node_models.py::test_beam_width_null_survives_a_round_trip": 0.1472606150005049, - "tests/test_node_models.py::test_config_versions_are_unique_per_node": 0.11130164700034584, - "tests/test_node_models.py::test_the_processing_parameters_round_trip": 0.1047947000001841, - "tests/test_node_models.py::test_the_same_version_under_two_nodes_is_fine": 0.16214768600048046, - "tests/test_node_openapi.py::test_and_a_malformed_body_really_does_answer_400": 0.1276981720002368, - "tests/test_node_openapi.py::test_both_operations_reach_one_configuration_component": 0.08974757399982991, - "tests/test_node_openapi.py::test_every_bound_the_validator_enforces_reaches_the_schema": 0.06651126099995963, - "tests/test_node_openapi.py::test_every_endpoint_but_registration_requires_the_bearer": 0.0735209450003822, - "tests/test_node_openapi.py::test_every_field_the_validator_requires_is_published_and_required": 0.09715883399985614, - "tests/test_node_openapi.py::test_every_node_operation_publishes_its_body_as_a_component": 0.08438292999971964, - "tests/test_node_openapi.py::test_every_numeric_bound_the_models_enforce_reaches_the_schema": 0.06706691599993064, - "tests/test_node_openapi.py::test_every_refusal_carries_the_contracts_error_shape": 0.06617912499996237, - "tests/test_node_openapi.py::test_every_refusal_is_annotated_with_what_the_node_may_do": 0.07627113399985319, - "tests/test_node_openapi.py::test_every_retry_after_response_publishes_the_header": 0.07162628900005075, - "tests/test_node_openapi.py::test_it_describes_the_five_node_endpoints_and_nothing_else": 0.0584130749994074, - "tests/test_node_openapi.py::test_no_bound_is_published_as_a_pydantic_keyword": 0.06514231099981771, - "tests/test_node_openapi.py::test_no_operation_publishes_a_422": 0.07683795599996301, - "tests/test_node_openapi.py::test_only_a_refused_credential_is_terminal": 0.07962928999995711, - "tests/test_node_openapi.py::test_only_the_operations_that_cost_a_mailbox_or_the_pipeline_are_rate_limited": 0.06247341000016604, - "tests/test_node_openapi.py::test_the_bearer_scheme_is_published": 0.07453406800004814, - "tests/test_node_openapi.py::test_the_committed_contract_is_what_the_routes_generate": 0.2972315619995243, - "tests/test_node_openapi.py::test_the_committed_file_parses_as_yaml_and_matches_the_document": 0.40387162899969553, - "tests/test_node_openapi.py::test_the_contact_operation_reaches_its_own_component": 0.09114489200010212, - "tests/test_node_openapi.py::test_the_contract_carries_the_node_apis_own_version": 0.06902330899947628, - "tests/test_node_openapi.py::test_the_descriptions_are_written_for_a_node_author": 0.07679836100032844, - "tests/test_node_openapi.py::test_the_nullable_fields_publish_a_null_branch": 0.0739714979999917, - "tests/test_node_openapi.py::test_the_operation_ids_are_the_ones_the_node_client_was_built_against": 0.07083168399958595, - "tests/test_node_openapi.py::test_the_servers_are_origins_and_the_paths_carry_the_version": 0.07529488899945136, - "tests/test_node_openapi.py::test_the_timestamps_are_still_typed_as_datetimes": 0.07448615500061351, - "tests/test_node_pipeline.py::test_a_frame_reaches_the_queue_under_its_node_id": 0.05459794600028545, - "tests/test_node_pipeline.py::test_a_full_queue_drops_the_frame_and_bumps_the_counter": 0.0466969620006239, - "tests/test_node_pipeline.py::test_a_node_with_no_active_configuration_cannot_be_registered": 0.07355457099993146, - "tests/test_node_pipeline.py::test_a_node_with_no_azimuth_is_registered_broadside_not_due_north": 0.07938440800035096, - "tests/test_node_pipeline.py::test_a_registered_node_appears_in_connected_nodes": 0.09231604199976573, - "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[e2e-]": 0.06685018400003173, - "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[realnode-]": 0.07274268099945402, - "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[synth-]": 0.06308462199967835, - "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[test-]": 0.06517226999994818, - "tests/test_node_pipeline.py::test_a_row_with_no_position_registers_unplaced_and_keeps_its_nulls": 0.1314659060003578, - "tests/test_node_pipeline.py::test_a_wire_tag_is_a_path_1_claim": 0.051275032000376086, - "tests/test_node_pipeline.py::test_an_aimed_node_keeps_the_azimuth_it_was_configured_with": 0.07905206499981432, - "tests/test_node_pipeline.py::test_every_node_is_primed_from_the_database_at_startup": 0.13778722400002152, - "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[e2e-]": 0.09093780599960155, - "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[realnode-]": 0.073556419000397, - "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[synth-]": 0.06626219099962327, - "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[test-]": 0.06627944800038676, - "tests/test_node_pipeline.py::test_nodes_with_no_beam_width_are_registered_at_the_nominal_yagi_width": 0.10982291799973609, - "tests/test_node_pipeline.py::test_pipeline_frame_converts_the_wire_shape": 0.050514111000211415, - "tests/test_node_pipeline.py::test_pipeline_frame_files_position_tags_the_way_the_tcp_ingest_does": 0.05140404900021167, - "tests/test_node_pipeline.py::test_pipeline_frame_omits_the_tag_fields_the_node_left_null": 0.04698789800022496, - "tests/test_node_pipeline.py::test_pipeline_frame_takes_the_hexes_from_the_tags_when_adsb_hex_is_absent": 0.05175712700020085, - "tests/test_node_pipeline.py::test_priming_skips_a_node_with_no_active_config": 0.08088651900015975, - "tests/test_node_pipeline.py::test_priming_skips_a_retired_node": 0.08991656200032594, - "tests/test_node_pipeline.py::test_re_registering_evicts_the_cached_pipeline_so_the_next_frame_sees_the_new_geometry": 0.1312445290004689, - "tests/test_node_pipeline.py::test_re_registering_picks_up_the_new_active_configuration": 0.08854007799982355, - "tests/test_node_pipeline.py::test_registration_reaches_analytics_and_the_associator": 0.13255913600005442, - "tests/test_node_pipeline.py::test_startup_priming_loads_the_fleet_from_the_app_session": 0.09084069400023509, - "tests/test_node_pipeline.py::test_startup_priming_survives_a_database_failure": 0.04811384300046484, - "tests/test_node_pipeline.py::test_the_config_hash_is_computed_before_canonicalisation": 0.0867939669997213, - "tests/test_node_pipeline.py::test_the_pipeline_config_carries_the_defaults_the_wire_config_omits": 0.1308083980002266, - "tests/test_node_pipeline.py::test_the_priming_summary_is_logged_where_it_can_actually_be_seen": 0.07966689999966547, - "tests/test_node_pipeline.py::test_the_route_uses_the_shared_conversion": 0.04957586000000447, - "tests/test_node_rate_limits.py::test_a_crowded_map_reclaims_only_counters_whose_window_has_passed": 0.06893912000032287, - "tests/test_node_rate_limits.py::test_a_full_claim_map_refuses_an_identity_it_does_not_already_track": 0.04883241400057159, - "tests/test_node_rate_limits.py::test_a_full_map_admits_a_tracked_node_whose_hourly_key_expired_but_daily_key_is_live": 0.05426440700011881, - "tests/test_node_rate_limits.py::test_a_full_registration_map_refuses_a_node_id_it_has_never_seen": 0.0570774419998088, - "tests/test_node_rate_limits.py::test_a_full_registration_map_still_serves_a_node_id_it_already_tracks": 0.055881040999793186, - "tests/test_node_rate_limits.py::test_a_live_counter_survives_a_crowded_map": 0.06705478499998208, - "tests/test_node_rate_limits.py::test_a_live_registration_counter_survives_a_crowded_map": 0.05330329500020525, - "tests/test_node_rate_limits.py::test_a_map_above_the_expected_fleet_size_warns_rather_than_evicting": 0.05313878799961458, - "tests/test_node_rate_limits.py::test_a_previously_refused_node_id_is_admitted_once_its_window_is_reclaimed": 0.06312954400073068, - "tests/test_node_rate_limits.py::test_a_refusal_by_the_address_limit_does_not_spend_the_node_limit": 0.04769928099995013, - "tests/test_node_rate_limits.py::test_a_refusal_by_the_daily_cap_does_not_spend_the_hourly_allowance": 0.05302543200014043, - "tests/test_node_rate_limits.py::test_a_refusal_does_not_hand_out_the_modules_own_body_dict": 0.04972047299997939, - "tests/test_node_rate_limits.py::test_a_refused_request_is_not_counted": 0.04842964499948721, - "tests/test_node_rate_limits.py::test_a_registration_refusal_does_not_hand_out_the_modules_own_body_dict": 0.05319888099984382, - "tests/test_node_rate_limits.py::test_an_endpoint_with_no_configured_limit_is_a_programming_error": 0.054809651999676134, - "tests/test_node_rate_limits.py::test_eight_detection_frames_a_second_are_admitted_and_the_ninth_is_not": 0.051503849999789963, - "tests/test_node_rate_limits.py::test_five_nominations_an_hour_are_admitted_and_the_sixth_is_not": 0.06078382199984844, - "tests/test_node_rate_limits.py::test_five_registrations_an_hour_are_admitted_and_the_sixth_is_not": 0.051609076999739045, - "tests/test_node_rate_limits.py::test_one_node_nominating_a_second_address_still_spends_its_own_allowance": 0.04968905099985932, - "tests/test_node_rate_limits.py::test_resetting_the_registration_limiter_clears_an_exhausted_counter": 0.04558570700010023, - "tests/test_node_rate_limits.py::test_resetting_the_token_limiter_clears_an_exhausted_counter": 0.05269800700034466, - "tests/test_node_rate_limits.py::test_the_claim_daily_limit_outlives_the_hourly_one": 0.04801769499954389, - "tests/test_node_rate_limits.py::test_the_claim_hourly_window_resets": 0.042233468999711476, - "tests/test_node_rate_limits.py::test_the_claim_retry_after_is_never_zero": 0.04521852799962289, - "tests/test_node_rate_limits.py::test_the_daily_cap_holds_though_the_hourly_window_is_fresh": 0.08036597499949494, - "tests/test_node_rate_limits.py::test_the_daily_window_resets": 0.05995872099992994, - "tests/test_node_rate_limits.py::test_the_detection_window_resets_after_a_second": 0.05440060800037827, - "tests/test_node_rate_limits.py::test_the_documented_claim_rates_are_the_ones_configured": 0.05797759999995833, - "tests/test_node_rate_limits.py::test_the_documented_rates_are_the_ones_configured": 0.058256801000425185, - "tests/test_node_rate_limits.py::test_the_documented_registration_rates_are_the_ones_configured": 0.04967366199934986, - "tests/test_node_rate_limits.py::test_the_endpoints_do_not_share_a_counter": 0.052570749999631516, - "tests/test_node_rate_limits.py::test_the_hourly_window_resets": 0.057030839000162814, - "tests/test_node_rate_limits.py::test_the_overflow_warning_is_throttled_by_its_own_interval": 0.06106839700032651, - "tests/test_node_rate_limits.py::test_the_registration_refusal_carries_the_shared_jittered_retry_after": 0.06123176000028252, - "tests/test_node_rate_limits.py::test_the_retry_after_counts_down_the_window_and_is_never_zero": 0.07557402400016144, - "tests/test_node_rate_limits.py::test_the_token_limiter_keeps_growing_past_its_bound_rather_than_refusing": 0.05782985199994073, - "tests/test_node_rate_limits.py::test_thirty_a_minute_on_the_slow_endpoints[config]": 0.05609674700008327, - "tests/test_node_rate_limits.py::test_thirty_a_minute_on_the_slow_endpoints[heartbeat]": 0.04857415000014953, - "tests/test_node_rate_limits.py::test_two_node_ids_do_not_share_a_registration_counter": 0.05503960499981986, - "tests/test_node_rate_limits.py::test_two_nodes_do_not_share_a_counter": 0.07467932100007602, - "tests/test_node_rate_limits.py::test_two_nodes_nominating_one_address_share_its_allowance": 0.06036391299994648, - "tests/test_node_refs.py::TestBackoff::test_a_failed_first_load_does_not_requery_every_call": 0.05019388699975025, - "tests/test_node_refs.py::TestIdForRef::test_a_node_id_is_not_accepted_as_a_ref": 0.06794487200022559, - "tests/test_node_refs.py::TestIdForRef::test_a_ref_resolves_back_to_its_node_id": 0.05740236000065124, - "tests/test_node_refs.py::TestIdForRef::test_an_unknown_ref_resolves_to_none": 0.056581130000722624, - "tests/test_node_refs.py::TestMirroredRef::test_a_mirrored_node_reaches_the_published_feed": 0.0485443600000508, - "tests/test_node_refs.py::TestMirroredRef::test_a_mirrored_ref_is_published_when_the_registry_has_none": 0.04834992499991131, - "tests/test_node_refs.py::TestMirroredRef::test_the_registry_wins_over_a_mirrored_ref": 0.04590369199968336, - "tests/test_node_refs.py::TestMirroredRef::test_without_one_the_node_is_still_dropped": 0.049023367000245344, - "tests/test_node_refs.py::TestPublicRecords::test_a_node_id_inside_a_tuple_is_republished": 0.05235770899980707, - "tests/test_node_refs.py::TestPublicRecords::test_an_unresolvable_id_inside_a_tuple_loses_its_place": 0.052600559999973484, - "tests/test_node_refs.py::TestRefFor::test_a_missing_id_resolves_to_none": 0.055655162000221026, - "tests/test_node_refs.py::TestRefFor::test_a_registered_node_resolves_to_its_ref": 0.05962474500029202, - "tests/test_node_refs.py::TestRefFor::test_an_unregistered_node_resolves_to_none": 0.0567752439992546, - "tests/test_node_refs.py::TestRefToIdMap::test_a_mirrored_node_resolves_through_the_ids_it_is_given": 0.0483839580001586, - "tests/test_node_refs.py::TestRefToIdMap::test_a_node_with_no_handle_at_all_is_left_out": 0.04846744399992531, - "tests/test_node_refs.py::TestRefToIdMap::test_a_synthetic_node_maps_to_itself": 0.04788001299948519, - "tests/test_node_refs.py::TestRefToIdMap::test_it_names_the_node_behind_every_registered_ref": 0.048601753000184544, - "tests/test_node_refs.py::TestRefToIdMap::test_the_registry_wins_over_a_mirrored_ref": 0.04689968899992891, - "tests/test_node_refs.py::TestRefreshIsAtomic::test_a_reader_never_sees_a_partial_map_during_concurrent_refreshes": 1.1156258749997505, - "tests/test_node_refs.py::TestRefreshIsAtomic::test_a_successful_refresh_rebinds_rather_than_mutates": 0.06132290400000784, - "tests/test_node_refs.py::TestSubstituteIdentities::test_a_hex_left_with_no_nodes_loses_its_entry": 0.04874257900064549, - "tests/test_node_refs.py::TestSubstituteIdentities::test_a_null_node_id_is_published_as_a_null_ref": 0.05146837200027221, - "tests/test_node_refs.py::TestSubstituteIdentities::test_a_single_node_entry_carries_the_ref": 0.05272736600045391, - "tests/test_node_refs.py::TestSubstituteIdentities::test_a_synthetic_node_passes_through_unchanged": 0.05338108600017222, - "tests/test_node_refs.py::TestSubstituteIdentities::test_an_empty_contributor_list_is_renamed_not_dropped": 0.05116547300031016, - "tests/test_node_refs.py::TestSubstituteIdentities::test_an_unresolvable_real_node_is_dropped_not_published": 0.05101946000013413, - "tests/test_node_refs.py::TestSubstituteIdentities::test_arcs_and_detecting_nodes_are_substituted": 0.05095353300021088, - "tests/test_node_refs.py::TestSubstituteIdentities::test_contributing_ids_are_substituted": 0.05094623600052728, - "tests/test_node_refs.py::TestSubstituteIdentities::test_the_messages_count_follows_what_survives": 0.048361675000251125, - "tests/test_node_refs.py::TestUnresolvedLogging::test_a_different_unresolvable_id_still_logs_its_own_line": 0.05224819299974115, - "tests/test_node_refs.py::TestUnresolvedLogging::test_a_refresh_lets_it_log_again": 0.04870932000039829, - "tests/test_node_refs.py::TestUnresolvedLogging::test_a_repeated_unresolvable_id_logs_once": 0.05017097500012824, - "tests/test_node_refusals.py::test_the_retry_after_is_a_whole_number_of_seconds": 0.04555587899994862, - "tests/test_node_refusals.py::test_the_retry_after_is_jittered_rather_than_constant": 0.04817321999962587, - "tests/test_node_refusals.py::test_the_retry_after_stays_inside_the_jittered_range": 0.04123019300004671, - "tests/test_node_refusals.py::test_the_two_bodies_are_the_documented_ones": 0.038528044000031514, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_failed_commit_does_not_invalidate_or_publish[False]": 0.09002310499954547, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_failed_commit_does_not_invalidate_or_publish[True]": 0.11029751300020507, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_new_private_registration_refreshes_policy_before_pipeline_publication": 0.08681795899974531, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_pipeline_failure_keeps_committed_privacy_effective": 0.09991600600005768, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[active-private-public]": 0.1207496940000965, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[active-public-private]": 0.1205315650004195, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[blocked-private-public]": 0.1530381130000933, - "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[blocked-public-private]": 0.13698557899942898, - "tests/test_node_register.py::test_a_blocked_board_re_registers_without_returning_to_the_pipeline": 0.1273689280005783, - "tests/test_node_register.py::test_a_colliding_registration_is_refused_rather_than_a_500": 0.08202421799978765, - "tests/test_node_register.py::test_a_first_registration_raises_no_hold": 0.08402954800021689, - "tests/test_node_register.py::test_a_malformed_node_id_never_reaches_mender": 0.05087297000000035, - "tests/test_node_register.py::test_a_private_choice_is_recorded_as_private": 0.0921257500003776, - "tests/test_node_register.py::test_a_refused_registration_writes_nothing": 0.0757466539998859, - "tests/test_node_register.py::test_agreements_missing_publication_is_rejected": 0.051401357999566244, - "tests/test_node_register.py::test_an_acceptance_sent_with_an_offset_is_stored_as_the_instant": 0.09207303700031844, - "tests/test_node_register.py::test_an_accepted_device_registers": 0.08707203799986019, - "tests/test_node_register.py::test_an_invalid_config_is_a_400_only_after_identity_resolves": 0.06090971499997977, - "tests/test_node_register.py::test_an_over_long_unknown_config_key_is_still_a_400": 0.04964173800044591, - "tests/test_node_register.py::test_an_unknown_device_raises_no_alert": 0.05065221199993175, - "tests/test_node_register.py::test_every_refusal_class_shares_one_body": 0.25070208999977694, - "tests/test_node_register.py::test_mender_unreachable_raises_the_alert": 0.052491467999971064, - "tests/test_node_register.py::test_re_registration_clears_the_previous_owners_contact": 0.1376445160003641, - "tests/test_node_register.py::test_re_registration_keeps_the_node_ref_and_returns_the_held_version": 0.15331534500046473, - "tests/test_node_register.py::test_re_registration_records_a_withdrawn_publication_choice": 0.11087960499980909, - "tests/test_node_register.py::test_re_registration_revokes_the_previous_token": 0.11289932499948918, - "tests/test_node_register.py::test_the_agreement_records_are_stored": 0.0826682709994202, - "tests/test_node_register.py::test_the_configuration_is_stored_as_version_one": 0.10109521100002894, - "tests/test_node_register.py::test_the_hold_alert_fires_after_the_commit": 0.11132733399972494, - "tests/test_node_register.py::test_the_limiter_is_keyed_per_node_id": 0.21917680300020947, - "tests/test_node_register.py::test_the_node_reaches_the_pipeline": 0.07520866999993814, - "tests/test_node_register.py::test_the_rate_limiter_fires_before_the_mender_call": 0.1850010869993639, - "tests/test_node_register.py::test_the_registered_node_is_active_and_holds_a_live_token": 0.09517990299991652, - "tests/test_node_register.py::test_the_registration_is_committed_rather_than_left_pending": 0.08602851900013775, - "tests/test_node_registration_flag.py::TestPublishedPayload::test_the_declared_polygon_is_translated_rigidly": 0.05770349200020064, - "tests/test_node_registration_flag.py::TestPublishedPayload::test_the_manager_keeps_the_true_wedge": 0.05355518699980166, - "tests/test_node_registration_flag.py::TestPublishedPayload::test_the_source_survives_the_public_rewrite": 0.05552654899975096, - "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_a_real_node_still_publishes_evidence_only": 0.04837050200012527, - "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_a_synthetic_node_publishes_its_declared_cone": 0.04941862500027128, - "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_it_is_published_before_any_traffic_has_flown": 0.0508405729997321, - "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_the_cone_is_the_declared_one": 0.05421030800016524, - "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_the_two_registries_still_agree_on_the_node": 0.05320971100036331, - "tests/test_node_retirement.py::TestAdminRoutes::test_a_sweep_that_partly_fails_returns_207": 0.1787780740000926, - "tests/test_node_retirement.py::TestAdminRoutes::test_a_sweep_that_retires_nothing_and_fails_returns_500": 0.18195999399995344, - "tests/test_node_retirement.py::TestAdminRoutes::test_delete_conflicts_on_a_connected_node": 0.18144139400010317, - "tests/test_node_retirement.py::TestAdminRoutes::test_delete_retires_the_node": 0.1935384280004655, - "tests/test_node_retirement.py::TestAdminRoutes::test_delete_with_force_retires_a_connected_node": 0.188387161999799, - "tests/test_node_retirement.py::TestAdminRoutes::test_retire_stale_sweeps_and_reports": 0.17561436100049832, - "tests/test_node_retirement.py::TestAdminRoutes::test_stale_listing_names_the_departed_node": 0.18309213600014118, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_an_unforced_retire_is_never_restricted": 0.05955584200000885, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_is_permitted_inside_the_allowlist": 0.051324222999937774, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_is_refused_outside_the_allowlist": 0.04662311999982194, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_is_unrestricted_when_no_prefixes_are_configured": 0.0520948289995431, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_on_a_node_already_absent_is_not_restricted": 0.03966676100026234, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_the_allowlist_gates_a_disconnected_node_too": 0.04178843199997573, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_the_route_permits_a_force_retire_inside_the_allowlist": 0.1710611199991945, - "tests/test_node_retirement.py::TestForceRetireAllowlist::test_the_route_refuses_with_403_and_names_the_prefixes": 0.17701883900053872, - "tests/test_node_retirement.py::TestParseCommaList::test_a_normal_two_prefix_value": 0.050171589000001404, - "tests/test_node_retirement.py::TestParseCommaList::test_a_trailing_comma_does_not_yield_an_empty_prefix": 0.041110097000455426, - "tests/test_node_retirement.py::TestParseCommaList::test_an_empty_string_yields_no_prefixes": 0.04307374800055186, - "tests/test_node_retirement.py::TestParseCommaList::test_whitespace_around_entries_is_stripped": 0.0389504479999232, - "tests/test_node_retirement.py::TestRetireNode::test_a_disconnected_node_is_still_held_and_still_refused": 0.04879775100016559, - "tests/test_node_retirement.py::TestRetireNode::test_a_failure_partway_re_raises_and_leaves_the_rest_retirable": 0.04773337500000707, - "tests/test_node_retirement.py::TestRetireNode::test_force_overrides_the_refusal": 0.04674457500004792, - "tests/test_node_retirement.py::TestRetireNode::test_it_clears_analytics_and_custody": 0.04811743900017973, - "tests/test_node_retirement.py::TestRetireNode::test_it_evicts_the_cached_pipeline": 0.04191761599940946, - "tests/test_node_retirement.py::TestRetireNode::test_it_evicts_the_node_from_the_fleet_registry": 0.0494504770003914, - "tests/test_node_retirement.py::TestRetireNode::test_it_refuses_a_connected_node": 0.04396184600000197, - "tests/test_node_retirement.py::TestRetireNode::test_retire_stale_clears_everything_absent": 0.04104198400000314, - "tests/test_node_retirement.py::TestRetireNode::test_retire_stale_records_a_failure_and_keeps_going": 0.04785282999955598, - "tests/test_node_retirement.py::TestRetireNode::test_retire_stale_skips_a_node_that_reconnected_and_finishes_the_rest": 0.04386128399983136, - "tests/test_node_retirement.py::TestRetireNode::test_retiring_a_node_that_was_never_registered_is_a_no_op": 0.05410130000018398, - "tests/test_node_retirement.py::TestStaleDetection::test_a_connected_node_is_not": 0.04528514200001155, - "tests/test_node_retirement.py::TestStaleDetection::test_a_departed_node_is_reported_stale": 0.05167719200017018, - "tests/test_node_retirement.py::TestStaleDetection::test_custody_alone_is_enough_to_be_held": 0.05079099099975792, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/claim/resend]": 0.0678729060009573, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/claim]": 0.056017520999830595, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/config]": 0.053857071000493306, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/contact]": 0.047865422000086255, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/detection]": 0.05233261399916955, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/heartbeat]": 0.06943027499983145, - "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/register]": 0.08037668799988751, - "tests/test_node_router_skeleton.py::test_a_non_node_path_is_not_capped_at_8_kib": 0.09713553300070998, - "tests/test_node_router_skeleton.py::test_a_non_node_path_over_the_global_cap_keeps_the_detail_shape": 0.03820432099973914, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/claim/resend]": 0.050004881999484496, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/claim]": 0.04911682700003439, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/config]": 0.04270721400052935, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/contact]": 0.04395513600002232, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/detection]": 0.0590266729996074, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/heartbeat]": 0.041667171000426606, - "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/register]": 0.035675203000209876, - "tests/test_node_router_skeleton.py::test_detection_cap_is_larger_than_the_other_three": 0.05658381400007784, - "tests/test_node_router_skeleton.py::test_every_capped_path_has_a_method_and_vice_versa": 0.040017213000282936, - "tests/test_node_router_skeleton.py::test_main_wires_the_node_caps_into_the_middleware": 0.03454279600009613, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/claim/resend]": 0.06263619999936054, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/claim]": 0.05258174299979146, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/config]": 0.0539086730004783, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/contact]": 0.05175744699954521, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/detection]": 0.04794865099984236, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/heartbeat]": 0.04436275399984879, - "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/register]": 0.04921078099960141, - "tests/test_node_router_skeleton.py::test_the_node_router_is_mounted_under_v1_nodes": 0.03681057299991153, - "tests/test_node_router_skeleton.py::test_the_skeleton_carries_all_three_endpoint_modules": 0.034557217999918066, - "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_a_frame_without_either_column_is_valid": 0.029272688999753882, - "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_a_hex_only_frame_is_still_accepted": 0.030762754000534187, - "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_tags_alone_carry_the_association": 0.036053123000328924, - "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_tags_alone_must_still_be_parallel": 0.03436332599994785, - "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_the_contract_marks_it_deprecated": 0.03932048599972404, - "tests/test_node_schemas.py::TestAdsbTags::test_a_hex_beside_a_null_tag_is_accepted": 0.034303904999433144, - "tests/test_node_schemas.py::TestAdsbTags::test_a_tag_needs_only_hex_and_position": 0.032759422999333765, - "tests/test_node_schemas.py::TestAdsbTags::test_a_tag_on_an_unassociated_detection_is_refused": 0.03737263500033805, - "tests/test_node_schemas.py::TestAdsbTags::test_a_tagged_frame_round_trips": 0.03688181199959217, - "tests/test_node_schemas.py::TestAdsbTags::test_a_tags_hex_must_agree_with_adsb_hex": 0.030184499000370124, - "tests/test_node_schemas.py::TestAdsbTags::test_absent_is_none_and_the_documented_frame_still_round_trips": 0.03712158600046678, - "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[alt-ground]": 0.03889547699964169, - "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[hex-4CA1F2]": 0.029858008999781305, - "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[lat-90.5]": 0.035083536000001914, - "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[lon--180.5]": 0.03571698500036291, - "tests/test_node_schemas.py::TestAdsbTags::test_the_list_must_be_parallel": 0.03650474100049905, - "tests/test_node_schemas.py::TestAdsbTags::test_unknown_keys_in_a_tag_are_refused": 0.031042063999848324, - "tests/test_node_schemas.py::test_a_board_model_over_64_characters_is_rejected": 0.03739049200021327, - "tests/test_node_schemas.py::test_a_boolean_is_not_a_measurement[delay]": 0.037425638000058825, - "tests/test_node_schemas.py::test_a_boolean_is_not_a_measurement[doppler]": 0.04115533100002722, - "tests/test_node_schemas.py::test_a_boolean_is_not_a_measurement[snr]": 0.04246259399997143, - "tests/test_node_schemas.py::test_a_config_version_below_one_is_rejected": 0.0359325279996483, - "tests/test_node_schemas.py::test_a_detail_over_512_characters_is_rejected": 0.03047133500012933, - "tests/test_node_schemas.py::test_a_frame_below_a_documented_bound_is_rejected[override0]": 0.037631743000019924, - "tests/test_node_schemas.py::test_a_frame_below_a_documented_bound_is_rejected[override1]": 0.03898618000039278, - "tests/test_node_schemas.py::test_a_frame_below_a_documented_bound_is_rejected[override2]": 0.03578743000025497, - "tests/test_node_schemas.py::test_a_frame_carrying_a_node_identifier_is_rejected": 0.03499578500077405, - "tests/test_node_schemas.py::test_a_malformed_boot_id_is_rejected[K3N8V2QP71AB]": 0.0323013809997974, - "tests/test_node_schemas.py::test_a_malformed_boot_id_is_rejected[k3n8v2q]": 0.02982041300037963, - "tests/test_node_schemas.py::test_a_malformed_boot_id_is_rejected[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk]": 0.03899108999985401, - "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[4CA1F2]": 0.03605020099939793, - "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[4ca1f22]": 0.02992845899962049, - "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[4ca1f]": 0.032452773000386514, - "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[zzzzzz]": 0.03811422800026776, - "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[]": 0.02873126400027104, - "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[nde4f2k9xq7m3b8]": 0.030698281000240968, - "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[ret1A2B3C4D]": 0.036521285000617354, - "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[ret1a2b3c4]": 0.040396154999598366, - "tests/test_node_schemas.py::test_a_malformed_node_ref_is_rejected[NDE4F2K9XQ7M3B8]": 0.03903444900015529, - "tests/test_node_schemas.py::test_a_malformed_node_ref_is_rejected[abc4f2k9xq7m3b8]": 0.0363828059998923, - "tests/test_node_schemas.py::test_a_malformed_node_ref_is_rejected[nde4f2k9xq7m3b]": 0.03559926899970378, - "tests/test_node_schemas.py::test_a_naive_server_time_is_rejected": 0.03189920400018309, - "tests/test_node_schemas.py::test_a_negative_uptime_is_rejected": 0.03546311300033267, - "tests/test_node_schemas.py::test_a_node_with_no_version_yet_sends_null": 0.03571683300015138, - "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_inside_snr[inf]": 0.039099218000046676, - "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_inside_snr[nan]": 0.0313232829998924, - "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_on_t[inf]": 0.04555052199975762, - "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_on_t[nan]": 0.048565976999725535, - "tests/test_node_schemas.py::test_a_numeric_string_is_not_a_count": 0.04811104000009436, - "tests/test_node_schemas.py::test_a_numeric_string_is_not_a_measurement": 0.034605981999902724, - "tests/test_node_schemas.py::test_a_private_choice_is_carried": 0.03611100499983877, - "tests/test_node_schemas.py::test_a_synthetic_node_ref_is_accepted": 0.03795563800031232, - "tests/test_node_schemas.py::test_a_third_choice_is_rejected": 0.03832801999988078, - "tests/test_node_schemas.py::test_a_token_outside_the_documented_length_is_rejected[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk]": 0.03584494500000801, - "tests/test_node_schemas.py::test_a_token_outside_the_documented_length_is_rejected[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk]": 0.040516720000141504, - "tests/test_node_schemas.py::test_a_versions_field_over_64_characters_is_rejected": 0.03574454399995375, - "tests/test_node_schemas.py::test_absent_adsb_means_disabled_rather_than_unknown": 0.0347330729996429, - "tests/test_node_schemas.py::test_agreements_missing_publication_are_rejected": 0.03406055599953106, - "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[blah2]": 0.03679400299961344, - "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[cpu_pct]": 0.040443496000079904, - "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[disk_free_mb]": 0.033917929000381264, - "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[temp_c]": 0.03729071399948225, - "tests/test_node_schemas.py::test_an_acceptance_timestamp_without_an_offset_is_rejected": 0.03737450099970374, - "tests/test_node_schemas.py::test_an_acceptance_version_over_32_characters_is_rejected": 0.03708742099979645, - "tests/test_node_schemas.py::test_an_empty_frame_is_valid": 0.04224317099942709, - "tests/test_node_schemas.py::test_an_error_body_may_name_the_condition": 0.03761361000033503, - "tests/test_node_schemas.py::test_an_error_body_omits_detail_when_there_is_none": 0.03334623399996417, - "tests/test_node_schemas.py::test_an_error_over_64_characters_is_rejected": 0.03426120300036928, - "tests/test_node_schemas.py::test_an_omitted_choice_is_rejected_rather_than_defaulted": 0.03670014499948593, - "tests/test_node_schemas.py::test_an_out_of_range_rx_lat_is_left_for_the_validator": 0.031682979999914096, - "tests/test_node_schemas.py::test_an_over_long_error_string_is_rejected": 0.043131168999479996, - "tests/test_node_schemas.py::test_an_unassociated_detection_is_null_rather_than_absent": 0.033840651999980764, - "tests/test_node_schemas.py::test_an_undocumented_state_is_rejected": 0.038712691999990057, - "tests/test_node_schemas.py::test_an_unknown_heartbeat_key_is_rejected": 0.03551329900028577, - "tests/test_node_schemas.py::test_an_unknown_top_level_key_is_rejected": 0.03264502199999697, - "tests/test_node_schemas.py::test_an_unrecognised_config_key_is_also_left_for_the_validator": 0.03477218600028209, - "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[adsb_hex]": 0.03241331099980016, - "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[delay]": 0.03767425799969715, - "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[doppler]": 0.03745661100037978, - "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[snr]": 0.033437048999530816, - "tests/test_node_schemas.py::test_every_documented_state_is_accepted[error]": 0.03298291300006895, - "tests/test_node_schemas.py::test_every_documented_state_is_accepted[paused]": 0.03295913300007669, - "tests/test_node_schemas.py::test_every_documented_state_is_accepted[stalled]": 0.0408285639996393, - "tests/test_node_schemas.py::test_every_documented_state_is_accepted[starting]": 0.03599013500024739, - "tests/test_node_schemas.py::test_every_documented_state_is_accepted[stopping]": 0.03722568700004558, - "tests/test_node_schemas.py::test_every_documented_state_is_accepted[streaming]": 0.03556343599984757, - "tests/test_node_schemas.py::test_every_frame_field_is_required[boot_id]": 0.031078930999683507, - "tests/test_node_schemas.py::test_every_frame_field_is_required[config_version]": 0.03005699999994249, - "tests/test_node_schemas.py::test_every_frame_field_is_required[delay]": 0.035650876999625325, - "tests/test_node_schemas.py::test_every_frame_field_is_required[doppler]": 0.03548958599958496, - "tests/test_node_schemas.py::test_every_frame_field_is_required[seq]": 0.038001348999841866, - "tests/test_node_schemas.py::test_every_frame_field_is_required[snr]": 0.0355869990003157, - "tests/test_node_schemas.py::test_every_frame_field_is_required[t]": 0.03505781500007288, - "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override0]": 0.037161612999625504, - "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override1]": 0.03827604000025531, - "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override2]": 0.034071149999363115, - "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override3]": 0.03633545499997126, - "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override4]": 0.03625639499978206, - "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override5]": 0.03734428699954151, - "tests/test_node_schemas.py::test_health_says_known_to_be_unknown_with_nulls": 0.03880476099993757, - "tests/test_node_schemas.py::test_the_acknowledgement_round_trips": 0.03450720299997556, - "tests/test_node_schemas.py::test_the_array_bound_is_512": 0.04319333100011136, - "tests/test_node_schemas.py::test_the_config_response_carries_the_active_version": 0.032980592000058095, - "tests/test_node_schemas.py::test_the_documented_frame_round_trips": 0.039799752999897464, - "tests/test_node_schemas.py::test_the_documented_heartbeat_round_trips": 0.029555758999777026, - "tests/test_node_schemas.py::test_the_documented_registration_body_round_trips": 0.03145822500027862, - "tests/test_node_schemas.py::test_the_error_body_documents_its_fields_on_the_serialisation_side": 0.03528933200004758, - "tests/test_node_schemas.py::test_the_error_body_still_honours_the_dump_arguments": 0.03692293799986146, - "tests/test_node_schemas.py::test_the_error_list_is_bounded_at_32": 0.04239762199995312, - "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[boot_id]": 0.032662049999999, - "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[config_version]": 0.03362111800015555, - "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[state]": 0.0367994300004284, - "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[uptime_s]": 0.03670382599966615, - "tests/test_node_schemas.py::test_the_heartbeat_refuses_to_be_built_without_a_claim_state": 0.033029725999767834, - "tests/test_node_schemas.py::test_the_heartbeat_response_round_trips_with_a_z_suffixed_time": 0.03880468499983181, - "tests/test_node_schemas.py::test_the_minimal_heartbeat_is_state_uptime_boot_id_and_version": 0.032772057999864046, - "tests/test_node_schemas.py::test_the_registration_response_round_trips_with_a_z_suffixed_time": 0.030372134000117512, - "tests/test_node_sites.py::TestAudit::test_a_near_miss_beyond_the_radius_is_reported_not_merged": 0.03455704199996035, - "tests/test_node_sites.py::TestAudit::test_a_shared_site_is_reported": 0.035427289999915956, - "tests/test_node_sites.py::TestAudit::test_a_zero_radius_is_the_exact_rule_alone": 0.058424620000096184, - "tests/test_node_sites.py::TestAudit::test_ordinary_neighbours_are_not_near_misses": 0.045689258999118465, - "tests/test_node_sites.py::TestAudit::test_the_audit_logs_once_per_change": 0.04698209200023484, - "tests/test_node_sites.py::TestAudit::test_the_radius_is_configurable_under_both_names": 0.051748472999861406, - "tests/test_node_sites.py::TestProximityJoin::test_a_chain_of_near_neighbours_does_not_become_one_site": 0.05341907899992293, - "tests/test_node_sites.py::TestProximityJoin::test_a_disconnected_anchor_does_not_move_the_joined_node": 0.041719076000845234, - "tests/test_node_sites.py::TestProximityJoin::test_a_lone_receiver_beyond_the_radius_keys_on_itself": 0.039708200999939436, - "tests/test_node_sites.py::TestProximityJoin::test_a_lone_receiver_joins_the_nearest_site": 0.03097271799970258, - "tests/test_node_sites.py::TestProximityJoin::test_a_receiver_16_m_from_a_pair_joins_it_even_with_a_lower_id": 0.042183251000551536, - "tests/test_node_sites.py::TestProximityJoin::test_a_receiver_56_m_from_a_site_joins_it": 0.05080344499947387, - "tests/test_node_sites.py::TestProximityJoin::test_the_declared_uncertainty_widens_for_the_whole_site": 0.04916819599975497, - "tests/test_node_sites.py::TestProximityJoin::test_the_join_does_not_depend_on_connection_order": 0.03824395299989192, - "tests/test_node_sites.py::TestProximityJoin::test_the_joined_node_is_published_at_the_site_point": 0.04730271200014613, - "tests/test_node_sites.py::TestProximityJoin::test_the_joined_node_lands_on_the_anchor_as_configured_not_as_rounded": 0.04085085400038224, - "tests/test_node_sites.py::TestProximityJoin::test_the_joined_nodes_artefacts_move_with_its_marker": 0.048706397999922046, - "tests/test_node_sites.py::TestProximityJoin::test_two_lone_receivers_within_the_radius_become_one_site": 0.05468479700039097, - "tests/test_node_sites.py::TestSharedOffset::test_a_lone_node_is_not_re_fuzzed_by_this_module": 0.03401527299956797, - "tests/test_node_sites.py::TestSharedOffset::test_arc_and_trail_deltas_agree_with_the_shared_anchor": 0.04221771999982593, - "tests/test_node_sites.py::TestSharedOffset::test_co_located_nodes_publish_the_same_point": 0.038159069000357704, - "tests/test_node_sites.py::TestSharedOffset::test_the_centroid_attack_gains_nothing": 0.03942323800038139, - "tests/test_node_sites.py::TestSharedOffset::test_the_shared_point_is_still_displaced": 0.03927657200028989, - "tests/test_node_sites.py::TestSiteIdentity::test_a_bad_position_is_not_a_site": 0.03782116799993673, - "tests/test_node_sites.py::TestSiteIdentity::test_a_disconnected_site_mate_does_not_dissolve_the_site": 0.03259489699985352, - "tests/test_node_sites.py::TestSiteIdentity::test_a_lone_node_keys_on_itself": 0.03756941999972696, - "tests/test_node_sites.py::TestSiteIdentity::test_a_node_with_no_known_position_keys_on_itself": 0.03800572000045577, - "tests/test_node_sites.py::TestSiteIdentity::test_a_third_node_joins_the_same_site": 0.03732593599943357, - "tests/test_node_sites.py::TestSiteIdentity::test_co_located_nodes_key_on_the_lowest_id": 0.037894119000156934, - "tests/test_node_sites.py::TestSiteIdentity::test_positions_differing_below_the_rounding_are_one_site": 0.0345741240003008, - "tests/test_node_sites.py::TestSources::test_a_failing_source_does_not_break_the_others": 0.04557068599979175, - "tests/test_node_sites.py::TestSources::test_a_file_defined_node_is_a_site": 0.04237582699988707, - "tests/test_node_sites.py::TestSources::test_a_site_is_not_invented_from_a_missing_source": 0.040054880999832676, - "tests/test_node_sites.py::test_km_between_is_the_real_distance": 0.042176947000371, - "tests/test_node_streaming.py::test_a_blocked_node_is_not_recovered_into_the_pipeline": 0.08679495900059919, - "tests/test_node_streaming.py::test_a_blocked_node_is_told_to_pause_on_the_heartbeat": 0.08990989200037802, - "tests/test_node_streaming.py::test_a_blocked_node_is_told_to_pause_rather_than_refused": 0.09396616799949697, - "tests/test_node_streaming.py::test_a_blocked_node_s_frames_stay_out_of_the_pipeline": 0.09342379800000344, - "tests/test_node_streaming.py::test_a_declined_frame_is_not_offered": 0.08449754200000825, - "tests/test_node_streaming.py::test_a_dropped_frame_is_counted_rather_than_only_logged": 0.08808506000013949, - "tests/test_node_streaming.py::test_a_frame_from_a_node_absent_from_the_pipeline_is_not_filed": 0.12470222199954151, - "tests/test_node_streaming.py::test_a_frame_is_accepted_whole_and_reaches_the_queue": 0.13787570400018012, - "tests/test_node_streaming.py::test_a_frame_without_adsb_hex_is_accepted": 0.1678056050000123, - "tests/test_node_streaming.py::test_a_full_queue_is_a_dropped_frame_rather_than_an_error": 0.08695252999950753, - "tests/test_node_streaming.py::test_a_heartbeat_carries_a_bounced_address": 0.10023519499964095, - "tests/test_node_streaming.py::test_a_heartbeat_carries_a_pending_claim": 0.10256192800034114, - "tests/test_node_streaming.py::test_a_heartbeat_carries_the_claim_state": 0.09913955199999691, - "tests/test_node_streaming.py::test_a_heartbeat_on_an_owned_node_names_the_bound_address": 0.10450989800028765, - "tests/test_node_streaming.py::test_a_heartbeat_recovers_a_node_missing_from_the_pipeline": 0.0913173500002813, - "tests/test_node_streaming.py::test_a_heartbeat_restores_filing_after_frames_were_dropped": 0.11946051299992178, - "tests/test_node_streaming.py::test_a_heartbeat_returns_the_whole_downlink": 0.08676335600057428, - "tests/test_node_streaming.py::test_a_node_holding_no_config_version_is_heard_and_told_it_is_stale": 0.1388948559997516, - "tests/test_node_streaming.py::test_a_node_with_no_active_configuration_still_gets_its_beat_answered": 0.11353909999979805, - "tests/test_node_streaming.py::test_a_recovered_node_is_stamped_on_the_same_beat_that_recovered_it": 0.09644058000048972, - "tests/test_node_streaming.py::test_a_release_reaches_the_node_on_the_next_beat": 0.11394362300006833, - "tests/test_node_streaming.py::test_a_stale_config_version_is_reported_the_same_on_both_endpoints": 0.137098856999728, - "tests/test_node_streaming.py::test_a_superseded_config_version_is_accepted_and_reported_stale": 0.12084776400024566, - "tests/test_node_streaming.py::test_an_accepted_frame_is_offered_to_the_mirror": 0.0871140819995162, - "tests/test_node_streaming.py::test_an_empty_frame_is_valid_and_still_reaches_the_queue": 0.08709825400001137, - "tests/test_node_streaming.py::test_an_unknown_config_version_is_409": 0.10240325600079814, - "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[no-header-/v1/nodes/detection]": 0.07524277099992105, - "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[no-header-/v1/nodes/heartbeat]": 0.07266829900027005, - "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[unknown-token-/v1/nodes/detection]": 0.08648623699991731, - "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[unknown-token-/v1/nodes/heartbeat]": 0.10896563599999354, - "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[wrong-scheme-/v1/nodes/detection]": 0.08152766800048994, - "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[wrong-scheme-/v1/nodes/heartbeat]": 0.08224491900045905, - "tests/test_node_streaming.py::test_ingest_path_does_no_io_even_with_the_mirror_armed": 0.09065095400001155, - "tests/test_node_streaming.py::test_parallel_arrays_of_different_lengths_are_rejected[empty-adsb-hex]": 0.08125928699973883, - "tests/test_node_streaming.py::test_parallel_arrays_of_different_lengths_are_rejected[long-delay]": 0.08460743400019055, - "tests/test_node_streaming.py::test_parallel_arrays_of_different_lengths_are_rejected[short-snr]": 0.08393490999969799, - "tests/test_node_streaming.py::test_server_time_is_rfc3339_utc_with_a_z": 0.09134686700008388, - "tests/test_node_streaming.py::test_the_ack_is_unchanged_with_the_mirror_unarmed": 0.11854030799986504, - "tests/test_node_streaming.py::test_the_association_is_not_filed_as_a_position": 0.08285211900056311, - "tests/test_node_streaming.py::test_the_capture_time_is_converted_to_milliseconds": 0.08836442299980263, - "tests/test_node_streaming.py::test_the_detection_path_writes_nothing_to_the_database": 0.11654234399975394, - "tests/test_node_streaming.py::test_the_frame_carries_no_node_identifier": 0.08453007099979004, - "tests/test_node_streaming.py::test_the_heartbeat_stamps_last_seen_and_the_node_list": 0.08886240899983022, - "tests/test_node_streaming.py::test_the_node_absent_from_the_pipeline_is_not_told_to_stop": 0.1189485350000723, - "tests/test_node_streaming.py::test_the_per_token_detection_limit_fires": 0.17396072499968795, - "tests/test_node_streaming.py::test_the_per_token_heartbeat_limit_fires": 0.5423921680007879, - "tests/test_node_streaming.py::test_the_queued_frame_is_attributed_from_the_token": 0.10216632199990272, - "tests/test_node_streaming.py::test_the_restart_local_counter_travels_with_the_frame": 0.0852345110006354, - "tests/test_node_streaming.py::test_the_route_binds_the_shared_limiter": 0.04105604599953949, - "tests/test_node_streaming.py::test_the_two_endpoints_do_not_share_one_allowance": 0.17125383500024327, - "tests/test_output_routes.py::TestApiDocs::test_docs_returns_html": 0.19544387100040694, - "tests/test_output_routes.py::TestApiDocs::test_the_documented_fields_are_the_published_ones": 0.18628242399972805, - "tests/test_output_routes.py::TestApiDocs::test_the_worked_example_names_no_real_node": 0.18764946200008126, - "tests/test_output_routes.py::TestFormatAircraft::test_format_defaults": 0.046974732000307995, - "tests/test_output_routes.py::TestFormatAircraft::test_format_includes_expected_keys": 0.049804347999724996, - "tests/test_output_routes.py::TestFormatAircraft::test_the_private_field_names_are_not_emitted": 0.048983323999436834, - "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_empty": 0.1813848699994196, - "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_meta_defaults_for_old_payloads": 0.18771819199992024, - "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_real_empty": 0.17802955499973905, - "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_real_with_data": 0.17877774000044155, - "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_with_trails": 0.1841337939999903, - "tests/test_output_routes.py::TestRealNodeIds::test_real_node_ids": 0.04593706600053338, - "tests/test_output_routes.py::TestSolverAircraft::test_real_only_matches_a_registered_node_by_its_ref": 0.18768209699965155, - "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_empty": 0.16838859900008174, - "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_multinode_real": 0.19028062100005627, - "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_real_only": 0.6198578430003181, - "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_with_data": 0.17391039899985117, - "tests/test_parquet_writer.py::test_adsb_match_populated_when_present": 0.0612120139999206, - "tests/test_parquet_writer.py::test_custody_columns_default_null_when_absent": 0.06037516899959883, - "tests/test_parquet_writer.py::test_empty_frames_returns_none": 0.04859701499981384, - "tests/test_parquet_writer.py::test_failed_write_leaves_no_partial_file_or_damaged_previous_batch[False]": 0.047588185999757115, - "tests/test_parquet_writer.py::test_failed_write_leaves_no_partial_file_or_damaged_previous_batch[True]": 0.052125741000054404, - "tests/test_parquet_writer.py::test_geometry_columns_default_null_when_no_cfg": 0.06274028200004977, - "tests/test_parquet_writer.py::test_legacy_FC_Fs_keys_in_node_cfg": 0.07782969299933029, - "tests/test_parquet_writer.py::test_multiple_frames_concatenate": 0.0570800969994707, - "tests/test_parquet_writer.py::test_round_trip_via_storage_module": 0.06860720400027276, - "tests/test_parquet_writer.py::test_same_second_batches_do_not_replace_previous_detections": 0.06645699499995317, - "tests/test_parquet_writer.py::test_schema_includes_custody_and_ingest_columns": 0.06307450899976175, - "tests/test_parquet_writer.py::test_schema_includes_geometry_and_rf_columns": 0.06612322299952211, - "tests/test_parquet_writer.py::test_schema_is_per_detection_with_required_columns": 0.05714191100014432, - "tests/test_parquet_writer.py::test_uses_zstd_compression": 0.06414623900036531, - "tests/test_parquet_writer.py::test_writes_hive_partitioned_path": 0.05724483899984989, - "tests/test_periodic_adsb_bbox.py::test_a_positionless_node_does_not_cost_the_fleet_its_regions": 0.05593764099967302, - "tests/test_periodic_adsb_bbox.py::test_all_nodes_positionless_skips_the_fetch": 0.05658804599988798, - "tests/test_pipeline.py::TestGeolocatedTrack::test_alt_ft": 0.049776751999615954, - "tests/test_pipeline.py::TestGeolocatedTrack::test_hex_id_format": 0.04830877799940936, - "tests/test_pipeline.py::TestGeolocatedTrack::test_speed_knots": 0.052347644999827025, - "tests/test_pipeline.py::TestGeolocatedTrack::test_track_angle": 0.048425548000068375, - "tests/test_pipeline.py::TestGeolocatedTrack::test_track_angle_north": 0.0511868069997945, - "tests/test_pipeline.py::TestInMemoryEventWriter::test_anomaly_fields_propagated": 0.05597139600013179, - "tests/test_pipeline.py::TestInMemoryEventWriter::test_dirty_tracking": 0.06147201600015251, - "tests/test_pipeline.py::TestInMemoryEventWriter::test_lazy_write_defers_detection_resolution": 0.08347045099981187, - "tests/test_pipeline.py::TestInMemoryEventWriter::test_resolve_idempotent": 0.06095380600027056, - "tests/test_pipeline.py::TestInMemoryEventWriter::test_write_and_get_events": 0.05121464100011508, - "tests/test_pipeline.py::TestPipelineInit::test_creates_with_default_config": 0.06199870400041618, - "tests/test_pipeline.py::TestPipelineInit::test_custom_config": 0.05821184899969012, - "tests/test_pipeline.py::TestPipelineInit::test_drone_profile_overrides_bounds": 0.05746863199965446, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_empty_frame_no_crash": 0.05778829700011556, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_frame_with_adsb_data": 0.06573854100042809, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_generate_aircraft_json": 0.06837986299979093, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_generate_receiver_json": 0.07354214400038472, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_mismatched_array_lengths": 0.062063104000117164, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_process_multiple_frames_creates_tracks": 0.29608418999987407, - "tests/test_pipeline.py::TestPipelineProcessFrame::test_process_single_frame": 0.05407238999987385, - "tests/test_polled_endpoint.py::test_a_body_at_the_cap_is_accepted": 0.06537685800003601, - "tests/test_polled_endpoint.py::test_a_compressed_response_is_refused": 0.06698884100023861, - "tests/test_polled_endpoint.py::test_a_declared_oversized_body_is_refused": 0.06220220200020776, - "tests/test_polled_endpoint.py::test_a_dropped_connection_is_unreachable": 0.07602453100025741, - "tests/test_polled_endpoint.py::test_a_fragment_is_refused[http://radar.example.com/#top]": 0.040477609999925335, - "tests/test_polled_endpoint.py::test_a_fragment_is_refused[radar.example.com#]": 0.046154958000443, - "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[01.02.03.04]": 0.05029624500002683, - "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[0x7f.0.0.1]": 0.04989320399999997, - "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[127.1]": 0.044884023999657074, - "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[192.0.2]": 0.0492693149999468, - "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[2130706433]": 0.05131245500024306, - "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[radar.0x10]": 0.04878574000031222, - "tests/test_polled_endpoint.py::test_a_malformed_deny_list_raises": 0.05923724800004493, - "tests/test_polled_endpoint.py::test_a_malformed_deny_list_refuses_everything": 0.06253277899986642, - "tests/test_polled_endpoint.py::test_a_path_prefix_is_refused[http://radar.example.com/blah2/]": 0.04509736299951328, - "tests/test_polled_endpoint.py::test_a_path_prefix_is_refused[radar.example.com//]": 0.048503944000003685, - "tests/test_polled_endpoint.py::test_a_path_prefix_is_refused[radar.example.com/api]": 0.04567188399960287, - "tests/test_polled_endpoint.py::test_a_private_literal_is_refused": 0.07030146099987178, - "tests/test_polled_endpoint.py::test_a_public_name_is_vetted": 0.05908282900008999, - "tests/test_polled_endpoint.py::test_a_query_is_refused[http://radar.example.com/?]": 0.05729093600029955, - "tests/test_polled_endpoint.py::test_a_query_is_refused[http://radar.example.com/?x=1]": 0.048519825000767014, - "tests/test_polled_endpoint.py::test_a_query_is_refused[radar.example.com?x]": 0.04689290800024537, - "tests/test_polled_endpoint.py::test_a_read_timeout_is_timed_out": 0.05477591200042298, - "tests/test_polled_endpoint.py::test_a_real_request_carries_the_name_to_the_pinned_address": 0.11331540800028961, - "tests/test_polled_endpoint.py::test_a_redirect_is_refused_and_not_followed": 0.06688407699994059, - "tests/test_polled_endpoint.py::test_a_resolver_failure_is_unresolvable": 0.05852695200019298, - "tests/test_polled_endpoint.py::test_a_scheme_without_a_port_takes_the_schemes_default": 0.05532259299934594, - "tests/test_polled_endpoint.py::test_a_slow_resolver_is_cut_off": 0.09828557800028648, - "tests/test_polled_endpoint.py::test_a_trickling_body_is_cut_off_by_the_deadline": 0.26041559199984476, - "tests/test_polled_endpoint.py::test_a_user_without_a_secret_keeps_the_secret_none": 0.08073450600022625, - "tests/test_polled_endpoint.py::test_an_answer_that_is_not_http_is_a_bad_response": 0.0601708500003042, - "tests/test_polled_endpoint.py::test_an_empty_answer_is_unresolvable": 0.05423298599998816, - "tests/test_polled_endpoint.py::test_an_error_status_is_refused": 0.053321814999435446, - "tests/test_polled_endpoint.py::test_an_injected_policy_replaces_the_default": 0.060889782999765885, - "tests/test_polled_endpoint.py::test_an_injected_policy_still_refuses_what_it_refuses": 0.06591292200027965, - "tests/test_polled_endpoint.py::test_an_ip_literal_skips_dns": 0.06602760200075863, - "tests/test_polled_endpoint.py::test_an_ipv6_address_is_bracketed_in_the_url": 0.058220223999342124, - "tests/test_polled_endpoint.py::test_an_ipv6_literal_endpoint_brackets_the_host_header": 0.052028314000381215, - "tests/test_polled_endpoint.py::test_an_undeclared_oversized_body_is_refused": 0.06907696499956728, - "tests/test_polled_endpoint.py::test_any_non_public_answer_refuses_the_whole_name": 0.09534828200003176, - "tests/test_polled_endpoint.py::test_bad_ports_are_refused[http://radar.example.com:\\u0663\\u0660\\u0660\\u0660]": 0.043421621000106825, - "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:+80]": 0.04593185900057506, - "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:-1]": 0.04608699000027627, - "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:0]": 0.044062250000024505, - "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:65536]": 0.04283767999959309, - "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:http]": 0.04359048999958759, - "tests/test_polled_endpoint.py::test_bare_host_takes_blah2s_default_port_over_http": 0.04441536000013002, - "tests/test_polled_endpoint.py::test_compression_is_declined": 0.0736877720000848, - "tests/test_polled_endpoint.py::test_cookies_are_not_carried_between_requests": 0.08711853700015126, - "tests/test_polled_endpoint.py::test_credentials_are_separated_from_the_key": 0.04779391800002486, - "tests/test_polled_endpoint.py::test_credentials_go_as_basic_auth": 0.05580626100027075, - "tests/test_polled_endpoint.py::test_credentials_never_appear_in_the_repr": 0.046544242999971175, - "tests/test_polled_endpoint.py::test_deny_list_accepts_host_bits": 0.05018758400046863, - "tests/test_polled_endpoint.py::test_deny_list_is_empty_by_default": 0.05121546500004115, - "tests/test_polled_endpoint.py::test_deny_list_is_read_from_the_environment": 0.04920821500036254, - "tests/test_polled_endpoint.py::test_duplicate_answers_are_collapsed": 0.06217579900021519, - "tests/test_polled_endpoint.py::test_empty_or_oversized_input_is_refused[ ]": 0.044560721999914676, - "tests/test_polled_endpoint.py::test_empty_or_oversized_input_is_refused[]": 0.043618180000521534, - "tests/test_polled_endpoint.py::test_empty_or_oversized_input_is_refused[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.example.com]": 0.047643540000080975, - "tests/test_polled_endpoint.py::test_endpoint_is_immutable": 0.05740109799990023, - "tests/test_polled_endpoint.py::test_explicit_port_wins": 0.04905040399989957, - "tests/test_polled_endpoint.py::test_fullwidth_digits_normalise_to_the_ipv4_key": 0.04742733000011867, - "tests/test_polled_endpoint.py::test_https_verifies_against_the_name_through_sni": 0.07034108399966499, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[2002:7f00:1::]": 0.05777206399989154, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[2002:a9fe:a9fe::1]": 0.06089745400004176, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[64:ff9b::7f00:1]": 0.05860195100012788, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[64:ff9b::a00:1]": 0.056660551999812014, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[64:ff9b::a9fe:a9fe]": 0.05282246299975668, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::7f00:1]": 0.04810847199996715, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::a9fe:a9fe]": 0.055975649999709276, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:10.0.0.1]": 0.06498871199937639, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:100.64.0.1]": 0.05261909299997569, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:127.0.0.1]": 0.06067906399994172, - "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:169.254.169.254]": 0.05374105300006704, - "tests/test_polled_endpoint.py::test_ipv6_host_is_compressed_and_unbracketed_outside_the_key": 0.05346705799956908, - "tests/test_polled_endpoint.py::test_later_requests_stay_on_the_address_that_answered": 0.05928752199952214, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[-bad.example.com]": 0.04822929199963255, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[2001:db8::1]": 0.04679021400033889, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[2001:db8::1]x]": 0.04827528700025141, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[fe80::1%25eth0]]": 0.044342338999740605, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[radar.example.com]]": 0.05062428700057353, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[a..b.example.com]": 0.05338258500023585, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[ex%61mple.com]": 0.04829859699975714, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[fe80::1%eth0]": 0.047948459000053845, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[http://:3000]": 0.04540819899966664, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[http://user:pw@]": 0.047373163000429486, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[my_host.example.com]": 0.04140658899996197, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar example.com]": 0.04364130799967825, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar.exa\\tmple.com]": 0.04418527899952096, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar.example.com..]": 0.05059759000005215, - "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar.example.com\\x00]": 0.044737117999829934, - "tests/test_polled_endpoint.py::test_metadata_addresses_are_refused": 0.09014024800035259, - "tests/test_polled_endpoint.py::test_no_address_connecting_is_unreachable": 0.05937520699990273, - "tests/test_polled_endpoint.py::test_no_credentials_means_no_authorization_header": 0.05548181599988311, - "tests/test_polled_endpoint.py::test_no_credentials_means_none": 0.0458484870000575, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[0.0.0.0]": 0.04840832699983366, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[10.0.0.1]": 0.051500310000392346, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[100.127.255.254]": 0.04664677899972958, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[100.64.0.1]": 0.054394924999996874, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[127.0.0.1]": 0.05273170999953436, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[169.254.169.254]": 0.057632612000361405, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[172.16.0.1]": 0.04948461899994072, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[192.0.2.1]": 0.050610111999503715, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[192.168.1.1]": 0.05500678699991113, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[198.18.0.1]": 0.05697665500019866, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[2001::1]": 0.05528398299975379, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[2001:db8::1]": 0.05495059899976695, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[224.0.0.1]": 0.0476241750002373, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[239.255.255.250]": 0.04622532599978513, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[240.0.0.1]": 0.053982979000011255, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[255.255.255.255]": 0.055777490000309626, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[64:ff9b:1::808:808]": 0.05090057100051126, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[::1]": 0.04953222299945992, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[::]": 0.06719506699982958, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fc00::1]": 0.05151207900007648, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fd00:ec2::254]": 0.05741346200011321, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fe80::1]": 0.05543799199995192, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fec0::1]": 0.053081947000464424, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[ff02::1]": 0.05407995900031892, - "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[ff0e::1]": 0.0652730300002986, - "tests/test_polled_endpoint.py::test_proxy_environment_is_ignored": 0.08999738199963758, - "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[1.1.1.1]": 0.0531896290003715, - "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[2606:4700:4700::1111]": 0.04725782600007733, - "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[64:ff9b::808:808]": 0.04816217199959283, - "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[8.8.8.8]": 0.04685370800052624, - "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[::808:808]": 0.05123299800015957, - "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[::ffff:8.8.8.8]": 0.05060537099961948, - "tests/test_polled_endpoint.py::test_raw_input_is_kept": 0.059620740999889676, - "tests/test_polled_endpoint.py::test_refusal_messages_never_echo_the_secret": 0.047456141999646206, - "tests/test_polled_endpoint.py::test_schemes_other_than_http_and_https_are_refused[file:///etc/passwd]": 0.04292936500041833, - "tests/test_polled_endpoint.py::test_schemes_other_than_http_and_https_are_refused[ftp://radar.example.com]": 0.04713196400007291, - "tests/test_polled_endpoint.py::test_schemes_other_than_http_and_https_are_refused[gopher://radar.example.com:70]": 0.044880771999942226, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings0-radar.example.com:3000]": 0.05854548800016346, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings1-radar.example.com:80]": 0.04788593000057517, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings2-radar.example.com:443]": 0.04469849499992051, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings3-xn--bcher-kva.example:3000]": 0.125155031000304, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings4-[2001:db8::1]:3000]": 0.04121092899958967, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings5-192.0.2.10:3000]": 0.04351713300002302, - "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings6-radar.example.com:3000]": 0.04326983500004644, - "tests/test_polled_endpoint.py::test_the_default_policy_reads_the_deny_list_per_call": 0.07187660099998538, - "tests/test_polled_endpoint.py::test_the_default_port_is_left_out_of_host": 0.06456945299987638, - "tests/test_polled_endpoint.py::test_the_deny_list_refuses_otherwise_public_addresses": 0.0549812289991678, - "tests/test_polled_endpoint.py::test_the_next_vetted_address_is_tried_when_one_will_not_connect": 0.05194062499958818, - "tests/test_polled_endpoint.py::test_the_request_goes_to_the_vetted_address_with_the_name_in_host": 0.05724236900005053, - "tests/test_polled_endpoint.py::test_the_system_resolver_path_refuses_localhost": 0.07127404599941656, - "tests/test_polled_endpoint.py::test_tls_to_a_name_the_certificate_does_not_cover_is_refused": 0.07089762099985819, - "tests/test_polled_endpoint.py::test_tls_verifies_the_certificate_against_the_name_not_the_address": 0.07896975199992085, - "tests/test_polled_endpoint.py::test_unicode_host_is_stored_in_its_ascii_form": 0.050347782000699226, - "tests/test_polled_endpoint.py::test_vetting_happens_before_any_request": 0.05409092699937901, - "tests/test_polled_radars.py::test_a_radar_without_credentials_gives_the_poller_none": 0.10292257200035237, - "tests/test_polled_radars.py::test_a_second_registration_of_the_endpoint_is_refused_whole": 0.12760275199934767, - "tests/test_polled_radars.py::test_an_unknown_publication_is_refused": 0.10244830999999976, - "tests/test_polled_radars.py::test_credentials_typed_into_the_address_are_not_kept": 0.13296110899955238, - "tests/test_polled_radars.py::test_history_goes_with_the_registration": 0.14988965100019414, - "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[admin:p@ss@radar.example.com:3000-radar.example.com:3000]": 0.08515230099965265, - "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[http://admin:p@ss@radar.example.com:3000-http://radar.example.com:3000]": 0.12038521399972524, - "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[http://radar.example.com:3000/?next=a@b-http://radar.example.com:3000/?next=a@b]": 0.1051261920001707, - "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[radar.example.com:3000-radar.example.com:3000]": 0.09426762800057986, - "tests/test_polled_radars.py::test_registration_writes_all_five_rows": 0.1349043140003232, - "tests/test_polled_radars.py::test_storing_a_secret_without_the_key_is_refused_before_anything_is_written": 0.08102611600043019, - "tests/test_polled_radars.py::test_the_caller_transaction_survives_an_endpoint_clash": 0.14401094000004377, - "tests/test_polled_radars.py::test_the_repr_names_neither_the_address_nor_the_secret": 0.10043178299974898, - "tests/test_polled_radars.py::test_the_secret_is_encrypted_at_rest": 0.10965581599975849, - "tests/test_positionless_node.py::test_position_status_reaches_the_nodes_payload": 0.060078312999849004, - "tests/test_positionless_node.py::test_positionless_node_builds_no_solver_pipeline": 0.05738848400005736, - "tests/test_positionless_node.py::test_positionless_node_is_counted_but_not_placed": 0.057765919999837934, - "tests/test_positionless_node.py::test_ten_positionless_nodes_form_no_overlap_zones": 0.061646612000458845, - "tests/test_probation.py::TestDetectionMirror::test_a_graduated_or_fleet_frame_is": 0.07393507099959606, - "tests/test_probation.py::TestDetectionMirror::test_a_probation_frame_is_not_mirrored": 0.06835562900005243, - "tests/test_probation.py::TestFenceSwitchedOff::test_a_fleet_round_naming_a_polled_node_is_solved": 0.10926111600065269, - "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_frame_is_mirrored": 0.08468754100067599, - "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_frame_marks_the_feed_dirty": 0.13099751800018566, - "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_node_follows_its_owners_choice": 0.10052351400008774, - "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_node_registered_private_is_private": 0.09176299999990079, - "tests/test_probation.py::TestFenceSwitchedOff::test_a_probation_frame_flows_like_a_fleet_frame": 0.12123352099979456, - "tests/test_probation.py::TestFenceSwitchedOff::test_no_polled_node_is_on_probation_and_the_trust_table_is_not_read": 0.07491366400063271, - "tests/test_probation.py::TestFenceSwitchedOff::test_switching_it_back_on_gates_the_next_frame_without_a_restart": 0.10849552999980006, - "tests/test_probation.py::TestFenceSwitchedOff::test_the_public_payload_carries_it_unchanged": 0.11146227299968814, - "tests/test_probation.py::TestFrameGate::test_a_fleet_frame_is_untouched_and_never_reads_the_trust_table": 0.0887032900000122, - "tests/test_probation.py::TestFrameGate::test_a_fleet_round_naming_a_probation_node_is_not_solved": 0.09144581600003221, - "tests/test_probation.py::TestFrameGate::test_a_graduated_polled_frame_flows_like_a_fleet_frame": 0.09165992999987793, - "tests/test_probation.py::TestFrameGate::test_a_probation_frame_feeds_its_own_analytics_and_tracker": 0.10758489900035784, - "tests/test_probation.py::TestFrameGate::test_a_probation_frame_feeds_nothing_shared": 0.09106501200039929, - "tests/test_probation.py::TestFrameGate::test_a_probation_frames_adsb_list_stays_out_of_the_shared_cache": 0.08778175499946883, - "tests/test_probation.py::TestFrameGate::test_a_probation_read_failure_gates_a_graduated_node": 0.08989492000046084, - "tests/test_probation.py::TestFrameGate::test_an_unregistered_polled_id_is_gated": 0.07964945499998066, - "tests/test_probation.py::TestFrameGate::test_re_entry_gates_the_next_frame_without_a_restart": 0.09994338200021957, - "tests/test_probation.py::TestFrameLoop::test_a_fleet_frame_still_does": 0.11319442999956664, - "tests/test_probation.py::TestFrameLoop::test_a_probation_frame_does_not_mark_the_feed_dirty": 0.11871773900020344, - "tests/test_probation.py::TestHealthReportsTheSwitch::test_off_when_switched_off": 0.2021272060001138, - "tests/test_probation.py::TestHealthReportsTheSwitch::test_on_by_default": 0.1990433999999368, - "tests/test_probation.py::TestInProbation::test_a_cold_failure_gates_every_polled_node": 0.07557614799998191, - "tests/test_probation.py::TestInProbation::test_a_failure_after_a_good_read_gates_every_polled_node": 0.07853874800002814, - "tests/test_probation.py::TestInProbation::test_a_failure_backs_off_rather_than_querying_every_call": 0.05914283799984332, - "tests/test_probation.py::TestInProbation::test_a_fleet_node_is_never_on_probation_and_costs_no_query": 0.04788245300005656, - "tests/test_probation.py::TestInProbation::test_a_graduated_polled_node_is_not": 0.06683905199997753, - "tests/test_probation.py::TestInProbation::test_a_polled_id_with_no_row_is_gated": 0.06666304200052764, - "tests/test_probation.py::TestInProbation::test_a_polled_node_on_probation_is_gated": 0.07069552999973894, - "tests/test_probation.py::TestInProbation::test_any_state_but_graduated_is_gated": 0.07511588600027608, - "tests/test_probation.py::TestInProbation::test_invalidate_re_applies_the_gate_without_a_restart": 0.12246694299983574, - "tests/test_probation.py::TestInProbation::test_the_answer_is_cached_within_the_ttl": 0.10553179399994406, - "tests/test_probation.py::TestInProbation::test_the_cache_expires_on_its_own": 0.10125950899964664, - "tests/test_probation.py::TestProbationIsPrivate::test_a_fleet_node_with_no_row_stays_public": 0.058234601999629376, - "tests/test_probation.py::TestProbationIsPrivate::test_a_graduated_node_its_owner_registered_private_stays_private": 0.08027799399997093, - "tests/test_probation.py::TestProbationIsPrivate::test_a_graduated_polled_node_is_public": 0.06910506500025804, - "tests/test_probation.py::TestProbationIsPrivate::test_a_polled_id_with_no_row_is_private": 0.06813026500003616, - "tests/test_probation.py::TestProbationIsPrivate::test_a_polled_node_on_probation_is_private": 0.07731852100005199, - "tests/test_probation.py::TestProbationIsPrivate::test_a_probation_read_failure_keeps_it_private": 0.0703359679996538, - "tests/test_probation.py::TestProbationIsPrivate::test_an_unregistered_polled_id_is_dropped_from_the_payload": 0.06568684300009409, - "tests/test_probation.py::TestProbationIsPrivate::test_analytics_summaries_drop_it": 0.07381718199985698, - "tests/test_probation.py::TestProbationIsPrivate::test_it_is_listed_for_an_owner_merge": 0.07036901600031342, - "tests/test_probation.py::TestProbationIsPrivate::test_re_entry_makes_it_private_without_a_restart": 0.09147093299998232, - "tests/test_probation.py::TestProbationIsPrivate::test_the_aircraft_payload_drops_it_when_nothing_else_is_private": 0.06266870199988261, - "tests/test_probation.py::TestProbationIsPrivate::test_the_node_listing_leaves_it_out": 0.07554046400036896, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[ 0]": 0.06040969000059704, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[00]": 0.062378861000070174, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[1]": 0.05529754600001979, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[]": 0.06648460700034775, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[false]": 0.06344480699999622, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[no]": 0.06768761100011034, - "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[off]": 0.06847396900047897, - "tests/test_probation.py::TestTheSwitch::test_unset_means_on": 0.06698364199974094, - "tests/test_probation.py::TestTheSwitch::test_zero_switches_it_off": 0.05897915799960174, - "tests/test_public_geometry.py::TestHowItWalks::test_a_payload_with_nothing_withheld_is_unchanged": 0.06850953999992271, - "tests/test_public_geometry.py::TestHowItWalks::test_a_tuple_comes_back_as_a_list": 0.05185173100016982, - "tests/test_public_geometry.py::TestHowItWalks::test_a_withheld_field_goes_at_any_depth": 0.055548598999848764, - "tests/test_public_geometry.py::TestHowItWalks::test_the_input_is_not_edited": 0.062187519000417524, - "tests/test_public_geometry.py::TestNodeScoped::test_it_stays_when_not_scoped": 0.05225037100035479, - "tests/test_public_geometry.py::TestNodeScoped::test_scoping_still_withholds_everything_else": 0.06125461500005258, - "tests/test_public_geometry.py::TestNodeScoped::test_the_nodes_own_solve_goes_when_scoped": 0.06283080499997595, - "tests/test_public_geometry.py::TestTheDetectionAreaSummary::test_only_furthest_detections_collides": 0.06841452699927686, - "tests/test_public_geometry.py::TestTheDetectionAreaSummary::test_so_the_pass_drops_that_and_nothing_else": 0.05646915499983152, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_a_nodes_verification_withholds_its_own_solve_too": 0.07383495600015522, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_an_unknown_node_still_answers_empty": 0.07885405300021375, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_one_markers_solves_withhold": 0.0876325980002548, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_multinode_verification_withholds_on_write": 0.07083697300004133, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_nearby_rejects_withhold": 0.09476866899967717, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_resolve_skips_dump_withholds": 0.08668359900002542, - "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_whole_window_dump_withholds": 0.0914465820001169, - "tests/test_public_geometry.py::TestWhatIsWithheld::test_a_beam_margin_goes_and_its_envelope_stays": 0.0633758230001149, - "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_contamination_verdict_goes": 0.0559527740001613, - "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_furthest_detections_go": 0.05502037700034634, - "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_learned_fov_read_outs_go": 0.059297899000284815, - "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_per_node_delays_go": 0.05098665799960145, - "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_shadow_verdicts_go": 0.06003936299930501, - "tests/test_public_location.py::TestArchiveRows::test_rows_carry_the_published_receiver": 0.072083037000084, - "tests/test_public_location.py::TestCachedAnalyticsPayload::test_suggestions_are_empty_in_both_variants": 0.08386325500032399, - "tests/test_public_location.py::TestDetectionRangeRoute::test_furthest_detections_are_gone": 0.21108639200065227, - "tests/test_public_location.py::TestDetectionRangeRoute::test_receiver_and_polygon_are_displaced": 0.2524111059997267, - "tests/test_public_location.py::TestFrameRekey::test_a_bounds_change_defeats_the_attack": 0.06560915899990505, - "tests/test_public_location.py::TestFrameRekey::test_a_bounds_change_moves_the_bearing": 0.07288055499975599, - "tests/test_public_location.py::TestFrameRekey::test_setting_the_defaults_explicitly_is_not_a_change_of_frame": 0.07589849400073945, - "tests/test_public_location.py::TestFrameRekey::test_the_attack_works_on_a_shared_bearing": 0.055116278999776114, - "tests/test_public_location.py::TestFrameRekey::test_the_frame_label_is_canonical": 0.05714602699936222, - "tests/test_public_location.py::TestFrameRekey::test_the_original_frame_is_frozen": 0.060198958000455605, - "tests/test_public_location.py::TestFuzzDisabled::test_latlon_is_identity_not_even_rounded": 0.06543895699951463, - "tests/test_public_location.py::TestFuzzDisabled::test_node_cfg_is_the_same_object": 0.06644158900007824, - "tests/test_public_location.py::TestFuzzDisabled::test_offset_is_zero": 0.08225731100037592, - "tests/test_public_location.py::TestFuzzDisabled::test_polygon_is_identity": 0.06946150600015244, - "tests/test_public_location.py::TestGroundTruthTrailRoute::test_disabled_serves_the_solved_trail_either_way": 0.20770422399982635, - "tests/test_public_location.py::TestGroundTruthTrailRoute::test_ground_truth_present_serves_the_comparison": 0.25515713799995865, - "tests/test_public_location.py::TestGroundTruthTrailRoute::test_solved_trail_alone_is_not_served": 0.22025469999971392, - "tests/test_public_location.py::TestGroundTruthTrailRoute::test_unknown_hex_still_404s": 0.2020465490004426, - "tests/test_public_location.py::TestNodesPayload::test_altitude_is_untouched": 0.06023081900048055, - "tests/test_public_location.py::TestNodesPayload::test_receiver_is_displaced_and_transmitter_is_not": 0.07126834600012444, - "tests/test_public_location.py::TestNodesPayload::test_uncertainty_is_declared": 0.057324765999965166, - "tests/test_public_location.py::TestNodesPayload::test_uncertainty_is_zero_when_disabled": 0.06498606000013751, - "tests/test_public_location.py::TestOffset::test_bearings_cover_the_circle": 0.06484071199975006, - "tests/test_public_location.py::TestOffset::test_different_nodes_get_different_offsets": 0.06603391999988162, - "tests/test_public_location.py::TestOffset::test_displacement_honours_custom_bounds": 0.07187698899997486, - "tests/test_public_location.py::TestOffset::test_displacement_within_configured_bounds": 0.09724472900006731, - "tests/test_public_location.py::TestOffset::test_inverted_bounds_do_not_escape_the_floor": 0.06363691599972299, - "tests/test_public_location.py::TestOffset::test_missing_node_id_is_still_displaced": 0.06199251099997127, - "tests/test_public_location.py::TestOffset::test_salt_changes_the_offset": 0.05653296200034674, - "tests/test_public_location.py::TestOffset::test_same_node_same_offset_across_calls": 0.06011988799991741, - "tests/test_public_location.py::TestOffset::test_same_node_same_offset_across_process_restarts": 0.09969846100011637, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_coverage_polygon_apex_is_displaced": 0.3165291079999406, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_detection_area_receiver_is_displaced": 0.2403644009996242, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_furthest_detections_are_not_published": 0.20760321000079784, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_no_polygon_vertex_sits_on_the_true_receiver": 0.19796583000015744, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_the_manager_keeps_the_truth": 0.21952406499985955, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_transmitter_survives": 0.3737387840001247, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_uncertainty_is_absent_when_disabled": 0.22025081599986152, - "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_uncertainty_travels_with_the_receiver_coordinate": 0.2060854900000777, - "tests/test_public_location.py::TestPublicCrossNode::test_a_non_dict_is_returned_unchanged": 0.07236316299986356, - "tests/test_public_location.py::TestPublicCrossNode::test_no_test_point_survives_anywhere": 0.05623190699998304, - "tests/test_public_location.py::TestPublicCrossNode::test_overlaps_and_blocked_nodes_survive": 0.08468214999993506, - "tests/test_public_location.py::TestPublicCrossNode::test_pass_through_when_disabled": 0.08311278799965294, - "tests/test_public_location.py::TestPublicCrossNode::test_suggestions_are_emptied": 0.08211902300035945, - "tests/test_public_location.py::TestPublicCrossNode::test_the_input_is_not_mutated": 0.06703497800026526, - "tests/test_public_location.py::TestPublicCrossNode::test_the_shape_is_unchanged": 0.07791482699985863, - "tests/test_public_location.py::TestPublicLatLon::test_longitude_scales_with_latitude": 0.06692807399940648, - "tests/test_public_location.py::TestPublicLatLon::test_non_numeric_passes_through": 0.06807101799995507, - "tests/test_public_location.py::TestPublicLatLon::test_published_point_is_at_least_the_floor_away": 0.05714471599958415, - "tests/test_public_location.py::TestPublicLatLon::test_rounded_to_four_decimals": 0.06535416899987467, - "tests/test_public_location.py::TestPublishedArc::test_arc_geometry_is_unchanged_when_disabled": 0.05903766999972504, - "tests/test_public_location.py::TestPublishedArc::test_arc_is_solved_around_the_published_receiver": 0.07166887399989719, - "tests/test_public_location.py::TestSaltPersistence::test_generated_salt_survives_a_restart": 0.08457377700005964, - "tests/test_public_location.py::TestTranslatePolygon::test_apex_lands_on_the_published_receiver": 0.07017188899999383, - "tests/test_public_location.py::TestTranslatePolygon::test_empty_and_none": 0.12567928599992229, - "tests/test_public_location.py::TestTranslatePolygon::test_shape_is_unchanged": 0.072662054999455, - "tests/test_public_location.py::TestTranslatePolygon::test_translation_is_rigid": 0.06290533600031267, - "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_a_node_id_written_into_prose_is_rewritten_not_dropped": 0.06667530799995802, - "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_cross_node_carries_refs_and_drops_the_unresolvable": 0.09918983599982312, - "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_no_node_id_reaches_the_published_bytes": 0.0739604049999798, - "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_the_entry_names_the_node_once_and_by_ref": 0.06269735599926207, - "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_the_fuzz_still_keys_on_the_node_id": 0.10230398499970761, - "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_full_variant_carries_the_flag_per_node": 0.07237336600019262, - "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_matches_the_nodes_payload_for_the_same_node": 0.09278257799996936, - "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_real_only_variant_also_carries_the_flag": 0.08289332899948931, - "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_the_flag_is_not_derived_from_the_published_ref": 0.08826601400005529, - "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[-]": 0.06389146499986964, - "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[2026/08/27/ret01/part-120000.json-ret01]": 0.11559110800044436, - "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[part-120000.parquet-]": 0.10640946800003803, - "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[year=2026/month=08/day=27/node_id=ret01/part-120000.parquet-ret01]": 0.06909985199990842, - "tests/test_publication.py::TestArchiveRoutes::test_a_private_nodes_file_does_not_download": 0.32269168099992385, - "tests/test_publication.py::TestArchiveRoutes::test_a_private_nodes_file_is_not_listed": 0.3340422410001338, - "tests/test_publication.py::TestArchiveRoutes::test_a_public_nodes_file_still_downloads": 0.2171737519997805, - "tests/test_publication.py::TestAssociationStatusPayload::test_no_node_id_reaches_the_response": 0.304329996999968, - "tests/test_publication.py::TestAssociationStatusPayload::test_pending_tracks_is_keyed_on_refs_and_drops_the_unresolvable": 0.20637984599989068, - "tests/test_publication.py::TestAssociationStatusPayload::test_the_pairs_carry_refs_and_the_half_named_zone_goes": 0.21769750699968426, - "tests/test_publication.py::TestEffectivePrivacy::test_an_override_alone_needs_no_registration": 0.0590676669999084, - "tests/test_publication.py::TestEffectivePrivacy::test_an_override_wins_over_the_registration_choice": 0.10596429499992155, - "tests/test_publication.py::TestEffectivePrivacy::test_with_neither_the_node_is_public_by_default": 0.074799030000122, - "tests/test_publication.py::TestEffectivePrivacy::test_without_an_override_the_registration_choice_stands": 0.08435051399965232, - "tests/test_publication.py::TestFurthestDetectionsClassification::test_stripped_at_any_depth": 0.06622479000043313, - "tests/test_publication.py::TestFurthestDetectionsClassification::test_the_walk_matches_the_name_not_the_shape": 0.0580763689995365, - "tests/test_publication.py::TestFuzzDoesNotGateThis::test_a_private_node_is_still_withheld_with_fuzzing_off": 0.0735199079999802, - "tests/test_publication.py::TestInvalidate::test_invalidate_does_not_blank_the_answer_it_is_dropping": 0.07004721200064523, - "tests/test_publication.py::TestInvalidate::test_invalidate_makes_the_next_call_re_query": 0.059252180000385124, - "tests/test_publication.py::TestLocationPrivacyStorage::test_an_override_is_reported_with_its_provenance": 0.08916717300007804, - "tests/test_publication.py::TestLocationPrivacyStorage::test_an_unknown_node_reports_the_default_with_no_rows": 0.06248849900021014, - "tests/test_publication.py::TestLocationPrivacyStorage::test_clearing_a_node_with_no_override_is_not_an_error": 0.08862001100033012, - "tests/test_publication.py::TestLocationPrivacyStorage::test_setting_twice_corrects_the_row_rather_than_adding_one": 0.10440710700049749, - "tests/test_publication.py::TestLocationPrivacyStorage::test_the_registration_choice_is_reported_raw_beside_the_effective_state": 0.07000619700011157, - "tests/test_publication.py::TestMlatHistoryPayload::test_a_node_with_no_handle_loses_its_place_in_the_listing": 0.31053551900004095, - "tests/test_publication.py::TestMlatHistoryPayload::test_no_node_id_reaches_the_response": 0.3897300539997559, - "tests/test_publication.py::TestMlatHistoryPayload::test_no_receiver_relative_geometry_at_any_depth": 0.20442412500005958, - "tests/test_publication.py::TestMlatHistoryPayload::test_one_markers_solves_are_published_the_same_way": 0.19471340699965367, - "tests/test_publication.py::TestMlatHistoryPayload::test_the_beam_entry_keeps_the_verdict_and_loses_the_geometry": 0.3174608110002737, - "tests/test_publication.py::TestMlatHistoryPayload::test_the_contamination_stamp_goes_with_the_geometry_it_measures": 0.29995858199936265, - "tests/test_publication.py::TestMlatHistoryPayload::test_the_identity_fields_move_with_their_values": 0.333235732999583, - "tests/test_publication.py::TestMlatHistoryPayload::test_the_shadow_verdicts_go_and_the_refusal_stays": 0.19220914499919672, - "tests/test_publication.py::TestMlatHistoryPayload::test_the_skip_store_goes_through_the_same_boundary_intact": 0.1953656749997208, - "tests/test_publication.py::TestMlatVerificationPayload::test_the_bistatic_angle_is_computed_and_not_published": 0.0817028879996542, - "tests/test_publication.py::TestNodeVerificationPayload::test_no_true_frame_position_at_any_depth": 0.31908701900010783, - "tests/test_publication.py::TestNodeVerificationPayload::test_the_published_entry_is_the_stored_one_minus_those_fields": 0.19667913600005704, - "tests/test_publication.py::TestNodeVerificationPayload::test_the_store_keeps_what_the_route_must_not_publish": 0.07618282600014936, - "tests/test_publication.py::TestOverlapsPayload::test_pairs_and_the_registry_carry_refs_and_drop_the_unresolvable": 0.06585852300031547, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_a_logged_in_non_owner_does_not": 0.29912067200029924, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_a_public_fleet_costs_no_identity_check_at_all": 0.2402941379996264, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_an_owner_gets_their_private_nodes_summary_back": 0.28708086600045135, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_an_unauthenticated_caller_gets_the_cached_bytes_verbatim": 0.3369445420003103, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_owners_copy_is_the_same_fuzzed_frame_the_public_would_get": 0.3544661630007795, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_owners_private_node_carries_a_node_ref_too": 0.28668196199987506, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_per_node_route_answers_the_owner": 0.30971348699949885, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_per_node_route_is_still_404_for_everyone_else": 0.3337220290004552, - "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_real_only_variant_merges_the_same_way": 0.31217711199951736, - "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_a_miss_does_not_quote_what_was_asked_for": 0.3083302770000955, - "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_a_private_node_is_404": 0.29127550000021074, - "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_a_public_node_still_answers": 0.19642158400029075, - "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_the_private_node_id_is_not_accepted_as_a_path_parameter": 0.18422045100032847, - "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_the_value_carries_no_node_id": 0.35113499600038267, - "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_private_override_hides_a_node_that_never_registered": 0.06918354299978091, - "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_private_override_hides_a_publicly_registered_node": 0.06691489900003944, - "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_private_registration_with_no_override_is_private": 0.08490606099985598, - "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_public_override_unhides_a_private_registration": 0.08001802000035241, - "tests/test_publication.py::TestPrecedenceOverTheFleet::test_deleting_an_override_on_an_unregistered_node_leaves_it_public": 0.07577977199980523, - "tests/test_publication.py::TestPrecedenceOverTheFleet::test_deleting_the_override_returns_the_registration_choice": 0.09401011999943876, - "tests/test_publication.py::TestPrivateNodeIds::test_a_failed_query_serves_the_last_known_set": 0.07763470200052325, - "tests/test_publication.py::TestPrivateNodeIds::test_a_failure_backs_off_rather_than_querying_every_call": 0.06869583000025159, - "tests/test_publication.py::TestPrivateNodeIds::test_a_failure_before_any_answer_withholds_publication": 0.06684981400030665, - "tests/test_publication.py::TestPrivateNodeIds::test_a_missing_node_id_is_public": 0.08150378299978911, - "tests/test_publication.py::TestPrivateNodeIds::test_a_node_that_never_registered_is_public": 0.07891249200019956, - "tests/test_publication.py::TestPrivateNodeIds::test_a_private_registration_is_listed": 0.08098164899956828, - "tests/test_publication.py::TestPrivateNodeIds::test_a_public_registration_is_not": 0.06567083399977491, - "tests/test_publication.py::TestPrivateNodeIds::test_cold_failure_recovers_after_backoff": 0.07447349100038991, - "tests/test_publication.py::TestPrivateNodeIds::test_the_answer_is_cached_within_the_ttl": 0.07235362099982012, - "tests/test_publication.py::TestPrivateNodeIds::test_the_cache_expires": 0.07577547800019602, - "tests/test_publication.py::TestPublicAircraftPayload::test_a_multinode_solve_survives_without_the_private_member": 0.07287270000006174, - "tests/test_publication.py::TestPublicAircraftPayload::test_a_private_nodes_pending_arc_is_dropped": 0.09444156299969109, - "tests/test_publication.py::TestPublicAircraftPayload::test_a_private_nodes_single_node_entry_is_dropped": 0.07583545299985417, - "tests/test_publication.py::TestPublicAircraftPayload::test_an_all_private_multinode_solve_is_dropped": 0.06355473799976608, - "tests/test_publication.py::TestPublicAircraftPayload::test_detecting_nodes_loses_private_ids_and_empty_hexes": 0.08958783199977916, - "tests/test_publication.py::TestPublicAircraftPayload::test_messages_follows_what_is_served": 0.07051635200014061, - "tests/test_publication.py::TestPublicAircraftPayload::test_no_private_nodes_returns_the_same_object": 0.1119717399997171, - "tests/test_publication.py::TestPublicAircraftPayload::test_the_source_entry_is_not_mutated": 0.05686757400007991, - "tests/test_publication.py::TestPublicAircraftPayload::test_untouched_keys_ride_along": 0.11355220499990537, - "tests/test_publication.py::TestPublicOwnerSplit::test_the_owner_feed_still_shows_the_owner_their_own_node": 0.0775899790000949, - "tests/test_publication.py::TestPublicOwnerSplit::test_the_public_bytes_have_no_private_entry": 0.09016887500001758, - "tests/test_publication.py::TestPublicOwnerSplit::test_the_unredacted_dict_is_kept_for_that_purpose": 0.06574783699988984, - "tests/test_publication.py::TestPublicPathParameters::test_a_404_does_not_quote_what_was_asked_for": 0.2152143490002345, - "tests/test_publication.py::TestPublicPathParameters::test_custody_chain_does_not_take_the_node_id": 0.2088588240003446, - "tests/test_publication.py::TestPublicPathParameters::test_custody_chain_takes_a_ref": 0.32298744599984275, - "tests/test_publication.py::TestPublicPathParameters::test_custody_status_is_keyed_on_refs": 0.21385481499964953, - "tests/test_publication.py::TestPublicPathParameters::test_custody_verify_issues_carry_no_node_id": 0.31760214200039627, - "tests/test_publication.py::TestPublicPathParameters::test_custody_verify_takes_a_ref_and_not_the_node_id": 0.31093029200019373, - "tests/test_publication.py::TestPublicPathParameters::test_detection_range_takes_a_ref_and_not_the_node_id": 0.19459463700059132, - "tests/test_publication.py::TestPublicPathParameters::test_node_verification_takes_a_ref_and_not_the_node_id": 0.21347324199996365, - "tests/test_publication.py::TestPublicPathParameters::test_the_custody_chain_carries_no_node_id_at_any_depth": 0.19700894200013863, - "tests/test_publication.py::TestPublicPathParameters::test_the_hardcoded_radar3_routes_are_gone": 0.21156077599971468, - "tests/test_publication.py::TestPublicPathParameters::test_the_signed_entry_bodies_are_withheld": 0.2038986819998172, - "tests/test_publication.py::TestPublicSummaries::test_a_private_node_has_no_summary": 0.06674799800020992, - "tests/test_publication.py::TestPublicSummaries::test_nothing_private_returns_the_same_object": 0.06784600700075316, - "tests/test_publication.py::TestRadarNodesPayload::test_a_name_that_is_a_node_id_is_replaced_by_the_ref": 0.09581800000023577, - "tests/test_publication.py::TestRadarNodesPayload::test_a_name_that_is_not_a_node_id_is_published_unchanged": 0.11333350399991104, - "tests/test_publication.py::TestRadarNodesPayload::test_a_node_with_no_registry_row_is_dropped": 0.08052208200024324, - "tests/test_publication.py::TestRadarNodesPayload::test_a_private_node_is_absent_from_the_listing_and_the_counts": 0.08927152199976263, - "tests/test_publication.py::TestRadarNodesPayload::test_the_fuzzed_position_does_not_move_when_the_key_changes": 0.0774243259998002, - "tests/test_publication.py::TestRadarNodesPayload::test_the_listing_is_keyed_on_refs_and_names_fall_back_to_them": 0.0904278279999744, - "tests/test_publication.py::TestRadarNodesPayload::test_the_real_only_analytics_variant_is_keyed_on_refs": 0.0820784099996672, - "tests/test_publication.py::TestSingleNodeSurfaces::test_radar_status_names_no_node": 0.32336571700034256, - "tests/test_publication.py::TestSingleNodeSurfaces::test_radar_status_withholds_a_private_nodes_config_block": 0.34910009000032005, - "tests/test_publication.py::TestSingleNodeSurfaces::test_receiver_json_publishes_a_public_nodes_position": 0.17712960300059422, - "tests/test_publication.py::TestSingleNodeSurfaces::test_receiver_json_withholds_a_private_nodes_position": 0.1067189330005931, - "tests/test_publication.py::TestUnavailablePublicationPolicy::test_broadcast_withholds_public_data_but_keeps_owner_source": 0.05783214900066014, - "tests/test_publication.py::TestUnavailablePublicationPolicy::test_policy_dependent_requests_return_retryable_503[/api/data/archive/a/b/c]": 0.06839977100025862, - "tests/test_publication.py::TestUnavailablePublicationPolicy::test_policy_dependent_requests_return_retryable_503[/api/data/archive]": 0.1018760070001008, - "tests/test_publication.py::TestUnavailablePublicationPolicy::test_policy_dependent_requests_return_retryable_503[/api/radar/analytics]": 0.07342960500000117, - "tests/test_publication.py::TestUnavailablePublicationPolicy::test_receiver_withholds_coordinates": 0.07375717800005077, - "tests/test_r2_client.py::TestR2Client::test_delete_key_exception_returns_false": 0.08300035399952321, - "tests/test_r2_client.py::TestR2Client::test_delete_key_nonexistent_returns_true": 0.4045375079999758, - "tests/test_r2_client.py::TestR2Client::test_delete_key_noop_when_disabled": 0.05479003499976898, - "tests/test_r2_client.py::TestR2Client::test_delete_key_removes_object": 0.3469609659996422, - "tests/test_r2_client.py::TestR2Client::test_delete_keys_bulk": 1.1729787219996979, - "tests/test_r2_client.py::TestR2Client::test_delete_keys_empty_list": 0.29221267900038583, - "tests/test_r2_client.py::TestR2Client::test_delete_keys_exception_returns_zero": 0.05626614100037841, - "tests/test_r2_client.py::TestR2Client::test_delete_keys_noop_when_disabled": 0.055472447000283864, - "tests/test_r2_client.py::TestR2Client::test_download_bytes_exception_returns_none": 0.05216904000008071, - "tests/test_r2_client.py::TestR2Client::test_download_bytes_noop_when_disabled": 0.053717106000021886, - "tests/test_r2_client.py::TestR2Client::test_download_bytes_returns_none_for_missing_key": 0.287760936000268, - "tests/test_r2_client.py::TestR2Client::test_download_bytes_round_trip": 0.3338318119995165, - "tests/test_r2_client.py::TestR2Client::test_get_client_exception_returns_none": 0.10282819899975948, - "tests/test_r2_client.py::TestR2Client::test_is_enabled_false_when_no_creds": 0.07903484500002378, - "tests/test_r2_client.py::TestR2Client::test_is_enabled_true": 0.07884544499984258, - "tests/test_r2_client.py::TestR2Client::test_list_keys_empty_bucket": 0.4804936179998549, - "tests/test_r2_client.py::TestR2Client::test_list_keys_exception_returns_empty": 0.0663303259998429, - "tests/test_r2_client.py::TestR2Client::test_list_keys_no_prefix": 0.42985704899956545, - "tests/test_r2_client.py::TestR2Client::test_list_keys_noop_when_disabled": 0.09285508700031642, - "tests/test_r2_client.py::TestR2Client::test_list_keys_with_prefix": 0.7763855950001926, - "tests/test_r2_client.py::TestR2Client::test_upload_bytes_content_is_stored": 1.1444572219998008, - "tests/test_r2_client.py::TestR2Client::test_upload_bytes_exception_returns_false": 0.04677299199966001, - "tests/test_r2_client.py::TestR2Client::test_upload_bytes_noop_when_disabled": 0.08005556300031458, - "tests/test_r2_client.py::TestR2Client::test_upload_bytes_success": 0.32759161600006337, - "tests/test_r2_client.py::TestR2Client::test_upload_file_exception_returns_false": 0.06433262300015485, - "tests/test_r2_client.py::TestR2Client::test_upload_file_noop_when_disabled": 0.05410051900025792, - "tests/test_r2_client.py::TestR2Client::test_upload_file_success": 0.35047193699983836, - "tests/test_radar3_truth_units.py::TestGroundTruthAltitudeUnits::test_gt_altitude_is_metres_not_reconverted_feet": 0.062359770000057324, - "tests/test_radar3_truth_units.py::TestGroundTruthAltitudeUnits::test_gt_speed_comes_from_meta_not_zero": 0.0647741669995412, - "tests/test_radar3_truth_units.py::TestGroundTruthAltitudeUnits::test_unknown_gt_speed_is_excluded_from_velocity_stats": 0.06085554999935994, - "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_malformed_ref_is_refused": 0.2124300749997019, - "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_arriving_at_registration_is_recorded": 0.22273767700016833, - "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_arriving_later_is_still_recorded": 0.3217173340003683, - "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_shaped_like_a_node_id_is_refused": 0.22315869600015503, - "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_the_registry_gives_to_another_node_is_refused": 0.22028340899987597, - "tests/test_radar_routes.py::TestCheckRateLimit::test_exceeding_rate_limit_raises_429": 0.0638029609995101, - "tests/test_radar_routes.py::TestCheckRateLimit::test_expired_timestamps_cleaned_up": 0.07030296899984023, - "tests/test_radar_routes.py::TestCheckRateLimit::test_first_call_succeeds": 0.062329644999863376, - "tests/test_radar_routes.py::TestRadarDetectionsAuth::test_correct_api_key_returns_200": 0.2518382799999017, - "tests/test_radar_routes.py::TestRadarDetectionsAuth::test_missing_api_key_returns_401": 0.20066863100009869, - "tests/test_radar_routes.py::TestRadarDetectionsAuth::test_wrong_api_key_returns_401": 0.31213981099972443, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_auth_wrong_key_returns_401": 0.21264559399969585, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_changed_config_re_registers_the_node": 0.33089924900059486, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_does_not_overwrite_a_node_registered_by_another_path": 0.2060422340000514, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_first_registration_of_a_new_node_is_unaffected": 0.2124393770000097, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_frame_without_timestamp_skipped": 0.21687220500007243, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_missing_config_on_a_known_node_does_not_re_register": 0.20436006900035864, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_two_nodes_registered_and_frames_queued": 0.23954883599981258, - "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_unchanged_config_does_not_re_register": 0.21358930599990344, - "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_existing_node_status_updated_not_duplicated": 0.19497064300048805, - "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_frame_with_timestamp_is_queued": 0.2135012200001256, - "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_frame_without_timestamp_not_queued": 0.21336724700040577, - "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_new_node_registered_in_connected_nodes": 0.19895140800008448, - "tests/test_reputation_penalty_scale.py::TestDefaultScaleRecordsNoPenalty::test_a_100km_mismatch_costs_nothing": 0.051202907000060804, - "tests/test_reputation_penalty_scale.py::TestDefaultScaleRecordsNoPenalty::test_rewards_still_work_at_zero_scale": 0.05506142700005512, - "tests/test_reputation_penalty_scale.py::TestDefaultScaleRecordsNoPenalty::test_the_same_mismatch_does_land_with_penalties_on": 0.04310436900004788, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[-1]": 0.04991173999997045, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[-inf]": 0.052890940999986924, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[1,0]": 0.05211101100030646, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[banana]": 0.06421698599979209, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[nan]": 0.05404119599961632, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_infinity_is_refused": 0.050464022000141995, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_one_restores_the_historical_behaviour": 0.05523196299964184, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_the_deployed_default_is_zero": 0.05029713799967794, - "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_unset_is_zero": 0.05239318599979015, - "tests/test_reputation_penalty_scale.py::TestRestoredBlocksSurvive::test_a_restored_block_is_unchanged_by_an_evaluator_pass": 0.05070578899994871, - "tests/test_reputation_penalty_scale.py::TestRestoredBlocksSurvive::test_the_same_pass_would_have_charged_it_with_penalties_on": 0.05407631899970511, - "tests/test_reputation_penalty_scale.py::test_set_penalty_scale_refuses_a_nonsense_value": 0.05926452199992127, - "tests/test_rollback_script.py::test_a_container_created_after_the_tag_is_restarted": 0.0889968950000366, - "tests/test_rollback_script.py::test_a_container_older_than_the_tag_that_answers_is_left_alone": 0.08692622899980051, - "tests/test_rollback_script.py::test_a_container_that_does_not_answer_is_restarted": 0.09042576100000588, - "tests/test_rollback_script.py::test_an_abort_partway_says_the_rollback_did_not_complete": 0.08446537000008902, - "tests/test_rollback_script.py::test_health_wait_matches_the_deploys": 0.05997977599963633, - "tests/test_rollback_script.py::test_lookup_picks_the_newest_tag": 0.7180336890000945, - "tests/test_rollback_script.py::test_lookup_survives_a_listing_larger_than_a_pipe_buffer": 12.700898273000348, - "tests/test_rollback_script.py::test_no_running_container_means_the_full_restart": 0.09203840199961633, - "tests/test_rollback_script.py::test_the_same_second_as_the_tag_counts_as_after": 0.08480678800060559, - "tests/test_routes.py::TestArchiveAPI::test_archive_list": 0.18434279100029016, - "tests/test_routes.py::TestArchiveAPI::test_existing_archive_file_returns_content": 0.1960121230004006, - "tests/test_routes.py::TestArchiveAPI::test_missing_archive_file_returns_404": 0.18681277299947396, - "tests/test_routes.py::TestCORS::test_cors_allows_configured_origin": 0.1931887089999691, - "tests/test_routes.py::TestCORS::test_cors_rejects_unknown_origin": 0.1841276929999367, - "tests/test_routes.py::TestCORS::test_cors_restricts_methods": 0.19378660399979708, - "tests/test_routes.py::TestDetections::test_bulk_accepts_valid": 0.2036379760006639, - "tests/test_routes.py::TestDetections::test_bulk_endpoint_validates_shape": 0.20297728200011989, - "tests/test_routes.py::TestDetections::test_missing_api_key_returns_401": 0.18876734600007694, - "tests/test_routes.py::TestDetections::test_no_timestamp_frame_skipped": 0.19508191600061764, - "tests/test_routes.py::TestDetections::test_valid_detection_accepted": 0.20384267100052966, - "tests/test_routes.py::TestHealth::test_health_returns_ok": 0.1870660519998637, - "tests/test_routes.py::TestRadarData::test_aircraft_json": 0.18178011300005892, - "tests/test_routes.py::TestRadarData::test_receiver_json": 0.18213220899997395, - "tests/test_routes.py::TestRequestSizeLimit::test_oversized_body_rejected": 0.184222318999673, - "tests/test_routes.py::TestTowerStats::test_get_summary": 0.18256576500016308, - "tests/test_routes.py::TestTowerStats::test_missing_fields_returns_400": 0.183657072999722, - "tests/test_routes.py::TestTowerStats::test_post_selection": 0.18409555600010208, - "tests/test_routes.py::TestWebSocketAuth::test_ws_accepted_with_valid_token": 0.1795606709997628, - "tests/test_routes.py::TestWebSocketAuth::test_ws_open_when_no_token_configured": 0.19557830299982015, - "tests/test_routes.py::TestWebSocketAuth::test_ws_rejected_with_bad_token": 0.17603185500001928, - "tests/test_runtime_config.py::TestWriteRuntimeFile::test_a_failed_write_does_not_touch_the_target": 0.045170953999786434, - "tests/test_runtime_config.py::TestWriteRuntimeFile::test_each_call_uses_its_own_temp_file": 0.04421788999979981, - "tests/test_runtime_config.py::TestWriteRuntimeFile::test_leaves_no_temp_file_behind": 0.046373068999855604, - "tests/test_runtime_config.py::TestWriteRuntimeFile::test_replaces_the_target": 0.05218204499942658, - "tests/test_secrets.py::test_a_secret_round_trips_under_the_key": 0.04603555499988943, - "tests/test_secrets.py::test_an_invalid_key_is_refused_by_name": 0.052719297999828996, - "tests/test_secrets.py::test_another_key_cannot_read_it": 0.042999937000331556, - "tests/test_secrets.py::test_encrypting_without_a_key_is_refused[ ]": 0.04882696599997871, - "tests/test_secrets.py::test_encrypting_without_a_key_is_refused[None]": 0.05094204799979707, - "tests/test_secrets.py::test_encrypting_without_a_key_is_refused[]": 0.0434634289999849, - "tests/test_sim_ingest.py::TestAdsbPush::test_icao_hex_accepted": 0.18825340499961385, - "tests/test_sim_ingest.py::TestAdsbPush::test_object_id_rejected": 0.19713266899998416, - "tests/test_sim_ingest.py::TestAdsbPush::test_source_real_push_is_real_world": 0.18650072800028283, - "tests/test_sim_ingest.py::TestAdsbPush::test_tisb_tilde_hex_accepted": 0.17994141000008312, - "tests/test_sim_ingest.py::TestAdsbPush::test_untagged_push_is_sim_world": 0.19324880700014546, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_adsb_silent_defaults_false_for_older_fleets": 0.18502382199994827, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_anomalous_push_flags_hex_and_logs_event": 0.18762554800014186, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_invalid_latlon_skipped": 0.20060841100030302, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_missing_api_key_rejected": 0.2086068069997964, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_non_anomalous_push_clears_hex": 0.19234795999955168, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_non_list_aircraft_rejected": 0.1979138020001301, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_old_payload_without_new_keys_defaults": 0.1831997159997627, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_stores_adsb_silent_flag": 0.1858136780001587, - "tests/test_sim_ingest.py::TestGroundTruthPush::test_stores_trail_and_full_meta": 0.18079883499967764, - "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_accepted_and_echoed": 0.18610624299981282, - "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_default_is_off": 0.17759505900039585, - "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_is_outside_the_frac_sum_constraint": 0.17904619100045238, - "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_out_of_range_rejected": 0.18263217499998063, - "tests/test_sim_ingest.py::TestSimulationConfig::test_config_put_needs_no_session": 0.1864657109995278, - "tests/test_sim_ingest.py::TestSimulationConfig::test_counts_report_silent_transponders_alongside_their_type": 0.18452642799957175, - "tests/test_sim_ingest.py::TestSimulationConfig::test_counts_split_live_feed_aircraft_by_cast": 0.1819697430000815, - "tests/test_sim_ingest.py::TestSimulationConfig::test_counts_split_out_dark_aircraft": 0.17911271500042858, - "tests/test_sim_ingest.py::TestSimulationConfig::test_defaults_are_boot_stamped": 0.1811226899999383, - "tests/test_sim_ingest.py::TestSimulationConfig::test_dual_fraction_above_range_rejected": 0.19211502400003155, - "tests/test_sim_ingest.py::TestSimulationConfig::test_dual_fraction_below_range_rejected": 0.18768496899974707, - "tests/test_sim_ingest.py::TestSimulationConfig::test_frac_live_dark_is_outside_the_frac_sum_constraint": 0.19305008300034388, - "tests/test_sim_ingest.py::TestSimulationConfig::test_live_knobs_accepted_and_echoed": 0.1763895799999773, - "tests/test_sim_ingest.py::TestSimulationConfig::test_live_knobs_default_on_with_dark_share": 0.18849594899984368, - "tests/test_sim_ingest.py::TestSimulationConfig::test_live_knobs_validated": 0.18232612699921447, - "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_above_400_rejected": 0.17975377199945797, - "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_below_10_but_nonzero_rejected": 0.17956100399987918, - "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_boundary_values_accepted": 0.18962587700025324, - "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_zero_accepted": 0.18406069100046807, - "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_above_range_rejected": 0.17624470399960046, - "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_below_range_rejected": 0.17992201800052499, - "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_bool_rejected": 0.1800452660004339, - "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_float_rejected": 0.18537053300042317, - "tests/test_sim_ingest.py::TestSimulationConfig::test_partial_put_leaves_scene_keys_absent": 0.19549471800019091, - "tests/test_sim_ingest.py::TestSimulationConfig::test_scene_keys_absent_by_default": 0.1923174020002989, - "tests/test_sim_ingest.py::TestSimulationConfig::test_scene_keys_accepted_and_echoed": 0.19764258599980167, - "tests/test_sim_ingest.py::TestStationaryPush::test_meta_and_anomaly_update_while_stationary": 0.22529309599985936, - "tests/test_sim_ingest.py::TestStationaryPush::test_moved_push_still_appends": 0.18471868599999652, - "tests/test_sim_ingest.py::TestStationaryPush::test_refreshes_liveness_without_duplicate_point": 0.21500319599999784, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[dev]": 0.04453339700012293, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[production]": 0.04487267400008932, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[staging]": 0.03728391000049669, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[test]": 0.038547713000298245, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[ 1]": 0.04509500999984084, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[0]": 0.047916677000102936, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[1 ]": 0.036636353999256244, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[True]": 0.05218703699983962, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[]": 0.04772987800015471, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[on]": 0.05599651000011363, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[true]": 0.05223317500031044, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[yes]": 0.05137500699993325, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[dev]": 0.04186594900011187, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[production]": 0.046170389000508294, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[staging]": 0.05385874600005991, - "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[test]": 0.049563554000087606, - "tests/test_sim_ingest_mount.py::test_main_consults_the_gate": 8.123458665999806, - "tests/test_simulation.py::TestSimulationWorld::test_aircraft_populated": 0.06621175699956439, - "tests/test_simulation.py::TestSimulationWorld::test_aircraft_summary": 0.0528622289998566, - "tests/test_simulation.py::TestSimulationWorld::test_beam_width_preserved": 0.053361322000000655, - "tests/test_simulation.py::TestSimulationWorld::test_generate_frames": 0.05885960299974613, - "tests/test_simulation.py::TestSyntheticNodeConfig::test_config_hash_format": 0.049914097000055335, - "tests/test_simulation.py::TestSyntheticNodeConfig::test_different_config_different_hash": 0.053718345999641315, - "tests/test_simulation.py::TestSyntheticNodeConfig::test_node_id_prefix": 0.047477479000008316, - "tests/test_simulation.py::TestSyntheticNodeConfig::test_same_config_same_hash": 0.05851080400043429, - "tests/test_simulation.py::TestSyntheticNodeGenerator::test_generate_frame_has_fields": 0.051368182999794954, - "tests/test_simulator_only_on_test.py::test_health_serialises_the_flag_the_smoke_suite_greps_for": 0.20217302999981257, - "tests/test_simulator_only_on_test.py::test_no_simulator_flag_off_the_test_droplet[prod]": 0.06513312500010215, - "tests/test_simulator_only_on_test.py::test_no_simulator_flag_off_the_test_droplet[staging]": 0.06566200099996422, - "tests/test_simulator_only_on_test.py::test_the_fleet_is_behind_an_unenabled_profile[prod]": 0.061453732999780186, - "tests/test_simulator_only_on_test.py::test_the_fleet_is_behind_an_unenabled_profile[staging]": 0.07397676700020384, - "tests/test_simulator_only_on_test.py::test_the_smoke_job_no_longer_waits_for_a_fleet": 0.0914583329999914, - "tests/test_simulator_only_on_test.py::test_the_smoke_suite_asserts_the_simulator_is_absent": 0.053106211999875086, - "tests/test_simulator_only_on_test.py::test_the_staging_deploy_starts_the_server_alone": 0.10418137999977262, - "tests/test_simulator_only_on_test.py::test_the_test_droplet_still_sets_the_flag": 0.06844320799973502, - "tests/test_simulator_only_on_test.py::test_the_test_droplets_fleet_starts_by_default": 0.07339312100020834, - "tests/test_smoke_tally_shared.py::test_each_suite_sources_the_shared_tally[ci.yml (production smoke)]": 0.06790904799981945, - "tests/test_smoke_tally_shared.py::test_each_suite_sources_the_shared_tally[staging-smoke-test.sh]": 0.05670655699987037, - "tests/test_smoke_tally_shared.py::test_no_suite_declares_its_own_counters[ci.yml (production smoke)]": 0.05677016499930687, - "tests/test_smoke_tally_shared.py::test_no_suite_declares_its_own_counters[staging-smoke-test.sh]": 0.05059103199982928, - "tests/test_smoke_tally_shared.py::test_the_summary_takes_no_arguments": 0.04537062400004288, - "tests/test_smoke_tally_shared.py::test_the_tally_owns_all_three_counters": 0.05524825600014083, - "tests/test_solve_uncertainty.py::TestClamp::test_ceiling_of_the_clamp_binds": 0.057093239999630896, - "tests/test_solve_uncertainty.py::TestClamp::test_floor_of_the_clamp_binds": 0.05533188000026712, - "tests/test_solve_uncertainty.py::TestClamp::test_returns_a_float": 0.065747709000334, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[2-2100.0]": 0.052079155999763316, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[3-850.0]": 0.04735206500026834, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[4-240.0]": 0.056238126000607735, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[9-240.0]": 0.04999092300022312, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floors_are_env_tunable": 0.05568759700008741, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floors_replace_the_known_ones_rather_than_scaling_them": 0.05800395300002492, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_formal_sigma_still_adds_in_quadrature_on_the_dark_lane": 0.052343351999752485, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_gain_is_env_tunable_and_multiplies_the_dark_floor": 0.05987295699924289, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_capped_worst_case_stays_off_the_clamp": 0.05619631399986247, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_gain_defaults_to_unit": 0.05498037799998201, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_gain_does_not_touch_the_known_lane": 0.05782910600009927, - "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_legacy_gain_still_applies_when_set": 0.050977658000192605, - "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[2-650.0]": 0.06767244699949515, - "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[3-210.0]": 0.05733869799905733, - "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[4-180.0]": 0.053737358000034874, - "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[7-180.0]": 0.053964706000442675, - "tests/test_solve_uncertainty.py::TestFloors::test_known_lane_floors_are_the_2026_09_05_values": 0.05383551900013117, - "tests/test_solve_uncertainty.py::TestFloors::test_n_nodes_explicit_none_returns_none": 0.060553924000032566, - "tests/test_solve_uncertainty.py::TestFloors::test_n_nodes_missing_returns_none": 0.06067804600024829, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_absent_formal_matches_zero_formal": 0.05393040199942334, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_formal_adds_in_quadrature": 0.0562999070002661, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_formal_gain_scales_only_the_formal_term": 0.05992272599905846, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_formal_is_capped_before_it_is_used": 0.05240727099999276, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[-1.0]": 0.06096353099974294, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[0.0]": 0.051359742999920854, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[None]": 0.058004567000352836, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[inf]": 0.0535393620002651, - "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[nan]": 0.0760223440001937, - "tests/test_solve_uncertainty.py::TestGrownSigma::test_growth_adds_in_quadrature": 0.05445450300067023, - "tests/test_solve_uncertainty.py::TestGrownSigma::test_growth_is_capped_at_the_growth_horizon": 0.06115486899989264, - "tests/test_solve_uncertainty.py::TestGrownSigma::test_growth_is_monotonic_up_to_the_cap": 0.05182241800002885, - "tests/test_solve_uncertainty.py::TestGrownSigma::test_negative_age_does_not_shrink_or_grow": 0.05091777000052389, - "tests/test_solve_uncertainty.py::TestGrownSigma::test_zero_age_is_the_solve_sigma": 0.053641811999568745, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_default_is_env_tunable": 0.047718626000005315, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[0.5-5.0]": 0.04921819899982438, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[4.9-5.0]": 0.048657964000085485, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[42.0-42.0]": 0.05502336699919397, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[900.0-150.0]": 0.046167579000211845, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_state_supplies_the_sigma": 0.0468811759997152, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_non_finite_kf_sigma_falls_back": 0.06391678199997841, - "tests/test_solve_uncertainty.py::TestVelocitySigma::test_unknown_key_falls_back_to_the_default": 0.051013531999615225, - "tests/test_solver.py::TestBistaticModels::test_delay_increases_with_offset": 0.0545900380002422, - "tests/test_solver.py::TestBistaticModels::test_delay_symmetric": 0.0501253010002074, - "tests/test_solver.py::TestBistaticModels::test_delay_target_on_baseline_is_zero": 0.05768994899972313, - "tests/test_solver.py::TestBistaticModels::test_doppler_nonzero_for_moving_target": 0.045050289000300836, - "tests/test_solver.py::TestBistaticModels::test_doppler_stationary_is_zero": 0.046960849999777565, - "tests/test_solver.py::TestCoordinateConversions::test_lla_to_enu_north_offset": 0.05091371399976197, - "tests/test_solver.py::TestCoordinateConversions::test_lla_to_enu_origin_is_zero": 0.06095882600084224, - "tests/test_solver.py::TestCoordinateConversions::test_roundtrip_lla_enu_lla": 0.05302730900029928, - "tests/test_solver.py::TestResidualFunction::test_perfect_state_has_small_residuals": 0.044321190000118804, - "tests/test_solver.py::TestResidualFunction::test_snr_weighting": 0.050061887000083516, - "tests/test_solver.py::TestResidualFunction::test_z_fixed_is_used_not_state": 0.047451292999539874, - "tests/test_solver.py::TestSolveMultinode::test_contributing_node_ids_returned": 0.12841173000060735, - "tests/test_solver.py::TestSolveMultinode::test_empty_measurements_returns_none": 0.058707692000552925, - "tests/test_solver.py::TestSolveMultinode::test_fc_fallback_to_FC_key": 0.11964479100015524, - "tests/test_solver.py::TestSolveMultinode::test_happy_path_two_nodes": 0.08561874599990915, - "tests/test_solver.py::TestSolveMultinode::test_missing_node_config_returns_none": 0.05449348399997689, - "tests/test_solver.py::TestSolveMultinode::test_result_has_fit_quality_metrics": 0.08774329800007763, - "tests/test_solver.py::TestSolveMultinode::test_result_has_velocity": 0.09944735900035084, - "tests/test_solver.py::TestSolveMultinode::test_single_measurement_returns_none": 0.047410017999936827, - "tests/test_solver.py::TestVelUntrustedDerivation::test_solve_source_n_nodes_3_is_untrusted": 0.06969346600044446, - "tests/test_solver.py::TestVelUntrustedDerivation::test_solve_source_n_nodes_4_is_trusted": 0.06352979499979483, - "tests/test_solver.py::TestVelUntrustedDerivation::test_unsaturated_cv_fit_n_nodes_2_is_trusted": 0.057072394999977405, - "tests/test_solver.py::TestVelUntrustedDerivation::test_vz_saturated_with_cv_fit_adopted_is_untrusted": 0.05432314000017868, - "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_no_measurements_gives_nothing": 0.03970615199978056, - "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_pool_measurement_nodes_travel_too": 0.03590750700050194, - "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_restricted_to_the_measurement_nodes": 0.037240301000110776, - "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_unknown_measurement_nodes_are_simply_absent": 0.03918472700024722, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_an_adsb_altitude_in_the_ladder_is_the_start": 0.0638655539996762, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_fewer_than_one_start_still_starts_somewhere[-3]": 0.03957067800047298, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_fewer_than_one_start_still_starts_somewhere[0]": 0.061030610000671004, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_more_starts_than_layers_is_every_layer": 0.04944315900002039, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_no_layers_gives_no_starts": 0.04699118799953794, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[0.4-expected4]": 0.06074812099996052, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[1.5-expected3]": 0.0775634669998908, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[40.0-expected5]": 0.05721182800061797, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[7.0-expected1]": 0.05136792899975262, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[8.2-expected2]": 0.06615498700057287, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[9.0-expected0]": 0.0587599860004957, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[0.4-expected4]": 0.06031508700016275, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[1.5-expected3]": 0.057665723000354774, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[11.0-expected5]": 0.05414607900002011, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[40.0-expected6]": 0.047174711999559804, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[7.0-expected1]": 0.055188483000165434, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[8.2-expected2]": 0.048910805999639706, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[9.0-expected0]": 0.06440635500030112, - "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_window_the_spliced_adsb_altitude": 0.0372657199995956, - "tests/test_solver_alt_mode.py::TestFreeMode::test_a_failed_multistart_is_a_failed_solve": 0.05022352799960572, - "tests/test_solver_alt_mode.py::TestFreeMode::test_a_single_start_still_records_its_residual": 0.0437953139999081, - "tests/test_solver_alt_mode.py::TestFreeMode::test_an_adsb_guess_altitude_is_the_start": 0.04887872800009063, - "tests/test_solver_alt_mode.py::TestFreeMode::test_an_unrecognised_mode_would_sweep": 0.04366045299957477, - "tests/test_solver_alt_mode.py::TestFreeMode::test_history_carries_the_mode_and_the_per_start_residuals": 0.04394009400039067, - "tests/test_solver_alt_mode.py::TestFreeMode::test_n2_keeps_the_sweep": 0.043884155999876384, - "tests/test_solver_alt_mode.py::TestFreeMode::test_one_multistart_call_with_one_start": 0.04689404500004457, - "tests/test_solver_alt_mode.py::TestFreeMode::test_the_start_count_is_configurable": 0.04277299699970172, - "tests/test_solver_alt_mode.py::TestFreeMode::test_trimming_re_solves_through_the_multistart": 0.03672639500064179, - "tests/test_solver_alt_mode.py::TestFreeMode::test_z_saturation_reaches_the_history": 0.036265617000026396, - "tests/test_solver_alt_mode.py::TestSweepIsTheDefault::test_sweep_calls_the_lm_once_per_layer_and_never_the_multistart": 0.04780241100024796, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_a_fresh_close_entry_beats_an_old_far_one": 0.04207245099951251, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_a_widened_base_is_never_narrowed_by_the_cap": 0.04228411699978096, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_an_anchor_inside_the_flat_radius_still_reports_its_distance": 0.0425826729997425, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_eight_km_from_a_30s_old_entry_rekeys_onto_it": 0.04219469899953765, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_gate_grows_by_the_measured_drift_rate": 0.0417093299993212, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_gate_is_capped_and_stays_capped_to_the_age_limit": 0.04181501900029616, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_gate_starts_at_the_flat_radius": 0.03860092700006135, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_learned_velocity_is_preferred_when_the_filter_has_it": 0.03792728399957923, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_no_learned_velocity_falls_back_to_the_entrys_own": 0.04170678900027269, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_normalising_by_the_gate_beats_ranking_on_raw_kilometres": 0.03454197300015949, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_age_window_itself_is_unchanged": 0.041982099000051676, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_anchor_branch_keeps_the_flat_radius": 0.07616010699985054, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_cap_holds_at_the_age_limit": 0.036954220999632525, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_same_eight_km_from_a_2s_old_entry_mints": 0.04430700500006424, - "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_track_dr_source_solve_pins_the_entrys_own_velocity": 0.04422240700023394, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_adsb_takes_precedence_over_an_anchor": 0.03407047699965915, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_anchor_beyond_max_dist_km_falls_back": 0.048442886999964685, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_anchor_hit_when_close_and_still_live": 0.03882759399994029, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_mints_a_new_key_with_no_anchor_and_no_claimant": 0.04581778000010672, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_missing_anchor_key_falls_back_to_mint": 0.04075249000061376, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_non_dark_anchor_key_is_refused": 0.04011647199968138, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_non_transponder_adsb_hex_cannot_take_the_adsb_branch": 0.05155559900049411, - "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_tisb_tilde_adsb_hex_still_takes_the_adsb_branch": 0.04141668900001605, - "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_a_negative_dt_candidate_gets_no_drift_allowance": 0.034136557999772776, - "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_a_solve_far_older_than_the_entry_still_mints": 0.03247085300017716, - "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_a_solve_two_seconds_older_than_the_entry_joins_it": 0.03152859200054081, - "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_the_entry_is_dead_reckoned_backwards_not_forwards": 0.032261072999972384, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_anchor_key_is_recorded_on_rejects_too": 0.04399951100003818, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_anchored_n2_without_cv_epochs_is_withheld": 0.03634023500035255, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_anchored_publish_lands_on_the_anchor_key": 0.040166391000184376, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_fallback_still_publishes_and_counts_as_a_fallback": 0.039890403999834234, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_history_carries_the_anchor_key": 0.042834682999455254, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_supersession_merges_a_proximity_minted_fragment_into_the_anchor": 0.038012679999610555, - "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_supersession_refuses_a_far_fragment_that_only_partially_shares_inputs": 0.039594153000052756, - "tests/test_solver_consensus.py::TestConsensusDisabledAndN2::test_mode_off_never_calls_select_fn": 0.037584718000289286, - "tests/test_solver_consensus.py::TestConsensusDisabledAndN2::test_n2_never_calls_select_fn_even_when_active": 0.041026066999620525, - "tests/test_solver_consensus.py::TestConsensusFallbacks::test_abstain_falls_back_to_full_set": 0.037340585000492865, - "tests/test_solver_consensus.py::TestConsensusFallbacks::test_raising_select_fn_falls_back": 0.04262527900027635, - "tests/test_solver_consensus.py::TestConsensusFallbacks::test_too_few_selected_falls_back": 0.03656403000013597, - "tests/test_solver_consensus.py::TestConsensusFiltersAndPublishes::test_filters_to_selection_and_publishes": 0.03909783499966579, - "tests/test_solver_consensus.py::TestConsensusMetaOnReject::test_rejected_rms_delay_still_carries_consensus_meta": 0.0426549209996665, - "tests/test_solver_consensus.py::TestConsensusShadow::test_shadow_mode_records_meta_without_filtering": 0.04181424399939715, - "tests/test_solver_consensus.py::TestConsensusThenTrim::test_consensus_selection_then_trim_both_recorded": 0.04640971000026184, - "tests/test_solver_consensus.py::TestDisplacementAnchor::test_active_selected_anchors_to_centroid_and_publishes": 0.035446324000076856, - "tests/test_solver_consensus.py::TestDisplacementAnchor::test_active_selected_rejects_when_off_both_anchors": 0.03346115899967117, - "tests/test_solver_consensus.py::TestDisplacementAnchor::test_fallback_abstained_keeps_guess_anchor": 0.036568289999650005, - "tests/test_solver_consensus.py::TestDisplacementAnchor::test_shadow_mode_keeps_guess_anchor": 0.03814751799973237, - "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_filters_measurements_and_recomputes_n_nodes": 0.04180429100006222, - "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_no_track_ids_by_node_leaves_track_ids_unchanged": 0.03383581299976868, - "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_original_s_in_is_not_mutated": 0.034939619000397215, - "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_rebuilds_track_ids_by_node_and_track_ids": 0.03944554000008793, - "tests/test_solver_lifecycle.py::test_start_builds_and_prewarms_the_pool_and_stop_shuts_it": 0.13925625400042918, - "tests/test_solver_lifecycle.py::test_start_is_idempotent_and_stop_joins_workers": 0.25008505600044373, - "tests/test_solver_lifecycle.py::test_stop_closes_pool_and_does_not_recreate_it": 0.038581296000302245, - "tests/test_solver_lifecycle.py::test_stop_is_bounded_and_refuses_overlap_with_unfinished_generation": 0.04988491199992495, - "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_pool_node_outside_the_delay_gate_is_not_adopted": 0.038751344999582216, - "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_pool_node_outside_the_doppler_gate_is_not_adopted": 0.038773310000124184, - "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_second_chance_drops_the_worst_adopted_node": 0.04672727700017276, - "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_wide_solve_failing_rms_keeps_the_narrow_one": 0.037920783000572555, - "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_wide_solve_that_walks_away_is_refused": 0.0412095099995895, - "tests/test_solver_pool_adoption.py::TestAdoptScope::test_anchored_input_is_skipped": 0.039367082999888225, - "tests/test_solver_pool_adoption.py::TestAdoptScope::test_input_already_as_wide_as_its_pool_is_skipped": 0.04804333999982191, - "tests/test_solver_pool_adoption.py::TestAdoptScope::test_kill_switch_disables_the_stage": 0.037363367000125436, - "tests/test_solver_pool_adoption.py::TestAdoptWidens::test_adopted_node_track_joins_the_provenance": 0.03616524900007789, - "tests/test_solver_pool_adoption.py::TestAdoptWidens::test_agreeing_pool_node_is_adopted_and_resolved_wider": 0.03899104099946271, - "tests/test_solver_report.py::TestMedianP90::test_empty_is_none_for_both": 0.03187394799988397, - "tests/test_solver_report.py::TestMedianP90::test_input_order_does_not_matter": 0.04064107599970157, - "tests/test_solver_report.py::TestMedianP90::test_single_value_is_both": 0.03699867400018775, - "tests/test_solver_report.py::TestMedianP90::test_ten_values": 0.03677825799968559, - "tests/test_solver_report.py::TestMedianP90::test_two_values_take_the_upper_median_and_the_lower_p90": 0.037726781999936065, - "tests/test_solver_stats.py::TestClaimingPassthrough::test_claiming_mode_defaults_to_off_in_tests": 0.03704147700000249, - "tests/test_solver_stats.py::TestClaimingPassthrough::test_claiming_reflects_the_associator_and_solver_counters": 0.03437553100002333, - "tests/test_solver_stats.py::TestConsensusAndCounters::test_consensus_and_counters_reflect_state": 0.03282830999978614, - "tests/test_solver_stats.py::TestContaminationBlock::test_empty_window_abstains_rather_than_reporting_zero": 0.03695593700012978, - "tests/test_solver_stats.py::TestContaminationBlock::test_known_lane_records_are_not_counted": 0.04591104299970539, - "tests/test_solver_stats.py::TestContaminationBlock::test_pct_and_mean_over_judged_records": 0.03478283899994494, - "tests/test_solver_stats.py::TestContaminationBlock::test_unstamped_records_are_out_of_the_denominator": 0.02979475900065154, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_an_empty_lane_reports_zeroes_not_a_missing_block": 0.029502413999580313, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_counts_published_solves_narrower_than_their_pool": 0.02918944500015641, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_ineligibility_reasons_are_reported_per_reason": 0.030423470000641828, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_no_stamped_records_reports_null_not_zero": 0.03529065999964587, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_the_manoeuvre_reprieve_is_reported_beside_the_bucket_it_empties": 0.03168143199991391, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_the_two_n2_sparings_are_reported_beside_the_funnel": 0.03925039299974742, - "tests/test_solver_stats.py::TestDarkFollowBlock::test_unstamped_and_unpublished_records_stay_out_of_the_denominator": 0.03276196299975709, - "tests/test_solver_stats.py::TestEmptyState::test_empty_state_no_division_errors": 0.03321489600011773, - "tests/test_solver_stats.py::TestEndpoint::test_claiming_and_fragmentation_blocks_present": 0.036782705999939935, - "tests/test_solver_stats.py::TestEndpoint::test_default_window": 0.03580437200025699, - "tests/test_solver_stats.py::TestEndpoint::test_display_filter_block_present": 0.03901294300021618, - "tests/test_solver_stats.py::TestEndpoint::test_known_lane_and_known_claims_blocks_present": 0.03695392899999206, - "tests/test_solver_stats.py::TestEndpoint::test_minutes_clamp_high": 0.035216542000398476, - "tests/test_solver_stats.py::TestEndpoint::test_minutes_clamp_low": 0.03564301799997338, - "tests/test_solver_stats.py::TestFovStatsPassthrough::test_fov_mode_defaults_to_off_in_tests": 0.03691863799986095, - "tests/test_solver_stats.py::TestFovStatsPassthrough::test_fov_reflects_state_counters": 0.03194927899994582, - "tests/test_solver_stats.py::TestFragmentation::test_anchored_pct_reads_anchor_key_regardless_of_outcome_scope": 0.032606882999971276, - "tests/test_solver_stats.py::TestFragmentation::test_dark_key_decision_counters_are_surfaced": 0.037104467999597546, - "tests/test_solver_stats.py::TestFragmentation::test_dark_key_decision_counters_reset_with_state": 0.030538743000306567, - "tests/test_solver_stats.py::TestFragmentation::test_distinct_keys_and_solves_per_key": 0.034382798000024195, - "tests/test_solver_stats.py::TestFragmentation::test_empty_window_no_division_errors": 0.03456939900024736, - "tests/test_solver_stats.py::TestFragmentation::test_rejects_do_not_count_toward_fragmentation": 0.031033667999963654, - "tests/test_solver_stats.py::TestFragmentation::test_stale_coast_counters_are_reported": 0.030965440000272793, - "tests/test_solver_stats.py::TestFragmentation::test_supersession_counters_are_surfaced": 0.029354575000525074, - "tests/test_solver_stats.py::TestFunnelAndRejects::test_funnel_splits_n2_vs_n3plus": 0.04142372899968905, - "tests/test_solver_stats.py::TestFunnelAndRejects::test_reject_reason_without_prefix_kept_as_is": 0.03473279399986495, - "tests/test_solver_stats.py::TestFunnelAndRejects::test_rejected_prefix_is_stripped": 0.03737449400023252, - "tests/test_solver_stats.py::TestFunnelAndRejects::test_window_excludes_old_records": 0.035848175000410265, - "tests/test_solver_stats.py::TestGhosts::test_live_adsb_associated_by_key_prefix": 0.03840308200051368, - "tests/test_solver_stats.py::TestGhosts::test_live_adsb_associated_by_result_field": 0.03682070200011367, - "tests/test_solver_stats.py::TestGhosts::test_live_close_to_fresh_adsb_is_not_a_ghost": 0.03933023800027513, - "tests/test_solver_stats.py::TestGhosts::test_live_close_to_ground_truth_is_matched_not_ghost": 0.037735087999863026, - "tests/test_solver_stats.py::TestGhosts::test_live_dark_partition_adds_up": 0.04467685899953722, - "tests/test_solver_stats.py::TestGhosts::test_live_far_from_everything_is_a_ghost": 0.040343282999856456, - "tests/test_solver_stats.py::TestGhosts::test_live_positionless_dark_track_is_out_of_the_denominator": 0.037293054000201664, - "tests/test_solver_stats.py::TestGhosts::test_live_precision_is_none_with_no_dark_tracks": 0.04028547600046295, - "tests/test_solver_stats.py::TestGhosts::test_live_precision_pct_denominator_is_dark_only": 0.036367788999996264, - "tests/test_solver_stats.py::TestGhosts::test_live_stale_adsb_entry_does_not_rescue": 0.03973027900019588, - "tests/test_solver_stats.py::TestGhosts::test_one_shot_ghosts_are_counted_separately": 0.03949754099994607, - "tests/test_solver_stats.py::TestGhosts::test_precision_is_none_with_nothing_judged": 0.040454073999626416, - "tests/test_solver_stats.py::TestGhosts::test_real_world_node_solve_is_not_judged": 0.032564876999913395, - "tests/test_solver_stats.py::TestGhosts::test_synthetic_node_solve_is_judged": 0.034934251999857224, - "tests/test_solver_stats.py::TestGhosts::test_unstamped_record_is_not_judged": 0.04249730499986981, - "tests/test_solver_stats.py::TestGhosts::test_window_excludes_old_ghosts": 0.03526800899999216, - "tests/test_solver_stats.py::TestGhosts::test_windowed_counts_dark_lane_only": 0.03701152599978741, - "tests/test_solver_stats.py::TestGhosts::test_windowed_ghost_is_a_published_dark_solve_past_the_gate": 0.03691236900021977, - "tests/test_solver_stats.py::TestKnownLaneAndClaimsPassthrough::test_both_blocks_zero_on_a_fresh_process": 0.0329240769997341, - "tests/test_solver_stats.py::TestKnownLaneAndClaimsPassthrough::test_known_claims_reflects_the_claiming_counters": 0.03306726099981461, - "tests/test_solver_stats.py::TestKnownLaneAndClaimsPassthrough::test_known_lane_reflects_the_lane_counters": 0.03179236299956756, - "tests/test_solver_stats.py::TestLaneSplit::test_adsb_lane_records_are_counted_but_not_funnelled": 0.035227283000494936, - "tests/test_solver_stats.py::TestLaneSplit::test_follow_records_leave_the_dark_funnel": 0.0334104729995488, - "tests/test_solver_stats.py::TestLaneSplit::test_known_lane_window_position_error": 0.03452475799986132, - "tests/test_solver_stats.py::TestLaneSplit::test_known_records_leave_the_funnel_and_land_in_lane_split": 0.03188418999980058, - "tests/test_solver_stats.py::TestLaneSplit::test_lane_split_sums_to_the_whole_window": 0.0324097669999901, - "tests/test_solver_stats.py::TestLaneSplit::test_position_error_and_fragmentation_are_dark_only": 0.03339954300008685, - "tests/test_solver_stats.py::TestLiveStateSnapshots::test_concurrent_adsb_insert_does_not_raise": 0.03140033499994388, - "tests/test_solver_stats.py::TestLiveStateSnapshots::test_concurrent_ground_truth_trail_insert_does_not_raise": 0.030157199999393924, - "tests/test_solver_stats.py::TestLiveStateSnapshots::test_concurrent_track_insert_does_not_raise": 0.035328173999914725, - "tests/test_solver_stats.py::TestLiveStateSnapshots::test_duplicated_dark_follow_counters_come_from_the_locked_snapshot": 0.03439756900024804, - "tests/test_solver_stats.py::TestLiveStateSnapshots::test_multinode_tracks_iterated_under_the_track_lock": 0.03711125700010598, - "tests/test_solver_stats.py::TestNodePool::test_a_record_with_no_node_count_is_kept_not_dropped": 0.03484582999954, - "tests/test_solver_stats.py::TestNodePool::test_buckets_sum_back_to_the_funnel": 0.03352620600026057, - "tests/test_solver_stats.py::TestNodePool::test_gt_error_beyond_the_gate_is_excluded_like_the_top_level_median": 0.03165031900016402, - "tests/test_solver_stats.py::TestNodePool::test_only_the_top_four_reject_reasons_are_listed": 0.03089546799992604, - "tests/test_solver_stats.py::TestNodePool::test_published_and_rejected_land_in_their_own_buckets": 0.04067878900013966, - "tests/test_solver_stats.py::TestNodePool::test_the_known_lane_gets_its_own_table": 0.033084658999541716, - "tests/test_solver_stats.py::TestPositionErrorGate::test_empty_position_error_is_none": 0.04036679599994386, - "tests/test_solver_stats.py::TestPositionErrorGate::test_error_gate_inclusion_and_exclusion": 0.0356688909996592, - "tests/test_solver_stats.py::TestPositionErrorGate::test_exact_median_and_p90": 0.03532567399997788, - "tests/test_solver_stats.py::TestRecordLane::test_key_prefix_decides_a_published_record": 0.034595843000261084, - "tests/test_solver_stats.py::TestRecordLane::test_keyless_reject_falls_back_to_the_input_identity": 0.033998487000189925, - "tests/test_solver_stats.py::TestRecordLane::test_known_flag_wins_over_everything": 0.03287896699976045, - "tests/test_solver_stats.py::TestRecordLane::test_non_transponder_id_is_dark": 0.03124870200008445, - "tests/test_solver_stats.py::TestResolveSkipBlock::test_a_skip_is_not_an_attempt_or_a_reject": 0.030778363999615976, - "tests/test_solver_stats.py::TestResolveSkipBlock::test_attempts_ratio_is_none_without_attempts": 0.03421710099928532, - "tests/test_solver_stats.py::TestResolveSkipBlock::test_attempts_ratio_is_skips_over_dark_attempts": 0.02931551700066848, - "tests/test_solver_stats.py::TestResolveSkipBlock::test_totals_split_by_lane": 0.03227616899948771, - "tests/test_solver_stats.py::TestResolveSkipBlock::test_window_effective_minutes_exposes_a_truncated_deque": 0.03156885100042928, - "tests/test_solver_stats.py::TestResolveSkipBlock::test_window_excludes_old_skips": 0.03197278500010725, - "tests/test_solver_stats.py::TestWindowEffectiveMinutes::test_counts_the_known_deque_too": 0.06600020900032177, - "tests/test_solver_stats.py::TestWindowEffectiveMinutes::test_never_exceeds_the_requested_window": 0.032170687000416365, - "tests/test_solver_stats.py::TestWindowEffectiveMinutes::test_reports_the_age_of_the_oldest_record_held": 0.032511289000012766, - "tests/test_solver_trimming.py::TestBeamGateNSplit::test_a_node_with_no_receiver_is_skipped_rather_than_gated_on": 0.030031452999537578, - "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n2_omni_node_skips_bearing_but_enforces_range": 0.03448184799935916, - "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n2_publishes_when_in_wedge_and_in_range": 0.02946924100024262, - "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n2_rejected_beam_outside_wedge_rule_is_bearing": 0.03080537900041236, - "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n3_publishes_outside_wedge_but_in_range": 0.03300328400064245, - "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n3_rejected_beam_beyond_bistatic_range_rule_is_range": 0.03015925000045172, - "tests/test_solver_trimming.py::TestBeamInstrumentation::test_out_of_beam_records_per_node_diagnostics": 0.028419072999895434, - "tests/test_solver_trimming.py::TestFovGateActive::test_n2_closed_bin_rejects_even_though_the_wedge_would_pass": 0.03585445999988224, - "tests/test_solver_trimming.py::TestFovGateActive::test_n2_learned_bin_rescues_a_wedge_reject": 0.02942021500030023, - "tests/test_solver_trimming.py::TestFovGateActive::test_n3_or_semantics_never_loses_a_solve_kept_today": 0.03285913999980039, - "tests/test_solver_trimming.py::TestFovGateActive::test_shadow_agree_when_both_reject": 0.032001040000068315, - "tests/test_solver_trimming.py::TestFovGateActive::test_shadow_counts_verdicts_and_tags_history_without_changing_outcome": 0.036505858000055014, - "tests/test_solver_trimming.py::TestTrimEnvKnob::test_raised_threshold_publishes_untrimmed": 0.03437035399974775, - "tests/test_solver_trimming.py::TestTrimFloor::test_floor_keeps_three_lowest_residual_nodes": 0.032413540999641555, - "tests/test_solver_trimming.py::TestTrimGivesUp::test_persistent_bad_rms_ends_in_reject_with_trim_metadata": 0.03145669000014095, - "tests/test_solver_trimming.py::TestTrimPrunesSourceTracks::test_track_ids_by_node_prunes_the_dropped_node": 0.03036460099974647, - "tests/test_solver_trimming.py::TestTrimPrunesSourceTracks::test_without_track_ids_by_node_track_ids_are_unchanged": 0.03207977600004597, - "tests/test_solver_trimming.py::TestTrimRecoversPublish::test_trim_drops_bad_node_and_publishes": 0.03252136300034181, - "tests/test_solver_trimming.py::TestTrimResolveFailure::test_failed_resolve_falls_back_to_pre_trim_result": 0.030354708000231767, - "tests/test_solver_trimming.py::TestTrimSkippedWithoutResiduals::test_missing_residuals_disables_trimming": 0.0308633239997107, - "tests/test_solver_trimming.py::TestTrimmedTracksAreNotClaimed::test_a_candidate_built_on_the_dropped_track_still_runs": 0.028654689000177314, - "tests/test_solver_trimming.py::TestTrimmedTracksAreNotClaimed::test_the_dropped_nodes_track_is_left_unclaimed": 0.030127549000098952, - "tests/test_solver_worker.py::TestBeamCoverageFilter::test_ghost_outside_beam_rejected": 0.053422301999944466, - "tests/test_solver_worker.py::TestBeamCoverageFilter::test_result_inside_beam_accepted": 0.052786484000080236, - "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_adsb_solve_keeps_all_types": 0.026771503999952984, - "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_dark_solve_allowlisted": 0.032071692000045005, - "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_dark_solve_disallowed_types_unflag": 0.03127277999965372, - "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_flag_latches_across_solves": 0.02959190599995054, - "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_unrelated_tracks_ignored": 0.026436401999035297, - "tests/test_solver_worker.py::TestCoverageCalibration::test_dark_solve_records_nothing": 0.026862744000027305, - "tests/test_solver_worker.py::TestCoverageCalibration::test_null_island_adsb_still_records_nothing": 0.02784226799985845, - "tests/test_solver_worker.py::TestCoverageCalibration::test_published_solve_with_a_fresh_adsb_match_records_no_calibration": 0.03354357299986077, - "tests/test_solver_worker.py::TestCoverageCalibration::test_stale_adsb_fix_still_records_nothing": 0.029329642000448075, - "tests/test_solver_worker.py::TestDarkSolveSmoothing::test_adsb_velocity_is_preferred_over_solved": 0.028591400000095746, - "tests/test_solver_worker.py::TestDarkSolveSmoothing::test_moving_dark_target_is_dead_reckoned_not_lagged": 0.03842882299977646, - "tests/test_solver_worker.py::TestDarkSolveSmoothing::test_stationary_noise_is_averaged": 0.02803531599965936, - "tests/test_solver_worker.py::TestFitRunsOnThisSideOfTheQueue::test_an_already_fitted_input_is_not_refitted": 0.02892944700033695, - "tests/test_solver_worker.py::TestFitRunsOnThisSideOfTheQueue::test_deferred_fit_is_run_here": 0.026919330000055197, - "tests/test_solver_worker.py::TestFitRunsOnThisSideOfTheQueue::test_no_epochs_means_no_confirmation": 0.03218731000015396, - "tests/test_solver_worker.py::TestInNodeBeam::test_no_beam_direction_returns_true_within_range": 0.05088390199944115, - "tests/test_solver_worker.py::TestInNodeBeam::test_out_of_range_returns_false_regardless_of_beam": 0.05677287500020611, - "tests/test_solver_worker.py::TestInNodeBeam::test_tx_lat_lon_derives_beam_azimuth_aircraft_inside": 0.06091922399991745, - "tests/test_solver_worker.py::TestInNodeBeam::test_tx_lat_lon_derives_beam_azimuth_aircraft_outside": 0.05906410299940035, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_an_unknown_anchor_key_admits_nothing": 0.03674395200005165, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_anchored_follow_of_a_young_key_is_still_gated": 0.04408478900040791, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_anchored_follow_of_an_established_key_publishes": 0.04713049400015734, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_confirmed_pairing_is_published": 0.05161197799952788, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_failing_chi2_is_withheld": 0.046900052999717445, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_n3_is_unaffected": 0.03568967299997894, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_the_bypass_can_be_switched_off": 0.04694179399939458, - "tests/test_solver_worker.py::TestN2ConfirmationGate::test_unfitted_pairing_is_withheld": 0.03974939799945787, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_a_free_fits_altitude_is_never_published": 0.04419682199977615, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_an_earlier_fit_epoch_is_propagated_to_the_solve_epoch": 0.03519707900022695, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_an_unconfirmed_pairing_never_reaches_the_swap": 0.029288249999808613, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_an_unusable_fit_keeps_the_solve_position": 0.03127286000017193, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_fit_position_is_published_and_the_solve_kept_alongside": 0.038949535000028845, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_the_pin_can_be_switched_off_without_losing_the_swap": 0.03479407100030585, - "tests/test_solver_worker.py::TestN2FitPositionPublish::test_the_swap_can_be_switched_off": 0.03365862999999081, - "tests/test_solver_worker.py::TestN2GateShipsDisabled::test_flag_is_off_by_default": 0.03277179500037164, - "tests/test_solver_worker.py::TestN2GateShipsDisabled::test_unfitted_n2_publishes_when_the_gate_is_off": 0.027136902999700396, - "tests/test_solver_worker.py::TestProcessSolverItem::test_exception_increments_failures": 0.035659397000017634, - "tests/test_solver_worker.py::TestProcessSolverItem::test_high_latency_triggers_alert": 0.030303543999707472, - "tests/test_solver_worker.py::TestProcessSolverItem::test_missing_enqueued_at_skips_latency": 0.036098710999340256, - "tests/test_solver_worker.py::TestProcessSolverItem::test_success_updates_state": 0.03137246500000401, - "tests/test_solver_worker.py::TestProcessSolverItem::test_unsuccessful_result_not_stored": 0.027968665000116744, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_2_node_candidate_never_refreshes": 0.029618855999615334, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_3_node_candidate_refreshes_an_aged_claim": 0.02863890199932939, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_candidate_carrying_an_unpublished_track_runs": 0.0339683040001546, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_fresh_claim_still_covers_a_3_node_candidate": 0.03375556899982257, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_narrow_publish_does_not_lower_the_bar": 0.030438663000040833, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_narrower_view_after_a_wider_one_is_skipped": 0.028552683000270918, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_rejected_candidate_does_not_block_an_identical_twin": 0.03277973999956885, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_second_copy_of_a_published_candidate_is_skipped": 0.03136907299995073, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_skip_is_recorded_with_the_claim_that_blocked_it": 0.03269065199992838, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_skipped_item_never_reaches_the_solver": 0.029397947999768803, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_subset_for_another_aircraft_survives_a_rejected_superset": 0.028764909000074113, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_tagged_candidate_is_counted_but_not_as_dark": 0.03183810399968934, - "tests/test_solver_worker.py::TestResolveSuppression::test_a_wider_view_of_the_same_tracks_runs": 0.032869219000076555, - "tests/test_solver_worker.py::TestResolveSuppression::test_an_admitted_candidate_reports_no_blockers": 0.032358763000047475, - "tests/test_solver_worker.py::TestResolveSuppression::test_an_input_without_track_provenance_always_runs": 0.029619837000154803, - "tests/test_solver_worker.py::TestResolveSuppression::test_claims_expire": 0.030060272999435256, - "tests/test_solver_worker.py::TestResolveSuppression::test_every_blocking_claim_must_be_aged_to_refresh": 0.03523239299966008, - "tests/test_solver_worker.py::TestResolveSuppression::test_only_the_published_width_is_claimed": 0.03096426399952179, - "tests/test_solver_worker.py::TestResolveSuppression::test_only_the_refreshed_admission_sets_the_flag": 0.026823910000075557, - "tests/test_solver_worker.py::TestResolveSuppression::test_skips_never_enter_the_solve_history": 0.02924055099947509, - "tests/test_solver_worker.py::TestResolveSuppression::test_the_check_alone_claims_nothing": 0.029391768000095908, - "tests/test_solver_worker.py::TestResolveSuppression::test_the_check_names_every_blocking_claim": 0.02847677899944756, - "tests/test_solver_worker.py::TestResolveSuppression::test_zero_interval_disables_suppression": 0.03390557099965008, - "tests/test_solver_worker.py::TestResolveSuppression::test_zero_refresh_restores_the_width_rule": 0.028245152999716083, - "tests/test_solver_worker.py::TestRmsDelayFilter::test_high_rms_delay_rejected": 0.02925350099985735, - "tests/test_solver_worker.py::TestRmsDelayFilter::test_high_rms_doppler_rejected": 0.03177373200060174, - "tests/test_solver_worker.py::TestRmsDelayFilter::test_low_rms_delay_accepted": 0.030720750999989832, - "tests/test_solver_worker.py::TestRmsDelayFilter::test_low_rms_doppler_accepted": 0.02913329899956807, - "tests/test_solver_worker.py::TestRmsDelayFilter::test_n3_rms_doppler_has_its_own_tighter_ceiling": 0.04147978000037256, - "tests/test_solver_worker.py::TestRmsDelayFilter::test_n4_keeps_the_physical_rms_doppler_ceiling": 0.03063331399971503, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_anchored_input_keeps_the_anchor_altitude": 0.053301976999591716, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_does_not_inherit_from_a_two_node_key": 0.054789903000255435, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_inherits_altitude_from_an_established_key": 0.04521783400014101, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_keeps_the_grid_altitude_with_no_key_in_range": 0.06144038699949306, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_uses_initial_guess_altitude_directly": 0.05708052200043312, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_n3_picks_minimum_rms_altitude": 0.03045747400028631, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_nearest_qualifying_key_wins": 0.05535425500011115, - "tests/test_solver_worker.py::TestSolveBestAltitude::test_stale_key_is_not_a_donor": 0.054219442999965395, - "tests/test_solver_worker.py::TestSolveBestAltitudeDirect::test_adsb_altitude_already_in_layers_not_duplicated": 0.0527971719998277, - "tests/test_solver_worker.py::TestSolveBestAltitudeDirect::test_adsb_altitude_outside_layers_is_included_in_sweep": 0.04485929100019348, - "tests/test_solver_worker.py::TestSolverProcessPool::test_broken_pool_falls_back_inline_and_recreates": 0.033137568999791256, - "tests/test_solver_worker.py::TestSolverProcessPool::test_hung_child_times_out_counts_and_falls_back_inline": 0.08345841699929224, - "tests/test_solver_worker.py::TestSolverProcessPool::test_pool_call_is_inline_without_a_pool": 0.027090215000043827, - "tests/test_solver_worker.py::TestSolverProcessPool::test_round_trip_through_a_real_spawn_pool": 1.021786925000015, - "tests/test_solver_worker.py::TestStaleItemSkip::test_fresh_item_is_solved": 0.034079708000263054, - "tests/test_solver_worker.py::TestStaleItemSkip::test_stale_item_is_skipped": 0.03077684899972155, - "tests/test_solver_worker.py::TestSweepAltitudes::test_all_altitudes_raise_reraises_last_exception": 0.04906733999996504, - "tests/test_solver_worker.py::TestSweepAltitudes::test_no_successful_result_and_no_exception_returns_none": 0.04631970699983867, - "tests/test_solver_worker.py::TestSweepAltitudes::test_one_fails_one_succeeds_returns_good_result": 0.051289055999859556, - "tests/test_solver_worker.py::TestTrackPairExclusivity::test_a_pairing_keeps_its_own_claim_when_re_solved": 0.030072478999500163, - "tests/test_solver_worker.py::TestTrackPairExclusivity::test_a_worse_incumbent_is_displaced": 0.035180291999949986, - "tests/test_solver_worker.py::TestTrackPairExclusivity::test_better_fit_wins_a_shared_track": 0.028472321000208467, - "tests/test_solver_worker.py::TestTrackPairExclusivity::test_claims_expire": 0.035988023999834695, - "tests/test_solver_worker.py::TestTrackPairExclusivity::test_detection_level_input_is_unaffected": 0.03687910999997257, - "tests/test_solver_worker.py::TestTrackPairExclusivity::test_disjoint_pairings_both_claim": 0.029753878999599692, - "tests/test_solver_worker.py::TestWorkerLoopResilience::test_poison_item_is_swallowed_counted_and_loop_continues": 0.087524558000041, - "tests/test_stage2_durability.py::TestArchiveBufferReclamation::test_a_successful_write_clears_the_failure_clock": 0.030357190000813716, - "tests/test_stage2_durability.py::TestArchiveBufferReclamation::test_connected_node_keeps_its_frames_however_long_the_outage": 0.028950107999662578, - "tests/test_stage2_durability.py::TestArchiveBufferReclamation::test_departed_node_buffer_is_abandoned_after_the_ttl": 0.026414384999952745, - "tests/test_stage2_durability.py::TestArchiveFlushExclusivity::test_concurrent_flushes_neither_duplicate_nor_lose_frames": 0.19950620999998137, - "tests/test_stage2_durability.py::TestArchiveFlushExclusivity::test_inflight_marker_is_cleared_on_write_failure": 0.032116911000230175, - "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_corrupt_payload_is_rejected": 0.026015893000021606, - "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_legacy_bare_payload_still_restores": 0.02717937500028711, - "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_payload_and_checksum_are_one_file": 0.02799178699933691, - "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_round_trip_restores": 0.0289329189995442, - "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_stale_side_file_is_ignored": 0.02652224200028286, - "tests/test_start_script_guards.py::test_a_box_with_no_destination_is_not_also_told_about_the_token[staging]": 0.07248922100006894, - "tests/test_start_script_guards.py::test_a_box_with_no_destination_is_not_also_told_about_the_token[test]": 0.0702516000005744, - "tests/test_start_script_guards.py::test_a_missing_digitalocean_token_never_refuses_a_boot[production]": 0.0695089719997668, - "tests/test_start_script_guards.py::test_a_missing_digitalocean_token_never_refuses_a_boot[staging]": 0.06933571699983077, - "tests/test_start_script_guards.py::test_production_boots_when_both_are_set": 0.06854711400046654, - "tests/test_start_script_guards.py::test_production_refuses_to_boot_without_an_alert_destination[ALERT_WEBHOOK_AUTH]": 0.06427127799997834, - "tests/test_start_script_guards.py::test_production_refuses_to_boot_without_an_alert_destination[ALERT_WEBHOOK_URL]": 0.06353572499983784, - "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_AUTH- ]": 0.06651983400024619, - "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_AUTH-]": 0.068112924000161, - "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_URL- ]": 0.08752404300003036, - "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_URL-]": 0.06723687600060657, - "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[staging- ]": 0.06356200100026399, - "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[staging-]": 0.0646113510001669, - "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[test- ]": 0.07098551299941391, - "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[test-]": 0.0645005109995509, - "tests/test_start_script_guards.py::test_the_other_environments_warn_rather_than_refuse[staging]": 0.07355463499970938, - "tests/test_start_script_guards.py::test_the_other_environments_warn_rather_than_refuse[test]": 0.06888623899976665, - "tests/test_state_counters.py::test_reset_zeroes_every_counter_and_keeps_its_type": 0.0269249480002145, - "tests/test_state_counters.py::test_roster_covers_every_counter_declared_in_the_source": 0.48866176199999245, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_env_change_since_snapshot_beats_saved_config": 0.024561783000535797, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_fractions_and_counts_survive_round_trip": 0.03337399599968194, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_pre_env_snapshot_discarded_when_env_overrides": 0.023752528000841266, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_pre_env_snapshot_restores_when_env_is_default": 0.024217672999839124, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_retired_keys_are_not_resurrected": 0.030283307999980025, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_scene_keys_survive_round_trip": 0.028567653999743925, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_unchanged_env_lets_runtime_put_win": 0.0257797379999829, - "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_updated_at_restored_verbatim_not_restamped": 0.027988582000034512, - "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_env_values_are_read": 0.02438566399996489, - "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_garbage_value_falls_back_without_raising": 0.023974885999905382, - "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_out_of_range_value_falls_back": 0.025414663000447035, - "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_over_budget_mix_is_refused_whole": 0.024603369000033126, - "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_unset_env_uses_fallbacks": 0.02762328599965258, - "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_full_round_trip_with_all_fields": 0.030675790999794117, - "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_restore_handles_corrupted_json": 0.02910235699982877, - "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_restore_handles_empty_snapshot": 0.026529011000548053, - "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_restore_returns_false_when_no_file": 0.02661246099978598, - "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_save_uses_atomic_write": 0.028382871000303567, - "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_accuracy_samples_survive_round_trip": 0.02508502699993187, - "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_anomaly_log_survives_round_trip": 0.027439976000096067, - "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_chain_entries_survive_round_trip": 0.026733298000181094, - "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_reputations_survive_round_trip": 0.02851481400011835, - "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_trust_scores_survive_round_trip": 0.02680852799994682, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_falls_back_to_r2_when_local_missing": 0.1663067829999818, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_prefers_local_over_r2": 0.1756544819991177, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_returns_false_when_no_snapshot_anywhere": 0.1472434729998895, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_returns_false_when_r2_disabled_and_no_local": 0.02489867900021636, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_returns_false_when_r2_has_corrupt_json": 0.1786414130006051, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_atomic_no_tmp_file_left_behind": 0.14893248199996378, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_local_content_matches_r2": 0.18599825199953557, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_local_written_even_if_r2_fails": 0.14196122700013802, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_local_written_when_r2_disabled": 0.028364687000248523, - "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_replicates_to_r2": 0.6614187240002138, - "tests/test_storage.py::TestArchiveStorage::test_a_legacy_spelled_node_archives_its_real_position": 0.036563623999427364, - "tests/test_storage.py::TestArchiveStorage::test_archive_returns_key": 0.03146210900013102, - "tests/test_storage.py::TestArchiveStorage::test_list_finds_archived": 0.03007364300037807, - "tests/test_storage.py::TestArchiveStorage::test_path_traversal_blocked": 0.055973813999571576, - "tests/test_storage.py::TestArchiveStorage::test_read_archived_file": 0.032449403000100574, - "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_node_filter": 0.037829634999980044, - "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_nonexistent_returns_empty": 0.024015156000132265, - "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_pagination_offset": 0.02731961599965871, - "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_returns_files_in_range": 0.03389305000018794, - "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_sort_desc": 0.02684192099968641, - "tests/test_storage_listing.py::TestListArchivedFiles::test_file_entry_has_required_fields": 0.026162235000356304, - "tests/test_storage_listing.py::TestListArchivedFiles::test_no_date_prefix_missing_base_returns_empty": 0.024816031999762345, - "tests/test_storage_listing.py::TestListArchivedFiles::test_no_date_prefix_returns_files": 0.025848442000551586, - "tests/test_storage_refresh.py::TestBuildStorageResult::test_archive_mb_matches_bytes": 0.025223085999641626, - "tests/test_storage_refresh.py::TestBuildStorageResult::test_days_until_full_is_zero_when_no_write_rate": 0.023372685000140336, - "tests/test_storage_refresh.py::TestBuildStorageResult::test_per_node_write_rate_computed_from_first_seen_ts": 0.023975743999471888, - "tests/test_storage_refresh.py::TestBuildStorageResult::test_returns_json_bytes_with_required_keys": 0.02613776999987749, - "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_du_exception_triggers_fallback": 0.023125207000248338, - "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_node_day_entry_sets_per_node_bytes": 0.027130982000016957, - "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_root_line_sets_total_bytes": 0.024815367000428523, - "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_total_bytes_zero_falls_back_to_sum": 0.026791290999881312, - "tests/test_storage_refresh.py::TestScanArchiveDirInodes::test_inode_entry_sets_per_node_files": 0.02525320500080852, - "tests/test_storage_refresh.py::TestScanArchiveDirInodes::test_inode_root_line_sets_total_files": 0.024990789000185032, - "tests/test_storage_refresh.py::TestScanArchiveDirNonExistent::test_returns_zeros_when_dir_missing": 0.023657085000195366, - "tests/test_streaming_routes.py::TestAircraftWSInitialSnapshot::test_initial_snapshot_sent_if_aircraft_present": 0.1459334759997546, - "tests/test_streaming_routes.py::TestAircraftWSInitialSnapshot::test_no_initial_send_when_empty": 0.1504026019997582, - "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_accepts_no_token": 0.144549447999907, - "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_accepts_valid_token": 0.15110393599979943, - "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_rejects_invalid_token": 0.15090780400078074, - "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_sends_initial_snapshot": 0.15048279200027537, - "tests/test_task_executor.py::test_cancellation_waits_for_running_work": 0.04369983000015054, - "tests/test_task_executor.py::test_each_context_has_a_fresh_executor_and_propagates_work_errors": 0.026764621999973315, - "tests/test_task_executor.py::test_failed_executor_creation_does_not_prevent_retry": 0.027317805999700795, - "tests/test_task_executor.py::test_shutdown_deadline_reports_work_that_cannot_be_interrupted": 0.04362878700021611, - "tests/test_task_helpers.py::TestBistaticDelayUs::test_aircraft_off_path_has_positive_delay": 0.02846269800011214, - "tests/test_task_helpers.py::TestBistaticDelayUs::test_aircraft_on_direct_path_has_zero_delay": 0.026546594999217632, - "tests/test_task_helpers.py::TestBistaticDelayUs::test_delay_increases_with_distance": 0.02473929899997529, - "tests/test_task_helpers.py::TestBistaticDelayUs::test_delay_unit_is_microseconds": 0.02494014000012612, - "tests/test_task_helpers.py::TestHaversineKm::test_equator_one_degree_lon": 0.025840429000254517, - "tests/test_task_helpers.py::TestHaversineKm::test_known_city_pair": 0.02431487100011509, - "tests/test_task_helpers.py::TestHaversineKm::test_nonnegative": 0.02628510299973641, - "tests/test_task_helpers.py::TestHaversineKm::test_one_degree_lat": 0.024208871999690018, - "tests/test_task_helpers.py::TestHaversineKm::test_same_point_returns_zero": 0.031238381999628473, - "tests/test_task_helpers.py::TestHaversineKm::test_symmetry": 0.023821048999707273, - "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_appended_to_state": 0.027329450999786786, - "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_cap_enforced": 0.024577809999755118, - "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_sends_ack": 0.024806766000438074, - "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_unregistered_node_not_verified": 0.02619917299989538, - "tests/test_tcp_custody_protocol.py::TestIQCommitment::test_iq_commitment_appended_to_state": 0.024639467999804765, - "tests/test_tcp_custody_protocol.py::TestIQCommitment::test_iq_commitment_cap_enforced": 0.02957371200000125, - "tests/test_tcp_custody_protocol.py::TestIQCommitment::test_iq_commitment_sends_ack": 0.025651171999925282, - "tests/test_tcp_custody_protocol.py::TestRegisterKey::test_register_key_sends_key_ack": 0.02647706500010827, - "tests/test_tcp_custody_protocol.py::TestRegisterKey::test_register_key_stores_identity": 0.02558089300055144, - "tests/test_tcp_custody_protocol.py::TestRegisterKey::test_register_key_with_custom_signing_mode": 0.025290103000315867, - "tests/test_tcp_handler.py::TestApplySyntheticAdsb::test_no_adsb_field_is_noop": 0.024296315000356117, - "tests/test_tcp_handler.py::TestApplySyntheticAdsb::test_skips_invalid_entries": 0.0272366050007804, - "tests/test_tcp_handler.py::TestApplySyntheticAdsb::test_stores_adsb_positions": 0.025464322000516404, - "tests/test_tcp_handler.py::TestConfigReplacementEvictsCachedPipeline::test_a_reconnect_config_rebuilds_the_pipeline_with_the_new_geometry": 0.047628780999730225, - "tests/test_tcp_handler.py::TestEnqueueDetection::test_enqueue_no_timestamp_skipped": 0.0247495470002832, - "tests/test_tcp_handler.py::TestEnqueueDetection::test_enqueue_valid_detection": 0.026092024999798014, - "tests/test_tcp_handler.py::TestHandshake::test_config_ack_sent": 0.02614562000053411, - "tests/test_tcp_handler.py::TestHandshake::test_disconnection_marks_status": 0.026371477999873605, - "tests/test_tcp_handler.py::TestHandshake::test_hello_config_registers_node": 0.032034674999522395, - "tests/test_tcp_handler.py::TestHandshake::test_malformed_json_skipped": 0.02652833499951157, - "tests/test_tcp_handler.py::TestHandshake::test_synthetic_node_flag": 0.027915471000142134, - "tests/test_tcp_handler.py::TestHandshake::test_the_stored_config_is_canonical": 0.03335465000009208, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_a_hardware_node_id": 0.026055318000089756, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_e2e_prefix": 0.029085163000672765, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_empty": 0.026205353000023024, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_non_synthetic": 0.026323170000068785, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_realnode_prefix": 0.023851927000123396, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_synthetic_prefix": 0.024942151000232116, - "tests/test_tcp_handler.py::TestIsSyntheticNode::test_test_prefix": 0.025727490999997826, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_config_drift_preserves_node_registration": 0.034183106999535084, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_config_drift_sends_config_request": 0.036203049000505416, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_for_unknown_node_is_silently_ignored": 0.030239117999826703, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_no_config_drift_sends_no_config_request": 0.028394630000548204, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_records_in_analytics": 0.029760150999663892, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_updates_last_heartbeat": 0.029844488999970054, - "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_updates_node_status": 0.026316012000279443, - "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_exceeds_upper_bound": 0.1143254770004205, - "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_list_type": 0.06956126400018547, - "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_negative": 0.08748639200030084, - "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_non_numeric_string": 0.046684257999913825, - "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_zero": 0.06540933799988125, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_exact_boundary_values": 0.05846112599965636, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_extra_fields_ignored": 0.05929740200008382, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_floats_with_many_decimals": 0.07561754400012433, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_large_valid_max_range": 0.07587587599982726, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_lat_lon_as_integers": 0.0485162360000686, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_rx_lat_out_of_range_ignores_valid_flat": 0.06568766000009418, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_rx_variants_take_precedence_over_flat": 0.08702297299942074, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_scientific_notation_lat_lon": 0.07893211700002212, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_very_small_positive_beam_width": 0.11654814500025168, - "tests/test_tcp_validate_config.py::TestEdgeCases::test_very_small_positive_max_range": 0.12766497799975696, - "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_explicit_null_rx_lat_rx_lon_is_accepted": 0.07566713500000333, - "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_flat_lat_lon_null_is_not_treated_as_positionless": 0.08477345300025263, - "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_other_fields_are_still_validated": 0.1536911909997798, - "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_rx_lat_null_alone_is_still_missing": 0.08902656899954309, - "tests/test_tcp_validate_config.py::TestMaxRangeKmValidation::test_max_range_negative": 0.05370142300034786, - "tests/test_tcp_validate_config.py::TestMaxRangeKmValidation::test_max_range_non_numeric_string": 0.07600514099976863, - "tests/test_tcp_validate_config.py::TestMaxRangeKmValidation::test_max_range_zero": 0.12866273100007675, - "tests/test_tcp_validate_config.py::TestMissingLatLon::test_empty_config": 0.05769392400043216, - "tests/test_tcp_validate_config.py::TestMissingLatLon::test_neither_lat_lon_nor_rx_variants_present": 0.059837230000084674, - "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_lat_present": 0.07538173299963091, - "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_lon_present": 0.05884633899995606, - "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_rx_lat_present": 0.05404917299983936, - "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_rx_lon_present": 0.05929452400005175, - "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_both_non_numeric": 0.05242975900046076, - "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_lat_non_numeric_string": 0.04278591399997822, - "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_lon_list_type": 0.0595703889998731, - "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_rx_lat_string_non_numeric": 0.08822255199993378, - "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_rx_lon_string_non_numeric": 0.07222667399946658, - "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_beam_width_none_explicitly": 0.047803982999539585, - "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_both_optional_fields_none": 0.06936722800037387, - "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_max_range_none_explicitly": 0.052408145999379485, - "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_no_beam_width_no_max_range": 0.05677950099970985, - "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_both_out_of_range": 0.05807553000022381, - "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lat_exceeds_lower_bound": 0.05813617300009355, - "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lat_exceeds_upper_bound": 0.09125788500023191, - "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lon_exceeds_lower_bound": 0.05085495799994533, - "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lon_exceeds_upper_bound": 0.05609887799982971, - "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_beam_width_as_numeric_string": 0.04412111100009497, - "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_lat_as_integer_string": 0.06661295300000347, - "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_lat_lon_as_numeric_strings": 0.04331745799981945, - "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_max_range_as_numeric_string": 0.0643589050000628, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_beam_width_at_boundary_360": 0.033142781000151444, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_beam_width_near_lower_boundary": 0.034218551000321895, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_beam_width_deg": 0.03087929899993469, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_both_optional_fields": 0.03027507799970408, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_lat_lon": 0.030000105999533844, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_max_range_km": 0.028641879999668163, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_rx_lat_rx_lon": 0.029238155000257393, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_lat_lon_boundaries": 0.08329636199960078, - "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_lat_lon_negative_boundaries": 0.0670433850000336, - "tests/test_towers_vhost_coverage.py::test_no_exact_match_location_outranks_the_proxied_paths": 0.0417532910000773, - "tests/test_towers_vhost_coverage.py::test_the_shared_snippet_proxies_every_deduplicated_path": 0.048094098000092345, - "tests/test_towers_vhost_coverage.py::test_the_smoke_test_defines_every_url_it_is_expected_to_probe": 0.04907290900018779, - "tests/test_towers_vhost_coverage.py::test_the_smoke_test_probes_every_routed_vhost": 0.054365129999496276, - "tests/test_towers_vhost_coverage.py::test_the_template_routes_the_roles_we_think_it_does": 0.09093205799990756, - "tests/test_track_archive.py::test_directory_failure_retains_batch": 0.11482047500021508, - "tests/test_track_archive.py::test_failed_flush_does_not_advance_success_health": 0.052809589999924356, - "tests/test_track_archive.py::test_repeated_failures_do_not_grow_pending_batch": 0.0775535799998579, - "tests/test_track_archive.py::test_write_failure_retries_old_batch_before_new_records": 0.06345232600006057, - "tests/test_track_claim.py::TestClusterCoverage::test_only_the_first_pair_of_a_cluster_is_claimed": 0.09138213600044764, - "tests/test_track_claim.py::TestCompetition::test_a_better_competitor_takes_the_track": 0.06700605400010318, - "tests/test_track_claim.py::TestCompetition::test_a_detection_level_input_is_not_arbitrated": 0.05957158899991555, - "tests/test_track_claim.py::TestCompetition::test_a_worse_competitor_is_refused": 0.05457031099967935, - "tests/test_track_claim.py::TestCompetition::test_an_unclaimed_pairing_wins": 0.05571242299993173, - "tests/test_track_claim.py::TestCompetition::test_disjoint_pairings_do_not_contend": 0.0638870090006094, - "tests/test_track_claim.py::TestExpiry::test_a_claim_expires": 0.12352954800007865, - "tests/test_track_claim.py::TestExpiry::test_expiry_sweeps_every_stale_entry": 0.08743310500040025, - "tests/test_track_claim.py::TestSelfContention::test_a_drifting_rescore_loses_to_its_own_high_water_mark": 0.11280433799993261, - "tests/test_track_claim.py::TestSelfContention::test_an_identical_rescore_keeps_its_claim": 0.07075748899933387, - "tests/test_track_claim.py::TestSelfContention::test_the_high_water_mark_is_not_reset_by_a_refusal": 0.08207636899987847, - "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[-33.9-151.2-8432.1--2001.7]": 0.12083359499956714, - "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[0.0-0.0-50000.0--50000.0]": 0.10281075500006409, - "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[35.0--82.0-0.0-0.0]": 0.09005232599974988, - "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[35.0--82.0-1234.5--876.3]": 0.1037512049997531, - "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[65.0-178.0--12000.0-30000.0]": 0.10616634800044267, - "tests/test_track_filter.py::TestHeldSameEpochPassthrough::test_a_burst_right_after_init_holds_the_init_position": 0.15139234700063753, - "tests/test_track_filter.py::TestHeldSameEpochPassthrough::test_same_epoch_second_solve_keeps_the_published_position": 0.145559783999488, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_a_correlated_but_psd_cov_is_still_accepted": 0.13102783500016812, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_indefinite_cov_falls_back_to_the_base_floor": 0.13741265599946928, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_indefinite_cov_keeps_the_filter_psd_and_learned_velocity_alive[1.4]": 0.3647701570002937, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_indefinite_cov_keeps_the_filter_psd_and_learned_velocity_alive[20.0]": 0.44127742599994235, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_negative_velocity_variance_degrades_to_zero_sigma": 0.1354211650000252, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_repeated_updates_at_a_tiny_r_stay_psd": 0.35422946999960914, - "tests/test_track_filter.py::TestIndefiniteCovariance::test_tiny_position_sigma_cannot_produce_a_tight_r": 0.14576327599979777, - "tests/test_track_filter.py::TestJosephCovariance::test_repeated_ill_conditioned_updates_stay_psd_and_symmetric": 0.15383821700015687, - "tests/test_track_filter.py::TestKFBasics::test_drop_key_and_reset_clear_state": 0.11378247699985877, - "tests/test_track_filter.py::TestKFBasics::test_duplicate_and_out_of_order_hold_the_filter_position": 0.11972852299959413, - "tests/test_track_filter.py::TestKFBasics::test_first_solve_is_raw_passthrough": 0.11529179499984821, - "tests/test_track_filter.py::TestKFBasics::test_innovation_gate_reanchors_on_large_jump": 0.08079937999991671, - "tests/test_track_filter.py::TestKFBasics::test_large_gap_reinits_then_next_solve_behaves_like_second_ever": 0.10648605599999428, - "tests/test_track_filter.py::TestKFBasics::test_smoothed_output_shape": 0.13812426499998764, - "tests/test_track_filter.py::TestKFReducesError::test_filtered_rmse_beats_raw_by_20_percent": 0.46616147399981855, - "tests/test_track_filter.py::TestKFWeighting::test_adsb_velocity_preferred_over_solved": 0.10576593399991907, - "tests/test_track_filter.py::TestKFWeighting::test_junk_solved_velocity_does_not_drag_position": 0.09594036199996481, - "tests/test_track_filter.py::TestKFWeighting::test_tight_covariance_trusts_measurement_more_than_loose": 0.10472338599947761, - "tests/test_track_filter.py::TestKfActionStamp::test_a_manoeuvre_rescue_is_stamped_as_such": 0.19745100599993748, - "tests/test_track_filter.py::TestKfActionStamp::test_a_reanchor_is_stamped_with_the_breaching_innovation": 0.13445270099964546, - "tests/test_track_filter.py::TestKfActionStamp::test_off_and_ewma_modes_do_not_stamp": 0.11917281800015189, - "tests/test_track_filter.py::TestKfActionStamp::test_stamped_on_every_path": 0.14494844999990164, - "tests/test_track_filter.py::TestLearnedVelocity::test_drop_key_and_reset_clear_learned_velocity": 0.12687326800005394, - "tests/test_track_filter.py::TestLearnedVelocity::test_learns_velocity_from_position_sequence_not_init_prior": 0.1796896559999368, - "tests/test_track_filter.py::TestLearnedVelocity::test_unknown_key_returns_none": 0.1320258690002447, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_a_breach_inside_the_manoeuvre_envelope_is_rescued_not_reanchored": 0.1403527939992273, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_a_ten_kilometre_jump_still_reanchors": 0.2093728319996444, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_manoeuvre_engagement_decays_after_the_turn": 0.13688444299987168, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_standard_rate_turn_does_not_reanchor[12.0]": 0.12594326099997488, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_standard_rate_turn_does_not_reanchor[4.6]": 0.11682889700023225, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_straight_flight_never_engages_the_manoeuvre_path": 0.2246297289998438, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_the_reported_velocity_sigma_grows_while_manoeuvring": 0.1602369630004432, - "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_the_same_turn_reanchors_with_the_adaptive_path_disabled": 0.15378732199997103, - "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_a_turn_engages_the_level": 0.11897555299992746, - "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_straight_flight_reads_zero": 0.1335437899997487, - "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_the_combined_accessor_agrees_with_both_halves": 0.12173665799991795, - "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_the_level_goes_with_the_entry": 0.12382064800021908, - "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_unknown_key_returns_none": 0.12487084299982598, - "tests/test_track_filter.py::TestModes::test_ewma_delegates_to_supplied_fn": 0.09105037500012259, - "tests/test_track_filter.py::TestModes::test_ewma_without_fn_is_raw_passthrough": 0.11401126200053113, - "tests/test_track_filter.py::TestModes::test_off_is_raw_passthrough": 0.12032467400013047, - "tests/test_track_filter.py::TestModes::test_unknown_value_falls_back_to_kf": 0.16561120599999413, - "tests/test_track_filter.py::TestN2WeakUpdate::test_adsb_identified_n2_keeps_the_default_sigma": 0.20861469400051647, - "tests/test_track_filter.py::TestN2WeakUpdate::test_default_n2_sigma": 0.1024724799995056, - "tests/test_track_filter.py::TestN2WeakUpdate::test_n2_moves_the_state_less_than_n4": 0.131509222999739, - "tests/test_track_filter.py::TestN2WeakUpdate::test_n2_sigma_is_tunable": 0.12973860599959153, - "tests/test_track_filter.py::TestN2WeakUpdate::test_n3_and_above_keep_the_default_sigma": 0.13333100900035788, - "tests/test_track_filter.py::TestN2WeakUpdate::test_simulator_object_id_is_judged_dark": 0.10761016700007531, - "tests/test_track_filter.py::TestOutcomeCounters::test_counters_track_each_outcome": 0.27392721900014294, - "tests/test_track_filter.py::TestOutcomeCounters::test_every_call_increments_exactly_one_counter": 0.17305286200007686, - "tests/test_track_filter.py::TestOutcomeCounters::test_off_and_ewma_modes_count_nothing": 0.1145483229997808, - "tests/test_track_filter.py::TestOutcomeCounters::test_reset_clears_the_counters": 0.1411750260003828, - "tests/test_track_filter.py::TestPoisonedCovariance::test_negative_covariance_diagonal_never_raises": 0.1516444760000013, - "tests/test_track_filter.py::TestRInflation::test_cov_derived_r_is_inflated_and_added_to_base_then_clamped": 0.2013659400004144, - "tests/test_track_filter.py::TestRInflation::test_fallback_r_is_exactly_the_base_floor": 0.10158135899973786, - "tests/test_track_filter.py::TestStoneSoupOracle::test_matches_stonesoup_kalman_at_every_step": 0.1019240880000325, - "tests/test_track_gates.py::TestDetectionIdentityGate::test_mismatched_detection_tag_records_neither": 0.1913449729995591, - "tests/test_track_gates.py::TestDetectionIdentityGate::test_tag_comparison_is_case_insensitive": 0.15773557500051538, - "tests/test_track_gates.py::TestDetectionIdentityGate::test_untagged_detection_records_neither": 0.35939793900024597, - "tests/test_track_gates.py::TestFixDetectionSkewGate::test_a_matching_fix_and_detection_age_still_records": 0.29130373499992857, - "tests/test_track_gates.py::TestFixDetectionSkewGate::test_a_track_coasting_past_its_detection_with_a_live_fix_records_nothing": 0.1884526270000606, - "tests/test_track_gates.py::TestFixDetectionSkewGate::test_emit_path_forwards_fix_ts_and_detection_ts": 0.293287648000387, - "tests/test_track_gates.py::TestFixDetectionSkewGate::test_record_verified_detection_is_not_called_when_the_recorder_returns_zero": 0.22976876800021273, - "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_fewer_than_three_detections_records_neither": 0.23608371899945269, - "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_fresh_stamp_and_n_detections_records_calibration_and_verified_detection": 0.1924558750001779, - "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_missing_last_detection_wall_ts_treated_as_never_fresh": 0.44026239400045597, - "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_stamp_aged_past_the_budget_records_neither_but_still_emits_and_still_scores_accuracy": 0.13593524299949422, - "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_stamp_exactly_at_the_budget_still_counts": 0.28714246900017315, - "tests/test_track_gates.py::TestGateStoreReclamation::test_prune_does_not_touch_entries_inside_the_gate_window": 0.1724083539993444, - "tests/test_track_gates.py::TestGateStoreReclamation::test_stale_entries_are_pruned_and_fresh_ones_kept": 0.23150841599999694, - "tests/test_track_gates.py::TestKnownLaneSilencesThisPath::test_a_fresh_tagged_detection_records_nothing[binding]": 0.13007286300035048, - "tests/test_track_gates.py::TestKnownLaneSilencesThisPath::test_a_fresh_tagged_detection_records_nothing[shadow]": 0.1241868379997868, - "tests/test_track_gates.py::TestKnownLaneSilencesThisPath::test_mode_off_is_unchanged": 0.2714662020002834, - "tests/test_track_gates.py::TestUnassociatedEntryHonesty::test_adsb_backed_track_keeps_altitude_and_identity": 0.40769106200013994, - "tests/test_track_gates.py::TestUnassociatedEntryHonesty::test_unassociated_track_publishes_no_altitude_or_callsign": 0.1432191049998437, - "tests/test_track_writer.py::test_batches_written_in_same_second_are_both_retained": 0.20007060399984766, - "tests/test_track_writer.py::test_contributing_nodes_serialized_as_csv": 0.2050030450000122, - "tests/test_track_writer.py::test_empty_records_returns_none": 0.11470432700025412, - "tests/test_track_writer.py::test_failed_write_never_publishes_partial_parquet": 0.13667272699967725, - "tests/test_track_writer.py::test_flush_track_archive_buffer_drains_state": 0.148670463999224, - "tests/test_track_writer.py::test_flush_track_archive_buffer_no_op_when_empty": 0.1253343670000504, - "tests/test_track_writer.py::test_nullable_fields_round_trip": 0.2001803369994377, - "tests/test_track_writer.py::test_schema_columns_present": 0.1490923840005962, - "tests/test_track_writer.py::test_solver_hook_appends_to_track_archive_buffer": 0.1521435160002511, - "tests/test_track_writer.py::test_writes_hive_partitioned_path": 0.13720025299971894, - "tests/test_tracker_env_overrides.py::TestApplyTrackerEnvOverrides::test_missing_process_noise_section_is_created": 0.1759714290001284, - "tests/test_tracker_env_overrides.py::TestApplyTrackerEnvOverrides::test_no_env_leaves_config_untouched": 0.13335343199923955, - "tests/test_tracker_env_overrides.py::TestApplyTrackerEnvOverrides::test_null_process_noise_section_is_replaced": 0.14119747299992014, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_delay_override_reaches_the_filter": 0.16526210599977276, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_doppler_override_reaches_the_filter": 0.1485672529997828, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[ ]": 0.1694457489998058, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[-3]": 0.16315235699994446, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[0]": 0.17208282399997188, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[]": 0.23532182100007049, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[abc]": 0.20489887800067663, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[inf]": 0.278558270999838, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[nan]": 0.14213590300005308, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_logged_once_per_process": 0.24924234500031162, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_no_env_keeps_packaged_defaults": 0.21526926600063234, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_no_override_without_a_packaged_config_leaves_singleton": 0.1405821600001218, - "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_override_applies_without_a_packaged_config": 0.16016862800051967, - "tests/test_unblock_nodes.py::test_a_corrupt_snapshot_is_refused_unless_forced": 0.10266042900002503, - "tests/test_unblock_nodes.py::test_a_legacy_schema_1_snapshot_is_upgraded": 0.18801522100011425, - "tests/test_unblock_nodes.py::test_a_missing_snapshot_exits_non_zero": 0.10925821700038796, - "tests/test_unblock_nodes.py::test_a_named_node_is_reset_and_the_rest_are_untouched": 0.13471845599997323, - "tests/test_unblock_nodes.py::test_all_blocked_resets_every_block_and_nothing_else": 0.11962133299948619, - "tests/test_unblock_nodes.py::test_an_unknown_node_exits_non_zero": 0.09449353699938001, - "tests/test_unblock_nodes.py::test_dry_run_writes_nothing": 0.19540006799979892, - "tests/test_unblock_nodes.py::test_selecting_nothing_is_an_error": 0.17886213300062082, - "tests/test_unblock_nodes.py::test_the_result_still_restores_as_a_NodeReputation": 0.11194892599951345, - "tests/test_unpositioned_registration.py::TestUnpositionedNodesStayOutOfTheGraph::test_a_fleet_registered_over_http_builds_no_overlap_zones": 0.30538353900010407, - "tests/test_unpositioned_registration.py::TestUnpositionedNodesStayOutOfTheGraph::test_a_positioned_fleet_still_pairs": 0.22026500099991608, - "tests/test_unpositioned_registration.py::TestUnpositionedNodesStayOutOfTheGraph::test_the_nodes_are_still_registered": 0.14088001200025246, - "tests/test_users_backup.py::TestUsersBackup::test_idempotent_within_same_day": 0.9038203220002288, - "tests/test_users_backup.py::TestUsersBackup::test_retention_drops_old_backups": 0.8005920130003688, - "tests/test_users_backup.py::TestUsersBackup::test_skipped_when_db_missing": 1.7381584279996787, - "tests/test_users_backup.py::TestUsersBackup::test_skipped_when_r2_disabled": 0.12075264999975843, - "tests/test_users_backup.py::TestUsersBackup::test_uploaded_blob_is_a_valid_sqlite_db": 0.7792776420005794, - "tests/test_users_backup.py::TestUsersBackup::test_uploads_today_backup": 0.775524151999889, - "tests/test_velocity_direction.py::TestDerivedVelocityError::test_heading_err_none_when_truth_near_hover": 0.08363563900002191, - "tests/test_velocity_direction.py::TestDerivedVelocityError::test_heading_err_wraps_across_0_360": 0.09425660800025071, - "tests/test_velocity_direction.py::TestDerivedVelocityError::test_vel_err_ms_on_perpendicular_case": 0.10130602899971564, - "tests/test_velocity_direction.py::TestNearestGtVelocity::test_no_gt_returns_all_four_keys_none": 0.10409427199965648, - "tests/test_velocity_direction.py::TestNearestGtVelocity::test_single_point_trail_falls_back_to_meta": 0.08708247200002006, - "tests/test_velocity_direction.py::TestNearestGtVelocity::test_speed_and_heading_derived_from_straight_trail": 0.11184015400067437, - "tests/test_velocity_direction.py::TestVelocityAccuracyDirection::test_heading_and_vector_stats_on_a_perpendicular_track": 0.10038393800050471, - "tests/test_velocity_direction.py::TestVelocityAdoptionN2SharesPoolCall::test_gate_and_adoption_share_one_pool_call": 0.09813860600024782, - "tests/test_velocity_direction.py::TestVelocityAdoptionN3::test_good_fit_is_adopted_and_recorded": 0.11832540200020958, - "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_chi2_above_adoption_threshold_keeps_raw_velocity": 0.09996248799961904, - "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_fit_raises_keeps_raw_velocity": 0.12567756099997496, - "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_fit_returns_none_keeps_raw_velocity": 0.10995926999976291, - "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_too_few_epochs_keeps_raw_velocity": 0.09994239199977528, - "tests/test_wgs84_equivalence.py::TestEcefLlaAgreement::test_lla2ecef_agrees_across_libraries": 0.09950815599995622, - "tests/test_wgs84_equivalence.py::TestEcefLlaAgreement::test_round_trip_agrees_across_libraries": 0.18008343100018465, - "tests/test_wgs84_equivalence.py::TestSpeedOfLightSingleSource::test_analytics_agrees": 0.11070013700054915, - "tests/test_wgs84_equivalence.py::TestSpeedOfLightSingleSource::test_geolocator_constants_are_consistent": 0.1152681839998877, - "tests/test_workflow_lint_configured.py::test_actionlint_is_configured": 0.12799021099999663, - "tests/test_workflow_lint_configured.py::test_the_actionlint_repo_is_pinned": 0.13965995399985331, - "tests/test_workflow_lint_configured.py::test_there_are_workflows_for_it_to_check": 0.193388839999443 + "tests/test_access_identity.py::test_a_cold_start_outage_is_not_logged_per_request": 0.04854475999999863, + "tests/test_access_identity.py::test_a_failed_refresh_is_not_retried_by_every_request": 0.02897000599999444, + "tests/test_access_identity.py::test_a_kid_that_never_appears_is_refused_and_does_not_loop": 0.014030961999992542, + "tests/test_access_identity.py::test_a_malformed_key_set_refuses_rather_than_raising": 0.014560357000000579, + "tests/test_access_identity.py::test_a_partial_config_is_treated_as_absent": 0.01225349399999942, + "tests/test_access_identity.py::test_a_rotation_inside_the_floor_waits_for_it": 0.016373561999998287, + "tests/test_access_identity.py::test_a_stale_set_still_verifies_while_refreshing_fails": 0.014187184999997271, + "tests/test_access_identity.py::test_a_success_is_not_logged_as_a_refusal": 0.012412749999995754, + "tests/test_access_identity.py::test_a_token_for_another_application_is_refused": 0.013262742000009098, + "tests/test_access_identity.py::test_a_token_from_another_team_is_refused": 0.0131419179999952, + "tests/test_access_identity.py::test_a_token_naming_nobody_is_refused": 0.012944580999999289, + "tests/test_access_identity.py::test_a_token_signed_by_someone_else_is_refused": 0.028566953999998645, + "tests/test_access_identity.py::test_a_token_with_no_audience_claim_is_refused": 0.014872820000000786, + "tests/test_access_identity.py::test_a_valid_assertion_yields_the_email": 0.09423967600000083, + "tests/test_access_identity.py::test_a_wrong_audience_names_both": 0.014649463999994339, + "tests/test_access_identity.py::test_an_expired_assertion_is_refused": 0.012897973000001173, + "tests/test_access_identity.py::test_an_outage_is_never_reported_as_an_unknown_key_id[0]": 0.013039564999999698, + "tests/test_access_identity.py::test_an_outage_is_never_reported_as_an_unknown_key_id[25260]": 0.013547520999999563, + "tests/test_access_identity.py::test_an_unknown_key_id_triggers_one_refetch": 0.01568594500000131, + "tests/test_access_identity.py::test_an_unsigned_token_is_refused": 0.012060204000000851, + "tests/test_access_identity.py::test_cloudflare_being_unreachable_refuses_rather_than_admits": 0.014460670999994818, + "tests/test_access_identity.py::test_every_refusal_says_why": 0.018000212000004012, + "tests/test_access_identity.py::test_forged_kids_do_not_fetch_once_per_request": 0.02989518900000121, + "tests/test_access_identity.py::test_large_drift_is_not_tolerated": 0.014405068999998605, + "tests/test_access_identity.py::test_missing_config_names_the_variables": 0.014258016000006535, + "tests/test_access_identity.py::test_no_config_means_no_identity": 0.01153756000000783, + "tests/test_access_identity.py::test_no_token_at_all_is_not_logged": 0.0108018009999995, + "tests/test_access_identity.py::test_one_unknown_kid_costs_one_fetch_not_two": 0.013910448999993719, + "tests/test_access_identity.py::test_past_the_grace_the_stale_set_is_refused": 0.014268584999989287, + "tests/test_access_identity.py::test_rubbish_is_refused": 0.011411214000005998, + "tests/test_access_identity.py::test_serving_a_stale_set_is_not_silent": 0.015986232999992467, + "tests/test_access_identity.py::test_small_clock_drift_is_tolerated": 0.014388949000007756, + "tests/test_access_identity.py::test_the_email_is_normalised": 0.012849602999992271, + "tests/test_access_identity.py::test_the_key_set_is_cached": 0.01580089800000195, + "tests/test_access_identity.py::test_the_stale_warning_is_throttled": 0.055489369000007116, + "tests/test_access_identity.py::test_the_token_is_never_logged": 0.01641610300000451, + "tests/test_access_identity.py::test_unreachable_cloudflare_is_distinguishable_from_a_bad_token": 0.015200851000003013, + "tests/test_access_seam.py::test_a_deactivated_administrator_is_refused": 0.010864427000001342, + "tests/test_access_seam.py::test_a_signed_in_administrator_is_admitted": 0.010954664999999864, + "tests/test_access_seam.py::test_a_signed_in_member_is_not_an_administrator": 0.011143998999997962, + "tests/test_access_seam.py::test_a_verified_assertion_also_satisfies_get_current_user": 0.010421070999996118, + "tests/test_access_seam.py::test_a_verified_assertion_beats_the_bypass": 0.01048112399999468, + "tests/test_access_seam.py::test_a_verified_assertion_makes_require_admin_an_admin": 0.011071621999995784, + "tests/test_access_seam.py::test_an_assertion_that_does_not_verify_is_refused": 0.010959253000002889, + "tests/test_access_seam.py::test_an_unconfigured_verifier_is_never_consulted": 0.01034972799999423, + "tests/test_access_seam.py::test_no_assertion_and_no_bypass_is_refused": 0.010575120000005711, + "tests/test_access_seam.py::test_the_assertion_is_what_gets_verified": 0.010764739999999051, + "tests/test_access_seam.py::test_the_bypass_still_works_where_it_is_opted_into": 0.010515478000002076, + "tests/test_access_seam.py::test_the_identity_carries_a_stable_id_derived_from_the_email": 0.010718286000013677, + "tests/test_access_seam.py::test_the_plain_email_header_is_not_trusted": 0.010513492999997709, + "tests/test_access_seam.py::test_the_provider_says_where_the_identity_came_from": 0.010493557000003761, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_all_three_are_behind_require_admin[delete-kwargs2]": 0.12468225599999272, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_all_three_are_behind_require_admin[get-kwargs0]": 0.12381441300000517, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_all_three_are_behind_require_admin[put-kwargs1]": 0.12341509400000916, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_delete_is_logged_too": 0.12388193000000314, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_delete_returns_the_node_to_its_registration_choice": 0.12395436700000317, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_get_answers_for_a_node_nothing_has_ever_heard_of": 0.12331885200000414, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_get_reports_the_registration_choice_as_a_raw_piece": 0.12511045099999762, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_put_is_logged_like_the_owner_assignment_route": 0.12385806300000013, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_put_sets_the_override_and_records_who_set_it": 0.12439111700000893, + "tests/test_admin_routes.py::TestAdminNodeLocationPrivacy::test_put_takes_effect_without_waiting_for_the_ttl": 0.12636691699999858, + "tests/test_admin_routes.py::TestConfig::test_config_history_returns_list": 0.12433960200000627, + "tests/test_admin_routes.py::TestConfig::test_get_node_config_live_fallback": 0.12442511900000142, + "tests/test_admin_routes.py::TestConfig::test_get_tower_config_returns_the_live_view": 0.12272655099999241, + "tests/test_admin_routes.py::TestEvents::test_events_respect_limit": 0.12459079499999604, + "tests/test_admin_routes.py::TestEvents::test_list_events_returns_list": 0.12994193500001217, + "tests/test_admin_routes.py::TestEvents::test_log_event_appears_in_list": 0.125324470999999, + "tests/test_admin_routes.py::TestLeaderboard::test_a_caller_with_a_session_still_gets_them": 0.12451039699999455, + "tests/test_admin_routes.py::TestLeaderboard::test_a_caller_with_no_session_is_not_told_what_each_node_missed": 0.12254845900000078, + "tests/test_admin_routes.py::TestLeaderboard::test_a_stray_field_is_refused_rather_than_dropped": 0.013197208999997656, + "tests/test_admin_routes.py::TestLeaderboard::test_cancelling_one_caller_does_not_cancel_the_others_sharing_it": 0.11752312399999454, + "tests/test_admin_routes.py::TestLeaderboard::test_concurrent_cold_start_requests_share_one_summaries_call": 0.017997098000002154, + "tests/test_admin_routes.py::TestLeaderboard::test_each_caller_gets_exactly_its_row_keys[cold-start]": 0.1250105610000034, + "tests/test_admin_routes.py::TestLeaderboard::test_each_caller_gets_exactly_its_row_keys[snapshot]": 0.12393345600000316, + "tests/test_admin_routes.py::TestLeaderboard::test_its_neighbours_under_the_same_prefix_still_want_a_session": 0.1255825749999957, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_answers_a_caller_with_no_session": 0.12184355200000141, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_does_not_publish_a_name_that_is_a_node_id": 0.12490308000000283, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_empty": 0.12368399900000071, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_leaves_out_a_node_with_no_registry_row": 0.12363439799999298, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_names_nodes_the_same_way_with_a_cold_snapshot": 0.12382295899999463, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_reports_the_ref_and_still_reads_id_keyed_state": 0.12401499499999602, + "tests/test_admin_routes.py::TestLeaderboard::test_leaderboard_with_node": 0.12350653000000023, + "tests/test_admin_routes.py::TestLeaderboard::test_the_cold_start_fallback_withholds_a_private_node[False-1]": 0.1220173950000003, + "tests/test_admin_routes.py::TestLeaderboard::test_the_cold_start_fallback_withholds_a_private_node[True-0]": 0.12188659800000323, + "tests/test_admin_routes.py::TestLeaderboard::test_the_published_row_declares_exactly_the_public_fields": 0.013137790000001814, + "tests/test_admin_routes.py::TestMetrics::test_metrics_returns_expected_fields": 0.12363451899999944, + "tests/test_admin_routes.py::TestMetrics::test_mn_pos_history_counts_the_smoothers_keys": 0.12356977000000313, + "tests/test_admin_routes.py::TestNodeContacts::test_a_node_that_reported_nothing_is_absent": 0.023355829999999855, + "tests/test_admin_routes.py::TestNodeContacts::test_both_routes_are_gated_on_require_admin": 0.012088884999997163, + "tests/test_admin_routes.py::TestNodeContacts::test_deleting_removes_the_row": 0.03535607799999951, + "tests/test_admin_routes.py::TestNodeContacts::test_deleting_what_is_not_there_is_not_an_error": 0.02364098399999648, + "tests/test_admin_routes.py::TestNodeContacts::test_it_lists_what_the_store_holds": 1.595793827999998, + "tests/test_admin_routes.py::TestNodeHealth::test_check_detects_offline": 0.013712409999996567, + "tests/test_admin_routes.py::TestNodeReconnectEvent::test_fresh_connect_has_no_reconnect_flag": 0.010631081999996184, + "tests/test_admin_routes.py::TestNodeReconnectEvent::test_reconnect_flag_in_meta": 0.011410081000001071, + "tests/test_admin_routes.py::TestNodeRefs::test_it_covers_a_connected_node_the_registry_cannot_answer_for": 0.12405375800000229, + "tests/test_admin_routes.py::TestNodeRefs::test_it_is_gated_on_require_admin": 0.013445005000001231, + "tests/test_admin_routes.py::TestNodeRefs::test_it_names_the_node_behind_a_ref": 0.1245408139999924, + "tests/test_admin_routes.py::TestQueueSaturationAlert::test_drop_event_logged_when_throttle_expires": 0.19261373299999462, + "tests/test_admin_routes.py::TestStaleTasks::test_no_stale_when_recent": 0.012929561999996508, + "tests/test_admin_routes.py::TestStaleTasks::test_stale_when_old": 0.012852028000004623, + "tests/test_admin_routes.py::TestStorage::test_storage_returns_json": 0.12357344099999779, + "tests/test_admin_routes.py::TestUsers::test_list_users": 0.12387070899999486, + "tests/test_admin_routes.py::TestUsers::test_no_route_changes_a_role": 0.011580340000001854, + "tests/test_adsb_capture_timestamps.py::TestAdsbLolCaptureTime::test_poll_time_stands_in_when_the_row_carries_no_capture_time": 0.010867761000000087, + "tests/test_adsb_capture_timestamps.py::TestAdsbLolCaptureTime::test_the_client_resolves_seen_pos_at_fetch_time": 0.012218475000004503, + "tests/test_adsb_capture_timestamps.py::TestAdsbLolCaptureTime::test_the_rows_capture_time_is_carried_through": 0.011685725000006641, + "tests/test_adsb_capture_timestamps.py::TestBothIngestPathsUseIt::test_frame_processor_path": 0.01688283199998608, + "tests/test_adsb_capture_timestamps.py::TestBothIngestPathsUseIt::test_tcp_fast_path": 0.010586883999991414, + "tests/test_adsb_capture_timestamps.py::TestCalibrationCanNowRefuseAnOldFix::test_a_live_fix_within_the_budget_is_still_recorded": 0.01321289899999556, + "tests/test_adsb_capture_timestamps.py::TestCalibrationCanNowRefuseAnOldFix::test_an_external_fix_of_a_typical_age_is_refused": 0.013259767999997507, + "tests/test_adsb_capture_timestamps.py::TestExternalCacheFreshness::test_a_stalled_feed_stops_being_served": 0.013104626999997038, + "tests/test_adsb_capture_timestamps.py::TestExternalCacheFreshness::test_an_unstamped_entry_is_not_assumed_fresh": 0.013297788999999227, + "tests/test_adsb_capture_timestamps.py::TestExternalCacheFreshness::test_reports_the_entrys_own_capture_time": 0.013339766999997948, + "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_a_frame_with_no_timestamp_falls_back_to_receipt": 0.013261000999996497, + "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_a_node_clock_ahead_of_ours_is_not_trusted": 0.012782882000003326, + "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_a_node_clock_far_behind_ours_is_not_trusted": 0.012889704999999196, + "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_backlog_within_the_bound_is_reported_honestly": 0.01282932999999531, + "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_the_fallback_is_counted_rather_than_silent": 0.012943955000004337, + "tests/test_adsb_capture_timestamps.py::TestIngestCaptureStamp::test_the_frames_own_capture_time_is_used": 0.013283833999999217, + "tests/test_adsb_capture_timestamps.py::TestOpenSkyCaptureTime::test_poll_time_stands_in_when_the_row_carries_no_position_time": 0.011565760000010528, + "tests/test_adsb_capture_timestamps.py::TestOpenSkyCaptureTime::test_position_time_is_the_capture_stamp": 0.013168116999992208, + "tests/test_adsb_capture_timestamps.py::TestStalledFeedExpiry::test_a_fetch_that_reaches_no_source_still_ages_the_cache": 0.01361292899999711, + "tests/test_adsb_capture_timestamps.py::TestStalledFeedExpiry::test_entries_past_the_budget_are_dropped": 0.011396804000000316, + "tests/test_adsb_capture_timestamps.py::TestStalledFeedExpiry::test_unstamped_entries_are_dropped": 0.013113913000005084, + "tests/test_adsb_cross_validation_gates.py::TestNullIsland::test_a_report_carrying_no_position_penalises_nobody": 0.010838316000004511, + "tests/test_adsb_cross_validation_gates.py::TestOneVotePerSample::test_a_new_divergent_sample_still_counts": 0.01341927600000048, + "tests/test_adsb_cross_validation_gates.py::TestOneVotePerSample::test_a_sample_ages_out_before_the_next_cycle_could_rejudge_it": 0.01324085200000269, + "tests/test_adsb_cross_validation_gates.py::TestOneVotePerSample::test_the_window_is_shorter_than_the_cycle": 0.013134071999999719, + "tests/test_adsb_cross_validation_gates.py::TestTemporalGates::test_a_report_older_than_the_budget_penalises_nobody": 0.010974049999994406, + "tests/test_adsb_cross_validation_gates.py::TestTemporalGates::test_truth_older_than_the_budget_penalises_nobody": 0.010810433999999702, + "tests/test_adsb_cross_validation_gates.py::TestTemporalGates::test_unstamped_truth_penalises_nobody": 0.010885735000002228, + "tests/test_adsb_cross_validation_gates.py::TestTheCheckStillWorks::test_a_co_timed_agreeing_report_is_left_alone": 0.010853543999999715, + "tests/test_adsb_cross_validation_gates.py::TestTheCheckStillWorks::test_a_co_timed_divergent_report_is_penalised": 0.01113867999999485, + "tests/test_adsb_fallback_candidates.py::TestClaimingAgainstTheFallback::test_a_fresh_fallback_fix_calibrates_and_a_stale_one_only_claims[15.0-False]": 0.014631259000012165, + "tests/test_adsb_fallback_candidates.py::TestClaimingAgainstTheFallback::test_a_fresh_fallback_fix_calibrates_and_a_stale_one_only_claims[7.0-True]": 0.014505042000003243, + "tests/test_adsb_fallback_candidates.py::TestClaimingAgainstTheFallback::test_a_nodes_own_v1_tag_is_claimed_in_preference_to_the_fallback": 0.01349616900000683, + "tests/test_adsb_fallback_candidates.py::TestClaimingAgainstTheFallback::test_a_real_node_with_no_adsb_of_its_own_claims_against_it": 0.015211066000006213, + "tests/test_adsb_fallback_candidates.py::TestClaimingAgainstTheFallback::test_a_synthetic_node_never_does": 0.013199485000008337, + "tests/test_adsb_fallback_candidates.py::TestClaimingAgainstTheFallback::test_another_node_claims_against_that_tag_rather_than_the_fallback": 0.013432240000000206, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_a_fallback_fix_newer_by_more_than_the_window_replaces_a_stale_node_fix": 0.014992647999989117, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_a_fallback_record_is_a_candidate": 0.013212459000001786, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_a_node_is_offered_its_own_regions_answer_alone": 0.01303955400000234, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_a_nodes_own_fix_outranks_a_fallback_fix_inside_the_window": 0.013210716000003231, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_an_unplaceable_node_is_offered_no_polled_candidate": 0.012876146999992955, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_an_unusable_node_record_leaves_the_fallback_standing": 0.012996594999997058, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_precedence_is_judged_on_our_clock_not_the_nodes": 0.013344375000009734, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_the_absent_position_sentinel_is_no_place": 0.012915321000001256, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_track_enrichment_never_sees_a_fallback_fix": 0.01272635700000535, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_without_a_node_every_region_is_offered_the_newest_fix_winning": 0.01295414399999828, + "tests/test_adsb_fallback_candidates.py::TestTheSeedingSnapshot::test_writing_into_the_snapshot_touches_neither_store": 0.012668557999994334, + "tests/test_adsb_fallback_poller.py::test_a_429_cuts_the_cycle_short_and_says_which_regions_went_unasked": 0.013960661999995239, + "tests/test_adsb_fallback_poller.py::test_a_cycle_stores_real_world_candidates_stamped_from_their_capture": 0.011265137999998842, + "tests/test_adsb_fallback_poller.py::test_a_cycle_that_overruns_its_interval_stops_and_logs": 0.013726773000001913, + "tests/test_adsb_fallback_poller.py::test_a_cycle_where_nothing_answered_is_not_a_success": 0.012250170999998033, + "tests/test_adsb_fallback_poller.py::test_a_cycle_whose_last_answer_lands_past_the_interval_says_so": 0.013691967000006855, + "tests/test_adsb_fallback_poller.py::test_a_failed_region_costs_only_itself": 0.01388116300000064, + "tests/test_adsb_fallback_poller.py::test_a_long_retry_after_is_waited_out_only_up_to_a_ceiling": 0.013748723999995605, + "tests/test_adsb_fallback_poller.py::test_a_record_not_refreshed_this_cycle_stays_until_it_is_too_old_to_claim": 0.01385446300000126, + "tests/test_adsb_fallback_poller.py::test_a_switched_off_poller_returns_at_once": 0.013650560999998618, + "tests/test_adsb_fallback_poller.py::test_an_answer_too_old_to_claim_is_not_stored": 0.013482404999997755, + "tests/test_adsb_fallback_poller.py::test_each_region_keeps_its_own_answer_where_regions_overlap": 0.01119858199999868, + "tests/test_adsb_fallback_poller.py::test_regions_cover_connected_real_positioned_nodes_only": 0.012871458999995866, + "tests/test_adsb_fallback_poller.py::test_requests_are_spaced_to_the_services_sustained_rate": 0.013429805999990663, + "tests/test_adsb_fallback_poller.py::test_the_dashboard_reports_the_fallback_store_and_its_troubles": 0.12426516100000384, + "tests/test_adsb_fallback_poller.py::test_the_next_cycle_starts_where_a_cut_short_one_stopped": 0.013784270000002152, + "tests/test_adsb_fallback_poller.py::test_the_poller_runs_only_when_switched_on_with_exactly_1": 0.013365405999998359, + "tests/test_adsb_fallback_poller.py::test_the_running_task_waits_out_the_interval_plus_any_retry_after": 0.01421317600000549, + "tests/test_adsb_fallback_poller.py::test_the_store_never_writes_into_the_node_fed_store": 0.012645717000005163, + "tests/test_adsb_fallback_poller.py::test_with_no_real_node_placed_the_store_empties_and_the_task_still_reports_alive": 0.013871134000005725, + "tests/test_adsb_freshness_regressions.py::TestCalibrationSkewStaysOnOneClock::test_a_node_whose_clock_is_off_still_calibrates": 0.010637280000004523, + "tests/test_adsb_freshness_regressions.py::TestCalibrationSkewStaysOnOneClock::test_both_ingest_paths_record_server_receipt_alongside_capture": 0.010726005000002203, + "tests/test_adsb_freshness_regressions.py::TestCrossValidationCannotBeBypassed::test_a_future_stamp_does_not_grant_immunity": 0.010967219000001194, + "tests/test_adsb_freshness_regressions.py::TestCrossValidationCannotBeBypassed::test_every_sample_in_one_frame_is_judged": 0.011588824000000386, + "tests/test_adsb_freshness_regressions.py::TestDirectCacheConsumersGateOnAge::test_verification_truth_pool_refuses_a_stale_external_entry": 0.010329030000008288, + "tests/test_adsb_freshness_regressions.py::TestExternalStampsAreBounded::test_a_future_external_stamp_cannot_outlive_the_prune": 0.011171470999997268, + "tests/test_adsb_freshness_regressions.py::TestForwardSkewIsNotTrusted::test_a_stamp_seconds_into_the_future_is_refused": 0.010589852000002509, + "tests/test_adsb_freshness_regressions.py::TestForwardSkewIsNotTrusted::test_ordinary_jitter_is_still_accepted": 0.010843457000007106, + "tests/test_adsb_freshness_regressions.py::TestLastGoodRowsKeepTheirOriginalAge::test_a_cached_row_is_not_restamped_as_fresh": 0.011862929999999494, + "tests/test_adsb_freshness_regressions.py::TestLastGoodRowsKeepTheirOriginalAge::test_the_client_stamps_absolute_capture_time": 0.01212392499999737, + "tests/test_adsb_freshness_regressions.py::TestNonFiniteFeedValuesDoNotBlankTheCache::test_a_nan_capture_time_drops_one_row_not_the_poll": 0.011614061000003062, + "tests/test_adsb_freshness_regressions.py::TestSimIngestIsBoundedToo::test_a_future_push_stamp_is_refused": 0.012357075999993583, + "tests/test_adsb_freshness_regressions.py::TestSimIngestIsBoundedToo::test_an_honest_push_stamp_is_kept": 0.0131321679999985, + "tests/test_adsb_freshness_regressions.py::TestStampsNeverRegress::test_an_older_frame_does_not_overwrite_a_newer_fix": 0.010682003000006546, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_node_verification_altitude_stats_come_from_the_airborne_match_alone": 0.012199206999994772, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_node_verification_survives_a_grounded_truth_candidate": 0.01352871200000294, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_validate_altitude_stats_come_from_the_airborne_match_alone": 0.011915386000005412, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOffTheFramePath::test_validate_ground_truth_survives_a_grounded_aircraft": 0.011787267000002544, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_a_non_dict_tag_is_passed_through_not_unpacked[bad1]": 0.029099793999996848, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_a_non_dict_tag_is_passed_through_not_unpacked[ground]": 0.029747079000003396, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_adsb_bootstrap_after_solver_failure_coerces_to_zero": 0.018479837999990423, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_coercion_leaves_absent_keys_absent": 0.011384280000001468, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_initial_guess_injection_does_not_kill_the_frame": 0.0366598929999995, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_inline_tag_survives_when_the_fresh_injection_does_not_fire": 0.03538886700000887, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_null_ground_speed_does_not_kill_the_frame": 0.03440928199999149, + "tests/test_adsb_ground_sentinel.py::TestGroundSentinelOnTheFramePath::test_refresh_between_solves_coerces_to_zero": 0.018425514999997006, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_403_logs_and_propagates_without_retry": 0.011864940000009483, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_429_retries_once_after_a_backoff": 0.017085331999993514, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_nameless_area_does_not_raise_at_construction": 0.011399439999998151, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[42]": 0.011651559999997119, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[None]": 0.011490349000006006, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[bad3]": 0.011438550999997688, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_a_non_mapping_entry_does_not_raise_at_construction[not-a-dict]": 0.011236474000000385, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_an_area_missing_lat_or_lon_is_also_skipped": 0.011288869000004809, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_area_still_configured_keeps_cache_and_serves_it_on_failure": 0.013601278000002992, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_areas_are_spaced_by_five_seconds": 0.015393751000011946, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_cache_hit_leaves_last_status_untouched": 0.012359408000008898, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_dropped_area_is_forgotten_from_all_three_dicts": 0.015904626999997618, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_empty_areas": 0.01287838199999669, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_all_deduplicates": 0.015460103999998864, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_all_still_serves_the_good_areas_alongside_a_malformed_one": 0.013396452999998587, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_caches_within_interval": 0.013106960999998307, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_returns_aircraft": 0.01302336300000917, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_returns_cache_on_error": 0.013863240000006272, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_fetch_area_url_format": 0.019377493999996886, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_gzip_response_is_decompressed": 0.013983261999996444, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_last_status_distinguishes_success_from_failure": 0.013173795999996685, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_malformed_area_does_not_leave_orphaned_per_area_state": 0.015624724000005585, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_re_added_area_does_not_serve_its_previous_occupancy": 0.013239618999996594, + "tests/test_adsb_lol.py::TestAdsbLolClient::test_request_carries_contact_ua_and_gzip": 0.01520273099999514, + "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_a_failed_fetch_serves_the_last_good_result": 0.014664571000011506, + "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_a_prolonged_outage_stops_serving_it": 0.01316555300000033, + "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_a_successful_fetch_refreshes_the_budget": 0.013260498000001064, + "tests/test_adsb_lol_cache_expiry.py::TestLastGoodExpiry::test_the_rate_limiter_still_serves_a_fresh_cache": 0.01275721600001134, + "tests/test_adsb_regions.py::TestAntimeridianSplit::test_a_band_across_the_antimeridian_is_split_not_swept": 0.01090908900000187, + "tests/test_adsb_regions.py::TestAntimeridianSplit::test_a_split_costing_the_same_as_the_sweep_is_still_taken": 0.010477448999999694, + "tests/test_adsb_regions.py::TestAntimeridianSplit::test_a_split_dearer_than_the_sweep_is_not_taken": 0.010357304999992323, + "tests/test_adsb_regions.py::TestAntimeridianSplit::test_the_negative_side_splits_the_same_way": 0.010908238000006065, + "tests/test_adsb_regions.py::TestAntimeridianSplit::test_the_split_costs_less_than_the_parallel_it_replaces": 0.012410786000003782, + "tests/test_adsb_regions.py::TestAntimeridianSplit::test_the_union_covers_every_member_plus_its_range": 0.010868082000001777, + "tests/test_adsb_regions.py::TestBboxStaysInRange::test_a_clamped_latitude_alone_forces_the_sweep": 0.012687173000010432, + "tests/test_adsb_regions.py::TestBboxStaysInRange::test_a_pole_crossing_band_is_swept_rather_than_split": 0.012655184000003317, + "tests/test_adsb_regions.py::TestBboxStaysInRange::test_near_pole_latitude_is_clamped_not_pushed_past_ninety": 0.01308419899999791, + "tests/test_adsb_regions.py::TestBboxStaysInRange::test_normal_mid_latitude_region_is_unchanged": 0.012879765000008092, + "tests/test_adsb_regions.py::TestBboxStaysInRange::test_saturated_dlon_gives_the_full_sweep_not_an_out_of_range_edge": 0.012939707000008127, + "tests/test_adsb_regions.py::TestCellOf::test_cell_is_stable_across_calls": 0.010725525999994545, + "tests/test_adsb_regions.py::TestCellOf::test_column_width_in_km_is_stable_across_latitudes": 0.01069372399999935, + "tests/test_adsb_regions.py::TestCellOf::test_distant_positions_get_distinct_cells": 0.010856711000009511, + "tests/test_adsb_regions.py::TestCellOf::test_nearby_positions_share_a_cell": 0.011037798000003818, + "tests/test_adsb_regions.py::TestCellOf::test_pole_does_not_explode": 0.011938439000005019, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_a_polar_region_is_a_finite_in_range_box_not_an_explosion": 0.010812978999993561, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_coverage_invariant_holds_wherever_a_span_can_reach_it[85.0]": 0.011316794999999047, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_coverage_invariant_holds_wherever_a_span_can_reach_it[89.0]": 0.018251239000001362, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_no_exception_and_a_finite_bounded_span[85.0]": 0.026048422000002347, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_no_exception_and_a_finite_bounded_span[89.0]": 0.019156806999994558, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_no_exception_and_a_finite_bounded_span[90.0]": 0.012832427000006419, + "tests/test_adsb_regions.py::TestDlonNearThePole::test_the_pole_gets_the_honest_full_sweep": 0.010798480999994808, + "tests/test_adsb_regions.py::TestMalformedPositions::test_a_boolean_is_not_a_latitude": 0.013207098999998834, + "tests/test_adsb_regions.py::TestMalformedPositions::test_a_fleet_of_rubbish_yields_no_regions_rather_than_an_exception": 0.012921814000009135, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[both-out-of-range]": 0.011911951999991288, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[inf-lat]": 0.011053236999991611, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[lat-below-minus-90]": 0.012496736000002784, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[lon-below-minus-180]": 0.013421740999987719, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[nan-lat]": 0.010994869999997547, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[nan-lon]": 0.010864404999999522, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[neg-inf-lon]": 0.01065257800000552, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[none-lat]": 0.010674088999991227, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[string-lat]": 0.010831401999979562, + "tests/test_adsb_regions.py::TestMalformedPositions::test_an_unusable_position_is_dropped_without_disturbing_the_rest[string-lon]": 0.013622445999985189, + "tests/test_adsb_regions.py::TestMalformedPositions::test_boolean_false_pair_is_reported_as_unusable_not_absent": 0.013351217999982623, + "tests/test_adsb_regions.py::TestMalformedPositions::test_dropped_positions_are_logged_with_a_count": 0.013310242000002859, + "tests/test_adsb_regions.py::TestMalformedPositions::test_is_position_absent_does_not_treat_a_bool_as_the_sentinel": 0.013117810999986546, + "tests/test_adsb_regions.py::TestMalformedPositions::test_the_extremes_of_the_valid_range_are_kept": 0.012413852000022985, + "tests/test_adsb_regions.py::TestRegionGeometry::test_as_area_matches_the_client_contract": 0.013763862999994103, + "tests/test_adsb_regions.py::TestRegionGeometry::test_bbox_contains_every_member_plus_its_range": 0.013861045000005845, + "tests/test_adsb_regions.py::TestRegionGeometry::test_bbox_covers_high_latitude_members_across_the_cell": 0.011904847000003826, + "tests/test_adsb_regions.py::TestRegionGeometry::test_metro_cluster_costs_one_opensky_credit": 0.013639948999994544, + "tests/test_adsb_regions.py::TestRegionGeometry::test_radius_covers_every_member_plus_its_range": 0.012465988000002426, + "tests/test_adsb_regions.py::TestRegionGeometry::test_radius_never_breaches_the_schema_cap": 0.012284557000000973, + "tests/test_adsb_regions.py::TestRegionGeometry::test_tight_cluster_is_far_tighter_than_the_ceiling": 0.013775023999997416, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_a_distant_node_does_not_displace_the_others": 0.010598806999993826, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_cap_boundary_is_not_truncated": 0.010612211999998067, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_cap_is_enforced_and_logged": 0.01102627799999567, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_no_nodes_gives_no_regions": 0.011766736000005551, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_only_the_exact_origin_pair_reads_as_absent": 0.010497888999999816, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_ordering_is_deterministic": 0.010586323000005393, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_request_count_does_not_grow_with_node_count": 0.010503657999997529, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_the_absence_test_is_one_predicate_the_whole_backend_shares": 0.01039852099999905, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_three_metros_give_three_regions": 0.010618343000004415, + "tests/test_adsb_regions.py::TestRegionsForNodes::test_unpositioned_nodes_are_dropped": 0.01035788400000115, + "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_entry_conversion": 0.01311699999999405, + "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_keys_stay_lowercase": 0.012354439999995748, + "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_on_ground_sentinel_strings_coerce_to_zero": 0.011715000000009468, + "tests/test_adsb_seed_backend.py::TestAdsbForSeeding::test_skips_invalid_latlon": 0.012881899000007024, + "tests/test_adsb_seed_backend.py::TestAdsbSeedStatusPayload::test_association_status_carries_the_adsb_seed_block": 0.12376694900000018, + "tests/test_adsb_seed_backend.py::TestConfirmedTrackViewsAdsbHex::test_untagged_track_carries_none": 0.011078648000008684, + "tests/test_adsb_seed_backend.py::TestConfirmedTrackViewsAdsbHex::test_view_carries_the_adsb_hex_key": 0.010983719000009273, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_frame_processor_writer[ground-kin2]": 0.016558062999990852, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_frame_processor_writer[moving-kin0]": 0.017974659000003612, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_frame_processor_writer[nokin-kin1]": 0.01643972000000815, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_record_without_derived_fields_falls_back_on_read[ground-kin2]": 0.013109915999990562, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_record_without_derived_fields_falls_back_on_read[moving-kin0]": 0.013234869000001481, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_record_without_derived_fields_falls_back_on_read[nokin-kin1]": 0.013169398000002275, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_sim_ingest_writer[ground-kin2]": 0.013649700000001985, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_sim_ingest_writer[moving-kin0]": 0.011505846000005704, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_sim_ingest_writer[nokin-kin1]": 0.012117915999994011, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_tcp_handler_writer[ground-kin2]": 0.012249021999991783, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_tcp_handler_writer[moving-kin0]": 0.01239470499999129, + "tests/test_adsb_seed_backend.py::TestDerivedFieldsAtWriteTime::test_tcp_handler_writer[nokin-kin1]": 0.012378345000016111, + "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_cross_world_state_is_not_attached": 0.025273628000007875, + "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_existing_adsb_list_never_overwritten": 0.019550483999978496, + "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_frame_without_adsb_gains_index_aligned_list_in_active_mode": 0.017077667000009455, + "tests/test_adsb_seed_backend.py::TestPredictiveAttach::test_off_and_shadow_mode_leave_the_frame_untouched": 0.019659599000007688, + "tests/test_adsb_seed_backend.py::TestProcessOneFrameSolverQueue::test_adsb_inputs_reach_the_solver_queue": 0.023461663000020394, + "tests/test_adsb_seed_backend.py::TestProcessOneFrameSolverQueue::test_claiming_failure_cannot_cost_the_frame": 0.023741705000020374, + "tests/test_adsb_seed_backend.py::TestProcessOneFrameSolverQueue::test_empty_adsb_inputs_add_nothing": 0.024279484999993883, + "tests/test_adsb_seed_backend.py::TestSeedWorldWiring::test_a_sim_and_a_real_node_over_one_footprint_get_no_overlap_zone": 0.010546156999993173, + "tests/test_adsb_seed_backend.py::TestSeedWorldWiring::test_associator_gets_the_state_world_resolver": 0.010537300999999388, + "tests/test_adsb_seed_backend.py::TestSeedWorldWiring::test_two_synthetic_nodes_over_one_footprint_still_pair": 0.02384900699999548, + "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_all_tagged_history_returns_the_hex": 0.013445526000026575, + "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_hist_without_adsb_keys_returns_none": 0.012353957999991394, + "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_last_n_untagged_is_the_swap_signature": 0.013351268000008076, + "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_track_adsb_hex_matching_is_fine": 0.013219090999996297, + "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_track_adsb_hex_mismatch_forces_none": 0.013216706999997996, + "tests/test_adsb_seed_backend.py::TestViewAdsbHex::test_two_distinct_hexes_in_window_is_ambiguous": 0.013173416000014981, + "tests/test_adsb_seed_backend.py::TestWorldStamp::test_frame_processor_writer_stamps_by_node_class": 0.01650620600000252, + "tests/test_adsb_seed_backend.py::TestWorldStamp::test_tcp_writer_honours_the_handshake_verdict": 0.010778453999989779, + "tests/test_adsb_seed_backend.py::TestWorldStamp::test_tcp_writer_stamps_real_for_a_hardware_node": 0.010829719999989607, + "tests/test_adsb_seed_backend.py::TestWorldStamp::test_tcp_writer_stamps_sim_for_a_synthetic_node": 0.011550935000002482, + "tests/test_adsb_service_client.py::test_a_429_raises_rate_limited_carrying_retry_after": 0.01159218099998327, + "tests/test_adsb_service_client.py::test_a_429_without_a_usable_retry_after_waits_the_default": 0.011953116000000819, + "tests/test_adsb_service_client.py::test_a_malformed_body_yields_nothing": 0.01097427100000914, + "tests/test_adsb_service_client.py::test_a_now_far_behind_receipt_is_distrusted_and_receipt_used[1789996400000]": 0.010775035999998295, + "tests/test_adsb_service_client.py::test_a_now_far_behind_receipt_is_distrusted_and_receipt_used[1790000000.0]": 0.013888257000004955, + "tests/test_adsb_service_client.py::test_a_now_far_behind_receipt_is_distrusted_and_receipt_used[True]": 0.011350546000016948, + "tests/test_adsb_service_client.py::test_a_row_without_seen_pos_is_dropped_rather_than_dated_from_the_poll": 0.010759888999999134, + "tests/test_adsb_service_client.py::test_an_aircraft_on_the_ground_is_no_candidate[-25]": 0.013309810999999172, + "tests/test_adsb_service_client.py::test_an_aircraft_on_the_ground_is_no_candidate[0]": 0.013308237999993366, + "tests/test_adsb_service_client.py::test_an_aircraft_on_the_ground_is_no_candidate[ground]": 0.013229770999998891, + "tests/test_adsb_service_client.py::test_an_answer_is_never_dated_after_its_receipt": 0.010558813000002942, + "tests/test_adsb_service_client.py::test_any_other_error_status_raises": 0.012443576999999095, + "tests/test_adsb_service_client.py::test_capture_time_is_the_servers_now_less_seen_pos": 0.010760521000008794, + "tests/test_adsb_service_client.py::test_fetch_point_asks_the_point_endpoint_and_parses_the_answer": 0.013958567000017297, + "tests/test_adsb_service_client.py::test_missing_now_dates_rows_from_receipt": 0.013071083999989241, + "tests/test_adsb_service_client.py::test_rows_carry_a_normalised_hex_and_the_feed_fields": 0.01323677500000997, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad0]": 0.010527725000002874, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad1]": 0.010557650000009744, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad2]": 0.010561487000003922, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad3]": 0.011424285999979134, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad4]": 0.013272572000005312, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad5]": 0.013231114000006983, + "tests/test_adsb_service_client.py::test_unusable_rows_are_dropped[bad6]": 0.013350618999993458, + "tests/test_adsb_single_node.py::TestArc::test_a_disconnected_node_leaves_the_entry_without_an_arc": 0.010842955000001098, + "tests/test_adsb_single_node.py::TestArc::test_below_the_differential_floor_the_entry_survives_without_an_arc": 0.011872194999995145, + "tests/test_adsb_single_node.py::TestBindingDefault::test_an_unrecognised_value_degrades_to_shadow": 0.7483257879999883, + "tests/test_adsb_single_node.py::TestBindingDefault::test_unset_means_binding": 0.7452455950000001, + "tests/test_adsb_single_node.py::TestDownstream::test_dedup_prefers_the_adsb_fix_over_a_solver_estimate": 0.010733440000009864, + "tests/test_adsb_single_node.py::TestDownstream::test_entry_survives_the_per_node_ws_filter": 0.012515331000003016, + "tests/test_adsb_single_node.py::TestDownstream::test_multinode_still_outranks_it": 0.012684699000004684, + "tests/test_adsb_single_node.py::TestDownstream::test_the_builder_publishes_the_entry_and_leaves_detection_arcs_alone": 0.011568946999986451, + "tests/test_adsb_single_node.py::TestQualification::test_a_stale_second_node_does_not_disqualify": 0.012299587000015322, + "tests/test_adsb_single_node.py::TestQualification::test_flight_is_null_without_an_adsb_cache_entry": 0.012477430999993544, + "tests/test_adsb_single_node.py::TestQualification::test_newest_fresh_claim_supplies_the_measurement": 0.01255232999999123, + "tests/test_adsb_single_node.py::TestQualification::test_one_fresh_claim_emits_the_contract_entry": 0.016006097000015984, + "tests/test_adsb_single_node.py::TestQualification::test_repeat_claims_from_one_node_still_qualify": 0.011365524999987997, + "tests/test_adsb_single_node.py::TestQualification::test_stale_claims_emit_nothing": 0.010969611999996687, + "tests/test_adsb_single_node.py::TestQualification::test_two_distinct_nodes_emit_nothing": 0.010991895000017848, + "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_aircraft_are_converted_and_stamped_adsb_lol": 0.014296022000010566, + "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_areas_are_named_for_their_region_so_the_client_cache_keys_line_up": 0.014025093000014976, + "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_every_region_failing_covers_nothing": 0.014242700999986369, + "tests/test_adsb_truth_regions.py::TestAdsbLolFetch::test_only_the_regions_that_answered_are_reported_covered": 0.014308905000007144, + "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_a_fleet_with_no_positions_at_all_says_so": 0.014396491999988825, + "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_a_node_missing_one_coordinate_is_not_placed_on_the_prime_meridian": 0.012122767999997563, + "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_a_null_coordinate_pair_reads_as_unpositioned_not_as_rubbish": 0.012758178000012776, + "tests/test_adsb_truth_regions.py::TestNodesWithoutUsablePositions::test_one_unusable_position_does_not_starve_the_rest": 0.012672506999990674, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_429_costs_only_its_own_region_and_logs_when_credits_return": 0.01230066999998769, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_non_200_leaves_that_region_uncovered_and_says_so": 0.012189491000000885, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_region_nothing_was_asked_for_is_not_reported_covered": 0.013991278999995416, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[None]": 0.012477720000006798, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[abc123]": 0.011984464999997613, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[short0]": 0.011760847000005015, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_state_vector_too_short_to_index_costs_only_itself[short1]": 0.01174753099999748, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_states_field_that_is_not_a_list_leaves_the_box_to_the_fallback[payload0]": 0.014744112999991899, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_states_field_that_is_not_a_list_leaves_the_box_to_the_fallback[payload1]": 0.01478821300000277, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_states_field_that_is_not_a_list_leaves_the_box_to_the_fallback[payload2]": 0.014425343999988627, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_a_transport_error_does_not_abandon_the_regions_behind_it": 0.011885589000002028, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_empty_sky_counts_as_covered[None]": 0.014035530999990442, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_empty_sky_counts_as_covered[states0]": 0.013847167999998078, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_unreadable_200_leaves_the_region_to_the_fallback[None-raises0]": 0.013595315999992863, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_an_unreadable_200_leaves_the_region_to_the_fallback[payload1-None]": 0.013409969999983673, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_every_region_failing_at_the_transport_does_discard_the_pool": 0.012864265000004593, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_one_malformed_state_vector_costs_only_itself": 0.013197469000019169, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_states_are_parsed_and_stamped_opensky": 0.014855088999979671, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_the_bounding_box_of_each_region_is_what_is_queried": 0.013970648999986679, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_the_burst_is_capped_rather_than_tracking_the_region_count": 0.03277860299999702, + "tests/test_adsb_truth_regions.py::TestOpenSkyFetch::test_the_regions_are_asked_concurrently": 0.022331531000006066, + "tests/test_adsb_truth_regions.py::TestProviderHandover::test_a_malformed_opensky_200_still_reaches_the_fallback[None-raises0]": 0.012780839000001265, + "tests/test_adsb_truth_regions.py::TestProviderHandover::test_a_malformed_opensky_200_still_reaches_the_fallback[payload1-None]": 0.01159030699999164, + "tests/test_adsb_truth_regions.py::TestProviderHandover::test_an_aircraft_both_providers_saw_keeps_the_entry_that_names_its_supplier": 0.01208064800000841, + "tests/test_adsb_truth_regions.py::TestProviderHandover::test_both_providers_key_the_cache_in_the_same_case": 0.012624957999989306, + "tests/test_adsb_truth_regions.py::TestProviderHandover::test_only_the_uncovered_regions_are_handed_to_the_fallback": 0.011998843000014858, + "tests/test_adsb_truth_regions.py::TestProviderHandover::test_the_summary_names_only_the_regions_the_fallback_actually_covered": 0.012212505999997347, + "tests/test_adsb_truth_regions.py::TestRangeBeyondTheQueryMargin::test_a_max_range_that_is_not_a_number_is_not_measured_against_it": 0.014310328999997068, + "tests/test_adsb_truth_regions.py::TestRangeBeyondTheQueryMargin::test_a_range_past_the_margin_names_the_range_and_the_margin": 0.012606675000000678, + "tests/test_adsb_truth_regions.py::TestRangeBeyondTheQueryMargin::test_the_margin_itself_is_not_reported_as_a_shortfall": 0.015297622999995042, + "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_a_429_that_left_a_region_uncovered_does_arm_it": 0.013230382999992685, + "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_a_429_the_fallback_covered_costs_no_backoff": 0.01401895099999706, + "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_another_region_s_gap_does_not_charge_the_credit_budget": 0.014469995999988328, + "tests/test_adsb_truth_regions.py::TestRateLimitBackoff::test_the_fallback_failing_outright_leaves_the_429_charged": 0.014597406999996565, + "tests/test_adsb_truth_regions.py::TestRegionFetch::test_a_total_failure_keeps_the_last_good_cache": 0.013555002999993349, + "tests/test_adsb_truth_regions.py::TestRegionFetch::test_an_empty_successful_fetch_clears_rather_than_hiding": 0.014482911999991188, + "tests/test_adsb_truth_regions.py::TestRegionFetch::test_every_metro_is_represented_in_the_merged_cache": 0.01436681399999884, + "tests/test_adsb_truth_regions.py::TestRegionFetch::test_the_fallback_throwing_outright_still_keeps_opensky_s_regions": 0.013384039000015946, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_a_half_covered_region_goes_to_the_fallback": 0.013499396999989699, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_a_truthfully_empty_box_replaces_the_cache_though_everything_else_failed": 0.014678592999999296, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_both_boxes_are_asked_for_and_merge_into_one_region": 0.014185533000002692, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_every_box_failing_at_the_transport_discards_the_pool": 0.01410014099998591, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_one_box_failing_at_the_transport_keeps_the_pool": 0.01316147000001422, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_one_box_refused_credit_leaves_the_whole_region_uncovered": 0.014308704000015382, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_the_burst_stays_capped_when_regions_split": 0.03482765599999027, + "tests/test_adsb_truth_regions.py::TestSplitRegionFetch::test_the_half_that_answered_survives_the_fallback_failing_too": 0.015418756000016742, + "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_failing_client_is_removed": 0.01387712800000429, + "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_failing_owner_client_is_removed": 0.01349470999998914, + "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_ground_truth_slimmed_to_last_position": 0.013426945000006185, + "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_owner_client_gets_only_their_nodes": 0.013402188000014803, + "tests/test_aircraft_broadcast.py::TestBroadcastAircraft::test_updates_state_and_sends_to_clients": 0.014153695999993943, + "tests/test_aircraft_broadcast.py::TestFilterPayloadToNodes::test_empty_node_set_yields_nothing": 0.0111652599999843, + "tests/test_aircraft_broadcast.py::TestFilterPayloadToNodes::test_filters_to_given_nodes": 0.011302940000007311, + "tests/test_aircraft_broadcast.py::TestFilterPayloadToNodes::test_multinode_kept_when_contributor_owned": 0.011129815000003873, + "tests/test_aircraft_broadcast.py::TestRealOnlyDict::test_filters_to_real_nodes": 0.012312016999985076, + "tests/test_aircraft_broadcast.py::TestRealOnlyDict::test_multinode_aircraft_kept_when_any_contributor_real": 0.011257784999997966, + "tests/test_aircraft_flush.py::TestBroadcastAircraft::test_updates_state_bytes": 0.014101117999985036, + "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_a_raising_client_is_dropped_without_counting_a_timeout": 0.014900987999993731, + "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_live_clients_are_fanned_out_too": 0.11566783300000338, + "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_many_slow_clients_cost_one_timeout_not_one_each": 0.1153763369999865, + "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_owner_clients_are_fanned_out_with_their_filtered_payloads": 0.11440879799999948, + "tests/test_aircraft_flush.py::TestBroadcastFanOut::test_slow_client_is_dropped_and_the_others_are_served": 0.11408209200000385, + "tests/test_aircraft_flush.py::TestRealOnlyDict::test_empty_aircraft": 0.011606129000014676, + "tests/test_aircraft_flush.py::TestRealOnlyDict::test_filters_synthetic_nodes": 0.011379133000005481, + "tests/test_aircraft_flush.py::TestRealOnlyDict::test_multinode_includes_if_any_real": 0.01123154700000839, + "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_an_unregistered_node_reaches_no_public_feed": 0.014983603000004564, + "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_the_frame_kept_on_state_is_neither_redacted_nor_substituted": 0.02233736300000544, + "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_the_public_feed_is_published_under_the_ref": 0.01670871799998963, + "tests/test_aircraft_flush_refs.py::TestFlushOnce::test_the_real_only_feed_still_finds_its_nodes_after_substitution": 0.017149876000004838, + "tests/test_aircraft_flush_refs.py::TestOwnerFeed::test_substituting_first_would_empty_it": 0.015317930000009028, + "tests/test_aircraft_flush_refs.py::TestOwnerFeed::test_the_owner_snapshot_is_filtered_by_id_then_published_as_a_ref": 0.01552051899999185, + "tests/test_alerting.py::TestCallTimeCapture::test_auth_captured_once_not_reread_when_thread_runs": 0.013016152999995256, + "tests/test_alerting.py::TestCallTimeCapture::test_environment_captured_once_not_reread_when_thread_runs": 0.012872712999993041, + "tests/test_alerting.py::TestCallTimeCapture::test_format_captured_once_not_reread_when_thread_runs": 0.013024768999983394, + "tests/test_alerting.py::TestCallTimeCapture::test_host_captured_once_not_reread_when_thread_runs": 0.012944306999997934, + "tests/test_alerting.py::TestCallTimeCapture::test_url_captured_once_not_reread_when_thread_runs": 0.013014189999992709, + "tests/test_alerting.py::TestClickupChatFormat::test_content_contains_alert_type_message_and_each_meta_pair": 0.013401544999979365, + "tests/test_alerting.py::TestClickupChatFormat::test_content_includes_environment_and_host_lines": 0.014186527999996201, + "tests/test_alerting.py::TestClickupChatFormat::test_empty_meta_renders_cleanly": 0.013143290000002139, + "tests/test_alerting.py::TestClickupChatFormat::test_full_call_pins_url_headers_and_body_together": 0.01280711100000076, + "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_a_different_alert_type_is_not_blocked": 0.0143027559999922, + "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_a_send_is_refused_while_the_same_type_is_still_in_flight": 0.015437653999981649, + "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_the_in_flight_marker_is_cleared_after_a_failed_delivery": 0.013176913999998874, + "tests/test_alerting.py::TestConcurrentDeliveryIsRefused::test_the_in_flight_marker_is_cleared_once_delivery_ends": 0.013243457999990937, + "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_exhausted_retriable_failure_reopens_the_slot_early": 0.013806126999995172, + "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_failed_release_does_not_clobber_slot_claimed_by_later_send": 0.015239450999985138, + "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_terminal_4xx_keeps_its_cooldown_slot": 0.014036778000004801, + "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_the_reopen_deadline_outranks_a_shorter_cooldown": 0.012878455000006284, + "tests/test_alerting.py::TestCooldownAfterFailedDelivery::test_the_reopen_deadline_survives_a_cooldown_change": 0.012936152999998285, + "tests/test_alerting.py::TestDeliveryRetry::test_400_is_not_retried": 0.013171795000005204, + "tests/test_alerting.py::TestDeliveryRetry::test_401_is_not_retried": 0.012901168000013286, + "tests/test_alerting.py::TestDeliveryRetry::test_500_is_retried_and_the_alert_arrives": 0.013010160999996856, + "tests/test_alerting.py::TestDeliveryRetry::test_backoff_delays_fall_inside_their_own_attempt_window": 0.013697180000022513, + "tests/test_alerting.py::TestDeliveryRetry::test_backoff_is_jittered_rather_than_a_fixed_schedule": 0.022620837000005167, + "tests/test_alerting.py::TestDeliveryRetry::test_backoff_is_slept_between_attempts_but_not_after_the_last": 0.013409820999982003, + "tests/test_alerting.py::TestDeliveryRetry::test_connection_error_is_retried_and_the_alert_arrives": 0.013140776000000187, + "tests/test_alerting.py::TestDeliveryRetry::test_cooldown_is_held_across_retries_and_reopened_once_at_the_end": 0.01644831900000554, + "tests/test_alerting.py::TestDeliveryRetry::test_delivery_that_eventually_succeeds_keeps_its_cooldown_slot": 0.012619389000022352, + "tests/test_alerting.py::TestDeliveryRetry::test_delivery_that_succeeds_on_retry_is_not_logged_at_error": 0.012970214999995733, + "tests/test_alerting.py::TestDeliveryRetry::test_exhausted_delivery_is_logged_at_error": 0.013679206999995586, + "tests/test_alerting.py::TestDeliveryRetry::test_non_retriable_failure_is_logged_at_error": 0.01304010799999844, + "tests/test_alerting.py::TestDeliveryRetry::test_read_timeout_is_retried": 0.013092399000001365, + "tests/test_alerting.py::TestDeliveryRetry::test_retrying_is_bounded": 0.013472049000000652, + "tests/test_alerting.py::TestDeliveryRetry::test_successful_first_attempt_does_not_sleep": 0.013014619000003336, + "tests/test_alerting.py::TestDeliveryRetry::test_unexpected_exception_is_not_retried": 0.013517434000007711, + "tests/test_alerting.py::TestDeliveryRetryDetails::test_a_terminal_4xx_mid_sequence_keeps_the_cooldown_slot": 0.012888414000002513, + "tests/test_alerting.py::TestDeliveryRetryDetails::test_a_terminal_4xx_mid_sequence_stops_the_retries": 0.012745885000001067, + "tests/test_alerting.py::TestDeliveryRetryDetails::test_exhausted_5xx_log_keeps_the_greppable_wording": 0.013297038999994015, + "tests/test_alerting.py::TestDeliveryRetryDetails::test_one_client_serves_the_whole_sequence": 0.013057900999982053, + "tests/test_alerting.py::TestDeliveryRetryDetails::test_terminal_4xx_log_keeps_the_greppable_wording": 0.012927395999994928, + "tests/test_alerting.py::TestDeliveryRetryDetails::test_unreachable_sink_logs_the_traceback_once_at_the_end": 0.014547485000022675, + "tests/test_alerting.py::TestEnvironmentAndHost::test_alert_environment_empty_yields_unknown": 0.014322253000003116, + "tests/test_alerting.py::TestEnvironmentAndHost::test_alert_environment_stripped": 0.015441631000001621, + "tests/test_alerting.py::TestEnvironmentAndHost::test_alert_environment_unset_yields_unknown": 0.012952764000019101, + "tests/test_alerting.py::TestEnvironmentAndHost::test_gethostname_empty_string_yields_unknown": 0.014279383000001644, + "tests/test_alerting.py::TestEnvironmentAndHost::test_gethostname_raising_falls_back_to_unknown_and_does_not_propagate": 0.016294232999982228, + "tests/test_alerting.py::TestEnvironmentAndHost::test_raw_body_reflects_call_time_environment_and_host": 0.012939880000004678, + "tests/test_alerting.py::TestLogDestination::test_logs_disabled_when_url_unset": 0.01150022000000206, + "tests/test_alerting.py::TestLogDestination::test_logs_scheme_and_host_without_leaking_token_or_full_url": 0.012138144000019224, + "tests/test_alerting.py::TestLogDestination::test_logs_unparseable_url_without_a_bare_scheme_and_host": 0.011322156000005634, + "tests/test_alerting.py::TestLogDestination::test_unbalanced_ipv6_bracket_does_not_raise": 0.012410940999984632, + "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_no_warning_when_clickup_chat_format_and_auth_set": 0.011990549000017836, + "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_no_warning_when_raw_format_and_auth_empty": 0.012606550999990418, + "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_warns_when_clickup_chat_format_and_auth_empty": 0.011918635000000677, + "tests/test_alerting.py::TestLogDestinationClickupAuthWarning::test_warns_when_url_unparseable_and_clickup_chat_auth_empty": 0.011911441999998829, + "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_204_is_still_a_successful_delivery": 0.015209937999998147, + "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_redirect_is_not_counted_as_delivered": 0.013130367999991677, + "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_redirect_is_not_retried": 0.01507318100000532, + "tests/test_alerting.py::TestRedirectsAreNotDelivered::test_a_redirect_names_the_url_rather_than_the_token": 0.015223955000010392, + "tests/test_alerting.py::TestRetryCostsTheSinkNoMoreThanBefore::test_a_lowercased_retry_after_is_honoured": 0.012944288999975129, + "tests/test_alerting.py::TestRetryCostsTheSinkNoMoreThanBefore::test_retry_after_is_honoured_on_a_5xx_too": 0.014016107999992755, + "tests/test_alerting.py::TestRetryCostsTheSinkNoMoreThanBefore::test_the_reopen_window_covers_a_full_sequence_of_attempts": 0.011616398000001027, + "tests/test_alerting.py::TestSendAlert::test_cooldown_blocks_duplicate_alert": 0.013488148999996952, + "tests/test_alerting.py::TestSendAlert::test_different_alert_types_independent_cooldown": 0.013451469000003158, + "tests/test_alerting.py::TestSendAlert::test_disabled_returns_without_calling_httpx": 0.012369188999997505, + "tests/test_alerting.py::TestSendAlert::test_empty_cooldown_env_var_treated_as_unset": 0.011760026000004586, + "tests/test_alerting.py::TestSendAlert::test_is_enabled_false_when_url_unset": 0.012089393999985987, + "tests/test_alerting.py::TestSendAlert::test_is_enabled_true_when_url_set": 0.013989687999981015, + "tests/test_alerting.py::TestSendAlert::test_malformed_cooldown_does_not_raise_and_does_not_silence_alert": 0.012903974000010976, + "tests/test_alerting.py::TestSendAlert::test_malformed_cooldown_falls_back_to_exactly_300": 0.011652595000015253, + "tests/test_alerting.py::TestSendAlert::test_malformed_cooldown_logs_warning_with_bad_value": 0.012063294999990148, + "tests/test_alerting.py::TestSendAlert::test_raw_format_default_matches_current_payload_exactly": 0.012777835000008508, + "tests/test_alerting.py::TestSendAlert::test_unrecognised_format_warns_and_falls_back_to_raw": 0.013157628000016075, + "tests/test_alerting.py::TestSendAlert::test_webhook_4xx_response_does_not_raise": 0.016021819000002324, + "tests/test_alerting.py::TestSendAlert::test_webhook_error_does_not_propagate": 0.013855648000017595, + "tests/test_alerting.py::TestSendAlert::test_whitespace_only_cooldown_treated_as_unset_and_does_not_warn": 0.011722315999989519, + "tests/test_alerting.py::TestSendAlert::test_zero_cooldown_disables_suppression": 0.014329004999993344, + "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_cooldown_strips_surrounding_whitespace": 0.012565508000008663, + "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_webhook_auth_strips_surrounding_whitespace": 0.012930471000018429, + "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_webhook_format_strips_whitespace_and_uses_clickup_body": 0.013229223000010393, + "tests/test_alerting.py::TestSettingsWhitespaceTolerance::test_webhook_url_strips_surrounding_whitespace": 0.013294955000006325, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_403_is_still_terminal": 0.012831876999982228, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_408_is_retried": 0.012787754000001428, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_429_is_retried_and_the_alert_arrives": 0.012948557000001415, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_malformed_retry_after_falls_back_to_the_backoff": 0.012831044999998653, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_retry_after_is_capped": 0.012767027000009534, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_retry_after_is_honoured_over_the_backoff": 0.013676600999986022, + "tests/test_alerting.py::TestTransient4xxAreRetried::test_retry_after_never_shortens_the_backoff": 0.012709908000005044, + "tests/test_analysis_weather.py::test_fetch_historical_filters_to_requested_window": 0.011497343999991472, + "tests/test_analysis_weather.py::test_fetch_historical_handles_naive_datetimes": 0.011426449999987653, + "tests/test_analysis_weather.py::test_fetch_historical_returns_empty_on_http_error": 0.011431571000002805, + "tests/test_analysis_weather.py::test_fetch_historical_returns_empty_on_payload_missing_hourly": 0.01150009000001262, + "tests/test_analysis_weather.py::test_fetch_historical_returns_empty_when_end_before_start": 0.011319971000006035, + "tests/test_analysis_weather.py::test_fetch_historical_returns_one_row_per_hour": 0.011883498000003101, + "tests/test_analytics_refresh.py::TestAccuracyStats::test_all_zero_errors": 0.01085594200000628, + "tests/test_analytics_refresh.py::TestAccuracyStats::test_empty_samples": 0.011319760999981554, + "tests/test_analytics_refresh.py::TestAccuracyStats::test_multiple_sources_split": 0.011215673999998899, + "tests/test_analytics_refresh.py::TestAccuracyStats::test_percentiles_correct": 0.011006553999990842, + "tests/test_analytics_refresh.py::TestAccuracyStats::test_single_sample": 0.01117874699998822, + "tests/test_analytics_refresh.py::TestConnectedNodesSnapshot::test_snapshot_with_lock": 0.010836073000007218, + "tests/test_analytics_refresh.py::TestMissedDetectionsCountsClaimsAsDetections::test_a_freshly_claimed_aircraft_is_detected_not_missed": 0.011346882000012215, + "tests/test_analytics_refresh.py::TestMissedDetectionsCountsClaimsAsDetections::test_a_stale_claim_still_reads_as_missed": 0.011374596000010229, + "tests/test_analytics_refresh.py::TestMissedDetectionsHonoursConfiguredBeamWidth::test_default_width_follows_the_shared_constant_not_a_local_copy": 0.011424828000016873, + "tests/test_analytics_refresh.py::TestMissedDetectionsHonoursConfiguredBeamWidth::test_wide_beam_node_counts_an_aircraft_a_narrow_beam_would_miss": 0.01162998299999174, + "tests/test_analytics_refresh.py::TestNodeRefInPublicPayloads::test_both_analytics_variants_carry_it": 0.016511738999994918, + "tests/test_analytics_refresh.py::TestNodeRefInPublicPayloads::test_the_handle_is_the_key_it_is_published_under": 0.014335737999999765, + "tests/test_analytics_refresh.py::TestNodeRefInPublicPayloads::test_the_nodes_payload_carries_it": 0.014237164000007851, + "tests/test_analytics_refresh.py::TestNumpySerializationTrap::test_nested_numpy_in_analytics_shape": 0.011514034000015272, + "tests/test_analytics_refresh.py::TestNumpySerializationTrap::test_orjson_accepts_numpy_with_flag": 0.011403587999993192, + "tests/test_analytics_refresh.py::TestNumpySerializationTrap::test_orjson_rejects_numpy_float64_by_default": 0.011401974999984077, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_blocked_node_no_rewards": 0.010999701000002915, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_high_detection_rate_penalty": 0.010986713000008308, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_high_trust_rewards_node": 0.011286798999989855, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_low_trust_blocks_node": 0.011300274999996418, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_neighbour_consistency_penalty": 0.011275678000004064, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_penalty_cap": 0.011075673999997093, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_reputation_never_above_one": 0.011021297999988633, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_reputation_never_negative": 0.010988362000006191, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_stale_heartbeat_penalty": 0.011003799999997455, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_summary_shape": 0.011453121999991822, + "tests/test_analytics_refresh.py::TestReputationEvaluations::test_unblock_resets_reputation_to_0_3": 0.013284265999999434, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_at_exactly_max_range": 0.011313760999996703, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_beam_wraps_at_360_degrees": 0.011407985999994708, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_beyond_max_range": 0.011313309000001937, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_narrow_beam_10deg": 0.011451270000009117, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_near_boundary_inside": 0.011274267000004556, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_near_boundary_outside": 0.011390434000006167, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_on_boresight_but_too_far": 0.011404058999985978, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_on_boresight_within_range": 0.011354556999989995, + "tests/test_analytics_refresh_helpers.py::TestAircraftInBeam::test_aircraft_within_range_and_beam_30deg_offset": 0.011457049000000552, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_east": 0.011266560999985131, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_north": 0.011114325000022518, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_northeast": 0.01133151299998758, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_east": 0.01147909099999822, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_north": 0.011324329999993665, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_south": 0.011353322999994475, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_range_west": 0.011378381000014315, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_same_point": 0.01153034599998648, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_same_point_nonzero": 0.011336721999995802, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_south": 0.010910714000004873, + "tests/test_analytics_refresh_helpers.py::TestBearingDeg::test_bearing_west": 0.011473160999997845, + "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_acute_angle_geometry": 0.01268399900000361, + "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_collinear_near_baseline_gives_large_angle": 0.013567273000006708, + "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_degenerate_aircraft_at_rx_returns_180": 0.013716966999993474, + "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_degenerate_aircraft_at_tx_returns_180": 0.013817045999985567, + "tests/test_analytics_refresh_helpers.py::TestBistaticAngleDeg::test_symmetric_geometry_approximates_90": 0.013798129999997855, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_a_changed_digest_triggers_a_rebuild": 0.011190236999993886, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_a_later_change_triggers_another_rebuild": 0.011036589999989133, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_a_node_without_a_polygon_is_skipped": 0.01097408200000416, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_an_unchanged_digest_costs_nothing": 0.01116494099998988, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_first_build_is_never_delayed_by_the_floor": 0.011145783999992886, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_recheck_floor_skips_known_nodes": 0.011172154000021806, + "tests/test_analytics_refresh_helpers.py::TestCoverageConstraintRefresh::test_sub_bucket_drift_does_not_rebuild": 0.01218906999999092, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_cycle_rebuilds_at_most_the_budget": 0.011228610999992839, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_deferred_node_commits_its_digest_only_when_it_rebuilds": 0.011152797999997688, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_node_that_moves_back_before_its_turn_is_dequeued": 0.011121448999986683, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_node_that_moves_back_forgets_its_enqueue_time": 0.01337826200000336, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_requeued_node_does_not_lose_its_place": 0.011092284000000063, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_a_retrip_keeps_the_original_enqueue_time": 0.013277473000016471, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_backlog_gauge_reports_what_is_still_owed": 0.012688901999993618, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_bookkeeping_never_outlives_the_queue": 0.011374934000002668, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_excess_is_carried_and_drained_in_order": 0.01129240000000209, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildBudget::test_the_oldest_wait_gauge_reads_the_front_of_the_queue": 0.011916019999986815, + "tests/test_analytics_refresh_helpers.py::TestCoverageRebuildIsOffTheAnalyticsJob::test_refresh_analytics_and_nodes_does_not_rebuild_grids": 0.01444646599999544, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_a_coasting_track_is_excluded": 0.011949502999996753, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_a_freshly_associated_track_is_included": 0.013835800000009613, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_hex_is_lowercased": 0.013727254999992056, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_missing_n_missed_defaults_harmless_for_stub_tracks": 0.013649591000003625, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_newest_detection_tag_outranks_a_stale_track_hex": 0.011521430000016153, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_no_pipeline_returns_empty_set": 0.013604115999996225, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_track_without_adsb_hex_is_skipped": 0.012982136000005084, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFor::test_untagged_newest_detection_falls_back_to_the_track_hex": 0.011430097999991062, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_a_fresh_claim_from_another_node_does_not": 0.011342093999999747, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_a_fresh_claim_from_this_node_counts_as_detected": 0.011454065999998875, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_a_stale_claim_does_not": 0.01130195800000422, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_claims_and_tracker_tracks_are_unioned": 0.011399691999997685, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_hex_is_lowercased": 0.01144745999999941, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_malformed_claim_entries_are_survived": 0.011371978999989096, + "tests/test_analytics_refresh_helpers.py::TestDetectedHexesFromClaims::test_this_node_is_found_behind_another_node_s_newer_claim": 0.011343897000003267, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_event_on_detected_then_gone_with_fresh_in_fov_adsb": 0.011517241999996486, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_liveness_guard_blocks_a_dark_node": 0.011448642999994263, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_memory_expires_without_an_event_when_no_fresh_fix_ever_arrives": 0.011356189999986555, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_no_event_for_never_detected_aircraft": 0.011419708000005357, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_no_event_when_the_adsb_fix_is_stale": 0.011461024999988467, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_no_event_when_the_fresh_fix_is_outside_the_current_fov": 0.011387668000011786, + "tests/test_analytics_refresh_helpers.py::TestDisappearanceDetector::test_per_cycle_cap": 0.011555905000008693, + "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_absent_key_keeps_monostatic_scoring": 0.010964434999991113, + "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_beam_still_gates_under_the_bistatic_rule": 0.010878212999998027, + "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_bistatic_rule_excludes_what_monostatic_includes": 0.012926745999990885, + "tests/test_analytics_refresh_helpers.py::TestInBeamRespectsBistaticRule::test_bistatic_rule_includes_targets_inside_the_budget": 0.01118842500000028, + "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_a_meaningful_limit_move_still_changes_the_digest": 0.011259166000016307, + "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_float_digest_still_works_unquantized_by_the_tuple_branch": 0.011244430999994393, + "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_limit_is_quantized_to_the_same_2km_grain": 0.011232446999983381, + "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_none_entries_pass_through": 0.011329368999980716, + "tests/test_analytics_refresh_helpers.py::TestQuantizeDigestTupleFormat::test_state_code_compared_exactly": 0.011415560000017422, + "tests/test_analytics_routes.py::TestAccuracy::test_accuracy_returns_bytes": 0.12388328199999421, + "tests/test_analytics_routes.py::TestAccuracy::test_accuracy_with_data": 0.12407180799999651, + "tests/test_analytics_routes.py::TestAdsbReport::test_missing_fields": 0.12308287199999768, + "tests/test_analytics_routes.py::TestAdsbReport::test_valid_report": 0.12976914799999406, + "tests/test_analytics_routes.py::TestAnalytics::test_analytics_real_only": 0.12526154700000802, + "tests/test_analytics_routes.py::TestAnalytics::test_analytics_returns_bytes": 0.12233399600000894, + "tests/test_analytics_routes.py::TestAnalytics::test_node_analytics_found": 0.12319282499998963, + "tests/test_analytics_routes.py::TestAnalytics::test_node_analytics_not_found": 0.1249754350000103, + "tests/test_analytics_routes.py::TestAnomalies::test_anomalies_empty": 0.12469444799999962, + "tests/test_analytics_routes.py::TestAnomalies::test_anomalies_with_data": 0.12369644999998286, + "tests/test_analytics_routes.py::TestAssociationStatus::test_claiming_counters_reflect_the_associator": 0.12478531300000384, + "tests/test_analytics_routes.py::TestAssociationStatus::test_status_includes_claiming_block": 0.12466386799999896, + "tests/test_analytics_routes.py::TestAssociationStatus::test_status_reports_world_skipped_pairs": 0.12546202499999026, + "tests/test_analytics_routes.py::TestAssociationStatus::test_status_returns_expected_fields": 0.12698950600000103, + "tests/test_analytics_routes.py::TestAssociationStatus::test_track_pairs_block_reports_the_live_counters": 0.12574317500001087, + "tests/test_analytics_routes.py::TestOverlaps::test_overlaps_returns_bytes": 0.1231174349999975, + "tests/test_analytics_routes.py::TestPerNodeAnalyticsRoute::test_the_id_the_ref_stands_in_for_is_not_an_address_for_it": 0.12428411600001255, + "tests/test_analytics_routes.py::TestPerNodeAnalyticsRoute::test_the_route_carries_the_ref": 0.1245746789999913, + "tests/test_anonymous_admin_closed.py::test_local_may_keep_the_bypass": 0.017683787999999367, + "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_leaves_the_verifier_unconfigured[docker-compose.prod.yml]": 0.018302958999996122, + "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_leaves_the_verifier_unconfigured[docker-compose.staging.yml]": 0.02233576200002574, + "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_leaves_the_verifier_unconfigured[docker-compose.test.yml]": 0.019968081999991227, + "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_opts_into_the_anonymous_admin[docker-compose.prod.yml]": 0.018623178999988, + "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_opts_into_the_anonymous_admin[docker-compose.staging.yml]": 0.020220475000016336, + "tests/test_anonymous_admin_closed.py::test_no_deployed_overlay_opts_into_the_anonymous_admin[docker-compose.test.yml]": 0.02050554900002055, + "tests/test_api_reference.py::test_every_component_is_reached_by_a_published_operation": 0.012182248999977219, + "tests/test_api_reference.py::test_every_published_tag_is_declared_and_grouped_once": 0.013323997000000531, + "tests/test_api_reference.py::test_fastapis_own_pages_are_gone[/docs/oauth2-redirect]": 0.12543504900000357, + "tests/test_api_reference.py::test_fastapis_own_pages_are_gone[/docs]": 0.12449845999999809, + "tests/test_api_reference.py::test_fastapis_own_pages_are_gone[/redoc]": 0.12450923199999409, + "tests/test_api_reference.py::test_it_publishes_exactly_these_operations": 0.05670095700000388, + "tests/test_api_reference.py::test_no_account_admin_or_test_route_is_listed": 0.011566613000013604, + "tests/test_api_reference.py::test_the_api_vhost_serves_tower_finders_schema_from_its_own_origin": 0.0318808439999998, + "tests/test_api_reference.py::test_the_description_keeps_the_node_apis_sections_under_its_own_lead": 0.01228891900001372, + "tests/test_api_reference.py::test_the_header_links_to_this_environments_console": 0.12462892400000669, + "tests/test_api_reference.py::test_the_headers_switch_stands_in_for_scalars_toggle": 0.12470630500000368, + "tests/test_api_reference.py::test_the_node_operations_are_the_contracts_own": 0.013732145000005858, + "tests/test_api_reference.py::test_the_page_loads_the_pinned_scalar_under_its_own_policy": 0.12461507300001529, + "tests/test_api_reference.py::test_the_page_renders_each_document_with_scalars_uploads_off": 0.1243616799999927, + "tests/test_api_reference.py::test_the_palette_is_the_pages_before_it_is_scalars": 0.12476714100000663, + "tests/test_api_reference.py::test_the_pinned_scalar_still_has_what_the_shell_names": 0.11558875799998702, + "tests/test_api_reference.py::test_the_policy_admits_the_favicon": 0.12498320600001023, + "tests/test_api_reference.py::test_the_policy_admits_the_inline_script_by_its_hash": 0.12490435099999786, + "tests/test_api_reference.py::test_the_served_document_is_the_public_one": 0.12499529400000142, + "tests/test_api_reference.py::test_the_whole_schema_is_for_an_administrator": 0.12410701400000335, + "tests/test_api_reference.py::test_without_host_app_the_header_links_nowhere": 0.124360911000025, + "tests/test_api_reference.py::test_without_tower_finder_the_location_is_not_rendered": 0.022990952000000675, + "tests/test_arc_builder.py::TestArcCacheIntegration::test_dropped_hex_is_evicted": 0.016522471000001815, + "tests/test_arc_builder.py::TestArcCacheIntegration::test_unchanged_fleet_second_build_zero_rebuilds": 0.015283668999998667, + "tests/test_arc_builder.py::TestArcDifferentialFloor::test_above_floor_builds": 0.012160584000000085, + "tests/test_arc_builder.py::TestArcDifferentialFloor::test_below_floor_returns_none": 0.011859549999996943, + "tests/test_arc_builder.py::TestArcDifferentialFloor::test_floor_boundary": 0.01245423799998946, + "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[0.0]": 0.013894543000006365, + "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[40000.0]": 0.013227190999998584, + "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[9000.0]": 0.013132155000008083, + "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_alt_none_zero_high_all_identical[None]": 0.01629846999999529, + "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_arc_points_satisfy_2d_differential": 0.015503780000003076, + "tests/test_arc_builder.py::TestArcIgnoresAltitude::test_track_altitude_is_ignored": 0.016127229000005627, + "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_accepts_supersonic_displacement": 0.014404820999999401, + "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_rejects_too_recent": 0.014198604999990039, + "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_returns_gs_and_track_from_two_samples": 0.014236335999996186, + "tests/test_arc_builder.py::TestArcMotionVelocityFallback::test_estimator_returns_none_without_log": 0.014551435000001334, + "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_bare_flag_without_types_dropped": 0.015397862000000373, + "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_disallowed_types_stripped_supersonic_survives": 0.015554285999996864, + "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_gt_flagged_hex_survives_clean_emit": 0.015268158999987236, + "tests/test_arc_builder.py::TestArcOnlyAnomalyAllowlist::test_only_disallowed_types_unflags": 0.015352547000020422, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_arc_points_lie_on_measured_differential_within_limit": 0.01318327199999203, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_delay_beyond_differential_limit_returns_none": 0.013497028999992722, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_known_position_no_longer_trims_the_arc": 0.012595980000000395, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_monostatic_range_excludes_out_of_reach_bearings": 0.011687978999987081, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_omni_node_spans_beyond_any_wedge": 0.012641275000007113, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_point_budget_is_bounded": 0.012785864999997898, + "tests/test_arc_builder.py::TestArcSpansDetectionArea::test_wedge_arc_stays_inside_genuine_beam": 0.013840282999993292, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_fuzz_off_emits_the_true_midpoint": 0.013247772999989138, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_icon_is_displaced_by_about_the_node_offset": 0.015782272999999236, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_icon_sits_on_the_published_arc": 0.01581425400000569, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_internal_state_stays_in_the_true_frame": 0.013855820000003405, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_recent_positions_are_served_from_the_public_store": 0.013129900000024008, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_rms_gate_nulled_arc_still_moves_the_icon": 0.012060746000017275, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_solver_position_is_translated_for_arc_tracks": 0.01266949799997974, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_solver_position_untouched_for_an_adsb_seed_track": 0.01163221400000225, + "tests/test_arc_builder.py::TestArcTrackIsTranslated::test_the_true_store_never_receives_the_public_position": 0.013239667999982885, + "tests/test_arc_builder.py::TestBearingDeg::test_east": 0.011559371000004148, + "tests/test_arc_builder.py::TestBearingDeg::test_north": 0.011927861000003759, + "tests/test_arc_builder.py::TestBearingDeg::test_round_trip": 0.01138393099999746, + "tests/test_arc_builder.py::TestBearingDeg::test_south": 0.011504697999995983, + "tests/test_arc_builder.py::TestBearingDeg::test_west": 0.011391145000004599, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_37_points_for_normal_delay": 0.01162580599998364, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_arc_coords_are_finite": 0.011802056999997035, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_arc_within_max_range": 0.011888298999991775, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_explicit_beam_azimuth": 0.01180643400000747, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_min_two_points": 0.011599878000012609, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_monotonically_increases_with_delay": 0.012348109999990697, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_nan_beam_width_does_not_poison_the_arc_with_nan_points": 0.013425244999993424, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_narrow_beam_yields_fewer_points": 0.012381052000023374, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_non_finite_max_bistatic_defers_to_configured_max_range": 0.013669784000029495, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_list_of_pairs": 0.011648567999984039, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_for_negative_delay": 0.011621706999989101, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_for_none_delay": 0.011157397000005176, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_for_zero_delay": 0.011202571999987754, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_missing_rx_coords": 0.011011332999999013, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_returns_none_missing_tx_coords": 0.011033613999984482, + "tests/test_arc_builder.py::TestBuildSingleNodeArc::test_very_large_delay_no_crash": 0.01119057799998302, + "tests/test_arc_builder.py::TestEnuToLla::test_east_offset": 0.0110708849999952, + "tests/test_arc_builder.py::TestEnuToLla::test_north_offset": 0.010934880000007752, + "tests/test_arc_builder.py::TestEnuToLla::test_zero_enu_is_rx": 0.011499385000007578, + "tests/test_arc_builder.py::TestFloorTrackStillEmits::test_above_floor_track_gets_arc": 0.013572330999991777, + "tests/test_arc_builder.py::TestFloorTrackStillEmits::test_below_floor_track_emits_without_arc": 0.011901938999997697, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_expired_hold_also_restores_arc": 0.012733879999998976, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_held_position_coasts_instead_of_freezing": 0.012109347999995634, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_hold_clears_when_gate_stops_firing": 0.01304673599999262, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_hold_engages_and_records_anchor": 0.011935972999992828, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_hold_releases_after_max_hold": 0.012500360000018418, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_seen_reports_real_age": 0.012933150999984377, + "tests/test_arc_builder.py::TestGateHoldIsBounded::test_stale_track_is_not_rendered": 0.01149786300000244, + "tests/test_arc_builder.py::TestGatePreservesArc::test_clean_rms_keeps_arc_and_new_position": 0.012950265999990052, + "tests/test_arc_builder.py::TestGatePreservesArc::test_rms_gate_suppresses_arc_and_reverts_lat_lon": 0.015297273999991035, + "tests/test_arc_builder.py::TestGatePreservesArc::test_speed_gate_keeps_arc_and_reverts_lat_lon": 0.012696949000016389, + "tests/test_arc_builder.py::TestPositionJumpAnomaly::test_normal_motion_not_flagged": 0.01571342300000822, + "tests/test_arc_builder.py::TestPositionJumpAnomaly::test_teleport_not_flagged_but_observable": 0.015517106000004333, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_altitude_change_does_not_invalidate_cache": 0.014449425000009342, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_cached_equals_fresh": 0.014937758999991502, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_delay_change_rebuilds": 0.014552160999983244, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_delay_change_still_rebuilds_regardless_of_altitude": 0.015028961999988155, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_identical_inputs_build_once": 0.01458597999999256, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_jitter_within_epsilon_hits": 0.014614813999997978, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_none_delay_caches_and_hits": 0.013815504999982409, + "tests/test_arc_builder.py::TestSingleNodeArcCache::test_position_change_hits_cache": 0.013873204999995892, + "tests/test_arc_builder.py::TestTrackEntryPaths::test_drone_target_class": 0.01132532999999114, + "tests/test_arc_builder.py::TestTrackEntryPaths::test_speed_knots_aircraft": 0.011435875999993073, + "tests/test_arc_builder.py::TestTrackEntryPaths::test_track_angle_range": 0.01147051099999885, + "tests/test_arc_builder.py::TestTrackEntryPaths::test_track_has_target_class": 0.011643131000013796, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_empty_archive_dir_returns_zero_stats": 0.4566433130000007, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_empty_dirs_pruned_after_delete": 0.11279840399998875, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_file_within_retention_not_deleted": 0.10809937699998784, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_fresh_file_not_uploaded": 0.09479649200001461, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_no_upload_when_r2_disabled": 0.01678324899998529, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_old_file_is_uploaded_to_r2": 0.11587467499998638, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_old_file_uploaded_then_deleted": 0.12544508300000246, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_tracks_parquet_deleted_past_retention": 0.10667831700000363, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_tracks_parquet_uploaded_under_tracks_prefix": 0.46560355699999434, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_upload_cap_respected": 1.9738471120000014, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_uploaded_file_content_in_r2": 0.12186306599998886, + "tests/test_archive_lifecycle.py::TestArchiveLifecycleMoto::test_very_old_file_deleted_locally": 0.3955439870000106, + "tests/test_archive_lifecycle.py::TestIterArchiveFiles::test_non_dir_entries_at_each_level_are_skipped": 0.012718372000009026, + "tests/test_archive_lifecycle.py::TestIterArchiveFiles::test_oserror_during_iteration_does_not_crash": 0.012641598999991288, + "tests/test_archive_lifecycle.py::TestIterArchiveFiles::test_parquet_and_json_files_are_yielded": 0.012691353000008121, + "tests/test_archive_lifecycle.py::TestPruneEmptyDirs::test_base_dir_is_never_removed": 0.013438732000011555, + "tests/test_archive_lifecycle.py::TestPruneEmptyDirs::test_dir_with_files_is_kept": 0.012822327999998606, + "tests/test_archive_lifecycle.py::TestPruneEmptyDirs::test_empty_leaf_dir_is_removed": 0.01230992800000763, + "tests/test_archive_lifecycle.py::TestRetentionDisabled::test_old_file_deleted_when_retention_positive": 0.013474821999977848, + "tests/test_archive_lifecycle.py::TestRetentionDisabled::test_old_file_kept_when_retention_negative": 0.01359092200000589, + "tests/test_archive_lifecycle.py::TestRetentionDisabled::test_old_file_kept_when_retention_zero": 0.013682801000001632, + "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleCap::test_files_beyond_cap_are_skipped": 0.795115375999984, + "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleEmptyDir::test_nonexistent_dir_returns_zero_stats": 0.014886648000015157, + "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleOSError::test_stat_oserror_skips_file_no_error_counted": 0.0167410970000077, + "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleOSError::test_unlink_oserror_increments_errors": 0.017756069000014918, + "tests/test_archive_lifecycle.py::TestRunArchiveLifecycleOSError::test_upload_failure_increments_errors": 0.014475168000018357, + "tests/test_archive_lifecycle.py::TestUploadSentinel::test_existing_sentinel_skips_re_upload": 0.013641363000019169, + "tests/test_archive_lifecycle.py::TestUploadSentinel::test_file_without_sentinel_not_deleted": 0.01369746800001792, + "tests/test_archive_lifecycle.py::TestUploadSentinel::test_sentinel_created_on_successful_upload": 0.01352055699999255, + "tests/test_archive_lifecycle.py::TestUploadSentinel::test_sentinel_not_created_on_failed_upload": 0.013113154000009786, + "tests/test_archive_lifecycle.py::TestUploadSentinel::test_sentinel_removed_with_file": 0.013915304000008177, + "tests/test_auth.py::TestAuthDependencies::test_get_current_user_auth_disabled_returns_anonymous": 0.01329816299998754, + "tests/test_auth.py::TestAuthDependencies::test_get_current_user_invalid_token_raises_401": 0.014973234000009938, + "tests/test_auth.py::TestAuthDependencies::test_get_current_user_missing_cookie_raises_401": 0.01322781099999304, + "tests/test_auth.py::TestAuthDependencies::test_require_admin_auth_disabled_returns_anonymous": 0.012354381999998054, + "tests/test_auth.py::TestAuthDependencies::test_require_admin_non_admin_raises_403": 0.017317062000003602, + "tests/test_auth.py::TestAuthFlagDerivation::test_auth_is_enabled_without_any_provider_configured": 0.011700503999989564, + "tests/test_auth.py::TestAuthFlagDerivation::test_configured_access_beats_the_flag": 0.011808056000006673, + "tests/test_auth.py::TestAuthFlagDerivation::test_flag_alone_enables_bypass_with_no_environment_set": 0.011633198000012612, + "tests/test_auth.py::TestAuthFlagDerivation::test_flag_enables_bypass_in_production": 0.011690384000004883, + "tests/test_auth.py::TestAuthFlagDerivation::test_half_configured_access_does_not_beat_the_flag[CF_ACCESS_AUD]": 0.011961584999994557, + "tests/test_auth.py::TestAuthFlagDerivation::test_half_configured_access_does_not_beat_the_flag[CF_ACCESS_TEAM_DOMAIN]": 0.011749985999998103, + "tests/test_auth.py::TestAuthFlagDerivation::test_module_flags_come_from_the_derivation": 0.012507287000005363, + "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[dev]": 0.011396684999979811, + "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[production]": 0.011384871000018393, + "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[staging]": 0.011419566000000714, + "tests/test_auth.py::TestAuthFlagDerivation::test_no_environment_name_enables_bypass[test]": 0.011361187000005657, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[ 1]": 0.012164160999986962, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[0]": 0.014309998000001656, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[1 ]": 0.012510934000005136, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[True]": 0.011985447999990129, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[]": 0.011814125999976, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[on]": 0.011818926999993096, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[true]": 0.013212142999989851, + "tests/test_auth.py::TestAuthFlagDerivation::test_only_the_literal_one_enables_bypass[yes]": 0.011952415999999744, + "tests/test_auth.py::TestAuthFlagDerivation::test_test_env_alone_does_not_enable_bypass": 0.011383878999993158, + "tests/test_auth.py::TestJWT::test_expired_token_rejected": 0.012113517999992496, + "tests/test_auth.py::TestJWT::test_garbage_token_rejected": 0.011917629999985024, + "tests/test_auth.py::TestJWT::test_tampered_token_not_readable": 0.01188368700000808, + "tests/test_auth.py::TestJWT::test_token_contains_subject": 0.011872674999992228, + "tests/test_auth.py::TestJWT::test_token_has_expiry": 0.011674221999996348, + "tests/test_auth.py::TestJWT::test_write_and_read_token_roundtrip": 0.012955856999994353, + "tests/test_auth.py::TestNodeOwnership::test_a_new_owner_takes_the_node_without_the_last_ones_claim": 0.03653858399998455, + "tests/test_auth.py::TestNodeOwnership::test_a_node_that_never_registered_cannot_be_owned": 0.023854171000010638, + "tests/test_auth.py::TestNodeOwnership::test_assigning_the_owner_a_node_already_has_changes_nothing": 0.03125996300001077, + "tests/test_auth.py::TestNodeOwnership::test_clearing_the_owner_leaves_the_node_unclaimed": 0.03255664700000693, + "tests/test_auth.py::TestNodeOwnership::test_set_and_clear_node_owner": 0.05025902000001281, + "tests/test_auth.py::TestNodeOwnership::test_set_node_owner_updates_existing_owner": 0.0383525459999845, + "tests/test_auth.py::TestSqlitePragmas::test_engine_uses_wal_and_safety_pragmas": 0.014533898000010481, + "tests/test_auth.py::test_admin_route_refuses_anonymous_callers_without_the_flag": 4.073485729999987, + "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_a_node_that_never_registered_cannot_be_given_an_owner": 0.12658480300000008, + "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_list_node_owners_empty": 0.1242085630000247, + "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_list_node_owners_shows_owned": 0.1249900420000074, + "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_set_node_owner_invalid_uuid_returns_404": 0.12603066800001272, + "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_set_node_owner_nonexistent_user_returns_404": 0.12300415999999359, + "tests/test_auth_routes.py::TestAdminNodeOwnerRoutes::test_set_node_owner_null_clears_ownership": 0.12372712699999511, + "tests/test_auth_routes.py::TestClaimRoutes::test_a_click_binds_and_opens_a_session": 0.12407961099998488, + "tests/test_auth_routes.py::TestClaimRoutes::test_a_decline_answers_ok_and_then_stops_working": 0.12710439699999654, + "tests/test_auth_routes.py::TestClaimRoutes::test_a_link_for_a_node_claimed_meanwhile_is_409": 0.12539187099999083, + "tests/test_auth_routes.py::TestClaimRoutes::test_a_spent_link_is_400_rather_than_saying_which_of_three_it_was": 0.1235299859999941, + "tests/test_auth_routes.py::TestClaimRoutes::test_an_address_nobody_confirmed_is_not_what_a_node_was_claimed_with": 0.12259090699998865, + "tests/test_auth_routes.py::TestClaimRoutes::test_an_admin_clearing_an_owner_also_clears_the_claim": 0.12640347600000723, + "tests/test_auth_routes.py::TestClaimRoutes::test_an_admin_reassigning_a_node_clears_the_claim_that_bound_it": 0.22557894599999884, + "tests/test_auth_routes.py::TestClaimRoutes::test_an_admin_reassigning_a_node_to_its_own_owner_keeps_the_claim": 0.12375102799998672, + "tests/test_auth_routes.py::TestClaimRoutes::test_an_unknown_link_answers_exactly_as_a_spent_one": 0.12712299999999743, + "tests/test_auth_routes.py::TestClaimRoutes::test_releasing_a_node_the_caller_does_not_own_is_404": 0.12505727399999955, + "tests/test_auth_routes.py::TestClaimRoutes::test_the_owner_list_names_the_address_a_node_was_claimed_with": 0.12434595000001991, + "tests/test_auth_routes.py::TestClaimRoutes::test_the_preview_names_the_node_without_spending_the_link": 0.12334633299998643, + "tests/test_auth_routes.py::TestClaimRoutes::test_the_preview_of_an_unknown_link_is_404": 0.12472506099999237, + "tests/test_auth_routes.py::TestClaimRoutes::test_the_signed_in_user_carries_the_fleet_flag": 0.12453878499998439, + "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_a_request_without_an_assertion_is_not_redirected": 0.12328201100000058, + "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_a_service_token_is_not_redirected": 0.12453190399999414, + "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_an_access_session_is_told_to_visit_the_edge_logout": 0.12312211699999409, + "tests/test_auth_routes.py::TestLogoutEndsTheAccessSession::test_an_access_session_still_has_its_auth_cookie_cleared": 0.12487992699999495, + "tests/test_auth_routes.py::TestMeEndpoint::test_logout_clears_auth_cookie": 0.12422163900001237, + "tests/test_auth_routes.py::TestMeEndpoint::test_logout_returns_ok": 0.12321368000002053, + "tests/test_auth_routes.py::TestMeEndpoint::test_me_reports_the_access_identity_rather_than_the_anonymous_admin": 0.12577767099999448, + "tests/test_auth_routes.py::TestMeEndpoint::test_me_returns_anonymous_admin_in_test_mode": 0.12518465600000184, + "tests/test_auth_routes.py::TestMeEndpoint::test_me_says_there_is_no_fleet_when_the_flag_is_unset": 0.12383339600000909, + "tests/test_auth_routes.py::TestMeEndpoint::test_me_says_whether_this_server_runs_a_fleet": 0.1274691309999838, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_a_body_without_private_is_rejected": 0.12546496200002366, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_clearing_a_node_registered_public_makes_it_public_again": 0.125135800999999, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_clearing_privacy_on_a_node_you_do_not_own_is_404": 0.12529593899999725, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_clearing_returns_the_node_to_its_registration_choice": 0.12440063799999734, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_privacy_on_a_node_you_do_not_own_is_404": 0.12646569099999283, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_private_returns_the_override_state": 0.1252643409999905, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_private_takes_effect_without_waiting_for_the_ttl": 0.12454768599999966, + "tests/test_auth_routes.py::TestMyNodeLocationPrivacy::test_setting_public_overrides_a_private_registration": 0.12574902699999768, + "tests/test_auth_routes.py::TestMyNodes::test_an_owned_node_carries_the_ref_the_public_surfaces_key_on": 0.1270740440000111, + "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_empty_when_no_ownership": 0.12469198700000561, + "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_entry_carries_position_status_for_a_private_node": 0.12635220500000344, + "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_entry_has_expected_fields": 0.12637850799998773, + "tests/test_auth_routes.py::TestMyNodes::test_my_nodes_lists_owned_node": 0.12595641800001545, + "tests/test_auth_routes.py::TestMyNodesCarriesLocationPrivacy::test_a_node_registered_public_reads_public_from_its_registration": 0.1248979930000047, + "tests/test_auth_routes.py::TestMyNodesCarriesLocationPrivacy::test_a_registered_node_names_its_registration": 0.1256380510000099, + "tests/test_auth_routes.py::TestMyNodesCarriesLocationPrivacy::test_an_override_outranks_it_and_says_so": 0.12365697300000988, + "tests/test_backend_coverage_gate.py::test_a_deploy_waits_on_the_threshold_and_not_only_on_the_tests": 0.015290022000002068, + "tests/test_backend_coverage_gate.py::test_a_shards_data_file_survives_the_artifact_round_trip": 0.012280908999997564, + "tests/test_backend_coverage_gate.py::test_a_tmp_path_fixture_is_omitted_from_the_report": 0.01574517600001002, + "tests/test_backend_coverage_gate.py::test_addopts_still_enforces_the_threshold_for_a_local_run": 0.01627406699999767, + "tests/test_backend_coverage_gate.py::test_every_shard_that_runs_is_a_shard_the_combine_job_waits_for": 0.012294294999989575, + "tests/test_backend_coverage_gate.py::test_the_combine_job_enforces_the_same_threshold_addopts_names": 0.013859570000008148, + "tests/test_backend_coverage_gate.py::test_the_combine_job_reads_with_the_coverage_the_shards_wrote_with": 0.038084488999984956, + "tests/test_backend_coverage_gate.py::test_the_shards_do_not_apply_the_threshold_to_their_own_third": 0.07018131899999958, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_a_null_receiver_stays_null": 0.012541757000022358, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_each_row_uses_its_own_nodes_offset": 0.012721697000003473, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_every_other_column_is_untouched": 0.015169365999994966, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_it_lands_exactly_where_the_live_surfaces_publish": 0.014872651000004566, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_input_table_is_not_stamped": 0.01252435699998955, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_receiver_moves_into_the_donut": 0.01547136300000318, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_result_is_stamped_published": 0.012837833999995496, + "tests/test_backfill_archive_fuzz.py::TestFuzzRxColumns::test_the_transmitter_stays_true": 0.014438789999985602, + "tests/test_backfill_archive_fuzz.py::TestNeedsFuzzing::test_a_stamped_file_does_not": 0.011805598999998779, + "tests/test_backfill_archive_fuzz.py::TestNeedsFuzzing::test_an_unstamped_file_needs_it": 0.012437551999994412, + "tests/test_backfill_archive_fuzz.py::TestNeedsFuzzing::test_the_timestamp_guard_skips_post_fuzz_files": 0.011948947999997017, + "tests/test_backfill_archive_fuzz.py::TestRunRefusals::test_it_refuses_when_fuzzing_is_off": 0.012411341999992942, + "tests/test_backfill_archive_fuzz.py::TestRunRefusals::test_it_refuses_without_an_explicit_salt": 0.012310916999979327, + "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_a_file_written_by_the_writer_is_never_touched": 0.014545866000005958, + "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_a_pre_fuzz_file_is_rewritten": 0.06825918300000922, + "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_a_second_pass_is_a_no_op": 0.019189858999993703, + "tests/test_backfill_archive_fuzz.py::TestTransformParquetBytes::test_force_rewrites_a_stamped_file": 0.015212417000000755, + "tests/test_background_tasks.py::TestAnalyticsRefreshPacing::test_a_cycle_longer_than_the_interval_still_leaves_a_gap": 0.012560595000010721, + "tests/test_background_tasks.py::TestAnalyticsRefreshPacing::test_a_failed_cycle_waits_the_whole_interval": 0.013691605000005325, + "tests/test_background_tasks.py::TestAnalyticsRefreshPacing::test_the_sleep_absorbs_the_cycle_cost": 0.014743577000004393, + "tests/test_background_tasks.py::TestBroadcastAircraft::test_updates_state": 0.015335597999992956, + "tests/test_background_tasks.py::TestRealOnlyDict::test_empty_data": 0.014032817000000364, + "tests/test_background_tasks.py::TestRealOnlyDict::test_filters_synthetic_nodes": 0.012029397999981484, + "tests/test_background_tasks.py::TestRealOnlyDict::test_includes_multinode_with_real_contributor": 0.01283256300000346, + "tests/test_background_tasks.py::TestTaskTimestamps::test_bump_task_error_is_atomic_under_threads": 0.019807072999995512, + "tests/test_background_tasks.py::TestTaskTimestamps::test_task_error_counts": 0.013965900000016518, + "tests/test_background_tasks.py::TestTaskTimestamps::test_task_last_success_updated": 0.014279156000014837, + "tests/test_blah2_poller.py::test_a_blah2_frame_becomes_a_v1_wire_frame": 0.012189419999984352, + "tests/test_blah2_poller.py::test_a_blocked_node_is_not_a_target": 0.02920864300000403, + "tests/test_blah2_poller.py::test_a_cancel_that_httpx_absorbs_still_stops_the_radar": 0.060355029999996646, + "tests/test_blah2_poller.py::test_a_configuration_gone_by_the_re_probe_is_logged_once": 0.6163153699999953, + "tests/test_blah2_poller.py::test_a_configuration_that_cannot_be_fetched_is_a_failed_poll": 0.23839062200001138, + "tests/test_blah2_poller.py::test_a_configuration_that_is_no_longer_stock_blah2_files_nothing[config0-blah2_arm]": 0.25211342499997613, + "tests/test_blah2_poller.py::test_a_configuration_that_is_no_longer_stock_blah2_files_nothing[config1-not_blah2]": 0.24214607899999407, + "tests/test_blah2_poller.py::test_a_configuration_that_is_no_longer_stock_blah2_files_nothing[config2-example_config]": 0.2437396050000018, + "tests/test_blah2_poller.py::test_a_configuration_without_fs_or_cpi_keeps_the_values_held": 0.34211490900000285, + "tests/test_blah2_poller.py::test_a_credential_that_cannot_be_decrypted_is_not_polled_without_it": 0.028290598999987537, + "tests/test_blah2_poller.py::test_a_declaration_the_server_cannot_hold_files_nothing[change0]": 0.24596316599999568, + "tests/test_blah2_poller.py::test_a_declaration_the_server_cannot_hold_files_nothing[change1]": 0.25719234100000676, + "tests/test_blah2_poller.py::test_a_failed_re_probe_after_a_move_keeps_the_radar_streaming": 0.08185886600000458, + "tests/test_blah2_poller.py::test_a_failed_re_probe_files_nothing_changes_nothing_and_is_retried": 0.34446465599999954, + "tests/test_blah2_poller.py::test_a_filed_frame_is_archived_as_polled_under_its_epoch": 0.07739448899999957, + "tests/test_blah2_poller.py::test_a_live_radar_is_streaming": 0.08007010999997988, + "tests/test_blah2_poller.py::test_a_moved_site_starts_a_new_epoch_on_probation_with_the_radar_s_geometry": 0.15215757599999336, + "tests/test_blah2_poller.py::test_a_network_move[198.51.100.7-current0-True]": 0.019551465999981588, + "tests/test_blah2_poller.py::test_a_network_move[198.51.100.7-current1-False]": 0.016319999000003804, + "tests/test_blah2_poller.py::test_a_network_move[198.51.100.7-current2-False]": 0.014281836000023418, + "tests/test_blah2_poller.py::test_a_network_move[198.51.100.7-current6-False]": 0.014904283999982226, + "tests/test_blah2_poller.py::test_a_network_move[2001:db8:1::7-current3-False]": 0.014556700999989403, + "tests/test_blah2_poller.py::test_a_network_move[2001:db8::7-current4-True]": 0.014689501000006544, + "tests/test_blah2_poller.py::test_a_network_move[2001:db8::7-current5-False]": 0.015411925999998743, + "tests/test_blah2_poller.py::test_a_network_move[None-current7-False]": 0.014615722000002052, + "tests/test_blah2_poller.py::test_a_network_move[not an address-current8-False]": 0.01452174599999978, + "tests/test_blah2_poller.py::test_a_new_epoch_is_committed_and_the_caches_expired_before_the_poller_is_woken": 0.13441647499999476, + "tests/test_blah2_poller.py::test_a_node_missing_from_the_registries_is_registered_before_its_frame": 0.07102171300000748, + "tests/test_blah2_poller.py::test_a_node_the_pipeline_will_not_take_has_its_frames_dropped": 0.06897326400002157, + "tests/test_blah2_poller.py::test_a_radar_clock_beyond_the_limit_files_nothing_and_says_so": 0.23813782000000572, + "tests/test_blah2_poller.py::test_a_radar_stopped_mid_query_leaves_the_registry_writable": 0.054830729999991945, + "tests/test_blah2_poller.py::test_a_radar_that_keeps_failing_is_unreachable": 0.27675684899999453, + "tests/test_blah2_poller.py::test_a_radar_that_recovers_streams_again": 0.3553132719999894, + "tests/test_blah2_poller.py::test_a_radar_with_no_detection_yet_is_stalled_not_unreachable": 0.2615960290000032, + "tests/test_blah2_poller.py::test_a_radar_without_an_active_configuration_files_nothing": 0.6052778879999892, + "tests/test_blah2_poller.py::test_a_re_probe_counts_against_the_requests_in_flight": 0.06132691200001261, + "tests/test_blah2_poller.py::test_a_recorded_move_is_not_probed_again": 0.8971891740000046, + "tests/test_blah2_poller.py::test_a_renamed_site_starts_a_new_epoch_without_a_new_version": 0.13611720000000105, + "tests/test_blah2_poller.py::test_a_repeated_frame_is_filed_once": 0.12285366300001499, + "tests/test_blah2_poller.py::test_a_task_whose_epoch_has_moved_on_ends_without_polling": 0.051338733000008574, + "tests/test_blah2_poller.py::test_a_write_for_a_superseded_epoch_changes_nothing": 0.03465435600000433, + "tests/test_blah2_poller.py::test_an_active_probed_radar_is_a_target": 0.03037394999996934, + "tests/test_blah2_poller.py::test_an_address_in_another_network_is_re_probed_and_keeps_its_trust": 0.15365350000000433, + "tests/test_blah2_poller.py::test_an_address_in_the_same_network_or_family_is_the_same_epoch[127.0.200.9]": 0.33996966200001566, + "tests/test_blah2_poller.py::test_an_address_in_the_same_network_or_family_is_the_same_epoch[2001:db8::7]": 0.35633290800001305, + "tests/test_blah2_poller.py::test_an_address_in_the_same_network_or_family_is_the_same_epoch[None]": 0.3416323879999936, + "tests/test_blah2_poller.py::test_an_address_the_policy_refuses_is_never_contacted": 0.14044545100001926, + "tests/test_blah2_poller.py::test_an_answer_brings_a_radar_marked_offline_back_online": 0.06960326699999086, + "tests/test_blah2_poller.py::test_an_answer_refreshes_the_nodes_heartbeat": 0.0732444399999963, + "tests/test_blah2_poller.py::test_an_empty_frame_is_a_valid_wire_frame": 0.012836352000007878, + "tests/test_blah2_poller.py::test_an_endpoint_changed_since_its_probe_is_not_a_target": 0.032457967000013355, + "tests/test_blah2_poller.py::test_an_epoch_moved_on_before_a_new_version_keeps_the_other_writer_s": 0.06815162299999145, + "tests/test_blah2_poller.py::test_an_epoch_moved_on_during_the_re_probe_keeps_the_other_writer_s": 0.14093065100000501, + "tests/test_blah2_poller.py::test_an_idle_radar_serving_its_last_frame_is_stalled": 0.29071947300001, + "tests/test_blah2_poller.py::test_an_unreachable_radar_backs_off": 0.015598002000004385, + "tests/test_blah2_poller.py::test_credentials_are_presented": 0.05865095699999756, + "tests/test_blah2_poller.py::test_empty_frames_are_filed": 0.08183950400000128, + "tests/test_blah2_poller.py::test_fs_or_cpi_alone_writes_a_version_without_a_new_epoch[change0-fs_hz-2400000.0]": 0.06610417800000334, + "tests/test_blah2_poller.py::test_fs_or_cpi_alone_writes_a_version_without_a_new_epoch[change1-cpi_s-0.5]": 0.06408721299999343, + "tests/test_blah2_poller.py::test_health_reports_whether_this_deployment_polls": 0.12534914399999764, + "tests/test_blah2_poller.py::test_more_detections_than_a_v1_frame_holds_is_no_frame": 0.013097692000016536, + "tests/test_blah2_poller.py::test_new_frames_are_queued_under_the_node_and_mirrored": 0.12520943900000248, + "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[-False]": 0.014463918000004128, + "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[0-False]": 0.014841846999999575, + "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[1-True]": 0.01472345399999142, + "tests/test_blah2_poller.py::test_polling_is_on_only_for_exactly_1[true-False]": 0.014382874999981254, + "tests/test_blah2_poller.py::test_stopping_the_poller_stops_every_radar": 0.07073751299998321, + "tests/test_blah2_poller.py::test_stopping_the_poller_while_it_stops_a_radar[CancelledError]": 0.03960026200000755, + "tests/test_blah2_poller.py::test_stopping_the_poller_while_it_stops_a_radar[RuntimeError]": 0.04347867700001018, + "tests/test_blah2_poller.py::test_the_address_is_vetted_again_every_session": 0.6044515349999955, + "tests/test_blah2_poller.py::test_the_configuration_is_read_every_session": 0.6127304210000091, + "tests/test_blah2_poller.py::test_the_poller_follows_the_registry": 0.2108579730000173, + "tests/test_blah2_poller.py::test_the_poller_hands_a_new_epoch_s_geometry_to_the_pipeline": 0.6223113500000039, + "tests/test_blah2_poller.py::test_the_registry_is_re_read_without_being_asked": 0.1449612720000033, + "tests/test_blah2_poller.py::test_the_running_app_polls_a_radar_into_its_frame_workers": 0.5830933890000125, + "tests/test_blah2_poller.py::test_the_task_polls_where_polling_is_on": 0.05988433499999246, + "tests/test_blah2_poller.py::test_the_task_returns_at_once_where_polling_is_off": 0.014710138999987521, + "tests/test_blah2_poller.py::test_the_undefined_prefix_is_stripped": 0.07203648500001236, + "tests/test_blah2_probe.py::test_a_config_that_is_not_json_is_not_blah2": 0.03290810000000022, + "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[-1]": 0.012163604000008377, + "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[0.75]": 0.012061653000003503, + "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[0]": 0.012106896999995342, + "tests/test_blah2_probe.py::test_a_cpi_that_is_not_a_positive_number_is_left_out[None]": 0.012091847999997185, + "tests/test_blah2_probe.py::test_a_detection_frame_parses": 0.012210622000011995, + "tests/test_blah2_probe.py::test_a_frame_that_does_not_advance_is_stalled": 0.08760888300000147, + "tests/test_blah2_probe.py::test_a_live_stock_blah2_passes": 0.08950779500000294, + "tests/test_blah2_probe.py::test_a_missing_config_is_a_bad_response": 0.032277888999999504, + "tests/test_blah2_probe.py::test_a_parsed_config_carries_its_fingerprint": 0.01466008700000998, + "tests/test_blah2_probe.py::test_a_radar_that_has_not_detected_yet_is_refused": 0.03713536900001202, + "tests/test_blah2_probe.py::test_a_raw_config_body_is_read_as_parse_config_reads_it": 0.014467787999990378, + "tests/test_blah2_probe.py::test_a_site_name_is_optional": 0.013710293999992018, + "tests/test_blah2_probe.py::test_a_skewed_radar_clock_is_refused_with_the_offset[-60-behind]": 0.08776682100001665, + "tests/test_blah2_probe.py::test_a_skewed_radar_clock_is_refused_with_the_offset[60-ahead]": 0.09210360299998399, + "tests/test_blah2_probe.py::test_a_small_clock_offset_is_accepted": 0.08929870400000084, + "tests/test_blah2_probe.py::test_an_adelaide_receiver_with_its_own_transmitter_is_accepted": 0.012004598000004307, + "tests/test_blah2_probe.py::test_an_empty_body_means_no_detection_yet[ \\n]": 0.012622573000015791, + "tests/test_blah2_probe.py::test_an_empty_body_means_no_detection_yet[]": 0.01302562000000762, + "tests/test_blah2_probe.py::test_an_empty_frame_is_valid": 0.012084021999996253, + "tests/test_blah2_probe.py::test_an_oversized_detection_is_refused": 0.03674310499999933, + "tests/test_blah2_probe.py::test_blah2_arm_is_refused_after_config_alone": 0.03298964399998283, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[hello]": 0.01299664600000483, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]": 0.023409764999996696, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[[]]": 0.013280358000002934, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[undefined]": 0.013245172000011962, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[undefinedundefined{\"timestamp\": 1700000000000, \"delay\": [12.5, 12.5], \"doppler\": [-40.0, -40.0], \"snr\": [14.2, 14.2]}]": 0.013291259000013156, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"delay\": [], \"doppler\": [], \"snr\": []}]": 0.013404731000008496, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": \"1700000000000\", \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.01419017399999234, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": -1, \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.012911616000010895, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": 1, \"doppler\": 2, \"snr\": 3}]": 0.013104808999997886, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [\"1\"], \"doppler\": [2], \"snr\": [3]}]": 0.012753798999980859, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [1.0], \"doppler\": [], \"snr\": []}]": 0.013057079999981624, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [NaN], \"doppler\": [2], \"snr\": [3]}]": 0.012935631000019043, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000, \"delay\": [], \"doppler\": []}]": 0.013255169999993655, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": 1700000000000.5, \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.013025741000006974, + "tests/test_blah2_probe.py::test_bodies_that_are_not_a_blah2_frame_are_refused[{\"timestamp\": true, \"delay\": [], \"doppler\": [], \"snr\": []}]": 0.01335696099998529, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[blah2]": 0.0133820610000015, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config0]": 0.014423232000012831, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config10]": 0.01435481300001129, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config11]": 0.014292976999996654, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config12]": 0.014182741000027477, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config13]": 0.014451344999997673, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config14]": 0.014234897999997997, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config15]": 0.0142740720000063, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config16]": 0.014319888000002834, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config17]": 0.014345796000000632, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config18]": 0.014272769000001517, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config19]": 0.014629009000003634, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config2]": 0.013804960000015853, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config3]": 0.01466308000001959, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config4]": 0.014178712000017413, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config5]": 0.014312183000001255, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config6]": 0.014126265000001581, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config7]": 0.014234848000000966, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config8]": 0.014345458000008193, + "tests/test_blah2_probe.py::test_configs_that_are_not_blah2_are_refused[config9]": 0.014523599999975545, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path0-10.5001]": 0.012286844999991331, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path1--30.2501]": 0.0130449329999891, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path2-13]": 0.012906700000002047, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path3-Elsewhere]": 0.018751489999985438, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path4-10.7501]": 0.015024168999985932, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path5--30.5001]": 0.015433206000025734, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path6-301]": 0.01566491099998757, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path7-Other tower]": 0.016188331999998695, + "tests/test_blah2_probe.py::test_each_stable_key_moves_the_fingerprint[path8-204640001]": 0.016092151999998805, + "tests/test_blah2_probe.py::test_fs_is_optional": 0.013686880999998152, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path0-3000000]": 0.011663466000001677, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path1-HackRF]": 0.011755938999996829, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path2-1.5]": 0.013497625999988827, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path3-3100]": 0.012106746999990037, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path4-False]": 0.012030233999993811, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path5-False]": 0.01251420100000189, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path6-extra]": 0.012893792999989273, + "tests/test_blah2_probe.py::test_irrelevant_keys_leave_the_fingerprint_alone[path7-value7]": 0.01226769800000227, + "tests/test_blah2_probe.py::test_stock_config_parses": 0.014232842999987838, + "tests/test_blah2_probe.py::test_the_blah2_arm_shape_is_sent_to_the_node_route": 0.014458786999995255, + "tests/test_blah2_probe.py::test_the_default_policy_keeps_the_probe_off_loopback": 0.01665476400000898, + "tests/test_blah2_probe.py::test_the_example_config_is_refused_after_config_alone": 0.035026833999978635, + "tests/test_blah2_probe.py::test_the_example_matches_however_the_numbers_are_spelled": 0.012142350999994278, + "tests/test_blah2_probe.py::test_the_example_matches_on_position_whatever_the_names": 0.011789831999990952, + "tests/test_blah2_probe.py::test_the_fingerprint_hashes_a_canonical_form": 0.0115933840000082, + "tests/test_blah2_probe.py::test_the_fingerprint_ignores_number_spelling": 0.011730231000015579, + "tests/test_blah2_probe.py::test_the_fingerprint_refuses_a_config_that_is_not_blah2": 0.015589860000005729, + "tests/test_blah2_probe.py::test_the_fingerprint_treats_negative_zero_as_zero": 0.012996885999996266, + "tests/test_blah2_probe.py::test_the_first_frame_after_an_api_restart_loses_its_undefined_prefix": 0.012872893999983148, + "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[0.5-1.75]": 0.013471836999997322, + "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[1.5-3.0]": 0.01206873499999972, + "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[2.5-5.0]": 0.012040882999997393, + "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[60.0-5.0]": 0.011975430999996206, + "tests/test_blah2_probe.py::test_the_gap_between_reads_spans_two_cpis_within_bounds[None-1.75]": 0.012918608000020981, + "tests/test_blah2_probe.py::test_the_probe_requests_only_config_and_detection": 0.08748224899999002, + "tests/test_blah2_probe.py::test_the_probe_waits_by_the_radars_own_cpi": 0.08742158000001155, + "tests/test_blah2_probe.py::test_the_shipped_adelaide_example_is_refused": 0.014353981999988719, + "tests/test_blah2_probe.py::test_the_undefined_prefix_quirk_does_not_fail_the_probe": 0.08869986999999924, + "tests/test_blah2_probe.py::test_the_whole_probe_is_bounded": 0.31736020499999995, + "tests/test_calibration.py::TestAgeGate::test_a_fix_at_the_limit_is_recorded": 0.01502893600000732, + "tests/test_calibration.py::TestAgeGate::test_a_fresh_fix_is_recorded": 0.015069973000009895, + "tests/test_calibration.py::TestAgeGate::test_a_stale_fix_is_refused": 0.015068068999994466, + "tests/test_calibration.py::TestAgeGate::test_the_limit_is_the_solvers_stated_one": 0.014848847999999748, + "tests/test_calibration.py::TestBothCallSitesUseIt::test_frame_path_routes_through_the_helper": 0.014545229000006543, + "tests/test_calibration.py::TestBothCallSitesUseIt::test_solver_does_not_calibrate_at_all": 0.014547230999994554, + "tests/test_calibration.py::TestClaimLaneRecorder::test_a_fresh_claim_records_one_point": 0.014047345999998129, + "tests/test_calibration.py::TestClaimLaneRecorder::test_an_unusable_position_or_node_records_nothing": 0.014748148999998989, + "tests/test_calibration.py::TestClaimLaneRecorder::test_the_age_rule_still_applies": 0.014786731999990366, + "tests/test_calibration.py::TestClaimLaneRecorder::test_the_point_is_stamped_with_detection_ts": 0.014898350999999366, + "tests/test_calibration.py::TestClaimLaneRecorder::test_there_is_no_skew_rule": 0.014846043999995118, + "tests/test_calibration.py::TestFanOut::test_an_empty_node_list_records_nothing": 0.01467750500000875, + "tests/test_calibration.py::TestFanOut::test_every_contributing_node_gets_the_point": 0.014727029999988872, + "tests/test_calibration.py::TestFixDetectionSkewGate::test_a_recorded_point_is_stamped_with_detection_ts_not_fix_ts": 0.013359485000009386, + "tests/test_calibration.py::TestFixDetectionSkewGate::test_a_skew_at_the_limit_is_recorded": 0.014732699000006733, + "tests/test_calibration.py::TestFixDetectionSkewGate::test_a_skew_past_the_limit_records_nothing": 0.014738960999991946, + "tests/test_calibration.py::TestFixDetectionSkewGate::test_skew_is_symmetric": 0.014662409000010257, + "tests/test_calibration.py::TestPositionGuard::test_a_missing_position_is_refused": 0.014814492999988715, + "tests/test_calibration.py::TestPositionGuard::test_blank_node_ids_are_skipped": 0.013967653999984009, + "tests/test_calibration.py::TestPositionGuard::test_null_island_is_refused": 0.014786850000007234, + "tests/test_calibration_from_claims.py::TestBeyondTheCoveragePrior::test_a_fix_past_the_prior_still_records": 0.015044185000007815, + "tests/test_calibration_from_claims.py::TestExclusivity::test_a_rival_inside_the_claim_gate_blocks_the_point": 0.014100735000013742, + "tests/test_calibration_from_claims.py::TestExclusivity::test_a_rival_outside_the_claim_gate_does_not": 0.013735519999997337, + "tests/test_calibration_from_claims.py::TestExclusivity::test_dark_projection_contention_blocks_the_point": 0.013665228999983015, + "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_hold_whose_fix_aged_past_the_claim_cap_records_nothing": 0.014208135999993488, + "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_refreshed_hold_is_judged_on_the_fresh_fixs_residual": 0.01350284299999771, + "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_refreshed_hold_records_like_a_path_2_claim": 0.014389426000008143, + "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_a_refreshed_holds_registry_entry_carries_no_calibration_keys": 0.013498874999996247, + "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_follow_claims_record_nothing": 0.013221254999990606, + "tests/test_calibration_from_claims.py::TestHoldAndFollow::test_hold_claims_record_nothing_once_the_transponder_stops": 0.013082896000000233, + "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_a_gap_inside_the_window_does_not_reset": 0.01370190699999796, + "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_keeps_recording_once_mature": 0.014697224000002507, + "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_records_on_the_third_claim_and_not_before": 0.015286909000010951, + "tests/test_calibration_from_claims.py::TestMaturityAndTheCleanCase::test_streak_resets_after_a_long_gap": 0.014683276999988948, + "tests/test_calibration_from_claims.py::TestNodeTags::test_a_cached_competitor_inside_the_gate_blocks_a_tag": 0.015180729000007886, + "tests/test_calibration_from_claims.py::TestNodeTags::test_a_clean_tag_records": 0.013612611999988644, + "tests/test_calibration_from_claims.py::TestNodeTags::test_a_path1_hex_is_never_assigned_by_path2": 0.014823299999989104, + "tests/test_calibration_from_claims.py::TestRecordedPosition::test_the_point_is_the_dead_reckoned_position": 0.016789828000000284, + "tests/test_calibration_from_claims.py::TestResidualAndFreshness::test_doppler_residual_beyond_the_calibration_gate": 0.01408265999998548, + "tests/test_calibration_from_claims.py::TestResidualAndFreshness::test_residual_inside_the_claim_gate_but_beyond_the_calibration_gate": 0.01389836599999228, + "tests/test_calibration_from_claims.py::TestResidualAndFreshness::test_stale_fix_inside_the_claim_age_cap": 0.013774225000005913, + "tests/test_claim_link_delivery.py::test_nothing_is_sent_without_a_host_to_address_the_link_to": 0.012997596000019485, + "tests/test_claim_link_delivery.py::test_the_link_follows_force_https": 0.012618054000000711, + "tests/test_claim_link_delivery.py::test_the_link_lands_on_the_consoles_claim_page": 0.014865048000004322, + "tests/test_claim_routes.py::test_a_claim_row_survives_a_re_registration": 0.07847001800000442, + "tests/test_claim_routes.py::test_a_click_landing_on_the_clickers_own_binding_succeeds": 0.0959525499999927, + "tests/test_claim_routes.py::test_a_click_refused_for_a_taken_node_does_not_spend_the_link": 0.028926170000005413, + "tests/test_claim_routes.py::test_a_decline_leaves_a_link_minted_since_alone": 0.031116534999981127, + "tests/test_claim_routes.py::test_a_decline_leaves_the_address_on_file": 0.024979948999984458, + "tests/test_claim_routes.py::test_a_decline_returns_the_node_to_unowned": 0.02652408299998399, + "tests/test_claim_routes.py::test_a_declined_link_cannot_then_be_redeemed": 0.0251918169999783, + "tests/test_claim_routes.py::test_a_link_for_a_node_claimed_meanwhile_is_refused": 0.026783991999991485, + "tests/test_claim_routes.py::test_a_link_for_an_address_the_node_has_since_replaced_is_refused": 0.07551698700001452, + "tests/test_claim_routes.py::test_a_link_still_in_a_mailbox_cannot_claim_a_node_whose_claim_was_cleared": 0.07553359399999238, + "tests/test_claim_routes.py::test_a_refused_click_leaves_the_address_unconfirmed": 0.025601793999996403, + "tests/test_claim_routes.py::test_a_release_by_somebody_who_does_not_own_it_is_refused": 0.08213823700000944, + "tests/test_claim_routes.py::test_a_release_clears_the_binding_and_the_address": 0.08145924400000126, + "tests/test_claim_routes.py::test_a_released_node_can_be_claimed_again": 0.1436363990000018, + "tests/test_claim_routes.py::test_a_second_click_on_the_same_link_does_nothing": 0.07745425000000239, + "tests/test_claim_routes.py::test_a_second_node_joins_the_account_the_address_already_has": 0.0913229810000189, + "tests/test_claim_routes.py::test_a_sign_in_link_cannot_claim_a_node": 0.020276656000007165, + "tests/test_claim_routes.py::test_an_empty_token_is_refused": 0.01512016700000629, + "tests/test_claim_routes.py::test_an_expired_link_is_refused": 0.024356799999992518, + "tests/test_claim_routes.py::test_an_unknown_link_is_refused": 0.01597848600000873, + "tests/test_claim_routes.py::test_declining_an_unknown_link_is_false": 0.01575410600000282, + "tests/test_claim_routes.py::test_one_click_binds_the_node": 0.07798909100000628, + "tests/test_claim_routes.py::test_one_click_confirms_the_address": 0.0764987240000039, + "tests/test_claim_routes.py::test_one_click_creates_the_account_when_the_address_is_new": 0.07688842999999679, + "tests/test_claim_routes.py::test_one_click_spends_the_link": 0.07848125800001071, + "tests/test_claim_routes.py::test_only_the_hash_of_a_token_is_ever_stored": 0.02386919200000648, + "tests/test_claim_routes.py::test_releasing_an_unowned_node_is_false": 0.014181945999993673, + "tests/test_claim_routes.py::test_the_claim_row_and_the_node_row_agree_on_the_node": 0.022413325999991685, + "tests/test_claim_routes.py::test_the_two_expiries_agree": 0.021281981999990762, + "tests/test_classify_migration_gap.py::test_a_destructive_gap_names_the_downgrade_target": 0.26144306300000153, + "tests/test_classify_migration_gap.py::test_an_additive_gap_is_safe_to_serve": 0.2552852949999931, + "tests/test_classify_migration_gap.py::test_an_undeclared_revision_is_graded_destructive": 0.2620839679999989, + "tests/test_classify_migration_gap.py::test_an_unknown_ref_reports_cleanly_rather_than_raising": 0.2487695170000137, + "tests/test_classify_migration_gap.py::test_no_gap_when_the_restored_tree_ships_every_revision": 0.25216717200000005, + "tests/test_classify_migration_gap.py::test_restoring_a_pre_alembic_tree_puts_the_whole_history_in_the_gap": 0.25752856000001145, + "tests/test_custody.py::TestCanonicalize::test_different_key_order_same_output": 0.012577038000003427, + "tests/test_custody.py::TestCanonicalize::test_no_whitespace": 0.011908142000010002, + "tests/test_custody.py::TestCanonicalize::test_sorted_keys": 0.011839543999997204, + "tests/test_custody.py::TestChainRecovery::test_recovered_prev_hash": 0.016242161000008082, + "tests/test_custody.py::TestCrossKeyVerification::test_wrong_key_rejects": 0.016207291000000623, + "tests/test_custody.py::TestEdgeCases::test_close_hour_no_detections_returns_none": 0.015322476000008578, + "tests/test_custody.py::TestEdgeCases::test_signed_packet_with_adsb": 0.01536785200001134, + "tests/test_custody.py::TestHashChainBuilder::test_add_detections": 0.012487488999994412, + "tests/test_custody.py::TestHashChainBuilder::test_chain_links": 0.014915462000004709, + "tests/test_custody.py::TestHashChainBuilder::test_chain_log_persisted": 0.013391774999988115, + "tests/test_custody.py::TestHashChainBuilder::test_close_hour": 0.013009158000002685, + "tests/test_custody.py::TestHashChainBuilder::test_initial_prev_hash": 0.012844237999985353, + "tests/test_custody.py::TestHashChainBuilder::test_no_pending": 0.012528375999991681, + "tests/test_custody.py::TestHashChainVerifier::test_first_entry_valid": 0.014841364999995221, + "tests/test_custody.py::TestHashChainVerifier::test_full_chain_valid": 0.01700600400000951, + "tests/test_custody.py::TestHashChainVerifier::test_second_entry_valid": 0.01618686599999819, + "tests/test_custody.py::TestHashChainVerifier::test_wrong_prev_hash_rejected": 0.016175235999995152, + "tests/test_custody.py::TestModelsSerialization::test_hash_chain_entry_round_trip": 0.0173461709999998, + "tests/test_custody.py::TestModelsSerialization::test_node_identity_round_trip": 0.015850356999990822, + "tests/test_custody.py::TestModelsSerialization::test_signed_packet_round_trip": 0.016891117000014333, + "tests/test_custody.py::TestPacketSigner::test_delay_matches": 0.015993434999998613, + "tests/test_custody.py::TestPacketSigner::test_doppler_matches": 0.015642358000008016, + "tests/test_custody.py::TestPacketSigner::test_has_signature": 0.01498458200001096, + "tests/test_custody.py::TestPacketSigner::test_node_id": 0.014599478999997473, + "tests/test_custody.py::TestPacketSigner::test_payload_hash_is_64_hex": 0.017300564999999324, + "tests/test_custody.py::TestPacketSigner::test_signing_mode": 0.01650875200000712, + "tests/test_custody.py::TestPacketSigner::test_snr_matches": 0.015265508999988242, + "tests/test_custody.py::TestPacketSigner::test_timestamp": 0.014274002000007613, + "tests/test_custody.py::TestPacketVerifier::test_accepts_valid": 0.013081834999994157, + "tests/test_custody.py::TestPacketVerifier::test_rejects_tampered": 0.013024116000011077, + "tests/test_custody.py::TestPacketVerifier::test_rejects_unknown_node": 0.01272743999999193, + "tests/test_custody.py::TestSignatureVerifier::test_registered_nodes": 0.01229750299999921, + "tests/test_custody.py::TestSignatureVerifier::test_reject_wrong_hash": 0.01262977599999715, + "tests/test_custody.py::TestSignatureVerifier::test_verify_valid_packet": 0.01278719099998682, + "tests/test_custody.py::TestSigningVerification::test_hash_sha256_is_deterministic": 0.013020641000011324, + "tests/test_custody.py::TestSigningVerification::test_hash_sha256_returns_64_hex": 0.012815464000013321, + "tests/test_custody.py::TestSigningVerification::test_sign_hex_returns_hex": 0.012513299000005418, + "tests/test_custody.py::TestSigningVerification::test_sign_returns_bytes": 0.022347874000004708, + "tests/test_custody.py::TestSigningVerification::test_signature_verifies": 0.012890775999991888, + "tests/test_custody.py::TestSigningVerification::test_tampered_data_fails": 0.012770779999996762, + "tests/test_custody.py::TestSoftwareCryptoBackend::test_fingerprint_is_16_hex": 0.014609318999987408, + "tests/test_custody.py::TestSoftwareCryptoBackend::test_key_file_created": 0.014943153999993797, + "tests/test_custody.py::TestSoftwareCryptoBackend::test_public_key_pem_format": 0.015142638000028796, + "tests/test_custody.py::TestSoftwareCryptoBackend::test_reloaded_key_matches": 0.015060063999996487, + "tests/test_custody.py::TestSoftwareCryptoBackend::test_serial_starts_with_syn": 0.014704436999991799, + "tests/test_custody.py::TestSoftwareCryptoBackend::test_signing_mode_is_software": 0.014924598999996874, + "tests/test_custody_routes.py::TestCustodyChainEntry::test_rolling_cap": 0.12628706599998907, + "tests/test_custody_routes.py::TestCustodyChainEntry::test_submit_entry": 0.12679923099999257, + "tests/test_custody_routes.py::TestCustodyChainEntry::test_submit_entry_no_auth": 0.12477220099999897, + "tests/test_custody_routes.py::TestCustodyChainEntryVerification::test_chain_entry_with_registered_key_exception_path": 0.12941022999999063, + "tests/test_custody_routes.py::TestCustodyChainEntryVerification::test_chain_node_with_identity_returns_identity_dict": 0.12439742800000886, + "tests/test_custody_routes.py::TestCustodyIqCommitment::test_rolling_cap": 0.12793961100001638, + "tests/test_custody_routes.py::TestCustodyIqCommitment::test_submit_commitment": 0.12542769200001658, + "tests/test_custody_routes.py::TestCustodyIqCommitment::test_submit_no_auth": 0.12687435399999458, + "tests/test_custody_routes.py::TestCustodyRead::test_chain_not_found": 0.12705774100001577, + "tests/test_custody_routes.py::TestCustodyRead::test_status_empty": 0.127631421000018, + "tests/test_custody_routes.py::TestCustodyRead::test_verify_not_found": 0.12733787500000915, + "tests/test_custody_routes.py::TestCustodyRegister::test_register_empty_node_id": 0.12428751599999543, + "tests/test_custody_routes.py::TestCustodyRegister::test_register_missing_node_id": 0.1243752640000082, + "tests/test_custody_routes.py::TestCustodyRegister::test_register_no_api_key": 0.12511109600002612, + "tests/test_custody_routes.py::TestCustodyRegister::test_register_success": 0.12730908199999647, + "tests/test_custody_routes.py::TestCustodyRegister::test_register_wrong_api_key": 0.12608438100002672, + "tests/test_custody_routes.py::TestCustodyVerifyChain::test_verify_chain_exception_returns_500": 0.12639038700000071, + "tests/test_custody_routes.py::TestCustodyVerifyChain::test_verify_chain_no_public_key_returns_400": 0.1260508190000138, + "tests/test_dark_follow.py::TestAnchorDeadReckoning::test_dead_reckoning_honours_it": 0.013840246999990313, + "tests/test_dark_follow.py::TestAnchorDeadReckoning::test_dead_reckoning_still_refuses_a_far_solve": 0.013124042999990593, + "tests/test_dark_follow.py::TestAnchorDeadReckoning::test_the_flat_gate_refuses_a_fast_anchor": 0.012852473999998892, + "tests/test_dark_follow.py::TestClaiming::test_a_caller_that_cannot_take_the_split_gets_no_path_3": 0.01483736699999838, + "tests/test_dark_follow.py::TestClaiming::test_a_matching_detection_is_claimed_and_a_stray_is_not": 0.014449730999999133, + "tests/test_dark_follow.py::TestClaiming::test_a_stale_track_claims_nothing": 0.014857874999989917, + "tests/test_dark_follow.py::TestClaiming::test_adsb_wins_a_contested_detection": 0.014168831999995746, + "tests/test_dark_follow.py::TestClaiming::test_off_mode_claims_nothing": 0.014073904000014181, + "tests/test_dark_follow.py::TestFollowPass::test_a_node_with_no_config_is_dropped_not_the_key": 0.012232250000010936, + "tests/test_dark_follow.py::TestFollowPass::test_a_single_node_is_not_enough": 0.01493535000000179, + "tests/test_dark_follow.py::TestFollowPass::test_no_newer_claim_is_no_new_solve": 0.01209955200000934, + "tests/test_dark_follow.py::TestFollowPass::test_off_mode_does_nothing": 0.012406866999995714, + "tests/test_dark_follow.py::TestFollowPass::test_shadow_classifies_a_displaced_solve_as_not_ok": 0.012151991000010298, + "tests/test_dark_follow.py::TestFollowPass::test_shadow_records_and_never_publishes": 0.012426466000022174, + "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[False-binding]": 0.014929917999992881, + "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[False-shadow]": 0.012819014000001516, + "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[True-binding]": 0.015132730999994237, + "tests/test_dark_follow.py::TestFollowPass::test_skewed_claims_keep_their_capture_epochs[True-shadow]": 0.015587592999992239, + "tests/test_dark_follow.py::TestFollowPass::test_the_adsb_pass_ignores_follow_claims": 0.015074620000007144, + "tests/test_dark_follow.py::TestFollowPass::test_the_rate_limit_holds_between_passes": 0.012178997999996, + "tests/test_dark_follow.py::TestFollowPass::test_three_nodes_produce_one_anchored_queue_item": 0.015286189999983435, + "tests/test_dark_follow.py::TestGateSigmaClamp::test_a_manoeuvre_sigma_gates_exactly_like_the_ceiling": 0.012439290000003211, + "tests/test_dark_follow.py::TestGateSigmaClamp::test_a_normal_target_is_untouched": 0.012344460999997864, + "tests/test_dark_follow.py::TestGateSigmaClamp::test_the_clamp_is_what_narrows_it": 0.012393292000012934, + "tests/test_dark_follow.py::TestGhostGuard::test_a_good_solve_clears_the_streak": 0.014817960000002017, + "tests/test_dark_follow.py::TestGhostGuard::test_a_published_record_counts_and_clears": 0.012796337999986918, + "tests/test_dark_follow.py::TestGhostGuard::test_a_withheld_record_does_not_clear_an_existing_streak": 0.012725536000004922, + "tests/test_dark_follow.py::TestGhostGuard::test_an_n2_unconfirmed_record_is_withheld_not_charged": 0.012597185000018385, + "tests/test_dark_follow.py::TestGhostGuard::test_rejected_history_records_feed_the_guard": 0.012513497999989909, + "tests/test_dark_follow.py::TestGhostGuard::test_the_cooldown_expires": 0.013818114999992304, + "tests/test_dark_follow.py::TestGhostGuard::test_two_rejected_solves_drop_the_key": 0.014965278000005355, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_a_noisy_velocity_is_counted_by_reason": 0.012490955000004078, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_a_stale_track_is_counted_as_age": 0.01206941500001335, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_an_adsb_key_is_not_in_the_population_at_all": 0.011861886000019695, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_an_eligible_key_bumps_nothing": 0.011916859999999474, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_each_gate_has_its_own_counter[dark_follow_inelig_min_nodes-kwargs2]": 0.01206742099998337, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_each_gate_has_its_own_counter[dark_follow_inelig_min_solves-kwargs1]": 0.012179330999998683, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_each_gate_has_its_own_counter[dark_follow_inelig_no_pos-kwargs0]": 0.011961131999996155, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_no_filter_state_is_counted": 0.011844765000006419, + "tests/test_dark_follow.py::TestIneligibilityCounters::test_the_cooldown_a_drop_starts_is_counted_on_the_next_rebuild": 0.01206100899999285, + "tests/test_dark_follow.py::TestKeyOwnership::test_a_solve_further_out_mints_rather_than_joining": 0.01244576100000927, + "tests/test_dark_follow.py::TestKeyOwnership::test_a_solve_next_to_a_freshly_followed_key_is_shadowed": 0.014442816999988395, + "tests/test_dark_follow.py::TestKeyOwnership::test_an_n2_solve_cannot_join_a_followed_n3_key": 0.012131182000004515, + "tests/test_dark_follow.py::TestKeyOwnership::test_ownership_expires": 0.0121697740000144, + "tests/test_dark_follow.py::TestKeyOwnership::test_the_follow_lanes_own_solve_still_lands_on_its_key": 0.012058554999995863, + "tests/test_dark_follow.py::TestKeyOwnership::test_the_inert_modes_key_exactly_as_before[off]": 0.012100441999976397, + "tests/test_dark_follow.py::TestKeyOwnership::test_the_inert_modes_key_exactly_as_before[shadow]": 0.012123618000003944, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_fresh_episode_is_budgeted_from_its_first_rebuild": 0.011922971000004168, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_key_that_is_not_manoeuvring_is_still_dropped": 0.012093570000004661, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_manoeuvring_key_is_kept_over_the_ceiling": 0.01191183000000251, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_a_sigma_past_the_hard_ceiling_is_dropped_mid_manoeuvre": 0.012642480000010892, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_the_reprieve_expires_after_keep_max_s": 0.012024332000009963, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_the_target_carries_the_real_sigma_not_the_clamped_one": 0.011834776000000602, + "tests/test_dark_follow.py::TestManoeuvreReprieve::test_the_two_reject_drop_still_applies_to_a_kept_key": 0.012356884999988438, + "tests/test_dark_follow.py::TestModesInProcessOneFrame::test_binding_strips_the_followed_detection": 0.02667068900001368, + "tests/test_dark_follow.py::TestModesInProcessOneFrame::test_shadow_leaves_the_frame_whole": 0.02641579100000513, + "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_a_third_node_is_unaffected": 0.014845882999992455, + "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_the_skipped_key_keeps_its_target_status": 0.01493286500000579, + "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_two_nodes_are_enqueued_when_the_bypass_is_on": 0.015289984999995454, + "tests/test_dark_follow.py::TestN2InputsAreSkipped::test_two_nodes_are_not_enqueued_when_the_bypass_is_off": 0.012907616000006783, + "tests/test_dark_follow.py::TestPseudoStates::test_a_key_that_was_never_wide_is_not_a_target": 0.012358978000008847, + "tests/test_dark_follow.py::TestPseudoStates::test_a_narrow_last_solve_on_a_wide_key_is_still_a_target": 0.012018750000009959, + "tests/test_dark_follow.py::TestPseudoStates::test_a_noisy_velocity_drops_the_key": 0.012423307999995359, + "tests/test_dark_follow.py::TestPseudoStates::test_a_stale_track_is_not": 0.0124617580000006, + "tests/test_dark_follow.py::TestPseudoStates::test_an_adsb_key_is_never_followed": 0.012097036000000116, + "tests/test_dark_follow.py::TestPseudoStates::test_an_established_track_is_a_target": 0.01385167799999465, + "tests/test_dark_follow.py::TestPseudoStates::test_no_filter_state_is_not": 0.012408430000007797, + "tests/test_dark_follow.py::TestPseudoStates::test_off_mode_has_no_targets": 0.012880817999999294, + "tests/test_dark_follow.py::TestPseudoStates::test_too_few_nodes_is_not": 0.011981509999998252, + "tests/test_dark_follow.py::TestPseudoStates::test_too_few_solves_is_not": 0.012159464999996317, + "tests/test_dark_follow.py::TestShadowedSolveIsARejection::test_a_solve_the_lane_does_not_own_still_publishes": 0.013804328999995619, + "tests/test_dark_follow.py::TestShadowedSolveIsARejection::test_refusals_never_reach_the_follow_ghost_guard": 0.012581635999993068, + "tests/test_dark_follow.py::TestShadowedSolveIsARejection::test_the_solve_is_recorded_counted_and_not_published": 0.013939501999999493, + "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_no_shared_tracks_still_mints": 0.014403632000025368, + "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_one_shared_track_shadows_beyond_the_shadow_radius": 0.014569473999998195, + "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_shared_tracks_do_not_widen_the_gate": 0.014694247000008431, + "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_stale_shared_ids_do_not_count": 0.014691573999996876, + "tests/test_dark_key_track_continuity.py::TestFollowOwnedKeys::test_two_shared_tracks_join_the_followed_key": 0.014578198999998904, + "tests/test_dark_key_track_continuity.py::TestOrdinaryCandidates::test_a_track_sharing_key_beats_a_nearer_stranger": 0.014819239000004814, + "tests/test_dark_key_track_continuity.py::TestOrdinaryCandidates::test_an_out_of_gate_sharer_is_not_joined": 0.015211144000005561, + "tests/test_dark_key_track_continuity.py::TestOrdinaryCandidates::test_without_shared_ids_the_nearer_key_still_wins": 0.014791958999992971, + "tests/test_dark_key_track_continuity.py::TestRecentTrackIdMemory::test_a_missing_or_malformed_memory_is_not_a_crash": 0.01484301300000368, + "tests/test_dark_key_track_continuity.py::TestRecentTrackIdMemory::test_ids_merge_across_writes_and_prune_by_age": 0.01479211700001315, + "tests/test_dark_key_track_continuity.py::TestRecentTrackIdMemory::test_the_memory_is_capped": 0.015073576000006028, + "tests/test_deploy_scope.py::test_a_comment_beside_a_change_in_one_file_deploys": 0.253949442000021, + "tests/test_deploy_scope.py::test_a_comment_beside_a_typescript_change_deploys": 0.25402890600001626, + "tests/test_deploy_scope.py::test_a_deleted_module_deploys": 0.25002883799999154, + "tests/test_deploy_scope.py::test_a_dropped_noqa_is_inert": 0.2589932790000091, + "tests/test_deploy_scope.py::test_a_file_that_will_not_parse_deploys[after]": 0.2597402410000029, + "tests/test_deploy_scope.py::test_a_file_that_will_not_parse_deploys[before]": 0.2622579979999955, + "tests/test_deploy_scope.py::test_a_lockfile_change_deploys": 0.2522889469999967, + "tests/test_deploy_scope.py::test_a_mode_change_deploys": 0.25973690000000715, + "tests/test_deploy_scope.py::test_a_module_that_became_markdown_deploys": 0.25303411300001244, + "tests/test_deploy_scope.py::test_a_new_module_deploys": 0.2516640360000082, + "tests/test_deploy_scope.py::test_a_renamed_local_deploys": 0.2525533109999998, + "tests/test_deploy_scope.py::test_a_requoted_string_is_inert": 0.26451237400000593, + "tests/test_deploy_scope.py::test_a_retargeted_symlink_deploys": 0.2570998769999875, + "tests/test_deploy_scope.py::test_a_reworded_comment_is_inert": 0.25445627199999876, + "tests/test_deploy_scope.py::test_a_submodule_bump_deploys": 0.2548794649999877, + "tests/test_deploy_scope.py::test_an_edited_docstring_deploys": 0.25876790599998856, + "tests/test_deploy_scope.py::test_an_empty_diff_deploys": 0.24626993900000116, + "tests/test_deploy_scope.py::test_an_undiffable_base_deploys[no-base]": 0.25557018199997117, + "tests/test_deploy_scope.py::test_an_undiffable_base_deploys[unknown-base]": 0.2482547599999947, + "tests/test_deploy_scope.py::test_markdown_alone_is_inert": 0.26217647800001487, + "tests/test_deploy_scope.py::test_markdown_under_a_public_directory_deploys[dashboard/public/help.md]": 0.24883492799999374, + "tests/test_deploy_scope.py::test_markdown_under_a_public_directory_deploys[public/help.md]": 0.2549744540000063, + "tests/test_deploy_scope.py::test_reformatting_is_inert[trailing-blank-lines]": 0.26365392599998927, + "tests/test_deploy_scope.py::test_reformatting_is_inert[trailing-whitespace]": 0.2595430199999953, + "tests/test_deploy_scope.py::test_reformatting_is_inert[wrapped-with-a-magic-trailing-comma]": 0.2631418170000188, + "tests/test_deploy_workflows.py::test_a_stale_marker_refuses_the_deploy_before_the_rollback_point_is_taken[production]": 0.06756822299999499, + "tests/test_deploy_workflows.py::test_a_stale_marker_refuses_the_deploy_before_the_rollback_point_is_taken[staging]": 0.028723060000004352, + "tests/test_deploy_workflows.py::test_a_stale_marker_refuses_the_deploy_before_the_rollback_point_is_taken[test]": 0.024084250999990786, + "tests/test_deploy_workflows.py::test_marker_is_cleared_only_once_the_app_answers[production]": 0.06642140200000313, + "tests/test_deploy_workflows.py::test_marker_is_cleared_only_once_the_app_answers[staging]": 0.027336560999984272, + "tests/test_deploy_workflows.py::test_marker_is_cleared_only_once_the_app_answers[test]": 0.023413253000001077, + "tests/test_deploy_workflows.py::test_marker_is_written_after_the_rollback_point_and_before_anything_moves[production]": 0.06672521000000131, + "tests/test_deploy_workflows.py::test_marker_is_written_after_the_rollback_point_and_before_anything_moves[staging]": 0.027646000000004278, + "tests/test_deploy_workflows.py::test_marker_is_written_after_the_rollback_point_and_before_anything_moves[test]": 0.024200221000015176, + "tests/test_deploy_workflows.py::test_no_prune_takes_an_image_something_names[production]": 0.065857414000007, + "tests/test_deploy_workflows.py::test_no_prune_takes_an_image_something_names[staging]": 0.027261750000008078, + "tests/test_deploy_workflows.py::test_no_prune_takes_an_image_something_names[test]": 0.023965268999972977, + "tests/test_deploy_workflows.py::test_nothing_between_the_marker_write_and_the_tree_move_can_refuse[production]": 0.06729182400000866, + "tests/test_deploy_workflows.py::test_nothing_between_the_marker_write_and_the_tree_move_can_refuse[staging]": 0.02747920899999201, + "tests/test_deploy_workflows.py::test_nothing_between_the_marker_write_and_the_tree_move_can_refuse[test]": 0.023930805000006217, + "tests/test_deploy_workflows.py::test_orphaned_images_are_pruned_every_deploy[production]": 0.06538130199999159, + "tests/test_deploy_workflows.py::test_orphaned_images_are_pruned_every_deploy[staging]": 0.02710341299997765, + "tests/test_deploy_workflows.py::test_orphaned_images_are_pruned_every_deploy[test]": 0.023307634999994775, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-pull_request-refs/heads/main]": 0.06739475599999878, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-pull_request-refs/heads/topic]": 0.06667912399998954, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-pull_request-refs/pull/417/merge]": 0.06712951899999098, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-push-refs/heads/main]": 0.06955154099999561, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-push-refs/heads/topic]": 0.06705672200000379, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-push-refs/pull/417/merge]": 0.06649280099999544, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-workflow_dispatch-refs/heads/main]": 0.06717271000000835, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-workflow_dispatch-refs/heads/topic]": 0.06749847000000386, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[cancelled-workflow_dispatch-refs/pull/417/merge]": 0.06630725700000539, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-pull_request-refs/heads/main]": 0.06912287699999808, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-pull_request-refs/heads/topic]": 0.07143820899999298, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-pull_request-refs/pull/417/merge]": 0.06955438799998603, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-push-refs/heads/main]": 0.06800385799999731, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-push-refs/heads/topic]": 0.06994488000002264, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-push-refs/pull/417/merge]": 0.0698118870000144, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-workflow_dispatch-refs/heads/main]": 0.06741043500001354, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-workflow_dispatch-refs/heads/topic]": 0.06727404199999398, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[failure-workflow_dispatch-refs/pull/417/merge]": 0.06672498100000723, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-pull_request-refs/heads/main]": 0.06785216100000468, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-pull_request-refs/heads/topic]": 0.06660565599999302, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-pull_request-refs/pull/417/merge]": 0.06696400799999935, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-push-refs/heads/main]": 0.06703092299999014, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-push-refs/heads/topic]": 0.06772766999999646, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-push-refs/pull/417/merge]": 0.06658326299999828, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-workflow_dispatch-refs/heads/main]": 0.06730786299998215, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-workflow_dispatch-refs/heads/topic]": 0.06762112999999204, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[skipped-workflow_dispatch-refs/pull/417/merge]": 0.06707926399998598, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-pull_request-refs/heads/main]": 0.06727538200000538, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-pull_request-refs/heads/topic]": 0.06720576000000733, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-pull_request-refs/pull/417/merge]": 0.06765051499999686, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-push-refs/heads/main]": 0.06752677400000096, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-push-refs/heads/topic]": 0.06751726599999586, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-push-refs/pull/417/merge]": 0.06713509000000784, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-workflow_dispatch-refs/heads/main]": 0.06746297399999435, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-workflow_dispatch-refs/heads/topic]": 0.06718347199999641, + "tests/test_deploy_workflows.py::test_production_rollback_requires_a_failed_or_cancelled_main_push[success-workflow_dispatch-refs/pull/417/merge]": 0.0673534280000041, + "tests/test_deploy_workflows.py::test_rollback_job_reads_back_what_the_deploy_wrote[production]": 0.17552086299998848, + "tests/test_deploy_workflows.py::test_rollback_job_reads_back_what_the_deploy_wrote[staging]": 0.05675945500001944, + "tests/test_deploy_workflows.py::test_rollback_job_reads_back_what_the_deploy_wrote[test]": 0.047117784999983314, + "tests/test_deploy_workflows.py::test_the_build_cache_is_trimmed_after_the_images_that_pin_it[production]": 0.06719460200000071, + "tests/test_deploy_workflows.py::test_the_build_cache_is_trimmed_after_the_images_that_pin_it[staging]": 0.02759577699998772, + "tests/test_deploy_workflows.py::test_the_build_cache_is_trimmed_after_the_images_that_pin_it[test]": 0.023792855999985818, + "tests/test_deploy_workflows.py::test_the_image_prune_runs_after_the_rollback_point_is_saved[production]": 0.06683023900001217, + "tests/test_deploy_workflows.py::test_the_image_prune_runs_after_the_rollback_point_is_saved[staging]": 0.027247513999995476, + "tests/test_deploy_workflows.py::test_the_image_prune_runs_after_the_rollback_point_is_saved[test]": 0.023665336999997066, + "tests/test_deploy_workflows.py::test_the_stack_stays_up_until_the_new_image_exists[production]": 0.06610859500000288, + "tests/test_deploy_workflows.py::test_the_stack_stays_up_until_the_new_image_exists[staging]": 0.02745385099998998, + "tests/test_deploy_workflows.py::test_the_stack_stays_up_until_the_new_image_exists[test]": 0.023605977000016765, + "tests/test_detection_mirror.py::TestBatchCarriesTheRef::test_a_node_with_no_ref_sends_none_rather_than_a_null": 0.015083337999996616, + "tests/test_detection_mirror.py::TestBatchCarriesTheRef::test_a_registered_node_sends_its_ref": 0.015192583000001036, + "tests/test_detection_mirror.py::test_a_batch_that_builds_empty_is_not_posted_and_is_counted": 0.041869744999999625, + "tests/test_detection_mirror.py::test_a_duplicate_host_refuses_to_arm": 0.015343745999999214, + "tests/test_detection_mirror.py::test_a_failed_batch_counts_frames_not_batches": 0.015188894000004893, + "tests/test_detection_mirror.py::test_a_failing_drain_or_build_does_not_kill_the_task": 0.04173536399999023, + "tests/test_detection_mirror.py::test_a_failing_target_is_named_in_the_log_line_and_the_event": 0.015368143000003442, + "tests/test_detection_mirror.py::test_a_full_queue_drops_rather_than_raising": 0.012925842000015564, + "tests/test_detection_mirror.py::test_a_hung_target_does_not_hold_the_others_back": 0.01490730800000506, + "tests/test_detection_mirror.py::test_a_mixed_drain_counts_the_departed_node_while_sending_the_survivor": 0.04339911299999244, + "tests/test_detection_mirror.py::test_a_non_https_url_refuses_to_arm": 0.012963812000023722, + "tests/test_detection_mirror.py::test_a_partial_landing_credits_only_what_arrived": 0.014523057000005224, + "tests/test_detection_mirror.py::test_a_receiver_that_queues_nothing_is_a_failure_not_a_success": 0.014350683000003528, + "tests/test_detection_mirror.py::test_a_refusing_receiver_is_counted_not_raised": 0.014524419000011335, + "tests/test_detection_mirror.py::test_a_saturated_queue_logs_its_own_line_throttled": 0.013007325000003789, + "tests/test_detection_mirror.py::test_a_single_target_still_arms_as_before": 0.01343151899997963, + "tests/test_detection_mirror.py::test_an_empty_key_entry_sends_that_receiver_no_key": 0.015173115999999709, + "tests/test_detection_mirror.py::test_an_empty_url_entry_refuses_to_arm": 0.015376689000007104, + "tests/test_detection_mirror.py::test_an_unreachable_receiver_is_counted_not_raised": 0.014583841000003872, + "tests/test_detection_mirror.py::test_an_unusable_response_is_a_failure_not_a_silent_success[missing-frames-queued]": 0.014408172000003105, + "tests/test_detection_mirror.py::test_an_unusable_response_is_a_failure_not_a_silent_success[non-json-body]": 0.014467011999997226, + "tests/test_detection_mirror.py::test_armed_offer_queues_the_frame": 0.012764299999986406, + "tests/test_detection_mirror.py::test_arming_clears_the_counters": 0.012625838999994698, + "tests/test_detection_mirror.py::test_batch_carries_position_tags_in_the_pipeline_shape": 0.014198307999990334, + "tests/test_detection_mirror.py::test_batch_groups_by_node_and_carries_config": 0.014381803999995668, + "tests/test_detection_mirror.py::test_batch_skips_a_node_whose_config_left_the_registry": 0.013831112000005419, + "tests/test_detection_mirror.py::test_comma_separated_targets_are_trimmed": 0.012392441999992343, + "tests/test_detection_mirror.py::test_configure_from_env_resets_health_state": 0.012993039000022577, + "tests/test_detection_mirror.py::test_each_target_receives_the_same_batch_with_its_own_key": 0.017612482000004093, + "tests/test_detection_mirror.py::test_mismatched_url_and_key_counts_refuse_to_arm[more-keys-than-urls]": 0.01529300200000705, + "tests/test_detection_mirror.py::test_mismatched_url_and_key_counts_refuse_to_arm[more-urls-than-keys]": 0.015254880000000526, + "tests/test_detection_mirror.py::test_mismatched_url_and_key_counts_refuse_to_arm[two-urls-no-key]": 0.015262786000022288, + "tests/test_detection_mirror.py::test_offer_holds_the_wire_model_not_a_converted_dict": 0.012829341000013983, + "tests/test_detection_mirror.py::test_offer_is_a_no_op_when_unarmed": 0.01270737099999053, + "tests/test_detection_mirror.py::test_one_failing_target_leaves_the_other_healthy_and_credited": 0.016498752000003947, + "tests/test_detection_mirror.py::test_one_http_url_refuses_the_whole_configuration": 0.015098434999998744, + "tests/test_detection_mirror.py::test_send_posts_the_bulk_shape_with_the_key": 0.014554587000006336, + "tests/test_detection_mirror.py::test_the_lifespan_arms_the_mirror_and_starts_its_task": 0.1257515580000046, + "tests/test_detection_mirror.py::test_the_task_fans_one_drain_out_to_every_target": 0.0254251629999942, + "tests/test_detection_mirror.py::test_the_task_returns_at_once_when_unarmed": 0.012652780000010466, + "tests/test_detection_mirror.py::test_unset_url_leaves_the_mirror_unarmed": 0.015244709999990391, + "tests/test_digitalocean_client.py::test_aclose_closes_the_pool": 0.015586421999984168, + "tests/test_digitalocean_client.py::test_droplet_tag_defaults": 0.015200075999999285, + "tests/test_digitalocean_client.py::test_get_json_refuses_without_token": 0.015563228999994294, + "tests/test_digitalocean_client.py::test_get_json_sends_the_bearer_per_request_and_raises_on_status": 0.016577891000025602, + "tests/test_digitalocean_client.py::test_token_is_read_per_call": 0.015262023000019553, + "tests/test_digitalocean_client.py::test_wrappers_unwrap_the_envelope": 0.015984107000008407, + "tests/test_dockerfiles.py::test_an_unreadable_version_fails_the_step[empty]": 0.017561076000006892, + "tests/test_dockerfiles.py::test_an_unreadable_version_fails_the_step[missing]": 0.01789449100000695, + "tests/test_dockerfiles.py::test_an_unreadable_version_fails_the_step[not-a-version]": 0.017967166999994788, + "tests/test_dockerfiles.py::test_an_unreadable_version_fails_the_step[twice]": 0.01759768200000167, + "tests/test_dockerfiles.py::test_both_images_sync_with_the_same_uv": 0.015434716999990883, + "tests/test_dockerfiles.py::test_ci_installs_uv_only_through_the_pinned_action": 0.10815927800000225, + "tests/test_dockerfiles.py::test_the_action_reads_the_dockerfile_version": 0.018529642000018498, + "tests/test_e2e_pipeline.py::TestBackgroundFrameLoop::test_loop_drains_queue_and_increments_counter[asyncio]": 0.08472012999997958, + "tests/test_e2e_pipeline.py::TestBackgroundFrameLoop::test_loop_promotes_track_to_active[asyncio]": 0.10794659999999112, + "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_extra_frames_beyond_n_window_do_not_reset_track": 0.05201053499999375, + "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_first_frame_creates_tentative_track": 0.022475933999999143, + "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_m_of_n_frames_promote_track_to_active": 0.052779786000002105, + "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_node_registered_in_analytics_after_frames": 0.020812533000011513, + "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_promoted_track_appears_in_event_writer": 0.05321542400000112, + "tests/test_e2e_pipeline.py::TestFrameProcessorTracker::test_promoted_track_has_stable_id": 0.05222016599998369, + "tests/test_e2e_pipeline.py::TestFullE2E::test_handshake_order_enforced": 0.013097984999987489, + "tests/test_e2e_pipeline.py::TestFullE2E::test_node_registered_in_state_after_handshake": 0.014607265000009306, + "tests/test_e2e_pipeline.py::TestFullE2E::test_node_status_disconnected_after_eof": 0.013353162999990786, + "tests/test_e2e_pipeline.py::TestFullE2E::test_tcp_frames_flow_through_to_active_track": 0.04997843200000318, + "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_analytics_refresh_includes_node_after_processing": 0.05688300999995022, + "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_leaderboard_includes_node_with_detections": 0.054614305000001195, + "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_missed_detections_computed_for_node": 0.051233535999983815, + "tests/test_e2e_pipeline.py::TestFullIntegrationPath::test_storage_endpoint_disk_fields": 0.015482096000027923, + "tests/test_e2e_pipeline.py::TestGeolocationAfterPromotion::test_adsb_track_populates_active_geo_aircraft": 0.14566997599999354, + "tests/test_e2e_pipeline.py::TestGeolocationAfterPromotion::test_geolocation_attempted_after_promotion": 0.10741065700000263, + "tests/test_e2e_pipeline.py::TestGeolocationAfterPromotion::test_non_adsb_track_geo_attempted": 0.10951966100000732, + "tests/test_e2e_pipeline.py::TestRegressions::test_frame_without_timestamp_is_rejected": 0.014928197999992676, + "tests/test_e2e_pipeline.py::TestRegressions::test_malformed_json_does_not_crash_handler": 0.014391611000007742, + "tests/test_e2e_pipeline.py::TestRegressions::test_non_finite_adsb_coords_skipped_in_enqueue": 0.015167917000013631, + "tests/test_e2e_pipeline.py::TestRegressions::test_pipeline_does_not_share_state_across_nodes": 0.056194359999992116, + "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_config_ack_sent_before_any_frame": 0.017174752000016724, + "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_invalid_config_sends_nack_and_rejects_node": 0.01694477800000982, + "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_queue_full_increments_drop_counter": 0.016715009000009218, + "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_rate_limiter_disabled_enqueues_all": 0.0169210459999789, + "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_rate_limiter_drops_rapid_duplicates": 0.018421647999986135, + "tests/test_e2e_pipeline.py::TestTCPDetectionEnqueue::test_single_detection_lands_in_queue": 0.016484386000001905, + "tests/test_email_address.py::test_addresses_are_accepted[ADA@EXAMPLE.COM]": 0.012689909000016542, + "tests/test_email_address.py::test_addresses_are_accepted[a@b.co]": 0.0161386769999865, + "tests/test_email_address.py::test_addresses_are_accepted[ada.lovelace+nodes@example.co.uk]": 0.013382667999991327, + "tests/test_email_address.py::test_addresses_are_accepted[ada@example.com]": 0.012460268999973323, + "tests/test_email_address.py::test_non_addresses_are_refused[ ada@example.com-leading space]": 0.01236044199998787, + "tests/test_email_address.py::test_non_addresses_are_refused[-empty]": 0.012525402000022723, + "tests/test_email_address.py::test_non_addresses_are_refused[@example.com-no local part]": 0.01242104499996799, + "tests/test_email_address.py::test_non_addresses_are_refused[ada @example.com-inner space]": 0.012467041000007839, + "tests/test_email_address.py::test_non_addresses_are_refused[ada example.com-no at sign]": 0.012419420999975728, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@-no domain]": 0.012624125000002095, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@.com-empty leading label]": 0.012472320999989961, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@@example.com-two at signs]": 0.012581976999996414, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@example.-empty trailing label]": 0.012362504000009267, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@example.com -trailing space]": 0.012523288000011235, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@example@com-at sign in the domain]": 0.012483701999968844, + "tests/test_email_address.py::test_non_addresses_are_refused[ada@localhost-single-label domain]": 0.01240920200001483, + "tests/test_email_address.py::test_non_addresses_are_refused[ada\\n@example.com-newline]": 0.012485507000008056, + "tests/test_email_address.py::test_non_addresses_are_refused[ada\\t@example.com-tab]": 0.012379938999970364, + "tests/test_email_address.py::test_the_bound_matches_the_column_the_two_tables_share": 0.012255684999985306, + "tests/test_env_parity_scoping.py::TestAdsbClaimFallback::test_neighbouring_keys_stay_compared": 0.012254679999983864, + "tests/test_env_parity_scoping.py::TestAdsbClaimFallback::test_staging_may_not[ADSB_FALLBACK_ENABLED]": 0.014856444000031388, + "tests/test_env_parity_scoping.py::TestAdsbClaimFallback::test_staging_may_not[KNOWN_LANE_MODE]": 0.014475686999986692, + "tests/test_env_parity_scoping.py::TestAdsbClaimFallback::test_the_test_droplet_may_diverge[ADSB_FALLBACK_ENABLED]": 0.014701712999993788, + "tests/test_env_parity_scoping.py::TestAdsbClaimFallback::test_the_test_droplet_may_diverge[KNOWN_LANE_MODE]": 0.014858606000018426, + "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_access_audience_may_differ_per_environment[staging]": 0.01194947999996998, + "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_access_audience_may_differ_per_environment[test]": 0.011978004000013698, + "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_anonymous_admin_flag_may_never_differ[staging]": 0.01450141699999108, + "tests/test_env_parity_scoping.py::TestCloudflareAccessEntries::test_the_anonymous_admin_flag_may_never_differ[test]": 0.01206714000002762, + "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[staging-networks.retina-edge.external]": 0.012068103000018482, + "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[staging-services.server.networks.retina-edge]": 0.012080545999992864, + "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[test-networks.retina-edge.external]": 0.01207767200003218, + "tests/test_env_parity_scoping.py::TestEdgeNetworkEntry::test_edge_network_divergence_is_not_allowed_anywhere[test-services.server.networks.retina-edge]": 0.01208172900001614, + "tests/test_env_parity_scoping.py::TestMailTransport::test_staging_may_not": 0.012476149999997688, + "tests/test_env_parity_scoping.py::TestMailTransport::test_the_sender_identity_may_never_differ": 0.012399805000001152, + "tests/test_env_parity_scoping.py::TestMailTransport::test_the_test_droplet_may_diverge": 0.012412148000009893, + "tests/test_env_parity_scoping.py::TestScopeValidation::test_scoping_to_the_reference_is_rejected": 0.012490916999979618, + "tests/test_env_parity_scoping.py::TestScopeValidation::test_unknown_environment_is_rejected": 0.01246639999996546, + "tests/test_env_parity_scoping.py::TestScoping::test_non_matching_path_is_never_allowed": 0.012316688999987946, + "tests/test_env_parity_scoping.py::TestScoping::test_scoped_entry_applies_only_to_its_own_environment": 0.012918877999965162, + "tests/test_env_parity_scoping.py::TestScoping::test_unscoped_entry_applies_to_every_environment": 0.016932056000001694, + "tests/test_epoch_alignment.py::TestProcessSolverItemWiring::test_flag_off_leaves_the_input_untouched": 0.012400816999985409, + "tests/test_epoch_alignment.py::TestProcessSolverItemWiring::test_flag_on_hands_the_solver_aligned_delays": 0.012501005999979498, + "tests/test_epoch_alignment.py::TestPureHelper::test_each_delay_moves_by_its_own_doppler_rate": 0.012092147999993585, + "tests/test_epoch_alignment.py::TestPureHelper::test_fc_spelled_FC_is_accepted": 0.012293454999991127, + "tests/test_epoch_alignment.py::TestPureHelper::test_input_is_not_mutated": 0.012148855999953412, + "tests/test_epoch_alignment.py::TestPureHelper::test_newest_measurement_is_the_epoch_and_is_untouched": 0.012274091999984194, + "tests/test_epoch_alignment.py::TestPureHelper::test_single_measurement_input_is_a_no_op": 0.01214309400003799, + "tests/test_epoch_alignment.py::TestPureHelper::test_timestamp_ms_is_restamped_to_the_epoch": 0.012170534999995652, + "tests/test_epoch_alignment.py::TestPureHelper::test_zero_doppler_measurement_is_unchanged": 0.012118516999976237, + "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_alignment_moves_the_stale_delay_toward_the_truth[vel_kms0]": 0.012728240999990703, + "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_alignment_moves_the_stale_delay_toward_the_truth[vel_kms1]": 0.012628123000013147, + "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_alignment_moves_the_stale_delay_toward_the_truth[vel_kms2]": 0.012632601000007071, + "tests/test_epoch_alignment.py::TestSignAgainstSimulatorGeometry::test_correction_and_truth_share_a_sign": 0.013497142999995049, + "tests/test_epoch_alignment.py::TestSkipPath::test_missing_field_skips_the_whole_input[broken0]": 0.012364899999965928, + "tests/test_epoch_alignment.py::TestSkipPath::test_missing_field_skips_the_whole_input[broken1]": 0.01250550299997144, + "tests/test_epoch_alignment.py::TestSkipPath::test_missing_t_s_key_entirely_skips": 0.012546609999986913, + "tests/test_epoch_alignment.py::TestSkipPath::test_unknown_node_config_skips": 0.01257451399996512, + "tests/test_external_adsb_units.py::test_a_non_numeric_ground_speed_becomes_unknown_rather_than_raising": 0.012753607999968608, + "tests/test_external_adsb_units.py::test_adsb_lol_ground_speed_is_converted_from_knots": 0.012902639000003546, + "tests/test_external_adsb_units.py::test_both_feeds_agree_on_one_aircrafts_speed": 0.012675141999977768, + "tests/test_external_adsb_units.py::test_opensky_velocity_is_stored_unconverted": 0.012235016999994741, + "tests/test_feed_gc_task.py::TestGCWithoutAFeedBuild::test_feed_gc_is_in_the_staleness_registry": 0.012153312999998889, + "tests/test_feed_gc_task.py::TestGCWithoutAFeedBuild::test_stale_arc_motion_is_pruned_by_the_task_body": 0.0122908099999961, + "tests/test_feed_gc_task.py::TestGCWithoutAFeedBuild::test_the_loop_reports_success_to_the_task_registry": 0.012511010999986638, + "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_assisted_entry_keeps_its_longer_lane_expiry": 0.01226681599996482, + "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_fresh_dark_entry_is_kept": 0.012240295999987438, + "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_pruning_twice_is_idempotent": 0.012248572000004287, + "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_stale_dark_entry_is_popped_and_its_anomaly_hex_discarded": 0.01343616000002612, + "tests/test_feed_gc_task.py::TestMultinodeExpiryOffTheTimer::test_the_task_body_runs_the_multinode_expiry_too": 0.012153484000009485, + "tests/test_feed_history_snapshot.py::test_arc_builder_survives_a_concurrently_appended_history": 0.6177972229999682, + "tests/test_feed_multinode.py::TestAdsbAssistedLane::test_adsb_keyed_entry_is_assisted_and_carries_the_hex": 0.01283266600000843, + "tests/test_feed_multinode.py::TestAdsbAssistedLane::test_dark_keyed_entry_is_not_assisted_and_has_no_hex": 0.01304941399999393, + "tests/test_feed_multinode.py::TestAdsbAssistedLane::test_result_adsb_hex_does_not_override_a_dark_key": 0.013657884000025433, + "tests/test_feed_multinode.py::TestGsSource::test_kf_entry_gs_uses_learned_velocity_by_default": 0.013271259999982021, + "tests/test_feed_multinode.py::TestGsSource::test_no_kf_entry_uses_solve_velocity": 0.01299375799999325, + "tests/test_feed_multinode.py::TestGsSource::test_track_gs_source_solve_restores_old_behaviour": 0.013240460999980996, + "tests/test_feed_multinode.py::TestGsSource::test_vel_untrusted_active_mode_drops_solve_sourced_gs_track": 0.01313552399997775, + "tests/test_feed_multinode.py::TestGsSource::test_vel_untrusted_active_mode_keeps_kf_sourced_gs_track": 0.013102081999988968, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_assisted_entry_past_the_cap_holds_its_dead_reckoned_point": 0.01468323899999291, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_dr_horizon_is_capped_at_mn_dr_cap_s": 0.013726573000013786, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_fresh_entry_is_dead_reckoned_fully": 0.013646254000036606, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_solve_epoch_position_equals_the_fix_at_zero_age": 0.012608666999966545, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonCap::test_solve_epoch_position_is_published_undead_reckoned": 0.012809552999982543, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonSource::test_kf_entry_dr_uses_learned_velocity_by_default": 0.01379974100001391, + "tests/test_feed_multinode.py::TestMultinodeDeadReckonSource::test_track_dr_source_solve_restores_old_behaviour": 0.013510700000040288, + "tests/test_feed_multinode.py::TestMultinodeEntryFailureIsolation::test_one_raising_entry_does_not_abort_the_build": 0.014573520999988432, + "tests/test_feed_multinode.py::TestMultinodeEntryFailureIsolation::test_repeated_failures_are_rate_limited_to_one_log_line": 0.013931990000031647, + "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_assisted_entry_at_the_same_age_survives": 0.012661025000028303, + "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_assisted_entry_still_expires_at_60s": 0.012490645000013956, + "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_dark_entry_inside_the_dark_expiry_is_rendered": 0.013393981000007216, + "tests/test_feed_multinode.py::TestMultinodeLaneExpiry::test_dark_entry_past_the_dark_expiry_is_dropped": 0.012617733000041653, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_dark_lane_gets_the_dark_floor_and_the_known_lane_does_not": 0.0129838809999967, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_formal_sigma_widens_the_disc": 0.013158097999991014, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_kf_state_supplies_the_velocity_sigma": 0.013558447999997725, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_known_lane_n2_entry_carries_the_bare_floor": 0.013096772999972472, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_no_kf_state_uses_the_default_velocity_sigma": 0.013159809999990557, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_result_adsb_hex_does_not_soften_a_dark_key": 0.0130321409999965, + "tests/test_feed_multinode.py::TestSolveUncertaintyFields::test_solve_epoch_position_rides_along_with_the_sigma": 0.013507062999991604, + "tests/test_feed_multinode.py::TestVelTrustDisplay::test_trusted_active_mode_keeps_gs_track_no_flag": 0.0129421919999686, + "tests/test_feed_multinode.py::TestVelTrustDisplay::test_untrusted_active_mode_drops_gs_track": 0.0130164630000138, + "tests/test_feed_multinode.py::TestVelTrustDisplay::test_untrusted_default_env_keeps_gs_track": 0.012884374000009302, + "tests/test_frame_processor.py::TestAppendTrackHistory::test_appends_position": 0.012705769000007194, + "tests/test_frame_processor.py::TestAppendTrackHistory::test_different_positions_appended": 0.013660510999983444, + "tests/test_frame_processor.py::TestAppendTrackHistory::test_respects_maxlen": 0.01438991699995995, + "tests/test_frame_processor.py::TestAppendTrackHistory::test_skips_duplicate_positions": 0.012786981000004971, + "tests/test_frame_processor.py::TestAppendTrackHistory::test_survives_gc_popping_the_public_twin_mid_append": 0.014834380999985797, + "tests/test_frame_processor.py::TestArchiveBuffering::test_failed_flush_retains_frames_in_buffer": 0.01320039599997358, + "tests/test_frame_processor.py::TestArchiveBuffering::test_flush_empty_is_noop": 0.01268846699997539, + "tests/test_frame_processor.py::TestArchiveBuffering::test_successful_flush_drops_persisted_prefix": 0.012912105999959067, + "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_adsb_only_excluded_from_map": 0.01832510799999909, + "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_detecting_nodes_lists_every_node_seeing_a_hex": 0.01814675299996793, + "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_pending_arcs_cover_adsb_tracks_with_buffer_key_fields": 0.018546001999993678, + "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_pending_arcs_still_skip_tentative_tracks": 0.018231352000015022, + "tests/test_frame_processor.py::TestBuildCombinedAircraftJson::test_returns_valid_structure": 0.01794519599999944, + "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_five_second_old_coasting_track_is_excluded_at_three": 0.013118362000028583, + "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_fresh_track_survives_beside_a_stale_one": 0.012674139999973022, + "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_no_frame_time_disables_the_filter": 0.012685880999981691, + "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_same_track_is_included_at_ten": 0.012745300000034376, + "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_tentative_is_still_excluded_regardless_of_freshness": 0.012739791999990757, + "tests/test_frame_processor.py::TestConfirmedTrackViewsStaleness::test_zero_disables_the_filter": 0.012871850999971457, + "tests/test_frame_processor.py::TestDedupAircraft::test_contributing_nodes_merged_onto_survivor": 0.013514635999996472, + "tests/test_frame_processor.py::TestDedupAircraft::test_distinct_aircraft_are_not_merged": 0.012669571999992968, + "tests/test_frame_processor.py::TestDedupAircraft::test_distinct_ground_truth_never_merged_despite_proximity": 0.01279365499996743, + "tests/test_frame_processor.py::TestDedupAircraft::test_empty_and_singleton_are_passthrough": 0.012638101000021607, + "tests/test_frame_processor.py::TestDedupAircraft::test_multinode_wins_over_single_node_arc": 0.012715799000005745, + "tests/test_frame_processor.py::TestDedupAircraft::test_one_aircraft_one_entry_via_ground_truth": 0.012689980000004653, + "tests/test_frame_processor.py::TestDedupAircraft::test_proximity_fallback_without_ground_truth": 0.012675051000002213, + "tests/test_frame_processor.py::TestDedupAircraft::test_vertically_separated_aircraft_not_merged": 0.012665513999991163, + "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_altitude_separated_multinode_entries_both_survive": 0.01270114000001854, + "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_distant_arc_still_collapses_under_the_solve": 0.012570838000016238, + "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_equal_node_count_breaks_on_freshness": 0.012944654999984095, + "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_fresher_higher_node_solve_wins_the_tie": 0.01272663999998258, + "tests/test_frame_processor.py::TestDedupMultinodeSplitAndFreshness::test_proximity_path_unchanged_apart_from_the_tie_break": 0.01271007900001564, + "tests/test_frame_processor.py::TestGetNodeConfigs::test_leaves_the_stored_config_alone": 0.014985133999971367, + "tests/test_frame_processor.py::TestGetNodeConfigs::test_omits_an_unplaced_node": 0.014940659999979289, + "tests/test_frame_processor.py::TestGetNodeConfigs::test_resolves_a_null_altitude": 0.015535846999995329, + "tests/test_frame_processor.py::TestGetNodeConfigs::test_returns_configs": 0.015794012000014845, + "tests/test_frame_processor.py::TestGetNodeConfigs::test_skips_missing_config": 0.01583145999998692, + "tests/test_frame_processor.py::TestGetNodeConfigs::test_wanted_narrows_the_snapshot": 0.015180910999958996, + "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_creates_pipeline_for_new_node": 0.023335505000034118, + "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_null_altitudes_default_rather_than_reach_the_geolocator_as_none": 0.023778555000006918, + "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_returns_cached_pipeline": 0.023974685000041518, + "tests/test_frame_processor.py::TestGetOrCreateNodePipeline::test_returns_none_for_a_node_with_no_usable_position": 0.01794549599998163, + "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_aircraft_between_pushes_survives": 0.01414031900000623, + "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_despawned_aircraft_is_pruned": 0.012759780000010323, + "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_live_aircraft_survives": 0.013385172999988981, + "tests/test_frame_processor.py::TestGroundTruthGhostPruning::test_track_history_keeps_the_longer_window": 0.01364485100000934, + "tests/test_frame_processor.py::TestMultinodeToAircraft::test_basic_conversion": 0.013008957000010923, + "tests/test_frame_processor.py::TestMultinodeToAircraft::test_clean_result_discards_hex": 0.012247808000012128, + "tests/test_frame_processor.py::TestMultinodeToAircraft::test_contributing_track_anomaly_propagates": 0.01239699899997504, + "tests/test_frame_processor.py::TestMultinodeToAircraft::test_subsonic_not_flagged": 0.014847704999993994, + "tests/test_frame_processor.py::TestMultinodeToAircraft::test_supersonic_speed_is_not_flagged": 0.012696322000039117, + "tests/test_frame_processor.py::TestNormalizeHexKey::test_basic": 0.01273617499998636, + "tests/test_frame_processor.py::TestNormalizeHexKey::test_empty": 0.012675080999969168, + "tests/test_frame_processor.py::TestNormalizeHexKey::test_none": 0.012867742999986831, + "tests/test_frame_processor.py::TestNormalizeHexKey::test_whitespace": 0.012931060999989086, + "tests/test_frame_processor.py::TestPositionDistanceKm::test_known_distance": 0.01498607599998536, + "tests/test_frame_processor.py::TestPositionDistanceKm::test_same_point": 0.01388243599998873, + "tests/test_frame_processor.py::TestPositionDistanceKm::test_small_distance": 0.014507099999974571, + "tests/test_frame_processor.py::TestProcessOneFrame::test_claiming_anchored_inputs_reach_the_solver_queue": 0.02448518999997873, + "tests/test_frame_processor.py::TestProcessOneFrame::test_invalid_adsb_entries_skipped": 0.018522238000002744, + "tests/test_frame_processor.py::TestProcessOneFrame::test_process_valid_frame": 0.024086002000018425, + "tests/test_frame_processor.py::TestProcessOneFrame::test_sets_aircraft_dirty_with_adsb": 0.0186398789999771, + "tests/test_frame_processor.py::TestResolveAltitudes::test_a_null_takes_the_terrain_default": 0.012756845000012618, + "tests/test_frame_processor.py::TestResolveAltitudes::test_an_absent_altitude_takes_the_terrain_default": 0.012285338000026513, + "tests/test_frame_processor.py::TestResolveAltitudes::test_sea_level_survives": 0.015365286000019296, + "tests/test_frame_processor.py::TestResolveGroundTruthHex::test_exact_match": 0.013232668999989983, + "tests/test_frame_processor.py::TestResolveGroundTruthHex::test_no_match_too_far": 0.014798604000048954, + "tests/test_frame_processor.py::TestResolveGroundTruthHex::test_proximity_match": 0.013462919999994938, + "tests/test_frame_starvation.py::test_a_heard_node_filing_nothing_is_starved": 0.012487519999979213, + "tests/test_frame_starvation.py::test_a_node_filing_frames_is_not": 0.012492979999990439, + "tests/test_frame_starvation.py::test_a_node_that_stopped_filing_is_measured_from_its_last_frame": 0.012702212000021973, + "tests/test_frame_starvation.py::test_a_restart_is_not_read_as_starvation": 0.012797110999997585, + "tests/test_frame_starvation.py::test_an_offline_node_is_left_to_the_offline_sweep": 0.012861630999992713, + "tests/test_frame_starvation.py::test_the_frame_workers_stamp_each_node_s_last_frame": 0.01813771799999131, + "tests/test_frame_starvation.py::test_the_monitor_alerts_once_per_node_and_resolves_when_frames_resume": 0.012456240000005891, + "tests/test_frame_starvation.py::test_the_node_s_own_report_is_quoted_with_how_long_it_has_held": 0.012370159999989028, + "tests/test_frame_starvation.py::test_the_synthetic_fleet_is_not_watched": 0.01253247299999316, + "tests/test_frame_starvation.py::test_the_window_is_configurable": 0.012370362000012847, + "tests/test_frame_worker_sharding.py::test_drain_helpers_walk_every_shard": 0.012351536999972268, + "tests/test_frame_worker_sharding.py::test_frames_from_different_nodes_still_run_in_parallel": 0.024817169999977295, + "tests/test_frame_worker_sharding.py::test_health_check_sees_a_backlog_spread_across_shards": 0.012776354000010315, + "tests/test_frame_worker_sharding.py::test_one_worker_is_a_plain_fifo": 0.06431999300002644, + "tests/test_frame_worker_sharding.py::test_queue_depth_counts_frames_parked_in_shards": 0.012848017999999684, + "tests/test_frame_worker_sharding.py::test_same_node_frames_are_serial_and_keep_arrival_order": 0.3214391360000377, + "tests/test_frame_worker_sharding.py::test_shard_mapping_is_stable_across_processes": 0.012343181000034065, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_altitude_m_to_ft_conversion": 0.012862163999983522, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_external_cache_used_when_live_absent": 0.012870228999986466, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_external_cache_used_when_live_stale": 0.012588931999999886, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_heading_passthrough": 0.01244306799998185, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_live_feed_returned_when_fresh": 0.01290014500000325, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_missing_lat_uses_solver_fallback": 0.012835776999992277, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_non_numeric_alt_defaults_to_zero": 0.012552112999969722, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_non_numeric_velocity_defaults_to_zero": 0.012504894000016975, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_none_alt_defaults_to_zero": 0.012529672999988861, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_velocity_ms_to_knots_conversion": 0.012793275000035464, + "tests/test_fresh_adsb_fallback.py::TestFreshAdsbFallback::test_zero_alt_m_produces_zero_alt_baro": 0.01268119499999898, + "tests/test_geo_delay_freshness.py::TestAdsbBootstrapCarriesDelay::test_first_encounter_fallback_seeds_delay_from_newest_detection": 0.018232191999970837, + "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_identity_evidence_comes_from_the_newest_detection": 0.019194766000026675, + "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_lazy_event_refreshes_delay_via_track_ref": 0.019169190000013714, + "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_materialized_event_refreshes_delay": 0.019220447000009244, + "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_materialized_multi_detection_event_takes_the_newest": 0.0196285109999792, + "tests/test_geo_delay_freshness.py::TestDelayRefreshBetweenSolves::test_zero_delay_does_not_clobber_last_good_value": 0.018654464999968923, + "tests/test_geo_delay_freshness.py::TestSolvedTrackUsesNewestDetection::test_latest_delay_is_newest_not_oldest": 0.0190814460000297, + "tests/test_geo_equivalence.py::TestInNodeBeam::test_a_zero_beam_width_is_treated_as_missing": 0.013022054000003891, + "tests/test_geo_equivalence.py::TestInNodeBeam::test_an_explicit_aim_wins_over_broadside": 0.015022655000024088, + "tests/test_geo_equivalence.py::TestInNodeBeam::test_it_agrees_on_a_randomised_sweep": 0.10569207800000413, + "tests/test_geo_equivalence.py::TestInNodeBeam::test_no_tx_and_no_aim_skips_the_bearing_test": 0.015025621000006595, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_infinite_max_range_km_falls_back_to_the_default": 0.012183973000048809, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_nan_azimuth_with_tx_falls_back_to_real_broadside_not_null_island": 0.015148831999994172, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_nan_azimuth_without_tx_falls_back_to_none_not_a_fabricated_bearing": 0.015040528999975322, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_nan_beam_width_falls_back_to_the_shared_default": 0.012246941999990213, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_non_finite_max_bistatic_range_km_is_treated_as_absent": 0.012361065000021654, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_string_zero_max_bistatic_no_longer_causes_a_false_miss": 0.012355556000017032, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_string_zero_max_bistatic_range_is_cast_to_a_falsy_float": 0.012256087999986676, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[-inf]": 0.012552152000012029, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[inf]": 0.012851293000039732, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[nan]": 0.015083579000020109, + "tests/test_geo_equivalence.py::TestNodeBeamParamsMalformedInput::test_various_malformed_azimuths_all_fall_back_the_same_way[not-a-number]": 0.012233415000025616, + "tests/test_geo_equivalence.py::TestPrimitives::test_bearing_matches": 0.01443166699999665, + "tests/test_geo_equivalence.py::TestPrimitives::test_bistatic_delay_matches_the_helper": 0.015078980999987834, + "tests/test_geo_equivalence.py::TestPrimitives::test_haversine_matches": 0.014552073000032806, + "tests/test_geo_equivalence.py::TestPrimitives::test_haversine_matches_the_helpers_asin_form": 0.01443714699999532, + "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_config_ack_sent_to_node": 0.012989804000056893, + "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_detection_frames_land_in_queue": 0.013627731999974912, + "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_node_registered_after_config": 0.01314922299999921, + "tests/test_golden_path.py::TestGoldenPath_Layer1_TCPHandshake::test_node_status_set_after_disconnect": 0.014808093999988614, + "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_active_track_has_stable_id": 0.04978832599999805, + "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_first_frame_creates_tentative_track": 0.020652310999992096, + "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_geolocation_attempted_after_promotion": 0.10578621499999485, + "tests/test_golden_path.py::TestGoldenPath_Layer2_FrameProcessor::test_n_frames_promote_to_active": 0.050159131999976125, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_aircraft_json_parseable": 0.12990003999999544, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_dashboard_counts_node": 0.1316092259999948, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_dashboard_publishes_the_refresh_cadence": 0.13095461700001465, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_health_ok": 0.131635555000031, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_radar_analytics_returns_json": 0.12923797899998135, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_radar_nodes_returns_json": 0.12867096199997263, + "tests/test_golden_path.py::TestGoldenPath_Layer3_HttpApi::test_unauthenticated_admin_write_rejected": 0.13172639700002264, + "tests/test_golden_path.py::TestGoldenPath_Layer4_FullStack::test_full_golden_path": 0.16420832799997243, + "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_a_rebuild_waiting_too_long_is_degraded": 0.012459029000012833, + "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_a_steady_queue_that_drains_is_healthy": 0.012512388000004648, + "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_an_empty_queue_is_healthy_whatever_the_gauge_says": 0.012479286000001366, + "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_the_ceiling_is_configurable": 0.012592377999993687, + "tests/test_health_branches.py::TestCoverageRebuildBacklogStaleness::test_the_cold_start_warm_up_does_not_fire": 0.012451765999969666, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_anomaly_flood": 0.12728022300001385, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_coverage_rebuild_backlog": 0.12530302299998652, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_coverage_rebuild_backlog_within_budget_is_healthy": 0.015809728999983008, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_high_miss_rate": 0.1280595730000016, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_invalid_accuracy_bytes_handled": 0.12359756899999752, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_no_active_tracks": 0.12698447799999713, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_node_dropout": 0.128676137000042, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_accuracy_degraded": 0.12502331400000344, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_latency_high": 0.12817117500000563, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_queue_backpressure": 0.12439904599997931, + "tests/test_health_branches.py::TestHealthDegradedBranches::test_solver_queue_drops": 0.12469236600003342, + "tests/test_health_branches.py::TestMissRateThreshold::test_a_blind_network_is_still_degraded": 0.012464588000000276, + "tests/test_health_branches.py::TestMissRateThreshold::test_nodes_with_nothing_in_range_do_not_drag_the_average_down": 0.012613017999996146, + "tests/test_health_branches.py::TestMissRateThreshold::test_the_observed_operating_band_is_not_degraded": 0.013429348000016716, + "tests/test_health_branches.py::TestMissRateThreshold::test_the_threshold_is_configurable": 0.014975415999998631, + "tests/test_health_branches.py::TestMissRateThreshold::test_the_threshold_is_the_boundary_it_claims_to_be": 0.01251636700001768, + "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_a_lifetime_count_alone_is_not_degraded": 0.012544077999990577, + "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_a_process_that_never_dropped_is_not_degraded": 0.012439923999977509, + "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_a_recent_drop_is_degraded_and_names_both_counts": 0.012509270999970568, + "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_record_solver_queue_drop_bumps_and_stamps": 0.01268659499999103, + "tests/test_health_branches.py::TestSolverQueueDropsRecency::test_the_window_is_configurable": 0.012570407000026762, + "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_a_degraded_server_still_answers_the_question": 0.12509465400000863, + "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_a_healthy_server_with_a_fleet_says_so": 0.12326229300001046, + "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_a_healthy_server_without_one_says_so_too": 0.1268056920000049, + "tests/test_health_branches.py::TestSyntheticFleetAdvertisement::test_the_readiness_probe_body_is_left_alone": 0.12644474699999364, + "tests/test_health_branches.py::TestThresholdSettings::test_a_malformed_value_falls_back_instead_of_raising": 0.012706884000010632, + "tests/test_health_branches.py::TestThresholdSettings::test_an_unset_value_uses_the_default": 0.012397515000031945, + "tests/test_health_branches.py::TestThresholdSettings::test_node_dropout_threshold_is_read_the_same_way": 0.01275315899999896, + "tests/test_health_branches.py::TestThresholdSettings::test_the_setting_is_read_per_call_not_once_at_import": 0.012608520000014778, + "tests/test_health_branches.py::TestThresholdSettings::test_whitespace_is_treated_as_unset": 0.012536391999958596, + "tests/test_health_monitor.py::TestComputeHealthIssues::test_healthy_state_has_no_issues": 0.013948531999972147, + "tests/test_health_monitor.py::TestComputeHealthIssues::test_known_lane_samples_do_not_flag_accuracy": 0.01275834899999495, + "tests/test_health_monitor.py::TestComputeHealthIssues::test_multinode_still_flags_alongside_known_lane_samples": 0.012655115999990585, + "tests/test_health_monitor.py::TestComputeHealthIssues::test_single_node_arc_error_does_not_flag_accuracy": 0.01290593600003831, + "tests/test_health_monitor.py::TestComputeHealthIssues::test_solver_drops_flagged_as_warning": 0.013112613999993528, + "tests/test_health_monitor.py::TestComputeHealthIssues::test_trusted_solve_degradation_flags_accuracy": 0.01276958200000422, + "tests/test_health_monitor.py::TestDarkSamplesReachTheProbe::test_accurate_dark_solves_do_not": 0.013142910999988544, + "tests/test_health_monitor.py::TestDarkSamplesReachTheProbe::test_dark_samples_are_binned_under_multinode_solve": 0.013283013999995319, + "tests/test_health_monitor.py::TestDarkSamplesReachTheProbe::test_degraded_dark_solves_fire_the_alert": 0.013453443000003062, + "tests/test_health_monitor.py::TestRunCycle::test_fires_alert_per_issue": 0.01255857600000354, + "tests/test_health_monitor.py::TestRunCycle::test_resolved_alert_when_issue_clears": 0.012743262000014965, + "tests/test_health_routes.py::TestHealth::test_health_degraded_disk_low": 0.12722535000000335, + "tests/test_health_routes.py::TestHealth::test_health_degraded_queue_saturated": 0.1288996619999807, + "tests/test_health_routes.py::TestHealth::test_health_degraded_stale_task": 0.12643419600001948, + "tests/test_health_routes.py::TestHealth::test_health_disk_usage_exception_does_not_crash": 0.12683143800001062, + "tests/test_health_routes.py::TestHealth::test_health_ok": 0.12515017999999145, + "tests/test_health_routes.py::TestHealth::test_health_strict_returns_200_when_ok": 0.12913150300002485, + "tests/test_health_routes.py::TestHealth::test_health_strict_returns_503_when_degraded": 0.12677198000002932, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[A1B2C3]": 0.012612625999963711, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[None]": 0.012801160999998729, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[]": 0.012604230999983201, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[a1b2c3d]": 0.012678972000031763, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[a1b2c]": 0.01260955000000763, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[g1b2c3]": 0.012635300000027883, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[mn-adsb-a1b2c3]": 0.012507680999959803, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[obj-01373]": 0.012685523000016019, + "tests/test_id_utils.py::TestIsTransponderHex::test_everything_else_is_refused[~~a1b2c3]": 0.01251429299998108, + "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[000001]": 0.013155914999998686, + "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[a1b2c3]": 0.013996300000030715, + "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[abcdef]": 0.012927604999987352, + "tests/test_id_utils.py::TestIsTransponderHex::test_transponder_shapes_pass[~a1b2c3]": 0.01314281099996606, + "tests/test_infrastructure.py::test_a_droplet_with_no_metrics_is_named_rather_than_left_blank": 0.013713711999997713, + "tests/test_infrastructure.py::test_a_malformed_sample_costs_its_own_metric_only": 0.013908297000000402, + "tests/test_infrastructure.py::test_a_non_finite_sample_is_skipped_not_clamped": 0.01243834999999649, + "tests/test_infrastructure.py::test_an_http_status_is_named_in_the_error": 0.013676070000002483, + "tests/test_infrastructure.py::test_build_snapshot_reports_unconfigured_without_token": 0.013428825999994842, + "tests/test_infrastructure.py::test_build_snapshot_survives_one_check_failing": 0.013769595000013624, + "tests/test_infrastructure.py::test_build_snapshot_survives_one_droplet_failing": 0.01374562099999821, + "tests/test_infrastructure.py::test_build_snapshot_survives_one_metric_failing": 0.014012660999981108, + "tests/test_infrastructure.py::test_check_and_droplet_pipelines_overlap": 0.013634975000002214, + "tests/test_infrastructure.py::test_concurrent_cold_callers_share_one_build": 0.013803660000007767, + "tests/test_infrastructure.py::test_cpu_series_is_busy_fraction_of_counter_deltas": 0.0126984279999931, + "tests/test_infrastructure.py::test_cpu_series_skips_an_interval_a_mode_has_no_sample_for": 0.012524902999984988, + "tests/test_infrastructure.py::test_cpu_series_without_idle_or_with_flat_counters_is_empty": 0.012645769000016571, + "tests/test_infrastructure.py::test_route_answers_503_when_a_cold_build_overruns": 0.024131984000007378, + "tests/test_infrastructure.py::test_route_returns_the_snapshot": 0.12765254000001391, + "tests/test_infrastructure.py::test_route_serves_the_last_good_snapshot_when_a_build_overruns": 0.024413102000011122, + "tests/test_infrastructure.py::test_snapshot_is_cached_for_the_ttl": 0.013598543999989943, + "tests/test_infrastructure.py::test_summarise_check_status_and_worst_uptime": 0.012763389999975061, + "tests/test_infrastructure.py::test_the_route_is_gated_on_require_admin": 0.013769935999988547, + "tests/test_infrastructure.py::test_unconfigured_snapshot_is_not_cached": 0.013483632000031776, + "tests/test_infrastructure.py::test_used_fraction_aligns_on_timestamp_and_skips_gaps": 0.012615581999966707, + "tests/test_ingest_event_loop.py::TestIngestDoesNotBlockTheLoop::test_bulk_registration_leaves_the_app_responsive": 2.018285000999981, + "tests/test_ingest_event_loop.py::TestIngestDoesNotBlockTheLoop::test_single_node_registration_leaves_the_app_responsive": 2.017921016000031, + "tests/test_ingest_event_loop.py::TestRegistrationStillHappens::test_bulk_node_is_registered": 0.0153767890000438, + "tests/test_ingest_event_loop.py::TestRegistrationStillHappens::test_single_node_is_registered": 0.015845627999993894, + "tests/test_ingest_event_loop.py::TestRegistrationStillHappens::test_the_registration_reaches_the_associator": 0.015610987000002297, + "tests/test_ingest_event_loop.py::TestTheNonHttpPathDoesNotBlockTheLoop::test_v1_pipeline_registration_leaves_the_loop_free": 2.0345504650000237, + "tests/test_ingest_event_loop.py::TestTheNonHttpRegistrationStillHappens::test_the_v1_node_reaches_the_registries": 0.02495598199996607, + "tests/test_known_claiming.py::TestContention::test_a_track_truncated_away_does_not_contest": 0.014037246000015102, + "tests/test_known_claiming.py::TestContention::test_claim_over_an_established_dark_track_is_contested": 0.018404193000009172, + "tests/test_known_claiming.py::TestContention::test_contested_still_set_for_a_track_inside_the_cap": 0.01426313900000764, + "tests/test_known_claiming.py::TestContention::test_ineligible_dark_track_does_not_contest": 0.01582053999999289, + "tests/test_known_claiming.py::TestContention::test_projection_set_is_capped": 0.014683196000021326, + "tests/test_known_claiming.py::TestGateVsFixAge::test_aged_fix_widens_the_gate": 0.013397073999982467, + "tests/test_known_claiming.py::TestGateVsFixAge::test_fresh_fix_keeps_the_base_gate": 0.01381085999997822, + "tests/test_known_claiming.py::TestGateVsFixAge::test_past_the_age_cap_is_no_candidate_at_all": 0.013291377000001603, + "tests/test_known_claiming.py::TestGlobalAssignment::test_no_geometry_claims_nothing": 0.013206836999984262, + "tests/test_known_claiming.py::TestGlobalAssignment::test_one_to_one_beats_greedy_on_a_crossing_pair": 0.013586078999992424, + "tests/test_known_claiming.py::TestGlobalAssignment::test_positionless_node_claims_nothing": 0.013217548999961082, + "tests/test_known_claiming.py::TestGlobalAssignment::test_ungated_detection_stays_dark": 0.013578394999996135, + "tests/test_known_claiming.py::TestGroundSentinelInTags::test_grounded_tag_does_not_silently_disable_the_lane": 0.01953764099999944, + "tests/test_known_claiming.py::TestGroundSentinelInTags::test_grounded_tag_still_claims": 0.013362529000005452, + "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_binding_strips_claimed_indices_from_the_pipeline_frame": 0.024261610000024803, + "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_known_lane_gets_its_own_perf_bucket": 0.03195086900001343, + "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_off_computes_nothing": 0.023786769999986745, + "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_perf_line_carries_the_known_bucket": 0.024650788999991846, + "tests/test_known_claiming.py::TestModesInProcessOneFrame::test_shadow_records_the_claim_but_changes_nothing_downstream": 0.024405769999958693, + "tests/test_known_claiming.py::TestNodeBiasHook::test_missing_module_degrades_silently": 0.012830002000015384, + "tests/test_known_claiming.py::TestNodeBiasHook::test_residuals_are_recorded_signed": 0.01288500399999748, + "tests/test_known_claiming.py::TestNodeTagPrecedence::test_node_supplied_tag_wins_over_a_better_cached_match": 0.01341437399997858, + "tests/test_known_claiming.py::TestNodeTagPrecedence::test_tag_is_not_regated": 0.01321052499997677, + "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[antimeridian]": 0.1363171360000024, + "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[bistatic]": 0.1451931219999949, + "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[coverage_limit]": 0.4353180340000051, + "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[fov]": 0.1545154529999877, + "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[high_latitude]": 0.14626367799999684, + "tests/test_known_claiming.py::TestRangePrescreen::test_prescreen_never_disagrees_with_the_gate[monostatic]": 0.134273171999979, + "tests/test_known_claiming.py::TestRegistryContract::test_claim_record_shape": 0.012810284000011052, + "tests/test_known_claiming.py::TestRegistryContract::test_reset_for_tests_clears_registry_and_counters": 0.012794565000007196, + "tests/test_known_claiming.py::TestStripAndGc::test_feed_gc_prunes_stale_hexes_only": 0.01278817099998264, + "tests/test_known_claiming.py::TestStripAndGc::test_non_list_keys_pass_through": 0.012720805000014934, + "tests/test_known_claiming.py::TestStripAndGc::test_strip_all_claimed_leaves_empty_lists": 0.012803731000019525, + "tests/test_known_claiming.py::TestVisibilityGate::test_beyond_the_footprint_claims_nothing": 0.013392135999993116, + "tests/test_known_claiming.py::TestVisibilityGate::test_in_beam_candidate_still_claims": 0.013505288000033033, + "tests/test_known_claiming.py::TestVisibilityGate::test_node_tag_is_not_visibility_gated": 0.013333547999991424, + "tests/test_known_claiming.py::TestVisibilityGate::test_out_of_beam_bearing_claims_nothing": 0.013342200999971965, + "tests/test_known_claiming.py::TestVisibilityGate::test_prescreen_rejects_are_counted_as_visibility_rejects": 0.013202078999995592, + "tests/test_known_claiming.py::TestVisibilityGate::test_the_learned_coverage_prior_does_not_gate_claims": 0.013395131000009997, + "tests/test_known_claiming.py::TestVisibilityGate::test_the_wedge_and_footprint_still_gate_with_a_prior_present": 0.013200406999999359, + "tests/test_known_claiming.py::TestWorldGate::test_handshake_verdict_beats_the_prefix_rule": 0.01273117600001683, + "tests/test_known_claiming.py::TestWorldGate::test_node_tag_is_not_world_gated": 0.012759768999984544, + "tests/test_known_claiming.py::TestWorldGate::test_real_node_skips_a_sim_world_candidate": 0.012710617000038837, + "tests/test_known_claiming.py::TestWorldGate::test_sim_node_claims_a_sim_world_candidate": 0.013007725000022674, + "tests/test_known_claiming.py::TestWorldGate::test_sim_node_skips_a_real_world_candidate": 0.012680218999975068, + "tests/test_known_claiming.py::TestWorldGate::test_unregistered_node_falls_back_to_the_prefix_rule": 0.01267942800001265, + "tests/test_known_claiming.py::TestWorldGate::test_untagged_candidate_is_not_gated": 0.012855618000003233, + "tests/test_known_lane.py::TestAccuracySampleThrottle::test_distinct_hexes_are_throttled_independently": 0.013616577000021834, + "tests/test_known_lane.py::TestAccuracySampleThrottle::test_same_hex_samples_again_once_the_window_elapses": 0.013734797999973125, + "tests/test_known_lane.py::TestAccuracySampleThrottle::test_second_attempt_within_the_window_is_not_sampled": 0.013878648000002158, + "tests/test_known_lane.py::TestAccuracySampleThrottle::test_throttle_map_is_swept_of_dead_hexes": 0.013474981000001662, + "tests/test_known_lane.py::TestAccuracySampleThrottle::test_unconverged_attempts_do_not_consume_the_window": 0.013615924999982099, + "tests/test_known_lane.py::TestClaimSelection::test_a_newer_claim_reopens_the_hex": 0.014918064999960734, + "tests/test_known_lane.py::TestClaimSelection::test_contested_claims_are_skipped": 0.01522755700000289, + "tests/test_known_lane.py::TestClaimSelection::test_incompatible_timestamps_drop_the_lagging_node": 0.020840151000015794, + "tests/test_known_lane.py::TestClaimSelection::test_malformed_claim_entries_are_survived": 0.014633150999998179, + "tests/test_known_lane.py::TestClaimSelection::test_missing_adsb_fix_produces_no_attempt": 0.014031934999991336, + "tests/test_known_lane.py::TestClaimSelection::test_newest_claim_per_node_wins": 0.01947319900000366, + "tests/test_known_lane.py::TestClaimSelection::test_single_node_claims_produce_no_attempt": 0.016291164000023173, + "tests/test_known_lane.py::TestClaimSelection::test_stale_claims_produce_no_attempt": 0.01578178699998034, + "tests/test_known_lane.py::TestClaimSelection::test_unchanged_registry_is_not_resolved_twice": 0.014781352000028392, + "tests/test_known_lane.py::TestClassification::test_displaced_solve_is_a_ghost_and_still_sampled": 0.01413741199999663, + "tests/test_known_lane.py::TestClassification::test_ghost_is_never_published_even_in_binding": 0.013205045999995946, + "tests/test_known_lane.py::TestClassification::test_solver_exception_counts_as_no_converge": 0.014114609000017708, + "tests/test_known_lane.py::TestClassification::test_unconverged_solve_records_but_never_samples": 0.013324536999959946, + "tests/test_known_lane.py::TestMaybeRunPass::test_interval_gate_holds_between_passes": 0.013808497999974634, + "tests/test_known_lane.py::TestMaybeRunPass::test_live_flag_absent_is_a_noop": 0.01362917900002003, + "tests/test_known_lane.py::TestMaybeRunPass::test_never_raises_even_on_a_garbage_registry": 0.014388171999996757, + "tests/test_known_lane.py::TestMaybeRunPass::test_off_mode_returns_before_the_lock": 0.013392697000000453, + "tests/test_known_lane.py::TestModeGating::test_binding_publishes_under_the_hex": 0.014510131000008641, + "tests/test_known_lane.py::TestModeGating::test_binding_supersedes_the_regular_pipelines_entry": 0.015950634000006403, + "tests/test_known_lane.py::TestModeGating::test_off_mode_does_nothing_at_all": 0.013317836000027228, + "tests/test_known_lane.py::TestModeGating::test_shadow_records_but_publishes_nothing": 0.013578784000003452, + "tests/test_known_lane.py::TestModeGating::test_unrecognised_live_mode_falls_back_to_off": 0.01326377399999501, + "tests/test_known_lane.py::TestModeGating::test_unrecognised_override_falls_back_to_off": 0.01372525999997265, + "tests/test_known_lane.py::TestPublishFailureContainment::test_a_failing_publish_does_not_skip_the_remaining_hexes": 0.01697990200003119, + "tests/test_known_lane.py::TestPublishResidualGate::test_absent_rms_delay_publishes": 0.015971090999983062, + "tests/test_known_lane.py::TestPublishResidualGate::test_high_rms_truth_match_is_classified_sampled_but_not_published": 0.0158701929999836, + "tests/test_known_lane.py::TestPublishResidualGate::test_low_rms_truth_match_publishes_ungated": 0.015869681999987506, + "tests/test_known_lane.py::TestPublishResidualGate::test_raising_the_bound_publishes_the_same_solve": 0.016832275999973945, + "tests/test_known_lane.py::TestPublishResidualGate::test_shadow_mode_never_counts_a_rejection": 0.015870363000004772, + "tests/test_known_lane.py::TestRealSolve::test_three_node_claims_solve_and_tag_n_nodes": 0.017721104000031573, + "tests/test_known_lane.py::TestRealSolve::test_two_node_claims_solve_and_truth_match": 0.01645570100004079, + "tests/test_known_lane.py::TestSliceAAbsence::test_absent_known_claims_is_a_noop": 0.013447238000026118, + "tests/test_known_lane.py::TestSliceAAbsence::test_absent_mode_reads_as_off": 0.013115697999978693, + "tests/test_known_track_follow.py::TestFollowClaim::test_c_a_fresh_fix_stays_with_path_2": 0.01349413699998081, + "tests/test_known_track_follow.py::TestFollowClaim::test_c_a_new_node_claims_from_the_lanes_own_position": 0.013682800000026418, + "tests/test_known_track_follow.py::TestFollowClaim::test_c_nothing_is_offered_below_the_solve_count": 0.013506500000005417, + "tests/test_known_track_follow.py::TestFollowClaim::test_c_nothing_is_offered_for_a_stale_entry": 0.014395246999981737, + "tests/test_known_track_follow.py::TestFollowClaim::test_c_the_original_stale_fix_is_carried_when_a_hold_has_one": 0.027606493000007504, + "tests/test_known_track_follow.py::TestFollowClaim::test_c_the_path_is_off_when_the_max_age_is_zero": 0.014284558000014158, + "tests/test_known_track_follow.py::TestReanchor::test_b_a_fix_seeded_ghost_never_reanchors": 0.014598246000019799, + "tests/test_known_track_follow.py::TestReanchor::test_b_inconsistent_kf_ghosts_do_not_reanchor": 0.01334795099998587, + "tests/test_known_track_follow.py::TestReanchor::test_b_two_consistent_kf_ghosts_reanchor_and_publish": 0.013956092999990233, + "tests/test_known_track_follow.py::TestStaleAdsbVelocity::test_a_fresh_fix_still_seeds_the_velocity": 0.01325607099997228, + "tests/test_known_track_follow.py::TestStaleAdsbVelocity::test_a_stale_eastbound_fix_does_not_hold_the_filter_east": 0.014283134999999447, + "tests/test_known_track_follow.py::test_solver_stats_export_the_new_counters": 0.01330765800000222, + "tests/test_known_track_hold.py::TestDelayRatePhysics::test_delay_rate_sign_against_the_simulator": 0.016715648000030114, + "tests/test_known_track_hold.py::TestHoldPath::test_fresh_fix_that_agrees_refreshes_the_hold": 0.013653888000021652, + "tests/test_known_track_hold.py::TestHoldPath::test_fresh_fix_that_disagrees_drops_the_hold": 0.013661439000003384, + "tests/test_known_track_hold.py::TestHoldPath::test_gap_beyond_the_window_expires_the_hold": 0.01348193100002959, + "tests/test_known_track_hold.py::TestHoldPath::test_hold_precedes_dark_follow": 0.01355935800000907, + "tests/test_known_track_hold.py::TestHoldPath::test_tagged_frame_then_silence_keeps_the_claim": 0.013751968999997644, + "tests/test_known_track_hold.py::TestHoldPath::test_zero_gap_is_the_rollback_lever": 0.014195010999998203, + "tests/test_known_track_hold.py::TestKnownLaneStaleSeed::test_fresh_fix_seeds_from_the_fix": 0.013176321999992524, + "tests/test_known_track_hold.py::TestKnownLaneStaleSeed::test_stale_fix_seeds_from_the_lanes_own_solve": 0.013035446999992928, + "tests/test_known_track_hold.py::TestKnownLaneStaleSeed::test_stale_fix_without_a_prior_solve_falls_back": 0.012938773999991326, + "tests/test_known_track_hold.py::TestSimulationIntegration::test_link_survives_the_transponder_going_quiet": 0.05157756699998117, + "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[None-False]": 0.12393043900001999, + "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[None-True]": 0.1243032320000168, + "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[executor-False]": 0.12819894800000498, + "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[executor-True]": 0.12482645900001899, + "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[solver-False]": 0.12487070199998129, + "tests/test_lifespan_cleanup.py::test_cleanup_awaits_tasks_before_final_writes[solver-True]": 0.12513137999999913, + "tests/test_lifespan_cleanup.py::test_partial_startup_still_stops_workers": 0.12394659899999283, + "tests/test_lifespan_cleanup.py::test_restart_refuses_stopping_solver_before_restoring_or_priming_state": 0.024372698999997056, + "tests/test_lifespan_cleanup.py::test_restart_refuses_unfinished_background_work_before_restoring_state": 0.016408084000033796, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[ ]": 0.12597927500002015, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[%00]": 0.1271602089999817, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[../../etc/passwd]": 0.12499412399998278, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[]": 0.12644404400001008, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]": 0.12763583499997821, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_bad_token_is_refused_the_same_way[never-issued]": 0.12688082400001122, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_get_on_the_consume_route_does_not_redeem": 0.1261311470000237, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_a_second_redemption_fails": 0.12447335000001658, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_an_existing_superuser_cannot_sign_in_by_link": 0.12492300400003842, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_redeeming_opens_a_session": 0.12402550100000553, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_redeeming_twice_does_not_create_two_accounts": 0.12665246699998534, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_account_is_never_an_administrator": 0.12789256400003524, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_account_records_how_it_was_made": 0.12668296100002863, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_cookie_is_a_session_for_that_person": 0.12735823299996696, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_cookie_is_httponly_and_secure": 0.12611127899998564, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_failure_message_does_not_distinguish_the_reason": 0.12649894999998423, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_signed_in_user_carries_what_me_would_say_about_the_fleet": 0.1282143849999784, + "tests/test_magic_link_routes.py::TestConsumeMagicLink::test_the_superuser_refusal_is_indistinguishable_from_a_dead_link": 0.12502383399993278, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_a_capped_address_still_gets_202": 0.12697191700002008, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_a_malformed_address_is_rejected": 0.126066389999977, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_a_refused_request_mints_no_token": 0.1269925160000298, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_accepts_and_mails_a_link": 0.12428489999999215, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_an_unknown_address_gets_the_same_answer_as_a_known_one": 0.12699450999997453, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_no_session_cookie_is_set_by_asking": 0.12704371699999228, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_link_host_comes_from_configuration_not_the_request": 0.12445543299998008, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_link_lands_at_the_consoles_root": 0.125946722000009, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_mail_reads_as_written": 0.1259755800000164, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_mailed_link_carries_the_token_and_nothing_else_does": 0.126106999000001, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_the_response_body_never_carries_the_token": 0.12556739500001868, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_unavailable_when_mail_is_not_configured": 0.12686743000000433, + "tests/test_magic_link_routes.py::TestRequestMagicLink::test_unavailable_when_the_link_host_is_unknown": 0.12646138800002404, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/%2F%2Fevil.example.com]": 0.12627970799999844, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[//evil.example.com/settings]": 0.1291534749999812, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[//evil.example.com]": 0.12789739499999087, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/\\\\evil.example.com]": 0.12668888199999628, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]": 0.12671505599999477, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/set tings]": 0.12685126999997465, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/settings#danger]": 0.1282951939999748, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[/settings?tab=security]": 0.12515560999997888, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[]": 0.12620760200002223, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[https://evil.example.com/]": 0.12681339099998468, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[javascript:alert(1)]": 0.12686872500000845, + "tests/test_magic_link_routes.py::TestSignInDestination::test_anything_but_a_plain_path_is_dropped_and_the_link_still_sent[settings]": 0.12633266599999615, + "tests/test_magic_link_routes.py::TestSignInDestination::test_it_does_not_change_the_answer": 0.12605436499998746, + "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/data/2026/09/17]": 0.12641039800001863, + "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/nodes/ret-0042]": 0.12676418800000988, + "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/settings]": 0.1266195670000343, + "tests/test_magic_link_routes.py::TestSignInDestination::test_the_link_carries_it[/sim/physics]": 0.1261543809999921, + "tests/test_magic_link_routes.py::TestSignInDestination::test_without_one_the_link_is_bare": 0.12738273799999433, + "tests/test_magic_link_routes.py::TestSourceDerivation::test_a_forwarding_header_from_an_untrusted_peer_buys_no_quota": 0.06844712500003425, + "tests/test_magic_link_routes.py::TestSourceDerivation::test_address_variants_share_quota[192.0.2.1-::ffff:192.0.2.1-192.0.2.2]": 0.023982386000000133, + "tests/test_magic_link_routes.py::TestSourceDerivation::test_address_variants_share_quota[2001:db8:1:2::1-2001:db8:1:2::2-2001:db8:1:3::1]": 0.024109694999992826, + "tests/test_magic_link_routes.py::TestSourceDerivation::test_trusted_proxy_uses_last_untrusted_hop": 0.02161494800000696, + "tests/test_magic_link_routes.py::TestSourceQuota::test_a_full_source_table_refuses_new_sources": 0.12647522299999991, + "tests/test_magic_link_routes.py::TestSourceQuota::test_beyond_the_quota_nothing_is_mailed": 0.12793494200002442, + "tests/test_magic_link_routes.py::TestSourceQuota::test_the_quota_counts_requests_not_addresses": 0.12692023700000732, + "tests/test_magic_links.py::TestConsumeMagicLink::test_a_second_redemption_fails": 0.02291001899999401, + "tests/test_magic_links.py::TestConsumeMagicLink::test_a_used_link_is_not_deleted": 0.020075351999992108, + "tests/test_magic_links.py::TestConsumeMagicLink::test_an_empty_token_fails_without_touching_the_database[ ]": 0.013810029999973494, + "tests/test_magic_links.py::TestConsumeMagicLink::test_an_empty_token_fails_without_touching_the_database[None]": 0.013667268999967064, + "tests/test_magic_links.py::TestConsumeMagicLink::test_an_empty_token_fails_without_touching_the_database[]": 0.013747647000002416, + "tests/test_magic_links.py::TestConsumeMagicLink::test_an_expired_link_fails": 0.019534906000046703, + "tests/test_magic_links.py::TestConsumeMagicLink::test_an_unknown_token_fails": 0.015515149999998812, + "tests/test_magic_links.py::TestConsumeMagicLink::test_redeeming_invalidates_the_addresss_other_links": 0.022755324999991444, + "tests/test_magic_links.py::TestConsumeMagicLink::test_redeeming_leaves_another_addresss_links_alone": 0.023393232999978864, + "tests/test_magic_links.py::TestConsumeMagicLink::test_returns_the_email": 0.02166506200003937, + "tests/test_magic_links.py::TestCreateMagicLink::test_asking_again_does_not_invalidate_the_outstanding_link": 0.02459487400000171, + "tests/test_magic_links.py::TestCreateMagicLink::test_email_is_normalised": 0.02019597700001441, + "tests/test_magic_links.py::TestCreateMagicLink::test_expiry_is_fifteen_minutes": 0.020354894999996986, + "tests/test_magic_links.py::TestCreateMagicLink::test_returns_a_token_and_stores_only_its_hash": 0.02036103699998648, + "tests/test_magic_links.py::TestCreateMagicLink::test_the_raw_token_appears_nowhere_in_the_row": 0.020398895999960587, + "tests/test_magic_links.py::TestCreateMagicLink::test_two_requests_give_two_different_tokens": 0.02096387599996774, + "tests/test_magic_links.py::TestOutstandingLinkCap::test_beyond_the_cap_no_link_is_issued": 0.028194202000008772, + "tests/test_magic_links.py::TestOutstandingLinkCap::test_expired_links_do_not_count_against_the_cap": 0.03072981200000413, + "tests/test_magic_links.py::TestOutstandingLinkCap::test_expired_rows_are_cleared_rather_than_accumulating": 0.021344739999989315, + "tests/test_magic_links.py::TestOutstandingLinkCap::test_the_cap_is_per_address": 0.028695442999975285, + "tests/test_magic_links.py::test_a_claim_link_cannot_be_redeemed_as_a_sign_in": 0.017643209999988585, + "tests/test_magic_links.py::test_a_refusal_by_intent_leaves_the_link_usable_by_its_rightful_redeemer": 0.019774957999970866, + "tests/test_magic_links.py::test_a_sign_in_link_cannot_be_redeemed_as_a_claim": 0.017390466000023252, + "tests/test_magic_links.py::test_a_sign_in_link_is_about_nobody_s_node": 0.021455287999998518, + "tests/test_magic_links.py::test_claiming_does_not_wipe_an_outstanding_sign_in_link": 0.022962082999981703, + "tests/test_magic_links.py::test_claiming_one_node_does_not_wipe_the_link_for_another": 0.026892261000000417, + "tests/test_magic_links.py::test_invalidating_an_unknown_handle_is_not_an_error": 0.017753656000024876, + "tests/test_magic_links.py::test_invalidating_makes_a_link_unredeemable": 0.02384990699997047, + "tests/test_magic_links.py::test_invalidating_one_link_leaves_the_others_alone": 0.026299111000014364, + "tests/test_magic_links.py::test_peeking_a_spent_link_gives_nothing": 0.022640608000017437, + "tests/test_magic_links.py::test_peeking_does_not_spend_the_link": 0.02464579899995556, + "tests/test_magic_links.py::test_peeking_is_bound_by_intent_like_redeeming": 0.020479163999993943, + "tests/test_magic_links.py::test_signing_in_does_not_wipe_an_outstanding_claim_link": 0.02286222500001145, + "tests/test_magic_links.py::test_the_cap_is_counted_per_intent": 0.03795272900001123, + "tests/test_magic_links.py::test_the_node_travels_with_a_claim_link": 0.02150524099999984, + "tests/test_magic_links.py::test_the_sweep_still_clears_abandoned_links_of_the_same_intent": 0.023907236000013654, + "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_complete_configuration_resolves": 0.015990478000020403, + "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_each_missing_setting_is_unconfigured_and_named[CLOUDFLARE_ACCOUNT_ID]": 0.0164592069999685, + "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_each_missing_setting_is_unconfigured_and_named[CLOUDFLARE_EMAIL_TOKEN]": 0.016252758000035783, + "tests/test_mail.py::TestCloudflareRequiresItsSettings::test_each_missing_setting_is_unconfigured_and_named[MAIL_FROM]": 0.016270181999999522, + "tests/test_mail.py::TestLogDestination::test_log_transport_is_announced_loudly": 0.0137028560000374, + "tests/test_mail.py::TestLogDestination::test_names_the_transport_and_sender": 0.013898713999992651, + "tests/test_mail.py::TestLogDestination::test_never_prints_the_token": 0.013723755000000892, + "tests/test_mail.py::TestLogDestination::test_says_nothing_when_unconfigured": 0.013506078000006028, + "tests/test_mail.py::TestLogTransport::test_needs_no_token": 0.015772428999980548, + "tests/test_mail.py::TestLogTransport::test_refusal_leaves_mail_unconfigured_rather_than_falling_back": 0.013676578000030304, + "tests/test_mail.py::TestLogTransport::test_refused_in_production": 0.015034143000036693, + "tests/test_mail.py::TestSend::test_a_bare_sender_address_is_sent_without_a_name": 0.014394144000021925, + "tests/test_mail.py::TestSend::test_a_linefeed_in_a_header_is_refused_without_raising[subject]": 0.013764562999995178, + "tests/test_mail.py::TestSend::test_a_linefeed_in_a_header_is_refused_without_raising[to]": 0.013820456000019021, + "tests/test_mail.py::TestSend::test_a_network_failure_is_logged_and_returns_false[timeout]": 0.01514722699999993, + "tests/test_mail.py::TestSend::test_a_network_failure_is_logged_and_returns_false[unreachable]": 0.014485264999990477, + "tests/test_mail.py::TestSend::test_a_non_ascii_body_still_sends": 0.014449046999999382, + "tests/test_mail.py::TestSend::test_an_error_response_is_logged_with_cloudflares_reason": 0.014631028999986029, + "tests/test_mail.py::TestSend::test_an_error_response_that_is_not_json_does_not_raise": 0.01460725299995147, + "tests/test_mail.py::TestSend::test_an_undeliverable_recipient_is_a_failure[permanent_bounces]": 0.014741257000025598, + "tests/test_mail.py::TestSend::test_an_undeliverable_recipient_is_a_failure[suppressed_recipients]": 0.014748469000011255, + "tests/test_mail.py::TestSend::test_authenticates_with_the_token_as_a_bearer": 0.014897348000005195, + "tests/test_mail.py::TestSend::test_log_transport_keeps_a_long_url_unbroken": 0.014667817000031391, + "tests/test_mail.py::TestSend::test_log_transport_writes_the_body": 0.03421113699999978, + "tests/test_mail.py::TestSend::test_posts_to_the_accounts_send_endpoint": 0.0157816260000061, + "tests/test_mail.py::TestSend::test_sends_sender_recipient_subject_and_body": 0.014634112999971194, + "tests/test_mail.py::TestSend::test_the_request_has_a_timeout": 0.014538395000016635, + "tests/test_mail.py::TestSend::test_token_never_appears_in_logs_on_failure[error-response]": 0.014260854000013978, + "tests/test_mail.py::TestSend::test_token_never_appears_in_logs_on_failure[network]": 0.01475821799994037, + "tests/test_mail.py::TestSend::test_unconfigured_returns_false_and_does_not_raise": 0.013336350999992419, + "tests/test_mail.py::TestSendInBackground::test_a_thread_that_never_started_gives_its_slot_back": 0.013791452999981857, + "tests/test_mail.py::TestSendInBackground::test_delivery_runs_on_the_thread": 0.014487487999986115, + "tests/test_mail.py::TestSendInBackground::test_drops_the_send_once_the_cap_is_reached": 0.013902571999977908, + "tests/test_mail.py::TestSendInBackground::test_returns_without_waiting_for_delivery": 0.014286359999999831, + "tests/test_mail.py::TestSendInBackground::test_the_slot_is_released_when_delivery_finishes": 0.01444188199999985, + "tests/test_mail.py::TestSendInBackground::test_the_slot_is_released_when_delivery_raises": 0.014378764999975147, + "tests/test_mail.py::TestSendInBackground::test_thread_creation_failure_does_not_reach_the_caller": 0.013898701999977447, + "tests/test_mail.py::TestTransport::test_empty_string_treated_as_unset": 0.01584922200001415, + "tests/test_mail.py::TestTransport::test_unknown_value_warns_and_is_unconfigured": 0.016035883000000695, + "tests/test_mail.py::TestTransport::test_unset_does_not_warn": 0.01593233899998836, + "tests/test_mail.py::TestTransport::test_unset_is_unconfigured": 0.015855754000000388, + "tests/test_mail.py::TestTransport::test_value_is_case_insensitive_and_trimmed": 0.016112125000034894, + "tests/test_mail.py::TestTransport::test_whitespace_only_treated_as_unset": 0.01580773499998145, + "tests/test_mender_lookup.py::test_a_401_raises_mender_unreachable": 0.01378656500003217, + "tests/test_mender_lookup.py::test_a_5xx_raises_mender_unreachable": 0.013725209000000405, + "tests/test_mender_lookup.py::test_a_device_with_another_identity_resolves_to_none": 0.013889433999992207, + "tests/test_mender_lookup.py::test_a_full_page_logs_a_warning_and_still_resolves": 0.01431091599997103, + "tests/test_mender_lookup.py::test_a_garbage_mender_server_raises_mender_unreachable": 0.014055007999985492, + "tests/test_mender_lookup.py::test_a_json_object_body_raises_mender_unreachable": 0.014000405000018645, + "tests/test_mender_lookup.py::test_a_list_of_non_dict_elements_raises_mender_unreachable": 0.01385363000002826, + "tests/test_mender_lookup.py::test_a_malformed_device_ahead_of_the_requested_one_still_resolves_it": 0.013980768000010357, + "tests/test_mender_lookup.py::test_a_malformed_device_with_no_match_raises_mender_unreachable": 0.01417160600001921, + "tests/test_mender_lookup.py::test_a_malformed_timeout_raises_mender_unreachable": 0.013453719000011688, + "tests/test_mender_lookup.py::test_a_non_ascii_mender_server_raises_mender_unreachable": 0.013764440999977978, + "tests/test_mender_lookup.py::test_a_non_json_200_raises_mender_unreachable": 0.013862526000053776, + "tests/test_mender_lookup.py::test_a_non_list_auth_sets_raises_mender_unreachable": 0.013720981000034271, + "tests/test_mender_lookup.py::test_a_non_pem_pubkey_resolves_without_a_fingerprint": 0.014037294000019074, + "tests/test_mender_lookup.py::test_a_non_string_auth_set_id_resolves_without_it": 0.013911687999978994, + "tests/test_mender_lookup.py::test_a_non_string_node_id_raises_mender_unreachable": 0.014264330000003156, + "tests/test_mender_lookup.py::test_a_non_string_pubkey_resolves_without_a_fingerprint": 0.014027203999972926, + "tests/test_mender_lookup.py::test_a_pending_device_resolves_but_is_not_accepted": 0.013866953999979614, + "tests/test_mender_lookup.py::test_a_timeout_raises_mender_unreachable": 0.013892232000017657, + "tests/test_mender_lookup.py::test_accepted_status_with_no_accepted_auth_set_is_ambiguous": 0.014170202999991943, + "tests/test_mender_lookup.py::test_an_accepted_auth_set_with_a_non_accepted_status_warns_but_resolves_to_its_own_status": 0.013990264000028674, + "tests/test_mender_lookup.py::test_an_accepted_device_resolves": 0.0157521800000211, + "tests/test_mender_lookup.py::test_an_auth_set_list_with_a_non_dict_element_raises_mender_unreachable": 0.01371047000000658, + "tests/test_mender_lookup.py::test_an_empty_server_falls_back_to_the_default": 0.013990725000013526, + "tests/test_mender_lookup.py::test_an_empty_timeout_falls_back_to_the_default": 0.013906488000003492, + "tests/test_mender_lookup.py::test_an_unknown_device_resolves_to_none": 0.014269869000003155, + "tests/test_mender_lookup.py::test_identity_data_as_a_string_raises_mender_unreachable": 0.01376163700001598, + "tests/test_mender_lookup.py::test_mender_pat_set_after_import_is_picked_up": 0.013645647999993571, + "tests/test_mender_lookup.py::test_more_than_one_accepted_set_is_refused_rather_than_resolved": 0.013943216000001257, + "tests/test_metro_and_arcs.py::TestArcBuilderWithDelay::test_accepts_float_delay": 0.01357461599999965, + "tests/test_metro_and_arcs.py::TestArcBuilderWithDelay::test_accepts_track_object": 0.013755403000004662, + "tests/test_metro_and_arcs.py::TestArcBuilderWithDelay::test_zero_delay_returns_none": 0.014115070000030983, + "tests/test_metro_and_arcs.py::TestKnownMetros::test_has_atl_and_gvl": 0.013220171999989816, + "tests/test_metro_and_arcs.py::TestKnownMetros::test_metro_has_required_keys": 0.013099734999997281, + "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_case_insensitive": 0.012895040999978846, + "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_empty_string": 0.012932611999957544, + "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_multiple_metros": 0.012884420999995427, + "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_single_metro": 0.01305854799997519, + "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_unknown_metro_skipped": 0.012872650000019803, + "tests/test_metro_and_arcs.py::TestParseMetroAreas::test_whitespace_handling": 0.012913556000000881, + "tests/test_migrations.py::test_0015_downgrade_hands_the_owners_back": 3.658663496000031, + "tests/test_migrations.py::test_0015_folds_every_owner_into_the_claims": 2.4991767250000123, + "tests/test_migrations.py::test_0015_refuses_an_owner_for_a_node_that_never_registered": 2.44814538899999, + "tests/test_migrations.py::test_0016_downgrade_drops_both_polled_radar_tables": 2.5607438259999924, + "tests/test_migrations.py::test_0017_downgrade_drops_the_network_move_columns": 2.5325454639999805, + "tests/test_migrations.py::test_every_migration_declares_rollback_safety": 0.014665678000028493, + "tests/test_migrations.py::test_every_migration_is_numbered_for_chain_order": 0.014875291999999263, + "tests/test_migrations.py::test_migrations_have_exactly_one_head": 1.041231597999996, + "tests/test_migrations.py::test_migrations_produce_the_schema_create_all_produces": 2.4442468950000205, + "tests/test_migrations.py::test_rollback_ahead_sentinel_matches_alembics_wording": 2.453869910999998, + "tests/test_migrations.py::test_upgrade_downgrade_upgrade_round_trips": 4.035056927999989, + "tests/test_migrations.py::test_upgrading_a_pre_alembic_database_succeeds": 3.7358948649999775, + "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_anchored_n2_inside_the_tight_cap_is_published": 0.0170340630000112, + "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_anchored_n2_past_the_tight_cap_is_rejected": 0.01624153800000272, + "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_anchored_n3_keeps_the_lane_cap": 0.016630835999990268, + "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_bottom_up_n2_keeps_the_lane_cap": 0.017005529000044817, + "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_cap_is_tunable_without_a_deploy": 0.01639043599999468, + "tests/test_mlat_history.py::TestAnchoredN2DisplacementCap::test_default_cap_is_1_5_km": 0.01604988700000831, + "tests/test_mlat_history.py::TestDarkAccuracySamples::test_adsb_anchored_solve_is_not_double_sampled_here": 0.013791411999989123, + "tests/test_mlat_history.py::TestDarkAccuracySamples::test_known_lane_records_are_not_sampled_by_this_path": 0.013519362000010915, + "tests/test_mlat_history.py::TestDarkAccuracySamples::test_no_ground_truth_means_no_sample": 0.016604428000022153, + "tests/test_mlat_history.py::TestDarkAccuracySamples::test_published_dark_solve_with_gt_is_sampled": 0.01677275300002634, + "tests/test_mlat_history.py::TestDarkAccuracySamples::test_rejected_solve_is_not_sampled": 0.014604978000022584, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_a_narrowed_dark_cap_rejects_what_the_default_publishes": 0.016240383999985397, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_adsb_anchored_solve_keeps_the_tight_cap": 0.014248448000017788, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_adsb_reject_leaves_the_dark_counter_alone": 0.015721143000007487, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_dark_reject_bumps_the_dark_counter_as_well": 0.015090218000011646, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_dark_solve_inside_the_dark_cap_is_published": 0.01495093600001951, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_dark_solve_past_the_dark_cap_is_rejected": 0.014694104999989577, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_default_dark_cap_is_two_grid_steps": 0.0136647849999747, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_env_var_overrides_the_dark_cap": 0.01623548499998151, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_history_record_carries_the_cap_that_judged_it": 0.014297781999971448, + "tests/test_mlat_history.py::TestDisplacementCapByLane::test_non_transponder_id_is_judged_dark": 0.01477259200004255, + "tests/test_mlat_history.py::TestDisplacementCapKm::test_anchored_n2_beats_either_lane[False]": 0.01596417799999017, + "tests/test_mlat_history.py::TestDisplacementCapKm::test_anchored_n2_beats_either_lane[True]": 0.01599880199998438, + "tests/test_mlat_history.py::TestDisplacementCapKm::test_dark_is_taken_as_given": 0.016205890999998473, + "tests/test_mlat_history.py::TestDisplacementCapKm::test_gate_and_record_both_read_it": 0.014906594000024143, + "tests/test_mlat_history.py::TestDisplacementCapKm::test_lane_caps_apply_otherwise": 0.015951243999978715, + "tests/test_mlat_history.py::TestEndpoint::test_all_returns_window": 0.018133224999985487, + "tests/test_mlat_history.py::TestEndpoint::test_lookup_by_hex": 0.018072820999975647, + "tests/test_mlat_history.py::TestEndpoint::test_rejects_nearby_within_10km": 0.018516833000006727, + "tests/test_mlat_history.py::TestEndpoint::test_requires_hex_or_all": 0.017216594999979407, + "tests/test_mlat_history.py::TestEndpoint::test_unknown_hex_returns_empty": 0.017447237999959953, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_a_node_aimed_away_is_named_foreign": 0.01429714000002491, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_a_node_out_of_range_is_foreign": 0.016404932999989796, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_all_nodes_in_cone_is_not_contaminated": 0.015721761999998307, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_an_adsb_record_is_not_stamped": 0.016711276999984648, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_no_ground_truth_means_no_stamp": 0.01564091099999132, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_trimmed_nodes_are_judged_too": 0.015162643999985903, + "tests/test_mlat_history.py::TestForeignNodeStamp::test_unregistered_nodes_are_not_stamped_clean": 0.016274248999991414, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_adsb_fix_dead_reckoned": 0.01325903500000436, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_dark_record_keeps_proximity_scan": 0.013363458999975819, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_record_alt_source_absent_is_none": 0.013603250999977945, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_record_carries_alt_source": 0.01437843299999031, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_binds_own_trail_not_nearest": 0.013408665000014253, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_no_trail_uses_live_adsb": 0.013329846999965866, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_stale_adsb_abstains": 0.013414616000005708, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_stale_trail_falls_back_to_adsb": 0.013181118000005654, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_unknown_hex_abstains": 0.013221783000034293, + "tests/test_mlat_history.py::TestGtIdentityBinding::test_seeded_uppercase_hex_normalized": 0.013260056000007125, + "tests/test_mlat_history.py::TestKeyDecisionObservability::test_a_reject_carries_neither_field": 0.015755213000005597, + "tests/test_mlat_history.py::TestKeyDecisionObservability::test_a_second_solve_nearby_is_recorded_as_a_re_key": 0.016578380000026982, + "tests/test_mlat_history.py::TestKeyDecisionObservability::test_a_solve_measured_before_the_entry_it_joins_is_still_a_re_key": 0.016777641999993875, + "tests/test_mlat_history.py::TestKeyDecisionObservability::test_adsb_lane_records_its_branch_and_no_distance": 0.01627375900000061, + "tests/test_mlat_history.py::TestKeyDecisionObservability::test_first_dark_solve_is_recorded_as_a_mint": 0.0140004349999856, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_default_lane_is_all_and_counts_every_lane": 0.02156543099997066, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_hex_lookup_reports_the_lane_block_too": 0.019686327999977493, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_known_volume_cannot_evict_dark_records_from_the_response": 0.02131784700000594, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_lane_dark_returns_only_dark_records": 0.020410343999998304, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_lane_known_returns_only_known_records": 0.020748980999997002, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_limit_is_clamped_to_the_maximum": 0.020567759000016395, + "tests/test_mlat_history.py::TestLaneFilterAndPerLaneCap::test_unknown_lane_is_rejected": 0.018545277999976406, + "tests/test_mlat_history.py::TestPerLaneDeques::test_all_query_merges_both_lanes_in_ts_order": 0.01845259200001692, + "tests/test_mlat_history.py::TestPerLaneDeques::test_hex_lookup_finds_a_known_lane_publish": 0.017572102999992012, + "tests/test_mlat_history.py::TestPerLaneDeques::test_known_lane_records_go_to_the_known_deque": 0.013256829999988895, + "tests/test_mlat_history.py::TestPerLaneDeques::test_known_lane_volume_cannot_evict_dark_records": 0.01579839499996183, + "tests/test_mlat_history.py::TestPerLaneDeques::test_regular_records_go_to_the_regular_deque": 0.013591558000001669, + "tests/test_mlat_history.py::TestPerLaneDeques::test_window_effective_minutes_is_zero_on_an_empty_store": 0.019525546000011218, + "tests/test_mlat_history.py::TestPerLaneDeques::test_window_effective_minutes_reports_the_oldest_record_held": 0.019896420999998554, + "tests/test_mlat_history.py::TestRecording::test_a_badly_fitted_n2_reject_is_labelled_chi2": 0.016325723999983666, + "tests/test_mlat_history.py::TestRecording::test_age_prune_drops_old_records": 0.01460540900001206, + "tests/test_mlat_history.py::TestRecording::test_beam_reject_is_recorded": 0.014401384999985112, + "tests/test_mlat_history.py::TestRecording::test_displacement_reject_records_distance": 0.014035710999991124, + "tests/test_mlat_history.py::TestRecording::test_known_lane_record_is_not_dark_inflated": 0.014569749999964188, + "tests/test_mlat_history.py::TestRecording::test_n2_reject_says_which_of_the_two_causes_it_was": 0.016597924999985025, + "tests/test_mlat_history.py::TestRecording::test_n2_unconfirmed_is_recorded": 0.01645086900001047, + "tests/test_mlat_history.py::TestRecording::test_published_record_carries_the_calibrated_sigma": 0.014593004999994719, + "tests/test_mlat_history.py::TestRecording::test_published_solve_records_positions_and_gt": 0.01761648500001911, + "tests/test_mlat_history.py::TestRecording::test_published_solver_hex_matches_feed_hex": 0.015037839999962443, + "tests/test_mlat_history.py::TestRecording::test_record_without_n_nodes_has_no_sigma": 0.014313783000005742, + "tests/test_mlat_history.py::TestRecording::test_reset_for_tests_clears_history": 0.014170212000010451, + "tests/test_mlat_history.py::TestRecording::test_rms_delay_reject_is_recorded": 0.014166365999983555, + "tests/test_mlat_history.py::TestRecording::test_rms_doppler_reject_is_recorded": 0.014054645999976856, + "tests/test_mlat_history.py::TestRecording::test_stale_gt_is_not_stamped": 0.014569190000003118, + "tests/test_mlat_history.py::TestRecording::test_unconverged_is_recorded": 0.016501735999980838, + "tests/test_mlat_history.py::TestResolveSkipDump::test_lane_filter_applies_to_skips": 0.02363833699999418, + "tests/test_mlat_history.py::TestResolveSkipDump::test_skip_records_the_blocking_claim": 0.02239300199997274, + "tests/test_mlat_history.py::TestResolveSkipDump::test_skips_do_not_land_in_the_solve_history": 0.016944001999974034, + "tests/test_mlat_history.py::TestResolveSkipDump::test_unknown_kind_is_rejected": 0.01785615399998619, + "tests/test_mlat_history.py::TestTrailSnapshotRace::test_nearest_gt_survives_concurrent_appends": 2.966345539000031, + "tests/test_mlat_verification.py::TestAdsbFallback::test_adsb_aircraft_used_when_no_ground_truth_trail": 0.017724839000010206, + "tests/test_mlat_verification.py::TestAdsbFallback::test_non_finite_feed_values_do_not_poison_the_truth_pool": 0.01722064299997328, + "tests/test_mlat_verification.py::TestAdsbFallbackEdgeCases::test_adsb_entry_with_lat_none_filtered": 0.0147343509999871, + "tests/test_mlat_verification.py::TestAdsbFallbackEdgeCases::test_adsb_hex_already_in_trails_not_duplicated": 0.01536414299999933, + "tests/test_mlat_verification.py::TestAdsbFallbackEdgeCases::test_stale_adsb_entry_not_added_to_truth_pool": 0.015351066999983232, + "tests/test_mlat_verification.py::TestByNodeCount::test_by_node_count_populated": 0.016681923999982473, + "tests/test_mlat_verification.py::TestEmptyState::test_empty_multinode_tracks": 0.01545239999998671, + "tests/test_mlat_verification.py::TestEmptyState::test_empty_truth_pool": 0.014848344999961682, + "tests/test_mlat_verification.py::TestEmptyState::test_returns_valid_json_always": 0.015262120000016921, + "tests/test_mlat_verification.py::TestExternalAdsbFallback::test_external_adsb_skipped_when_already_in_live": 0.016015723999970533, + "tests/test_mlat_verification.py::TestExternalAdsbFallback::test_external_adsb_skipped_when_no_coords": 0.013913781999974617, + "tests/test_mlat_verification.py::TestExternalAdsbFallback::test_external_adsb_used_as_truth": 0.015908331999980874, + "tests/test_mlat_verification.py::TestExternalAdsbTruthSchema::test_external_truth_keeps_metric_altitude_and_speed": 0.015240069000014955, + "tests/test_mlat_verification.py::TestHttpEndpoint::test_endpoint_reflects_refresh": 0.01994635500000186, + "tests/test_mlat_verification.py::TestHttpEndpoint::test_endpoint_returns_200": 0.018952140999999756, + "tests/test_mlat_verification.py::TestHttpEndpoint::test_mlat_accuracy_endpoint_reflects_refresh": 0.020063464999992675, + "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_empty_samples_returns_zero_count": 0.01583002599997485, + "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_per_aircraft_collapses_repeats_to_one_point_per_hex_per_n": 0.017235039999974333, + "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_per_aircraft_normal_excludes_anomalous": 0.017157284999996136, + "tests/test_mlat_verification.py::TestMlatAccuracyStats::test_stats_are_grouped_by_node_count": 0.01782124900000781, + "tests/test_mlat_verification.py::TestMlatSummaryHelper::test_summary_returns_empty_dict_on_corrupt_bytes": 0.015886480999995456, + "tests/test_mlat_verification.py::TestMlatSummaryHelper::test_summary_returns_expected_keys_after_refresh": 0.018095873000021356, + "tests/test_mlat_verification.py::TestMlatSummaryHelper::test_summary_returns_zeros_when_no_matches": 0.015935722999984137, + "tests/test_mlat_verification.py::TestNoDoubleMatching::test_two_solves_near_same_truth_only_one_matches": 0.017976448999974082, + "tests/test_mlat_verification.py::TestPercentiles::test_percentile_with_multiple_matches": 0.015947734999997465, + "tests/test_mlat_verification.py::TestProximityThreshold::test_solve_beyond_threshold_not_matched": 0.014375214000011738, + "tests/test_mlat_verification.py::TestProximityThreshold::test_solve_within_threshold_matched": 0.015708869000008008, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_multiple_close_targets_each_matched": 0.030094293999979982, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_noisy_measurements_still_converge[0.5-5.0]": 0.027133533000011312, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_noisy_measurements_still_converge[1.0-10.0]": 0.031791538000021546, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[2-1.0]": 0.02971188800003688, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[3-0.5]": 0.02077531100002261, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[4-0.5]": 0.020561837999963473, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_converges_n_nodes[5-0.5]": 0.022948122000002513, + "tests/test_mlat_verification.py::TestRealSolverIntegration::test_real_solver_moving_target": 0.02758018099999049, + "tests/test_mlat_verification.py::TestSingleMatch::test_close_solve_matches_truth": 0.01739743700002805, + "tests/test_mlat_verification.py::TestSingleMatch::test_error_metrics_in_summary": 0.016111714999993865, + "tests/test_mlat_verification.py::TestSolveResultFiltering::test_future_timestamp_skipped": 0.014244361000038452, + "tests/test_mlat_verification.py::TestSolveResultFiltering::test_solve_at_the_null_island_sentinel_is_skipped": 0.01353175399998463, + "tests/test_mlat_verification.py::TestSolveResultFiltering::test_solve_on_the_equator_is_kept": 0.015328945000021577, + "tests/test_mlat_verification.py::TestStaleFiltering::test_stale_multinode_result_skipped": 0.013661490000032472, + "tests/test_mlat_verification.py::TestStaleFiltering::test_stale_truth_point_skipped": 0.013461683999992147, + "tests/test_mlat_verification.py::TestStaleFiltering::test_time_matched_trail_point_used": 0.015422060999981113, + "tests/test_mlat_verification.py::TestTrackFields::test_all_expected_track_keys_present": 0.01470033800001147, + "tests/test_mlat_verification.py::TestTrackFields::test_rms_values_carried_through_to_track": 0.015463377999992645, + "tests/test_mlat_verification.py::TestTracksLimit::test_tracks_list_capped_at_100": 0.05109893400000942, + "tests/test_mn_lifetime.py::TestFeedGates::test_n2_confirmed_is_rendered": 0.01598305300001357, + "tests/test_mn_lifetime.py::TestFeedGates::test_n2_gate_disabled_via_min_solves_1": 0.01622575699997242, + "tests/test_mn_lifetime.py::TestFeedGates::test_n2_one_shot_is_not_rendered": 0.016050869999958195, + "tests/test_mn_lifetime.py::TestFeedGates::test_n3_confirmed_old_entry_is_rendered": 0.016085876999994753, + "tests/test_mn_lifetime.py::TestFeedGates::test_n3_one_shot_past_ttl_is_not_rendered_but_not_expired": 0.016127984999997125, + "tests/test_mn_lifetime.py::TestFeedGates::test_n3_one_shot_within_ttl_is_rendered": 0.016372833999980685, + "tests/test_mn_lifetime.py::TestForgetMnKey::test_all_four_stores_are_cleared": 0.01616793900001312, + "tests/test_mn_lifetime.py::TestForgetMnKey::test_forgetting_an_unknown_key_is_a_no_op": 0.015939070000030142, + "tests/test_mn_lifetime.py::TestHistoryRecord::test_published_record_carries_solve_count_and_source_track_ids": 0.016615227999977833, + "tests/test_mn_lifetime.py::TestHistoryRecord::test_published_record_carries_supersession_verdicts": 0.016657256000002008, + "tests/test_mn_lifetime.py::TestHistoryRecord::test_reject_record_carries_empty_supersession_fields": 0.016166085000037356, + "tests/test_mn_lifetime.py::TestHistoryRecordKfAction::test_published_records_carry_the_filter_action": 0.06747511400001827, + "tests/test_mn_lifetime.py::TestHistoryRecordKfAction::test_reject_record_carries_none": 0.016726706000014246, + "tests/test_mn_lifetime.py::TestSolveCount::test_first_publish_solve_count_is_1": 0.013980046000028779, + "tests/test_mn_lifetime.py::TestSolveCount::test_second_publish_same_position_solve_count_is_2": 0.01403976899999293, + "tests/test_mn_lifetime.py::TestSupersession::test_a_neighbour_five_km_off_is_no_longer_popped": 0.01653212200000098, + "tests/test_mn_lifetime.py::TestSupersession::test_an_in_gate_neighbour_at_a_different_altitude_is_counted_separately": 0.016429039000030343, + "tests/test_mn_lifetime.py::TestSupersession::test_disjoint_track_ids_do_not_supersede": 0.016777842999971426, + "tests/test_mn_lifetime.py::TestSupersession::test_shared_track_id_far_away_does_not_supersede": 0.016828758999992033, + "tests/test_mn_lifetime.py::TestSupersession::test_shared_track_id_within_the_gate_supersedes_old_entry": 0.0166491210000288, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_a_missing_altitude_on_either_side_fails_open": 0.01613210200000026, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_entry_far_ahead_of_this_solve_is_not_reckoned_backwards": 0.01587419800000589, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_entry_with_no_position_cannot_match_spatially": 0.015969156000011253, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_entry_with_no_source_ids_of_its_own_cannot_match_by_subset": 0.015892863999994233, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_an_out_of_order_entry_is_dead_reckoned_backwards": 0.015562213000038128, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_close_but_far_apart_in_altitude_does_not_match": 0.01593818799997848, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_dead_reckoning_carries_a_fast_target_into_the_gate": 0.016116642999975284, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_entry_older_than_max_age_does_not_match": 0.016034248000011075, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_identical_inputs_close_by_at_a_different_altitude_do_not_match": 0.016011316000003717, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_identical_inputs_match_beyond_the_spatial_gate_but_not_unboundedly": 0.016053203000012672, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_inside_the_age_scaled_gate_matches_and_reports_the_distance": 0.01597681100000159, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_just_outside_the_age_scaled_gate_does_not_match": 0.016038387000008925, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_partial_overlap_far_away_is_refused": 0.016309224999986327, + "tests/test_mn_lifetime.py::TestSupersessionMatch::test_the_supersession_base_is_tighter_than_the_keying_base": 0.016048575000013443, + "tests/test_mn_stale_coast.py::TestEvidenceAccessors::test_manoeuvre_level_is_none_without_filter_state": 0.013844291000026487, + "tests/test_mn_stale_coast.py::TestEvidenceAccessors::test_was_dropped_honours_a_shorter_window": 0.013425226000009616, + "tests/test_mn_stale_coast.py::TestEvidenceAccessors::test_was_dropped_reports_a_live_cooldown_and_nothing_else": 0.013651460000033921, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_a_key_older_than_the_ceiling_is_no_candidate": 0.014858333000006496, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_a_key_solved_a_moment_ago_is_no_candidate": 0.015238656000008177, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_a_key_too_far_away_is_no_candidate": 0.01403395699995258, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_altitude_mismatch_keeps_the_key": 0.01425681499998177, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_an_adsb_assisted_key_is_never_retired": 0.016612303000016482, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_disabled_by_env_changes_nothing": 0.014712188999993714, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_kf_manoeuvre_level_is_evidence_on_its_own": 0.014717549000010877, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_no_turn_evidence_keeps_the_key": 0.014203074000022298, + "tests/test_mn_stale_coast.py::TestRetirementAtMint::test_turn_dropped_key_is_retired_and_its_trail_transplanted": 0.015355373000005557, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[0.0]": 0.014438335000022562, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[3.9]": 0.014294556000010061, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[300.0]": 0.014604356999996071, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_ages_outside_the_band_are_skipped[60.1]": 0.015076179000004686, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_an_entry_without_a_position_is_skipped": 0.013996176000006244, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_evidence_refusal_outranks_an_altitude_one": 0.014066519000010658, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_manoeuvre_at_the_threshold_is_not_evidence": 0.014341784999970741, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_picks_the_nearest_of_several_candidates": 0.016029417999988027, + "tests/test_mn_stale_coast.py::TestStaleCoastCandidate::test_unknown_altitude_fails_open": 0.01439897200000928, + "tests/test_nginx_app_vhost.py::test_data_is_the_consoles_own_page": 0.013597607000008338, + "tests/test_nginx_app_vhost.py::test_no_vhost_serves_the_deleted_map": 0.029886304000001473, + "tests/test_nginx_app_vhost.py::test_nothing_is_served_from_the_old_mount": 0.01328717600000573, + "tests/test_nginx_app_vhost.py::test_the_console_is_the_root": 0.03035427200001095, + "tests/test_nginx_credential_zones.py::test_every_credential_location_uses_the_tight_zone": 0.031101522999989584, + "tests/test_nginx_credential_zones.py::test_no_credential_location_falls_into_the_general_api_zone": 0.030582379999998466, + "tests/test_nginx_credential_zones.py::test_the_credential_prefix_is_present_on_three_vhosts": 0.0308032140000023, + "tests/test_nginx_credential_zones.py::test_the_magic_link_endpoints_inherit_the_credential_prefix": 0.03106030699998996, + "tests/test_nginx_credential_zones.py::test_the_session_endpoints_are_still_the_only_ones_excused": 0.03046164299999532, + "tests/test_nginx_default_server.py::test_exactly_one_vhost_is_the_declared_default": 0.03365801900002907, + "tests/test_nginx_default_server.py::test_the_catch_all_precedes_every_named_vhost": 0.01449549399998773, + "tests/test_nginx_default_server.py::test_the_catch_all_refuses_rather_than_serving_anything": 0.014565083000007917, + "tests/test_nginx_default_server.py::test_the_catch_all_still_demands_cloudflares_client_certificate": 0.014582747000019936, + "tests/test_nginx_default_server.py::test_the_default_is_the_catch_all_and_not_a_named_vhost": 0.014343919000026517, + "tests/test_nginx_default_server.py::test_the_laptop_stack_keeps_its_fall_through": 0.03086741599997822, + "tests/test_nginx_origin_marker.py::test_each_suite_probes_the_marker[ci.yml (production smoke)]": 0.0801724629999967, + "tests/test_nginx_origin_marker.py::test_each_suite_probes_the_marker[staging-smoke-test.sh]": 0.016365059999998266, + "tests/test_nginx_origin_marker.py::test_each_suite_sources_the_shared_marker[ci.yml (production smoke)]": 0.07827322399998593, + "tests/test_nginx_origin_marker.py::test_each_suite_sources_the_shared_marker[staging-smoke-test.sh]": 0.014280348000028198, + "tests/test_nginx_origin_marker.py::test_every_tls_vhost_sends_the_marker": 0.0307873839999786, + "tests/test_nginx_origin_marker.py::test_no_suite_hardcodes_the_marker[ci.yml (production smoke)]": 0.07952222500000516, + "tests/test_nginx_origin_marker.py::test_no_suite_hardcodes_the_marker[staging-smoke-test.sh]": 0.016554943999977922, + "tests/test_nginx_origin_marker.py::test_the_marker_is_set_with_always": 0.013337481000007756, + "tests/test_nginx_origin_marker.py::test_the_marker_value_is_a_literal": 0.013143386999985296, + "tests/test_nginx_origin_marker.py::test_the_shell_and_the_config_agree_on_the_header_name": 0.013246771000012814, + "tests/test_nginx_origin_marker.py::test_the_shell_and_the_config_agree_on_the_marker": 0.013424114999963876, + "tests/test_nginx_origin_marker.py::test_the_shell_side_is_lowercase": 0.013159668000014335, + "tests/test_nginx_relative_redirects.py::test_no_block_turns_absolute_redirects_back_on[plain]": 0.01496801000001824, + "tests/test_nginx_relative_redirects.py::test_no_block_turns_absolute_redirects_back_on[tls]": 0.015744344000012234, + "tests/test_nginx_relative_redirects.py::test_redirects_are_relative_on_every_vhost[plain]": 0.03068039299998304, + "tests/test_nginx_relative_redirects.py::test_redirects_are_relative_on_every_vhost[tls]": 0.034524392000037096, + "tests/test_nginx_rewrite_ordering.py::test_every_proxy_pass_variable_is_assigned_in_its_location": 0.014156909000007545, + "tests/test_nginx_rewrite_ordering.py::test_no_break_before_a_set": 0.014440311000015527, + "tests/test_nginx_rewrite_ordering.py::test_the_template_still_has_locations_to_check": 0.03068107299998246, + "tests/test_nginx_static_cache.py::test_every_other_static_file_is_revalidated": 0.013643945999973539, + "tests/test_nginx_static_cache.py::test_immutable_is_confined_to_hashed_assets": 0.030659854999981917, + "tests/test_no_real_identities.py::test_no_real_node_identity_is_tracked": 2.197216050999998, + "tests/test_node_auth.py::test_a_committed_token_resolves_in_a_later_session": 0.03140487099997813, + "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Basic abc]": 0.0173969120000379, + "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Bearer ]": 0.0165711250000129, + "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Bearer]": 0.019674362999978712, + "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[Token xyz]": 0.016922243999999864, + "tests/test_node_auth.py::test_a_malformed_authorization_header_is_401[]": 0.01805392499997538, + "tests/test_node_auth.py::test_a_minted_node_ref_matches_the_wire_pattern": 0.014068531999981815, + "tests/test_node_auth.py::test_a_minted_token_resolves": 0.027667732999958616, + "tests/test_node_auth.py::test_a_revoked_token_does_not_resolve": 0.029166575999994393, + "tests/test_node_auth.py::test_an_uncommitted_registration_leaves_no_usable_token": 0.02667927099997769, + "tests/test_node_auth.py::test_an_unknown_token_is_401": 0.02272276100001136, + "tests/test_node_auth.py::test_minting_does_not_repeat": 0.04068843100000663, + "tests/test_node_auth.py::test_only_the_hash_is_stored": 0.028360816000031264, + "tests/test_node_auth.py::test_revoking_reports_how_many_it_revoked": 0.029046029999989287, + "tests/test_node_auth.py::test_the_scheme_is_case_insensitive[BEARER]": 0.032165265999964276, + "tests/test_node_auth.py::test_the_scheme_is_case_insensitive[Bearer]": 0.025690958000012643, + "tests/test_node_auth.py::test_the_scheme_is_case_insensitive[bearer]": 0.025105520000010983, + "tests/test_node_bias.py::TestBiasEstimator::test_converges_on_synthetic_biased_residuals": 0.018673333000009507, + "tests/test_node_bias.py::TestBiasEstimator::test_maturity_bar_distinct_hexes": 0.013993530999982795, + "tests/test_node_bias.py::TestBiasEstimator::test_maturity_bar_sample_count": 0.015377206999971804, + "tests/test_node_bias.py::TestBiasEstimator::test_maturity_bar_spread": 0.013511708000010003, + "tests/test_node_bias.py::TestContractDefaults::test_record_accepts_unknown_keys_without_raising": 0.014281270999987328, + "tests/test_node_bias.py::TestContractDefaults::test_record_drops_non_finite_and_empty_keys": 0.014607331999940243, + "tests/test_node_bias.py::TestContractDefaults::test_trust_below_sample_bar_stays_at_prior": 0.015391313000009177, + "tests/test_node_bias.py::TestContractDefaults::test_unknown_node_bias_is_zero": 0.015297109000016462, + "tests/test_node_bias.py::TestContractDefaults::test_unknown_node_trust_is_neutral_prior": 0.014324352000016916, + "tests/test_node_bias.py::TestCrossValidationRejectsUnusableFixes::test_a_self_report_with_boolean_coordinates_is_not_penalised": 0.12646582299998954, + "tests/test_node_bias.py::TestCrossValidationRejectsUnusableFixes::test_a_self_report_without_a_position_is_not_penalised": 0.12538598300000103, + "tests/test_node_bias.py::TestLyingRadar::test_misfitting_node_trust_sinks_while_peers_keep_theirs": 0.013544989999985546, + "tests/test_node_bias.py::TestSelfReportCoexistence::test_cross_validation_skips_backend_fed_samples": 0.014706709999956047, + "tests/test_node_bias.py::TestSelfReportCoexistence::test_route_and_backend_samples_share_one_score": 0.12749664900002244, + "tests/test_node_bias.py::TestSnapshotCompat::test_backend_fed_samples_round_trip_with_provenance": 0.014458795000024338, + "tests/test_node_bias.py::TestSnapshotCompat::test_old_format_snapshot_still_loads": 0.014765680000010661, + "tests/test_node_bias.py::TestSurfacing::test_node_analytics_includes_bias_block": 0.12646971300000587, + "tests/test_node_bias.py::TestSurfacing::test_node_analytics_omits_bias_block_when_unknown": 0.12495787999998242, + "tests/test_node_claim_endpoint.py::test_a_bad_bearer_is_401_rather_than_a_body_refusal": 0.032477389000007406, + "tests/test_node_claim_endpoint.py::test_a_body_that_is_not_json_is_400_invalid_claim": 0.034272390000012365, + "tests/test_node_claim_endpoint.py::test_a_bounced_address_is_not_mailed_again": 0.05806387499995935, + "tests/test_node_claim_endpoint.py::test_a_bounced_address_reads_unclaimed_with_the_flag": 0.05010949700002243, + "tests/test_node_claim_endpoint.py::test_a_different_address_after_a_bounce_is_mailed_normally": 0.05877690399998414, + "tests/test_node_claim_endpoint.py::test_a_get_without_a_bearer_is_401": 0.032164104000003135, + "tests/test_node_claim_endpoint.py::test_a_missing_address_is_400_invalid_claim": 0.03586581499999397, + "tests/test_node_claim_endpoint.py::test_a_nomination_records_a_challenge_and_mails_its_token": 0.04176110500000618, + "tests/test_node_claim_endpoint.py::test_a_nomination_stores_the_address_and_answers_pending": 0.04512826799998493, + "tests/test_node_claim_endpoint.py::test_a_rate_limited_nomination_is_not_stored": 0.10032082999998693, + "tests/test_node_claim_endpoint.py::test_a_refused_nomination_on_an_owned_node_writes_nothing": 0.05395695700002534, + "tests/test_node_claim_endpoint.py::test_a_second_address_drops_the_verified_flag": 0.06327014699994038, + "tests/test_node_claim_endpoint.py::test_a_second_address_replaces_the_first_challenge": 0.05790711900002066, + "tests/test_node_claim_endpoint.py::test_an_address_at_its_link_cap_leaves_no_dead_challenge_behind": 0.07375415999999291, + "tests/test_node_claim_endpoint.py::test_an_address_that_is_not_one_is_400": 0.034568432999975585, + "tests/test_node_claim_endpoint.py::test_an_expired_challenge_does_not_make_a_repeated_put_mail_again": 0.04807546100002469, + "tests/test_node_claim_endpoint.py::test_an_expired_challenge_is_still_resendable": 0.05622475599997756, + "tests/test_node_claim_endpoint.py::test_an_expired_challenge_reads_unclaimed_with_the_address_still_on_file": 0.050752594000016416, + "tests/test_node_claim_endpoint.py::test_an_owned_node_accepts_the_address_it_is_bound_to": 0.05174181300000669, + "tests/test_node_claim_endpoint.py::test_an_owned_node_refuses_a_different_address_and_names_the_bound_one": 0.0518697560000021, + "tests/test_node_claim_endpoint.py::test_get_answers_owned_with_the_bound_address": 0.05110177800000315, + "tests/test_node_claim_endpoint.py::test_get_answers_unclaimed_for_a_node_that_never_nominated": 0.03511112999999, + "tests/test_node_claim_endpoint.py::test_get_writes_nothing": 0.03853076500001862, + "tests/test_node_claim_endpoint.py::test_no_bearer_is_401_and_writes_nothing": 0.033757556000011846, + "tests/test_node_claim_endpoint.py::test_re_sending_the_same_address_answers_pending_without_mailing_again": 0.050957852999999886, + "tests/test_node_claim_endpoint.py::test_resend_mails_again_where_a_repeated_put_does_not": 0.05234497000000715, + "tests/test_node_claim_endpoint.py::test_resend_mints_a_fresh_token_rather_than_repeating_the_old_one": 0.05742171099998927, + "tests/test_node_claim_endpoint.py::test_resend_on_an_owned_node_is_refused": 0.04823974100000328, + "tests/test_node_claim_endpoint.py::test_resend_with_nothing_on_file_answers_unclaimed_and_mails_nothing": 0.034967633000007936, + "tests/test_node_claim_endpoint.py::test_the_address_is_normalised_before_it_is_stored": 0.04203258699999424, + "tests/test_node_claim_endpoint.py::test_the_sixth_nomination_in_an_hour_is_429_with_a_retry_after": 0.09317313999997623, + "tests/test_node_claim_store.py::test_a_bounce_drops_the_challenge_so_the_node_reads_unclaimed": 0.028144459999992932, + "tests/test_node_claim_store.py::test_a_bounce_on_a_node_with_no_challenge_gives_back_no_handle": 0.02606689099999926, + "tests/test_node_claim_store.py::test_a_different_address_after_a_bounce_starts_clean": 0.02776793199998906, + "tests/test_node_claim_store.py::test_a_new_address_drops_the_verified_flag": 0.029290036000020336, + "tests/test_node_claim_store.py::test_a_node_that_never_nominated_has_no_row": 0.02462293499999646, + "tests/test_node_claim_store.py::test_a_second_challenge_replaces_the_first_and_returns_its_handle": 0.025452185000034433, + "tests/test_node_claim_store.py::test_clearing_a_claim_leaves_no_row_and_no_challenge": 0.03927845299998012, + "tests/test_node_claim_store.py::test_clearing_a_node_that_has_no_claim_is_not_an_error": 0.02661636299998804, + "tests/test_node_claim_store.py::test_dropping_a_challenge_returns_its_handle_and_then_none": 0.026856652999981634, + "tests/test_node_claim_store.py::test_marking_a_node_with_no_claim_does_nothing": 0.02356719600001611, + "tests/test_node_claim_store.py::test_marking_undeliverable_for_a_superseded_address_does_nothing": 0.025975640000012845, + "tests/test_node_claim_store.py::test_marking_verified_for_a_superseded_address_does_nothing": 0.028596940999960907, + "tests/test_node_claim_store.py::test_nominating_an_address_stores_it_unverified": 0.025427585999977964, + "tests/test_node_claim_store.py::test_rewriting_the_same_address_leaves_verified_alone": 0.028812810999966132, + "tests/test_node_claim_store.py::test_the_first_challenge_displaces_nothing": 0.024254503999998178, + "tests/test_node_claim_store.py::test_verifying_a_superseded_address_leaves_the_live_challenge_alone": 0.0288525950000178, + "tests/test_node_claim_store.py::test_verifying_spends_the_challenge": 0.03021309600001132, + "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[7]": 0.014702747000029603, + "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[None]": 0.014725056999992603, + "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[ada@example.com]": 0.01621570299997188, + "tests/test_node_claim_validation.py::test_a_body_that_is_not_an_object_is_refused_rather_than_raising_type_error[payload0]": 0.01743072099998244, + "tests/test_node_claim_validation.py::test_a_missing_address_is_refused": 0.01707188800000381, + "tests/test_node_claim_validation.py::test_a_non_string_address_is_refused": 0.016932277000023532, + "tests/test_node_claim_validation.py::test_a_null_address_is_refused_rather_than_clearing_anything": 0.020560489999979836, + "tests/test_node_claim_validation.py::test_an_address_already_normalised_is_unchanged": 0.016820957000021508, + "tests/test_node_claim_validation.py::test_an_address_at_the_bound_is_accepted": 0.016572691000021678, + "tests/test_node_claim_validation.py::test_an_address_comes_back_normalised": 0.016535420999986172, + "tests/test_node_claim_validation.py::test_an_over_long_address_is_refused_on_its_trimmed_form": 0.016758339999995542, + "tests/test_node_claim_validation.py::test_an_unknown_key_is_named_back": 0.016685713999976315, + "tests/test_node_claim_validation.py::test_several_unknown_keys_always_name_the_same_one": 0.016756358000009186, + "tests/test_node_claim_validation.py::test_the_published_schema_is_not_shared_between_callers": 0.014524703000006411, + "tests/test_node_claim_validation.py::test_the_published_schema_requires_the_one_field_it_describes": 0.014535512999998446, + "tests/test_node_claim_validation.py::test_whitespace_alone_is_refused": 0.016969987999999603, + "tests/test_node_config_endpoint.py::test_a_body_that_is_not_an_object_is_400": 0.03558102999997459, + "tests/test_node_config_endpoint.py::test_a_body_that_is_not_json_is_400": 0.03137000600000306, + "tests/test_node_config_endpoint.py::test_a_change_reaches_the_pipeline_once": 0.03799191099997756, + "tests/test_node_config_endpoint.py::test_a_changed_field_mints_the_next_version_and_supersedes_the_last": 0.0460284119999983, + "tests/test_node_config_endpoint.py::test_a_failed_handoff_alerts_and_keeps_the_stored_version": 0.04058552700001883, + "tests/test_node_config_endpoint.py::test_a_long_unknown_field_is_400_rather_than_500": 0.03287463399999524, + "tests/test_node_config_endpoint.py::test_a_new_version_reaches_the_pipeline": 0.038300864000007095, + "tests/test_node_config_endpoint.py::test_a_null_callsign_is_accepted_and_stored": 0.04360369199994807, + "tests/test_node_config_endpoint.py::test_a_resend_with_both_antenna_fields_null_is_not_a_change": 0.06153893999996285, + "tests/test_node_config_endpoint.py::test_a_revoked_token_is_401": 0.03540016299999138, + "tests/test_node_config_endpoint.py::test_an_invalid_body_without_a_token_is_still_401": 0.03242364299998712, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[above_bound]": 0.033999723000022186, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[azimuth_exclusive_max]": 0.034819523999999547, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[below_bound]": 0.035046442000037814, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[empty_callsign]": 0.03241614300003448, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[exclusive_min]": 0.03419187700001203, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[missing]": 0.03426476399999956, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[unknown]": 0.032274806000003764, + "tests/test_node_config_endpoint.py::test_an_invalid_config_is_400_naming_the_field[width_exclusive_min]": 0.03321165000002679, + "tests/test_node_config_endpoint.py::test_an_unauthenticated_call_is_401": 0.03509146900003657, + "tests/test_node_config_endpoint.py::test_an_unchanged_resend_does_not_touch_the_pipeline": 0.0367077429999938, + "tests/test_node_config_endpoint.py::test_an_unchanged_resend_returns_the_active_version": 0.04290922100000216, + "tests/test_node_config_endpoint.py::test_an_unparseable_body_without_a_token_is_still_401": 0.033493698000000904, + "tests/test_node_config_endpoint.py::test_the_baseline_matches_what_the_fixture_seeded": 0.030793084000009685, + "tests/test_node_config_endpoint.py::test_the_node_row_follows_the_active_version": 0.04599406200000544, + "tests/test_node_config_endpoint.py::test_the_route_commits": 0.04597665399998618, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[beam_azimuth_deg]": 0.03245714499999508, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[beam_width_deg]": 0.03166089100000136, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[cpi_s]": 0.031437711999984685, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[delay_tolerance_us]": 0.031385576000019455, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[doppler_tolerance_hz]": 0.03220197700002814, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[fc_hz]": 0.03319390300001146, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[fs_hz]": 0.029948789999991732, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[max_range_km]": 0.030305289000011726, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[rx_alt_ft]": 0.029794541000001118, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[rx_lat]": 0.030107477000029803, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[rx_lon]": 0.030311753999995972, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_alt_ft]": 0.029430418999993435, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_callsign]": 0.03166978699999845, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_lat]": 0.02915257800000859, + "tests/test_node_config_store.py::test_a_change_to_any_one_field_mints_the_next_version[tx_lon]": 0.029338527000021486, + "tests/test_node_config_store.py::test_a_changed_configuration_supersedes_the_previous_version": 0.029740158999999267, + "tests/test_node_config_store.py::test_a_null_callsign_round_trips": 0.02882510500003832, + "tests/test_node_config_store.py::test_a_null_position_round_trips": 0.028965051999989555, + "tests/test_node_config_store.py::test_a_resend_is_unchanged_however_many_times_it_arrives": 0.03645773900001359, + "tests/test_node_config_store.py::test_a_version_is_never_reused_once_the_active_row_is_superseded": 0.031108194999973193, + "tests/test_node_config_store.py::test_an_azimuth_appearing_is_a_new_version": 0.03020934699998179, + "tests/test_node_config_store.py::test_an_unchanged_configuration_keeps_its_version": 0.0324618399999963, + "tests/test_node_config_store.py::test_filling_in_a_null_is_a_change_in_both_directions": 0.0312814019999621, + "tests/test_node_config_store.py::test_nothing_is_committed": 0.02701937899999507, + "tests/test_node_config_store.py::test_the_active_version_reads_back_as_the_configuration_written": 0.029467171000021608, + "tests/test_node_config_store.py::test_the_compared_fields_are_every_geometry_column": 0.015132862999990948, + "tests/test_node_config_store.py::test_the_configuration_belongs_to_the_node_that_sent_it": 0.029293815999977824, + "tests/test_node_config_store.py::test_the_first_configuration_is_version_one": 0.027346182000002273, + "tests/test_node_config_store.py::test_versions_go_on_climbing_across_several_changes": 0.03457631499998115, + "tests/test_node_config_validation.py::test_a_baseline_shorter_than_the_degenerate_threshold_is_rejected": 0.013630827000014278, + "tests/test_node_config_validation.py::test_a_boolean_is_not_accepted_as_a_number": 0.014357197999999016, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[bool-false]": 0.01460805699997536, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[bool-true]": 0.014152284000033433, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[empty-string]": 0.014152545000030159, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[float]": 0.014089837000000216, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[infinity]": 0.014853880000003983, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[int-too-large-for-a-float]": 0.014539511000009497, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[int]": 0.01417534600000181, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[list]": 0.014498180999993338, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[nan]": 0.014775242999974125, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[negative-infinity]": 0.014671347000017931, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[negative-numeric-string]": 0.014968156999970006, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[non-numeric-string]": 0.014681366000019125, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[null]": 0.014406581000031338, + "tests/test_node_config_validation.py::test_a_coordinate_becomes_a_float_or_none[numeric-string]": 0.014248203000022386, + "tests/test_node_config_validation.py::test_a_missing_beam_width_is_still_rejected": 0.014027734000023884, + "tests/test_node_config_validation.py::test_a_missing_field_is_rejected": 0.014440405000016199, + "tests/test_node_config_validation.py::test_a_missing_key_is_still_an_error": 0.013802188000028082, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-rx_lat]": 0.014426017999966234, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-rx_lon]": 0.015179040000020905, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-tx_lat]": 0.014444190999995499, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-false-tx_lon]": 0.014467216000014105, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-rx_lat]": 0.013787481000008484, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-rx_lon]": 0.014495678000002954, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-tx_lat]": 0.01522178899998039, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[bool-true-tx_lon]": 0.014490448000032075, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-rx_lat]": 0.01408688099999722, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-rx_lon]": 0.014297335999998495, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-tx_lat]": 0.014269403000014336, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[empty-string-tx_lon]": 0.01452996100002224, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-rx_lat]": 0.01430891199998996, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-rx_lon]": 0.014248044000026994, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-tx_lat]": 0.0138319620000118, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[list-tx_lon]": 0.013837674999990668, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-rx_lat]": 0.013808199999971293, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-rx_lon]": 0.013826679999993985, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-tx_lat]": 0.013948852999988048, + "tests/test_node_config_validation.py::test_a_non_numeric_coordinate_reads_as_not_placed_rather_than_raising[string-tx_lon]": 0.013977335999953766, + "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[51.42]": 0.01490142700001229, + "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[None]": 0.01479223399996954, + "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[value2]": 0.01490216999999916, + "tests/test_node_config_validation.py::test_a_non_numeric_type_is_rejected[value3]": 0.014617546000010861, + "tests/test_node_config_validation.py::test_a_non_string_callsign_is_rejected[123]": 0.015567398000030153, + "tests/test_node_config_validation.py::test_a_non_string_callsign_is_rejected[value1]": 0.014785562000014352, + "tests/test_node_config_validation.py::test_a_null_callsign_is_preserved_not_defaulted": 0.0143385029999763, + "tests/test_node_config_validation.py::test_a_null_is_accepted_for_exactly_the_fields_published_as_nullable": 0.017090607999989516, + "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[5]": 0.014447126999982629, + "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[None]": 0.0142048129999921, + "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[payload3]": 0.014452618000007078, + "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[payload4]": 0.01421457100002499, + "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[payload5]": 0.014185557000018889, + "tests/test_node_config_validation.py::test_a_payload_that_is_not_an_object_is_rejected_not_raised_through[rx_lat]": 0.014091439999987188, + "tests/test_node_config_validation.py::test_a_present_beam_width_keeps_the_contract_interval[0.1]": 0.013980310999983203, + "tests/test_node_config_validation.py::test_a_present_beam_width_keeps_the_contract_interval[360]": 0.013915019000023676, + "tests/test_node_config_validation.py::test_a_usable_altitude_is_kept_as_a_float[below-sea-level]": 0.018097742999998445, + "tests/test_node_config_validation.py::test_a_usable_altitude_is_kept_as_a_float[numeric-string]": 0.018067125999976952, + "tests/test_node_config_validation.py::test_a_usable_altitude_is_kept_as_a_float[sea-level]": 0.018288939999962395, + "tests/test_node_config_validation.py::test_a_valid_config_passes_through_unchanged": 0.014475618000005852, + "tests/test_node_config_validation.py::test_a_validated_config_survives_canonicalisation_unchanged": 0.02117902800003435, + "tests/test_node_config_validation.py::test_altitude_alone_does_not_separate_a_coincident_pair": 0.0139488209999854, + "tests/test_node_config_validation.py::test_an_absent_altitude_becomes_null": 0.019481417000008605, + "tests/test_node_config_validation.py::test_an_empty_payload_is_rejected_rather_than_defaulted": 0.013582093999986, + "tests/test_node_config_validation.py::test_an_explicit_null_rx_is_not_overruled_by_a_stray_legacy_lat": 0.014384739999968588, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[beam_azimuth_deg]": 0.014884136000006265, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[beam_width_deg]": 0.015525409000019863, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[cpi_s]": 0.01466951500000846, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[delay_tolerance_us]": 0.015706618999985267, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[doppler_tolerance_hz]": 0.014651941000010993, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[fc_hz]": 0.014648865999987493, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[fs_hz]": 0.014721642000012025, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[max_range_km]": 0.014028993000010814, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[rx_alt_ft]": 0.014542815999988079, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[rx_lat]": 0.014544439000019338, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[rx_lon]": 0.014677890000001526, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[tx_alt_ft]": 0.0142907930000149, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[tx_lat]": 0.014130290999958106, + "tests/test_node_config_validation.py::test_an_integer_too_large_for_a_float_is_rejected[tx_lon]": 0.013957900999997719, + "tests/test_node_config_validation.py::test_an_out_of_range_coordinate_is_reported_before_a_missing_pair": 0.0154583919999709, + "tests/test_node_config_validation.py::test_an_unknown_field_is_rejected": 0.014035915999983217, + "tests/test_node_config_validation.py::test_an_unknown_field_is_reported_before_a_missing_one": 0.013915231000055428, + "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[bool]": 0.016735718999996152, + "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[int-too-large-for-a-float]": 0.01857195000005163, + "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[nan]": 0.01743362599998477, + "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[non-numeric-string]": 0.01612615000001938, + "tests/test_node_config_validation.py::test_an_unusable_altitude_becomes_null[null]": 0.014723585000012918, + "tests/test_node_config_validation.py::test_an_unusable_axis_nulls_its_partner": 0.014434504000007564, + "tests/test_node_config_validation.py::test_baseline_check_is_skipped_when_a_side_is_null": 0.013798100000002478, + "tests/test_node_config_validation.py::test_canonical_config_leaves_the_input_dict_alone": 0.014211275000008072, + "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[int]": 0.014239217999971743, + "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[list]": 0.014213178000005655, + "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[none]": 0.014284079000049132, + "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[string]": 0.01421375000001035, + "tests/test_node_config_validation.py::test_canonical_config_never_raises_on_a_non_dict[tuple]": 0.013680960000016285, + "tests/test_node_config_validation.py::test_canonicalising_twice_changes_nothing": 0.018578413000000182, + "tests/test_node_config_validation.py::test_config_invalid_carries_a_field_and_a_reason": 0.013955586000037101, + "tests/test_node_config_validation.py::test_every_missing_field_is_reported_by_name": 0.013762333000016724, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[beam_azimuth_deg]": 0.018757200000010243, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[beam_width_deg]": 0.016801640000011275, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[cpi_s]": 0.014906564000000344, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[delay_tolerance_us]": 0.014439126999974405, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[doppler_tolerance_hz]": 0.014369817000044804, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[fc_hz]": 0.014289034999990236, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[fs_hz]": 0.014492809000017814, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[max_range_km]": 0.014451771000040026, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[rx_alt_ft]": 0.014411755999987008, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[rx_lat]": 0.01570616100002553, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[rx_lon]": 0.017739445999978898, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[tx_alt_ft]": 0.017176441000003706, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[tx_lat]": 0.016954824000009694, + "tests/test_node_config_validation.py::test_every_published_bound_is_where_the_validator_refuses[tx_lon]": 0.01701661099997409, + "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[beam_width_deg]": 0.014310209999990775, + "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[cpi_s]": 0.014320329999975456, + "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[delay_tolerance_us]": 0.014193901999988157, + "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[doppler_tolerance_hz]": 0.014170679000017117, + "tests/test_node_config_validation.py::test_exclusive_minimums_reject_a_negative_as_well_as_zero[max_range_km]": 0.016261369000005743, + "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[rx_lat]": 0.014968672999998489, + "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[rx_lon]": 0.014860970000000862, + "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[tx_lat]": 0.014526533999969615, + "tests/test_node_config_validation.py::test_half_a_pair_nulls_the_other_half[tx_lon]": 0.014561360999977069, + "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides0-rx_lat]": 0.014027390000023843, + "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides1-rx_lon]": 0.0140266180000026, + "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides2-tx_lat]": 0.013826032999986637, + "tests/test_node_config_validation.py::test_half_a_position_is_rejected[overrides3-tx_lon]": 0.013843053999949007, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[beam_azimuth_deg-0]": 0.014252072000005, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[beam_azimuth_deg-359.999]": 0.014139379999988932, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[beam_width_deg-360]": 0.01453621299998531, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[cpi_s-10]": 0.014227055000020528, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fc_hz-1000000]": 0.01419393100002253, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fc_hz-6000000000]": 0.014650589000012815, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fs_hz-100000]": 0.01464550900001882, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[fs_hz-20000000]": 0.014465722000011283, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[max_range_km-1000]": 0.014275453999999854, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_alt_ft--1500]": 0.013900702999990244, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_alt_ft-30000]": 0.013976994999978842, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lat--90]": 0.014016940000004752, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lat-90]": 0.014068657999985135, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lon--180]": 0.014150049999983594, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[rx_lon-180]": 0.01391215300000681, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_alt_ft--1500]": 0.01395755900003337, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_alt_ft-30000]": 0.014037206999972796, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lat--90]": 0.013986955000007129, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lat-90]": 0.014140799999978526, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lon--180]": 0.01396162599999684, + "tests/test_node_config_validation.py::test_inclusive_bounds_are_accepted[tx_lon-180]": 0.014295183000029965, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-beam_azimuth_deg]": 0.017651535999988255, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-beam_width_deg]": 0.01701222700000926, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-cpi_s]": 0.017204144999993787, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-delay_tolerance_us]": 0.015598205999992842, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-doppler_tolerance_hz]": 0.015114318000001958, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-fc_hz]": 0.01702031999997189, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-fs_hz]": 0.016916527000006454, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-max_range_km]": 0.017080093000032548, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-rx_alt_ft]": 0.01623302499999113, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-rx_lat]": 0.015033857000020134, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-rx_lon]": 0.016113502000024482, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-tx_alt_ft]": 0.01665663999997946, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-tx_lat]": 0.016790351000025794, + "tests/test_node_config_validation.py::test_infinity_is_rejected[-inf-tx_lon]": 0.016597869000037235, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-beam_azimuth_deg]": 0.013887677999974812, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-beam_width_deg]": 0.014526255000021138, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-cpi_s]": 0.013929055000005519, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-delay_tolerance_us]": 0.014265276000003269, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-doppler_tolerance_hz]": 0.014242585000033614, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-fc_hz]": 0.01646651299998325, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-fs_hz]": 0.014129431000014847, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-max_range_km]": 0.013965194000036263, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-rx_alt_ft]": 0.014280415000030189, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-rx_lat]": 0.014282587999986163, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-rx_lon]": 0.014139901000021382, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-tx_alt_ft]": 0.016457937999973637, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-tx_lat]": 0.01411678899998492, + "tests/test_node_config_validation.py::test_infinity_is_rejected[inf-tx_lon]": 0.014756296999962615, + "tests/test_node_config_validation.py::test_integers_are_normalised_to_floats": 0.01432582000001048, + "tests/test_node_config_validation.py::test_nan_is_rejected[beam_azimuth_deg]": 0.014013153000007605, + "tests/test_node_config_validation.py::test_nan_is_rejected[beam_width_deg]": 0.0138533629999813, + "tests/test_node_config_validation.py::test_nan_is_rejected[cpi_s]": 0.014025508000003128, + "tests/test_node_config_validation.py::test_nan_is_rejected[delay_tolerance_us]": 0.014374921000012364, + "tests/test_node_config_validation.py::test_nan_is_rejected[doppler_tolerance_hz]": 0.014062787000000299, + "tests/test_node_config_validation.py::test_nan_is_rejected[fc_hz]": 0.014286626999989949, + "tests/test_node_config_validation.py::test_nan_is_rejected[fs_hz]": 0.013927321000011261, + "tests/test_node_config_validation.py::test_nan_is_rejected[max_range_km]": 0.014029924999988452, + "tests/test_node_config_validation.py::test_nan_is_rejected[rx_alt_ft]": 0.014208319000005076, + "tests/test_node_config_validation.py::test_nan_is_rejected[rx_lat]": 0.01422686499998349, + "tests/test_node_config_validation.py::test_nan_is_rejected[rx_lon]": 0.01489832300001126, + "tests/test_node_config_validation.py::test_nan_is_rejected[tx_alt_ft]": 0.014183724999952574, + "tests/test_node_config_validation.py::test_nan_is_rejected[tx_lat]": 0.014481770999992705, + "tests/test_node_config_validation.py::test_nan_is_rejected[tx_lon]": 0.014626222999993388, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-beam_azimuth_deg]": 0.014360925000005409, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-beam_width_deg]": 0.014388377000017272, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-cpi_s]": 0.015319896999983484, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-delay_tolerance_us]": 0.01458777100003772, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-doppler_tolerance_hz]": 0.014376985999973613, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-fc_hz]": 0.014328424000012774, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-fs_hz]": 0.014537165000007235, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-max_range_km]": 0.01426440500003423, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-rx_alt_ft]": 0.014908802999968884, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-rx_lat]": 0.015130859000009877, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-rx_lon]": 0.01539500399999838, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-tx_alt_ft]": 0.014578724000017473, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-tx_lat]": 0.014411459999990939, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[False-tx_lon]": 0.014236742999997887, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-beam_azimuth_deg]": 0.015258148000015126, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-beam_width_deg]": 0.015115860999998176, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-cpi_s]": 0.014942115000025069, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-delay_tolerance_us]": 0.015042633999996724, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-doppler_tolerance_hz]": 0.014920202999974208, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-fc_hz]": 0.014218478000003643, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-fs_hz]": 0.014899465000013379, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-max_range_km]": 0.01482323200002611, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-rx_alt_ft]": 0.014560762000030536, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-rx_lat]": 0.014522148000025936, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-rx_lon]": 0.016850152999978718, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-tx_alt_ft]": 0.014368899000004376, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-tx_lat]": 0.014283470000009402, + "tests/test_node_config_validation.py::test_no_numeric_field_accepts_a_boolean[True-tx_lon]": 0.014598160000019789, + "tests/test_node_config_validation.py::test_non_geometry_keys_pass_through_unchanged": 0.31730496799997354, + "tests/test_node_config_validation.py::test_null_beam_azimuth_is_preserved_not_defaulted": 0.01419301999999334, + "tests/test_node_config_validation.py::test_null_beam_width_is_preserved_not_defaulted": 0.014183502999969733, + "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[full]": 0.013900782000007439, + "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[neither]": 0.013878008999995473, + "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[no-altitude]": 0.014129691999983152, + "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[no-rx]": 0.013800213999985544, + "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[no-tx]": 0.014152745999979288, + "tests/test_node_config_validation.py::test_null_coordinates_are_accepted[one-altitude]": 0.013923364999953947, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_azimuth_deg--1]": 0.01427747999997564, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_azimuth_deg-360]": 0.015165834000015366, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_width_deg-0]": 0.01398633299996277, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_width_deg-360.1]": 0.014175217000001794, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[beam_width_deg-361]": 0.014049883000012642, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[cpi_s--1]": 0.014129991000004338, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[cpi_s-0]": 0.014164947000011807, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[cpi_s-10.001]": 0.014657152000012275, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[delay_tolerance_us--1]": 0.01592516600001659, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[delay_tolerance_us-0]": 0.014631653000009237, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[doppler_tolerance_hz--1]": 0.01667611499996724, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[doppler_tolerance_hz-0]": 0.016792144999982384, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fc_hz-6000000001]": 0.013959281000012425, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fc_hz-999999]": 0.014274784000008367, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fs_hz-20000001]": 0.014188190999988137, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[fs_hz-99999]": 0.01390299600001299, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[max_range_km-0]": 0.014293207999998003, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[max_range_km-1001]": 0.01400085100002002, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_alt_ft--1501]": 0.016155199999957404, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_alt_ft-30001]": 0.01400682199999892, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lat--91]": 0.014042669000019714, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lat-91]": 0.014105185999994774, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lon--181]": 0.014073726999981773, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[rx_lon-181]": 0.01412899999999695, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_alt_ft--1501]": 0.014321942000009358, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_alt_ft-30001]": 0.013925468000024921, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_callsign-]": 0.01513701199999673, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_callsign-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": 0.014211755000019366, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lat--91]": 0.013988358000005974, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lat-91]": 0.014073927000026742, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lon--181]": 0.014076210000013134, + "tests/test_node_config_validation.py::test_out_of_range_values_are_rejected_naming_the_field[tx_lon-181]": 0.013898167999997213, + "tests/test_node_config_validation.py::test_position_status_on_a_config_that_never_saw_validate_config[empty]": 0.014756928999986485, + "tests/test_node_config_validation.py::test_position_status_on_a_config_that_never_saw_validate_config[latitude-without-longitude]": 0.013823187000014059, + "tests/test_node_config_validation.py::test_position_status_on_a_config_that_never_saw_validate_config[unrelated-keys-only]": 0.014082363999989411, + "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[rx-null-island]": 0.01383969799999818, + "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[rx-on-the-equator]": 0.013913545999997723, + "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[tx-null-island]": 0.014104095000021744, + "tests/test_node_config_validation.py::test_position_status_treats_the_zero_pair_as_absent[tx-on-the-prime-meridian]": 0.013867159000000129, + "tests/test_node_config_validation.py::test_rx_and_tx_at_the_same_point_is_rejected": 0.014390920999971968, + "tests/test_node_config_validation.py::test_sharing_one_coordinate_is_not_a_degenerate_baseline[override0]": 0.013985801000018228, + "tests/test_node_config_validation.py::test_sharing_one_coordinate_is_not_a_degenerate_baseline[override1]": 0.013740751999989698, + "tests/test_node_config_validation.py::test_the_field_named_is_always_a_string": 0.013759676999995918, + "tests/test_node_config_validation.py::test_the_legacy_flat_spelling_becomes_the_rx_pair": 0.014476522999984809, + "tests/test_node_config_validation.py::test_the_output_carries_exactly_the_contract_fields": 0.014226510000042936, + "tests/test_node_config_validation.py::test_the_payload_is_not_mutated": 0.014012763000010864, + "tests/test_node_config_validation.py::test_the_published_callsign_length_is_where_the_validator_refuses": 0.016872932000012497, + "tests/test_node_config_validation.py::test_the_returned_dict_is_not_the_payload": 0.013983638000013343, + "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000.0-delay_tolerance_us]": 0.014106521000002203, + "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000.0-doppler_tolerance_hz]": 0.014295752999998967, + "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000000.0-delay_tolerance_us]": 0.014105467000007366, + "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1000000.0-doppler_tolerance_hz]": 0.014088524999976926, + "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1e+300-delay_tolerance_us]": 0.014081039999979339, + "tests/test_node_config_validation.py::test_the_tolerances_have_no_upper_bound[1e+300-doppler_tolerance_hz]": 0.014029152999995631, + "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[rx-null-island]": 0.014661940000024742, + "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[rx-on-the-equator]": 0.01582921000002102, + "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[rx-on-the-prime-meridian]": 0.017059544000005644, + "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[tx-null-island]": 0.014880570000002535, + "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[tx-on-the-equator]": 0.01635137700000655, + "tests/test_node_config_validation.py::test_the_zero_pair_collapses_but_a_single_zero_axis_survives[tx-on-the-prime-meridian]": 0.014833812000006219, + "tests/test_node_config_validation.py::test_zero_beam_azimuth_is_not_null": 0.014014757000012423, + "tests/test_node_contact_endpoint.py::test_a_bad_bearer_is_401_rather_than_a_body_refusal": 0.034348707000020795, + "tests/test_node_contact_endpoint.py::test_a_body_that_is_not_an_object_is_refused": 0.03619344200001251, + "tests/test_node_contact_endpoint.py::test_a_body_that_is_not_json_is_refused_the_same_way": 0.03771763099999248, + "tests/test_node_contact_endpoint.py::test_a_contact_document_is_stored": 0.04473472600002992, + "tests/test_node_contact_endpoint.py::test_a_contact_put_carries_a_bounced_address": 0.04404630200002657, + "tests/test_node_contact_endpoint.py::test_a_contact_put_carries_the_claim_state": 0.03829711200000929, + "tests/test_node_contact_endpoint.py::test_a_contact_put_does_not_touch_the_claim": 0.04464104400000224, + "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload0-middle_name]": 0.03345561800000496, + "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload1-email]": 0.033801724000028344, + "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload2-phone]": 0.03297231700000225, + "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload3-first_name]": 0.03619326099999398, + "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload4-last_name]": 0.033898870999991004, + "tests/test_node_contact_endpoint.py::test_a_refused_document_names_the_field[payload5-country]": 0.03797842300002685, + "tests/test_node_contact_endpoint.py::test_a_resend_clears_what_it_omits": 0.04651912599999264, + "tests/test_node_contact_endpoint.py::test_an_empty_document_is_accepted_and_stores_nulls": 0.03679053400000498, + "tests/test_node_contact_endpoint.py::test_no_bearer_is_401_and_writes_nothing": 0.032815370999998095, + "tests/test_node_contact_endpoint.py::test_the_response_carries_the_time_the_row_was_written": 0.03691070500005367, + "tests/test_node_contact_store.py::test_delete_contact_is_false_when_there_was_nothing_to_delete": 0.02316198499997313, + "tests/test_node_contact_store.py::test_delete_contact_removes_the_row_and_says_so": 0.026610741999974152, + "tests/test_node_contact_store.py::test_every_contact_field_is_nullable": 0.03009877800002414, + "tests/test_node_contact_store.py::test_list_contacts_returns_every_row_keyed_by_node": 0.03133892999997556, + "tests/test_node_contact_store.py::test_the_migrated_schema_holds_a_contact_row": 0.02399284300000204, + "tests/test_node_contact_store.py::test_updated_at_comes_back_aware_on_the_unchanged_path": 0.02914788900002918, + "tests/test_node_contact_store.py::test_upsert_holds_one_row_per_node": 0.02994278099995995, + "tests/test_node_contact_store.py::test_upsert_leaves_updated_at_alone_when_nothing_moved": 0.03135303500002351, + "tests/test_node_contact_store.py::test_upsert_moves_updated_at_when_a_field_changes": 0.03098059700002409, + "tests/test_node_contact_store.py::test_upsert_replaces_wholesale_rather_than_merging": 0.029024904000010565, + "tests/test_node_contact_store.py::test_upsert_writes_a_row_for_a_node_that_had_none": 0.029120414000004757, + "tests/test_node_contact_validation.py::test_a_body_that_is_not_an_object_is_refused": 0.015142056000001958, + "tests/test_node_contact_validation.py::test_a_country_code_is_stored_upper_case[GB]": 0.01663682800000288, + "tests/test_node_contact_validation.py::test_a_country_code_is_stored_upper_case[Gb]": 0.014730603000003839, + "tests/test_node_contact_validation.py::test_a_country_code_is_stored_upper_case[gb]": 0.014434077999993633, + "tests/test_node_contact_validation.py::test_a_country_longer_than_the_column_is_refused_as_too_long[GBR]": 0.014770865999992111, + "tests/test_node_contact_validation.py::test_a_country_longer_than_the_column_is_refused_as_too_long[united kingdom]": 0.014527767000004133, + "tests/test_node_contact_validation.py::test_a_country_survives_surrounding_whitespace": 0.014109128000001192, + "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[1]": 0.015545416999998452, + "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[??]": 0.017083987000006573, + "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[G1]": 0.017256992000000082, + "tests/test_node_contact_validation.py::test_a_country_that_is_not_two_letters_is_refused[G]": 0.01685805299999288, + "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[email-256]": 0.014834854000014275, + "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[first_name-65]": 0.014420892999993384, + "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[last_name-65]": 0.017339795999987473, + "tests/test_node_contact_validation.py::test_a_field_longer_than_its_column_is_refused[phone-33]": 0.014710185000012643, + "tests/test_node_contact_validation.py::test_a_field_that_is_only_whitespace_normalises_to_null": 0.01480356999999799, + "tests/test_node_contact_validation.py::test_a_full_document_passes_through_unchanged": 0.014621619000024566, + "tests/test_node_contact_validation.py::test_a_non_string_is_refused[3.5]": 0.014409563000015169, + "tests/test_node_contact_validation.py::test_a_non_string_is_refused[42]": 0.014852091999955519, + "tests/test_node_contact_validation.py::test_a_non_string_is_refused[True]": 0.014459205000008524, + "tests/test_node_contact_validation.py::test_a_non_string_is_refused[value3]": 0.014520371000003252, + "tests/test_node_contact_validation.py::test_a_non_string_is_refused[value4]": 0.01437435500000106, + "tests/test_node_contact_validation.py::test_a_number_is_kept_as_typed[(020) 7946-0000]": 0.01454552600003467, + "tests/test_node_contact_validation.py::test_a_number_is_kept_as_typed[+44 20 7946 0000]": 0.014232491000029768, + "tests/test_node_contact_validation.py::test_a_number_is_kept_as_typed[07700900123]": 0.014597233999978698, + "tests/test_node_contact_validation.py::test_a_phone_that_is_not_a_number_is_refused[()]": 0.014741753999999219, + "tests/test_node_contact_validation.py::test_a_phone_that_is_not_a_number_is_refused[+44-EXT]": 0.014694255999984307, + "tests/test_node_contact_validation.py::test_a_phone_that_is_not_a_number_is_refused[not a number]": 0.014610699000002114, + "tests/test_node_contact_validation.py::test_a_shallow_check_does_not_refuse_a_working_address[a.b@sub.example.com]": 0.014142149999997855, + "tests/test_node_contact_validation.py::test_a_shallow_check_does_not_refuse_a_working_address[ada+node@example.co.uk]": 0.014406075000010787, + "tests/test_node_contact_validation.py::test_a_well_formed_code_is_taken_on_trust": 0.014045879999969202, + "tests/test_node_contact_validation.py::test_an_absent_field_is_null_rather_than_missing": 0.014501350999978513, + "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[@example.com]": 0.01424477199998364, + "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada lovelace@example.com]": 0.0142043350000165, + "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada@@example.com]": 0.014155776000023934, + "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada@]": 0.01450615400000288, + "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada@example]": 0.01426305699999375, + "tests/test_node_contact_validation.py::test_an_address_that_cannot_be_one_is_refused[ada]": 0.014486207999965472, + "tests/test_node_contact_validation.py::test_an_empty_document_is_a_null_per_field": 0.014193968000029145, + "tests/test_node_contact_validation.py::test_an_unknown_field_is_named_back": 0.014709303999978829, + "tests/test_node_contact_validation.py::test_surrounding_whitespace_is_stripped": 0.014550604999953975, + "tests/test_node_contact_validation.py::test_the_country_pattern_published_is_the_one_enforced": 0.01402483000001098, + "tests/test_node_contact_validation.py::test_the_published_schema_matches_the_bounds": 0.014471017000005304, + "tests/test_node_contact_validation.py::test_the_schema_is_fresh_every_call": 0.013913049999956684, + "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[POST-/v1/nodes/detection-body0]": 0.03485408699998516, + "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[POST-/v1/nodes/heartbeat-body1]": 0.03429808100000287, + "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[PUT-/v1/nodes/config-body2]": 0.031775283000001764, + "tests/test_node_error_taxonomy.py::test_a_bad_token_is_refused_in_the_taxonomy[PUT-/v1/nodes/contact-body3]": 0.03360268400001587, + "tests/test_node_error_taxonomy.py::test_a_body_that_cannot_even_be_read_is_a_400_in_the_taxonomy": 0.03021511100001817, + "tests/test_node_error_taxonomy.py::test_a_body_that_is_not_json_at_all_is_a_400": 0.0327624479999713, + "tests/test_node_error_taxonomy.py::test_a_frame_naming_a_node_is_refused_by_the_key_it_added": 0.0351511570000298, + "tests/test_node_error_taxonomy.py::test_a_long_field_path_is_truncated_to_the_contracts_bound": 0.03130427299998928, + "tests/test_node_error_taxonomy.py::test_a_malformed_agreements_block_answers_like_a_bad_config": 0.018629224999983762, + "tests/test_node_error_taxonomy.py::test_a_malformed_frame_is_a_400_naming_the_field": 0.033551588000023, + "tests/test_node_error_taxonomy.py::test_a_path_that_merely_starts_with_the_prefix_is_not_under_it": 0.02318591400000969, + "tests/test_node_error_taxonomy.py::test_an_invalid_configuration_still_says_so": 0.031900899000021354, + "tests/test_node_error_taxonomy.py::test_an_oversized_body_is_untouched": 0.03157559199999582, + "tests/test_node_error_taxonomy.py::test_an_unhandled_exception_answers_500_in_the_taxonomy": 0.036060937000002014, + "tests/test_node_error_taxonomy.py::test_an_unhandled_exception_outside_the_prefix_keeps_the_plain_text_500": 0.022624721999989106, + "tests/test_node_error_taxonomy.py::test_an_unknown_node_state_is_a_400": 0.032366172999985565, + "tests/test_node_error_taxonomy.py::test_an_unrouted_path_under_the_prefix_is_in_the_taxonomy": 0.02069145099997627, + "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[POST-/v1/nodes/detection-body0]": 0.03006789800002707, + "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[POST-/v1/nodes/heartbeat-body1]": 0.029840315999990707, + "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[PUT-/v1/nodes/config-body2]": 0.029687280999979748, + "tests/test_node_error_taxonomy.py::test_no_credential_at_all_is_refused_the_same_way[PUT-/v1/nodes/contact-body3]": 0.030338766000028272, + "tests/test_node_error_taxonomy.py::test_the_500_names_no_detail_and_leaks_no_exception_text": 0.036917298999981085, + "tests/test_node_error_taxonomy.py::test_the_field_path_carries_an_array_index": 0.031836902000037526, + "tests/test_node_error_taxonomy.py::test_the_refusal_names_the_field_and_nothing_else": 0.02934189500001594, + "tests/test_node_error_taxonomy.py::test_the_rest_of_the_api_keeps_fastapis_shape": 0.025333259000007047, + "tests/test_node_fixtures.py::test_accepted_in_mender_resolves_to_an_accepted_record": 0.018602623999981915, + "tests/test_node_fixtures.py::test_alerts_captures_a_call_time_import": 0.017267822000007982, + "tests/test_node_fixtures.py::test_alerts_is_empty_when_nothing_alerts": 0.017307446999978993, + "tests/test_node_fixtures.py::test_each_mender_fixture_is_undone_at_teardown": 0.01772473899998772, + "tests/test_node_fixtures.py::test_mender_down_raises_mender_unreachable": 0.017997580000013613, + "tests/test_node_fixtures.py::test_node_client_does_not_run_the_lifespan": 0.02509063600001582, + "tests/test_node_fixtures.py::test_node_client_installs_and_removes_the_override": 0.01645125099997813, + "tests/test_node_fixtures.py::test_node_client_reports_status_json_content_and_headers": 0.024602059000017107, + "tests/test_node_fixtures.py::test_node_client_requests_read_the_node_session_database": 0.0301994470000011, + "tests/test_node_fixtures.py::test_pending_in_mender_resolves_but_is_not_accepted": 0.018042885000028264, + "tests/test_node_fixtures.py::test_registered_node_unpacks_as_token_then_node_id": 0.031494016999999985, + "tests/test_node_fixtures.py::test_the_seed_survives_a_rollback": 0.034199152000013555, + "tests/test_node_fixtures.py::test_the_seeded_node_has_one_active_configuration": 0.030733162999979413, + "tests/test_node_fixtures.py::test_the_seeded_node_is_active_at_config_version_one": 0.028232780999985607, + "tests/test_node_fixtures.py::test_the_seeded_node_is_registered_with_the_pipeline": 0.03073676099998579, + "tests/test_node_fixtures.py::test_the_seeded_token_actually_authenticates": 0.028304653000020608, + "tests/test_node_fixtures.py::test_the_seeded_token_is_a_live_row_hashing_to_the_stored_hash": 0.031479335999989644, + "tests/test_node_fixtures.py::test_unknown_in_mender_resolves_to_none": 0.01806384400001093, + "tests/test_node_ids.py::test_a_clash_mints_again_and_keeps_the_callers_work": 0.030286804999974493, + "tests/test_node_ids.py::test_a_clash_on_the_first_statement_of_a_transaction_mints_again": 0.030634314999986145, + "tests/test_node_ids.py::test_a_fault_in_the_callers_own_rows_is_not_retried_as_a_clash": 0.024411717999953453, + "tests/test_node_ids.py::test_a_minted_id_is_the_prefix_and_eight_hex": 0.029033503000022165, + "tests/test_node_ids.py::test_every_system_prefix_is_three_lowercase_letters[bla]": 0.014709534999980178, + "tests/test_node_ids.py::test_every_system_prefix_is_three_lowercase_letters[ret]": 0.014489881999992349, + "tests/test_node_ids.py::test_fleet_ids_are_never_minted": 0.015542936999992207, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[e2e--bla]": 0.01734311299998126, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[e2e--ret]": 0.01744398200000319, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[realnode--bla]": 0.016987506000020858, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[realnode--ret]": 0.01612681299999963, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[synth--bla]": 0.017139000000014448, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[synth--ret]": 0.01661176200002501, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[test--bla]": 0.01684061000003112, + "tests/test_node_ids.py::test_no_system_prefix_overlaps_a_synthetic_one[test--ret]": 0.016925558999957957, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[-None]": 0.014345179999963875, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[bla1a2b3c4d-bla]": 0.015177450999999564, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1A2B3C4D-None]": 0.014938354000008758, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1a2b3c4-None]": 0.014564812000003258, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1a2b3c4d-ret]": 0.01533226199998694, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[ret1a2b3c4d5-None]": 0.014516171000025224, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[synth-0a1b2c3d-None]": 0.014386895999990656, + "tests/test_node_ids.py::test_system_of_reads_the_prefix_of_a_well_formed_id_only[xyz1a2b3c4d-None]": 0.014708122000001822, + "tests/test_node_ids.py::test_the_last_clash_is_raised_once_the_attempts_run_out": 0.035960211999992, + "tests/test_node_models.py::test_a_config_for_an_unknown_node_is_rejected": 0.021604294000013624, + "tests/test_node_models.py::test_a_config_missing_a_processing_parameter_is_rejected[cpi_s]": 0.026212232999995422, + "tests/test_node_models.py::test_a_config_missing_a_processing_parameter_is_rejected[delay_tolerance_us]": 0.025880732000018725, + "tests/test_node_models.py::test_a_config_missing_a_processing_parameter_is_rejected[doppler_tolerance_hz]": 0.02389677200000051, + "tests/test_node_models.py::test_a_node_ref_is_unique": 0.022206293000010646, + "tests/test_node_models.py::test_a_node_round_trips": 0.02631077900002765, + "tests/test_node_models.py::test_a_token_hash_is_unique": 0.026064047999994955, + "tests/test_node_models.py::test_a_zero_beam_azimuth_is_kept_as_zero": 0.027752112000001716, + "tests/test_node_models.py::test_beam_azimuth_null_survives_a_round_trip": 0.026859587999950918, + "tests/test_node_models.py::test_beam_width_null_survives_a_round_trip": 0.028262960000006387, + "tests/test_node_models.py::test_config_versions_are_unique_per_node": 0.026403334000036693, + "tests/test_node_models.py::test_the_processing_parameters_round_trip": 0.028466241000018044, + "tests/test_node_models.py::test_the_same_version_under_two_nodes_is_fine": 0.02896578799999361, + "tests/test_node_openapi.py::test_and_a_malformed_body_really_does_answer_400": 0.032905906999957324, + "tests/test_node_openapi.py::test_both_operations_reach_one_configuration_component": 0.016863782999990917, + "tests/test_node_openapi.py::test_every_bound_the_validator_enforces_reaches_the_schema": 0.017320378999983177, + "tests/test_node_openapi.py::test_every_endpoint_but_registration_requires_the_bearer": 0.016752685000000156, + "tests/test_node_openapi.py::test_every_field_the_validator_requires_is_published_and_required": 0.01696264899999278, + "tests/test_node_openapi.py::test_every_node_operation_publishes_its_body_as_a_component": 0.01687799099997278, + "tests/test_node_openapi.py::test_every_numeric_bound_the_models_enforce_reaches_the_schema": 0.014750853000009556, + "tests/test_node_openapi.py::test_every_refusal_carries_the_contracts_error_shape": 0.016750692000016443, + "tests/test_node_openapi.py::test_every_refusal_is_annotated_with_what_the_node_may_do": 0.017050896000000648, + "tests/test_node_openapi.py::test_every_retry_after_response_publishes_the_header": 0.016712418999986767, + "tests/test_node_openapi.py::test_it_describes_the_five_node_endpoints_and_nothing_else": 0.014397709000007808, + "tests/test_node_openapi.py::test_no_bound_is_published_as_a_pydantic_keyword": 0.014906434000010904, + "tests/test_node_openapi.py::test_no_operation_publishes_a_422": 0.014429069000044592, + "tests/test_node_openapi.py::test_only_a_refused_credential_is_terminal": 0.01679796999999894, + "tests/test_node_openapi.py::test_only_the_operations_that_cost_a_mailbox_or_the_pipeline_are_rate_limited": 0.016720785000018168, + "tests/test_node_openapi.py::test_the_bearer_scheme_is_published": 0.016835211999961075, + "tests/test_node_openapi.py::test_the_committed_contract_is_what_the_routes_generate": 0.07444241900000748, + "tests/test_node_openapi.py::test_the_committed_file_parses_as_yaml_and_matches_the_document": 0.10833743000000595, + "tests/test_node_openapi.py::test_the_contact_operation_reaches_its_own_component": 0.016852330999995502, + "tests/test_node_openapi.py::test_the_contract_carries_the_node_apis_own_version": 0.01522586100000467, + "tests/test_node_openapi.py::test_the_descriptions_are_written_for_a_node_author": 0.017140533000002733, + "tests/test_node_openapi.py::test_the_nullable_fields_publish_a_null_branch": 0.016865074999998342, + "tests/test_node_openapi.py::test_the_operation_ids_are_the_ones_the_node_client_was_built_against": 0.016822527000016407, + "tests/test_node_openapi.py::test_the_servers_are_origins_and_the_paths_carry_the_version": 0.0142719330000034, + "tests/test_node_openapi.py::test_the_timestamps_are_still_typed_as_datetimes": 0.01696459300001152, + "tests/test_node_pipeline.py::test_a_frame_reaches_the_queue_under_its_node_id": 0.017854681999978084, + "tests/test_node_pipeline.py::test_a_full_queue_drops_the_frame_and_bumps_the_counter": 0.017379320999992842, + "tests/test_node_pipeline.py::test_a_node_heard_within_the_threshold_is_primed_online": 0.02856325900000911, + "tests/test_node_pipeline.py::test_a_node_last_heard_before_the_threshold_is_primed_offline": 0.02831732100000295, + "tests/test_node_pipeline.py::test_a_node_never_heard_from_is_primed_offline_with_no_heartbeat": 0.026099225000024262, + "tests/test_node_pipeline.py::test_a_node_with_no_active_configuration_cannot_be_registered": 0.023560140999990153, + "tests/test_node_pipeline.py::test_a_node_with_no_azimuth_is_registered_broadside_not_due_north": 0.028533892000012884, + "tests/test_node_pipeline.py::test_a_primed_offline_node_is_not_counted_as_active": 0.02909192399999938, + "tests/test_node_pipeline.py::test_a_registered_node_appears_in_connected_nodes": 0.028458979000021145, + "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[e2e-]": 0.01724438700000519, + "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[realnode-]": 0.01723028099999624, + "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[synth-]": 0.017630511999982446, + "tests/test_node_pipeline.py::test_a_reserved_prefix_is_not_a_valid_v1_node_id[test-]": 0.01736668700002042, + "tests/test_node_pipeline.py::test_a_row_with_no_position_registers_unplaced_and_keeps_its_nulls": 0.032015238000013824, + "tests/test_node_pipeline.py::test_a_wire_tag_is_a_path_1_claim": 0.014724482999980637, + "tests/test_node_pipeline.py::test_an_aimed_node_keeps_the_azimuth_it_was_configured_with": 0.02708187499999326, + "tests/test_node_pipeline.py::test_every_node_is_primed_from_the_database_at_startup": 0.04602602099998876, + "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[e2e-]": 0.016800977000002604, + "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[realnode-]": 0.01696409100000551, + "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[synth-]": 0.016798110999985738, + "tests/test_node_pipeline.py::test_no_reserved_prefix_can_begin_a_v1_node_id[test-]": 0.016877257999965423, + "tests/test_node_pipeline.py::test_nodes_with_no_beam_width_are_registered_at_the_nominal_yagi_width": 0.03415473600000496, + "tests/test_node_pipeline.py::test_pipeline_frame_converts_the_wire_shape": 0.017000641000038286, + "tests/test_node_pipeline.py::test_pipeline_frame_files_position_tags_the_way_the_tcp_ingest_does": 0.016997595000020738, + "tests/test_node_pipeline.py::test_pipeline_frame_omits_the_tag_fields_the_node_left_null": 0.014294995000000199, + "tests/test_node_pipeline.py::test_pipeline_frame_takes_the_hexes_from_the_tags_when_adsb_hex_is_absent": 0.01678679000002603, + "tests/test_node_pipeline.py::test_priming_skips_a_node_with_no_active_config": 0.027291558000001714, + "tests/test_node_pipeline.py::test_priming_skips_a_retired_node": 0.026836163999973905, + "tests/test_node_pipeline.py::test_re_registering_evicts_the_cached_pipeline_so_the_next_frame_sees_the_new_geometry": 0.04505051099999946, + "tests/test_node_pipeline.py::test_re_registering_picks_up_the_new_active_configuration": 0.030608259000047155, + "tests/test_node_pipeline.py::test_registration_reaches_analytics_and_the_associator": 0.02743506899997783, + "tests/test_node_pipeline.py::test_startup_priming_loads_the_fleet_from_the_app_session": 0.030442649999997684, + "tests/test_node_pipeline.py::test_startup_priming_survives_a_database_failure": 0.01970357700000136, + "tests/test_node_pipeline.py::test_the_config_hash_is_computed_before_canonicalisation": 0.026940421000006154, + "tests/test_node_pipeline.py::test_the_offline_sweep_ages_a_primed_node": 0.028732209999986935, + "tests/test_node_pipeline.py::test_the_pipeline_config_carries_the_defaults_the_wire_config_omits": 0.027135069999985717, + "tests/test_node_pipeline.py::test_the_priming_summary_is_logged_where_it_can_actually_be_seen": 0.026184642999965035, + "tests/test_node_pipeline.py::test_the_route_uses_the_shared_conversion": 0.014518605000006346, + "tests/test_node_rate_limits.py::test_a_crowded_map_reclaims_only_counters_whose_window_has_passed": 0.015017120999971212, + "tests/test_node_rate_limits.py::test_a_full_claim_map_refuses_an_identity_it_does_not_already_track": 0.014325283000005129, + "tests/test_node_rate_limits.py::test_a_full_map_admits_a_tracked_node_whose_hourly_key_expired_but_daily_key_is_live": 0.014436042000028237, + "tests/test_node_rate_limits.py::test_a_full_registration_map_refuses_a_node_id_it_has_never_seen": 0.014735522999984596, + "tests/test_node_rate_limits.py::test_a_full_registration_map_still_serves_a_node_id_it_already_tracks": 0.014666884999968488, + "tests/test_node_rate_limits.py::test_a_live_counter_survives_a_crowded_map": 0.014580712000025642, + "tests/test_node_rate_limits.py::test_a_live_registration_counter_survives_a_crowded_map": 0.014845229000030713, + "tests/test_node_rate_limits.py::test_a_map_above_the_expected_fleet_size_warns_rather_than_evicting": 0.014722277999993594, + "tests/test_node_rate_limits.py::test_a_previously_refused_node_id_is_admitted_once_its_window_is_reclaimed": 0.014661454000020058, + "tests/test_node_rate_limits.py::test_a_refusal_by_the_address_limit_does_not_spend_the_node_limit": 0.014498658999968939, + "tests/test_node_rate_limits.py::test_a_refusal_by_the_daily_cap_does_not_spend_the_hourly_allowance": 0.014385277000002361, + "tests/test_node_rate_limits.py::test_a_refusal_does_not_hand_out_the_modules_own_body_dict": 0.014391898999974728, + "tests/test_node_rate_limits.py::test_a_refused_request_is_not_counted": 0.014432373999994752, + "tests/test_node_rate_limits.py::test_a_registration_refusal_does_not_hand_out_the_modules_own_body_dict": 0.014598075000009203, + "tests/test_node_rate_limits.py::test_an_endpoint_with_no_configured_limit_is_a_programming_error": 0.014526831999972956, + "tests/test_node_rate_limits.py::test_eight_detection_frames_a_second_are_admitted_and_the_ninth_is_not": 0.014510350999984212, + "tests/test_node_rate_limits.py::test_five_nominations_an_hour_are_admitted_and_the_sixth_is_not": 0.014452521999999135, + "tests/test_node_rate_limits.py::test_five_registrations_an_hour_are_admitted_and_the_sixth_is_not": 0.014499320000027183, + "tests/test_node_rate_limits.py::test_one_node_nominating_a_second_address_still_spends_its_own_allowance": 0.014582756999999447, + "tests/test_node_rate_limits.py::test_resetting_the_registration_limiter_clears_an_exhausted_counter": 0.014462680999997701, + "tests/test_node_rate_limits.py::test_resetting_the_token_limiter_clears_an_exhausted_counter": 0.014561827999983734, + "tests/test_node_rate_limits.py::test_the_claim_daily_limit_outlives_the_hourly_one": 0.014577567000003455, + "tests/test_node_rate_limits.py::test_the_claim_hourly_window_resets": 0.014392350999969494, + "tests/test_node_rate_limits.py::test_the_claim_retry_after_is_never_zero": 0.014176263999985395, + "tests/test_node_rate_limits.py::test_the_daily_cap_holds_though_the_hourly_window_is_fresh": 0.014813946999993277, + "tests/test_node_rate_limits.py::test_the_daily_window_resets": 0.014531500000032338, + "tests/test_node_rate_limits.py::test_the_detection_window_resets_after_a_second": 0.01446934500000907, + "tests/test_node_rate_limits.py::test_the_documented_claim_rates_are_the_ones_configured": 0.014576984999990827, + "tests/test_node_rate_limits.py::test_the_documented_rates_are_the_ones_configured": 0.014584430000041948, + "tests/test_node_rate_limits.py::test_the_documented_registration_rates_are_the_ones_configured": 0.014412776999961352, + "tests/test_node_rate_limits.py::test_the_endpoints_do_not_share_a_counter": 0.014623944000021538, + "tests/test_node_rate_limits.py::test_the_hourly_window_resets": 0.01564405899998178, + "tests/test_node_rate_limits.py::test_the_overflow_warning_is_throttled_by_its_own_interval": 0.014656575000003613, + "tests/test_node_rate_limits.py::test_the_registration_refusal_carries_the_shared_jittered_retry_after": 0.016545947999986765, + "tests/test_node_rate_limits.py::test_the_retry_after_counts_down_the_window_and_is_never_zero": 0.014407949000002418, + "tests/test_node_rate_limits.py::test_the_token_limiter_keeps_growing_past_its_bound_rather_than_refusing": 0.014586952999991354, + "tests/test_node_rate_limits.py::test_thirty_a_minute_on_the_slow_endpoints[config]": 0.014652016999974649, + "tests/test_node_rate_limits.py::test_thirty_a_minute_on_the_slow_endpoints[heartbeat]": 0.014426755000016556, + "tests/test_node_rate_limits.py::test_two_node_ids_do_not_share_a_registration_counter": 0.014384003999964534, + "tests/test_node_rate_limits.py::test_two_nodes_do_not_share_a_counter": 0.014476216000019804, + "tests/test_node_rate_limits.py::test_two_nodes_nominating_one_address_share_its_allowance": 0.014469923999996581, + "tests/test_node_refs.py::TestBackoff::test_a_failed_first_load_does_not_requery_every_call": 0.014945046000008233, + "tests/test_node_refs.py::TestIdForRef::test_a_node_id_is_not_accepted_as_a_ref": 0.018378133999988222, + "tests/test_node_refs.py::TestIdForRef::test_a_ref_resolves_back_to_its_node_id": 0.016862261000056833, + "tests/test_node_refs.py::TestIdForRef::test_an_unknown_ref_resolves_to_none": 0.016930849000004855, + "tests/test_node_refs.py::TestMirroredRef::test_a_mirrored_node_reaches_the_published_feed": 0.017144110000032242, + "tests/test_node_refs.py::TestMirroredRef::test_a_mirrored_ref_is_published_when_the_registry_has_none": 0.020538834000007, + "tests/test_node_refs.py::TestMirroredRef::test_the_registry_wins_over_a_mirrored_ref": 0.016950406000006524, + "tests/test_node_refs.py::TestMirroredRef::test_without_one_the_node_is_still_dropped": 0.019183962000028032, + "tests/test_node_refs.py::TestPublicRecords::test_a_node_id_inside_a_tuple_is_republished": 0.01765535900000259, + "tests/test_node_refs.py::TestPublicRecords::test_an_unresolvable_id_inside_a_tuple_loses_its_place": 0.020451382000004514, + "tests/test_node_refs.py::TestRefFor::test_a_missing_id_resolves_to_none": 0.016269889999989573, + "tests/test_node_refs.py::TestRefFor::test_a_registered_node_resolves_to_its_ref": 0.01763004099998966, + "tests/test_node_refs.py::TestRefFor::test_an_unregistered_node_resolves_to_none": 0.017217658999982177, + "tests/test_node_refs.py::TestRefToIdMap::test_a_mirrored_node_resolves_through_the_ids_it_is_given": 0.017415337999977965, + "tests/test_node_refs.py::TestRefToIdMap::test_a_node_with_no_handle_at_all_is_left_out": 0.017355696000009857, + "tests/test_node_refs.py::TestRefToIdMap::test_a_synthetic_node_maps_to_itself": 0.01738367900000526, + "tests/test_node_refs.py::TestRefToIdMap::test_it_names_the_node_behind_every_registered_ref": 0.01728904099999795, + "tests/test_node_refs.py::TestRefToIdMap::test_the_registry_wins_over_a_mirrored_ref": 0.017934742999983655, + "tests/test_node_refs.py::TestRefreshIsAtomic::test_a_reader_never_sees_a_partial_map_during_concurrent_refreshes": 0.8651385699999992, + "tests/test_node_refs.py::TestRefreshIsAtomic::test_a_successful_refresh_rebinds_rather_than_mutates": 0.019452534999999216, + "tests/test_node_refs.py::TestSubstituteIdentities::test_a_hex_left_with_no_nodes_loses_its_entry": 0.01732384600001069, + "tests/test_node_refs.py::TestSubstituteIdentities::test_a_null_node_id_is_published_as_a_null_ref": 0.016997906000000285, + "tests/test_node_refs.py::TestSubstituteIdentities::test_a_single_node_entry_carries_the_ref": 0.01733244399997602, + "tests/test_node_refs.py::TestSubstituteIdentities::test_a_synthetic_node_passes_through_unchanged": 0.01617325099999789, + "tests/test_node_refs.py::TestSubstituteIdentities::test_an_empty_contributor_list_is_renamed_not_dropped": 0.01703027700000348, + "tests/test_node_refs.py::TestSubstituteIdentities::test_an_unresolvable_real_node_is_dropped_not_published": 0.017550862999996752, + "tests/test_node_refs.py::TestSubstituteIdentities::test_arcs_and_detecting_nodes_are_substituted": 0.017231582999983175, + "tests/test_node_refs.py::TestSubstituteIdentities::test_contributing_ids_are_substituted": 0.01834678500000564, + "tests/test_node_refs.py::TestSubstituteIdentities::test_the_messages_count_follows_what_survives": 0.017455343999984052, + "tests/test_node_refs.py::TestUnresolvedLogging::test_a_different_unresolvable_id_still_logs_its_own_line": 0.01794428099998413, + "tests/test_node_refs.py::TestUnresolvedLogging::test_a_refresh_lets_it_log_again": 0.01833670599998527, + "tests/test_node_refs.py::TestUnresolvedLogging::test_a_repeated_unresolvable_id_logs_once": 0.017568826000001536, + "tests/test_node_refusals.py::test_the_retry_after_is_a_whole_number_of_seconds": 0.014282414000007293, + "tests/test_node_refusals.py::test_the_retry_after_is_jittered_rather_than_constant": 0.01466206399999237, + "tests/test_node_refusals.py::test_the_retry_after_stays_inside_the_jittered_range": 0.015313638000009178, + "tests/test_node_refusals.py::test_the_two_bodies_are_the_documented_ones": 0.0146000000000015, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_failed_commit_does_not_invalidate_or_publish[False]": 0.03908924800001046, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_failed_commit_does_not_invalidate_or_publish[True]": 0.0379868250000186, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_new_private_registration_refreshes_policy_before_pipeline_publication": 0.04114305999999601, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_pipeline_failure_keeps_committed_privacy_effective": 0.04329608000000462, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[active-private-public]": 0.05154191099998684, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[active-public-private]": 0.0507347589999938, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[blocked-private-public]": 0.05500352399999997, + "tests/test_node_register.py::TestRegistrationPublicationCache::test_reregistration_refreshes_changed_choice[blocked-public-private]": 0.05697646800001621, + "tests/test_node_register.py::test_a_blocked_board_re_registers_without_returning_to_the_pipeline": 0.047973231000014493, + "tests/test_node_register.py::test_a_colliding_registration_is_refused_rather_than_a_500": 0.029891320999951176, + "tests/test_node_register.py::test_a_first_registration_raises_no_hold": 0.037304427000009355, + "tests/test_node_register.py::test_a_malformed_node_id_never_reaches_mender": 0.021825449000004937, + "tests/test_node_register.py::test_a_private_choice_is_recorded_as_private": 0.04014396000002307, + "tests/test_node_register.py::test_a_refused_registration_writes_nothing": 0.02827010400000063, + "tests/test_node_register.py::test_agreements_missing_publication_is_rejected": 0.020223611999995228, + "tests/test_node_register.py::test_an_acceptance_sent_with_an_offset_is_stored_as_the_instant": 0.04531294000003072, + "tests/test_node_register.py::test_an_accepted_device_registers": 0.03898532500002716, + "tests/test_node_register.py::test_an_invalid_config_is_a_400_only_after_identity_resolves": 0.02643797899997935, + "tests/test_node_register.py::test_an_over_long_unknown_config_key_is_still_a_400": 0.01981336600002237, + "tests/test_node_register.py::test_an_unknown_device_raises_no_alert": 0.02351369299998396, + "tests/test_node_register.py::test_every_refusal_class_shares_one_body": 0.08555645600000616, + "tests/test_node_register.py::test_mender_unreachable_raises_the_alert": 0.022538155000006554, + "tests/test_node_register.py::test_re_registration_clears_the_previous_owners_contact": 0.059343675000008034, + "tests/test_node_register.py::test_re_registration_keeps_the_node_ref_and_returns_the_held_version": 0.05781747400001791, + "tests/test_node_register.py::test_re_registration_records_a_withdrawn_publication_choice": 0.0486181610000358, + "tests/test_node_register.py::test_re_registration_revokes_the_previous_token": 0.04867689300002098, + "tests/test_node_register.py::test_the_agreement_records_are_stored": 0.040262592000004815, + "tests/test_node_register.py::test_the_configuration_is_stored_as_version_one": 0.03967525200002342, + "tests/test_node_register.py::test_the_hold_alert_fires_after_the_commit": 0.046781325000011975, + "tests/test_node_register.py::test_the_limiter_is_keyed_per_node_id": 0.09307299299999272, + "tests/test_node_register.py::test_the_node_reaches_the_pipeline": 0.03814012599997341, + "tests/test_node_register.py::test_the_rate_limiter_fires_before_the_mender_call": 0.07351686299995208, + "tests/test_node_register.py::test_the_registered_node_is_active_and_holds_a_live_token": 0.04182725600000481, + "tests/test_node_register.py::test_the_registration_is_committed_rather_than_left_pending": 0.03976600900003291, + "tests/test_node_registration_flag.py::TestPublishedPayload::test_the_declared_polygon_is_translated_rigidly": 0.015809733999958553, + "tests/test_node_registration_flag.py::TestPublishedPayload::test_the_manager_keeps_the_true_wedge": 0.015388476999987688, + "tests/test_node_registration_flag.py::TestPublishedPayload::test_the_source_survives_the_public_rewrite": 0.01703850199999124, + "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_a_real_node_still_publishes_evidence_only": 0.015028230999973857, + "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_a_synthetic_node_publishes_its_declared_cone": 0.017487868999978673, + "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_it_is_published_before_any_traffic_has_flown": 0.015971960000001673, + "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_the_cone_is_the_declared_one": 0.015572242000018832, + "tests/test_node_registration_flag.py::TestWhoseGeometryIsTruth::test_the_two_registries_still_agree_on_the_node": 0.014965135000011287, + "tests/test_node_reports.py::test_a_new_state_starts_its_own_clock": 0.053818495000001576, + "tests/test_node_reports.py::test_a_node_reporting_a_fault_is_still_judged_by_the_server": 0.040069025000008196, + "tests/test_node_reports.py::test_a_report_that_cannot_be_stored_does_not_cost_the_beat": 0.040336300000006986, + "tests/test_node_reports.py::test_a_restart_starts_the_clock_again_in_the_same_state": 0.05159690799999339, + "tests/test_node_reports.py::test_a_state_held_across_beats_keeps_the_time_it_began": 0.05374030400002994, + "tests/test_node_reports.py::test_errors_outlive_the_beat_that_reported_them": 0.05996957199999997, + "tests/test_node_reports.py::test_the_health_check_s_copy_keeps_the_stored_clock_across_a_restart": 0.04642019500002448, + "tests/test_node_reports.py::test_the_heartbeat_s_self_report_is_stored": 0.04463725299999055, + "tests/test_node_reports.py::test_the_kept_errors_are_bounded_and_the_newest_survive": 0.06025892499999941, + "tests/test_node_reports.py::test_the_reports_are_for_administrators_only": 0.04193098500002179, + "tests/test_node_retirement.py::TestAdminRoutes::test_a_sweep_that_partly_fails_returns_207": 0.12840255400001865, + "tests/test_node_retirement.py::TestAdminRoutes::test_a_sweep_that_retires_nothing_and_fails_returns_500": 0.12892082799996274, + "tests/test_node_retirement.py::TestAdminRoutes::test_delete_conflicts_on_a_connected_node": 0.12934435199997552, + "tests/test_node_retirement.py::TestAdminRoutes::test_delete_retires_the_node": 0.12813600800001268, + "tests/test_node_retirement.py::TestAdminRoutes::test_delete_with_force_retires_a_connected_node": 0.1299109729999941, + "tests/test_node_retirement.py::TestAdminRoutes::test_retire_stale_sweeps_and_reports": 0.45035594299997683, + "tests/test_node_retirement.py::TestAdminRoutes::test_stale_listing_names_the_departed_node": 0.12895674599997164, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_connected_node_without_a_heartbeat_is_not_aged_by_when_it_was_first_seen": 0.015413402999968184, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_disposable_node_heard_recently_is_left_to_its_run": 0.015609031000025197, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_failure_is_reported_and_the_rest_still_go": 0.01582584699997369, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_heartbeat_stamp_that_is_not_a_string_leaves_the_node_and_spares_the_sweep": 0.016254059999994297, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_heartbeat_without_an_offset_is_read_as_utc": 0.014712599999995746, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_held_disposable_node_is_retired_once_quiet": 0.016226468999946064, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_held_node_heard_again_before_its_turn_is_spared": 0.015565249000019321, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_held_node_that_cannot_be_aged_is_left": 0.015994473999995762, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_node_without_a_heartbeat_is_aged_by_its_other_stamps[disconnected_ts]": 0.016201270999999906, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_node_without_a_heartbeat_is_aged_by_its_other_stamps[first_seen_ts]": 0.015802924000013263, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_quiet_node_outside_the_prefixes_is_left": 0.01575786899999798, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_stale_disposable_node_is_retired_on_its_second_stale_pass": 0.0158402849999959, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_stale_id_that_registers_between_passes_is_spared": 0.01579589099998202, + "tests/test_node_retirement.py::TestDisposableSweep::test_a_stale_node_outside_the_prefixes_is_left": 0.016170271999982333, + "tests/test_node_retirement.py::TestDisposableSweep::test_nothing_is_swept_where_no_prefixes_are_configured": 0.016568018999976175, + "tests/test_node_retirement.py::TestDisposableSweepTask::test_it_is_in_the_staleness_registry": 0.014850929000004953, + "tests/test_node_retirement.py::TestDisposableSweepTask::test_the_loop_reports_success_to_the_task_registry": 0.025431619999977784, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_an_unforced_retire_is_never_restricted": 0.014830541999970137, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_is_permitted_inside_the_allowlist": 0.01460556799997903, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_is_refused_outside_the_allowlist": 0.01492395600001828, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_is_unrestricted_when_no_prefixes_are_configured": 0.01628324499998257, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_force_on_a_node_already_absent_is_not_restricted": 0.015505767000007609, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_the_allowlist_gates_a_disconnected_node_too": 0.016109833000001572, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_the_route_permits_a_force_retire_inside_the_allowlist": 0.1270762199999922, + "tests/test_node_retirement.py::TestForceRetireAllowlist::test_the_route_refuses_with_403_and_names_the_prefixes": 0.1258233639999844, + "tests/test_node_retirement.py::TestParseCommaList::test_a_normal_two_prefix_value": 0.014792429999999968, + "tests/test_node_retirement.py::TestParseCommaList::test_a_trailing_comma_does_not_yield_an_empty_prefix": 0.015704851000009512, + "tests/test_node_retirement.py::TestParseCommaList::test_an_empty_string_yields_no_prefixes": 0.015027068999984294, + "tests/test_node_retirement.py::TestParseCommaList::test_whitespace_around_entries_is_stripped": 0.015135181000033526, + "tests/test_node_retirement.py::TestRetireNode::test_a_disconnected_node_is_still_held_and_still_refused": 0.01556633999996393, + "tests/test_node_retirement.py::TestRetireNode::test_a_failure_partway_re_raises_and_leaves_the_rest_retirable": 0.015935833000014554, + "tests/test_node_retirement.py::TestRetireNode::test_force_overrides_the_refusal": 0.015400019000026077, + "tests/test_node_retirement.py::TestRetireNode::test_it_clears_analytics_and_custody": 0.015461744999981875, + "tests/test_node_retirement.py::TestRetireNode::test_it_evicts_the_cached_pipeline": 0.015295322000014266, + "tests/test_node_retirement.py::TestRetireNode::test_it_evicts_the_node_from_the_fleet_registry": 0.01552663699999357, + "tests/test_node_retirement.py::TestRetireNode::test_it_refuses_a_connected_node": 0.015435956999994005, + "tests/test_node_retirement.py::TestRetireNode::test_retire_stale_clears_everything_absent": 0.015306352000010293, + "tests/test_node_retirement.py::TestRetireNode::test_retire_stale_records_a_failure_and_keeps_going": 0.015974185000033003, + "tests/test_node_retirement.py::TestRetireNode::test_retire_stale_skips_a_node_that_reconnected_and_finishes_the_rest": 0.0156737830000111, + "tests/test_node_retirement.py::TestRetireNode::test_retiring_a_node_that_was_never_registered_is_a_no_op": 0.015428121000013562, + "tests/test_node_retirement.py::TestStaleDetection::test_a_connected_node_is_not": 0.016687700000005634, + "tests/test_node_retirement.py::TestStaleDetection::test_a_departed_node_is_reported_stale": 0.017144009000020333, + "tests/test_node_retirement.py::TestStaleDetection::test_a_frame_record_outliving_the_registry_is_held": 0.015050042999973812, + "tests/test_node_retirement.py::TestStaleDetection::test_a_node_reporting_from_outside_the_registry_is_not": 0.015875100999977576, + "tests/test_node_retirement.py::TestStaleDetection::test_custody_alone_is_enough_to_be_held": 0.015303076999998666, + "tests/test_node_retirement.py::TestStaleDetection::test_retiring_a_node_drops_its_frame_and_report_records": 0.01605165300003364, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/claim/resend]": 0.016664310999999543, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/claim]": 0.01704017500000532, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/config]": 0.016823778000002676, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/contact]": 0.0168395179999834, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/detection]": 0.017049173000003748, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/heartbeat]": 0.018822994999993625, + "tests/test_node_router_skeleton.py::test_a_body_at_the_cap_is_not_refused[/v1/nodes/register]": 0.01698795700005462, + "tests/test_node_router_skeleton.py::test_a_non_node_path_is_not_capped_at_8_kib": 0.018407891000009613, + "tests/test_node_router_skeleton.py::test_a_non_node_path_over_the_global_cap_keeps_the_detail_shape": 0.01902092000000266, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/claim/resend]": 0.01585587299999247, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/claim]": 0.015822670999995125, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/config]": 0.01594853800000351, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/contact]": 0.016047511000010672, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/detection]": 0.01596863599999665, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/heartbeat]": 0.015955490000010286, + "tests/test_node_router_skeleton.py::test_a_trailing_slash_does_not_escape_the_cap[/v1/nodes/register]": 0.016011656000017638, + "tests/test_node_router_skeleton.py::test_detection_cap_is_larger_than_the_other_three": 0.017087261999989778, + "tests/test_node_router_skeleton.py::test_every_capped_path_has_a_method_and_vice_versa": 0.014746324999975968, + "tests/test_node_router_skeleton.py::test_main_wires_the_node_caps_into_the_middleware": 0.017301927000033857, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/claim/resend]": 0.01686967599999889, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/claim]": 0.01749093200001539, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/config]": 0.01651650300001961, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/contact]": 0.01618146399999887, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/detection]": 0.015956341999981305, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/heartbeat]": 0.016190148999953635, + "tests/test_node_router_skeleton.py::test_one_byte_over_the_cap_is_refused[/v1/nodes/register]": 0.015887583000022687, + "tests/test_node_router_skeleton.py::test_the_node_router_is_mounted_under_v1_nodes": 0.017162514000006013, + "tests/test_node_router_skeleton.py::test_the_skeleton_carries_all_three_endpoint_modules": 0.017345296999991433, + "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_a_frame_without_either_column_is_valid": 0.015027259999982334, + "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_a_hex_only_frame_is_still_accepted": 0.01449164699999983, + "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_tags_alone_carry_the_association": 0.015190886999988606, + "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_tags_alone_must_still_be_parallel": 0.014757384000006368, + "tests/test_node_schemas.py::TestAdsbHexIsOptional::test_the_contract_marks_it_deprecated": 0.017849513000015804, + "tests/test_node_schemas.py::TestAdsbTags::test_a_hex_beside_a_null_tag_is_accepted": 0.014809439999993401, + "tests/test_node_schemas.py::TestAdsbTags::test_a_tag_needs_only_hex_and_position": 0.014530718000031584, + "tests/test_node_schemas.py::TestAdsbTags::test_a_tag_on_an_unassociated_detection_is_refused": 0.015145431000007648, + "tests/test_node_schemas.py::TestAdsbTags::test_a_tagged_frame_round_trips": 0.014478830000001608, + "tests/test_node_schemas.py::TestAdsbTags::test_a_tags_hex_must_agree_with_adsb_hex": 0.014944563999989668, + "tests/test_node_schemas.py::TestAdsbTags::test_absent_is_none_and_the_documented_frame_still_round_trips": 0.014539565999996285, + "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[alt-ground]": 0.01504491399998642, + "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[hex-4CA1F2]": 0.01497928900002421, + "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[lat-90.5]": 0.014875546000013173, + "tests/test_node_schemas.py::TestAdsbTags::test_malformed_tag_values_are_refused[lon--180.5]": 0.014967267999992373, + "tests/test_node_schemas.py::TestAdsbTags::test_the_list_must_be_parallel": 0.014788913000018056, + "tests/test_node_schemas.py::TestAdsbTags::test_unknown_keys_in_a_tag_are_refused": 0.01486812100000634, + "tests/test_node_schemas.py::test_a_board_model_over_64_characters_is_rejected": 0.0142623369999626, + "tests/test_node_schemas.py::test_a_boolean_is_not_a_measurement[delay]": 0.017211715999962962, + "tests/test_node_schemas.py::test_a_boolean_is_not_a_measurement[doppler]": 0.017115826000008383, + "tests/test_node_schemas.py::test_a_boolean_is_not_a_measurement[snr]": 0.017142697000025464, + "tests/test_node_schemas.py::test_a_config_version_below_one_is_rejected": 0.014209174999962215, + "tests/test_node_schemas.py::test_a_detail_over_512_characters_is_rejected": 0.014443706999998085, + "tests/test_node_schemas.py::test_a_frame_below_a_documented_bound_is_rejected[override0]": 0.0172828889999721, + "tests/test_node_schemas.py::test_a_frame_below_a_documented_bound_is_rejected[override1]": 0.017297115999980406, + "tests/test_node_schemas.py::test_a_frame_below_a_documented_bound_is_rejected[override2]": 0.01729932099999587, + "tests/test_node_schemas.py::test_a_frame_carrying_a_node_identifier_is_rejected": 0.017000459999991335, + "tests/test_node_schemas.py::test_a_malformed_boot_id_is_rejected[K3N8V2QP71AB]": 0.015008875999967586, + "tests/test_node_schemas.py::test_a_malformed_boot_id_is_rejected[k3n8v2q]": 0.01504559500006053, + "tests/test_node_schemas.py::test_a_malformed_boot_id_is_rejected[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk]": 0.01487835899999368, + "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[4CA1F2]": 0.01715007100003163, + "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[4ca1f22]": 0.017424204999997528, + "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[4ca1f]": 0.01720029500000919, + "tests/test_node_schemas.py::test_a_malformed_icao_address_is_rejected[zzzzzz]": 0.017242955000028815, + "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[]": 0.014477591000002121, + "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[nde4f2k9xq7m3b8]": 0.014377369999976963, + "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[ret1A2B3C4D]": 0.01449182499996482, + "tests/test_node_schemas.py::test_a_malformed_node_id_is_rejected[ret1a2b3c4]": 0.01462145799996506, + "tests/test_node_schemas.py::test_a_malformed_node_ref_is_rejected[NDE4F2K9XQ7M3B8]": 0.014586981999997306, + "tests/test_node_schemas.py::test_a_malformed_node_ref_is_rejected[abc4f2k9xq7m3b8]": 0.014300036000008731, + "tests/test_node_schemas.py::test_a_malformed_node_ref_is_rejected[nde4f2k9xq7m3b]": 0.014176205000012487, + "tests/test_node_schemas.py::test_a_naive_server_time_is_rejected": 0.014214234999997188, + "tests/test_node_schemas.py::test_a_negative_uptime_is_rejected": 0.01435300400001438, + "tests/test_node_schemas.py::test_a_node_with_no_version_yet_sends_null": 0.01728118800002676, + "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_inside_snr[inf]": 0.01810966099998268, + "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_inside_snr[nan]": 0.017173914000011337, + "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_on_t[inf]": 0.017154537999999775, + "tests/test_node_schemas.py::test_a_non_finite_value_is_rejected_on_t[nan]": 0.01730297699998573, + "tests/test_node_schemas.py::test_a_numeric_string_is_not_a_count": 0.017138338999984626, + "tests/test_node_schemas.py::test_a_numeric_string_is_not_a_measurement": 0.016195541000001867, + "tests/test_node_schemas.py::test_a_private_choice_is_carried": 0.014250744000008808, + "tests/test_node_schemas.py::test_a_synthetic_node_ref_is_accepted": 0.014457419999985177, + "tests/test_node_schemas.py::test_a_third_choice_is_rejected": 0.01424371100003441, + "tests/test_node_schemas.py::test_a_token_outside_the_documented_length_is_rejected[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk]": 0.01440284000000247, + "tests/test_node_schemas.py::test_a_token_outside_the_documented_length_is_rejected[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk]": 0.014304935000041041, + "tests/test_node_schemas.py::test_a_versions_field_over_64_characters_is_rejected": 0.014439936999991687, + "tests/test_node_schemas.py::test_absent_adsb_means_disabled_rather_than_unknown": 0.014339181000025292, + "tests/test_node_schemas.py::test_agreements_missing_publication_are_rejected": 0.014220336999983374, + "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[blah2]": 0.014510460999986208, + "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[cpu_pct]": 0.014479211999997688, + "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[disk_free_mb]": 0.01444664199999579, + "tests/test_node_schemas.py::test_an_absent_health_field_is_rejected[temp_c]": 0.0145118039999943, + "tests/test_node_schemas.py::test_an_acceptance_timestamp_without_an_offset_is_rejected": 0.01437664900001323, + "tests/test_node_schemas.py::test_an_acceptance_version_over_32_characters_is_rejected": 0.01417483200003744, + "tests/test_node_schemas.py::test_an_empty_frame_is_valid": 0.017211515000013833, + "tests/test_node_schemas.py::test_an_error_body_may_name_the_condition": 0.014395305000022063, + "tests/test_node_schemas.py::test_an_error_body_omits_detail_when_there_is_none": 0.014377451000001429, + "tests/test_node_schemas.py::test_an_error_over_64_characters_is_rejected": 0.014562609999984488, + "tests/test_node_schemas.py::test_an_omitted_choice_is_rejected_rather_than_defaulted": 0.01412498700000242, + "tests/test_node_schemas.py::test_an_out_of_range_rx_lat_is_left_for_the_validator": 0.01717774200002964, + "tests/test_node_schemas.py::test_an_over_long_error_string_is_rejected": 0.014473922999997058, + "tests/test_node_schemas.py::test_an_unassociated_detection_is_null_rather_than_absent": 0.017111556999992672, + "tests/test_node_schemas.py::test_an_undocumented_state_is_rejected": 0.014620957000005319, + "tests/test_node_schemas.py::test_an_unknown_heartbeat_key_is_rejected": 0.014208113999984562, + "tests/test_node_schemas.py::test_an_unknown_top_level_key_is_rejected": 0.016116734999968685, + "tests/test_node_schemas.py::test_an_unrecognised_config_key_is_also_left_for_the_validator": 0.017558968000003006, + "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[adsb_hex]": 0.016963761999988947, + "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[delay]": 0.017466403000014452, + "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[doppler]": 0.01729212700004723, + "tests/test_node_schemas.py::test_arrays_of_different_lengths_are_rejected[snr]": 0.017128169000017124, + "tests/test_node_schemas.py::test_every_documented_state_is_accepted[error]": 0.01423975399998767, + "tests/test_node_schemas.py::test_every_documented_state_is_accepted[paused]": 0.014436391999993248, + "tests/test_node_schemas.py::test_every_documented_state_is_accepted[stalled]": 0.014402959999983977, + "tests/test_node_schemas.py::test_every_documented_state_is_accepted[starting]": 0.014396356999952786, + "tests/test_node_schemas.py::test_every_documented_state_is_accepted[stopping]": 0.014419880000019702, + "tests/test_node_schemas.py::test_every_documented_state_is_accepted[streaming]": 0.01444663000003743, + "tests/test_node_schemas.py::test_every_frame_field_is_required[boot_id]": 0.017291456000009475, + "tests/test_node_schemas.py::test_every_frame_field_is_required[config_version]": 0.01716645999999855, + "tests/test_node_schemas.py::test_every_frame_field_is_required[delay]": 0.015565479999992249, + "tests/test_node_schemas.py::test_every_frame_field_is_required[doppler]": 0.014447302000007767, + "tests/test_node_schemas.py::test_every_frame_field_is_required[seq]": 0.016016323999991755, + "tests/test_node_schemas.py::test_every_frame_field_is_required[snr]": 0.014375265999973408, + "tests/test_node_schemas.py::test_every_frame_field_is_required[t]": 0.014927795000033939, + "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override0]": 0.014718459999983224, + "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override1]": 0.015082653999968443, + "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override2]": 0.014695508000016844, + "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override3]": 0.014483270000027915, + "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override4]": 0.014465655999970295, + "tests/test_node_schemas.py::test_health_outside_a_documented_bound_is_rejected[override5]": 0.014461900000014793, + "tests/test_node_schemas.py::test_health_says_known_to_be_unknown_with_nulls": 0.014536228999986633, + "tests/test_node_schemas.py::test_the_acknowledgement_round_trips": 0.014303491999982043, + "tests/test_node_schemas.py::test_the_array_bound_is_512": 0.01832599600001572, + "tests/test_node_schemas.py::test_the_config_response_carries_the_active_version": 0.014723400999997693, + "tests/test_node_schemas.py::test_the_documented_frame_round_trips": 0.01618009099996698, + "tests/test_node_schemas.py::test_the_documented_heartbeat_round_trips": 0.016527020999973274, + "tests/test_node_schemas.py::test_the_documented_registration_body_round_trips": 0.01710008600002766, + "tests/test_node_schemas.py::test_the_error_body_documents_its_fields_on_the_serialisation_side": 0.017357690000011416, + "tests/test_node_schemas.py::test_the_error_body_still_honours_the_dump_arguments": 0.01433350000002065, + "tests/test_node_schemas.py::test_the_error_list_is_bounded_at_32": 0.014244742999949267, + "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[boot_id]": 0.015904374000001553, + "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[config_version]": 0.014427705000002788, + "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[state]": 0.017249016000022266, + "tests/test_node_schemas.py::test_the_four_required_heartbeat_fields_are_required[uptime_s]": 0.017272289999993973, + "tests/test_node_schemas.py::test_the_heartbeat_refuses_to_be_built_without_a_claim_state": 0.014517535000038606, + "tests/test_node_schemas.py::test_the_heartbeat_response_round_trips_with_a_z_suffixed_time": 0.014379496000032077, + "tests/test_node_schemas.py::test_the_minimal_heartbeat_is_state_uptime_boot_id_and_version": 0.017112448999995422, + "tests/test_node_schemas.py::test_the_registration_response_round_trips_with_a_z_suffixed_time": 0.014341503999986571, + "tests/test_node_sites.py::TestAudit::test_a_near_miss_beyond_the_radius_is_reported_not_merged": 0.015257101000003104, + "tests/test_node_sites.py::TestAudit::test_a_shared_site_is_reported": 0.01520776099999921, + "tests/test_node_sites.py::TestAudit::test_a_zero_radius_is_the_exact_rule_alone": 0.015368329000011727, + "tests/test_node_sites.py::TestAudit::test_ordinary_neighbours_are_not_near_misses": 0.015229849000007789, + "tests/test_node_sites.py::TestAudit::test_the_audit_logs_once_per_change": 0.015620982999990929, + "tests/test_node_sites.py::TestAudit::test_the_radius_is_configurable_under_both_names": 0.015283037999978433, + "tests/test_node_sites.py::TestProximityJoin::test_a_chain_of_near_neighbours_does_not_become_one_site": 0.014843002000020533, + "tests/test_node_sites.py::TestProximityJoin::test_a_disconnected_anchor_does_not_move_the_joined_node": 0.017815359000024955, + "tests/test_node_sites.py::TestProximityJoin::test_a_lone_receiver_beyond_the_radius_keys_on_itself": 0.016505413999993834, + "tests/test_node_sites.py::TestProximityJoin::test_a_lone_receiver_joins_the_nearest_site": 0.01483249400001796, + "tests/test_node_sites.py::TestProximityJoin::test_a_receiver_16_m_from_a_pair_joins_it_even_with_a_lower_id": 0.016440028999994638, + "tests/test_node_sites.py::TestProximityJoin::test_a_receiver_56_m_from_a_site_joins_it": 0.01524983800001678, + "tests/test_node_sites.py::TestProximityJoin::test_the_declared_uncertainty_widens_for_the_whole_site": 0.015237683999998808, + "tests/test_node_sites.py::TestProximityJoin::test_the_join_does_not_depend_on_connection_order": 0.014791386999974065, + "tests/test_node_sites.py::TestProximityJoin::test_the_joined_node_is_published_at_the_site_point": 0.015372568000003639, + "tests/test_node_sites.py::TestProximityJoin::test_the_joined_node_lands_on_the_anchor_as_configured_not_as_rounded": 0.015321200999977691, + "tests/test_node_sites.py::TestProximityJoin::test_the_joined_nodes_artefacts_move_with_its_marker": 0.01579270499999552, + "tests/test_node_sites.py::TestProximityJoin::test_two_lone_receivers_within_the_radius_become_one_site": 0.014924508999996533, + "tests/test_node_sites.py::TestSharedOffset::test_a_lone_node_is_not_re_fuzzed_by_this_module": 0.017729516999992256, + "tests/test_node_sites.py::TestSharedOffset::test_arc_and_trail_deltas_agree_with_the_shared_anchor": 0.015879516999973475, + "tests/test_node_sites.py::TestSharedOffset::test_co_located_nodes_publish_the_same_point": 0.018354330999983404, + "tests/test_node_sites.py::TestSharedOffset::test_the_centroid_attack_gains_nothing": 0.017866714000007278, + "tests/test_node_sites.py::TestSharedOffset::test_the_shared_point_is_still_displaced": 0.018882931000007375, + "tests/test_node_sites.py::TestSiteIdentity::test_a_bad_position_is_not_a_site": 0.01758577800003991, + "tests/test_node_sites.py::TestSiteIdentity::test_a_disconnected_site_mate_does_not_dissolve_the_site": 0.017512637000010045, + "tests/test_node_sites.py::TestSiteIdentity::test_a_lone_node_keys_on_itself": 0.015186298999964265, + "tests/test_node_sites.py::TestSiteIdentity::test_a_node_with_no_known_position_keys_on_itself": 0.017054702999956817, + "tests/test_node_sites.py::TestSiteIdentity::test_a_third_node_joins_the_same_site": 0.015862846999993963, + "tests/test_node_sites.py::TestSiteIdentity::test_co_located_nodes_key_on_the_lowest_id": 0.015043970999954581, + "tests/test_node_sites.py::TestSiteIdentity::test_positions_differing_below_the_rounding_are_one_site": 0.017769381999983125, + "tests/test_node_sites.py::TestSources::test_a_failing_source_does_not_break_the_others": 0.017949069999986023, + "tests/test_node_sites.py::TestSources::test_a_file_defined_node_is_a_site": 0.01767122799998333, + "tests/test_node_sites.py::TestSources::test_a_site_is_not_invented_from_a_missing_source": 0.017754554000021017, + "tests/test_node_sites.py::test_km_between_is_the_real_distance": 0.017519994999986466, + "tests/test_node_streaming.py::test_a_blocked_node_is_not_recovered_into_the_pipeline": 0.041164226000006465, + "tests/test_node_streaming.py::test_a_blocked_node_is_told_to_pause_on_the_heartbeat": 0.042359942999979694, + "tests/test_node_streaming.py::test_a_blocked_node_is_told_to_pause_rather_than_refused": 0.03924318699998253, + "tests/test_node_streaming.py::test_a_blocked_node_s_frames_stay_out_of_the_pipeline": 0.038178984000012406, + "tests/test_node_streaming.py::test_a_declined_frame_is_not_offered": 0.03961342100001275, + "tests/test_node_streaming.py::test_a_dropped_frame_is_counted_rather_than_only_logged": 0.03569867099997737, + "tests/test_node_streaming.py::test_a_frame_from_a_node_absent_from_the_pipeline_is_not_filed": 0.03537373700001467, + "tests/test_node_streaming.py::test_a_frame_is_accepted_whole_and_reaches_the_queue": 0.041360255000000734, + "tests/test_node_streaming.py::test_a_frame_without_adsb_hex_is_accepted": 0.03699981800002661, + "tests/test_node_streaming.py::test_a_full_queue_is_a_dropped_frame_rather_than_an_error": 0.035687042000006386, + "tests/test_node_streaming.py::test_a_heartbeat_brings_a_node_marked_offline_back_online": 0.04446604599996817, + "tests/test_node_streaming.py::test_a_heartbeat_carries_a_bounced_address": 0.0467962479999926, + "tests/test_node_streaming.py::test_a_heartbeat_carries_a_pending_claim": 0.04833872899999392, + "tests/test_node_streaming.py::test_a_heartbeat_carries_the_claim_state": 0.04609052200001429, + "tests/test_node_streaming.py::test_a_heartbeat_on_an_owned_node_names_the_bound_address": 0.041996229999995194, + "tests/test_node_streaming.py::test_a_heartbeat_recovers_a_node_missing_from_the_pipeline": 0.04056963900001165, + "tests/test_node_streaming.py::test_a_heartbeat_restores_filing_after_frames_were_dropped": 0.05653483699998674, + "tests/test_node_streaming.py::test_a_heartbeat_returns_the_whole_downlink": 0.045479594999989104, + "tests/test_node_streaming.py::test_a_node_holding_no_config_version_is_heard_and_told_it_is_stale": 0.04048312500000861, + "tests/test_node_streaming.py::test_a_node_with_no_active_configuration_still_gets_its_beat_answered": 0.04259302500000217, + "tests/test_node_streaming.py::test_a_recovered_node_is_online_on_the_same_beat_that_recovered_it": 0.04088932800004841, + "tests/test_node_streaming.py::test_a_release_reaches_the_node_on_the_next_beat": 0.052546285000005355, + "tests/test_node_streaming.py::test_a_stale_config_version_is_reported_the_same_on_both_endpoints": 0.062452253000003566, + "tests/test_node_streaming.py::test_a_superseded_config_version_is_accepted_and_reported_stale": 0.04246440200000734, + "tests/test_node_streaming.py::test_an_accepted_frame_is_offered_to_the_mirror": 0.03670978499999933, + "tests/test_node_streaming.py::test_an_empty_frame_is_valid_and_still_reaches_the_queue": 0.03500913099998115, + "tests/test_node_streaming.py::test_an_unknown_config_version_is_409": 0.04072568099996943, + "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[no-header-/v1/nodes/detection]": 0.03178060399997662, + "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[no-header-/v1/nodes/heartbeat]": 0.032803383000015174, + "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[unknown-token-/v1/nodes/detection]": 0.03515245300002334, + "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[unknown-token-/v1/nodes/heartbeat]": 0.03701478599998609, + "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[wrong-scheme-/v1/nodes/detection]": 0.033859443000011424, + "tests/test_node_streaming.py::test_both_paths_need_a_live_bearer[wrong-scheme-/v1/nodes/heartbeat]": 0.0339237500000138, + "tests/test_node_streaming.py::test_ingest_path_does_no_io_even_with_the_mirror_armed": 0.036813186000017595, + "tests/test_node_streaming.py::test_parallel_arrays_of_different_lengths_are_rejected[empty-adsb-hex]": 0.03572711800001116, + "tests/test_node_streaming.py::test_parallel_arrays_of_different_lengths_are_rejected[long-delay]": 0.035459102999993775, + "tests/test_node_streaming.py::test_parallel_arrays_of_different_lengths_are_rejected[short-snr]": 0.0366201430000217, + "tests/test_node_streaming.py::test_server_time_is_rfc3339_utc_with_a_z": 0.041741968000025054, + "tests/test_node_streaming.py::test_the_ack_is_unchanged_with_the_mirror_unarmed": 0.034351194000009855, + "tests/test_node_streaming.py::test_the_association_is_not_filed_as_a_position": 0.03403013799999144, + "tests/test_node_streaming.py::test_the_capture_time_is_converted_to_milliseconds": 0.035287089000007654, + "tests/test_node_streaming.py::test_the_detection_path_writes_nothing_to_the_database": 0.04718375099997729, + "tests/test_node_streaming.py::test_the_frame_carries_no_node_identifier": 0.034401922000000695, + "tests/test_node_streaming.py::test_the_heartbeat_stamps_last_seen_and_the_node_list": 0.043273986999992076, + "tests/test_node_streaming.py::test_the_node_absent_from_the_pipeline_is_not_told_to_stop": 0.03789814000001002, + "tests/test_node_streaming.py::test_the_per_token_detection_limit_fires": 0.06864170800000124, + "tests/test_node_streaming.py::test_the_per_token_heartbeat_limit_fires": 0.25234968700002014, + "tests/test_node_streaming.py::test_the_queued_frame_is_attributed_from_the_token": 0.035129993000026616, + "tests/test_node_streaming.py::test_the_restart_local_counter_travels_with_the_frame": 0.038189875000000484, + "tests/test_node_streaming.py::test_the_route_binds_the_shared_limiter": 0.018058718000020235, + "tests/test_node_streaming.py::test_the_two_endpoints_do_not_share_one_allowance": 0.07875403200000619, + "tests/test_output_routes.py::TestApiDocs::test_docs_returns_html": 0.12828962700001512, + "tests/test_output_routes.py::TestApiDocs::test_the_documented_fields_are_the_published_ones": 0.12794485899999586, + "tests/test_output_routes.py::TestApiDocs::test_the_worked_example_names_no_real_node": 0.12795228600000996, + "tests/test_output_routes.py::TestFormatAircraft::test_format_defaults": 0.014692178999979433, + "tests/test_output_routes.py::TestFormatAircraft::test_format_includes_expected_keys": 0.01912717300001532, + "tests/test_output_routes.py::TestFormatAircraft::test_the_private_field_names_are_not_emitted": 0.017735342999998238, + "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_empty": 0.12564765399997668, + "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_meta_defaults_for_old_payloads": 0.12701606299998502, + "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_real_empty": 0.12873705999999174, + "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_real_with_data": 0.12866259499998023, + "tests/test_output_routes.py::TestGroundTruth::test_ground_truth_with_trails": 0.12663120199999867, + "tests/test_output_routes.py::TestRealNodeIds::test_real_node_ids": 0.014809899000027826, + "tests/test_output_routes.py::TestSolverAircraft::test_real_only_matches_a_registered_node_by_its_ref": 0.12921662799999467, + "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_empty": 0.126708232999988, + "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_multinode_real": 0.12690762900001573, + "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_real_only": 0.1282703319999996, + "tests/test_output_routes.py::TestSolverAircraft::test_solver_aircraft_with_data": 0.12870329099999367, + "tests/test_parquet_writer.py::test_a_frame_s_epoch_is_archived_and_null_where_it_has_none": 0.01798795100000916, + "tests/test_parquet_writer.py::test_adsb_match_populated_when_present": 0.018741182000042045, + "tests/test_parquet_writer.py::test_an_archived_frame_s_epoch_is_read_back": 0.02145137299999078, + "tests/test_parquet_writer.py::test_custody_columns_default_null_when_absent": 0.01800823799999307, + "tests/test_parquet_writer.py::test_empty_frames_returns_none": 0.01476408300001708, + "tests/test_parquet_writer.py::test_failed_write_leaves_no_partial_file_or_damaged_previous_batch[False]": 0.016470222999970474, + "tests/test_parquet_writer.py::test_failed_write_leaves_no_partial_file_or_damaged_previous_batch[True]": 0.018210336999970878, + "tests/test_parquet_writer.py::test_geometry_columns_default_null_when_no_cfg": 0.021126574000021492, + "tests/test_parquet_writer.py::test_legacy_FC_Fs_keys_in_node_cfg": 0.02074661199998218, + "tests/test_parquet_writer.py::test_multiple_frames_concatenate": 0.018269486999997753, + "tests/test_parquet_writer.py::test_round_trip_via_storage_module": 0.01848795500001188, + "tests/test_parquet_writer.py::test_same_second_batches_do_not_replace_previous_detections": 0.021454621000003726, + "tests/test_parquet_writer.py::test_schema_includes_custody_and_ingest_columns": 0.01813021500001355, + "tests/test_parquet_writer.py::test_schema_includes_geometry_and_rf_columns": 0.023239184999994222, + "tests/test_parquet_writer.py::test_schema_is_per_detection_with_required_columns": 0.01854957099996568, + "tests/test_parquet_writer.py::test_uses_zstd_compression": 0.01699086099998226, + "tests/test_parquet_writer.py::test_writes_hive_partitioned_path": 0.018686788999985993, + "tests/test_periodic_adsb_bbox.py::test_a_positionless_node_does_not_cost_the_fleet_its_regions": 0.017913809999981822, + "tests/test_periodic_adsb_bbox.py::test_all_nodes_positionless_skips_the_fetch": 0.017782152000023643, + "tests/test_pipeline.py::TestGeolocatedTrack::test_alt_ft": 0.017520993999994516, + "tests/test_pipeline.py::TestGeolocatedTrack::test_hex_id_format": 0.01774997299997949, + "tests/test_pipeline.py::TestGeolocatedTrack::test_speed_knots": 0.017331057000006922, + "tests/test_pipeline.py::TestGeolocatedTrack::test_track_angle": 0.017376822999978003, + "tests/test_pipeline.py::TestGeolocatedTrack::test_track_angle_north": 0.017383086000023695, + "tests/test_pipeline.py::TestInMemoryEventWriter::test_anomaly_fields_propagated": 0.01735968099998786, + "tests/test_pipeline.py::TestInMemoryEventWriter::test_dirty_tracking": 0.01750550399998474, + "tests/test_pipeline.py::TestInMemoryEventWriter::test_lazy_write_defers_detection_resolution": 0.01730690199997298, + "tests/test_pipeline.py::TestInMemoryEventWriter::test_resolve_idempotent": 0.017276515999981257, + "tests/test_pipeline.py::TestInMemoryEventWriter::test_write_and_get_events": 0.017290300000013303, + "tests/test_pipeline.py::TestPipelineInit::test_creates_with_default_config": 0.023500866000006226, + "tests/test_pipeline.py::TestPipelineInit::test_custom_config": 0.022879851999988432, + "tests/test_pipeline.py::TestPipelineInit::test_drone_profile_overrides_bounds": 0.02300607700001933, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_empty_frame_no_crash": 0.023671916999973064, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_frame_with_adsb_data": 0.02293595799997661, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_generate_aircraft_json": 0.02201562099998, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_generate_receiver_json": 0.023047705999999835, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_mismatched_array_lengths": 0.024395731999987902, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_process_multiple_frames_creates_tracks": 0.10378414699999894, + "tests/test_pipeline.py::TestPipelineProcessFrame::test_process_single_frame": 0.022920678999980737, + "tests/test_polled_endpoint.py::test_a_body_at_the_cap_is_accepted": 0.015952210999984118, + "tests/test_polled_endpoint.py::test_a_compressed_response_is_refused": 0.015830983999961745, + "tests/test_polled_endpoint.py::test_a_declared_oversized_body_is_refused": 0.015448075999984212, + "tests/test_polled_endpoint.py::test_a_dropped_connection_is_unreachable": 0.019217294000014817, + "tests/test_polled_endpoint.py::test_a_fragment_is_refused[http://radar.example.com/#top]": 0.01568815600003859, + "tests/test_polled_endpoint.py::test_a_fragment_is_refused[radar.example.com#]": 0.015481479000015952, + "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[01.02.03.04]": 0.015562252999984594, + "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[0x7f.0.0.1]": 0.015979683000011846, + "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[127.1]": 0.015853055999997423, + "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[192.0.2]": 0.015167210999976533, + "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[2130706433]": 0.016104158000018742, + "tests/test_polled_endpoint.py::test_a_host_ending_in_a_number_must_be_a_dotted_quad[radar.0x10]": 0.015127495000001545, + "tests/test_polled_endpoint.py::test_a_malformed_deny_list_raises": 0.014991679999980079, + "tests/test_polled_endpoint.py::test_a_malformed_deny_list_refuses_everything": 0.018656343000003517, + "tests/test_polled_endpoint.py::test_a_path_prefix_is_refused[http://radar.example.com/blah2/]": 0.015559075999988181, + "tests/test_polled_endpoint.py::test_a_path_prefix_is_refused[radar.example.com//]": 0.015782744000006232, + "tests/test_polled_endpoint.py::test_a_path_prefix_is_refused[radar.example.com/api]": 0.01567090499997903, + "tests/test_polled_endpoint.py::test_a_private_literal_is_refused": 0.017032849000003125, + "tests/test_polled_endpoint.py::test_a_public_name_is_vetted": 0.020490682000001925, + "tests/test_polled_endpoint.py::test_a_query_is_refused[http://radar.example.com/?]": 0.015723916000013105, + "tests/test_polled_endpoint.py::test_a_query_is_refused[http://radar.example.com/?x=1]": 0.015760212999992973, + "tests/test_polled_endpoint.py::test_a_query_is_refused[radar.example.com?x]": 0.015675101999988783, + "tests/test_polled_endpoint.py::test_a_read_timeout_is_timed_out": 0.01758227900003817, + "tests/test_polled_endpoint.py::test_a_real_request_carries_the_name_to_the_pinned_address": 0.03848976199998333, + "tests/test_polled_endpoint.py::test_a_redirect_is_refused_and_not_followed": 0.015960257000017464, + "tests/test_polled_endpoint.py::test_a_resolver_failure_is_unresolvable": 0.017879396999973096, + "tests/test_polled_endpoint.py::test_a_scheme_without_a_port_takes_the_schemes_default": 0.015454017999985581, + "tests/test_polled_endpoint.py::test_a_slow_resolver_is_cut_off": 0.06625509300002363, + "tests/test_polled_endpoint.py::test_a_trickling_body_is_cut_off_by_the_deadline": 0.21929261500000052, + "tests/test_polled_endpoint.py::test_a_user_without_a_secret_keeps_the_secret_none": 0.015506405999985873, + "tests/test_polled_endpoint.py::test_an_answer_that_is_not_http_is_a_bad_response": 0.018012305999974387, + "tests/test_polled_endpoint.py::test_an_empty_answer_is_unresolvable": 0.017663080999994918, + "tests/test_polled_endpoint.py::test_an_error_status_is_refused": 0.015440914000009798, + "tests/test_polled_endpoint.py::test_an_injected_policy_replaces_the_default": 0.018055034000013848, + "tests/test_polled_endpoint.py::test_an_injected_policy_still_refuses_what_it_refuses": 0.017981485999968072, + "tests/test_polled_endpoint.py::test_an_ip_literal_skips_dns": 0.01551312899997015, + "tests/test_polled_endpoint.py::test_an_ipv6_address_is_bracketed_in_the_url": 0.015739265000036085, + "tests/test_polled_endpoint.py::test_an_ipv6_literal_endpoint_brackets_the_host_header": 0.017235318999979654, + "tests/test_polled_endpoint.py::test_an_undeclared_oversized_body_is_refused": 0.01629902199999833, + "tests/test_polled_endpoint.py::test_any_non_public_answer_refuses_the_whole_name": 0.017340957999977036, + "tests/test_polled_endpoint.py::test_bad_ports_are_refused[http://radar.example.com:\\u0663\\u0660\\u0660\\u0660]": 0.015500615000007656, + "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:+80]": 0.015271464999983664, + "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:-1]": 0.015764630999996143, + "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:0]": 0.017800729000043702, + "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:65536]": 0.017774619999954666, + "tests/test_polled_endpoint.py::test_bad_ports_are_refused[radar.example.com:http]": 0.01785958000002097, + "tests/test_polled_endpoint.py::test_bare_host_takes_blah2s_default_port_over_http": 0.015318184000022939, + "tests/test_polled_endpoint.py::test_compression_is_declined": 0.015995652999976073, + "tests/test_polled_endpoint.py::test_cookies_are_not_carried_between_requests": 0.01587395500001776, + "tests/test_polled_endpoint.py::test_credentials_are_separated_from_the_key": 0.015278958999999759, + "tests/test_polled_endpoint.py::test_credentials_go_as_basic_auth": 0.015728211999999075, + "tests/test_polled_endpoint.py::test_credentials_never_appear_in_the_repr": 0.015439801000013631, + "tests/test_polled_endpoint.py::test_deny_list_accepts_host_bits": 0.015070569000016576, + "tests/test_polled_endpoint.py::test_deny_list_is_empty_by_default": 0.014862368000052584, + "tests/test_polled_endpoint.py::test_deny_list_is_read_from_the_environment": 0.015042085000033012, + "tests/test_polled_endpoint.py::test_duplicate_answers_are_collapsed": 0.01581311199998936, + "tests/test_polled_endpoint.py::test_empty_or_oversized_input_is_refused[ ]": 0.016413067000030424, + "tests/test_polled_endpoint.py::test_empty_or_oversized_input_is_refused[]": 0.01545079100003477, + "tests/test_polled_endpoint.py::test_empty_or_oversized_input_is_refused[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.example.com]": 0.017897736999998415, + "tests/test_polled_endpoint.py::test_endpoint_is_immutable": 0.01568417000001432, + "tests/test_polled_endpoint.py::test_explicit_port_wins": 0.015401279000002432, + "tests/test_polled_endpoint.py::test_fullwidth_digits_normalise_to_the_ipv4_key": 0.015342770000017936, + "tests/test_polled_endpoint.py::test_https_verifies_against_the_name_through_sni": 0.015951099999995222, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[2002:7f00:1::]": 0.015024111999991874, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[2002:a9fe:a9fe::1]": 0.01539102899999989, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[64:ff9b::7f00:1]": 0.015139448000013545, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[64:ff9b::a00:1]": 0.015049890000000232, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[64:ff9b::a9fe:a9fe]": 0.015037546000002067, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::7f00:1]": 0.015009705000011309, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::a9fe:a9fe]": 0.014975499000001946, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:10.0.0.1]": 0.015114400999976851, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:100.64.0.1]": 0.014970381000011912, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:127.0.0.1]": 0.01519871899998293, + "tests/test_polled_endpoint.py::test_ipv4_embedded_in_ipv6_is_judged_as_ipv4[::ffff:169.254.169.254]": 0.015087991999962469, + "tests/test_polled_endpoint.py::test_ipv6_host_is_compressed_and_unbracketed_outside_the_key": 0.015239455999989104, + "tests/test_polled_endpoint.py::test_later_requests_stay_on_the_address_that_answered": 0.016082576999963294, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[-bad.example.com]": 0.01530202199995756, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[2001:db8::1]": 0.01605336100001864, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[2001:db8::1]x]": 0.01562686200000485, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[fe80::1%25eth0]]": 0.015799184999991667, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[[radar.example.com]]": 0.017167921999970304, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[a..b.example.com]": 0.01523706199998287, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[ex%61mple.com]": 0.015498072000013963, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[fe80::1%eth0]": 0.015651006000013012, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[http://:3000]": 0.015258140999975467, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[http://user:pw@]": 0.017089833999989423, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[my_host.example.com]": 0.01585158299999989, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar example.com]": 0.014922310999992305, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar.exa\\tmple.com]": 0.015222876000024144, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar.example.com..]": 0.015360892000018112, + "tests/test_polled_endpoint.py::test_malformed_hosts_are_refused[radar.example.com\\x00]": 0.015271083999977009, + "tests/test_polled_endpoint.py::test_metadata_addresses_are_refused": 0.017713734000011527, + "tests/test_polled_endpoint.py::test_no_address_connecting_is_unreachable": 0.015685000999980048, + "tests/test_polled_endpoint.py::test_no_credentials_means_no_authorization_header": 0.016108473999992157, + "tests/test_polled_endpoint.py::test_no_credentials_means_none": 0.015361915999960729, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[0.0.0.0]": 0.016336903999984997, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[10.0.0.1]": 0.01578123099997697, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[100.127.255.254]": 0.015353870000012648, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[100.64.0.1]": 0.015409494000010682, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[127.0.0.1]": 0.015325196999981472, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[169.254.169.254]": 0.015420285000004696, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[172.16.0.1]": 0.015901096999982656, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[192.0.2.1]": 0.015923687999958247, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[192.168.1.1]": 0.015463717000017141, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[198.18.0.1]": 0.016769828000008147, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[2001::1]": 0.015134676000030822, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[2001:db8::1]": 0.017576027000018257, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[224.0.0.1]": 0.017638331999989987, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[239.255.255.250]": 0.015384938000011061, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[240.0.0.1]": 0.01536844800000381, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[255.255.255.255]": 0.015473544999991873, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[64:ff9b:1::808:808]": 0.015222566999995024, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[::1]": 0.01750296900002013, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[::]": 0.017707343000012088, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fc00::1]": 0.017573180999988836, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fd00:ec2::254]": 0.017609830999987253, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fe80::1]": 0.017769488999988425, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[fec0::1]": 0.017640497000002142, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[ff02::1]": 0.01773772100003157, + "tests/test_polled_endpoint.py::test_non_public_addresses_are_refused[ff0e::1]": 0.017584303000006685, + "tests/test_polled_endpoint.py::test_proxy_environment_is_ignored": 0.037844992000003685, + "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[1.1.1.1]": 0.015219838000007258, + "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[2606:4700:4700::1111]": 0.015273418999981914, + "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[64:ff9b::808:808]": 0.015506475000023556, + "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[8.8.8.8]": 0.017254945000019006, + "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[::808:808]": 0.015108730000008563, + "tests/test_polled_endpoint.py::test_public_addresses_are_permitted[::ffff:8.8.8.8]": 0.015469115999991345, + "tests/test_polled_endpoint.py::test_raw_input_is_kept": 0.015389266999989104, + "tests/test_polled_endpoint.py::test_refusal_messages_never_echo_the_secret": 0.015474853999990046, + "tests/test_polled_endpoint.py::test_schemes_other_than_http_and_https_are_refused[file:///etc/passwd]": 0.01767262799998548, + "tests/test_polled_endpoint.py::test_schemes_other_than_http_and_https_are_refused[ftp://radar.example.com]": 0.018220425000009755, + "tests/test_polled_endpoint.py::test_schemes_other_than_http_and_https_are_refused[gopher://radar.example.com:70]": 0.017855970999988813, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings0-radar.example.com:3000]": 0.015887191000047096, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings1-radar.example.com:80]": 0.015437217999988206, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings2-radar.example.com:443]": 0.015522993999979917, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings3-xn--bcher-kva.example:3000]": 0.06962135000000558, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings4-[2001:db8::1]:3000]": 0.017081269000016164, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings5-192.0.2.10:3000]": 0.01588931400002025, + "tests/test_polled_endpoint.py::test_spelling_variants_of_one_box_share_a_key[spellings6-radar.example.com:3000]": 0.015790417999966166, + "tests/test_polled_endpoint.py::test_the_default_policy_reads_the_deny_list_per_call": 0.0180887879999716, + "tests/test_polled_endpoint.py::test_the_default_port_is_left_out_of_host": 0.015841101999996, + "tests/test_polled_endpoint.py::test_the_deny_list_refuses_otherwise_public_addresses": 0.015038987999986375, + "tests/test_polled_endpoint.py::test_the_next_vetted_address_is_tried_when_one_will_not_connect": 0.01607881900000052, + "tests/test_polled_endpoint.py::test_the_request_goes_to_the_vetted_address_with_the_name_in_host": 0.01659112999999479, + "tests/test_polled_endpoint.py::test_the_system_resolver_path_refuses_localhost": 0.018852832000021635, + "tests/test_polled_endpoint.py::test_tls_to_a_name_the_certificate_does_not_cover_is_refused": 0.023670593999980838, + "tests/test_polled_endpoint.py::test_tls_verifies_the_certificate_against_the_name_not_the_address": 0.027952393000020948, + "tests/test_polled_endpoint.py::test_unicode_host_is_stored_in_its_ascii_form": 0.015301320999981272, + "tests/test_polled_endpoint.py::test_vetting_happens_before_any_request": 0.018940004999961957, + "tests/test_polled_radars.py::test_a_declaration_the_validator_refuses_is_refused": 0.015722681999989163, + "tests/test_polled_radars.py::test_a_declaration_within_float_noise_of_the_held_value_keeps_it[0.05]": 0.015728771999988567, + "tests/test_polled_radars.py::test_a_declaration_within_float_noise_of_the_held_value_keeps_it[0]": 0.016075130999979592, + "tests/test_polled_radars.py::test_a_declaration_within_float_noise_of_the_held_value_keeps_it[12]": 0.01579896399996983, + "tests/test_polled_radars.py::test_a_probed_configuration_takes_what_the_radar_declares_and_keeps_the_rest": 0.015231620000037083, + "tests/test_polled_radars.py::test_a_radar_without_credentials_gives_the_poller_none": 0.03021088800002758, + "tests/test_polled_radars.py::test_a_second_registration_of_the_endpoint_is_refused_whole": 0.0400678409999955, + "tests/test_polled_radars.py::test_an_unknown_publication_is_refused": 0.01687383000000864, + "tests/test_polled_radars.py::test_credentials_typed_into_the_address_are_not_kept": 0.029829442999982803, + "tests/test_polled_radars.py::test_fs_and_cpi_the_radar_does_not_declare_keep_the_values_held": 0.015440052000002424, + "tests/test_polled_radars.py::test_history_goes_with_the_registration": 0.03214030699999171, + "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[admin:p@ss@radar.example.com:3000-radar.example.com:3000]": 0.029190373999995245, + "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[http://admin:p@ss@radar.example.com:3000-http://radar.example.com:3000]": 0.030522522000012486, + "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[http://radar.example.com:3000/?next=a@b-http://radar.example.com:3000/?next=a@b]": 0.02941663899997593, + "tests/test_polled_radars.py::test_no_piece_of_a_secret_survives_in_the_address[radar.example.com:3000-radar.example.com:3000]": 0.0297012039999629, + "tests/test_polled_radars.py::test_registration_writes_all_five_rows": 0.04268322199999375, + "tests/test_polled_radars.py::test_storing_a_secret_without_the_key_is_refused_before_anything_is_written": 0.022063991999971222, + "tests/test_polled_radars.py::test_the_caller_transaction_survives_an_endpoint_clash": 0.04074630299999171, + "tests/test_polled_radars.py::test_the_repr_names_neither_the_address_nor_the_secret": 0.015174602999991293, + "tests/test_polled_radars.py::test_the_secret_is_encrypted_at_rest": 0.033223036999970645, + "tests/test_positionless_node.py::test_position_status_reaches_the_nodes_payload": 0.02088291699999445, + "tests/test_positionless_node.py::test_positionless_node_builds_no_solver_pipeline": 0.017965997999993988, + "tests/test_positionless_node.py::test_positionless_node_is_counted_but_not_placed": 0.018051983000049177, + "tests/test_positionless_node.py::test_ten_positionless_nodes_form_no_overlap_zones": 0.018164449000011018, + "tests/test_probation.py::TestDetectionMirror::test_a_graduated_or_fleet_frame_is": 0.021168772000009994, + "tests/test_probation.py::TestDetectionMirror::test_a_probation_frame_is_not_mirrored": 0.020403991000023325, + "tests/test_probation.py::TestFenceSwitchedOff::test_a_fleet_round_naming_a_polled_node_is_solved": 0.029438229999954046, + "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_frame_is_mirrored": 0.02383207700003709, + "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_frame_marks_the_feed_dirty": 0.08247105000000943, + "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_node_follows_its_owners_choice": 0.025838800999991918, + "tests/test_probation.py::TestFenceSwitchedOff::test_a_polled_node_registered_private_is_private": 0.025579123999989406, + "tests/test_probation.py::TestFenceSwitchedOff::test_a_probation_frame_flows_like_a_fleet_frame": 0.029949888999993846, + "tests/test_probation.py::TestFenceSwitchedOff::test_no_polled_node_is_on_probation_and_the_trust_table_is_not_read": 0.022105750000008584, + "tests/test_probation.py::TestFenceSwitchedOff::test_switching_it_back_on_gates_the_next_frame_without_a_restart": 0.03285799999997607, + "tests/test_probation.py::TestFenceSwitchedOff::test_the_public_payload_carries_it_unchanged": 0.02556618200000571, + "tests/test_probation.py::TestFrameGate::test_a_fleet_frame_is_untouched_and_never_reads_the_trust_table": 0.027359802999995964, + "tests/test_probation.py::TestFrameGate::test_a_fleet_round_naming_a_probation_node_is_not_solved": 0.032609486000012566, + "tests/test_probation.py::TestFrameGate::test_a_graduated_polled_frame_flows_like_a_fleet_frame": 0.031754713999987416, + "tests/test_probation.py::TestFrameGate::test_a_graduated_polled_frame_reaches_the_archive_with_its_custody_class_and_epoch": 0.032036589000000504, + "tests/test_probation.py::TestFrameGate::test_a_probation_frame_feeds_its_own_analytics_and_tracker": 0.03133907399998748, + "tests/test_probation.py::TestFrameGate::test_a_probation_frame_feeds_nothing_shared": 0.03142909400000349, + "tests/test_probation.py::TestFrameGate::test_a_probation_frames_adsb_list_stays_out_of_the_shared_cache": 0.03110284999999635, + "tests/test_probation.py::TestFrameGate::test_a_probation_read_failure_gates_a_graduated_node": 0.03232062399999336, + "tests/test_probation.py::TestFrameGate::test_an_unregistered_polled_id_is_gated": 0.02956794300001775, + "tests/test_probation.py::TestFrameGate::test_re_entry_gates_the_next_frame_without_a_restart": 0.0358012629999962, + "tests/test_probation.py::TestFrameLoop::test_a_fleet_frame_still_does": 0.07793511699998135, + "tests/test_probation.py::TestFrameLoop::test_a_probation_frame_does_not_mark_the_feed_dirty": 0.07992105899998592, + "tests/test_probation.py::TestHealthReportsTheSwitch::test_off_when_switched_off": 0.12797054699998966, + "tests/test_probation.py::TestHealthReportsTheSwitch::test_on_by_default": 0.12693570700002965, + "tests/test_probation.py::TestInProbation::test_a_cold_failure_gates_every_polled_node": 0.01811882500001616, + "tests/test_probation.py::TestInProbation::test_a_failure_after_a_good_read_gates_every_polled_node": 0.01879410999998754, + "tests/test_probation.py::TestInProbation::test_a_failure_backs_off_rather_than_querying_every_call": 0.015416737999998986, + "tests/test_probation.py::TestInProbation::test_a_fleet_node_is_never_on_probation_and_costs_no_query": 0.018382368999994014, + "tests/test_probation.py::TestInProbation::test_a_graduated_polled_node_is_not": 0.018852849000040806, + "tests/test_probation.py::TestInProbation::test_a_polled_id_with_no_row_is_gated": 0.01861654900000076, + "tests/test_probation.py::TestInProbation::test_a_polled_node_on_probation_is_gated": 0.020495452999995223, + "tests/test_probation.py::TestInProbation::test_any_state_but_graduated_is_gated": 0.018717788000031987, + "tests/test_probation.py::TestInProbation::test_invalidate_re_applies_the_gate_without_a_restart": 0.020566305000016882, + "tests/test_probation.py::TestInProbation::test_the_answer_is_cached_within_the_ttl": 0.0204015949999814, + "tests/test_probation.py::TestInProbation::test_the_cache_expires_on_its_own": 0.020632396999985758, + "tests/test_probation.py::TestProbationIsPrivate::test_a_fleet_node_with_no_row_stays_public": 0.017451013999988163, + "tests/test_probation.py::TestProbationIsPrivate::test_a_graduated_node_its_owner_registered_private_stays_private": 0.019795766000015647, + "tests/test_probation.py::TestProbationIsPrivate::test_a_graduated_polled_node_is_public": 0.021220791000018835, + "tests/test_probation.py::TestProbationIsPrivate::test_a_polled_id_with_no_row_is_private": 0.01856295800001817, + "tests/test_probation.py::TestProbationIsPrivate::test_a_polled_node_on_probation_is_private": 0.020111202999999023, + "tests/test_probation.py::TestProbationIsPrivate::test_a_probation_read_failure_keeps_it_private": 0.02082915599999069, + "tests/test_probation.py::TestProbationIsPrivate::test_an_unregistered_polled_id_is_dropped_from_the_payload": 0.01822107399999595, + "tests/test_probation.py::TestProbationIsPrivate::test_analytics_summaries_drop_it": 0.022158809999979212, + "tests/test_probation.py::TestProbationIsPrivate::test_it_is_listed_for_an_owner_merge": 0.022430430000014212, + "tests/test_probation.py::TestProbationIsPrivate::test_re_entry_makes_it_private_without_a_restart": 0.02240845800000102, + "tests/test_probation.py::TestProbationIsPrivate::test_the_aircraft_payload_drops_it_when_nothing_else_is_private": 0.02119830099999831, + "tests/test_probation.py::TestProbationIsPrivate::test_the_node_listing_leaves_it_out": 0.022447189999979855, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[ 0]": 0.016900029999987964, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[00]": 0.016747566000020697, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[1]": 0.016949052000001075, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[]": 0.01665290500000083, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[false]": 0.01670293000000811, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[no]": 0.016520346999982394, + "tests/test_probation.py::TestTheSwitch::test_any_value_but_zero_means_on[off]": 0.016566695000051368, + "tests/test_probation.py::TestTheSwitch::test_unset_means_on": 0.01683703099999434, + "tests/test_probation.py::TestTheSwitch::test_zero_switches_it_off": 0.014896534000030215, + "tests/test_public_geometry.py::TestHowItWalks::test_a_payload_with_nothing_withheld_is_unchanged": 0.014879662000026883, + "tests/test_public_geometry.py::TestHowItWalks::test_a_tuple_comes_back_as_a_list": 0.01798028799998974, + "tests/test_public_geometry.py::TestHowItWalks::test_a_withheld_field_goes_at_any_depth": 0.015332904000018743, + "tests/test_public_geometry.py::TestHowItWalks::test_the_input_is_not_edited": 0.015113349999978709, + "tests/test_public_geometry.py::TestNodeScoped::test_it_stays_when_not_scoped": 0.014920599999982187, + "tests/test_public_geometry.py::TestNodeScoped::test_scoping_still_withholds_everything_else": 0.014942229999974188, + "tests/test_public_geometry.py::TestNodeScoped::test_the_nodes_own_solve_goes_when_scoped": 0.014860537000004115, + "tests/test_public_geometry.py::TestTheDetectionAreaSummary::test_only_furthest_detections_collides": 0.015339054999998325, + "tests/test_public_geometry.py::TestTheDetectionAreaSummary::test_so_the_pass_drops_that_and_nothing_else": 0.015477624999988393, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_a_nodes_verification_withholds_its_own_solve_too": 0.01735081699996499, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_an_unknown_node_still_answers_empty": 0.018290068000027304, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_one_markers_solves_withhold": 0.019698459000011326, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_multinode_verification_withholds_on_write": 0.01521496200001593, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_nearby_rejects_withhold": 0.018575623000003816, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_resolve_skips_dump_withholds": 0.01880325900000912, + "tests/test_public_geometry.py::TestTheRoutesApplyIt::test_the_whole_window_dump_withholds": 0.018943121999996038, + "tests/test_public_geometry.py::TestWhatIsWithheld::test_a_beam_margin_goes_and_its_envelope_stays": 0.015887401999975737, + "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_contamination_verdict_goes": 0.015156834000009667, + "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_furthest_detections_go": 0.015201846999957525, + "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_learned_fov_read_outs_go": 0.015263833000005889, + "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_per_node_delays_go": 0.015184965000003103, + "tests/test_public_geometry.py::TestWhatIsWithheld::test_the_shadow_verdicts_go": 0.015299830999992992, + "tests/test_public_location.py::TestArchiveRows::test_rows_carry_the_published_receiver": 0.016245393999952285, + "tests/test_public_location.py::TestCachedAnalyticsPayload::test_suggestions_are_empty_in_both_variants": 0.021609391999987793, + "tests/test_public_location.py::TestDetectionRangeRoute::test_furthest_detections_are_gone": 0.12889412700002367, + "tests/test_public_location.py::TestDetectionRangeRoute::test_receiver_and_polygon_are_displaced": 0.1308160819999955, + "tests/test_public_location.py::TestFrameRekey::test_a_bounds_change_defeats_the_attack": 0.020606421999957547, + "tests/test_public_location.py::TestFrameRekey::test_a_bounds_change_moves_the_bearing": 0.017557996000022058, + "tests/test_public_location.py::TestFrameRekey::test_setting_the_defaults_explicitly_is_not_a_change_of_frame": 0.015701172999968094, + "tests/test_public_location.py::TestFrameRekey::test_the_attack_works_on_a_shared_bearing": 0.015878566999987243, + "tests/test_public_location.py::TestFrameRekey::test_the_frame_label_is_canonical": 0.01569487099996536, + "tests/test_public_location.py::TestFrameRekey::test_the_original_frame_is_frozen": 0.0157426410000312, + "tests/test_public_location.py::TestFuzzDisabled::test_latlon_is_identity_not_even_rounded": 0.015829755000027035, + "tests/test_public_location.py::TestFuzzDisabled::test_node_cfg_is_the_same_object": 0.015300472000006948, + "tests/test_public_location.py::TestFuzzDisabled::test_offset_is_zero": 0.015613317999964238, + "tests/test_public_location.py::TestFuzzDisabled::test_polygon_is_identity": 0.015136114000000589, + "tests/test_public_location.py::TestGroundTruthTrailRoute::test_disabled_serves_the_solved_trail_either_way": 0.12806282200000396, + "tests/test_public_location.py::TestGroundTruthTrailRoute::test_ground_truth_present_serves_the_comparison": 0.12665199299999585, + "tests/test_public_location.py::TestGroundTruthTrailRoute::test_solved_trail_alone_is_not_served": 0.12741961800000468, + "tests/test_public_location.py::TestGroundTruthTrailRoute::test_unknown_hex_still_404s": 0.12628777599996965, + "tests/test_public_location.py::TestNodesPayload::test_altitude_is_untouched": 0.017018774000007397, + "tests/test_public_location.py::TestNodesPayload::test_receiver_is_displaced_and_transmitter_is_not": 0.017498454000019592, + "tests/test_public_location.py::TestNodesPayload::test_uncertainty_is_declared": 0.017980706999992435, + "tests/test_public_location.py::TestNodesPayload::test_uncertainty_is_zero_when_disabled": 0.017844411999988097, + "tests/test_public_location.py::TestOffset::test_bearings_cover_the_circle": 0.01745570400001384, + "tests/test_public_location.py::TestOffset::test_different_nodes_get_different_offsets": 0.017381064999995033, + "tests/test_public_location.py::TestOffset::test_displacement_honours_custom_bounds": 0.015867031999988512, + "tests/test_public_location.py::TestOffset::test_displacement_within_configured_bounds": 0.01783460400000081, + "tests/test_public_location.py::TestOffset::test_inverted_bounds_do_not_escape_the_floor": 0.015161422999995011, + "tests/test_public_location.py::TestOffset::test_missing_node_id_is_still_displaced": 0.015096499999998514, + "tests/test_public_location.py::TestOffset::test_salt_changes_the_offset": 0.01509253200001126, + "tests/test_public_location.py::TestOffset::test_same_node_same_offset_across_calls": 0.015562382999974034, + "tests/test_public_location.py::TestOffset::test_same_node_same_offset_across_process_restarts": 0.015766374999969912, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_coverage_polygon_apex_is_displaced": 0.12674648099999786, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_detection_area_receiver_is_displaced": 0.12827539500000285, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_furthest_detections_are_not_published": 0.1288579440000035, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_no_polygon_vertex_sits_on_the_true_receiver": 0.1284135399999684, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_the_manager_keeps_the_truth": 0.12825280199999156, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_transmitter_survives": 0.12804840499998704, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_uncertainty_is_absent_when_disabled": 0.12873460500000533, + "tests/test_public_location.py::TestPerNodeAnalyticsRoute::test_uncertainty_travels_with_the_receiver_coordinate": 0.1286943039999926, + "tests/test_public_location.py::TestPublicCrossNode::test_a_non_dict_is_returned_unchanged": 0.015611454999998386, + "tests/test_public_location.py::TestPublicCrossNode::test_no_test_point_survives_anywhere": 0.01514369700001339, + "tests/test_public_location.py::TestPublicCrossNode::test_overlaps_and_blocked_nodes_survive": 0.015564917999995487, + "tests/test_public_location.py::TestPublicCrossNode::test_pass_through_when_disabled": 0.015254696999960515, + "tests/test_public_location.py::TestPublicCrossNode::test_suggestions_are_emptied": 0.015655256999991707, + "tests/test_public_location.py::TestPublicCrossNode::test_the_input_is_not_mutated": 0.015551821999991944, + "tests/test_public_location.py::TestPublicCrossNode::test_the_shape_is_unchanged": 0.015090137999976605, + "tests/test_public_location.py::TestPublicLatLon::test_longitude_scales_with_latitude": 0.015510955999957332, + "tests/test_public_location.py::TestPublicLatLon::test_non_numeric_passes_through": 0.01573089800001526, + "tests/test_public_location.py::TestPublicLatLon::test_published_point_is_at_least_the_floor_away": 0.015481069000003345, + "tests/test_public_location.py::TestPublicLatLon::test_rounded_to_four_decimals": 0.015519051000012496, + "tests/test_public_location.py::TestPublishedArc::test_arc_geometry_is_unchanged_when_disabled": 0.018286250999949516, + "tests/test_public_location.py::TestPublishedArc::test_arc_is_solved_around_the_published_receiver": 0.019035645000002432, + "tests/test_public_location.py::TestSaltPersistence::test_generated_salt_survives_a_restart": 0.020250414000003047, + "tests/test_public_location.py::TestTranslatePolygon::test_apex_lands_on_the_published_receiver": 0.015627426999969884, + "tests/test_public_location.py::TestTranslatePolygon::test_empty_and_none": 0.015494514999971898, + "tests/test_public_location.py::TestTranslatePolygon::test_shape_is_unchanged": 0.01567776999996795, + "tests/test_public_location.py::TestTranslatePolygon::test_translation_is_rigid": 0.015700681999987864, + "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_a_node_id_written_into_prose_is_rewritten_not_dropped": 0.021099415999998428, + "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_cross_node_carries_refs_and_drops_the_unresolvable": 0.021024276999980884, + "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_no_node_id_reaches_the_published_bytes": 0.021316592999994555, + "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_the_entry_names_the_node_once_and_by_ref": 0.021258043000017324, + "tests/test_publication.py::TestAnalyticsPayloadIdentities::test_the_fuzz_still_keys_on_the_node_id": 0.02128437700000063, + "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_full_variant_carries_the_flag_per_node": 0.020922443999978668, + "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_matches_the_nodes_payload_for_the_same_node": 0.02140136300002382, + "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_real_only_variant_also_carries_the_flag": 0.02231151000000864, + "tests/test_publication.py::TestAnalyticsPayloadIsSynthetic::test_the_flag_is_not_derived_from_the_published_ref": 0.020777042000020174, + "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[-]": 0.015337842000008095, + "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[2026/08/27/ret01/part-120000.json-ret01]": 0.015721170999995593, + "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[part-120000.parquet-]": 0.015389356999975234, + "tests/test_publication.py::TestArchiveKeyParsing::test_node_id_comes_out_of_the_key[year=2026/month=08/day=27/node_id=ret01/part-120000.parquet-ret01]": 0.01670506599998589, + "tests/test_publication.py::TestArchiveRoutes::test_a_private_nodes_file_does_not_download": 0.12849577299999737, + "tests/test_publication.py::TestArchiveRoutes::test_a_private_nodes_file_is_not_listed": 0.12763220300001876, + "tests/test_publication.py::TestArchiveRoutes::test_a_public_nodes_file_still_downloads": 0.12834042500000464, + "tests/test_publication.py::TestAssociationStatusPayload::test_no_node_id_reaches_the_response": 0.12785162899999136, + "tests/test_publication.py::TestAssociationStatusPayload::test_pending_tracks_is_keyed_on_refs_and_drops_the_unresolvable": 0.1282059990000164, + "tests/test_publication.py::TestAssociationStatusPayload::test_the_pairs_carry_refs_and_the_half_named_zone_goes": 0.12808642900000677, + "tests/test_publication.py::TestEffectivePrivacy::test_an_override_alone_needs_no_registration": 0.01568100500000469, + "tests/test_publication.py::TestEffectivePrivacy::test_an_override_wins_over_the_registration_choice": 0.01555711399998927, + "tests/test_publication.py::TestEffectivePrivacy::test_with_neither_the_node_is_public_by_default": 0.015623150000010355, + "tests/test_publication.py::TestEffectivePrivacy::test_without_an_override_the_registration_choice_stands": 0.01568223599997509, + "tests/test_publication.py::TestFurthestDetectionsClassification::test_stripped_at_any_depth": 0.016860151999992468, + "tests/test_publication.py::TestFurthestDetectionsClassification::test_the_walk_matches_the_name_not_the_shape": 0.015889573000009705, + "tests/test_publication.py::TestFuzzDoesNotGateThis::test_a_private_node_is_still_withheld_with_fuzzing_off": 0.016194087999963358, + "tests/test_publication.py::TestInvalidate::test_invalidate_does_not_blank_the_answer_it_is_dropping": 0.022048174999980574, + "tests/test_publication.py::TestInvalidate::test_invalidate_makes_the_next_call_re_query": 0.0212761190000208, + "tests/test_publication.py::TestLocationPrivacyStorage::test_an_override_is_reported_with_its_provenance": 0.022336797000008346, + "tests/test_publication.py::TestLocationPrivacyStorage::test_an_unknown_node_reports_the_default_with_no_rows": 0.020605810000006386, + "tests/test_publication.py::TestLocationPrivacyStorage::test_clearing_a_node_with_no_override_is_not_an_error": 0.018561547000047085, + "tests/test_publication.py::TestLocationPrivacyStorage::test_setting_twice_corrects_the_row_rather_than_adding_one": 0.02189901599999189, + "tests/test_publication.py::TestLocationPrivacyStorage::test_the_registration_choice_is_reported_raw_beside_the_effective_state": 0.022092899000000443, + "tests/test_publication.py::TestMlatHistoryPayload::test_a_node_with_no_handle_loses_its_place_in_the_listing": 0.12840828099999158, + "tests/test_publication.py::TestMlatHistoryPayload::test_no_node_id_reaches_the_response": 0.12834131799999682, + "tests/test_publication.py::TestMlatHistoryPayload::test_no_receiver_relative_geometry_at_any_depth": 0.12949675199999433, + "tests/test_publication.py::TestMlatHistoryPayload::test_one_markers_solves_are_published_the_same_way": 0.12887511400001017, + "tests/test_publication.py::TestMlatHistoryPayload::test_the_beam_entry_keeps_the_verdict_and_loses_the_geometry": 0.12843975400002705, + "tests/test_publication.py::TestMlatHistoryPayload::test_the_contamination_stamp_goes_with_the_geometry_it_measures": 0.13008952200002, + "tests/test_publication.py::TestMlatHistoryPayload::test_the_identity_fields_move_with_their_values": 0.12795161900001517, + "tests/test_publication.py::TestMlatHistoryPayload::test_the_shadow_verdicts_go_and_the_refusal_stays": 0.1297745220000195, + "tests/test_publication.py::TestMlatHistoryPayload::test_the_skip_store_goes_through_the_same_boundary_intact": 0.12625939499994843, + "tests/test_publication.py::TestMlatVerificationPayload::test_the_bistatic_angle_is_computed_and_not_published": 0.02030258800002116, + "tests/test_publication.py::TestNodeVerificationPayload::test_no_true_frame_position_at_any_depth": 0.12725258999998346, + "tests/test_publication.py::TestNodeVerificationPayload::test_the_published_entry_is_the_stored_one_minus_those_fields": 0.1254648930000144, + "tests/test_publication.py::TestNodeVerificationPayload::test_the_store_keeps_what_the_route_must_not_publish": 0.018559519000007185, + "tests/test_publication.py::TestOverlapsPayload::test_pairs_and_the_registry_carry_refs_and_drop_the_unresolvable": 0.020560594999977866, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_a_logged_in_non_owner_does_not": 0.12896477899997194, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_a_public_fleet_costs_no_identity_check_at_all": 0.12868985099999009, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_an_owner_gets_their_private_nodes_summary_back": 0.12809466900000643, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_an_unauthenticated_caller_gets_the_cached_bytes_verbatim": 0.12832786299998133, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_owners_copy_is_the_same_fuzzed_frame_the_public_would_get": 0.1286308749999705, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_owners_private_node_carries_a_node_ref_too": 0.12817413299998748, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_per_node_route_answers_the_owner": 0.12640748800001234, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_per_node_route_is_still_404_for_everyone_else": 0.12763792900000226, + "tests/test_publication.py::TestOwnerSeesTheirOwnPrivateNodeInAnalytics::test_the_real_only_variant_merges_the_same_way": 0.12719062400003622, + "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_a_miss_does_not_quote_what_was_asked_for": 0.1281617420000316, + "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_a_private_node_is_404": 0.1279289749999748, + "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_a_public_node_still_answers": 0.12841184700005215, + "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_the_private_node_id_is_not_accepted_as_a_path_parameter": 0.12784311100000423, + "tests/test_publication.py::TestPerNodeAnalyticsRoute::test_the_value_carries_no_node_id": 0.12827430599998024, + "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_private_override_hides_a_node_that_never_registered": 0.01857809000000543, + "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_private_override_hides_a_publicly_registered_node": 0.022363767000030066, + "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_private_registration_with_no_override_is_private": 0.01929790599996295, + "tests/test_publication.py::TestPrecedenceOverTheFleet::test_a_public_override_unhides_a_private_registration": 0.020391128999989405, + "tests/test_publication.py::TestPrecedenceOverTheFleet::test_deleting_an_override_on_an_unregistered_node_leaves_it_public": 0.02347188500002062, + "tests/test_publication.py::TestPrecedenceOverTheFleet::test_deleting_the_override_returns_the_registration_choice": 0.025179457000007233, + "tests/test_publication.py::TestPrivateNodeIds::test_a_failed_query_serves_the_last_known_set": 0.01926183000000492, + "tests/test_publication.py::TestPrivateNodeIds::test_a_failure_backs_off_rather_than_querying_every_call": 0.0160888009999951, + "tests/test_publication.py::TestPrivateNodeIds::test_a_failure_before_any_answer_withholds_publication": 0.01621445500001073, + "tests/test_publication.py::TestPrivateNodeIds::test_a_missing_node_id_is_public": 0.0160558789999925, + "tests/test_publication.py::TestPrivateNodeIds::test_a_node_that_never_registered_is_public": 0.02195919900000831, + "tests/test_publication.py::TestPrivateNodeIds::test_a_private_registration_is_listed": 0.022211701999992783, + "tests/test_publication.py::TestPrivateNodeIds::test_a_public_registration_is_not": 0.022053546000023516, + "tests/test_publication.py::TestPrivateNodeIds::test_cold_failure_recovers_after_backoff": 0.016106403000009095, + "tests/test_publication.py::TestPrivateNodeIds::test_the_answer_is_cached_within_the_ttl": 0.018793514999998706, + "tests/test_publication.py::TestPrivateNodeIds::test_the_cache_expires": 0.019015649000010626, + "tests/test_publication.py::TestPublicAircraftPayload::test_a_multinode_solve_survives_without_the_private_member": 0.01790552700001058, + "tests/test_publication.py::TestPublicAircraftPayload::test_a_private_nodes_pending_arc_is_dropped": 0.015434381000005715, + "tests/test_publication.py::TestPublicAircraftPayload::test_a_private_nodes_single_node_entry_is_dropped": 0.015366696000000957, + "tests/test_publication.py::TestPublicAircraftPayload::test_an_all_private_multinode_solve_is_dropped": 0.015529893000007178, + "tests/test_publication.py::TestPublicAircraftPayload::test_detecting_nodes_loses_private_ids_and_empty_hexes": 0.015473537000019633, + "tests/test_publication.py::TestPublicAircraftPayload::test_messages_follows_what_is_served": 0.015610564000013483, + "tests/test_publication.py::TestPublicAircraftPayload::test_no_private_nodes_returns_the_same_object": 0.015381855000015321, + "tests/test_publication.py::TestPublicAircraftPayload::test_the_source_entry_is_not_mutated": 0.015357251000011729, + "tests/test_publication.py::TestPublicAircraftPayload::test_untouched_keys_ride_along": 0.01541577800000482, + "tests/test_publication.py::TestPublicOwnerSplit::test_the_owner_feed_still_shows_the_owner_their_own_node": 0.018493550000016512, + "tests/test_publication.py::TestPublicOwnerSplit::test_the_public_bytes_have_no_private_entry": 0.01862730099998089, + "tests/test_publication.py::TestPublicOwnerSplit::test_the_unredacted_dict_is_kept_for_that_purpose": 0.01856894099998385, + "tests/test_publication.py::TestPublicPathParameters::test_a_404_does_not_quote_what_was_asked_for": 0.1307291859999964, + "tests/test_publication.py::TestPublicPathParameters::test_custody_chain_does_not_take_the_node_id": 0.12810578799999917, + "tests/test_publication.py::TestPublicPathParameters::test_custody_chain_takes_a_ref": 0.12895000099996423, + "tests/test_publication.py::TestPublicPathParameters::test_custody_status_is_keyed_on_refs": 0.12780489199997191, + "tests/test_publication.py::TestPublicPathParameters::test_custody_verify_issues_carry_no_node_id": 0.12785389499995858, + "tests/test_publication.py::TestPublicPathParameters::test_custody_verify_takes_a_ref_and_not_the_node_id": 0.127742636000022, + "tests/test_publication.py::TestPublicPathParameters::test_detection_range_takes_a_ref_and_not_the_node_id": 0.1276125739999543, + "tests/test_publication.py::TestPublicPathParameters::test_node_verification_takes_a_ref_and_not_the_node_id": 0.1281586880000134, + "tests/test_publication.py::TestPublicPathParameters::test_the_custody_chain_carries_no_node_id_at_any_depth": 0.12834522900001843, + "tests/test_publication.py::TestPublicPathParameters::test_the_hardcoded_radar3_routes_are_gone": 0.1286276850000263, + "tests/test_publication.py::TestPublicPathParameters::test_the_signed_entry_bodies_are_withheld": 0.12839769299998238, + "tests/test_publication.py::TestPublicSummaries::test_a_private_node_has_no_summary": 0.015418783000001213, + "tests/test_publication.py::TestPublicSummaries::test_nothing_private_returns_the_same_object": 0.015390539000009085, + "tests/test_publication.py::TestRadarNodesPayload::test_a_name_that_is_a_node_id_is_replaced_by_the_ref": 0.020562099000017042, + "tests/test_publication.py::TestRadarNodesPayload::test_a_name_that_is_not_a_node_id_is_published_unchanged": 0.020071287999996912, + "tests/test_publication.py::TestRadarNodesPayload::test_a_node_with_no_registry_row_is_dropped": 0.020134514000005765, + "tests/test_publication.py::TestRadarNodesPayload::test_a_private_node_is_absent_from_the_listing_and_the_counts": 0.02159109100000478, + "tests/test_publication.py::TestRadarNodesPayload::test_the_fuzzed_position_does_not_move_when_the_key_changes": 0.02067694400000164, + "tests/test_publication.py::TestRadarNodesPayload::test_the_listing_is_keyed_on_refs_and_names_fall_back_to_them": 0.021442678999960663, + "tests/test_publication.py::TestRadarNodesPayload::test_the_real_only_analytics_variant_is_keyed_on_refs": 0.020159053000014637, + "tests/test_publication.py::TestSingleNodeSurfaces::test_radar_status_names_no_node": 0.12824494999998137, + "tests/test_publication.py::TestSingleNodeSurfaces::test_radar_status_withholds_a_private_nodes_config_block": 0.12767458199999737, + "tests/test_publication.py::TestSingleNodeSurfaces::test_receiver_json_publishes_a_public_nodes_position": 0.024571919999999636, + "tests/test_publication.py::TestSingleNodeSurfaces::test_receiver_json_withholds_a_private_nodes_position": 0.02496204000001967, + "tests/test_publication.py::TestUnavailablePublicationPolicy::test_broadcast_withholds_public_data_but_keeps_owner_source": 0.015963674999994737, + "tests/test_publication.py::TestUnavailablePublicationPolicy::test_policy_dependent_requests_return_retryable_503[/api/data/archive/a/b/c]": 0.01831500399998731, + "tests/test_publication.py::TestUnavailablePublicationPolicy::test_policy_dependent_requests_return_retryable_503[/api/data/archive]": 0.01821643999997491, + "tests/test_publication.py::TestUnavailablePublicationPolicy::test_policy_dependent_requests_return_retryable_503[/api/radar/analytics]": 0.019184446000025446, + "tests/test_publication.py::TestUnavailablePublicationPolicy::test_receiver_withholds_coordinates": 0.021773870999993505, + "tests/test_r2_client.py::TestR2Client::test_delete_key_exception_returns_false": 0.020348916000017425, + "tests/test_r2_client.py::TestR2Client::test_delete_key_nonexistent_returns_true": 0.48419049000000314, + "tests/test_r2_client.py::TestR2Client::test_delete_key_noop_when_disabled": 0.019638833999977123, + "tests/test_r2_client.py::TestR2Client::test_delete_key_removes_object": 0.12124029199998176, + "tests/test_r2_client.py::TestR2Client::test_delete_keys_bulk": 0.14823775700000397, + "tests/test_r2_client.py::TestR2Client::test_delete_keys_empty_list": 0.1013048640000136, + "tests/test_r2_client.py::TestR2Client::test_delete_keys_exception_returns_zero": 0.018702140999977246, + "tests/test_r2_client.py::TestR2Client::test_delete_keys_noop_when_disabled": 0.016924793999976373, + "tests/test_r2_client.py::TestR2Client::test_download_bytes_exception_returns_none": 0.017738377999990007, + "tests/test_r2_client.py::TestR2Client::test_download_bytes_noop_when_disabled": 0.01667374499996299, + "tests/test_r2_client.py::TestR2Client::test_download_bytes_returns_none_for_missing_key": 0.11541096300001641, + "tests/test_r2_client.py::TestR2Client::test_download_bytes_round_trip": 0.11153984500003844, + "tests/test_r2_client.py::TestR2Client::test_get_client_exception_returns_none": 0.01820240099999637, + "tests/test_r2_client.py::TestR2Client::test_is_enabled_false_when_no_creds": 0.01677270900000849, + "tests/test_r2_client.py::TestR2Client::test_is_enabled_true": 0.019308966000011196, + "tests/test_r2_client.py::TestR2Client::test_list_keys_empty_bucket": 0.11674429399997166, + "tests/test_r2_client.py::TestR2Client::test_list_keys_exception_returns_empty": 0.01874642099997459, + "tests/test_r2_client.py::TestR2Client::test_list_keys_no_prefix": 0.6432232469999803, + "tests/test_r2_client.py::TestR2Client::test_list_keys_noop_when_disabled": 0.017590734000009434, + "tests/test_r2_client.py::TestR2Client::test_list_keys_with_prefix": 0.13019167799998854, + "tests/test_r2_client.py::TestR2Client::test_upload_bytes_content_is_stored": 0.11296842400000173, + "tests/test_r2_client.py::TestR2Client::test_upload_bytes_exception_returns_false": 0.018806974999989734, + "tests/test_r2_client.py::TestR2Client::test_upload_bytes_noop_when_disabled": 0.01731346300002201, + "tests/test_r2_client.py::TestR2Client::test_upload_bytes_success": 0.10735635000003185, + "tests/test_r2_client.py::TestR2Client::test_upload_file_exception_returns_false": 0.018551225000038585, + "tests/test_r2_client.py::TestR2Client::test_upload_file_noop_when_disabled": 0.017388915000026373, + "tests/test_r2_client.py::TestR2Client::test_upload_file_success": 0.11097831000000724, + "tests/test_radar3_truth_units.py::TestGroundTruthAltitudeUnits::test_gt_altitude_is_metres_not_reconverted_feet": 0.0188856099999839, + "tests/test_radar3_truth_units.py::TestGroundTruthAltitudeUnits::test_gt_speed_comes_from_meta_not_zero": 0.01708028699999886, + "tests/test_radar3_truth_units.py::TestGroundTruthAltitudeUnits::test_unknown_gt_speed_is_excluded_from_velocity_stats": 0.01698201300001756, + "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_malformed_ref_is_refused": 0.12710296499997753, + "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_arriving_at_registration_is_recorded": 0.12858701900000824, + "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_arriving_later_is_still_recorded": 0.12841156000001774, + "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_shaped_like_a_node_id_is_refused": 0.12745543100001555, + "tests/test_radar_routes.py::TestBulkRecordsTheMirroredRef::test_a_ref_the_registry_gives_to_another_node_is_refused": 0.1281734200000244, + "tests/test_radar_routes.py::TestCheckRateLimit::test_exceeding_rate_limit_raises_429": 0.016130126000007294, + "tests/test_radar_routes.py::TestCheckRateLimit::test_expired_timestamps_cleaned_up": 0.01589785999999549, + "tests/test_radar_routes.py::TestCheckRateLimit::test_first_call_succeeds": 0.016525595999979714, + "tests/test_radar_routes.py::TestRadarDetectionsAuth::test_correct_api_key_returns_200": 0.1293315869999958, + "tests/test_radar_routes.py::TestRadarDetectionsAuth::test_missing_api_key_returns_401": 0.13081157899995333, + "tests/test_radar_routes.py::TestRadarDetectionsAuth::test_wrong_api_key_returns_401": 0.1296922140000163, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_auth_wrong_key_returns_401": 0.1299988870000277, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_changed_config_re_registers_the_node": 0.1295777989999749, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_does_not_overwrite_a_node_registered_by_another_path": 0.12955792299999302, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_first_registration_of_a_new_node_is_unaffected": 0.12931971199998316, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_frame_without_timestamp_skipped": 0.1287525180000273, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_missing_config_on_a_known_node_does_not_re_register": 0.13187232499998913, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_two_nodes_registered_and_frames_queued": 0.12962362300001473, + "tests/test_radar_routes.py::TestRadarDetectionsBulk::test_bulk_unchanged_config_does_not_re_register": 0.13054556399998773, + "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_existing_node_status_updated_not_duplicated": 0.12996688200001927, + "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_frame_with_timestamp_is_queued": 0.129217323000006, + "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_frame_without_timestamp_not_queued": 0.12701249799997072, + "tests/test_radar_routes.py::TestRadarDetectionsIngestion::test_new_node_registered_in_connected_nodes": 0.1294749860000195, + "tests/test_reputation_penalty_scale.py::TestDefaultScaleRecordsNoPenalty::test_a_100km_mismatch_costs_nothing": 0.016659778999979835, + "tests/test_reputation_penalty_scale.py::TestDefaultScaleRecordsNoPenalty::test_rewards_still_work_at_zero_scale": 0.01603380399998855, + "tests/test_reputation_penalty_scale.py::TestDefaultScaleRecordsNoPenalty::test_the_same_mismatch_does_land_with_penalties_on": 0.01622434199998679, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[-1]": 0.01610864499997433, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[-inf]": 0.015764547000003404, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[1,0]": 0.015870108000001437, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[banana]": 0.01583221699996784, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_a_value_that_is_not_a_scale_falls_back_to_zero[nan]": 0.0157992259999844, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_infinity_is_refused": 0.01556749900001364, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_one_restores_the_historical_behaviour": 0.01595746199998871, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_the_deployed_default_is_zero": 0.015859237000000803, + "tests/test_reputation_penalty_scale.py::TestPenaltyScaleParsing::test_unset_is_zero": 0.01578197199998499, + "tests/test_reputation_penalty_scale.py::TestRestoredBlocksSurvive::test_a_restored_block_is_unchanged_by_an_evaluator_pass": 0.015430454000011196, + "tests/test_reputation_penalty_scale.py::TestRestoredBlocksSurvive::test_the_same_pass_would_have_charged_it_with_penalties_on": 0.015667627999988554, + "tests/test_reputation_penalty_scale.py::test_set_penalty_scale_refuses_a_nonsense_value": 0.01716129899998009, + "tests/test_rollback_script.py::test_a_container_created_after_the_tag_is_restarted": 0.021064363000022013, + "tests/test_rollback_script.py::test_a_container_older_than_the_tag_that_answers_is_left_alone": 0.02273040500000434, + "tests/test_rollback_script.py::test_a_container_that_does_not_answer_is_restarted": 0.019499417999981006, + "tests/test_rollback_script.py::test_an_abort_partway_says_the_rollback_did_not_complete": 0.02048547799998346, + "tests/test_rollback_script.py::test_health_wait_matches_the_deploys": 0.016469377000021268, + "tests/test_rollback_script.py::test_lookup_picks_the_newest_tag": 0.041478123999979744, + "tests/test_rollback_script.py::test_lookup_survives_a_listing_larger_than_a_pipe_buffer": 0.9691626839999969, + "tests/test_rollback_script.py::test_no_running_container_means_the_full_restart": 0.018798965000002, + "tests/test_rollback_script.py::test_the_same_second_as_the_tag_counts_as_after": 0.019629291999990528, + "tests/test_routes.py::TestArchiveAPI::test_archive_list": 0.1420746269999995, + "tests/test_routes.py::TestArchiveAPI::test_existing_archive_file_returns_content": 0.12924043199998891, + "tests/test_routes.py::TestArchiveAPI::test_missing_archive_file_returns_404": 0.12963143200002492, + "tests/test_routes.py::TestCORS::test_cors_allows_configured_origin": 0.12803461499999003, + "tests/test_routes.py::TestCORS::test_cors_rejects_unknown_origin": 0.12608563099996672, + "tests/test_routes.py::TestCORS::test_cors_restricts_methods": 0.594929785000005, + "tests/test_routes.py::TestDetections::test_bulk_accepts_valid": 0.12638571799999454, + "tests/test_routes.py::TestDetections::test_bulk_endpoint_validates_shape": 0.12645238700002892, + "tests/test_routes.py::TestDetections::test_missing_api_key_returns_401": 0.12889704900001675, + "tests/test_routes.py::TestDetections::test_no_timestamp_frame_skipped": 0.12845826899999224, + "tests/test_routes.py::TestDetections::test_valid_detection_accepted": 0.12837226799999257, + "tests/test_routes.py::TestHealth::test_health_returns_ok": 0.12743984600001568, + "tests/test_routes.py::TestRadarData::test_aircraft_json": 0.12886885200001075, + "tests/test_routes.py::TestRadarData::test_receiver_json": 0.1301930900000059, + "tests/test_routes.py::TestRequestSizeLimit::test_oversized_body_rejected": 0.1298875529999748, + "tests/test_routes.py::TestTowerStats::test_get_summary": 0.13068538100000637, + "tests/test_routes.py::TestTowerStats::test_missing_fields_returns_400": 0.1298987079999847, + "tests/test_routes.py::TestTowerStats::test_post_selection": 0.12924189199998182, + "tests/test_routes.py::TestWebSocketAuth::test_ws_accepted_with_valid_token": 0.12912291399999276, + "tests/test_routes.py::TestWebSocketAuth::test_ws_open_when_no_token_configured": 0.1270997900000168, + "tests/test_routes.py::TestWebSocketAuth::test_ws_rejected_with_bad_token": 0.1270461439999906, + "tests/test_runtime_config.py::TestWriteRuntimeFile::test_a_failed_write_does_not_touch_the_target": 0.015866035000016154, + "tests/test_runtime_config.py::TestWriteRuntimeFile::test_each_call_uses_its_own_temp_file": 0.018398347000015747, + "tests/test_runtime_config.py::TestWriteRuntimeFile::test_leaves_no_temp_file_behind": 0.017783371999968267, + "tests/test_runtime_config.py::TestWriteRuntimeFile::test_replaces_the_target": 0.02196557099998131, + "tests/test_secrets.py::test_a_secret_round_trips_under_the_key": 0.015783942000012985, + "tests/test_secrets.py::test_an_invalid_key_is_refused_by_name": 0.015369385999974838, + "tests/test_secrets.py::test_another_key_cannot_read_it": 0.01563791799998171, + "tests/test_secrets.py::test_encrypting_without_a_key_is_refused[ ]": 0.015610756000000947, + "tests/test_secrets.py::test_encrypting_without_a_key_is_refused[None]": 0.015556556999996474, + "tests/test_secrets.py::test_encrypting_without_a_key_is_refused[]": 0.015568889999997282, + "tests/test_setup_server.py::test_a_daemon_that_comes_up_on_the_other_store_stops_the_script": 0.02307653400001186, + "tests/test_setup_server.py::test_a_daemon_that_stops_answering_after_the_restart_stops_the_script": 0.025484997000006615, + "tests/test_setup_server.py::test_a_fresh_box_gets_the_containerd_store": 0.025647642000024007, + "tests/test_setup_server.py::test_a_rerun_keeps_the_store_a_running_daemon_is_on[containerd]": 0.02675802699999963, + "tests/test_setup_server.py::test_a_rerun_keeps_the_store_a_running_daemon_is_on[overlay2]": 0.027079549999967867, + "tests/test_setup_server.py::test_an_overlay2_box_is_left_without_buildx[absent]": 0.0268323960000032, + "tests/test_setup_server.py::test_an_overlay2_box_is_left_without_buildx[present]": 0.027651162000012164, + "tests/test_setup_server.py::test_buildx_is_installed_from_ubuntus_package_on_the_containerd_store[containerd]": 0.027077465999980177, + "tests/test_setup_server.py::test_buildx_is_installed_from_ubuntus_package_on_the_containerd_store[fresh]": 0.026073002000003953, + "tests/test_setup_server.py::test_docker_data_with_no_daemon_answering_is_refused": 0.018194109999996044, + "tests/test_setup_server.py::test_nothing_touches_the_store_setting_once_anything_is_built": 0.018779078000022764, + "tests/test_setup_server.py::test_the_log_options_are_kept": 0.0256628029999888, + "tests/test_setup_server.py::test_the_store_is_stated_before_the_daemon_first_starts": 0.025798919999971304, + "tests/test_sim_ingest.py::TestAdsbPush::test_icao_hex_accepted": 0.13010128700000223, + "tests/test_sim_ingest.py::TestAdsbPush::test_object_id_rejected": 0.13031971200001635, + "tests/test_sim_ingest.py::TestAdsbPush::test_source_real_push_is_real_world": 0.12799483500003817, + "tests/test_sim_ingest.py::TestAdsbPush::test_tisb_tilde_hex_accepted": 0.12984060400000885, + "tests/test_sim_ingest.py::TestAdsbPush::test_untagged_push_is_sim_world": 0.13121274700003482, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_adsb_silent_defaults_false_for_older_fleets": 0.1284302269999955, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_anomalous_push_flags_hex_and_logs_event": 0.1304269720000093, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_invalid_latlon_skipped": 0.1302273400000331, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_missing_api_key_rejected": 0.13030072600000153, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_non_anomalous_push_clears_hex": 0.1311028350000072, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_non_list_aircraft_rejected": 0.13097267200001284, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_old_payload_without_new_keys_defaults": 0.1283364669999969, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_stores_adsb_silent_flag": 0.1292825369999946, + "tests/test_sim_ingest.py::TestGroundTruthPush::test_stores_trail_and_full_meta": 0.12834261899999433, + "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_accepted_and_echoed": 0.1292063129999974, + "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_default_is_off": 0.12913017800002535, + "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_is_outside_the_frac_sum_constraint": 0.13058799499998486, + "tests/test_sim_ingest.py::TestSimulationConfig::test_adsb_outage_out_of_range_rejected": 0.12951970500000698, + "tests/test_sim_ingest.py::TestSimulationConfig::test_config_put_needs_an_admin_and_the_get_does_not": 0.1289862509999864, + "tests/test_sim_ingest.py::TestSimulationConfig::test_counts_report_silent_transponders_alongside_their_type": 0.1300733619999903, + "tests/test_sim_ingest.py::TestSimulationConfig::test_counts_split_live_feed_aircraft_by_cast": 0.12812419700000532, + "tests/test_sim_ingest.py::TestSimulationConfig::test_counts_split_out_dark_aircraft": 0.12848627700000748, + "tests/test_sim_ingest.py::TestSimulationConfig::test_defaults_are_boot_stamped": 0.13117555199997355, + "tests/test_sim_ingest.py::TestSimulationConfig::test_dual_fraction_above_range_rejected": 0.12770413100000155, + "tests/test_sim_ingest.py::TestSimulationConfig::test_dual_fraction_below_range_rejected": 0.12725762300001975, + "tests/test_sim_ingest.py::TestSimulationConfig::test_frac_live_dark_is_outside_the_frac_sum_constraint": 0.13014556800004584, + "tests/test_sim_ingest.py::TestSimulationConfig::test_live_knobs_accepted_and_echoed": 0.12984937199999536, + "tests/test_sim_ingest.py::TestSimulationConfig::test_live_knobs_default_on_with_dark_share": 0.1287106700000038, + "tests/test_sim_ingest.py::TestSimulationConfig::test_live_knobs_validated": 0.13039373899999873, + "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_above_400_rejected": 0.12904106100000945, + "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_below_10_but_nonzero_rejected": 0.12852141999997002, + "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_boundary_values_accepted": 0.1276997989999984, + "tests/test_sim_ingest.py::TestSimulationConfig::test_max_range_km_zero_accepted": 0.1265460730000143, + "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_above_range_rejected": 0.1290942280000138, + "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_below_range_rejected": 0.1291100460000223, + "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_bool_rejected": 0.12766702199999713, + "tests/test_sim_ingest.py::TestSimulationConfig::test_n_nodes_float_rejected": 0.12760096700000645, + "tests/test_sim_ingest.py::TestSimulationConfig::test_partial_put_leaves_scene_keys_absent": 0.12689479500002676, + "tests/test_sim_ingest.py::TestSimulationConfig::test_scene_keys_absent_by_default": 0.12963969099996575, + "tests/test_sim_ingest.py::TestSimulationConfig::test_scene_keys_accepted_and_echoed": 0.12977808800002322, + "tests/test_sim_ingest.py::TestSimulationConfig::test_the_known_hold_put_beside_it_needs_an_admin_too": 0.12904681600002732, + "tests/test_sim_ingest.py::TestSimulationConfig::test_the_physics_page_reads_need_an_admin[/api/simulation/ground-truth]": 0.12775758300000462, + "tests/test_sim_ingest.py::TestSimulationConfig::test_the_physics_page_reads_need_an_admin[/api/test/solver-stats]": 0.1295678369999962, + "tests/test_sim_ingest.py::TestStationaryPush::test_meta_and_anomaly_update_while_stationary": 0.128238481000011, + "tests/test_sim_ingest.py::TestStationaryPush::test_moved_push_still_appends": 0.12864206099996522, + "tests/test_sim_ingest.py::TestStationaryPush::test_refreshes_liveness_without_duplicate_point": 0.12936647200001516, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[dev]": 0.017593609000016386, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[production]": 0.016320050999979685, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[staging]": 0.017089612000006582, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_no_environment_name_opens_the_gate[test]": 0.01729530799997292, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[ 1]": 0.016738603000021612, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[0]": 0.016318098000027703, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[1 ]": 0.01653197800001749, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[True]": 0.01632229599999846, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[]": 0.01648056100000872, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[on]": 0.016301163999997925, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[true]": 0.016500428000028933, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_only_the_literal_one_opens_it[yes]": 0.016306606000000556, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[dev]": 0.01625226100000532, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[production]": 0.016237857999982452, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[staging]": 0.016286798000038516, + "tests/test_sim_ingest_mount.py::TestSyntheticFleetGate::test_the_flag_opens_it_in_any_environment[test]": 0.01632169400002681, + "tests/test_sim_ingest_mount.py::test_main_consults_the_gate": 3.929637137000043, + "tests/test_simulation.py::TestSimulationWorld::test_aircraft_populated": 0.01973075900002641, + "tests/test_simulation.py::TestSimulationWorld::test_aircraft_summary": 0.018261843000061617, + "tests/test_simulation.py::TestSimulationWorld::test_beam_width_preserved": 0.016148260999955255, + "tests/test_simulation.py::TestSimulationWorld::test_generate_frames": 0.018452831999979935, + "tests/test_simulation.py::TestSyntheticNodeConfig::test_config_hash_format": 0.01816825800000288, + "tests/test_simulation.py::TestSyntheticNodeConfig::test_different_config_different_hash": 0.018179348999979084, + "tests/test_simulation.py::TestSyntheticNodeConfig::test_node_id_prefix": 0.017578480999986823, + "tests/test_simulation.py::TestSyntheticNodeConfig::test_same_config_same_hash": 0.01816278799998372, + "tests/test_simulation.py::TestSyntheticNodeGenerator::test_generate_frame_has_fields": 0.01868788299998414, + "tests/test_simulator_only_on_test.py::test_health_serialises_the_flag_the_smoke_suite_greps_for": 0.1282203619999791, + "tests/test_simulator_only_on_test.py::test_no_simulator_flag_off_the_test_droplet[prod]": 0.024769537999986824, + "tests/test_simulator_only_on_test.py::test_no_simulator_flag_off_the_test_droplet[staging]": 0.026761290999957055, + "tests/test_simulator_only_on_test.py::test_the_fleet_is_behind_an_unenabled_profile[prod]": 0.024258308000071338, + "tests/test_simulator_only_on_test.py::test_the_fleet_is_behind_an_unenabled_profile[staging]": 0.026718440999957238, + "tests/test_simulator_only_on_test.py::test_the_smoke_job_no_longer_waits_for_a_fleet": 0.03331902799999398, + "tests/test_simulator_only_on_test.py::test_the_smoke_suite_asserts_the_simulator_is_absent": 0.018862609999985125, + "tests/test_simulator_only_on_test.py::test_the_staging_deploy_starts_the_server_alone": 0.0352317350000817, + "tests/test_simulator_only_on_test.py::test_the_test_droplet_still_sets_the_flag": 0.026510851000011826, + "tests/test_simulator_only_on_test.py::test_the_test_droplets_fleet_starts_by_default": 0.0264409910000154, + "tests/test_smoke_tally_shared.py::test_each_suite_sources_the_shared_tally[ci.yml (production smoke)]": 0.01928735799998549, + "tests/test_smoke_tally_shared.py::test_each_suite_sources_the_shared_tally[staging-smoke-test.sh]": 0.018489350999971066, + "tests/test_smoke_tally_shared.py::test_no_suite_declares_its_own_counters[ci.yml (production smoke)]": 0.019312835999983236, + "tests/test_smoke_tally_shared.py::test_no_suite_declares_its_own_counters[staging-smoke-test.sh]": 0.018522863999919537, + "tests/test_smoke_tally_shared.py::test_the_summary_takes_no_arguments": 0.018371411000032367, + "tests/test_smoke_tally_shared.py::test_the_tally_owns_all_three_counters": 0.018574159000024792, + "tests/test_solve_uncertainty.py::TestClamp::test_ceiling_of_the_clamp_binds": 0.016270718999976452, + "tests/test_solve_uncertainty.py::TestClamp::test_floor_of_the_clamp_binds": 0.016159001000005446, + "tests/test_solve_uncertainty.py::TestClamp::test_returns_a_float": 0.01597389400001248, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[2-2100.0]": 0.015863056000000597, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[3-850.0]": 0.016116100000033384, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[4-240.0]": 0.016204497999922296, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floor_per_node_count[9-240.0]": 0.016280850000043756, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floors_are_env_tunable": 0.016275580000012724, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_dark_floors_replace_the_known_ones_rather_than_scaling_them": 0.016288351000014245, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_formal_sigma_still_adds_in_quadrature_on_the_dark_lane": 0.016142419999994218, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_gain_is_env_tunable_and_multiplies_the_dark_floor": 0.016270538999947348, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_capped_worst_case_stays_off_the_clamp": 0.016079801000046245, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_gain_defaults_to_unit": 0.016181803999927524, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_gain_does_not_touch_the_known_lane": 0.016092366000009406, + "tests/test_solve_uncertainty.py::TestDarkFloors::test_the_legacy_gain_still_applies_when_set": 0.016004531000021416, + "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[2-650.0]": 0.017609308000032797, + "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[3-210.0]": 0.015904924000039955, + "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[4-180.0]": 0.01589038700006995, + "tests/test_solve_uncertainty.py::TestFloors::test_floor_per_node_count[7-180.0]": 0.015618164999921191, + "tests/test_solve_uncertainty.py::TestFloors::test_known_lane_floors_are_the_2026_09_05_values": 0.015505134000022736, + "tests/test_solve_uncertainty.py::TestFloors::test_n_nodes_explicit_none_returns_none": 0.015782545000035952, + "tests/test_solve_uncertainty.py::TestFloors::test_n_nodes_missing_returns_none": 0.015650177999987136, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_absent_formal_matches_zero_formal": 0.01570495099991831, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_formal_adds_in_quadrature": 0.016565753000008954, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_formal_gain_scales_only_the_formal_term": 0.015849360000061097, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_formal_is_capped_before_it_is_used": 0.01582162800008291, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[-1.0]": 0.015899252999986402, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[0.0]": 0.01569671400000061, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[None]": 0.01655772000003708, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[inf]": 0.015735044999985348, + "tests/test_solve_uncertainty.py::TestFormalTerm::test_unusable_formal_degrades_to_the_floor[nan]": 0.015637553999965803, + "tests/test_solve_uncertainty.py::TestGrownSigma::test_growth_adds_in_quadrature": 0.015864086999954452, + "tests/test_solve_uncertainty.py::TestGrownSigma::test_growth_is_capped_at_the_growth_horizon": 0.015665966000028675, + "tests/test_solve_uncertainty.py::TestGrownSigma::test_growth_is_monotonic_up_to_the_cap": 0.01565961499994728, + "tests/test_solve_uncertainty.py::TestGrownSigma::test_negative_age_does_not_shrink_or_grow": 0.015508039999986067, + "tests/test_solve_uncertainty.py::TestGrownSigma::test_zero_age_is_the_solve_sigma": 0.016211669000028905, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_default_is_env_tunable": 0.015935392000017146, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[0.5-5.0]": 0.01634250399990833, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[4.9-5.0]": 0.016329409999968902, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[42.0-42.0]": 0.016317276999984642, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_sigma_is_clamped[900.0-150.0]": 0.01640492199999244, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_kf_state_supplies_the_sigma": 0.016406164000045464, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_non_finite_kf_sigma_falls_back": 0.016381837999972504, + "tests/test_solve_uncertainty.py::TestVelocitySigma::test_unknown_key_falls_back_to_the_default": 0.015775582000003396, + "tests/test_solver.py::TestBistaticModels::test_delay_increases_with_offset": 0.0170717520000494, + "tests/test_solver.py::TestBistaticModels::test_delay_symmetric": 0.016546868000034465, + "tests/test_solver.py::TestBistaticModels::test_delay_target_on_baseline_is_zero": 0.017250958999966315, + "tests/test_solver.py::TestBistaticModels::test_doppler_nonzero_for_moving_target": 0.015856704000043464, + "tests/test_solver.py::TestBistaticModels::test_doppler_stationary_is_zero": 0.015921395000020766, + "tests/test_solver.py::TestCoordinateConversions::test_lla_to_enu_north_offset": 0.01723518800002921, + "tests/test_solver.py::TestCoordinateConversions::test_lla_to_enu_origin_is_zero": 0.016606810999917343, + "tests/test_solver.py::TestCoordinateConversions::test_roundtrip_lla_enu_lla": 0.01851026100001718, + "tests/test_solver.py::TestResidualFunction::test_perfect_state_has_small_residuals": 0.015937414999939392, + "tests/test_solver.py::TestResidualFunction::test_snr_weighting": 0.01582942200002435, + "tests/test_solver.py::TestResidualFunction::test_z_fixed_is_used_not_state": 0.015718815000070663, + "tests/test_solver.py::TestSolveMultinode::test_contributing_node_ids_returned": 0.03076954700003398, + "tests/test_solver.py::TestSolveMultinode::test_empty_measurements_returns_none": 0.015770172000088678, + "tests/test_solver.py::TestSolveMultinode::test_fc_fallback_to_FC_key": 0.0341802629999961, + "tests/test_solver.py::TestSolveMultinode::test_happy_path_two_nodes": 0.0298230129999979, + "tests/test_solver.py::TestSolveMultinode::test_missing_node_config_returns_none": 0.015520374000061565, + "tests/test_solver.py::TestSolveMultinode::test_result_has_fit_quality_metrics": 0.030093620000059218, + "tests/test_solver.py::TestSolveMultinode::test_result_has_velocity": 0.03196126299997104, + "tests/test_solver.py::TestSolveMultinode::test_single_measurement_returns_none": 0.015826607000008153, + "tests/test_solver.py::TestVelUntrustedDerivation::test_solve_source_n_nodes_3_is_untrusted": 0.016553840999904423, + "tests/test_solver.py::TestVelUntrustedDerivation::test_solve_source_n_nodes_4_is_trusted": 0.016536809000058383, + "tests/test_solver.py::TestVelUntrustedDerivation::test_unsaturated_cv_fit_n_nodes_2_is_trusted": 0.016626797000014903, + "tests/test_solver.py::TestVelUntrustedDerivation::test_vz_saturated_with_cv_fit_adopted_is_untrusted": 0.01702733999997008, + "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_no_measurements_gives_nothing": 0.017376823999939006, + "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_pool_measurement_nodes_travel_too": 0.01707351500004961, + "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_restricted_to_the_measurement_nodes": 0.015896999000062806, + "tests/test_solver_alt_mode.py::TestConfigsForSolverInput::test_unknown_measurement_nodes_are_simply_absent": 0.01626388799996903, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_an_adsb_altitude_in_the_ladder_is_the_start": 0.0157190449999689, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_fewer_than_one_start_still_starts_somewhere[-3]": 0.01631946100002324, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_fewer_than_one_start_still_starts_somewhere[0]": 0.01658839600003148, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_more_starts_than_layers_is_every_layer": 0.01602285399997072, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_no_layers_gives_no_starts": 0.016610978999949566, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[0.4-expected4]": 0.016591609000045082, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[1.5-expected3]": 0.015857524000011836, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[40.0-expected5]": 0.015953724999974384, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[7.0-expected1]": 0.01589800199997171, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[8.2-expected2]": 0.01580049899990854, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_one_start_at_the_nearest_layer_by_default[9.0-expected0]": 0.015982799999960662, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[0.4-expected4]": 0.016277423000019553, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[1.5-expected3]": 0.01641158499995754, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[11.0-expected5]": 0.01642591999996057, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[40.0-expected6]": 0.016176904999952058, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[7.0-expected1]": 0.015840022000020326, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[8.2-expected2]": 0.015969735999931345, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_are_the_window_around_the_nearest_layer[9.0-expected0]": 0.015995024000005742, + "tests/test_solver_alt_mode.py::TestFreeAltStarts::test_three_starts_window_the_spliced_adsb_altitude": 0.01652809200010097, + "tests/test_solver_alt_mode.py::TestFreeMode::test_a_failed_multistart_is_a_failed_solve": 0.01617579100002331, + "tests/test_solver_alt_mode.py::TestFreeMode::test_a_single_start_still_records_its_residual": 0.016175132000000758, + "tests/test_solver_alt_mode.py::TestFreeMode::test_an_adsb_guess_altitude_is_the_start": 0.0159574630000634, + "tests/test_solver_alt_mode.py::TestFreeMode::test_an_unrecognised_mode_would_sweep": 0.01590081600005533, + "tests/test_solver_alt_mode.py::TestFreeMode::test_history_carries_the_mode_and_the_per_start_residuals": 0.016442141000027277, + "tests/test_solver_alt_mode.py::TestFreeMode::test_n2_keeps_the_sweep": 0.016142038999987562, + "tests/test_solver_alt_mode.py::TestFreeMode::test_one_multistart_call_with_one_start": 0.015890595999962898, + "tests/test_solver_alt_mode.py::TestFreeMode::test_the_start_count_is_configurable": 0.015933057000040662, + "tests/test_solver_alt_mode.py::TestFreeMode::test_trimming_re_solves_through_the_multistart": 0.01664022299996759, + "tests/test_solver_alt_mode.py::TestFreeMode::test_z_saturation_reaches_the_history": 0.016605116999983238, + "tests/test_solver_alt_mode.py::TestSweepIsTheDefault::test_sweep_calls_the_lm_once_per_layer_and_never_the_multistart": 0.01588743200005638, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_a_fresh_close_entry_beats_an_old_far_one": 0.016740702000049623, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_a_widened_base_is_never_narrowed_by_the_cap": 0.01653543599996965, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_an_anchor_inside_the_flat_radius_still_reports_its_distance": 0.016903237999940757, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_eight_km_from_a_30s_old_entry_rekeys_onto_it": 0.01657299700002568, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_gate_grows_by_the_measured_drift_rate": 0.016658756999959223, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_gate_is_capped_and_stays_capped_to_the_age_limit": 0.01664798699999892, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_gate_starts_at_the_flat_radius": 0.016214502999957858, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_learned_velocity_is_preferred_when_the_filter_has_it": 0.016334128999915265, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_no_learned_velocity_falls_back_to_the_entrys_own": 0.016420350000032613, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_normalising_by_the_gate_beats_ranking_on_raw_kilometres": 0.016403467999964505, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_age_window_itself_is_unchanged": 0.016692239999997582, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_anchor_branch_keeps_the_flat_radius": 0.016973178000000644, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_cap_holds_at_the_age_limit": 0.01812770199995839, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_the_same_eight_km_from_a_2s_old_entry_mints": 0.016624163000017234, + "tests/test_solver_anchor.py::TestAgeScaledProximityGate::test_track_dr_source_solve_pins_the_entrys_own_velocity": 0.01705744399998821, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_adsb_takes_precedence_over_an_anchor": 0.01669186899999886, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_anchor_beyond_max_dist_km_falls_back": 0.016912053000055494, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_anchor_hit_when_close_and_still_live": 0.018965132999994694, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_mints_a_new_key_with_no_anchor_and_no_claimant": 0.016177807000076427, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_missing_anchor_key_falls_back_to_mint": 0.0172723790000191, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_non_dark_anchor_key_is_refused": 0.0166489079999792, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_non_transponder_adsb_hex_cannot_take_the_adsb_branch": 0.016047809999975016, + "tests/test_solver_anchor.py::TestMultinodeKeyDecision::test_tisb_tilde_adsb_hex_still_takes_the_adsb_branch": 0.017347228999938125, + "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_a_negative_dt_candidate_gets_no_drift_allowance": 0.017089677000001302, + "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_a_solve_far_older_than_the_entry_still_mints": 0.018956187000071623, + "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_a_solve_two_seconds_older_than_the_entry_joins_it": 0.018915648999950463, + "tests/test_solver_anchor.py::TestOutOfOrderMeasurementEpochs::test_the_entry_is_dead_reckoned_backwards_not_forwards": 0.018825852000020404, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_anchor_key_is_recorded_on_rejects_too": 0.016302920999976322, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_anchored_n2_without_cv_epochs_is_withheld": 0.01667832499998667, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_anchored_publish_lands_on_the_anchor_key": 0.016548121000028004, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_fallback_still_publishes_and_counts_as_a_fallback": 0.016757863000009365, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_history_carries_the_anchor_key": 0.016560062999985803, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_supersession_merges_a_proximity_minted_fragment_into_the_anchor": 0.01669612899996764, + "tests/test_solver_anchor.py::TestProcessSolverItemAnchorHonoring::test_supersession_refuses_a_far_fragment_that_only_partially_shares_inputs": 0.01678715700001021, + "tests/test_solver_consensus.py::TestConsensusDisabledAndN2::test_mode_off_never_calls_select_fn": 0.016723117000026377, + "tests/test_solver_consensus.py::TestConsensusDisabledAndN2::test_n2_never_calls_select_fn_even_when_active": 0.01705962900001623, + "tests/test_solver_consensus.py::TestConsensusFallbacks::test_abstain_falls_back_to_full_set": 0.0168107630000236, + "tests/test_solver_consensus.py::TestConsensusFallbacks::test_raising_select_fn_falls_back": 0.017764089999957378, + "tests/test_solver_consensus.py::TestConsensusFallbacks::test_too_few_selected_falls_back": 0.017067425999982788, + "tests/test_solver_consensus.py::TestConsensusFiltersAndPublishes::test_filters_to_selection_and_publishes": 0.017082753000067896, + "tests/test_solver_consensus.py::TestConsensusMetaOnReject::test_rejected_rms_delay_still_carries_consensus_meta": 0.016307308000023113, + "tests/test_solver_consensus.py::TestConsensusShadow::test_shadow_mode_records_meta_without_filtering": 0.01678949199992985, + "tests/test_solver_consensus.py::TestConsensusThenTrim::test_consensus_selection_then_trim_both_recorded": 0.017137952000041423, + "tests/test_solver_consensus.py::TestDisplacementAnchor::test_active_selected_anchors_to_centroid_and_publishes": 0.01844146000001956, + "tests/test_solver_consensus.py::TestDisplacementAnchor::test_active_selected_rejects_when_off_both_anchors": 0.018934646000047906, + "tests/test_solver_consensus.py::TestDisplacementAnchor::test_fallback_abstained_keeps_guess_anchor": 0.018921239999997397, + "tests/test_solver_consensus.py::TestDisplacementAnchor::test_shadow_mode_keeps_guess_anchor": 0.018873050000024705, + "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_filters_measurements_and_recomputes_n_nodes": 0.01603265200003534, + "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_no_track_ids_by_node_leaves_track_ids_unchanged": 0.016092016999948555, + "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_original_s_in_is_not_mutated": 0.016797058000008747, + "tests/test_solver_consensus.py::TestFilterHelperProvenance::test_rebuilds_track_ids_by_node_and_track_ids": 0.015988119000041934, + "tests/test_solver_lifecycle.py::test_start_builds_and_prewarms_the_pool_and_stop_shuts_it": 0.11658349499998621, + "tests/test_solver_lifecycle.py::test_start_is_idempotent_and_stop_joins_workers": 0.21968203099999073, + "tests/test_solver_lifecycle.py::test_stop_closes_pool_and_does_not_recreate_it": 0.016428986999983408, + "tests/test_solver_lifecycle.py::test_stop_is_bounded_and_refuses_overlap_with_unfinished_generation": 0.027898641999911433, + "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_pool_node_outside_the_delay_gate_is_not_adopted": 0.02002868700003546, + "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_pool_node_outside_the_doppler_gate_is_not_adopted": 0.01816728400001466, + "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_second_chance_drops_the_worst_adopted_node": 0.017651398999930734, + "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_wide_solve_failing_rms_keeps_the_narrow_one": 0.017596075000028577, + "tests/test_solver_pool_adoption.py::TestAdoptDeclines::test_wide_solve_that_walks_away_is_refused": 0.017902439999943454, + "tests/test_solver_pool_adoption.py::TestAdoptScope::test_anchored_input_is_skipped": 0.017978834000075494, + "tests/test_solver_pool_adoption.py::TestAdoptScope::test_input_already_as_wide_as_its_pool_is_skipped": 0.017280893000020114, + "tests/test_solver_pool_adoption.py::TestAdoptScope::test_kill_switch_disables_the_stage": 0.016848994999918432, + "tests/test_solver_pool_adoption.py::TestAdoptWidens::test_adopted_node_track_joins_the_provenance": 0.018529125000043223, + "tests/test_solver_pool_adoption.py::TestAdoptWidens::test_agreeing_pool_node_is_adopted_and_resolved_wider": 0.01894771200005607, + "tests/test_solver_report.py::TestMedianP90::test_empty_is_none_for_both": 0.016473982000036358, + "tests/test_solver_report.py::TestMedianP90::test_input_order_does_not_matter": 0.016117465999968772, + "tests/test_solver_report.py::TestMedianP90::test_single_value_is_both": 0.01613945399998329, + "tests/test_solver_report.py::TestMedianP90::test_ten_values": 0.01604450700006055, + "tests/test_solver_report.py::TestMedianP90::test_two_values_take_the_upper_median_and_the_lower_p90": 0.016302630000041063, + "tests/test_solver_stats.py::TestClaimingPassthrough::test_claiming_mode_defaults_to_off_in_tests": 0.017068826000070203, + "tests/test_solver_stats.py::TestClaimingPassthrough::test_claiming_reflects_the_associator_and_solver_counters": 0.0177897190000067, + "tests/test_solver_stats.py::TestConsensusAndCounters::test_consensus_and_counters_reflect_state": 0.016583593999939694, + "tests/test_solver_stats.py::TestContaminationBlock::test_empty_window_abstains_rather_than_reporting_zero": 0.017201256000021203, + "tests/test_solver_stats.py::TestContaminationBlock::test_known_lane_records_are_not_counted": 0.01772378599997637, + "tests/test_solver_stats.py::TestContaminationBlock::test_pct_and_mean_over_judged_records": 0.016814129000067624, + "tests/test_solver_stats.py::TestContaminationBlock::test_unstamped_records_are_out_of_the_denominator": 0.01673918900002036, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_an_empty_lane_reports_zeroes_not_a_missing_block": 0.016859685000042646, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_counts_published_solves_narrower_than_their_pool": 0.016890953000029185, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_ineligibility_reasons_are_reported_per_reason": 0.017016768999951637, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_no_stamped_records_reports_null_not_zero": 0.01746684400001186, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_the_manoeuvre_reprieve_is_reported_beside_the_bucket_it_empties": 0.01697372799992536, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_the_two_n2_sparings_are_reported_beside_the_funnel": 0.016781067000010808, + "tests/test_solver_stats.py::TestDarkFollowBlock::test_unstamped_and_unpublished_records_stay_out_of_the_denominator": 0.016820802000040658, + "tests/test_solver_stats.py::TestEmptyState::test_empty_state_no_division_errors": 0.01767935199995918, + "tests/test_solver_stats.py::TestEndpoint::test_claiming_and_fragmentation_blocks_present": 0.02144254800003864, + "tests/test_solver_stats.py::TestEndpoint::test_default_window": 0.02021111099998052, + "tests/test_solver_stats.py::TestEndpoint::test_display_filter_block_present": 0.01925422400000798, + "tests/test_solver_stats.py::TestEndpoint::test_known_lane_and_known_claims_blocks_present": 0.01900102899992362, + "tests/test_solver_stats.py::TestEndpoint::test_minutes_clamp_high": 0.018967918000043937, + "tests/test_solver_stats.py::TestEndpoint::test_minutes_clamp_low": 0.018992292999996607, + "tests/test_solver_stats.py::TestFovStatsPassthrough::test_fov_mode_defaults_to_off_in_tests": 0.01680063299994572, + "tests/test_solver_stats.py::TestFovStatsPassthrough::test_fov_reflects_state_counters": 0.016861889999972846, + "tests/test_solver_stats.py::TestFragmentation::test_anchored_pct_reads_anchor_key_regardless_of_outcome_scope": 0.01656907000000274, + "tests/test_solver_stats.py::TestFragmentation::test_dark_key_decision_counters_are_surfaced": 0.017041545000040514, + "tests/test_solver_stats.py::TestFragmentation::test_dark_key_decision_counters_reset_with_state": 0.017686125000011543, + "tests/test_solver_stats.py::TestFragmentation::test_distinct_keys_and_solves_per_key": 0.016685858999949232, + "tests/test_solver_stats.py::TestFragmentation::test_empty_window_no_division_errors": 0.017724948000022778, + "tests/test_solver_stats.py::TestFragmentation::test_rejects_do_not_count_toward_fragmentation": 0.01716337300001669, + "tests/test_solver_stats.py::TestFragmentation::test_stale_coast_counters_are_reported": 0.01757647899995618, + "tests/test_solver_stats.py::TestFragmentation::test_supersession_counters_are_surfaced": 0.01865289400001302, + "tests/test_solver_stats.py::TestFunnelAndRejects::test_funnel_splits_n2_vs_n3plus": 0.017118198000048324, + "tests/test_solver_stats.py::TestFunnelAndRejects::test_reject_reason_without_prefix_kept_as_is": 0.018038064999984726, + "tests/test_solver_stats.py::TestFunnelAndRejects::test_rejected_prefix_is_stripped": 0.017694199999993998, + "tests/test_solver_stats.py::TestFunnelAndRejects::test_window_excludes_old_records": 0.01796228100005237, + "tests/test_solver_stats.py::TestGhosts::test_live_adsb_associated_by_key_prefix": 0.01630868299997701, + "tests/test_solver_stats.py::TestGhosts::test_live_adsb_associated_by_result_field": 0.016247826999972403, + "tests/test_solver_stats.py::TestGhosts::test_live_close_to_fresh_adsb_is_not_a_ghost": 0.016440700999964974, + "tests/test_solver_stats.py::TestGhosts::test_live_close_to_ground_truth_is_matched_not_ghost": 0.016236656999979004, + "tests/test_solver_stats.py::TestGhosts::test_live_dark_partition_adds_up": 0.016683253000053355, + "tests/test_solver_stats.py::TestGhosts::test_live_far_from_everything_is_a_ghost": 0.016447341999992204, + "tests/test_solver_stats.py::TestGhosts::test_live_positionless_dark_track_is_out_of_the_denominator": 0.016432934999954796, + "tests/test_solver_stats.py::TestGhosts::test_live_precision_is_none_with_no_dark_tracks": 0.018475082000009024, + "tests/test_solver_stats.py::TestGhosts::test_live_precision_pct_denominator_is_dark_only": 0.01932064100003572, + "tests/test_solver_stats.py::TestGhosts::test_live_stale_adsb_entry_does_not_rescue": 0.019485569000039504, + "tests/test_solver_stats.py::TestGhosts::test_one_shot_ghosts_are_counted_separately": 0.016655752999895412, + "tests/test_solver_stats.py::TestGhosts::test_precision_is_none_with_nothing_judged": 0.016272071999935633, + "tests/test_solver_stats.py::TestGhosts::test_real_world_node_solve_is_not_judged": 0.01683803200000966, + "tests/test_solver_stats.py::TestGhosts::test_synthetic_node_solve_is_judged": 0.016647015999922132, + "tests/test_solver_stats.py::TestGhosts::test_unstamped_record_is_not_judged": 0.016325250999955188, + "tests/test_solver_stats.py::TestGhosts::test_window_excludes_old_ghosts": 0.016357843999969646, + "tests/test_solver_stats.py::TestGhosts::test_windowed_counts_dark_lane_only": 0.01667505800003255, + "tests/test_solver_stats.py::TestGhosts::test_windowed_ghost_is_a_published_dark_solve_past_the_gate": 0.01697379799998089, + "tests/test_solver_stats.py::TestKnownLaneAndClaimsPassthrough::test_both_blocks_zero_on_a_fresh_process": 0.016599065000036717, + "tests/test_solver_stats.py::TestKnownLaneAndClaimsPassthrough::test_known_claims_reflects_the_claiming_counters": 0.016675196999983655, + "tests/test_solver_stats.py::TestKnownLaneAndClaimsPassthrough::test_known_lane_reflects_the_lane_counters": 0.016943762000039442, + "tests/test_solver_stats.py::TestLaneSplit::test_adsb_lane_records_are_counted_but_not_funnelled": 0.016759996000018873, + "tests/test_solver_stats.py::TestLaneSplit::test_follow_records_leave_the_dark_funnel": 0.016556266000009146, + "tests/test_solver_stats.py::TestLaneSplit::test_known_lane_window_position_error": 0.0167504890000032, + "tests/test_solver_stats.py::TestLaneSplit::test_known_records_leave_the_funnel_and_land_in_lane_split": 0.016628041000046778, + "tests/test_solver_stats.py::TestLaneSplit::test_lane_split_sums_to_the_whole_window": 0.01684099000004835, + "tests/test_solver_stats.py::TestLaneSplit::test_position_error_and_fragmentation_are_dark_only": 0.017051964000074804, + "tests/test_solver_stats.py::TestLiveStateSnapshots::test_concurrent_adsb_insert_does_not_raise": 0.016761259000020345, + "tests/test_solver_stats.py::TestLiveStateSnapshots::test_concurrent_ground_truth_trail_insert_does_not_raise": 0.016896532999965075, + "tests/test_solver_stats.py::TestLiveStateSnapshots::test_concurrent_track_insert_does_not_raise": 0.01672144600001957, + "tests/test_solver_stats.py::TestLiveStateSnapshots::test_duplicated_dark_follow_counters_come_from_the_locked_snapshot": 0.01678434300004028, + "tests/test_solver_stats.py::TestLiveStateSnapshots::test_multinode_tracks_iterated_under_the_track_lock": 0.016717628999970202, + "tests/test_solver_stats.py::TestNodePool::test_a_record_with_no_node_count_is_kept_not_dropped": 0.01721203499994317, + "tests/test_solver_stats.py::TestNodePool::test_buckets_sum_back_to_the_funnel": 0.01694070000002057, + "tests/test_solver_stats.py::TestNodePool::test_gt_error_beyond_the_gate_is_excluded_like_the_top_level_median": 0.017109032000007574, + "tests/test_solver_stats.py::TestNodePool::test_only_the_top_four_reject_reasons_are_listed": 0.017243921999977374, + "tests/test_solver_stats.py::TestNodePool::test_published_and_rejected_land_in_their_own_buckets": 0.017016137999974035, + "tests/test_solver_stats.py::TestNodePool::test_the_known_lane_gets_its_own_table": 0.017319236999981058, + "tests/test_solver_stats.py::TestPositionErrorGate::test_empty_position_error_is_none": 0.016976773000010326, + "tests/test_solver_stats.py::TestPositionErrorGate::test_error_gate_inclusion_and_exclusion": 0.01757788200001187, + "tests/test_solver_stats.py::TestPositionErrorGate::test_exact_median_and_p90": 0.017309136999926977, + "tests/test_solver_stats.py::TestRecordLane::test_key_prefix_decides_a_published_record": 0.016789112000026307, + "tests/test_solver_stats.py::TestRecordLane::test_keyless_reject_falls_back_to_the_input_identity": 0.017232113000034133, + "tests/test_solver_stats.py::TestRecordLane::test_known_flag_wins_over_everything": 0.016824079000002712, + "tests/test_solver_stats.py::TestRecordLane::test_non_transponder_id_is_dark": 0.017199553000011747, + "tests/test_solver_stats.py::TestResolveSkipBlock::test_a_skip_is_not_an_attempt_or_a_reject": 0.016647506000026624, + "tests/test_solver_stats.py::TestResolveSkipBlock::test_attempts_ratio_is_none_without_attempts": 0.01659342599998581, + "tests/test_solver_stats.py::TestResolveSkipBlock::test_attempts_ratio_is_skips_over_dark_attempts": 0.016695857000058822, + "tests/test_solver_stats.py::TestResolveSkipBlock::test_totals_split_by_lane": 0.016964011000027313, + "tests/test_solver_stats.py::TestResolveSkipBlock::test_window_effective_minutes_exposes_a_truncated_deque": 0.016514035999989574, + "tests/test_solver_stats.py::TestResolveSkipBlock::test_window_excludes_old_skips": 0.01674024199996893, + "tests/test_solver_stats.py::TestWindowEffectiveMinutes::test_counts_the_known_deque_too": 0.0167116570000303, + "tests/test_solver_stats.py::TestWindowEffectiveMinutes::test_never_exceeds_the_requested_window": 0.01681276700003309, + "tests/test_solver_stats.py::TestWindowEffectiveMinutes::test_reports_the_age_of_the_oldest_record_held": 0.017083163999984663, + "tests/test_solver_trimming.py::TestBeamGateNSplit::test_a_node_with_no_receiver_is_skipped_rather_than_gated_on": 0.020311799000012343, + "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n2_omni_node_skips_bearing_but_enforces_range": 0.019821949000004224, + "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n2_publishes_when_in_wedge_and_in_range": 0.017762368000035167, + "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n2_rejected_beam_outside_wedge_rule_is_bearing": 0.016879131000052894, + "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n3_publishes_outside_wedge_but_in_range": 0.017247352000026694, + "tests/test_solver_trimming.py::TestBeamGateNSplit::test_n3_rejected_beam_beyond_bistatic_range_rule_is_range": 0.016953420000049846, + "tests/test_solver_trimming.py::TestBeamInstrumentation::test_out_of_beam_records_per_node_diagnostics": 0.017068636000033166, + "tests/test_solver_trimming.py::TestFovGateActive::test_n2_closed_bin_rejects_even_though_the_wedge_would_pass": 0.02050519999994549, + "tests/test_solver_trimming.py::TestFovGateActive::test_n2_learned_bin_rescues_a_wedge_reject": 0.02069447600007379, + "tests/test_solver_trimming.py::TestFovGateActive::test_n3_or_semantics_never_loses_a_solve_kept_today": 0.02063559299995177, + "tests/test_solver_trimming.py::TestFovGateActive::test_shadow_agree_when_both_reject": 0.01848321700009592, + "tests/test_solver_trimming.py::TestFovGateActive::test_shadow_counts_verdicts_and_tags_history_without_changing_outcome": 0.020201259999964805, + "tests/test_solver_trimming.py::TestTrimEnvKnob::test_raised_threshold_publishes_untrimmed": 0.01744838799993431, + "tests/test_solver_trimming.py::TestTrimFloor::test_floor_keeps_three_lowest_residual_nodes": 0.01748722499996802, + "tests/test_solver_trimming.py::TestTrimGivesUp::test_persistent_bad_rms_ends_in_reject_with_trim_metadata": 0.017074949000004835, + "tests/test_solver_trimming.py::TestTrimPrunesSourceTracks::test_track_ids_by_node_prunes_the_dropped_node": 0.01763300500005016, + "tests/test_solver_trimming.py::TestTrimPrunesSourceTracks::test_without_track_ids_by_node_track_ids_are_unchanged": 0.01748182099998985, + "tests/test_solver_trimming.py::TestTrimRecoversPublish::test_trim_drops_bad_node_and_publishes": 0.018856999999968593, + "tests/test_solver_trimming.py::TestTrimResolveFailure::test_failed_resolve_falls_back_to_pre_trim_result": 0.01898397700000487, + "tests/test_solver_trimming.py::TestTrimSkippedWithoutResiduals::test_missing_residuals_disables_trimming": 0.01882251299997506, + "tests/test_solver_trimming.py::TestTrimmedTracksAreNotClaimed::test_a_candidate_built_on_the_dropped_track_still_runs": 0.017216694000012467, + "tests/test_solver_trimming.py::TestTrimmedTracksAreNotClaimed::test_the_dropped_nodes_track_is_left_unclaimed": 0.017476462000047377, + "tests/test_solver_worker.py::TestBeamCoverageFilter::test_ghost_outside_beam_rejected": 0.01776701000005687, + "tests/test_solver_worker.py::TestBeamCoverageFilter::test_result_inside_beam_accepted": 0.017260676999967473, + "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_adsb_solve_keeps_all_types": 0.01634007899997414, + "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_dark_solve_allowlisted": 0.016439436000041496, + "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_dark_solve_disallowed_types_unflag": 0.01624816600002532, + "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_flag_latches_across_solves": 0.017200532999936513, + "tests/test_solver_worker.py::TestCollectTrackAnomalies::test_unrelated_tracks_ignored": 0.016264658000011423, + "tests/test_solver_worker.py::TestCoverageCalibration::test_dark_solve_records_nothing": 0.0166615630000706, + "tests/test_solver_worker.py::TestCoverageCalibration::test_null_island_adsb_still_records_nothing": 0.016583146000016313, + "tests/test_solver_worker.py::TestCoverageCalibration::test_published_solve_with_a_fresh_adsb_match_records_no_calibration": 0.01687035399999104, + "tests/test_solver_worker.py::TestCoverageCalibration::test_stale_adsb_fix_still_records_nothing": 0.01670653699994773, + "tests/test_solver_worker.py::TestDarkSolveSmoothing::test_adsb_velocity_is_preferred_over_solved": 0.01748026699993943, + "tests/test_solver_worker.py::TestDarkSolveSmoothing::test_moving_dark_target_is_dead_reckoned_not_lagged": 0.01883180399994444, + "tests/test_solver_worker.py::TestDarkSolveSmoothing::test_stationary_noise_is_averaged": 0.017456052999989424, + "tests/test_solver_worker.py::TestFitRunsOnThisSideOfTheQueue::test_an_already_fitted_input_is_not_refitted": 0.0164416220000021, + "tests/test_solver_worker.py::TestFitRunsOnThisSideOfTheQueue::test_deferred_fit_is_run_here": 0.016548591000002943, + "tests/test_solver_worker.py::TestFitRunsOnThisSideOfTheQueue::test_no_epochs_means_no_confirmation": 0.016291327999965688, + "tests/test_solver_worker.py::TestInNodeBeam::test_no_beam_direction_returns_true_within_range": 0.016489210000088406, + "tests/test_solver_worker.py::TestInNodeBeam::test_out_of_range_returns_false_regardless_of_beam": 0.016270039000005454, + "tests/test_solver_worker.py::TestInNodeBeam::test_tx_lat_lon_derives_beam_azimuth_aircraft_inside": 0.016516120000005685, + "tests/test_solver_worker.py::TestInNodeBeam::test_tx_lat_lon_derives_beam_azimuth_aircraft_outside": 0.016324091999990742, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_an_unknown_anchor_key_admits_nothing": 0.016520409999998265, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_anchored_follow_of_a_young_key_is_still_gated": 0.016700906999972176, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_anchored_follow_of_an_established_key_publishes": 0.01661685000004809, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_confirmed_pairing_is_published": 0.016713791999961813, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_failing_chi2_is_withheld": 0.016492005999964476, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_n3_is_unaffected": 0.01680600300005608, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_the_bypass_can_be_switched_off": 0.016461096999989877, + "tests/test_solver_worker.py::TestN2ConfirmationGate::test_unfitted_pairing_is_withheld": 0.016342866000002232, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_a_free_fits_altitude_is_never_published": 0.016714130999957888, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_an_earlier_fit_epoch_is_propagated_to_the_solve_epoch": 0.0167276250000441, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_an_unconfirmed_pairing_never_reaches_the_swap": 0.016552537999928063, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_an_unusable_fit_keeps_the_solve_position": 0.01775884099998848, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_fit_position_is_published_and_the_solve_kept_alongside": 0.016769865000071604, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_the_pin_can_be_switched_off_without_losing_the_swap": 0.01672301899998274, + "tests/test_solver_worker.py::TestN2FitPositionPublish::test_the_swap_can_be_switched_off": 0.01680683400002181, + "tests/test_solver_worker.py::TestN2GateShipsDisabled::test_flag_is_off_by_default": 0.01625445999997055, + "tests/test_solver_worker.py::TestN2GateShipsDisabled::test_unfitted_n2_publishes_when_the_gate_is_off": 0.01668711100001019, + "tests/test_solver_worker.py::TestProcessSolverItem::test_exception_increments_failures": 0.01736741700000266, + "tests/test_solver_worker.py::TestProcessSolverItem::test_high_latency_triggers_alert": 0.017487462000019605, + "tests/test_solver_worker.py::TestProcessSolverItem::test_missing_enqueued_at_skips_latency": 0.01734379200007652, + "tests/test_solver_worker.py::TestProcessSolverItem::test_success_updates_state": 0.016862301000060143, + "tests/test_solver_worker.py::TestProcessSolverItem::test_unsuccessful_result_not_stored": 0.01673344799996812, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_2_node_candidate_never_refreshes": 0.01648021300002256, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_3_node_candidate_refreshes_an_aged_claim": 0.01649855900006969, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_candidate_carrying_an_unpublished_track_runs": 0.016625364999981684, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_fresh_claim_still_covers_a_3_node_candidate": 0.01641777499997943, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_narrow_publish_does_not_lower_the_bar": 0.01670218799995382, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_narrower_view_after_a_wider_one_is_skipped": 0.01657262699995954, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_rejected_candidate_does_not_block_an_identical_twin": 0.01726088600003095, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_second_copy_of_a_published_candidate_is_skipped": 0.01677396600001657, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_skip_is_recorded_with_the_claim_that_blocked_it": 0.01649646200002053, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_skipped_item_never_reaches_the_solver": 0.017047155999989627, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_subset_for_another_aircraft_survives_a_rejected_superset": 0.017059248000009575, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_tagged_candidate_is_counted_but_not_as_dark": 0.01679036700005554, + "tests/test_solver_worker.py::TestResolveSuppression::test_a_wider_view_of_the_same_tracks_runs": 0.01669190900003059, + "tests/test_solver_worker.py::TestResolveSuppression::test_an_admitted_candidate_reports_no_blockers": 0.016648027999963233, + "tests/test_solver_worker.py::TestResolveSuppression::test_an_input_without_track_provenance_always_runs": 0.016369865999934063, + "tests/test_solver_worker.py::TestResolveSuppression::test_claims_expire": 0.01705705099999477, + "tests/test_solver_worker.py::TestResolveSuppression::test_every_blocking_claim_must_be_aged_to_refresh": 0.01653134000002865, + "tests/test_solver_worker.py::TestResolveSuppression::test_only_the_published_width_is_claimed": 0.017121514999985266, + "tests/test_solver_worker.py::TestResolveSuppression::test_only_the_refreshed_admission_sets_the_flag": 0.016674679000004744, + "tests/test_solver_worker.py::TestResolveSuppression::test_skips_never_enter_the_solve_history": 0.016798379000022123, + "tests/test_solver_worker.py::TestResolveSuppression::test_the_check_alone_claims_nothing": 0.016606819999992695, + "tests/test_solver_worker.py::TestResolveSuppression::test_the_check_names_every_blocking_claim": 0.016696117999970284, + "tests/test_solver_worker.py::TestResolveSuppression::test_zero_interval_disables_suppression": 0.016156866000073933, + "tests/test_solver_worker.py::TestResolveSuppression::test_zero_refresh_restores_the_width_rule": 0.016462149000005866, + "tests/test_solver_worker.py::TestRmsDelayFilter::test_high_rms_delay_rejected": 0.016803008000010777, + "tests/test_solver_worker.py::TestRmsDelayFilter::test_high_rms_doppler_rejected": 0.016783320999991247, + "tests/test_solver_worker.py::TestRmsDelayFilter::test_low_rms_delay_accepted": 0.017091558999993595, + "tests/test_solver_worker.py::TestRmsDelayFilter::test_low_rms_doppler_accepted": 0.018994337999970412, + "tests/test_solver_worker.py::TestRmsDelayFilter::test_n3_rms_doppler_has_its_own_tighter_ceiling": 0.017297605000010208, + "tests/test_solver_worker.py::TestRmsDelayFilter::test_n4_keeps_the_physical_rms_doppler_ceiling": 0.017418163000002096, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_anchored_input_keeps_the_anchor_altitude": 0.016137760999981765, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_does_not_inherit_from_a_two_node_key": 0.016570862999969904, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_inherits_altitude_from_an_established_key": 0.016704833999938273, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_keeps_the_grid_altitude_with_no_key_in_range": 0.016575962999979765, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_n2_uses_initial_guess_altitude_directly": 0.022218522999992274, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_n3_picks_minimum_rms_altitude": 0.017131966000022203, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_nearest_qualifying_key_wins": 0.016170831999943402, + "tests/test_solver_worker.py::TestSolveBestAltitude::test_stale_key_is_not_a_donor": 0.016283764999968753, + "tests/test_solver_worker.py::TestSolveBestAltitudeDirect::test_adsb_altitude_already_in_layers_not_duplicated": 0.016248528999938117, + "tests/test_solver_worker.py::TestSolveBestAltitudeDirect::test_adsb_altitude_outside_layers_is_included_in_sweep": 0.01615886099995123, + "tests/test_solver_worker.py::TestSolverProcessPool::test_broken_pool_falls_back_inline_and_recreates": 0.020050798999989183, + "tests/test_solver_worker.py::TestSolverProcessPool::test_hung_child_times_out_counts_and_falls_back_inline": 0.06927653199994666, + "tests/test_solver_worker.py::TestSolverProcessPool::test_pool_call_is_inline_without_a_pool": 0.01672384100004365, + "tests/test_solver_worker.py::TestSolverProcessPool::test_round_trip_through_a_real_spawn_pool": 0.8371799399999986, + "tests/test_solver_worker.py::TestStaleItemSkip::test_fresh_item_is_solved": 0.017175387000008868, + "tests/test_solver_worker.py::TestStaleItemSkip::test_stale_item_is_skipped": 0.018046346999994967, + "tests/test_solver_worker.py::TestSweepAltitudes::test_all_altitudes_raise_reraises_last_exception": 0.016336542000033205, + "tests/test_solver_worker.py::TestSweepAltitudes::test_no_successful_result_and_no_exception_returns_none": 0.016158028000006652, + "tests/test_solver_worker.py::TestSweepAltitudes::test_one_fails_one_succeeds_returns_good_result": 0.016413818000046376, + "tests/test_solver_worker.py::TestTrackPairExclusivity::test_a_pairing_keeps_its_own_claim_when_re_solved": 0.016287853000108043, + "tests/test_solver_worker.py::TestTrackPairExclusivity::test_a_worse_incumbent_is_displaced": 0.016418878000024506, + "tests/test_solver_worker.py::TestTrackPairExclusivity::test_better_fit_wins_a_shared_track": 0.01653008599998884, + "tests/test_solver_worker.py::TestTrackPairExclusivity::test_claims_expire": 0.016361210000070514, + "tests/test_solver_worker.py::TestTrackPairExclusivity::test_detection_level_input_is_unaffected": 0.016368922999959068, + "tests/test_solver_worker.py::TestTrackPairExclusivity::test_disjoint_pairings_both_claim": 0.01620894400002726, + "tests/test_solver_worker.py::TestWorkerLoopResilience::test_poison_item_is_swallowed_counted_and_loop_continues": 0.0674953860000187, + "tests/test_stage2_durability.py::TestArchiveBufferReclamation::test_a_successful_write_clears_the_failure_clock": 0.018592893999993976, + "tests/test_stage2_durability.py::TestArchiveBufferReclamation::test_connected_node_keeps_its_frames_however_long_the_outage": 0.017562737999980982, + "tests/test_stage2_durability.py::TestArchiveBufferReclamation::test_departed_node_buffer_is_abandoned_after_the_ttl": 0.018626077000021724, + "tests/test_stage2_durability.py::TestArchiveFlushExclusivity::test_concurrent_flushes_neither_duplicate_nor_lose_frames": 0.17416964099993493, + "tests/test_stage2_durability.py::TestArchiveFlushExclusivity::test_inflight_marker_is_cleared_on_write_failure": 0.01940872499994839, + "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_corrupt_payload_is_rejected": 0.018501272999969842, + "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_legacy_bare_payload_still_restores": 0.01969113499995956, + "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_payload_and_checksum_are_one_file": 0.017251690000023245, + "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_round_trip_restores": 0.01759973200000786, + "tests/test_stage2_durability.py::TestSnapshotAtomicity::test_stale_side_file_is_ignored": 0.017559256000026835, + "tests/test_start_script_guards.py::test_a_box_with_no_destination_is_not_also_told_about_the_token[staging]": 0.022109752000005756, + "tests/test_start_script_guards.py::test_a_box_with_no_destination_is_not_also_told_about_the_token[test]": 0.022279263999962495, + "tests/test_start_script_guards.py::test_a_missing_digitalocean_token_never_refuses_a_boot[production]": 0.022111384999959682, + "tests/test_start_script_guards.py::test_a_missing_digitalocean_token_never_refuses_a_boot[staging]": 0.022105276999980106, + "tests/test_start_script_guards.py::test_production_boots_when_both_are_set": 0.022214315999974588, + "tests/test_start_script_guards.py::test_production_refuses_to_boot_without_an_alert_destination[ALERT_WEBHOOK_AUTH]": 0.024061730000028092, + "tests/test_start_script_guards.py::test_production_refuses_to_boot_without_an_alert_destination[ALERT_WEBHOOK_URL]": 0.02346176500003594, + "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_AUTH- ]": 0.02244219200002817, + "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_AUTH-]": 0.022350679999988188, + "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_URL- ]": 0.022328600000037113, + "tests/test_start_script_guards.py::test_production_treats_an_empty_or_blank_value_as_absent[ALERT_WEBHOOK_URL-]": 0.02303954300003852, + "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[staging- ]": 0.023071291999997356, + "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[staging-]": 0.023028358999965803, + "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[test- ]": 0.021073085000011815, + "tests/test_start_script_guards.py::test_the_other_environments_warn_about_a_destination_they_cannot_authenticate[test-]": 0.02183410099996763, + "tests/test_start_script_guards.py::test_the_other_environments_warn_rather_than_refuse[staging]": 0.0215783429999874, + "tests/test_start_script_guards.py::test_the_other_environments_warn_rather_than_refuse[test]": 0.021335687999965103, + "tests/test_state_counters.py::test_reset_zeroes_every_counter_and_keeps_its_type": 0.01929312799990157, + "tests/test_state_counters.py::test_roster_covers_every_counter_declared_in_the_source": 0.023469228999999814, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_env_change_since_snapshot_beats_saved_config": 0.019704770000032568, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_fractions_and_counts_survive_round_trip": 0.019381452000061472, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_pre_env_snapshot_discarded_when_env_overrides": 0.019408332999944378, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_pre_env_snapshot_restores_when_env_is_default": 0.01944133500001044, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_retired_keys_are_not_resurrected": 0.019645868999987215, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_scene_keys_survive_round_trip": 0.019456735000005665, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_unchanged_env_lets_runtime_put_win": 0.019495486999971945, + "tests/test_state_snapshot.py::TestSimulationConfigPersistence::test_updated_at_restored_verbatim_not_restamped": 0.019485006000024896, + "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_env_values_are_read": 0.02015148599997474, + "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_garbage_value_falls_back_without_raising": 0.020162817999960225, + "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_out_of_range_value_falls_back": 0.019979291999959514, + "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_over_budget_mix_is_refused_whole": 0.019968952999931844, + "tests/test_state_snapshot.py::TestSimulationEnvSeeding::test_unset_env_uses_fallbacks": 0.01991783799996938, + "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_full_round_trip_with_all_fields": 0.018880302999946252, + "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_restore_handles_corrupted_json": 0.028207220999945548, + "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_restore_handles_empty_snapshot": 0.019506325999998353, + "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_restore_returns_false_when_no_file": 0.01911622400007218, + "tests/test_state_snapshot.py::TestSnapshotEdgeCases::test_save_uses_atomic_write": 0.019460170999991533, + "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_accuracy_samples_survive_round_trip": 0.019427709000012783, + "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_anomaly_log_survives_round_trip": 0.019563704000063353, + "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_chain_entries_survive_round_trip": 0.01946376699999064, + "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_reputations_survive_round_trip": 0.019579783999972733, + "tests/test_state_snapshot.py::TestSnapshotRoundTrip::test_trust_scores_survive_round_trip": 0.019639826999991783, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_falls_back_to_r2_when_local_missing": 0.11721580300002188, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_prefers_local_over_r2": 0.1094308760000331, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_returns_false_when_no_snapshot_anywhere": 0.11000948000003063, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_returns_false_when_r2_disabled_and_no_local": 0.02130372799996394, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_restore_returns_false_when_r2_has_corrupt_json": 0.5373271479999744, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_atomic_no_tmp_file_left_behind": 0.11792275600004132, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_local_content_matches_r2": 0.1171557239999288, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_local_written_even_if_r2_fails": 0.10117485500006751, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_local_written_when_r2_disabled": 0.019329596000034144, + "tests/test_state_snapshot_r2.py::TestStateSnapshotR2::test_save_snapshot_replicates_to_r2": 0.1094223840000268, + "tests/test_storage.py::TestArchiveStorage::test_a_legacy_spelled_node_archives_its_real_position": 0.028990390999979354, + "tests/test_storage.py::TestArchiveStorage::test_archive_returns_key": 0.02291333599993095, + "tests/test_storage.py::TestArchiveStorage::test_list_finds_archived": 0.023284261000014794, + "tests/test_storage.py::TestArchiveStorage::test_path_traversal_blocked": 0.020561635000035494, + "tests/test_storage.py::TestArchiveStorage::test_read_archived_file": 0.02476250699993443, + "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_node_filter": 0.020802596999999423, + "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_nonexistent_returns_empty": 0.020807716999968306, + "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_pagination_offset": 0.018320341999981338, + "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_returns_files_in_range": 0.020589828000026955, + "tests/test_storage_listing.py::TestListArchivedFiles::test_date_prefix_sort_desc": 0.01989972400002671, + "tests/test_storage_listing.py::TestListArchivedFiles::test_file_entry_has_required_fields": 0.01735299900008158, + "tests/test_storage_listing.py::TestListArchivedFiles::test_no_date_prefix_missing_base_returns_empty": 0.017662977999975737, + "tests/test_storage_listing.py::TestListArchivedFiles::test_no_date_prefix_returns_files": 0.017954055999950924, + "tests/test_storage_refresh.py::TestBuildStorageResult::test_archive_mb_matches_bytes": 0.0170640470000194, + "tests/test_storage_refresh.py::TestBuildStorageResult::test_days_until_full_is_zero_when_no_write_rate": 0.01691306300000406, + "tests/test_storage_refresh.py::TestBuildStorageResult::test_per_node_write_rate_computed_from_first_seen_ts": 0.01686569500003543, + "tests/test_storage_refresh.py::TestBuildStorageResult::test_returns_json_bytes_with_required_keys": 0.017187960000001112, + "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_du_exception_triggers_fallback": 0.016802917999996225, + "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_node_day_entry_sets_per_node_bytes": 0.020712258000003203, + "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_root_line_sets_total_bytes": 0.017300551000062114, + "tests/test_storage_refresh.py::TestScanArchiveDirBytes::test_total_bytes_zero_falls_back_to_sum": 0.017247430000054464, + "tests/test_storage_refresh.py::TestScanArchiveDirInodes::test_inode_entry_sets_per_node_files": 0.017289511000001312, + "tests/test_storage_refresh.py::TestScanArchiveDirInodes::test_inode_root_line_sets_total_files": 0.017110645000002478, + "tests/test_storage_refresh.py::TestScanArchiveDirNonExistent::test_returns_zeros_when_dir_missing": 0.016791535000038493, + "tests/test_streaming_routes.py::TestAircraftWSInitialSnapshot::test_initial_snapshot_sent_if_aircraft_present": 0.12920930199999248, + "tests/test_streaming_routes.py::TestAircraftWSInitialSnapshot::test_no_initial_send_when_empty": 0.1303914309999641, + "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_accepts_no_token": 0.12874776599994675, + "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_accepts_valid_token": 0.12974176800008763, + "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_rejects_invalid_token": 0.13019240799997078, + "tests/test_streaming_routes.py::TestLiveWebSocket::test_live_ws_sends_initial_snapshot": 0.13174235199994655, + "tests/test_task_executor.py::test_cancellation_waits_for_running_work": 0.029567793000012443, + "tests/test_task_executor.py::test_each_context_has_a_fresh_executor_and_propagates_work_errors": 0.01805005500000334, + "tests/test_task_executor.py::test_failed_executor_creation_does_not_prevent_retry": 0.01734204900003533, + "tests/test_task_executor.py::test_shutdown_deadline_reports_work_that_cannot_be_interrupted": 0.030069675000049756, + "tests/test_task_helpers.py::TestBistaticDelayUs::test_aircraft_off_path_has_positive_delay": 0.01707644100008565, + "tests/test_task_helpers.py::TestBistaticDelayUs::test_aircraft_on_direct_path_has_zero_delay": 0.01669015599998147, + "tests/test_task_helpers.py::TestBistaticDelayUs::test_delay_increases_with_distance": 0.017112027000052876, + "tests/test_task_helpers.py::TestBistaticDelayUs::test_delay_unit_is_microseconds": 0.016927590999955555, + "tests/test_task_helpers.py::TestHaversineKm::test_equator_one_degree_lon": 0.016574749000028532, + "tests/test_task_helpers.py::TestHaversineKm::test_known_city_pair": 0.01690724300004831, + "tests/test_task_helpers.py::TestHaversineKm::test_nonnegative": 0.01662386299994978, + "tests/test_task_helpers.py::TestHaversineKm::test_one_degree_lat": 0.01635881300001074, + "tests/test_task_helpers.py::TestHaversineKm::test_same_point_returns_zero": 0.016812516000015876, + "tests/test_task_helpers.py::TestHaversineKm::test_symmetry": 0.016683273000012377, + "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_appended_to_state": 0.019842668000023878, + "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_cap_enforced": 0.019518098000048667, + "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_sends_ack": 0.019760934000089492, + "tests/test_tcp_custody_protocol.py::TestChainEntry::test_chain_entry_unregistered_node_not_verified": 0.020029138000040803, + "tests/test_tcp_custody_protocol.py::TestIQCommitment::test_iq_commitment_appended_to_state": 0.020237035999969066, + "tests/test_tcp_custody_protocol.py::TestIQCommitment::test_iq_commitment_cap_enforced": 0.016890760999956456, + "tests/test_tcp_custody_protocol.py::TestIQCommitment::test_iq_commitment_sends_ack": 0.017425795000008293, + "tests/test_tcp_custody_protocol.py::TestRegisterKey::test_register_key_sends_key_ack": 0.01946220299998913, + "tests/test_tcp_custody_protocol.py::TestRegisterKey::test_register_key_stores_identity": 0.019227042000068195, + "tests/test_tcp_custody_protocol.py::TestRegisterKey::test_register_key_with_custom_signing_mode": 0.02005813099998477, + "tests/test_tcp_handler.py::TestApplySyntheticAdsb::test_no_adsb_field_is_noop": 0.016836172999944665, + "tests/test_tcp_handler.py::TestApplySyntheticAdsb::test_skips_invalid_entries": 0.016565804000038042, + "tests/test_tcp_handler.py::TestApplySyntheticAdsb::test_stores_adsb_positions": 0.016516930999955548, + "tests/test_tcp_handler.py::TestConfigReplacementEvictsCachedPipeline::test_a_reconnect_config_rebuilds_the_pipeline_with_the_new_geometry": 0.03463518300003443, + "tests/test_tcp_handler.py::TestEnqueueDetection::test_enqueue_no_timestamp_skipped": 0.01648070200002394, + "tests/test_tcp_handler.py::TestEnqueueDetection::test_enqueue_valid_detection": 0.01703674499998442, + "tests/test_tcp_handler.py::TestHandshake::test_config_ack_sent": 0.01983970200001295, + "tests/test_tcp_handler.py::TestHandshake::test_disconnection_marks_status": 0.019472164000035264, + "tests/test_tcp_handler.py::TestHandshake::test_hello_config_registers_node": 0.02014044399999193, + "tests/test_tcp_handler.py::TestHandshake::test_malformed_json_skipped": 0.01722169300001042, + "tests/test_tcp_handler.py::TestHandshake::test_synthetic_node_flag": 0.017822961999968356, + "tests/test_tcp_handler.py::TestHandshake::test_the_stored_config_is_canonical": 0.01978707300008864, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_a_hardware_node_id": 0.01878254799999013, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_e2e_prefix": 0.017689961000030507, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_empty": 0.019218456999965383, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_non_synthetic": 0.018977865000067595, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_realnode_prefix": 0.019217464000007567, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_synthetic_prefix": 0.016632726000068487, + "tests/test_tcp_handler.py::TestIsSyntheticNode::test_test_prefix": 0.019200273000024026, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_config_drift_preserves_node_registration": 0.017414123999969888, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_config_drift_sends_config_request": 0.017963172000008854, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_for_unknown_node_is_silently_ignored": 0.017053988999919056, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_no_config_drift_sends_no_config_request": 0.017376181000031465, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_records_in_analytics": 0.017308636000052502, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_updates_last_heartbeat": 0.017684578999990208, + "tests/test_tcp_heartbeat.py::TestTCPHeartbeat::test_heartbeat_updates_node_status": 0.017287538000005043, + "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_exceeds_upper_bound": 0.01678572500009068, + "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_list_type": 0.017242703999954756, + "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_negative": 0.0190323269999908, + "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_non_numeric_string": 0.016974207999965074, + "tests/test_tcp_validate_config.py::TestBeamWidthValidation::test_beam_width_zero": 0.016900891000034335, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_exact_boundary_values": 0.017364451000048575, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_extra_fields_ignored": 0.01751443999995672, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_floats_with_many_decimals": 0.01701954400004979, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_large_valid_max_range": 0.016812877000006665, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_lat_lon_as_integers": 0.016981801999975232, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_rx_lat_out_of_range_ignores_valid_flat": 0.017597516999956042, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_rx_variants_take_precedence_over_flat": 0.017629967999994278, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_scientific_notation_lat_lon": 0.017441996999934872, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_very_small_positive_beam_width": 0.016832543000020905, + "tests/test_tcp_validate_config.py::TestEdgeCases::test_very_small_positive_max_range": 0.01692219999995359, + "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_explicit_null_rx_lat_rx_lon_is_accepted": 0.016912143000070046, + "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_flat_lat_lon_null_is_not_treated_as_positionless": 0.01693687800002408, + "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_other_fields_are_still_validated": 0.017027740000003178, + "tests/test_tcp_validate_config.py::TestExplicitNullIsPositionless::test_rx_lat_null_alone_is_still_missing": 0.01681193400003167, + "tests/test_tcp_validate_config.py::TestMaxRangeKmValidation::test_max_range_negative": 0.017068816999938008, + "tests/test_tcp_validate_config.py::TestMaxRangeKmValidation::test_max_range_non_numeric_string": 0.017162320000011277, + "tests/test_tcp_validate_config.py::TestMaxRangeKmValidation::test_max_range_zero": 0.017149606999907974, + "tests/test_tcp_validate_config.py::TestMissingLatLon::test_empty_config": 0.016393029000028037, + "tests/test_tcp_validate_config.py::TestMissingLatLon::test_neither_lat_lon_nor_rx_variants_present": 0.016668293999998696, + "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_lat_present": 0.017649420999987342, + "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_lon_present": 0.017820314000005055, + "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_rx_lat_present": 0.01655192700002317, + "tests/test_tcp_validate_config.py::TestMissingLatLon::test_only_rx_lon_present": 0.016915649000111443, + "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_both_non_numeric": 0.01656063300004007, + "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_lat_non_numeric_string": 0.016506271000025663, + "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_lon_list_type": 0.016515798999989784, + "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_rx_lat_string_non_numeric": 0.016368374000023778, + "tests/test_tcp_validate_config.py::TestNonNumericLatLon::test_rx_lon_string_non_numeric": 0.017513018000045122, + "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_beam_width_none_explicitly": 0.017042626000090877, + "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_both_optional_fields_none": 0.01720288699999628, + "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_max_range_none_explicitly": 0.01741172900000265, + "tests/test_tcp_validate_config.py::TestOptionalFieldsAbsent::test_no_beam_width_no_max_range": 0.01721644200006267, + "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_both_out_of_range": 0.016826904000026843, + "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lat_exceeds_lower_bound": 0.01655524300002753, + "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lat_exceeds_upper_bound": 0.016525055999977667, + "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lon_exceeds_lower_bound": 0.016868000000044958, + "tests/test_tcp_validate_config.py::TestOutOfRangeLatLon::test_lon_exceeds_upper_bound": 0.016841631000033885, + "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_beam_width_as_numeric_string": 0.016720594999924288, + "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_lat_as_integer_string": 0.017222413000013148, + "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_lat_lon_as_numeric_strings": 0.01693864100002429, + "tests/test_tcp_validate_config.py::TestStringNumberConversion::test_max_range_as_numeric_string": 0.016934321000007913, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_beam_width_at_boundary_360": 0.016952768999999535, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_beam_width_near_lower_boundary": 0.01700939599999174, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_beam_width_deg": 0.017085303999976986, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_both_optional_fields": 0.016815060999988418, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_lat_lon": 0.01657029099999363, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_max_range_km": 0.01700270500003853, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_config_with_rx_lat_rx_lon": 0.016834006000010504, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_lat_lon_boundaries": 0.016859403000012207, + "tests/test_tcp_validate_config.py::TestValidNodeConfigHappyPath::test_valid_lat_lon_negative_boundaries": 0.016595036999945023, + "tests/test_towers_vhost_coverage.py::test_no_exact_match_location_outranks_the_proxied_paths": 0.020206329000018286, + "tests/test_towers_vhost_coverage.py::test_the_shared_snippet_proxies_every_deduplicated_path": 0.020397828999989542, + "tests/test_towers_vhost_coverage.py::test_the_smoke_test_defines_every_url_it_is_expected_to_probe": 0.01796543600005407, + "tests/test_towers_vhost_coverage.py::test_the_smoke_test_probes_every_routed_vhost": 0.01720754599995189, + "tests/test_towers_vhost_coverage.py::test_the_template_routes_the_roles_we_think_it_does": 0.017417922000049657, + "tests/test_track_archive.py::test_directory_failure_retains_batch": 0.021178338000026997, + "tests/test_track_archive.py::test_failed_flush_does_not_advance_success_health": 0.02086576499993953, + "tests/test_track_archive.py::test_repeated_failures_do_not_grow_pending_batch": 0.02374797999993916, + "tests/test_track_archive.py::test_write_failure_retries_old_batch_before_new_records": 0.025062198000000535, + "tests/test_track_claim.py::TestClusterCoverage::test_only_the_first_pair_of_a_cluster_is_claimed": 0.01761284600002, + "tests/test_track_claim.py::TestCompetition::test_a_better_competitor_takes_the_track": 0.020761038000046028, + "tests/test_track_claim.py::TestCompetition::test_a_detection_level_input_is_not_arbitrated": 0.017616762999978164, + "tests/test_track_claim.py::TestCompetition::test_a_worse_competitor_is_refused": 0.02095619499999657, + "tests/test_track_claim.py::TestCompetition::test_an_unclaimed_pairing_wins": 0.019471562999967773, + "tests/test_track_claim.py::TestCompetition::test_disjoint_pairings_do_not_contend": 0.01811822199999824, + "tests/test_track_claim.py::TestExpiry::test_a_claim_expires": 0.017504002000009677, + "tests/test_track_claim.py::TestExpiry::test_expiry_sweeps_every_stale_entry": 0.017134388999977546, + "tests/test_track_claim.py::TestSelfContention::test_a_drifting_rescore_loses_to_its_own_high_water_mark": 0.018003378000003067, + "tests/test_track_claim.py::TestSelfContention::test_an_identical_rescore_keeps_its_claim": 0.01757564599995476, + "tests/test_track_claim.py::TestSelfContention::test_the_high_water_mark_is_not_reset_by_a_refusal": 0.018078149000018584, + "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[-33.9-151.2-8432.1--2001.7]": 0.016814707000037288, + "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[0.0-0.0-50000.0--50000.0]": 0.016651083000056133, + "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[35.0--82.0-0.0-0.0]": 0.01811706200004437, + "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[35.0--82.0-1234.5--876.3]": 0.01736357999993743, + "tests/test_track_filter.py::TestEnuRoundTrip::test_round_trip_within_1e9_deg[65.0-178.0--12000.0-30000.0]": 0.016962855999963722, + "tests/test_track_filter.py::TestHeldSameEpochPassthrough::test_a_burst_right_after_init_holds_the_init_position": 0.017440862999933415, + "tests/test_track_filter.py::TestHeldSameEpochPassthrough::test_same_epoch_second_solve_keeps_the_published_position": 0.018064523000020927, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_a_correlated_but_psd_cov_is_still_accepted": 0.01698530000004439, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_indefinite_cov_falls_back_to_the_base_floor": 0.017373245999976916, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_indefinite_cov_keeps_the_filter_psd_and_learned_velocity_alive[1.4]": 0.053518383000039194, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_indefinite_cov_keeps_the_filter_psd_and_learned_velocity_alive[20.0]": 0.05456102799996643, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_negative_velocity_variance_degrades_to_zero_sigma": 0.01762568099991313, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_repeated_updates_at_a_tiny_r_stay_psd": 0.055302667999967525, + "tests/test_track_filter.py::TestIndefiniteCovariance::test_tiny_position_sigma_cannot_produce_a_tight_r": 0.018398889999957646, + "tests/test_track_filter.py::TestJosephCovariance::test_repeated_ill_conditioned_updates_stay_psd_and_symmetric": 0.018535125999960655, + "tests/test_track_filter.py::TestKFBasics::test_drop_key_and_reset_clear_state": 0.017716551000034997, + "tests/test_track_filter.py::TestKFBasics::test_duplicate_and_out_of_order_hold_the_filter_position": 0.01708819099997072, + "tests/test_track_filter.py::TestKFBasics::test_first_solve_is_raw_passthrough": 0.016863671999999497, + "tests/test_track_filter.py::TestKFBasics::test_innovation_gate_reanchors_on_large_jump": 0.01810979699996551, + "tests/test_track_filter.py::TestKFBasics::test_large_gap_reinits_then_next_solve_behaves_like_second_ever": 0.017232031999924402, + "tests/test_track_filter.py::TestKFBasics::test_smoothed_output_shape": 0.017567240999994738, + "tests/test_track_filter.py::TestKFReducesError::test_filtered_rmse_beats_raw_by_20_percent": 0.05812059199996611, + "tests/test_track_filter.py::TestKFWeighting::test_adsb_velocity_preferred_over_solved": 0.01750679700001001, + "tests/test_track_filter.py::TestKFWeighting::test_junk_solved_velocity_does_not_drag_position": 0.01777747500005944, + "tests/test_track_filter.py::TestKFWeighting::test_tight_covariance_trusts_measurement_more_than_loose": 0.01762045000003809, + "tests/test_track_filter.py::TestKfActionStamp::test_a_manoeuvre_rescue_is_stamped_as_such": 0.019848127999921417, + "tests/test_track_filter.py::TestKfActionStamp::test_a_reanchor_is_stamped_with_the_breaching_innovation": 0.017922485999974924, + "tests/test_track_filter.py::TestKfActionStamp::test_off_and_ewma_modes_do_not_stamp": 0.01699549000005618, + "tests/test_track_filter.py::TestKfActionStamp::test_stamped_on_every_path": 0.017527795999967566, + "tests/test_track_filter.py::TestLearnedVelocity::test_drop_key_and_reset_clear_learned_velocity": 0.01742926199995054, + "tests/test_track_filter.py::TestLearnedVelocity::test_learns_velocity_from_position_sequence_not_init_prior": 0.01773012600006041, + "tests/test_track_filter.py::TestLearnedVelocity::test_unknown_key_returns_none": 0.017235450999976365, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_a_breach_inside_the_manoeuvre_envelope_is_rescued_not_reanchored": 0.02021537600001011, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_a_ten_kilometre_jump_still_reanchors": 0.018122390999963045, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_manoeuvre_engagement_decays_after_the_turn": 0.023745924999957424, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_standard_rate_turn_does_not_reanchor[12.0]": 0.019654292999973677, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_standard_rate_turn_does_not_reanchor[4.6]": 0.020817673999999897, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_straight_flight_never_engages_the_manoeuvre_path": 0.022987483999941105, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_the_reported_velocity_sigma_grows_while_manoeuvring": 0.0209731080000779, + "tests/test_track_filter.py::TestManoeuvreAdaptiveQ::test_the_same_turn_reanchors_with_the_adaptive_path_disabled": 0.02048151599990433, + "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_a_turn_engages_the_level": 0.020009610999920824, + "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_straight_flight_reads_zero": 0.02065637200001902, + "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_the_combined_accessor_agrees_with_both_halves": 0.02024849800005768, + "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_the_level_goes_with_the_entry": 0.019915663999938715, + "tests/test_track_filter.py::TestManoeuvreLevelAccessor::test_unknown_key_returns_none": 0.0171274159999939, + "tests/test_track_filter.py::TestModes::test_ewma_delegates_to_supplied_fn": 0.016889719999994668, + "tests/test_track_filter.py::TestModes::test_ewma_without_fn_is_raw_passthrough": 0.016964209000093433, + "tests/test_track_filter.py::TestModes::test_off_is_raw_passthrough": 0.017430392999983724, + "tests/test_track_filter.py::TestModes::test_unknown_value_falls_back_to_kf": 0.017294619999972838, + "tests/test_track_filter.py::TestN2WeakUpdate::test_adsb_identified_n2_keeps_the_default_sigma": 0.01748906400001715, + "tests/test_track_filter.py::TestN2WeakUpdate::test_default_n2_sigma": 0.017029321000052278, + "tests/test_track_filter.py::TestN2WeakUpdate::test_n2_moves_the_state_less_than_n4": 0.017451463999975658, + "tests/test_track_filter.py::TestN2WeakUpdate::test_n2_sigma_is_tunable": 0.017414965999989818, + "tests/test_track_filter.py::TestN2WeakUpdate::test_n3_and_above_keep_the_default_sigma": 0.017126204000021517, + "tests/test_track_filter.py::TestN2WeakUpdate::test_simulator_object_id_is_judged_dark": 0.016907493000019258, + "tests/test_track_filter.py::TestOutcomeCounters::test_counters_track_each_outcome": 0.017425906000028135, + "tests/test_track_filter.py::TestOutcomeCounters::test_every_call_increments_exactly_one_counter": 0.017959665999967456, + "tests/test_track_filter.py::TestOutcomeCounters::test_off_and_ewma_modes_count_nothing": 0.0171178969999346, + "tests/test_track_filter.py::TestOutcomeCounters::test_reset_clears_the_counters": 0.017151300000023184, + "tests/test_track_filter.py::TestPoisonedCovariance::test_negative_covariance_diagonal_never_raises": 0.01850143100000423, + "tests/test_track_filter.py::TestRInflation::test_cov_derived_r_is_inflated_and_added_to_base_then_clamped": 0.018312989000037305, + "tests/test_track_filter.py::TestRInflation::test_fallback_r_is_exactly_the_base_floor": 0.018730311000069833, + "tests/test_track_filter.py::TestStoneSoupOracle::test_matches_stonesoup_kalman_at_every_step": 0.018525368000041453, + "tests/test_track_gates.py::TestDetectionIdentityGate::test_mismatched_detection_tag_records_neither": 0.017431497000018226, + "tests/test_track_gates.py::TestDetectionIdentityGate::test_tag_comparison_is_case_insensitive": 0.01739299399991978, + "tests/test_track_gates.py::TestDetectionIdentityGate::test_untagged_detection_records_neither": 0.017492781999976614, + "tests/test_track_gates.py::TestFixDetectionSkewGate::test_a_matching_fix_and_detection_age_still_records": 0.017107818999988922, + "tests/test_track_gates.py::TestFixDetectionSkewGate::test_a_track_coasting_past_its_detection_with_a_live_fix_records_nothing": 0.01735912100002679, + "tests/test_track_gates.py::TestFixDetectionSkewGate::test_emit_path_forwards_fix_ts_and_detection_ts": 0.017272057000070618, + "tests/test_track_gates.py::TestFixDetectionSkewGate::test_record_verified_detection_is_not_called_when_the_recorder_returns_zero": 0.017407542000057674, + "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_fewer_than_three_detections_records_neither": 0.01772914399992942, + "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_fresh_stamp_and_n_detections_records_calibration_and_verified_detection": 0.017675272999952085, + "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_missing_last_detection_wall_ts_treated_as_never_fresh": 0.017339863000017885, + "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_stamp_aged_past_the_budget_records_neither_but_still_emits_and_still_scores_accuracy": 0.019489975999988474, + "tests/test_track_gates.py::TestFreshDetectionRecordsCalibration::test_stamp_exactly_at_the_budget_still_counts": 0.01773028700000623, + "tests/test_track_gates.py::TestGateStoreReclamation::test_prune_does_not_touch_entries_inside_the_gate_window": 0.01671310900002254, + "tests/test_track_gates.py::TestGateStoreReclamation::test_stale_entries_are_pruned_and_fresh_ones_kept": 0.016878227999995943, + "tests/test_track_gates.py::TestKnownLaneSilencesThisPath::test_a_fresh_tagged_detection_records_nothing[binding]": 0.017609760000027563, + "tests/test_track_gates.py::TestKnownLaneSilencesThisPath::test_a_fresh_tagged_detection_records_nothing[shadow]": 0.017442615999982536, + "tests/test_track_gates.py::TestKnownLaneSilencesThisPath::test_mode_off_is_unchanged": 0.017579312999941976, + "tests/test_track_gates.py::TestUnassociatedEntryHonesty::test_adsb_backed_track_keeps_altitude_and_identity": 0.01738351600010901, + "tests/test_track_gates.py::TestUnassociatedEntryHonesty::test_unassociated_track_publishes_no_altitude_or_callsign": 0.017081639999958043, + "tests/test_track_writer.py::test_batches_written_in_same_second_are_both_retained": 0.021734987999991517, + "tests/test_track_writer.py::test_contributing_nodes_serialized_as_csv": 0.01958793900001865, + "tests/test_track_writer.py::test_empty_records_returns_none": 0.01707313500003238, + "tests/test_track_writer.py::test_failed_write_never_publishes_partial_parquet": 0.02081565900004989, + "tests/test_track_writer.py::test_flush_track_archive_buffer_drains_state": 0.019547494999983428, + "tests/test_track_writer.py::test_flush_track_archive_buffer_no_op_when_empty": 0.017237412000042696, + "tests/test_track_writer.py::test_nullable_fields_round_trip": 0.019344654000008177, + "tests/test_track_writer.py::test_schema_columns_present": 0.019396040000003723, + "tests/test_track_writer.py::test_solver_hook_appends_to_track_archive_buffer": 0.01745693400005166, + "tests/test_track_writer.py::test_writes_hive_partitioned_path": 0.018787759000019832, + "tests/test_tracker_env_overrides.py::TestApplyTrackerEnvOverrides::test_missing_process_noise_section_is_created": 0.017207896000002165, + "tests/test_tracker_env_overrides.py::TestApplyTrackerEnvOverrides::test_no_env_leaves_config_untouched": 0.017104494000022896, + "tests/test_tracker_env_overrides.py::TestApplyTrackerEnvOverrides::test_null_process_noise_section_is_replaced": 0.017469266999967203, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_delay_override_reaches_the_filter": 0.02268918400000075, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_doppler_override_reaches_the_filter": 0.023063748000026862, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[ ]": 0.022587955000005877, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[-3]": 0.022644089999971584, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[0]": 0.022956175999979678, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[]": 0.02251833500002931, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[abc]": 0.02382135800002061, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[inf]": 0.022811263999983566, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_invalid_values_are_ignored_with_a_warning[nan]": 0.02251047999993716, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_logged_once_per_process": 0.03380701300000055, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_no_env_keeps_packaged_defaults": 0.022843723999926624, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_no_override_without_a_packaged_config_leaves_singleton": 0.020343206000063674, + "tests/test_tracker_env_overrides.py::TestPipelineProcessNoise::test_override_applies_without_a_packaged_config": 0.01995849399997951, + "tests/test_unblock_nodes.py::test_a_corrupt_snapshot_is_refused_unless_forced": 0.01880432999990944, + "tests/test_unblock_nodes.py::test_a_legacy_schema_1_snapshot_is_upgraded": 0.01834093400003667, + "tests/test_unblock_nodes.py::test_a_missing_snapshot_exits_non_zero": 0.019215133999978207, + "tests/test_unblock_nodes.py::test_a_named_node_is_reset_and_the_rest_are_untouched": 0.020433867000008377, + "tests/test_unblock_nodes.py::test_all_blocked_resets_every_block_and_nothing_else": 0.01818012999996199, + "tests/test_unblock_nodes.py::test_an_unknown_node_exits_non_zero": 0.018165361999990637, + "tests/test_unblock_nodes.py::test_dry_run_writes_nothing": 0.017493081000054644, + "tests/test_unblock_nodes.py::test_selecting_nothing_is_an_error": 0.01810011899993924, + "tests/test_unblock_nodes.py::test_the_result_still_restores_as_a_NodeReputation": 0.017792723000013666, + "tests/test_unpositioned_registration.py::TestUnpositionedNodesStayOutOfTheGraph::test_a_fleet_registered_over_http_builds_no_overlap_zones": 0.034938269999940985, + "tests/test_unpositioned_registration.py::TestUnpositionedNodesStayOutOfTheGraph::test_a_positioned_fleet_still_pairs": 0.032752231999950254, + "tests/test_unpositioned_registration.py::TestUnpositionedNodesStayOutOfTheGraph::test_the_nodes_are_still_registered": 0.021785136999994847, + "tests/test_users_backup.py::TestUsersBackup::test_idempotent_within_same_day": 0.6633751979999829, + "tests/test_users_backup.py::TestUsersBackup::test_retention_drops_old_backups": 0.1450528999999392, + "tests/test_users_backup.py::TestUsersBackup::test_skipped_when_db_missing": 0.10613307199997735, + "tests/test_users_backup.py::TestUsersBackup::test_skipped_when_r2_disabled": 0.021720988000026864, + "tests/test_users_backup.py::TestUsersBackup::test_uploaded_blob_is_a_valid_sqlite_db": 0.14440152199995282, + "tests/test_users_backup.py::TestUsersBackup::test_uploads_today_backup": 0.1335719220000442, + "tests/test_velocity_direction.py::TestDerivedVelocityError::test_heading_err_none_when_truth_near_hover": 0.01976512999993929, + "tests/test_velocity_direction.py::TestDerivedVelocityError::test_heading_err_wraps_across_0_360": 0.01963241100003188, + "tests/test_velocity_direction.py::TestDerivedVelocityError::test_vel_err_ms_on_perpendicular_case": 0.0195960629999945, + "tests/test_velocity_direction.py::TestNearestGtVelocity::test_no_gt_returns_all_four_keys_none": 0.01948160900002449, + "tests/test_velocity_direction.py::TestNearestGtVelocity::test_single_point_trail_falls_back_to_meta": 0.019589349999989736, + "tests/test_velocity_direction.py::TestNearestGtVelocity::test_speed_and_heading_derived_from_straight_trail": 0.019484423999983846, + "tests/test_velocity_direction.py::TestVelocityAccuracyDirection::test_heading_and_vector_stats_on_a_perpendicular_track": 0.017767273999936606, + "tests/test_velocity_direction.py::TestVelocityAdoptionN2SharesPoolCall::test_gate_and_adoption_share_one_pool_call": 0.01746080999998867, + "tests/test_velocity_direction.py::TestVelocityAdoptionN3::test_good_fit_is_adopted_and_recorded": 0.020390733000056116, + "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_chi2_above_adoption_threshold_keeps_raw_velocity": 0.020117080000034093, + "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_fit_raises_keeps_raw_velocity": 0.0178384269999583, + "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_fit_returns_none_keeps_raw_velocity": 0.017298216000028788, + "tests/test_velocity_direction.py::TestVelocityAdoptionRejectionFallbacks::test_too_few_epochs_keeps_raw_velocity": 0.01742521300008093, + "tests/test_web_build_matrix.py::test_a_split_entry_is_named_for_its_part": 0.018617129000006116, + "tests/test_web_build_matrix.py::test_each_half_of_a_split_runs_only_its_own_scripts": 0.017202947000043878, + "tests/test_web_build_matrix.py::test_each_script_a_workspace_defines_runs_in_exactly_one_entry[dashboard]": 0.017410496000024978, + "tests/test_web_build_matrix.py::test_each_script_a_workspace_defines_runs_in_exactly_one_entry[e2e]": 0.017052073999991535, + "tests/test_web_build_matrix.py::test_each_script_a_workspace_defines_runs_in_exactly_one_entry[packages/shared]": 0.016996880000021974, + "tests/test_web_build_matrix.py::test_every_workspace_has_an_entry": 0.07294386199998826, + "tests/test_web_build_matrix.py::test_the_dashboard_is_split_into_its_tests_and_its_checks": 0.016733536000003824, + "tests/test_wgs84_equivalence.py::TestEcefLlaAgreement::test_lla2ecef_agrees_across_libraries": 0.021970284999952128, + "tests/test_wgs84_equivalence.py::TestEcefLlaAgreement::test_round_trip_agrees_across_libraries": 0.03773362099991573, + "tests/test_wgs84_equivalence.py::TestSpeedOfLightSingleSource::test_analytics_agrees": 0.019679388999975345, + "tests/test_wgs84_equivalence.py::TestSpeedOfLightSingleSource::test_geolocator_constants_are_consistent": 0.019617013000015504, + "tests/test_workflow_lint_configured.py::test_actionlint_is_configured": 0.022610936999967635, + "tests/test_workflow_lint_configured.py::test_the_actionlint_repo_is_pinned": 0.022552137000047878, + "tests/test_workflow_lint_configured.py::test_there_are_workflows_for_it_to_check": 0.050678554000000986 } \ No newline at end of file