[
  {
    "index": 3,
    "heading": "2026-04-06 05:00:39 AREA: T",
    "published_at": "2026-04-06 05:00:39",
    "area": "T",
    "message_id": "",
    "text": "ZCZCCME16\n_052300 UTC APR 26\nWEATHER _ULLETIN ISSUED BY NTRWEGIAM V_TB\nOB_GICAL INST_TUTE\nE SYNOPTIC SITUATION TODAY AT 18 UTC:\nLOW 983 HPA, 69 N 07 E, MOV S EXP =!6_\n+8._.__-\n_9_/_\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994._$_5 59 N 25 E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025./$_MYZMGM\n___GI_G_ZOMPMP_M\n _UFM_D_MHM_HPMG_N1_\n,_-)9_._\n___WMP_HM\n_YMGD_XRQ__!06.*=_06__9,7._*,_9__*_0OBEC_NB_O_N_R_NQOOEPBEI_EWB_AB_JBGI_D_ HIGH. DRY, GOOD.\n  OUTER SKAGERRAK\nW NEAR LAS\nM_CO___J_EKKNB9__ 6. VERY ROUGH TO_OD\n DRY, GOOD.\n  FISHER\nW NEAR GALE 7, DECR TO 5. VERY ROUGH TO MOD. RAIN, MOD, BECMG DRY, GOBD_ONONGONNIII_V__KAXAUPB_HP NQ_GCHHMHM\n__ORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORW G_AN METEOROLOGNCALIINSTITUTE =.4_20_6(Y_\n_WW+:+: .-25\n05_2_2_)__7_*+__6\nN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN PO__O_H_X\n_\n_TMTE\nCLOSED FOR PASSAGE.\nNNNN",
    "clean_text": "ZCZCCME16\n_052300 UTC APR 26\nWEATHER _ULLETIN ISSUED BY NTRWEGIAM V_TB\nOB_GICAL INST_TUTE\nE SYNOPTIC SITUATION TODAY AT 18 UTC:\nLOW 983 HPA, 69 N 07 E, MOV S EXP =!6_\n+8._.__-\n_9_/_\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994._$_5 59 N 25 E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025./$_MYZMGM\n___GI_G_ZOMPMP_M\n_UFM_D_MHM_HPMG_N1_\n,_-)9_._\n___WMP_HM\n_YMGD_XRQ__!06.*=_06__9,7._*,_9__*_0OBEC_NB_O_N_R_NQOOEPBEI_EWB_AB_JBGI_D_ HIGH. DRY, GOOD.\nOUTER SKAGERRAK\nW NEAR LAS\nM_CO___J_EKKNB9__ 6. VERY ROUGH TO_OD\nDRY, GOOD.\nFISHER\nW NEAR GALE 7, DECR TO 5. VERY ROUGH TO MOD. RAIN, MOD, BECMG DRY, GOBD_ONONGONNIII_V__KAXAUPB_HP NQ_GCHHMHM\n__ORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORW G_AN METEOROLOGNCALIINSTITUTE =.4_20_6(Y_\n_WW+:+: .-25\n05_2_2_)__7_*+__6\nN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN PO__O_H_X\n_\n_TMTE\nCLOSED FOR PASSAGE.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: W near gale 7, decr to 5. very rough to mod. rain, mod, becmg dry, gobd onongonniii v kaxaupb hp nq gchhmhm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "W near gale 7, decr to 5. very rough to mod. rain, mod, becmg dry, gobd onongonniii v kaxaupb hp nq gchhmhm",
      "Orwegian gale warning no. gx378/2026",
      "Weather ulletin issued by ntrwegiam v tb"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 6,
    "heading": "2026-04-06 04:55:34 AREA: L",
    "published_at": "2026-04-06 04:55:34",
    "area": "L",
    "message_id": "LA14",
    "text": "ZCZC LA14\n051128 UTC APR 26\nNORWEGIAN NAV. WARNING 138/2026\n  CHART 24\n  AREA SOGNESJOEN\nWYF_HF_MJ_PPSM_ZJHYC_HFZMYP_ZYHPWON_(_,$93:4_-_O__./(___0\n__6\nNONNIII_ZCZC",
    "clean_text": "ZCZC LA14\n051128 UTC APR 26\nNORWEGIAN NAV. WARNING 138/2026\nCHART 24\nAREA SOGNESJOEN\nWYF_HF_MJ_PPSM_ZJHYC_HFZMYP_ZYHPWON_(_,$93:4_-_O__./(___0\n__6\nNONNIII_ZCZC",
    "resolved_station_name": "Rogaland Radio",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "South-west Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "NORWEGIAN NAV WARNING"
    ],
    "display_region_heading": "Norway - South-west Norwegian coast",
    "display_region_label": "Rogaland Radio, Norway",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Norway - South-west Norwegian coast. Readable text says: Norwegian nav. warning 138/2026. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Norwegian nav. warning 138/2026",
      "Area sognesjoen",
      "Nonniii zczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 7,
    "heading": "2026-04-06 04:55:03 AREA: L",
    "published_at": "2026-04-06 04:55:03",
    "area": "L",
    "message_id": "LA17",
    "text": "ZCZC LA17\n051236 UTC APR 26\nDANISH NAV WARN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN POS. 57-43.1N 010-35.5E\nCLOSED FOR PASSAGE.\nNNNN",
    "clean_text": "ZCZC LA17\n051236 UTC APR 26\nDANISH NAV WARN 189/26\nDENMARK. KATTEGAT. SKAGEN INNER HARBOUR.\nENTRANCE IN POS. 57-43.1N 010-35.5E\nCLOSED FOR PASSAGE.\nNNNN",
    "display_region_heading": "Unresolved B1 code L",
    "display_region_label": "B1 code L",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code L. Readable text says: Entrance in pos. 57-43.1n 010-35.5e.",
    "decoded_highlights": [
      "Entrance in pos. 57-43.1n 010-35.5e",
      "Closed for passage",
      "Danish nav warn 189/26"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 8,
    "heading": "2026-04-06 04:53:53 AREA: L",
    "published_at": "2026-04-06 04:53:53",
    "area": "L",
    "message_id": "LB18",
    "text": "ZCZC LB18\n052143 UTC APR _NORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORWEGIAN METEOROLOGICAL INSTITUTE 5.4.2026 AT 22 UTC\nINNER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 09UTC\nOUTER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 12UTC\nNORTH UTSIRE: W OCC GALE 8 FM MON 01UTC TO 04UTC\nVIKING: W OCC GALE 8 FM SUN 22UTC TO MON 03UTC\nEAST-TAMPEN: NW OCC GALE 8 FM SUN 22UTC TO MON 02UTC\n\nNNNN",
    "clean_text": "ZCZC LB18\n052143 UTC APR _NORWEGIAN GALE WARNING NO. GX378/2026\nISSUED BY NORWEGIAN METEOROLOGICAL INSTITUTE 5.4.2026 AT 22 UTC\nINNER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 09UTC\nOUTER SKAGERRAK: W OCC GALE 8 FM SUN 22UTC TO MON 12UTC\nNORTH UTSIRE: W OCC GALE 8 FM MON 01UTC TO 04UTC\nVIKING: W OCC GALE 8 FM SUN 22UTC TO MON 03UTC\nEAST-TAMPEN: NW OCC GALE 8 FM SUN 22UTC TO MON 02UTC\n\nNNNN",
    "resolved_station_name": "Rogaland Radio",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "South-west Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "SKAGERRAK"
    ],
    "display_region_heading": "Norway - South-west Norwegian coast",
    "display_region_label": "Rogaland Radio, Norway",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Norway - South-west Norwegian coast. Readable text says: Inner skagerrak: w occ gale 8 fm sun 22utc to mon 09utc.",
    "decoded_highlights": [
      "Inner skagerrak: w occ gale 8 fm sun 22utc to mon 09utc",
      "Outer skagerrak: w occ gale 8 fm sun 22utc to mon 12utc",
      "North utsire: w occ gale 8 fm mon 01utc to 04utc"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 9,
    "heading": "2026-04-06 04:50:39 AREA: L",
    "published_at": "2026-04-06 04:50:39",
    "area": "L",
    "message_id": "LE18",
    "text": "ZCZC LE18\n052300 UTC APR 26\nWEATHER BUZ__HFMFJJCPWML_M_YUP_F_M_PHPZYZSZF_S_FJHFHCHPONMMJJZHFXMJFHCHFZMDZW_MHM__OVCOT_ N 07 E, M__ S EXP 1006 HPAM\nM\n_J_G_M_E MON 18 UTC.\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994 HPA AT 59 F_QWT E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025 HPA, 49 N 62_=-_.= ,3 3/0 1028 HPA AT 53 N 06 E MON 18 UTC.\n  FORECAST VALID NEXT 24 HOURS:\n  INNER SKAGERRAK\nW GALE 8, OCNL SEV GALE 99 BECMG 6. VERY R_UGH TO SLT, OCNL HIGHT_MG_Y_GOOD.\n  OUTER\nJV_PY__ONUMP__XSS_M_CMGZ_B_MS_MIFMGL_X__\nEZMBNEQBE_XEWBDABAUBHIRQOHE_M\n  FISHER\nW FEYM_S_MHCZOZUBEB_VERY ROUGS__ZM_ZW\n_ECMG DRY, __99$.\n  FORTIES\nW NEAR GALE 7, DECR TO SE 5. VERY ROUGH TO MOD. DRY, GOOD.\n  SOUTH UTSIRE\nW NEAR GALE 7, DECR TO VRB 4. VERY ROUGH TO MOD. RAIN, MOD, BECMG D__T_G_ZZ__  NORTH UTSIREOIUM_YMGZ_SMUM_S\nM_F_MGYZC_DMZ_M_PYEMY_CD_BMGYF_MG_ZBECMG DRY, GOOD.\n  VIKING\nW GALE 8, DECR TO VRB 4. ROUGH OR VERY ROUGH. RAIN, MOD, BECMG DRY, GOOD.\n  EAST-TAMPG\nN_YLM_HMGZ_S_UM_S_M\nF_MGYZCD_M_Z_SM_PYEMY_CD_BMGYF_MG_ZW\nMGLPBZ__IRQOHE_M\n\nNNNN",
    "clean_text": "ZCZC LE18\n052300 UTC APR 26\nWEATHER BUZ__HFMFJJCPWML_M_YUP_F_M_PHPZYZSZF_S_FJHFHCHPONMMJJZHFXMJFHCHFZMDZW_MHM__OVCOT_ N 07 E, M__ S EXP 1006 HPAM\nM\n_J_G_M_E MON 18 UTC.\nLOW 980 HPA, 61 N 07 E, MOV E EXP 994 HPA AT 59 F_QWT E MON 18 UTC.\nHIGH 1016 HPA, 77 N 22 E, MOV SW EXP 1027 HPA AT 74 N 01 E MON 18 UTC.\nHIGH 1025 HPA, 49 N 62_=-_.= ,3 3/0 1028 HPA AT 53 N 06 E MON 18 UTC.\nFORECAST VALID NEXT 24 HOURS:\nINNER SKAGERRAK\nW GALE 8, OCNL SEV GALE 99 BECMG 6. VERY R_UGH TO SLT, OCNL HIGHT_MG_Y_GOOD.\nOUTER\nJV_PY__ONUMP__XSS_M_CMGZ_B_MS_MIFMGL_X__\nEZMBNEQBE_XEWBDABAUBHIRQOHE_M\nFISHER\nW FEYM_S_MHCZOZUBEB_VERY ROUGS__ZM_ZW\n_ECMG DRY, __99$.\nFORTIES\nW NEAR GALE 7, DECR TO SE 5. VERY ROUGH TO MOD. DRY, GOOD.\nSOUTH UTSIRE\nW NEAR GALE 7, DECR TO VRB 4. VERY ROUGH TO MOD. RAIN, MOD, BECMG D__T_G_ZZ__ NORTH UTSIREOIUM_YMGZ_SMUM_S\nM_F_MGYZC_DMZ_M_PYEMY_CD_BMGYF_MG_ZBECMG DRY, GOOD.\nVIKING\nW GALE 8, DECR TO VRB 4. ROUGH OR VERY ROUGH. RAIN, MOD, BECMG DRY, GOOD.\nEAST-TAMPG\nN_YLM_HMGZ_S_UM_S_M\nF_MGYZCD_M_Z_SM_PYEMY_CD_BMGYF_MG_ZW\nMGLPBZ__IRQOHE_M\n\nNNNN",
    "resolved_station_name": "Rogaland Radio",
    "resolved_country": "Norway",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "South-west Norwegian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "SKAGERRAK"
    ],
    "display_region_heading": "Norway - South-west Norwegian coast",
    "display_region_label": "Rogaland Radio, Norway",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Norway - South-west Norwegian coast. Readable text says: W gale 8, ocnl sev gale 99 becmg 6. very r ugh to slt, ocnl hight mg y good. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "W gale 8, ocnl sev gale 99 becmg 6. very r ugh to slt, ocnl hight mg y good",
      "W near gale 7, decr to se 5. very rough to mod. dry, good",
      "W near gale 7, decr to vrb 4. very rough to mod. rain, mod, becmg d t g zz north utsireoium ymgz smum s"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 10,
    "heading": "2026-04-06 04:41:14 AREA: K",
    "published_at": "2026-04-06 04:41:14",
    "area": "K",
    "message_id": "",
    "text": "ZCZC KA2+9,__:6_(___)+:6.\nU_TU__V_AZGLLDVGS_MANCHE HOJHONG71__-=8_-589, _$_0**__*_5 _796 - LIGHT UNLIT\nLEZEM_FY_MJ_U_D_CCMC_:(./,__)4'=+\n1__5_ ::_!+9,+_!! __AXA_GM\n_X_WIGHT - LARGE CAYEUX-SUR-MER\nWZYVJO_G_L__ING ZPYHFZONG_YZLO_G_GG__.$__!=5_8=6+_06.+_!_09,_+._!*__)3OH_EKK_)3OUEUEHFE__FF_YDCK__EF__4_(__609,_3KB_AQPMIYGMNG.::_800$___UL_YYUGG_!33_+_\n *606=!/0-13.61N P _AWQMNB($_:,__$_9.:._0_$_)_2_01N 001-17_U_TPAQOMURN 001-04.::_09,$_::_.._)9_9.36N \n_ _ KLEQH_ND_CJUN 00 _7__.::/$__)4_788488_7_AXAXMV_\nU__VURNAV CHERBOURG 26/22+9,__+(__(__71,:_3 3'5\nFWJMHZBLKO3=2__=_,_3'\n,_!*8_54-,'.85534 975 9! '34=!__.\n._'!_$__:+*'-__.)**:68_*ZD_X_X__YKATE WITH CAUHFZONZZ_\nOOOOOOOOZ___M____ZCZC",
    "clean_text": "ZCZC KA2+9,__:6_(___)+:6.\nU_TU__V_AZGLLDVGS_MANCHE HOJHONG71__-=8_-589, _$_0**__*_5 _796 - LIGHT UNLIT\nLEZEM_FY_MJ_U_D_CCMC_:(./,__)4'=+\n1__5_ ::_!+9,+_!! __AXA_GM\n_X_WIGHT - LARGE CAYEUX-SUR-MER\nWZYVJO_G_L__ING ZPYHFZONG_YZLO_G_GG__.$__!=5_8=6+_06.+_!_09,_+._!*__)3OH_EKK_)3OUEUEHFE__FF_YDCK__EF__4_(__609,_3KB_AQPMIYGMNG.::_800$___UL_YYUGG_!33_+_\n*606=!/0-13.61N P _AWQMNB($_:,__$_9.:._0_$_)_2_01N 001-17_U_TPAQOMURN 001-04.::_09,$_::_.._)9_9.36N\n_ _ KLEQH_ND_CJUN 00 _7__.::/$__)4_788488_7_AXAXMV_\nU__VURNAV CHERBOURG 26/22+9,__+(__(__71,:_3 3'5\nFWJMHZBLKO3=2__=_,_3'\n,_!*8_54-,'.85534 975 9! '34=!__.\n._'!_$__:+*'-__.)**:68_*ZD_X_X__YKATE WITH CAUHFZONZZ_\nOOOOOOOOZ___M____ZCZC",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "U tu v azglldvgs manche hojhong71 - 8 -589, $ 0 5 796 - light unlit",
      "X wight - large cayeux-sur-mer"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 11,
    "heading": "2026-04-06 04:35:40 AREA: J",
    "published_at": "2026-04-06 04:35:40",
    "area": "J",
    "message_id": "JA85",
    "text": "ZCZC JA85\n040930 KOCMM_R\nGERMAN NAV WARN 125/26\nSOUTHERN BALTIC. ODERBANK.\nYELLOW LIGHTVJ_YMLCZEM_MFJ_YFHFWBQ_UKQQB_EKK_GO/4(.___DN_3(___1_4,)__,8,_9,,8((((((((((((((((= __\n_ZCZ_ FA71\nTEST\nNNNN",
    "clean_text": "ZCZC JA85\n040930 KOCMM_R\nGERMAN NAV WARN 125/26\nSOUTHERN BALTIC. ODERBANK.\nYELLOW LIGHTVJ_YMLCZEM_MFJ_YFHFWBQ_UKQQB_EKK_GO/4(.___DN_3(___1_4,)__,8,_9,,8((((((((((((((((= __\n_ZCZ_ FA71\nTEST\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Yellow lightvj ymlczem mfj yfhfwbq ukqqb ekk go/4(. dn 3( 1 4,) ,8, 9,,8((((((((((((((((. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Yellow lightvj ymlczem mfj yfhfwbq ukqqb ekk go/4(. dn 3( 1 4,) ,8, 9,,8((((((((((((((((",
      "German nav warn 125/26",
      "Southern baltic. oderbank"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 13,
    "heading": "2026-04-06 04:33:01 AREA: J",
    "published_at": "2026-04-06 04:33:01",
    "area": "J",
    "message_id": "JA16",
    "text": "ZCZC JA16\n191020 UTCMMYMONG_PYBM\nM_Y.\n 375739___0*_06.)'_!_BHAE_WRJQBUKEQQEBARD_F_\nGEOPHYSICAL SURVEYS CONDUCTED \nBY MV MIRANDA/T7AD2\nAROUND OF PSN: 54-33.4N 012-32.0E.\nA SAFETY DISTANCE OF 0.5 NM IS REQUIRED\nNNNN",
    "clean_text": "ZCZC JA16\n191020 UTCMMYMONG_PYBM\nM_Y.\n375739___0*_06.)'_!_BHAE_WRJQBUKEQQEBARD_F_\nGEOPHYSICAL SURVEYS CONDUCTED\nBY MV MIRANDA/T7AD2\nAROUND OF PSN: 54-33.4N 012-32.0E.\nA SAFETY DISTANCE OF 0.5 NM IS REQUIRED\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Around of psn: 54-33.4n 012-32.0e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Around of psn: 54-33.4n 012-32.0e",
      "Geophysical surveys conducted",
      "A safety distance of 0.5 nm is required"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 16,
    "heading": "2026-04-06 04:29:01 AREA: J",
    "published_at": "2026-04-06 04:29:01",
    "area": "J",
    "message_id": "JA29",
    "text": "ZCZC JA29\n25,9,__'__62.\n._6_.___\n5__\n,9,_*+:_$0*_06.)''!_9,_*$!_*.0_06/!*_88 _312100 UTC MAR THRU 302100 UTC APR\nIN AREA TEMPORARILY DANGEROUS TO SHIPPING BR-161\n55-09.50N 019-45.30E 55-09.50N 020-00.00E\n55-02.00N 020-00.00E 55-02.00N 019-39.60E\nCANCEL TSNFM_PJ__PM\nPUUMG_H__YONGONNIIIUZXAX_QU_UF___ UTC MAR\n\nKALINGRAD X\nM_Y_M_HUT_EONONGJZCHDPJHPYMLSHF_ONGJDF_JMP_PYXFJCII_312100 UTC MAR THRU 3021_=!/+_3_330\n1_3*\n+$_ *3__=_5_8' .3''-_3 302_77(_5: -04\nNNNN",
    "clean_text": "ZCZC JA29\n25,9,__'__62.\n._6_.___\n5__\n,9,_*+:_$0*_06.)''!_9,_*$!_*.0_06/!*_88 _312100 UTC MAR THRU 302100 UTC APR\nIN AREA TEMPORARILY DANGEROUS TO SHIPPING BR-161\n55-09.50N 019-45.30E 55-09.50N 020-00.00E\n55-02.00N 020-00.00E 55-02.00N 019-39.60E\nCANCEL TSNFM_PJ__PM\nPUUMG_H__YONGONNIIIUZXAX_QU_UF___ UTC MAR\n\nKALINGRAD X\nM_Y_M_HUT_EONONGJZCHDPJHPYMLSHF_ONGJDF_JMP_PYXFJCII_312100 UTC MAR THRU 3021_=!/+_3_330\n1_3*\n+$_ *3__=_5_8' .3''-_3 302_77(_5: -04\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: In area temporarily dangerous to shipping br-161. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "In area temporarily dangerous to shipping br-161",
      "Kalingrad x"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 21,
    "heading": "2026-04-06 04:24:10 AREA: J",
    "published_at": "2026-04-06 04:24:10",
    "area": "J",
    "message_id": "JA42",
    "text": "ZCZC JA42\n070600 UTC APR\nBPOL_SH NAV WARN 070/2026\nSOUTHERN BALTIC. POLISS CZJHONGWCPMHZC_1_53__ 06:00__\n_\n_ 6/F_N\nFM__YF_M__ZBM\nEXMGHZM\nU_XHZONGAZIIUIS CLOSED\nCANCEL THIS MSG 111400 UTC APR\nNNNN",
    "clean_text": "ZCZC JA42\n070600 UTC APR\nBPOL_SH NAV WARN 070/2026\nSOUTHERN BALTIC. POLISS CZJHONGWCPMHZC_1_53__ 06:00__\n_\n_ 6/F_N\nFM__YF_M__ZBM\nEXMGHZM\nU_XHZONGAZIIUIS CLOSED\nCANCEL THIS MSG 111400 UTC APR\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: U xhzongaziiuis closed. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "U xhzongaziiuis closed",
      "Bpol sh nav warn 070/2026"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 23,
    "heading": "2026-04-06 04:20:45 AREA: Q",
    "published_at": "2026-04-06 04:20:45",
    "area": "Q",
    "message_id": "",
    "text": "ZCZC Q_YZ_NGRMMKXXKXB_HP\n_R_QF_FNNAV WOXOXGNHKQ_LDFPFX__\nAMC_DTD_KFVN _U_EE.\nOBSTRUCTION VISFLSPML_B_L G__XZNM_\nAND IS A RED LCZE_MARINERS ARPMW_FJ_R.\nNNNN",
    "clean_text": "ZCZC Q_YZ_NGRMMKXXKXB_HP\n_R_QF_FNNAV WOXOXGNHKQ_LDFPFX__\nAMC_DTD_KFVN _U_EE.\nOBSTRUCTION VISFLSPML_B_L G__XZNM_\nAND IS A RED LCZE_MARINERS ARPMW_FJ_R.\nNNNN",
    "display_region_heading": "Unresolved B1 code Q",
    "display_region_label": "B1 code Q",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code Q. Readable text says: And is a red lcze mariners arpmw fj r. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "And is a red lcze mariners arpmw fj r"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 24,
    "heading": "2026-04-06 04:20:09 AREA: J",
    "published_at": "2026-04-06 04:20:09",
    "area": "J",
    "message_id": "JA51",
    "text": "ZCZC JA51\n041.=:_!._=3_9(_!*$.\n._3)9X__(____3-..9.602.'!_$_.):+88(_3.*_+_!\n.HRB_KQB_U__RGX___XA_S_N 01_.2E\nMARINEYJMYPMWB1,7__30 23)) :)3-48((\n_.9,__+!!!___7_ZCZC",
    "clean_text": "ZCZC JA51\n041.=:_!._=3_9(_!*$.\n._3)9X__(____3-..9.602.'!_$_.):+88(_3.*_+_!\n.HRB_KQB_U__RGX___XA_S_N 01_.2E\nMARINEYJMYPMWB1,7__30 23)) :)3-48((\n_.9,__+!!!___7_ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Marineyjmypmwb1,7 30 23)) :)3-48((. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Marineyjmypmwb1,7 30 23)) :)3-48(("
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 25,
    "heading": "2026-04-06 04:18:11 AREA: Q",
    "published_at": "2026-04-06 04:18:11",
    "area": "Q",
    "message_id": "",
    "text": "ZCZC QB_UF_TQOPW UTC _YONGLSHF_MJPMSKMLBKEEZ__P_Q_E1_)$ _)*_06___(\n_\n_\n_$_W _6 :._)_HPGID_LGSI_FA_CKM_HPBHL_I__LGZHFTFTS_XBHEH__HPMZ_PY_F_II_ TUESDAY DECR.\nCENTRAL LSHFX_SW __HPNBHJK__BABEL38__78!_ZVGV__VL_BR_LUPYM_K_NBKKEL1_)$=_/__,(_17 M/=*\n_.__+_(1_L_I_IPLCEFC: W 14-17 M/S. LATE MOND_MP\nP__MWPXY_BO____UH___CZC JA52\n\nH _HMG_H_M_OW SEA_EL\nTHE SO \n__._06'3._+1_8_ _\n_3)_3__4_82, 59 ______-('_-)58:.*0._$6_.2_:_\nWESTERN BAS_FX_FROM WJCOKQ__NING -50 __+.\n_\nH_BTLL_PH_V_NCA___O_U_Z_Q_Z__V____+__534,99, 48'8,___9,,888____ZCZC",
    "clean_text": "ZCZC QB_UF_TQOPW UTC _YONGLSHF_MJPMSKMLBKEEZ__P_Q_E1_)$ _)*_06___(\n_\n_\n_$_W _6 :._)_HPGID_LGSI_FA_CKM_HPBHL_I__LGZHFTFTS_XBHEH__HPMZ_PY_F_II_ TUESDAY DECR.\nCENTRAL LSHFX_SW __HPNBHJK__BABEL38__78!_ZVGV__VL_BR_LUPYM_K_NBKKEL1_)$=_/__,(_17 M/=*\n_.__+_(1_L_I_IPLCEFC: W 14-17 M/S. LATE MOND_MP\nP__MWPXY_BO____UH___CZC JA52\n\nH _HMG_H_M_OW SEA_EL\nTHE SO\n__._06'3._+1_8_ _\n_3)_3__4_82, 59 ______-('_-)58:.*0._$6_.2_:_\nWESTERN BAS_FX_FROM WJCOKQ__NING -50 __+.\n_\nH_BTLL_PH_V_NCA___O_U_Z_Q_Z__V____+__534,99, 48'8,___9,,888____ZCZC",
    "display_region_heading": "Unresolved B1 code Q",
    "display_region_label": "B1 code Q",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code Q. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 26,
    "heading": "2026-04-06 04:15:17 AREA: I",
    "published_at": "2026-04-06 04:15:17",
    "area": "I",
    "message_id": "IA54",
    "text": "ZCZC IA54\n0510_$8'_ ,\n._(6_.8/NMK___HJUMEA CHART DAO_ZMYFU___U_F___U\n\n_+/-__!\n_'_,\n0_9,_2!__2\n_.0__2\n__1$3_(N _ :_-_'__M__A_OW__9_7738__/-_.!\n6_ _\nDUP_HD_BNS_R_A_MX_IXW\nYXDYY_V_FX_Z_UMUK___IIZU __FGPON\nHJHCZLO_7\n!\n::_5__:\n_____ZCZC",
    "clean_text": "ZCZC IA54\n0510_$8'_ ,\n._(6_.8/NMK___HJUMEA CHART DAO_ZMYFU___U_F___U\n\n_+/-__!\n_'_,\n0_9,_2!__2\n_.0__2\n__1$3_(N _ :_-_'__M__A_OW__9_7738__/-_.!\n6_ _\nDUP_HD_BNS_R_A_MX_IXW\nYXDYY_V_FX_Z_UMUK___IIZU __FGPON\nHJHCZLO_7\n!\n::_5__:\n_____ZCZC",
    "display_region_heading": "Unresolved B1 code I",
    "display_region_label": "B1 code I",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code I. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 27,
    "heading": "2026-04-06 04:10:41 AREA: G",
    "published_at": "2026-04-06 04:10:41",
    "area": "G",
    "message_id": "GA89",
    "text": "ZCZC GA89\nWZ 13 573_49.-456.9,_$_ !)9-58,_ 28+._6__1. __:6'_1__90K_BM_CLG_GSB_1-21.1W_\nG SIGNAL INY_ZFPYBF\nI_OH_KTPC_KL__FL_B_GA12).9,_9,,=======\n='___\n_9$/:!98_____U_IKUICFUAIZKA_MFIKBGLZ_S. LATE S___AP_YKY\nW\nXUD_AD_V_\nH_UZ_AQU M/S_9_____'\n_BNPKSC_H* _VE__QSVFKWS_.=,(_.$__8__+:_1\n8_$_:4)99,7_-_-,_,_\n051230.____.YONGWFJDM_I_GATDYGINDV__ZHVV_OQAB_TE\n_AGE.\nNDNN\n_EUU_A_KZCZC",
    "clean_text": "ZCZC GA89\nWZ 13 573_49.-456.9,_$_ !)9-58,_ 28+._6__1. __:6'_1__90K_BM_CLG_GSB_1-21.1W_\nG SIGNAL INY_ZFPYBF\nI_OH_KTPC_KL__FL_B_GA12).9,_9,,=======\n='___\n_9$/:!98_____U_IKUICFUAIZKA_MFIKBGLZ_S. LATE S___AP_YKY\nW\nXUD_AD_V_\nH_UZ_AQU M/S_9_____'\n_BNPKSC_H* _VE__QSVFKWS_.=,(_.$__8__+:_1\n8_$_:4)99,7_-_-,_,_\n051230.____.YONGWFJDM_I_GATDYGINDV__ZHVV_OQAB_TE\n_AGE.\nNDNN\n_EUU_A_KZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says: G signal iny zfpybf. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "G signal iny zfpybf"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 28,
    "heading": "2026-04-06 04:09:41 AREA: G",
    "published_at": "2026-04-06 04:09:41",
    "area": "G",
    "message_id": "GA",
    "text": "ZCZC GA\nE__Z 180/26 \nHUMBER_4-:3 _-=._!_._6__\n1. __:6)!0.+_.*!_'*.!+_06_!9:\n___8BHC_LO_:_28*_\n2. CANCEL WZ 58/26 (GA29)9.9,_9,,888___(+: _-96\n__-.\n..._(04_\n!-_*__ 812_!1_2__39, -!1.2_6_ +.9_:05:$:(:__(.(,!= 53-12.5N 001-25((_3BX_ \nNNNN",
    "clean_text": "ZCZC GA\nE__Z 180/26\nHUMBER_4-:3 _-=._!_._6__\n1. __:6)!0.+_.*!_'*.!+_06_!9:\n___8BHC_LO_:_28*_\n2. CANCEL WZ 58/26 (GA29)9.9,_9,,888___(+: _-96\n__-.\n..._(04_\n!-_*__ 812_!1_2__39, -!1.2_6_ +.9_:05:$:(:__(.(,!= 53-12.5N 001-25((_3BX_\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 29,
    "heading": "2026-04-06 04:09:09 AREA: G",
    "published_at": "2026-04-06 04:09:09",
    "area": "G",
    "message_id": "GA71",
    "text": "ZCZC GA71\nWZA_XWY\nHC L BZIDOYALL GASM_FP_UBAQ_I_AQPMUN 002-59.1PMCJ__(7_(7_00_'_)NFMSV_GG_XKYF_V_FWM CANCEL WZM\nF_O_HKMGE\nE__ W_CFFYFF_CFUUZZCZC",
    "clean_text": "ZCZC GA71\nWZA_XWY\nHC L BZIDOYALL GASM_FP_UBAQ_I_AQPMUN 002-59.1PMCJ__(7_(7_00_'_)NFMSV_GG_XKYF_V_FWM CANCEL WZM\nF_O_HKMGE\nE__ W_CFFYFF_CFUUZZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 30,
    "heading": "2026-04-06 04:07:23 AREA: G",
    "published_at": "2026-04-06 04:07:23",
    "area": "G",
    "message_id": "GA94",
    "text": "ZCZC GA94\nWZ 220/26\nTYNE614,613,)/_,)17__$*1_1_3($_:6)___ 55-06.!_888(_\n_ KCNPKOXLJWM+3_0_3(_)\n7(-58=09,_9,!!!___AXAXM_FPONG_AM\n_ _TU_\n_MDSS. \n/.4_/._+_06\n_.9_\n144++__4__NFZ_ Q_\nZ_HL_RQL_TE 51___ 00__ ,-7_._0 \n)_+__:!'6!!_::__7ZXAXMKN_X_Z 214/26 \nL___W_W__C HUMLP__JMJFHNM__RMRN 001-27___7.+_._6_\nNNNN",
    "clean_text": "ZCZC GA94\nWZ 220/26\nTYNE614,613,)/_,)17__$*1_1_3($_:6)___ 55-06.!_888(_\n_ KCNPKOXLJWM+3_0_3(_)\n7(-58=09,_9,!!!___AXAXM_FPONG_AM\n_ _TU_\n_MDSS.\n/.4_/._+_06\n_.9_\n144++__4__NFZ_ Q_\nZ_HL_RQL_TE 51___ 00__ ,-7_._0\n)_+__:!'6!!_::__7ZXAXMKN_X_Z 214/26\nL___W_W__C HUMLP__JMJFHNM__RMRN 001-27___7.+_._6_\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 31,
    "heading": "2026-04-06 04:06:50 AREA: G",
    "published_at": "2026-04-06 04:06:50",
    "area": "G",
    "message_id": "GA02",
    "text": "ZCZC GA02\nWZ 223/26\nHUMBER. \nLEMAN GAS FIELD. \n1. PLATFORM 49/27-ED \n_EP_EG_ UBE_P\nMGCSFHMWMSSM_FWJMFZ_PYHF\nP_BM_N\n___GXXPSM_AM\n TUEMVG\nHUS_ONGONNIIIIZCZC",
    "clean_text": "ZCZC GA02\nWZ 223/26\nHUMBER.\nLEMAN GAS FIELD.\n1. PLATFORM 49/27-ED\n_EP_EG_ UBE_P\nMGCSFHMWMSSM_FWJMFZ_PYHF\nP_BM_N\n___GXXPSM_AM\nTUEMVG\nHUS_ONGONNIIIIZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Leman gas field. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Leman gas field",
      "1. platform 49/27-ed",
      "Mgcsfhmwmssm fwjmfz pyhf"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 32,
    "heading": "2026-04-06 04:06:20 AREA: G",
    "published_at": "2026-04-06 04:06:20",
    "area": "G",
    "message_id": "GA04",
    "text": "ZCZC GA04\nWZ T_U_TU_O_DSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W Z_._6_2. CANCEL WZ 213/26 (GA80).\n_ONNIII_ZCZC",
    "clean_text": "ZCZC GA04\nWZ T_U_TU_O_DSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W Z_._6_2. CANCEL WZ 213/26 (GA80).\n_ONNIII_ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. mf r/t and dsc services from gregness site 57-07.7n 002-03.2w z . 6 2. cancel wz 213/26 (ga80)",
      "Mrcc shetland"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 33,
    "heading": "2026-04-06 04:05:49 AREA: G",
    "published_at": "2026-04-06 04:05:49",
    "area": "G",
    "message_id": "GA07",
    "text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLATFORM 49/23E, 53-11.9N 002-29.1E, FOG SIGNAL INOPERATIVE.\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "clean_text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLATFORM 49/23E, 53-11.9N 002-29.1E, FOG SIGNAL INOPERATIVE.\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "BESSEMER GAS FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage near 53-11.9N 002-29.1E.",
    "decoded_highlights": [
      "1. platform 49/23e, 53-11.9n 002-29.1e, fog signal inoperative",
      "Bessemer gas field",
      "2. cancel wz 104/26 (ga54)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 34,
    "heading": "2026-04-06 04:05:24 AREA: G",
    "published_at": "2026-04-06 04:05:24",
    "area": "G",
    "message_id": "GA12",
    "text": "ZCZC GA12\nWZ 232/26 \nHUMBER. \nINNER BANK. \nPLATFORM SOUTHWARK 53-11.0N 002-05.!_0.:888(.2.'__)(_(71___C_L9,_9,,8887ZCZC",
    "clean_text": "ZCZC GA12\nWZ 232/26\nHUMBER.\nINNER BANK.\nPLATFORM SOUTHWARK 53-11.0N 002-05.!_0.:888(.2.'__)(_(71___C_L9,_9,,8887ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "INNER BANK"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Inner bank. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Inner bank"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 35,
    "heading": "2026-04-06 04:04:49 AREA: G",
    "published_at": "2026-04-06 04:04:49",
    "area": "G",
    "message_id": "GA15",
    "text": "ZCZC GA15\nWZ 221/26 \nDOGGER. \nSZFF_Z_\n1. BUOYS UNLIT: \nA. N1 55-08.1N 002-09.5E. \nB. E5 54-51.5N 002-20.7E. \n2. CANCEL WZ 95/26 (GA50). \nNNNN",
    "clean_text": "ZCZC GA15\nWZ 221/26\nDOGGER.\nSZFF_Z_\n1. BUOYS UNLIT:\nA. N1 55-08.1N 002-09.5E.\nB. E5 54-51.5N 002-20.7E.\n2. CANCEL WZ 95/26 (GA50).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOGGER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: 1. buoys unlit.",
    "decoded_highlights": [
      "1. buoys unlit",
      "2. cancel wz 95/26 (ga50)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 36,
    "heading": "2026-04-06 04:04:14 AREA: G",
    "published_at": "2026-04-06 04:04:14",
    "area": "G",
    "message_id": "GA18",
    "text": "ZCZC GA18\nWZ _WREXWY \nFORTH. \nNEART NA GAOITHE WINDFARM. \n1. NNGMPMLCZEM\nHE Y_PG_MCFNGCAPIMYW AND NNG S BUOY 56-12.3N 002-09.8W AIS INOPERATIVE. \n2. CANCEL WZ 130/26 (GA73). \nNNNN",
    "clean_text": "ZCZC GA18\nWZ _WREXWY\nFORTH.\nNEART NA GAOITHE WINDFARM.\n1. NNGMPMLCZEM\nHE Y_PG_MCFNGCAPIMYW AND NNG S BUOY 56-12.3N 002-09.8W AIS INOPERATIVE.\n2. CANCEL WZ 130/26 (GA73).\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says an AIS transmitter is inoperative near 56-12.3N 002-09.8W.",
    "decoded_highlights": [
      "He y pg mcfngcapimyw and nng s buoy 56-12.3n 002-09.8w ais inoperative",
      "Wz wrexwy",
      "Neart na gaoithe windfarm"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 37,
    "heading": "2026-04-06 04:03:47 AREA: G",
    "published_at": "2026-04-06 04:03:47",
    "area": "G",
    "message_id": "GA24",
    "text": "ZCZC GA24\nWZ 25_/26 \nGMDSS. \nMRCC SHETLAND. \nVHF R/T AND DSC SERVICES FROM FITFUL HEAD SITE 59-54.3N 001-23.0W OFF AIR. \nNNNN",
    "clean_text": "ZCZC GA24\nWZ 25_/26\nGMDSS.\nMRCC SHETLAND.\nVHF R/T AND DSC SERVICES FROM FITFUL HEAD SITE 59-54.3N 001-23.0W OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "Vhf r/t and dsc services from fitful head site 59-54.3n 001-23.0w off air",
      "Mrcc shetland"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 38,
    "heading": "2026-04-06 04:03:17 AREA: G",
    "published_at": "2026-04-06 04:03:17",
    "area": "G",
    "message_id": "GA25",
    "text": "ZCZC GA25\nWZ 254/26 \nVIKING. \nBERYL OIL FIELD. \n1. BERYL _E BUOY 59-31.7N 001-33.5E TEMPORARILY REMOVED. \n2. CANCEL WZ 143/26 (GA82). \nNNNN",
    "clean_text": "ZCZC GA25\nWZ 254/26\nVIKING.\nBERYL OIL FIELD.\n1. BERYL _E BUOY 59-31.7N 001-33.5E TEMPORARILY REMOVED.\n2. CANCEL WZ 143/26 (GA82).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "BERYL OIL FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: 1. beryl e buoy 59-31.7n 001-33.5e temporarily removed.",
    "decoded_highlights": [
      "1. beryl e buoy 59-31.7n 001-33.5e temporarily removed",
      "Beryl oil field",
      "2. cancel wz 143/26 (ga82)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 39,
    "heading": "2026-04-06 04:00:43 AREA: G",
    "published_at": "2026-04-06 04:00:43",
    "area": "G",
    "message_id": "GE24",
    "text": "ZCZC GE24\n EXTENDED OUTLOOK\n TUE TO FRI\n ISSUER_QG_M_ET\nZ_!_\n)0$'_.+._$0._6__!,88(_\n(_9-'5_7-4$ -_3,:6_\n__\n_5,_7__MHCH+++_(_373LH_H PRESSURE OVER THE SH_S__ ULILPIL\nG G__ TUE EVENING WILL DRIFT E WITH NEW HIGH EX_MJZCHDPYMLSH_XM\nVDPPMGLEM_FW__MZ_M_PWMLP_ZYXMU__. MEANWHILE, DEVELOPING LOW WILL MOV NE, EXP ICELAND 978 BY WED EVENING WITH IGDB_GS _A\nHSVMOK_YQ\nK__Q_Q_\nH_LW\n_\nH\nQDZ_Y__F Q_JMSZUM_FS_MBZ__U_MMZMHDCM_FHDMPBGEWBNF_P BISCAY 1031 ON THU EV_NING, THEN FRANCE 1026 ON FRI. NEW DEVELOPING LOW MOV NE, EXP SE ICELAND 968 BY LTR ON FRI. STRG WINDS EXP ON TUENTVENING AND WED IN VIKING, N UTSI__,:_*.:_*!888_, FORTIES, CROMARTY, FORTH, TYNE, WOH_GALES EXP LTR IN VIKING, THE UTSIRES AND FAIR ISLE. THESE WINDS WILL DECREASE DURING THU BUT STRG WINDS EXP IN THE SOUTHERN N SEA AND ENGLISH CHANNEL LTR IN THPMWE_GALES EXP IN FAIR ISLE ON FRI WITH STRG WINDS IN ALL OTHER AREAS AT \nIMPJONGONNIIICZCZC",
    "clean_text": "ZCZC GE24\nEXTENDED OUTLOOK\nTUE TO FRI\nISSUER_QG_M_ET\nZ_!_\n)0$'_.+._$0._6__!,88(_\n(_9-'5_7-4$ -_3,:6_\n__\n_5,_7__MHCH+++_(_373LH_H PRESSURE OVER THE SH_S__ ULILPIL\nG G__ TUE EVENING WILL DRIFT E WITH NEW HIGH EX_MJZCHDPYMLSH_XM\nVDPPMGLEM_FW__MZ_M_PWMLP_ZYXMU__. MEANWHILE, DEVELOPING LOW WILL MOV NE, EXP ICELAND 978 BY WED EVENING WITH IGDB_GS _A\nHSVMOK_YQ\nK__Q_Q_\nH_LW\n_\nH\nQDZ_Y__F Q_JMSZUM_FS_MBZ__U_MMZMHDCM_FHDMPBGEWBNF_P BISCAY 1031 ON THU EV_NING, THEN FRANCE 1026 ON FRI. NEW DEVELOPING LOW MOV NE, EXP SE ICELAND 968 BY LTR ON FRI. STRG WINDS EXP ON TUENTVENING AND WED IN VIKING, N UTSI__,:_*.:_*!888_, FORTIES, CROMARTY, FORTH, TYNE, WOH_GALES EXP LTR IN VIKING, THE UTSIRES AND FAIR ISLE. THESE WINDS WILL DECREASE DURING THU BUT STRG WINDS EXP IN THE SOUTHERN N SEA AND ENGLISH CHANNEL LTR IN THPMWE_GALES EXP IN FAIR ISLE ON FRI WITH STRG WINDS IN ALL OTHER AREAS AT\nIMPJONGONNIIICZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "CROMARTY",
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention gales, ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Qdz y f q jmszum fs mbz u mmzmhdcm fhdmpbgewbnf p biscay 1031 on thu ev ning, then france 1026 on fri. new developing low mov ne, exp se iceland 968 by ltr on fri. strg winds exp on tuentvening and wed in viking, n utsi ,: .: !888 , forties, cromarty, forth, tyne, woh gales exp ltr in viking, the utsires and fair isle. these winds will decrease during thu but strg winds exp in the southern n sea and english channel ltr in thpmwe gales exp in fair isle on fri with strg winds in all other areas at",
      "G g tue evening will drift e with new high ex mjzchdpymlsh xm",
      "Vdppmglem fw mz m pwmlp zyxmu . meanwhile, developing low will mov ne, exp iceland 978 by wed evening with igdb gs a"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 40,
    "heading": "2026-04-06 04:00:18 AREA: G",
    "published_at": "2026-04-06 04:00:18",
    "area": "G",
    "message_id": "",
    "text": "ZCZC GB_\nCULLERCOATSRADIO\nGALE WYF_MJCWEM_H_WQRU UTC\n\nCROMARTY _ZYHDMH_IOGGER\nLE NOW CEASED \nNNNN",
    "clean_text": "ZCZC GB_\nCULLERCOATSRADIO\nGALE WYF_MJCWEM_H_WQRU UTC\n\nCROMARTY _ZYHDMH_IOGGER\nLE NOW CEASED\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "CULLERCOATS",
      "CULLERCOATSRADIO"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. Readable text says: Gale wyf mjcwem h wqru utc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gale wyf mjcwem h wqru utc",
      "Cullercoatsradio",
      "Cromarty zyhdmh iogger"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 41,
    "heading": "2026-04-06 03:59:21 AREA: T",
    "published_at": "2026-04-06 03:59:21",
    "area": "T",
    "message_id": "",
    "text": "ZCZCV_A\nU\n\n_YW UTC NOV\nBALTICSPM_\nM_Y_M_\nYUGSGSSMYPJOARB_XET_B_INFOC\nWWW.SMHI.SE/!/0*_6\n!_09,+9_9=__==========_*__ZCZC",
    "clean_text": "ZCZCV_A\nU\n\n_YW UTC NOV\nBALTICSPM_\nM_Y_M_\nYUGSGSSMYPJOARB_XET_B_INFOC\nWWW.SMHI.SE/!/0*_6\n!_09,+9_9=__==========_*__ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Yw utc nov. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Yw utc nov",
      "Balticspm",
      "Yugsgssmypjoarb xet b infoc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 42,
    "heading": "2026-04-06 03:44:46 AREA: T",
    "published_at": "2026-04-06 03:44:46",
    "area": "T",
    "message_id": "",
    "text": "ZCZCM_PANIEL BUOYM\nH_P__ONNIKKKKKKKKKKKKKKK_\nGULF OGMYF__BH_K_AS 14-17_S. TU_SDAY MZ_H__EFEU_HHI_I_D_LGQS\nPIWZ__K_MWPXY_B__HQK__ _MP_SKGIL_S_GT_VBL_HPNBH_B_W_T MONDAY D_M MO__\n_HPQZ_QRAQCBM/S. TUES_Z__VZRI M_IRWRPQ_RCHIP\nLU_!___+*3_ OVEYF_DHM_Z_\nU_4OHL_IKQJB_ZZOCOXRKXXBHHPBD_LGQS_CPJWA_NWRPQE_ONNIIIV___D__C_KHCH_\nPWQPTO _HXM__JZBS_LTIC SEA NAV WARN \nUETUHOGJVZVXJMSOUTHEJHPYBHR__MZB_Z\nD NORLDPXB_KKDG__Q_WBIU\nF FINGAND, _KS_VN_BSERV_UB1_7_()__!___1 ___: .-4\n3'59,,+.__.((3__:\n___ _-_ +,_' _,_,2_,_-_1(_70(3B_N:(_\n___\n)_9_9,,:_(__7__!\n__2\nZCA_\n=!9,:,9_*_06.__53.094-48)6 -4+_6-_8008,_.=6\n__H__JGKG__-9_\n=_/_03.5__\n_IL__DG AP\nNNNN",
    "clean_text": "ZCZCM_PANIEL BUOYM\nH_P__ONNIKKKKKKKKKKKKKKK_\nGULF OGMYF__BH_K_AS 14-17_S. TU_SDAY MZ_H__EFEU_HHI_I_D_LGQS\nPIWZ__K_MWPXY_B__HQK__ _MP_SKGIL_S_GT_VBL_HPNBH_B_W_T MONDAY D_M MO__\n_HPQZ_QRAQCBM/S. TUES_Z__VZRI M_IRWRPQ_RCHIP\nLU_!___+*3_ OVEYF_DHM_Z_\nU_4OHL_IKQJB_ZZOCOXRKXXBHHPBD_LGQS_CPJWA_NWRPQE_ONNIIIV___D__C_KHCH_\nPWQPTO _HXM__JZBS_LTIC SEA NAV WARN\nUETUHOGJVZVXJMSOUTHEJHPYBHR__MZB_Z\nD NORLDPXB_KKDG__Q_WBIU\nF FINGAND, _KS_VN_BSERV_UB1_7_()__!___1 ___: .-4\n3'59,,+.__.((3__:\n___ _-_ +,_' _,_,2_,_-_1(_70(3B_N:(_\n___\n)_9_9,,:_(__7__!\n__2\nZCA_\n=!9,:,9_*_06.__53.094-48)6 -4+_6-_8008,_.=6\n__H__JGKG__-9_\n=_/_03.5__\n_IL__DG AP\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Zczcm paniel buoym. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Zczcm paniel buoym",
      "Uetuhogjvzvxjmsouthejhpybhr mzb z"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 43,
    "heading": "2026-04-06 03:44:25 AREA: E",
    "published_at": "2026-04-06 03:44:25",
    "area": "E",
    "message_id": "EA",
    "text": "ZCZC EA\n_AO__KBN_______4__8/:0_-_0\n66___)\n__,)_ 50-_+_:__9,_/:,_ \nNNNN",
    "clean_text": "ZCZC EA\n_AO__KBN_______4__8/:0_-_0\n66___)\n__,)_ 50-_+_:__9,_/:,_\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 44,
    "heading": "2026-04-06 03:43:16 AREA: E",
    "published_at": "2026-04-06 03:43:16",
    "area": "E",
    "message_id": "E",
    "text": "ZCZC E\nY__Z 234/26 \n__'_-._2_H_KUQB_JZCHDPJH_Y_J_\nSOUT\n _YWFFBSM_ B_OFB_B_XX_ SRPMRW U_S_ \nNNNN",
    "clean_text": "ZCZC E\nY__Z 234/26\n__'_-._2_H_KUQB_JZCHDPJH_Y_J_\nSOUT\n_YWFFBSM_ B_OFB_B_XX_ SRPMRW U_S_\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 45,
    "heading": "2026-04-06 03:42:47 AREA: E",
    "published_at": "2026-04-06 03:42:47",
    "area": "E",
    "message_id": "EA49",
    "text": "ZCZC EA49\n,__:7)/,! 61WZ 240+-_6_-'5,35. \nLS_MSPW_PMJZCHTYZL_D_DS. \nEA\n_P__I_NS_N_V_ _Q_XJZXX YP\nQ80\n__=6_82,'\n:0_1==0\n_\n,\n\n__7_ZCZC",
    "clean_text": "ZCZC EA49\n,__:7)/,! 61WZ 240+-_6_-'5,35.\nLS_MSPW_PMJZCHTYZL_D_DS.\nEA\n_P__I_NS_N_V_ _Q_XJZXX YP\nQ80\n__=6_82,'\n:0_1==0\n_\n,\n\n__7_ZCZC",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 47,
    "heading": "2026-04-06 03:35:44 AREA: P",
    "published_at": "2026-04-06 03:35:44",
    "area": "P",
    "message_id": "",
    "text": "ZCZC PB52__\n,_._=__9(3(49,_APR 23:30 UTC_DOGGER. B_YFDH\nFM_HUMBER. THAMES. DM_I__R_BNR\n_\nF V==0\n_\n\n____\n_ZCZC",
    "clean_text": "ZCZC PB52__\n,_._=__9(3(49,_APR 23:30 UTC_DOGGER. B_YFDH\nFM_HUMBER. THAMES. DM_I__R_BNR\n_\nF V==0\n_\n\n____\n_ZCZC",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 49,
    "heading": "2026-04-06 02:30:58 AREA: T",
    "published_at": "2026-04-06 02:30:58",
    "area": "T",
    "message_id": "",
    "text": "ZCZ_\n_\n191638 U\n_ _2026\nWZ 215/26\nGMDSS.\nMRCC DOVER.\nOF R/T SERVICE FROM BAUEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "clean_text": "ZCZ_\n_\n191638 U\n_ _2026\nWZ 215/26\nGMDSS.\nMRCC DOVER.\nOF R/T SERVICE FROM BAUEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Of r/t service from bauey site 51-59.6n 001-24.5e off air",
      "Mrcc dover"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 51,
    "heading": "2026-04-06 02:20:18 AREA: U",
    "published_at": "2026-04-06 02:20:18",
    "area": "U",
    "message_id": "UA70",
    "text": "ZCZC UA70\n052320 UTC APR 26\nMONDOLFOVYWFZONONYZQHKCBKKEL3_)4LBXMNHKQOHLKRONKQB_NBE_(_-JZ__FHF_MJPM_M__PPAFM_MGSLYPSSMFJSWONFM_JBIMOOKDED_38_+)_K__X_Z_\nIDU_Y_QU_'S NOT WORKING\n__C\nH\nIII___\nZCSC UA75\n052320 UTC APR 26\nCD_H\nBI\n_H_HSM_KE REW_TITIONW\nEFENTRAL ADRIATFC JPM_M_FPJXY_\nLIGHTHOUZE OF PESCARA I.L. 3871 (E2316.35 IN POSITION(\nLAT 42_27.9'NK- LONG 014 14.0'E\nNOT WORKING.\n_-_+\n7+ZCZC",
    "clean_text": "ZCZC UA70\n052320 UTC APR 26\nMONDOLFOVYWFZONONYZQHKCBKKEL3_)4LBXMNHKQOHLKRONKQB_NBE_(_-JZ__FHF_MJPM_M__PPAFM_MGSLYPSSMFJSWONFM_JBIMOOKDED_38_+)_K__X_Z_\nIDU_Y_QU_'S NOT WORKING\n__C\nH\nIII___\nZCSC UA75\n052320 UTC APR 26\nCD_H\nBI\n_H_HSM_KE REW_TITIONW\nEFENTRAL ADRIATFC JPM_M_FPJXY_\nLIGHTHOUZE OF PESCARA I.L. 3871 (E2316.35 IN POSITION(\nLAT 42_27.9'NK- LONG 014 14.0'E\nNOT WORKING.\n_-_+\n7+ZCZC",
    "display_region_heading": "Unresolved B1 code U",
    "display_region_label": "B1 code U",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code U. Readable text says: Lighthouze of pescara i.l. 3871 (e2316.35 in position(. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lighthouze of pescara i.l. 3871 (e2316.35 in position(",
      "Lat 42 27.9'nk- long 014 14.0'e",
      "Efentral adriatfc jpm m fpjxy"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 54,
    "heading": "2026-04-06 02:14:43 AREA: T",
    "published_at": "2026-04-06 02:14:43",
    "area": "T",
    "message_id": "",
    "text": "ZCZCK_A_\nOOSTED_LGAPPLYC_SPON_ZLJH_APJMZMHDPIII_X\nAVVF_JFJW\n_\nJP\nQ_,1_+6.!*3.!._$0.\n!_!(__9,9,9,_9,,_887\n\n7_ZCZC",
    "clean_text": "ZCZCK_A_\nOOSTED_LGAPPLYC_SPON_ZLJH_APJMZMHDPIII_X\nAVVF_JFJW\n_\nJP\nQ_,1_+6.!*3.!._$0.\n!_!(__9,9,9,_9,,_887\n\n7_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Avvf jfjw. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Avvf jfjw"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 55,
    "heading": "2026-04-06 02:13:26 AREA: T",
    "published_at": "2026-04-06 02:13:26",
    "area": "T",
    "message_id": "TA13",
    "text": "ZCZC TA13\n262038 UTCC_AR \n_OOSTENDERADIO MSI 132/26\nVA_RGEUL 1 \nLIGHTBUOY VG5, 51-24.7_N 002-56.7__2++_3-06,-17E  UNMARKED\nSHIPPING IS REQUESTED TO PASS AT__F_IIK0.2!*__0.2.+_._+.__$+6.+6._!*$.!._$0.\n!_!___9,9,_9,,888(ZCZC",
    "clean_text": "ZCZC TA13\n262038 UTCC_AR\n_OOSTENDERADIO MSI 132/26\nVA_RGEUL 1\nLIGHTBUOY VG5, 51-24.7_N 002-56.7__2++_3-06,-17E UNMARKED\nSHIPPING IS REQUESTED TO PASS AT__F_IIK0.2!*__0.2.+_._+.__$+6.+6._!*$.!._$0.\n!_!___9,9,_9,,888(ZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Lightbuoy vg5, 51-24.7 n 002-56.7 2 3-06,-17e unmarked. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lightbuoy vg5, 51-24.7 n 002-56.7 2 3-06,-17e unmarked"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 56,
    "heading": "2026-04-06 02:12:57 AREA: T",
    "published_at": "2026-04-06 02:12:57",
    "area": "T",
    "message_id": "",
    "text": "ZCZC TA1_\n_7+ __ .___B_E_AAQDUEKU__1_9XNRHKQ_HDPQCKQDWPYONTB_TG\nMJ_\n_VT_SG__\nANCHOR AND CHAIN LOJHMFM_ZJM\nH UYBY_T_\n_UTUE\n\nNNNN",
    "clean_text": "ZCZC TA1_\n_7+ __ .___B_E_AAQDUEKU__1_9XNRHKQ_HDPQCKQDWPYONTB_TG\nMJ_\n_VT_SG__\nANCHOR AND CHAIN LOJHMFM_ZJM\nH UYBY_T_\n_UTUE\n\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Anchor and chain lojhmfm zjm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Anchor and chain lojhmfm zjm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 58,
    "heading": "2026-04-06 02:10:24 AREA: T",
    "published_at": "2026-04-06 02:10:24",
    "area": "T",
    "message_id": "TA27",
    "text": "ZCZC TA27\n0314-\n__ \n.=-_4\nOODTENDERADIO MHI 147/26 \n33+\nOBJECT ON THE SEA_M_H __UY_N LNI_SHIPPING REQUESTEZ NOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THLS OBJECT.\nNNNN",
    "clean_text": "ZCZC TA27\n0314-\n__\n.=-_4\nOODTENDERADIO MHI 147/26\n33+\nOBJECT ON THE SEA_M_H __UY_N LNI_SHIPPING REQUESTEZ NOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THLS OBJECT.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Object on the sea m h uy n lni shipping requestez not to anchor nor to fish in a radius of 500 meter around thls object",
      "Oodtenderadio mhi 147/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 59,
    "heading": "2026-04-06 02:06:53 AREA: S",
    "published_at": "2026-04-06 02:06:53",
    "area": "S",
    "message_id": "SE82",
    "text": "ZCZC SE82\n052300 NAVTEX-HAMBURG (NCC)\n\nWEAHDPY_ZYP_J_M_ZYM_PYBMLF_DHONONG_Z_E_WIND: WEST TO NORTHWEST 5 TO 6, LATER VARIABLE WINDS ABOUT 3.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: FIRST 4 METER.\n\nTUESDAY:\nWIND: VARIABLE _INDS ABOUT 3, LATER SHIFTING EAST TO SOUTHEAST.\n/_!*!)!'!_3_5_70_$06_._ ++8__1_'*_$0__R.\nNNNN",
    "clean_text": "ZCZC SE82\n052300 NAVTEX-HAMBURG (NCC)\n\nWEAHDPY_ZYP_J_M_ZYM_PYBMLF_DHONONG_Z_E_WIND: WEST TO NORTHWEST 5 TO 6, LATER VARIABLE WINDS ABOUT 3.\nVISIBILITY/WEATHER: GOOD VISIBILITY.\nSEA: FIRST 4 METER.\n\nTUESDAY:\nWIND: VARIABLE _INDS ABOUT 3, LATER SHIFTING EAST TO SOUTHEAST.\n/_!*!)!'!_3_5_70_$06_._ ++8__1_'*_$0__R.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NAVTEX HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Germany - German Bight and German North Sea. Readable text says: Visibility/weather: good visibility. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Visibility/weather: good visibility",
      "Weahdpy zyp j m zym pybmlf dhonong z e wind: west to northwest 5 to 6, later variable winds about 3",
      "Wind: variable inds about 3, later shifting east to southeast"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 62,
    "heading": "2026-04-06 02:04:27 AREA: S",
    "published_at": "2026-04-06 02:04:27",
    "area": "S",
    "message_id": "SA80",
    "text": "ZCZC SA80\nNCC-HAMLCY_ON\n_D_PPMG_HXM_Y_\n_EIDER ESTUARY.\n'EIDER' LIGHTBUOY  54-16N 008-29E\nTEMPORARILY REPLACED BY UNLIT BUOY.\nNNNN",
    "clean_text": "ZCZC SA80\nNCC-HAMLCY_ON\n_D_PPMG_HXM_Y_\n_EIDER ESTUARY.\n'EIDER' LIGHTBUOY 54-16N 008-29E\nTEMPORARILY REPLACED BY UNLIT BUOY.\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: 'eider' lightbuoy 54-16n 008-29e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "'eider' lightbuoy 54-16n 008-29e",
      "Temporarily replaced by unlit buoy",
      "Eider estuary"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 63,
    "heading": "2026-04-06 02:03:31 AREA: S",
    "published_at": "2026-04-06 02:03:31",
    "area": "S",
    "message_id": "SA81",
    "text": "ZCZC SA81\nNCC-HAMBURG\n3113.,\n_ _/._6_\n__9,_\n_2-4,. NO. 191\nGERMAN BIGHT. SOUTHERLY WEISSE BANK.\nUNDERWATER OPERATIONS BY MV 'FUGRO QUEST', CS 'C6FO2',\nAROUND POSITION 54-46,6N 006-00,5E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS.\nBERTH OF 500 METERS REQUESTED.\nNNNN",
    "clean_text": "ZCZC SA81\nNCC-HAMBURG\n3113.,\n_ _/._6_\n__9,_\n_2-4,. NO. 191\nGERMAN BIGHT. SOUTHERLY WEISSE BANK.\nUNDERWATER OPERATIONS BY MV 'FUGRO QUEST', CS 'C6FO2',\nAROUND POSITION 54-46,6N 006-00,5E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS.\nBERTH OF 500 METERS REQUESTED.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Around position 54-46,6n 006-00,5e.",
    "decoded_highlights": [
      "Around position 54-46,6n 006-00,5e",
      "Restricted manoevrability during operations",
      "Underwater operations by mv 'fugro quest', cs 'c6fo2'"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 66,
    "heading": "2026-04-06 02:00:44 AREA: S",
    "published_at": "2026-04-06 02:00:44",
    "area": "S",
    "message_id": "SA85",
    "text": "ZCZC SA85\nNCC-HAMBURG\n020610 UH_V_V\n26\nNAV. WARN. NO. 196\nGERMAN BIGHT. NORTHWESTERLY OWF 'BARD OFFSHORE 1'.\nUXO SURVEYVLEON__\nM\nJGZ_PMYPJPY_', CS 'GWSJ_JM_YZCWMG___9!+_9$0__0___-54,2E\nRESTRICTED VRABILITY DURING OPERATIONS.\nSAFE BPYHDMZ._ ._9.60_:0*_02_NNNN",
    "clean_text": "ZCZC SA85\nNCC-HAMBURG\n020610 UH_V_V\n26\nNAV. WARN. NO. 196\nGERMAN BIGHT. NORTHWESTERLY OWF 'BARD OFFSHORE 1'.\nUXO SURVEYVLEON__\nM\nJGZ_PMYPJPY_', CS 'GWSJ_JM_YZCWMG___9!+_9$0__0___-54,2E\nRESTRICTED VRABILITY DURING OPERATIONS.\nSAFE BPYHDMZ._ ._9.60_:0*_02_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: German bight. northwesterly owf 'bard offshore 1'. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "German bight. northwesterly owf 'bard offshore 1'",
      "Uxo surveyvleon",
      "Restricted vrability during operations"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 67,
    "heading": "2026-04-06 02:00:16 AREA: S",
    "published_at": "2026-04-06 02:00:16",
    "area": "S",
    "message_id": "SA89",
    "text": "ZCZC SA89\nNCC-HAMBURG\n05(\n_5: -04 26\nNAV. WARN. NO. 201\nNAV. WARN. __+__.7__GXXPSSPW_NNNN",
    "clean_text": "ZCZC SA89\nNCC-HAMBURG\n05(\n_5: -04 26\nNAV. WARN. NO. 201\nNAV. WARN. __+__.7__GXXPSSPW_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Nav. warn. no. 201. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Nav. warn. no. 201",
      "Ncc-hamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 68,
    "heading": "2026-04-06 01:37:15 AREA: G",
    "published_at": "2026-04-06 01:37:15",
    "area": "G",
    "message_id": "GB44",
    "text": "ZCZC GB44\n 9__+=__+6_.*823.8Z_RIL 2147 UTC\n\n CROMARTY FORTH T_PMWZ_\n GALE NOW CEASED\nNNNN",
    "clean_text": "ZCZC GB44\n9__+=__+6_.*823.8Z_RIL 2147 UTC\n\nCROMARTY FORTH T_PMWZ_\nGALE NOW CEASED\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "CROMARTY"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Gale now ceased. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gale now ceased",
      "Cromarty forth t pmwz"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 69,
    "heading": "2026-04-06 01:32:37 AREA: N",
    "published_at": "2026-04-06 01:32:37",
    "area": "N",
    "message_id": "N",
    "text": "ZCZC N\nP__NU_I UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1          53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1         53-30N 006-14E FOGHORN INOPERATIVE\nK6-P_MMMMMMMMMMMM_HP_Y_G_EATWE FOGHORN INOPERATIVE\nK14-FB-_       53-11N 003-34E UNLIT\nK7-FA-1         53-34N 003-18E UNLIT\nCANCEL MSI 93/26\nNNNN",
    "clean_text": "ZCZC N\nP__NU_I UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1 53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1 53-30N 006-14E FOGHORN INOPERATIVE\nK6-P_MMMMMMMMMMMM_HP_Y_G_EATWE FOGHORN INOPERATIVE\nK14-FB-_ 53-11N 003-34E UNLIT\nK7-FA-1 53-34N 003-18E UNLIT\nCANCEL MSI 93/26\nNNNN",
    "display_region_heading": "Unresolved B1 code N",
    "display_region_label": "B1 code N",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code N. This is a weather bulletin; readable sections mention fog across the covered waters.",
    "decoded_highlights": [
      "N7-fa-1 53-30n 006-14e foghorn inoperative",
      "K6-p mmmmmmmmmmmm hp y g eatwe foghorn inoperative",
      "L2-fa-1 53-57n 004-29e foghorn unreliable"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 72,
    "heading": "2026-04-06 00:41:42 AREA: K",
    "published_at": "2026-04-06 00:41:42",
    "area": "K",
    "message_id": "KA28",
    "text": "ZCZC KA28\nWIGHT - LARGE CAYEUX-SUR-MER\nWORKS\nCABLE LAYING OPERATION\nFROM 050000 UTC MAR 26\nUNTILM_CYHDPYMZHF_PONGZM_FJDF_TRAWLING, DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50-10.44N 001-29.13E\n50-13.61N 001-21.02E\n50-15.86___\n_  ZBY_GP_N\nH _B_GX__ _ UBUGP_N\nH Z_CYGM\n_ Y_CCGPON\nH_UB  GMIIKK\n Y_ZP_50-19.36N 8, _ 7_63_0_,\n_ H__VVLON.::__,+DGKMNMHLO.::._:__9,,888_+: (-26\nAVURNAVERBOURG 26/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nAIS TRANSMITTERMZCHMZ_MJ_Y\nF__M\nMGSF_DHMCSFHONGLZCPPMLJJCYPSSPON\nH__PUBFG_\n__CBF_GPONG\nF_HPMIII_KVH_M_CHFZONGO__BWQW___W__ZB__UZJZJE_AVUQ\nIRISH SEA.\n__6$+_0.8!.6+__\n_\n8___+:+: 0_\n5__,H F_FMGCH_MYM\n_GALEWARNING, 0_== 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC KA28\nWIGHT - LARGE CAYEUX-SUR-MER\nWORKS\nCABLE LAYING OPERATION\nFROM 050000 UTC MAR 26\nUNTILM_CYHDPYMZHF_PONGZM_FJDF_TRAWLING, DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50-10.44N 001-29.13E\n50-13.61N 001-21.02E\n50-15.86___\n_ ZBY_GP_N\nH _B_GX__ _ UBUGP_N\nH Z_CYGM\n_ Y_CCGPON\nH_UB GMIIKK\nY_ZP_50-19.36N 8, _ 7_63_0_,\n_ H__VVLON.::__,+DGKMNMHLO.::._:__9,,888_+: (-26\nAVURNAVERBOURG 26/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nAIS TRANSMITTERMZCHMZ_MJ_Y\nF__M\nMGSF_DHMCSFHONGLZCPPMLJJCYPSSPON\nH__PUBFG_\n__CBF_GPONG\nF_HPMIII_KVH_M_CHFZONGO__BWQW___W__ZB__UZJZJE_AVUQ\nIRISH SEA.\n__6$+_0.8!.6+__\n_\n8___+:+: 0_\n5__,H F_FMGCH_MYM\n_GALEWARNING, 0_== 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOVER",
      "CAYEUX SUR MER",
      "WIGHT LARGE CAYEUX SUR MER",
      "DST MANCHE"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: Untilm cyhdpymzhf pongzm fjdf trawling, dredging, anchoring and diving within this area. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Untilm cyhdpymzhf pongzm fjdf trawling, dredging, anchoring and diving within this area",
      "Cable laying operation",
      "Ais transmittermzchmz mj y"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 73,
    "heading": "2026-04-06 00:41:08 AREA: K",
    "published_at": "2026-04-06 00:41:08",
    "area": "K",
    "message_id": "KA29",
    "text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER -._2*_._/$0.0*_9,_!2*._+.\n!__!+._$_0*9,_'!888_$_.):+3._._'!_$_.:'!_9,_)3+3._!6_.*:29,\n_ _7 _7G_\nPPWAQUMEPE\nNAVIGATE WITBM_CHFZONGONIII_ZCZC",
    "clean_text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER -._2*_._/$0.0*_9,_!2*._+.\n!__!+._$_0*9,_'!888_$_.):+3._._'!_$_.:'!_9,_)3+3._!6_.*:29,\n_ _7 _7G_\nPPWAQUMEPE\nNAVIGATE WITBM_CHFZONGONIII_ZCZC",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: Avurnav cherbourg 029/26. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Avurnav cherbourg 029/26",
      "Ppwaqumepe",
      "Navigate witbm chfzongoniii zczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 74,
    "heading": "2026-04-06 00:40:12 AREA: K",
    "published_at": "2026-04-06 00:40:12",
    "area": "K",
    "message_id": "KA40",
    "text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\nWIGHT - D82\nSPECIAL OP_RATIONS\n1. FIRING EXERCISE\nFROM 110730 UTC APR 26 TO 111500 UTC APR 26\nAREA BOUWPWMLE_49-59.92N 000-12.63W\n49-40.78__.\n____HGUON\nYZ_P_N 000-18.62W\n49-34.72N _ATTMQWW\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC APR 26\nNNNN",
    "clean_text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\nWIGHT - D82\nSPECIAL OP_RATIONS\n1. FIRING EXERCISE\nFROM 110730 UTC APR 26 TO 111500 UTC APR 26\nAREA BOUWPWMLE_49-59.92N 000-12.63W\n49-40.78__.\n____HGUON\nYZ_P_N 000-18.62W\n49-34.72N _ATTMQWW\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC APR 26\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: 1. firing exercise. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. firing exercise",
      "Avurnav cherbourg 40/26",
      "Special op rations"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 75,
    "heading": "2026-04-06 00:09:55 AREA: G",
    "published_at": "2026-04-06 00:09:55",
    "area": "G",
    "message_id": "GA61",
    "text": "ZCZC GA61\nWZ 180/26 \nHUMBER= \nR_C_ BZ_UVD\nH_I_F QV.*(10/2.\n_1_\n___,\n_.__ 53-15.___,\n__KW_Q__DUDGEORNWN__FRM. \nDUDGEON SOUTH BUOY 53-12.5N 001-25.6E UNLIT. \n_,,,,\n\n___+:+: _-89\n_*+ !*4*:_28,$ !-4..\n1. TURBINE HS2, 57_4'))_/._(7__,-) 8,90_8=3_\n0_2. __-12).\n_D\nN_\n_KKKKKKKKKKKKK_DTM_ZCZC",
    "clean_text": "ZCZC GA61\nWZ 180/26\nHUMBER=\nR_C_ BZ_UVD\nH_I_F QV.*(10/2.\n_1_\n___,\n_.__ 53-15.___,\n__KW_Q__DUDGEORNWN__FRM.\nDUDGEON SOUTH BUOY 53-12.5N 001-25.6E UNLIT.\n_,,,,\n\n___+:+: _-89\n_*+ !*4*:_28,$ !-4..\n1. TURBINE HS2, 57_4'))_/._(7__,-) 8,90_8=3_\n0_2. __-12).\n_D\nN_\n_KKKKKKKKKKKKK_DTM_ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Dudgeon south buoy 53-12.5n 001-25.6e unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Dudgeon south buoy 53-12.5n 001-25.6e unlit",
      "1. turbine hs2, 57 4')) /. (7 ,-) 8,90 8 3"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 76,
    "heading": "2026-04-06 00:09:23 AREA: T",
    "published_at": "2026-04-06 00:09:23",
    "area": "T",
    "message_id": "",
    "text": "ZCAC GA71\nWZ 204/26\nHUM_ER.=\nORWELL GAS FIELD _OJTHWESTWARDS.\n1. MET MAST 53-10.7N 002-/\n=3.\n2. CANCEL WZ 82/26 (GA42).\nNNNN",
    "clean_text": "ZCAC GA71\nWZ 204/26\nHUM_ER.=\nORWELL GAS FIELD _OJTHWESTWARDS.\n1. MET MAST 53-10.7N 002-/\n=3.\n2. CANCEL WZ 82/26 (GA42).\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Orwell gas field ojthwestwards.",
    "decoded_highlights": [
      "Orwell gas field ojthwestwards",
      "1. met mast 53-10.7n 002-/",
      "2. cancel wz 82/26 (ga42)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 77,
    "heading": "2026-04-06 00:08:54 AREA: G",
    "published_at": "2026-04-06 00:08:54",
    "area": "G",
    "message_id": "GA74",
    "text": "ZCZC GA74\nWZ 207/26 \nHUMBER. _\nRAVENSPURN NORTH GAS FIELD \n__(1:_0,7(_,:001-02.0E, UNLIT AND ALL NAVAIDS INOPERATIVE. \nNNNN",
    "clean_text": "ZCZC GA74\nWZ 207/26\nHUMBER. _\nRAVENSPURN NORTH GAS FIELD\n__(1:_0,7(_,:001-02.0E, UNLIT AND ALL NAVAIDS INOPERATIVE.\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: (1: 0,7( ,:001-02.0e, unlit and all navaids inoperative. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "(1: 0,7( ,:001-02.0e, unlit and all navaids inoperative",
      "Ravenspurn north gas field"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 78,
    "heading": "2026-04-06 00:08:29 AREA: T",
    "published_at": "2026-04-06 00:08:29",
    "area": "T",
    "message_id": "",
    "text": "UCZC GA81\nWZ 214/26 \nGMDSS. \nMRCC HUMBER. \nMF R/T SERVICE FROM CULLERCOATS SITE 55-04.4N 001-27.8W OFF_AIR. \nNNNN",
    "clean_text": "UCZC GA81\nWZ 214/26\nGMDSS.\nMRCC HUMBER.\nMF R/T SERVICE FROM CULLERCOATS SITE 55-04.4N 001-27.8W OFF_AIR.\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "CULLERCOATS"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "Mf r/t service from cullercoats site 55-04.4n 001-27.8w off air",
      "Mrcc humber"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 79,
    "heading": "2026-04-06 00:08:04 AREA: G",
    "published_at": "2026-04-06 00:08:04",
    "area": "G",
    "message_id": "GA83",
    "text": "ZCZC GA83\nWZ WQTXW_V\nGMDSS. \nMRCC DOV6\n_.9\n___.,/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR. \nNNNN",
    "clean_text": "ZCZC GA83\nWZ WQTXW_V\nGMDSS.\nMRCC DOV6\n_.9\n___.,/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "/t service from bawdsey site 51-59.6n 001-24.5e off air",
      "Wz wqtxw v"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 80,
    "heading": "2026-04-06 00:07:37 AREA: G",
    "published_at": "2026-04-06 00:07:37",
    "area": "G",
    "message_id": "GA94",
    "text": "ZCZC GA94\nWZ 226\nTYNE.\n'_)65_ 9!!'_943 $3.9_H_HZ_NWIND FAR\n.\nTURIFK __IH\nL\nA_MIN 00_-2 ._ UNLIT AND FOG SIGNAL INOPERATIVE\nNNNN",
    "clean_text": "ZCZC GA94\nWZ 226\nTYNE.\n'_)65_ 9!!'_943 $3.9_H_HZ_NWIND FAR\n.\nTURIFK __IH\nL\nA_MIN 00_-2 ._ UNLIT AND FOG SIGNAL INOPERATIVE\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "A min 00 -2 . unlit and fog signal inoperative"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 81,
    "heading": "2026-04-06 00:07:05 AREA: G",
    "published_at": "2026-04-06 00:07:05",
    "area": "G",
    "message_id": "GA02",
    "text": "ZCZC GA02\nWZ 223/26\nHUMBER. \nLEMAN GAS FIELD. \n1. PLATFORM 49/2 2._01.0___002-12.6E, UNLIT AND ALSM_FWJMFZ_PYHF\nPIBM_EL WZ 100/26 (GA52).\nNNN_ONNIII____ZCZC",
    "clean_text": "ZCZC GA02\nWZ 223/26\nHUMBER.\nLEMAN GAS FIELD.\n1. PLATFORM 49/2 2._01.0___002-12.6E, UNLIT AND ALSM_FWJMFZ_PYHF\nPIBM_EL WZ 100/26 (GA52).\nNNN_ONNIII____ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: 1. platform 49/2 2. 01.0 002-12.6e, unlit and alsm fwjmfz pyhf. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. platform 49/2 2. 01.0 002-12.6e, unlit and alsm fwjmfz pyhf",
      "Leman gas field",
      "Pibm el wz 100/26 (ga52)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 82,
    "heading": "2026-04-06 00:06:34 AREA: G",
    "published_at": "2026-04-06 00:06:34",
    "area": "G",
    "message_id": "GA04",
    "text": "ZCZC GA04\nWZ 225/26\nGMDSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W OFF AIR.\n2. CANCEL WZ 213/26 (GA80).\nOFONNIIIU_ZCZC",
    "clean_text": "ZCZC GA04\nWZ 225/26\nGMDSS.\nMRCC SHETLAND.\n1. MF R/T AND DSC SERVICES FROM GREGNESS SITE 57-07.7N 002-03.2W OFF AIR.\n2. CANCEL WZ 213/26 (GA80).\nOFONNIIIU_ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "1. mf r/t and dsc services from gregness site 57-07.7n 002-03.2w off air",
      "Mrcc shetland",
      "2. cancel wz 213/26 (ga80)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 83,
    "heading": "2026-04-06 00:06:03 AREA: G",
    "published_at": "2026-04-06 00:06:03",
    "area": "G",
    "message_id": "GA07",
    "text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLA_FZYBM__ZT_P_P_MH_ _N 002-29.1E, FOG SIGNAL INOPJRATIV .\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "clean_text": "ZCZC GA07\nWZ 226/26\nHUMBER.\nBESSEMER GAS FIELD.\n1. PLA_FZYBM__ZT_P_P_MH_ _N 002-29.1E, FOG SIGNAL INOPJRATIV .\n2. CANCEL WZ 104/26 (GA54).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "BESSEMER GAS FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. pla fzybm zt p p mh n 002-29.1e, fog signal inopjrativ",
      "Bessemer gas field",
      "2. cancel wz 104/26 (ga54)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 84,
    "heading": "2026-04-06 00:00:11 AREA: G",
    "published_at": "2026-04-06 00:00:11",
    "area": "G",
    "message_id": "GE23",
    "text": "ZCZC GE23\n ISSUED BY THE MET OFFICE AT \nU MGZMJCM_APR\n\n GALE WARNINGS: VIKING FORTIES CROMARTY FORTH TYNE DOGGER FAIR ISLE\n\n THE GENERAL SITUATION AT MIDDAY\n LOW SE ICELAND 988 LO_NN_MFHJMFWPHFH_ONONM_HR FORECASTS\n\n VIKING FORTIES\n W OR NW MAINLY 6 TO GALE 8, BUT SEV GALE 9 AT FIRST IN EASTERN S UTSIRE, BEXM\n_LOK_H_PDPWY8)$'_07___) \n0,_)\n_) )5__\n1____OTHERWISE ROUGH OR VERY ROUGH, BECMG MOD OR ROUGH LTR. SQUALLY SHWRS. MOD OR GOOD, OCNL POOR AT FIRST\n\n CROMARTY FORTH TYNE DOGGER\n W 9:'_ _AT FIRST, BACK S OR SE 3 _OMWHMGSHY_IN NE DOGGER, ROUGH OR VERY ROUGH, BECMG MOD LTR, BUT ELSEWHERE, MOD OR ROUGH BECMG SLT OR MOA\nBMGJD_QJ\n_MGBZWMZYM_ZZWONONMGDC_LPYMHD_PJON_GUM__MGHZM\n_MG_M_M\nYL_PA\n__.\n8!_76.__$0..+6.*0._..__+.__._'_6,___0.$:_)06_.6+:++___'_.+6__.29:/_._ '.995_ 94 ')5 )___XSNE__VO_OD\n\n _CZ__E__Y\nBP_CSB\n_ POOR\n\n _ZUTLOOU FW _ KZOU_S__IKX_NMGJ_Y_MA__J\n_T_W FORTIES, CROMARTY, FORTH, TYNE, W DOGGER AJM_FYMFJP_IIK___!-:\n+.*_6_._!2*.!+.__'_4+__+!!!_7_+=+: _-259\n__2 )\n5_$=_8(8,_. \nBERYL OIL FIELD. \n1. BERYL SPM3 BUOY 59_31.7N 001_33.5E TEMPORARILY REMOVEO. \n2. CA CEL WZ 1_3/_6 (\n___NZ_OI_ZF_Q_EB5,__3__)____ZCZ_ Y_LQA\n GAAM\n_PUTHWARKI_3_2.''./_!2*.!+PYHF\nP__O_VNNN_\n\nZCZC",
    "clean_text": "ZCZC GE23\nISSUED BY THE MET OFFICE AT\nU MGZMJCM_APR\n\nGALE WARNINGS: VIKING FORTIES CROMARTY FORTH TYNE DOGGER FAIR ISLE\n\nTHE GENERAL SITUATION AT MIDDAY\nLOW SE ICELAND 988 LO_NN_MFHJMFWPHFH_ONONM_HR FORECASTS\n\nVIKING FORTIES\nW OR NW MAINLY 6 TO GALE 8, BUT SEV GALE 9 AT FIRST IN EASTERN S UTSIRE, BEXM\n_LOK_H_PDPWY8)$'_07___)\n0,_)\n_) )5__\n1____OTHERWISE ROUGH OR VERY ROUGH, BECMG MOD OR ROUGH LTR. SQUALLY SHWRS. MOD OR GOOD, OCNL POOR AT FIRST\n\nCROMARTY FORTH TYNE DOGGER\nW 9:'_ _AT FIRST, BACK S OR SE 3 _OMWHMGSHY_IN NE DOGGER, ROUGH OR VERY ROUGH, BECMG MOD LTR, BUT ELSEWHERE, MOD OR ROUGH BECMG SLT OR MOA\nBMGJD_QJ\n_MGBZWMZYM_ZZWONONMGDC_LPYMHD_PJON_GUM__MGHZM\n_MG_M_M\nYL_PA\n__.\n8!_76.__$0..+6.*0._..__+.__._'_6,___0.$:_)06_.6+:++___'_.+6__.29:/_._ '.995_ 94 ')5 )___XSNE__VO_OD\n\n_CZ__E__Y\nBP_CSB\n_ POOR\n\n_ZUTLOOU FW _ KZOU_S__IKX_NMGJ_Y_MA__J\n_T_W FORTIES, CROMARTY, FORTH, TYNE, W DOGGER AJM_FYMFJP_IIK___!-:\n+.*_6_._!2*.!+.__'_4+__+!!!_7_+=+: _-259\n__2 )\n5_$=_8(8,_.\nBERYL OIL FIELD.\n1. BERYL SPM3 BUOY 59_31.7N 001_33.5E TEMPORARILY REMOVEO.\n2. CA CEL WZ 1_3/_6 (\n___NZ_OI_ZF_Q_EB5,__3__)____ZCZ_ Y_LQA\nGAAM\n_PUTHWARKI_3_2.''./_!2*.!+PYHF\nP__O_VNNN_\n\nZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOGGER",
      "CROMARTY",
      "TYNE",
      "BERYL OIL FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gale warnings: viking forties cromarty forth tyne dogger fair isle",
      "W or nw mainly 6 to gale 8, but sev gale 9 at first in eastern s utsire, bexm",
      "Low se iceland 988 lo nn mfhjmfwphfh ononm hr forecasts"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 1,
    "heading": "2026-04-05 23:45:17 AREA: E",
    "published_at": "2026-04-05 23:45:17",
    "area": "E",
    "message_id": "EA21",
    "text": "ZCZC EA21\nWZ 182/26 \nLUNDY. \nSPANIEL BUOY 51-38.1N 004-39.7W UNLIT.\nNNNN",
    "clean_text": "ZCZC EA21\nWZ 182/26\nLUNDY.\nSPANIEL BUOY 51-38.1N 004-39.7W UNLIT.\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "LUNDY",
      "SPANIEL BUOY"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. Readable text says: Spaniel buoy 51-38.1n 004-39.7w unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Spaniel buoy 51-38.1n 004-39.7w unlit"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 2,
    "heading": "2026-04-05 23:44:56 AREA: E",
    "published_at": "2026-04-05 23:44:56",
    "area": "E",
    "message_id": "EA22",
    "text": "ZCZC EA22\nWZ 185/26 \nWIGHT. \n_002'0*.'!_$_.___NZXLBG.:,$$:__.!+_06_!\n0__8_\nNNNN",
    "clean_text": "ZCZC EA22\nWZ 185/26\nWIGHT.\n_002'0*.'!_$_.___NZXLBG.:,$$:__.!+_06_!\n0__8_\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WIGHT"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 3,
    "heading": "2026-04-05 23:44:36 AREA: E",
    "published_at": "2026-04-05 23:44:36",
    "area": "E",
    "message_id": "EA27",
    "text": "ZCZC EA27\nWZ 192/26 \nLUNDY. \nLAVERNOCK SPIT BUOY 51-23.0N 003-10.8W UNLIT. \n \nNNNN",
    "clean_text": "ZCZC EA27\nWZ 192/26\nLUNDY.\nLAVERNOCK SPIT BUOY 51-23.0N 003-10.8W UNLIT.\n\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "LUNDY"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. Readable text says: Lavernock spit buoy 51-23.0n 003-10.8w unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lavernock spit buoy 51-23.0n 003-10.8w unlit"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 4,
    "heading": "2026-04-05 23:43:48 AREA: T",
    "published_at": "2026-04-05 23:43:48",
    "area": "T",
    "message_id": "",
    "text": "ZC_C EA4___/_-._0_5-$\n______Z_ 001-24.5E OFF AIR. \nNN_N\nI_ZCZC",
    "clean_text": "ZC_C EA4___/_-._0_5-$\n______Z_ 001-24.5E OFF AIR.\nNN_N\nI_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 5,
    "heading": "2026-04-05 23:42:55 AREA: E",
    "published_at": "2026-04-05 23:42:55",
    "area": "E",
    "message_id": "",
    "text": "ZCZC EAGO_\n OAMP__IT_EMO_G_J___K__YYFSMLK__M\n_FJOC007-48.5_2 7,_85. \n\nNNNN",
    "clean_text": "ZCZC EAGO_\nOAMP__IT_EMO_G_J___K__YYFSMLK__M\n_FJOC007-48.5_2 7,_85.\n\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 6,
    "heading": "2026-04-05 23:40:12 AREA: E",
    "published_at": "2026-04-05 23:40:12",
    "area": "E",
    "message_id": "EE04",
    "text": "ZCZC EE04\nISSUED BY THE MET OFFICE AT 1900 ON SUN 05 APR\n\n\nGALE WARNINGS: SOLE\n\nTHE GENERAL SITUATION AT MIDDAY\nLOW SE ICELAND 988 LOSING ITS IDENTITY\n\n24-HR FORECASTS\n\nTHAMES DOVER WIGHT\nW 4 TO 6 BECMG VRB 2 TO 4, THEN E OR SE 3 TO 5 LTR. IN NE HUMBER, ROUGH BECMG MOD, BUT ELSEWHERE, SLT OR MOD, BECMG SMOOTH OR SLT LTR. SHWRS. GOOD\n\nPORTLAND PLYMOUTH_CAY\nVRB 2 TO 4 BECMG SE 4 TO 6. MOD OR ROUGD_M_3:._ ')5 94 .9$ )\n4. MAINLY FAIWQ_NBPOOD\n\nFITZROY SOLE\nCYCLONIC 3 TO 5 AT FIRST IN S FITZROY, OTHERWISE S OR SE 4 TO 6, INCR 7 OR GALE 8 FOR A TIME IN W SOLE. MOD OR ROUGH, BECMG VERY ROUGH OR HIGH LTR IN NW FITZROY AND W SOLE. OCCASIONAL RAIN. GOOD, OCNL POOR LTR\nT\n__BACK SE, 4 TB __\nTO_DA 3 AT FIRST. MOD OR ROSGH, BEC_ ZTUHR MOD IN LUNDY Z\n\nLT__YZF QPAALTDLF _\n__\nH_=0/2__24 H_K OF STRG WINDS AN WIGHT, PORTLNWPOMG_BZ_HDMWB_1_(1+___+_!!!_ZCZC",
    "clean_text": "ZCZC EE04\nISSUED BY THE MET OFFICE AT 1900 ON SUN 05 APR\n\nGALE WARNINGS: SOLE\n\nTHE GENERAL SITUATION AT MIDDAY\nLOW SE ICELAND 988 LOSING ITS IDENTITY\n\n24-HR FORECASTS\n\nTHAMES DOVER WIGHT\nW 4 TO 6 BECMG VRB 2 TO 4, THEN E OR SE 3 TO 5 LTR. IN NE HUMBER, ROUGH BECMG MOD, BUT ELSEWHERE, SLT OR MOD, BECMG SMOOTH OR SLT LTR. SHWRS. GOOD\n\nPORTLAND PLYMOUTH_CAY\nVRB 2 TO 4 BECMG SE 4 TO 6. MOD OR ROUGD_M_3:._ ')5 94 .9$ )\n4. MAINLY FAIWQ_NBPOOD\n\nFITZROY SOLE\nCYCLONIC 3 TO 5 AT FIRST IN S FITZROY, OTHERWISE S OR SE 4 TO 6, INCR 7 OR GALE 8 FOR A TIME IN W SOLE. MOD OR ROUGH, BECMG VERY ROUGH OR HIGH LTR IN NW FITZROY AND W SOLE. OCCASIONAL RAIN. GOOD, OCNL POOR LTR\nT\n__BACK SE, 4 TB __\nTO_DA 3 AT FIRST. MOD OR ROSGH, BEC_ ZTUHR MOD IN LUNDY Z\n\nLT__YZF QPAALTDLF _\n__\nH_=0/2__24 H_K OF STRG WINDS AN WIGHT, PORTLNWPOMG_BZ_HDMWB_1_(1+___+_!!!_ZCZC",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WIGHT",
      "LUNDY",
      "PORTLAND"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - English Channel and western approaches. This is a weather bulletin; readable sections mention ice, rain across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Cyclonic 3 to 5 at first in s fitzroy, otherwise s or se 4 to 6, incr 7 or gale 8 for a time in w sole. mod or rough, becmg very rough or high ltr in nw fitzroy and w sole. occasional rain. good, ocnl poor ltr",
      "Gale warnings: sole",
      "Issued by the met office at 1900 on sun 05 apr"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 7,
    "heading": "2026-04-05 22:31:18 AREA: V",
    "published_at": "2026-04-05 22:31:18",
    "area": "V",
    "message_id": "VA63",
    "text": "ZCZC VA63\n081002_4_3_6/._*+_\nWZ 183/26 \nTHAMES. \nEAST ANGLIA ONE WIND FARM. \nTURBINE G27, 52-09.8N 002-33.5E, FOG SIGNAL IOEVYGG__DGCU_V_3_'- +:: 2_(_M EUROPE IN AE_A BOUNDED BY :\n=61 __(__/=8,____$.60_:0(_029_\n_:-,:3) 5_8\n_ZCZC",
    "clean_text": "ZCZC VA63\n081002_4_3_6/._*+_\nWZ 183/26\nTHAMES.\nEAST ANGLIA ONE WIND FARM.\nTURBINE G27, 52-09.8N 002-33.5E, FOG SIGNAL IOEVYGG__DGCU_V_3_'- +:: 2_(_M EUROPE IN AE_A BOUNDED BY :\n=61 __(__/=8,____$.60_:0(_029_\n_:-,:3) 5_8\n_ZCZC",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Turbine g27, 52-09.8n 002-33.5e, fog signal ioevygg dgcu v 3 '- :: 2 ( m europe in ae a bounded by",
      "East anglia one wind farm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 9,
    "heading": "2026-04-05 22:20:11 AREA: U",
    "published_at": "2026-04-05 22:20:11",
    "area": "U",
    "message_id": "UE43",
    "text": "ZCZC UE43\n051920 UTC_A__\n_WY\nMONDOLFO RADIO\n\nWEATHER FORECAST OVER MEDITERRANEAN AREAS ISSUED BY ROME METEOROLOGY CENTRE AT 18/UTC OF 05/04/2_\nAND VALID UP TO 06/UTC_ 06QTUUE_ WARNINGS:\nTHUNDERSTOY_JM WPYM_ZCYJP__MV_S_NDERSTORMS FORECAST: _FS_N_SPAMC__OURSE: NIL\nGALES FORECAST: NIL\n2. WEATHER S_HCHFZ__ONGFJHLFSFH_MYPMSSMX_ AROUND IS WEAKENING. INSTABILITY AREA\nOVER LIBTJ\n_L_S_H_TNING. HIGH AND FLAT FIELD OF 1026 HPA OVER\nWEST-CENTRAL MEDITERRANEAN SEA. FLAT FI _8 B___MTO_Z_XBXZYGL_I_\nI_AZ_V_\n3. FORECAST TO 06/UTC OF 06/04/2026 AND _2 (_974' 975)99(:\nNORTHERN ADRIATIC SEA: SOUTHEASTERLY 2 -FAIR -GOOD VISIBILITY\nDECREASING -GLED SEA / OUTLOOK: VARIABLE 2 -FAIR\nNM_TRAL ADRIATIC SEA: NORTHWESTERLY 2 BECOMING WEAK AND VARIABLE\n-FAIR -VERY GOOD VISIBILITY DECREASING -SMOOTH SEA WEAKENING NORTH\nSECTOR / OUTLOOK: VARIABLE 2 -FAIR.\nON ADRIATIC SEA: OYHD_PJ_PYS_M__F_SZFA_ING OVER\nOTRANT__CHANNEL -FA_R -_-' !418/UTC OF TOMORROW\nNORTHERN ADRIATIC SEA: WESTERLY 1 SEA 09_*+:_$0*_06'3._7._*0_,\n_5_80*_0_'3._ ._*0.\n_45*+:_$06'3._4.5*\n__\n_CENTRAL ADR_AEIC_S NORT\nERLY 2 SEA 1/SOUTHWESTERLY 1 SEA\n0/NORTSWESTERL 2 SEA _534)6 2 SEA 1\nSOUTHERN ADRIATIC SEA: NORTHWESTERLY 2 SEA 2/WESTERLY 2 SEA\nQXWESTERLY 3 SEA 2/WESTERLY 2 SEA 1\n\nEN_ _PH_Z_YI_ONGONR_D___I__T_CC___WFFUUUF_ZO____ZCZC",
    "clean_text": "ZCZC UE43\n051920 UTC_A__\n_WY\nMONDOLFO RADIO\n\nWEATHER FORECAST OVER MEDITERRANEAN AREAS ISSUED BY ROME METEOROLOGY CENTRE AT 18/UTC OF 05/04/2_\nAND VALID UP TO 06/UTC_ 06QTUUE_ WARNINGS:\nTHUNDERSTOY_JM WPYM_ZCYJP__MV_S_NDERSTORMS FORECAST: _FS_N_SPAMC__OURSE: NIL\nGALES FORECAST: NIL\n2. WEATHER S_HCHFZ__ONGFJHLFSFH_MYPMSSMX_ AROUND IS WEAKENING. INSTABILITY AREA\nOVER LIBTJ\n_L_S_H_TNING. HIGH AND FLAT FIELD OF 1026 HPA OVER\nWEST-CENTRAL MEDITERRANEAN SEA. FLAT FI _8 B___MTO_Z_XBXZYGL_I_\nI_AZ_V_\n3. FORECAST TO 06/UTC OF 06/04/2026 AND _2 (_974' 975)99(:\nNORTHERN ADRIATIC SEA: SOUTHEASTERLY 2 -FAIR -GOOD VISIBILITY\nDECREASING -GLED SEA / OUTLOOK: VARIABLE 2 -FAIR\nNM_TRAL ADRIATIC SEA: NORTHWESTERLY 2 BECOMING WEAK AND VARIABLE\n-FAIR -VERY GOOD VISIBILITY DECREASING -SMOOTH SEA WEAKENING NORTH\nSECTOR / OUTLOOK: VARIABLE 2 -FAIR.\nON ADRIATIC SEA: OYHD_PJ_PYS_M__F_SZFA_ING OVER\nOTRANT__CHANNEL -FA_R -_-' !418/UTC OF TOMORROW\nNORTHERN ADRIATIC SEA: WESTERLY 1 SEA 09_*+:_$0*_06'3._7._*0_,\n_5_80*_0_'3._ ._*0.\n_45*+:_$06'3._4.5*\n__\n_CENTRAL ADR_AEIC_S NORT\nERLY 2 SEA 1/SOUTHWESTERLY 1 SEA\n0/NORTSWESTERL 2 SEA _534)6 2 SEA 1\nSOUTHERN ADRIATIC SEA: NORTHWESTERLY 2 SEA 2/WESTERLY 2 SEA\nQXWESTERLY 3 SEA 2/WESTERLY 2 SEA 1\n\nEN_ _PH_Z_YI_ONGONR_D___I__T_CC___WFFUUUF_ZO____ZCZC",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "MONDOLFO RADIO"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Italy - Adriatic Sea and central Italian coast. This is a weather bulletin; readable sections mention gales across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gales forecast: nil",
      "Northern adriatic sea: southeasterly 2 -fair -good visibility",
      "-fair -very good visibility decreasing -smooth sea weakening north"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 13,
    "heading": "2026-04-05 22:15:48 AREA: T",
    "published_at": "2026-04-05 22:15:48",
    "area": "T",
    "message_id": "TA11",
    "text": "ZCZC TA11\n2610!7.= 5: .-49._9-!_(-$31($-_1_9XGHKP_HAAQDIKCSEXEE_ASQD__J_B_BDWFFKEABED IN FOLLOWING POSITIONS\n51 17,352N 002 56,610E\n51 17,281N 002 56,553E\nSHIPPING IS REQUESTED NOT TO ANCHOR NOR FISH IN THE VICINITY\n\n\nNNNN",
    "clean_text": "ZCZC TA11\n2610!7.= 5: .-49._9-!_(-$31($-_1_9XGHKP_HAAQDIKCSEXEE_ASQD__J_B_BDWFFKEABED IN FOLLOWING POSITIONS\n51 17,352N 002 56,610E\n51 17,281N 002 56,553E\nSHIPPING IS REQUESTED NOT TO ANCHOR NOR FISH IN THE VICINITY\n\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Shipping is requested not to anchor nor fish in the vicinity",
      "2610!7. 5: .-49. 9-! (-$31($- 1 9xghkp haaqdikcsexee asqd j b bdwffkeabed in following positions"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 15,
    "heading": "2026-04-05 22:14:30 AREA: D",
    "published_at": "2026-04-05 22:14:30",
    "area": "D",
    "message_id": "D",
    "text": "ZCZC D\n_GT___4/361_2/1 -4 \nOOSTENDERADIO MSI 132/26\nVAARVB_R_B_L 12\n__N 002-56.78E DRIFTING \nSHIPPING IS REQUESTED TO REPORT SIGHTING \nTO OSTEND COASTGUARD\nNNNN",
    "clean_text": "ZCZC D\n_GT___4/361_2/1 -4\nOOSTENDERADIO MSI 132/26\nVAARVB_R_B_L 12\n__N 002-56.78E DRIFTING\nSHIPPING IS REQUESTED TO REPORT SIGHTING\nTO OSTEND COASTGUARD\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. Readable text says: N 002-56.78e drifting. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "N 002-56.78e drifting",
      "Shipping is requested to report sighting",
      "To ostend coastguard"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 16,
    "heading": "2026-04-05 22:14:02 AREA: T",
    "published_at": "2026-04-05 22:14:02",
    "area": "T",
    "message_id": "TU",
    "text": "ZCZC TU\n___OQITQ UTC MAR\nHOOSTENDERADIO MSI 134/26\nTSS-WEST_I_DEK\nCM/ '5_._,:_ 6\n_=--_+\n75\n_+\n__75+\n___0N 002-39.57E\n\nNNNN",
    "clean_text": "ZCZC TU\n___OQITQ UTC MAR\nHOOSTENDERADIO MSI 134/26\nTSS-WEST_I_DEK\nCM/ '5_._,:_ 6\n_=--_+\n75\n_+\n__75+\n___0N 002-39.57E\n\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "U",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 19,
    "heading": "2026-04-05 22:11:29 AREA: T",
    "published_at": "2026-04-05 22:11:29",
    "area": "T",
    "message_id": "TA27",
    "text": "ZCZC TA27\n__++*_02062!+._*!_X_MHKQBNBX_VPVAOSGOKCTECTLMJ 5 51-27.16N 002-42.65E\nSHIPPXGP\nG REQTNOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THIS OBJECT.\nNNNN",
    "clean_text": "ZCZC TA27\n__++*_02062!+._*!_X_MHKQBNBX_VPVAOSGOKCTECTLMJ 5 51-27.16N 002-42.65E\nSHIPPXGP\nG REQTNOT TO ANCHOR NOR TO FISH IN A RADIUS OF 500 METER AROUND THIS OBJECT.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions near 51-27.16N 002-42.65E, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "G reqtnot to anchor nor to fish in a radius of 500 meter around this object",
      "Shippxgp"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 20,
    "heading": "2026-04-05 22:10:17 AREA: T",
    "published_at": "2026-04-05 22:10:17",
    "area": "T",
    "message_id": "TE10",
    "text": "ZCZC TE10\n051910 UTC APR\nOOSTENDERADIO WX 10/26\nTHAMES:\n_7.__._20_6._+._6)__59.94492._+6!_DOVER:\nW 4-5, _$3:4 59 =4_ _1-2 TO_ZWXZUM_ZXFOS\nWN_V1-2 TOMORROW MORNING.\nALL REGIO_S:\nTHIS EVENING VRB CLOUDIN__N_WITH AMOD D_RINJ SH. TONIGHT AND TOMO_ MORNING MOD VIS ALONG THE CONTINENTA\nVCOAST.\n\nNNNN",
    "clean_text": "ZCZC TE10\n051910 UTC APR\nOOSTENDERADIO WX 10/26\nTHAMES:\n_7.__._20_6._+._6)__59.94492._+6!_DOVER:\nW 4-5, _$3:4 59 =4_ _1-2 TO_ZWXZUM_ZXFOS\nWN_V1-2 TOMORROW MORNING.\nALL REGIO_S:\nTHIS EVENING VRB CLOUDIN__N_WITH AMOD D_RINJ SH. TONIGHT AND TOMO_ MORNING MOD VIS ALONG THE CONTINENTA\nVCOAST.\n\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Belgium - Belgian coast and southern North Sea. Readable text says: This evening vrb cloudin n with amod d rinj sh. tonight and tomo morning mod vis along the continenta. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "This evening vrb cloudin n with amod d rinj sh. tonight and tomo morning mod vis along the continenta",
      "Wn v1-2 tomorrow morning",
      "All regio s"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 22,
    "heading": "2026-04-05 22:06:55 AREA: S",
    "published_at": "2026-04-05 22:06:55",
    "area": "S",
    "message_id": "SA75",
    "text": "ZCZC SA75\nNCC-HAMBURG\n2:___MG_HXM_Y_\n_NAV. WARN. NO_BM FPONGPJHMYFJFMFJSWJ_BGQCF_H_ 'JUIST-N'  LIGHTBUOY  53-44N  006-55E MISSING.\nNNNN",
    "clean_text": "ZCZC SA75\nNCC-HAMBURG\n2:___MG_HXM_Y_\n_NAV. WARN. NO_BM FPONGPJHMYFJFMFJSWJ_BGQCF_H_ 'JUIST-N' LIGHTBUOY 53-44N 006-55E MISSING.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Nav. warn. no bm fpongpjhmyfjfmfjswj bgqcf h 'juist-n' lightbuoy 53-44n 006-55e missing. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Nav. warn. no bm fpongpjhmyfjfmfjswj bgqcf h 'juist-n' lightbuoy 53-44n 006-55e missing",
      "Ncc-hamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 23,
    "heading": "2026-04-05 22:06:17 AREA: S",
    "published_at": "2026-04-05 22:06:17",
    "area": "S",
    "message_id": "SA79",
    "text": "ZCZC SA79\nNCC-H_LCY_ON\nP_F__MG_HXM_KM_AV. WARN. NO. 187\nGERMAN BIGHT.\nOFFSHORE WINDPARK 'NORDSEE OST'.\n5 SM LIGHTING INOPERATIVE ACROSS THE ENTIRE WIND FARM.\nNNNN",
    "clean_text": "ZCZC SA79\nNCC-H_LCY_ON\nP_F__MG_HXM_KM_AV. WARN. NO. 187\nGERMAN BIGHT.\nOFFSHORE WINDPARK 'NORDSEE OST'.\n5 SM LIGHTING INOPERATIVE ACROSS THE ENTIRE WIND FARM.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "GERMAN BIGHT"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: 5 sm lighting inoperative across the entire wind farm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "5 sm lighting inoperative across the entire wind farm",
      "German bight",
      "Offshore windpark 'nordsee ost'"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 29,
    "heading": "2026-04-05 22:01:31 AREA: S",
    "published_at": "2026-04-05 22:01:31",
    "area": "S",
    "message_id": "SA89",
    "text": "ZCZC SA89\nNCC-HAMBURG\n051500 UTC APR 26\nNAV. WARN. NO. 201\nNAV. WARN. NO. 200 CANCELLED.\nNNNN",
    "clean_text": "ZCZC SA89\nNCC-HAMBURG\n051500 UTC APR 26\nNAV. WARN. NO. 201\nNAV. WARN. NO. 200 CANCELLED.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Nav. warn. no. 201.",
    "decoded_highlights": [
      "Nav. warn. no. 201",
      "Nav. warn. no. 200 cancelled",
      "Ncc-hamburg"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 30,
    "heading": "2026-04-05 21:50:32 AREA: P",
    "published_at": "2026-04-05 21:50:32",
    "area": "P",
    "message_id": "PB50",
    "text": "ZCZC PB50\n051818 UTC APR 26\nGALEWARNING, 05 APR 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMLP__THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC PB50\n051818 UTC APR 26\nGALEWARNING, 05 APR 18:09 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 7.\nHUMLP__THAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, 05 apr 18:09 utc.",
    "decoded_highlights": [
      "Galewarning, 05 apr 18:09 utc",
      "No warning",
      "End of galewarning"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 31,
    "heading": "2026-04-05 21:40:14 AREA: Q",
    "published_at": "2026-04-05 21:40:14",
    "area": "Q",
    "message_id": "QA05",
    "text": "ZCZC QA05\n05_'__.____.XM\n_SPLIT RADIO\n\nNAVIGATIONAL WNG9\n_/'1.: 67/2026\n\nNORTHER_TIC - PULA PORT\nCHART: 100-16\n\nPULA PZZ\n\nMMVLY_NCE_BHHN_=3 $3=8:3 8, =8:8,856____,N_T ON:_,:_948,_ -,$ 95_34 -:58(8583' 8: 150 METERS RADIUS FROM_POSITION PROHIBITED.\n\n\n_9,,8887+:+: 1392\n\n051840 UTC APRVQ__ TJ__F_MYWFZONON_PHDPYMLCSSPHFM_ZYM_YF_FM_FJJCPWMLJO_ MZYFVM_DA_A_AT_K_O_PYMJ_SF_\nZM__TYTUUEM_HM_ CM __9,_,\n_6.26!_!/._+*_.+_\n___+*_'4.+\n06_*-.\n\n2. SYNOPSIS:\nRIDGE OF HIGH STRETCHING OVER BME\n_E NEXT 24 HO_S VALID UNTIL 06/04/2026 AT 1700 UTC\n\nN-ERN ADRIATIC:\n_UOR SW/N_MWF_M_Y KML_ \nSEA 1-2.\nVIS 10-20 KM, POSSVLESS THEN 1 KM DUE TO FOG, MOSTLY OVERNIGHT.\nMOSTLY CLEAR, LOC MOD CLOUDINESS.\n\nCEN_/NW WIND_4-14, AT FIRST UP TO 18 KT. \nSEA 12,_STILL TODAY LOC 3.\nVIS 10-20 KM.\n __+*_-_4.\n\nS-ERN ADRIATIC:\nSW/NW WIND 4-14, AT FIRST ON FAR S TO 18 KT.\nSTA 1-2, STILL TODAY LOC 3.\n/_!*_\n)6 :)3-4.NNNN",
    "clean_text": "ZCZC QA05\n05_'__.____.XM\n_SPLIT RADIO\n\nNAVIGATIONAL WNG9\n_/'1.: 67/2026\n\nNORTHER_TIC - PULA PORT\nCHART: 100-16\n\nPULA PZZ\n\nMMVLY_NCE_BHHN_=3 $3=8:3 8, =8:8,856____,N_T ON:_,:_948,_ -,$ 95_34 -:58(8583' 8: 150 METERS RADIUS FROM_POSITION PROHIBITED.\n\n_9,,8887+:+: 1392\n\n051840 UTC APRVQ__ TJ__F_MYWFZONON_PHDPYMLCSSPHFM_ZYM_YF_FM_FJJCPWMLJO_ MZYFVM_DA_A_AT_K_O_PYMJ_SF_\nZM__TYTUUEM_HM_ CM __9,_,\n_6.26!_!/._+*_.+_\n___+*_'4.+\n06_*-.\n\n2. SYNOPSIS:\nRIDGE OF HIGH STRETCHING OVER BME\n_E NEXT 24 HO_S VALID UNTIL 06/04/2026 AT 1700 UTC\n\nN-ERN ADRIATIC:\n_UOR SW/N_MWF_M_Y KML_\nSEA 1-2.\nVIS 10-20 KM, POSSVLESS THEN 1 KM DUE TO FOG, MOSTLY OVERNIGHT.\nMOSTLY CLEAR, LOC MOD CLOUDINESS.\n\nCEN_/NW WIND_4-14, AT FIRST UP TO 18 KT.\nSEA 12,_STILL TODAY LOC 3.\nVIS 10-20 KM.\n__+*_-_4.\n\nS-ERN ADRIATIC:\nSW/NW WIND 4-14, AT FIRST ON FAR S TO 18 KT.\nSTA 1-2, STILL TODAY LOC 3.\n/_!*_\n)6 :)3-4.NNNN",
    "resolved_station_name": "Split",
    "resolved_country": "Croatia",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "SPLIT RADIO"
    ],
    "display_region_heading": "Croatia - Adriatic Sea",
    "display_region_label": "Split, Croatia",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Croatia - Adriatic Sea. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Vis 10-20 km, possvless then 1 km due to fog, mostly overnight",
      "E next 24 ho s valid until 06/04/2026 at 1700 utc",
      "Sw/nw wind 4-14, at first on far s to 18 kt"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 33,
    "heading": "2026-04-05 21:31:48 AREA: P",
    "published_at": "2026-04-05 21:31:48",
    "area": "P",
    "message_id": "PA99",
    "text": "ZCZC PA99\n011714 UTC APRM\n_MSI 106/26\nWINDFARM HOLLANDSE KUST ZUID\nYELLOW SPECIAL MARK LIGHT BUOYS FL(5) Y20S\nESTABLISHED IN THE FOLLOWING POSITIONS\nMT-HKZ 3 52-10,4420N 003-56,3420E\nMT-HKZ 4 52-10,3910N 003-56,4450E..\n_._\n,-2'6!:!!_+:+: 0-26\n260848 UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1          53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1         53-30N 006-14E FOGHORN INOPERATIVE\nK6-PC            53-42N 003-52E FOGHORN INOPERATIVE\nK14-FB-1       53-11N 003-06_0.:'!_9,_FA-1         53-34N 003-18E UNLIT\nCACPSM_JFM_ZPT_NNNN",
    "clean_text": "ZCZC PA99\n011714 UTC APRM\n_MSI 106/26\nWINDFARM HOLLANDSE KUST ZUID\nYELLOW SPECIAL MARK LIGHT BUOYS FL(5) Y20S\nESTABLISHED IN THE FOLLOWING POSITIONS\nMT-HKZ 3 52-10,4420N 003-56,3420E\nMT-HKZ 4 52-10,3910N 003-56,4450E..\n_._\n,-2'6!:!!_+:+: 0-26\n260848 UTC MAR 26\nMSI 99/26\nNORTH SEA\nFOLLOWING PLATFORMS HAVE DEFECTS:\nL2-FA-1 53-57N 004-29E FOGHORN UNRELIABLE\nN7-FA-1 53-30N 006-14E FOGHORN INOPERATIVE\nK6-PC 53-42N 003-52E FOGHORN INOPERATIVE\nK14-FB-1 53-11N 003-06_0.:'!_9,_FA-1 53-34N 003-18E UNLIT\nCACPSM_JFM_ZPT_NNNN",
    "resolved_station_name": "Netherlands Coastguard Radio",
    "resolved_country": "Netherlands",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Dutch EEZ and southern North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "NORTH SEA"
    ],
    "display_region_heading": "Netherlands - Dutch EEZ and southern North Sea",
    "display_region_label": "Netherlands Coastguard Radio, Netherlands",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Netherlands - Dutch EEZ and southern North Sea. Readable text reports an aid-to-navigation fault near 52-10.4420N 003-56.3420E; 52-10.3910N 003-56.4450E.",
    "decoded_highlights": [
      "N7-fa-1 53-30n 006-14e foghorn inoperative",
      "K6-pc 53-42n 003-52e foghorn inoperative",
      "Yellow special mark light buoys fl(5) y20s"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 34,
    "heading": "2026-04-05 21:30:17 AREA: P",
    "published_at": "2026-04-05 21:30:17",
    "area": "P",
    "message_id": "PB49",
    "text": "ZCZC PB49\n051638 UTC APR 26\nGALEWARNING, 05 APR 16:31 UTC.\nDOGGER. GERMAN BIGHT_ HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC PB49\n051638 UTC APR 26\nGALEWARNING, 05 APR 16:31 UTC.\nDOGGER. GERMAN BIGHT_ HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNING.\n\nEND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, 05 apr 16:31 utc.",
    "decoded_highlights": [
      "Galewarning, 05 apr 16:31 utc",
      "No warning",
      "End of galewarning"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 36,
    "heading": "2026-04-05 20:07:06 AREA: T",
    "published_at": "2026-04-05 20:07:06",
    "area": "T",
    "message_id": "",
    "text": "ZCZ_22__26\nTYNE.\n_SDHD__JJDZYPMTURBIM\n_\n_DX_Z__ZBZA_Z__CB_V_Z____ZCZC",
    "clean_text": "ZCZ_22__26\nTYNE.\n_SDHD__JJDZYPMTURBIM\n_\n_DX_Z__ZBZA_Z__CB_V_Z____ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 37,
    "heading": "2026-04-05 19:51:46 AREA: P",
    "published_at": "2026-04-05 19:51:46",
    "area": "P",
    "message_id": "PB48",
    "text": "ZCZC PB48\n051638 UTC APR 26\nGALEWARNING$.HM__YM\n _XP MG_H_\nDOGGER. GERMAN BIGHT. HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNIN__M\n\nAND OF GALEWARNING\n\nNNNN",
    "clean_text": "ZCZC PB48\n051638 UTC APR 26\nGALEWARNING$.HM__YM\n_XP MG_H_\nDOGGER. GERMAN BIGHT. HUMBER.\nWEST 7.\nTHAMES. DOVER.\nNO WARNIN__M\n\nAND OF GALEWARNING\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning$.hm ym. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Galewarning$.hm ym",
      "And of galewarning",
      "Dogger. german bight. humber"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 38,
    "heading": "2026-04-05 18:52:49 AREA: S",
    "published_at": "2026-04-05 18:52:49",
    "area": "S",
    "message_id": "SB51",
    "text": "ZCZC SB51\n_051551 !,-=53/-/__._74_ (NCC)\n_\n\n\n\n_\n_MAN BIGHT:\n0_O WARNING9\nNNNN",
    "clean_text": "ZCZC SB51\n_051551 !,-=53/-/__._74_ (NCC)\n_\n\n_\n_MAN BIGHT:\n0_O WARNING9\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code S. Readable text says: 0 o warning9. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "0 o warning9",
      "Man bight"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 39,
    "heading": "2026-04-05 18:07:56 AREA: S",
    "published_at": "2026-04-05 18:07:56",
    "area": "S",
    "message_id": "SA34",
    "text": "ZCZC SA34\nNC_VXHAMZUS LIGHT-VESSEL \n4-10N _PHE_YQXYKE\nYZ_BR_Y _FZPF O_W_O___ZTOOOOOOOOOOOOOOOOOZZZZZZZOOOZOOOOO_U__CKVA_A_VJP\nF__N\n\n _MG__0_0\n$\n6_+61__$._+.*+:_$_0*_.)+:_._.._*$!__/_ .9$34$53 =8'8_8)856.\nSEA: (!84'5 4 ME_E_.\nNNNN",
    "clean_text": "ZCZC SA34\nNC_VXHAMZUS LIGHT-VESSEL\n4-10N _PHE_YQXYKE\nYZ_BR_Y _FZPF O_W_O___ZTOOOOOOOOOOOOOOOOOZZZZZZZOOOZOOOOO_U__CKVA_A_VJP\nF__N\n\n_MG__0_0\n$\n6_+61__$._+.*+:_$_0*_.)+:_._.._*$!__/_ .9$34$53 =8'8_8)856.\nSEA: (!84'5 4 ME_E_.\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Nc vxhamzus light-vessel. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Nc vxhamzus light-vessel"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 41,
    "heading": "2026-04-05 18:04:13 AREA: S",
    "published_at": "2026-04-05 18:04:13",
    "area": "S",
    "message_id": "SA82",
    "text": "ZCZC SA82\nNCC-NAMB_RGB\nQ_Q_ODOFFSHORE 1'.\n0!'_4=36 9034-9_6ZCZC",
    "clean_text": "ZCZC SA82\nNCC-NAMB_RGB\nQ_Q_ODOFFSHORE 1'.\n0!'_4=36 9034-9_6ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Ncc-namb rgb. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Ncc-namb rgb"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 42,
    "heading": "2026-04-05 18:03:20 AREA: T",
    "published_at": "2026-04-05 18:03:20",
    "area": "T",
    "message_id": "",
    "text": "ZCZCESABIE_\n_NCC-MAMBURG\n02_420 UT_ APNTN_5_AY\n_N. 7,_. 194\nGERMAN BI_5_ PEISSJ BDNK_\n_'33(_'6,34__8)856 $7_8,_ 90_$.\nNNNN",
    "clean_text": "ZCZCESABIE_\n_NCC-MAMBURG\n02_420 UT_ APNTN_5_AY\n_N. 7,_. 194\nGERMAN BI_5_ PEISSJ BDNK_\n_'33(_'6,34__8)856 $7_8,_ 90_$.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Zczcesabie. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Zczcesabie",
      "Ncc-mamburg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 44,
    "heading": "2026-04-05 17:34:47 AREA: P",
    "published_at": "2026-04-05 17:34:47",
    "area": "P",
    "message_id": "PA41",
    "text": "ZCZC PA41\n290609 UTCM_Y_\n\nMSI 103/26\nTSS NORTH FRIESLAND\nUNDERWATER OBSTRUCTION REPORTED\nIN VICINITY  OF A LINE JOINING \n54-07.0N 004-39.5E AND 54-03.5N 004-39.6E.\nDANGEROUS TO FISHERY.\nCANCEL MSI 102/26\nNNNN",
    "clean_text": "ZCZC PA41\n290609 UTCM_Y_\n\nMSI 103/26\nTSS NORTH FRIESLAND\nUNDERWATER OBSTRUCTION REPORTED\nIN VICINITY OF A LINE JOINING\n54-07.0N 004-39.5E AND 54-03.5N 004-39.6E.\nDANGEROUS TO FISHERY.\nCANCEL MSI 102/26\nNNNN",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code P. Readable text says: Dangerous to fishery.",
    "decoded_highlights": [
      "Dangerous to fishery",
      "In vicinity of a line joining",
      "Tss north friesland"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 45,
    "heading": "2026-04-05 17:34:16 AREA: P",
    "published_at": "2026-04-05 17:34:16",
    "area": "P",
    "message_id": "PA19",
    "text": "ZCZC PA19\n051128 UTC APR 26\nGALEWARNING, DTG 05 APR 11:21 UTC.\nGERMAN BIGHT.\nWEST 8.\nDOGGER.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nNNNN",
    "clean_text": "ZCZC PA19\n051128 UTC APR 26\nGALEWARNING, DTG 05 APR 11:21 UTC.\nGERMAN BIGHT.\nWEST 8.\nDOGGER.\nWEST 7.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, dtg 05 apr 11:21 utc.",
    "decoded_highlights": [
      "Galewarning, dtg 05 apr 11:21 utc",
      "No warning",
      "German bight"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 46,
    "heading": "2026-04-05 17:29:53 AREA: P",
    "published_at": "2026-04-05 17:29:53",
    "area": "P",
    "message_id": "PE83",
    "text": "ZCZC PE83\n051306 UTC APR 26\nFORECAST DUTCH EEZ ISSUED AT 11:21 UTC 050426\nGERMAN BF_DHMON_PJ_MIONGWZ_ \nWEST 7\n\nOTHER DISTRICTS:\nNO WARNING\n\nSYNOPSIS\nLOW, 980, OVER SWEDEN WILL MOVPMHZM_FSW_RIDGE OVER THE \nGULF OF BISCAY WILL MOVE TOMHDPMPHDPYSWJ_\nFORECAST VALID SUNDAY 15:00 TILL MONDAY 03:00 UTC\n\nTHAMES \nWEST TO SOUTHWEST 4-5, VEERING WEST TO NORTHWEST.\nOCCASIONAL SHOWERS.\nGOOD, IN XM__HXHFZHFZM_ZJJFLSEM_ZW__K_N__AVEHEIGHT 1.0-2.0 METER.\n\n\nHUMBER \nWEST 5-6, LT YM_P_YPJFM_PJHMHZMZYHD_PJ_M_YD__HA_ONAL SHOWERS.\nGOOD, IN PRECIPITATION POSSIBLY MODERATE.\nWAVEHEIGHT 2.0-3.0 METER.\n\n\nGERMAN BIGHT \nWEST 6:._'_06.20_60*!._0*_._+.+6_$_0*_.__3_9,_+_9,-) '_9234'.\nGOOD, IM_YPXF_FHHFZM_ZJJFLSEM_ZWPYHP_WAVEHEIGHT 3.0-4.0 METER, DECREASING 2.5-3.5 _PH_Y_\n\nDOGGER \nWEST 6-7, LATER DECREASING WEST TO NORTHWEST 5-6.\nOCCASIONAL SHOWERS.\nGOOD, IN PRECIPITATION POSSIBLY MODERATE.\nWAVEHEIGHT 3.5-4.5 METER, DECREASING 2.5-3.5 METER.\n\n\nFORECAST VALID MONDAY 03:00 TILL MONDAY 15:00 UTC\n\nTHAMES \nWEST TO NORTHWEST 5-6, DECREASING 3-4, LATER DECREASING \nVARIABLE 1-3.\nGOOD.\nWAVEHEIGHT 1.5_7_.3534, WP_YPJFM\n__P METER.\n\n\nHUMBER \nWEST TO NOYTD_PJ_M_HEMGWP_YPJFM_PYMGSHPYMWP_YPJF_MON_YFLSPM_M\nGOOD.\nWAVEHEIGHT 2.0-3.0 METER, DECREASII_IUS_P_OHL_NE_ZZZENELKB_32$9+(_1$__-_-3_2(_1__DKPBU_EKQGEBCR_IRST OCCASIONAL SHOWERS.\nGOOD, IN PRECIPITATION POSSIBLY MODERATE.\nWAVEHEIGHT 2.5-3.5 METER, DECREASING 1.5-2.5 METER.\n\n\nDOGGER \nWEST TO NORTHWEST 5-6, DECYPJFM_PYMGSHPYML_G \nSOUTHWEST.\nGOOD.\nWAVEHEIGHT 2.5-3.5 METER, DECRPJFM\n __T METER.\n\n\n\n\nNNNN",
    "clean_text": "ZCZC PE83\n051306 UTC APR 26\nFORECAST DUTCH EEZ ISSUED AT 11:21 UTC 050426\nGERMAN BF_DHMON_PJ_MIONGWZ_\nWEST 7\n\nOTHER DISTRICTS:\nNO WARNING\n\nSYNOPSIS\nLOW, 980, OVER SWEDEN WILL MOVPMHZM_FSW_RIDGE OVER THE\nGULF OF BISCAY WILL MOVE TOMHDPMPHDPYSWJ_\nFORECAST VALID SUNDAY 15:00 TILL MONDAY 03:00 UTC\n\nTHAMES\nWEST TO SOUTHWEST 4-5, VEERING WEST TO NORTHWEST.\nOCCASIONAL SHOWERS.\nGOOD, IN XM__HXHFZHFZM_ZJJFLSEM_ZW__K_N__AVEHEIGHT 1.0-2.0 METER.\n\nHUMBER\nWEST 5-6, LT YM_P_YPJFM_PJHMHZMZYHD_PJ_M_YD__HA_ONAL SHOWERS.\nGOOD, IN PRECIPITATION POSSIBLY MODERATE.\nWAVEHEIGHT 2.0-3.0 METER.\n\nGERMAN BIGHT\nWEST 6:._'_06.20_60*!._0*_._+.+6_$_0*_.__3_9,_+_9,-) '_9234'.\nGOOD, IM_YPXF_FHHFZM_ZJJFLSEM_ZWPYHP_WAVEHEIGHT 3.0-4.0 METER, DECREASING 2.5-3.5 _PH_Y_\n\nDOGGER\nWEST 6-7, LATER DECREASING WEST TO NORTHWEST 5-6.\nOCCASIONAL SHOWERS.\nGOOD, IN PRECIPITATION POSSIBLY MODERATE.\nWAVEHEIGHT 3.5-4.5 METER, DECREASING 2.5-3.5 METER.\n\nFORECAST VALID MONDAY 03:00 TILL MONDAY 15:00 UTC\n\nTHAMES\nWEST TO NORTHWEST 5-6, DECREASING 3-4, LATER DECREASING\nVARIABLE 1-3.\nGOOD.\nWAVEHEIGHT 1.5_7_.3534, WP_YPJFM\n__P METER.\n\nHUMBER\nWEST TO NOYTD_PJ_M_HEMGWP_YPJFM_PYMGSHPYMWP_YPJF_MON_YFLSPM_M\nGOOD.\nWAVEHEIGHT 2.0-3.0 METER, DECREASII_IUS_P_OHL_NE_ZZZENELKB_32$9+(_1$__-_-3_2(_1__DKPBU_EKQGEBCR_IRST OCCASIONAL SHOWERS.\nGOOD, IN PRECIPITATION POSSIBLY MODERATE.\nWAVEHEIGHT 2.5-3.5 METER, DECREASING 1.5-2.5 METER.\n\nDOGGER\nWEST TO NORTHWEST 5-6, DECYPJFM_PYMGSHPYML_G\nSOUTHWEST.\nGOOD.\nWAVEHEIGHT 2.5-3.5 METER, DECRPJFM\n__T METER.\n\nNNNN",
    "resolved_station_name": "Netherlands Coastguard Radio",
    "resolved_country": "Netherlands",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Dutch EEZ and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "DUTCH EEZ"
    ],
    "display_region_heading": "Netherlands - Dutch EEZ and southern North Sea",
    "display_region_label": "Netherlands Coastguard Radio, Netherlands",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Netherlands - Dutch EEZ and southern North Sea. Readable text says: Forecast dutch eez issued at 11:21 utc 050426. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Forecast dutch eez issued at 11:21 utc 050426",
      "Forecast valid sunday 15:00 till monday 03:00 utc",
      "Forecast valid monday 03:00 till monday 15:00 utc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 47,
    "heading": "2026-04-05 17:07:30 AREA: P",
    "published_at": "2026-04-05 17:07:30",
    "area": "P",
    "message_id": "PL04",
    "text": "ZCZC PL04\n051406 UTC APR 26\nSEASTATE WARNING CANCELLED 051400 UTC APR\nNNNN",
    "clean_text": "ZCZC PL04\n051406 UTC APR 26\nSEASTATE WARNING CANCELLED 051400 UTC APR\nNNNN",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "L",
    "decoded_summary": "navigational warning for Unresolved B1 code P. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 48,
    "heading": "2026-04-05 16:07:14 AREA: G",
    "published_at": "2026-04-05 16:07:14",
    "area": "G",
    "message_id": "",
    "text": "ZCZC GA/_\n=PZ _/__ \nHUMBER. \nRACE BANK WIND ARM. \n1._TURBINE FOG SIGNAZ_AWPMQF 000-49_B. S01, 53-15.7N 000)__26 (GA29). \nICN_\nT__P_QAS__FUT_AOCZ_QFZ_\n_\nEP__QFD__CF_Q\nDUDGEON W_ND_FYB_OMONGWCW_PZMJZCHDM_ 53-_2.5N 001-25._5=.:'!__-__22_2Z_ZC R_V\n__QYQXWY\nCROMAEWMKYBM__ \nC_\nC2, 57329.4N 0_01_._:,9__-3__3(_)-_B______WP_BZC__M\nHWZOK_AZCZC",
    "clean_text": "ZCZC GA/_\n=PZ _/__\nHUMBER.\nRACE BANK WIND ARM.\n1._TURBINE FOG SIGNAZ_AWPMQF 000-49_B. S01, 53-15.7N 000)__26 (GA29).\nICN_\nT__P_QAS__FUT_AOCZ_QFZ_\n_\nEP__QFD__CF_Q\nDUDGEON W_ND_FYB_OMONGWCW_PZMJZCHDM_ 53-_2.5N 001-25._5=.:'!__-__22_2Z_ZC R_V\n__QYQXWY\nCROMAEWMKYBM__\nC_\nC2, 57329.4N 0_01_._:,9__-3__3(_)-_B______WP_BZC__M\nHWZOK_AZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. turbine fog signaz awpmqf 000-49 b. s01, 53-15.7n 000) 26 (ga29)",
      "Race bank wind arm",
      "Hwzok azczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 49,
    "heading": "2026-04-05 14:40:20 AREA: P",
    "published_at": "2026-04-05 14:40:20",
    "area": "P",
    "message_id": "PA18",
    "text": "ZCZC PA18\n051128 UTC APR 26\nGALEWARNING, DTG 05 APR 11:21 UTC.\n_ERMAN BIGHT.\nWEST 8.\nDOGGER.\nWEST 7.\nHUMBE__.__$_0*\n_.__+_06\n_9__-_((3)3UAZ_LRIIIIALL\n_CJCW_DAIEWUGBYT9__5_+__7_____\n7(_4_ !94 _ 11 ___8(_9_4:4 _\n '_:)_+0__KWZZ___NORTHWJST G_KKUFU\n_BZWBZW_JZBA_OKO_Q2!$\n_+ 3_.(\n !_35)_,_\n)9\n* $_\n_\n!7-77-1,9___--_+_+7 _, 00___9_\n8-_ .__222__,_ 8)_8_HCBK 21_7\n7*_7226/__9___:.9_ _9\n7!_3++3.34 __, !83)$\n_:__9+_'__=349\n23__, _3-6_.9_!\n_*!+( _-02\nW_WWZZZ_W__AA\nLOUU_J\nKM_ZWWP22-__$_2222___MRCC DTVER._\n_01-2\n.8 OFFUU\nUUU_Z___2_2_+:+: _)74\nWZT207/___\n\n702-59.1EXUF__OCDJ F_ NNAVAIJS INLPER____PU_ZCZC",
    "clean_text": "ZCZC PA18\n051128 UTC APR 26\nGALEWARNING, DTG 05 APR 11:21 UTC.\n_ERMAN BIGHT.\nWEST 8.\nDOGGER.\nWEST 7.\nHUMBE__.__$_0*\n_.__+_06\n_9__-_((3)3UAZ_LRIIIIALL\n_CJCW_DAIEWUGBYT9__5_+__7_____\n7(_4_ !94 _ 11 ___8(_9_4:4 _\n'_:)_+0__KWZZ___NORTHWJST G_KKUFU\n_BZWBZW_JZBA_OKO_Q2!$\n_+ 3_.(\n!_35)_,_\n)9\n* $_\n_\n!7-77-1,9___--_+_+7 _, 00___9_\n8-_ .__222__,_ 8)_8_HCBK 21_7\n7*_7226/__9___:.9_ _9\n7!_3++3.34 __, !83)$\n_:__9+_'__=349\n23__, _3-6_.9_!\n_*!+( _-02\nW_WWZZZ_W__AA\nLOUU_J\nKM_ZWWP22-__$_2222___MRCC DTVER._\n_01-2\n.8 OFFUU\nUUU_Z___2_2_+:+: _)74\nWZT207/___\n\n702-59.1EXUF__OCDJ F_ NNAVAIJS INLPER____PU_ZCZC",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code P. Readable text says: Galewarning, dtg 05 apr 11:21 utc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Galewarning, dtg 05 apr 11:21 utc",
      "Erman bight"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 51,
    "heading": "2026-04-05 14:30:52 AREA: T",
    "published_at": "2026-04-05 14:30:52",
    "area": "T",
    "message_id": "",
    "text": "ZCZCM\n__JZ_\n_ Z _PF_GCHXM_Y_\nA_E\n__AA_\n _TU_O_\nMRCC DOVER.\nMF R/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "clean_text": "ZCZCM\n__JZ_\n_ Z _PF_GCHXM_Y_\nA_E\n__AA_\n_TU_O_\nMRCC DOVER.\nMF R/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Mf r/t service from bawdsey site 51-59.6n 001-24.5e off air",
      "Mrcc dover"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 52,
    "heading": "2026-04-05 14:30:18 AREA: V",
    "published_at": "2026-04-05 14:30:18",
    "area": "V",
    "message_id": "",
    "text": "ZCZC V_QCH\nN\nP_ HP MG HXM_Y_\n_WZ 242/26 \nTHAMES. \nGUNFLEET SANDS WIND FARM. \n1. TURBINE A06 51-45.0N 001-14.6E FOG SIGNAL INOPERATIVE. \n2. CANCEL WZ 126/26 (VA58).\nNNNN",
    "clean_text": "ZCZC V_QCH\nN\nP_ HP MG HXM_Y_\n_WZ 242/26\nTHAMES.\nGUNFLEET SANDS WIND FARM.\n1. TURBINE A06 51-45.0N 001-14.6E FOG SIGNAL INOPERATIVE.\n2. CANCEL WZ 126/26 (VA58).\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text reports a fog signal outage near 51-45.0N 001-14.6E.",
    "decoded_highlights": [
      "1. turbine a06 51-45.0n 001-14.6e fog signal inoperative",
      "Gunfleet sands wind farm",
      "2. cancel wz 126/26 (va58)"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 54,
    "heading": "2026-04-05 14:18:38 AREA: T",
    "published_at": "2026-04-05 14:18:38",
    "area": "T",
    "message_id": "TA99",
    "text": "ZCZC TA99\n14165_  H_M_ZAAQDFUEKU-_1_9,(._:1__'B__HWQURAEE___(_5 3'5-_)8'_3$ 8, 09' 5127.375N 00222.306E \nUNMARKED\nSHIPPING IS REQUESTED NOT TO FISH NOR TO ANCHOR IN THE VICINITY\nNNNN",
    "clean_text": "ZCZC TA99\n14165_ H_M_ZAAQDFUEKU-_1_9,(._:1__'B__HWQURAEE___(_5 3'5-_)8'_3$ 8, 09' 5127.375N 00222.306E\nUNMARKED\nSHIPPING IS REQUESTED NOT TO FISH NOR TO ANCHOR IN THE VICINITY\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text says: Shipping is requested not to fish nor to anchor in the vicinity. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Shipping is requested not to fish nor to anchor in the vicinity",
      "Unmarked"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 55,
    "heading": "2026-04-05 14:17:57 AREA: T",
    "published_at": "2026-04-05 14:17:57",
    "area": "T",
    "message_id": "",
    "text": "ZCZC TA_5\n__++*_02062!+._*!.\n0  _7_9,_)0.00-9,_0__'+_!_0!'+*_+._$0.'!0.)888_33, 09'8589,' 51-20.04N 003-05._$.47S_MOOPN 00_P__FEGPONGJDF_FFB_B1___HPWMI_OT TO ANCHZ_ NOR TO FISH IN THE VICINITY.\nNNN_ONNIIIUEZCZC",
    "clean_text": "ZCZC TA_5\n__++*_02062!+._*!.\n0 _7_9,_)0.00-9,_0__'+_!_0!'+*_+._$0.'!0.)888_33, 09'8589,' 51-20.04N 003-05._$.47S_MOOPN 00_P__FEGPONGJDF_FFB_B1___HPWMI_OT TO ANCHZ_ NOR TO FISH IN THE VICINITY.\nNNN_ONNIIIUEZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: 0 7 9, )0.00-9, 0 ' ! 0!' . $0.'!0.)888 33, 09'8589,' 51-20.04n 003-05. $.47s moopn 00 p fegpongjdf ffb b1 hpwmi ot to anchz nor to fish in the vicinity. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "0 7 9, )0.00-9, 0 ' ! 0!' . $0.'!0.)888 33, 09'8589,' 51-20.04n 003-05. $.47s moopn 00 p fegpongjdf ffb b1 hpwmi ot to anchz nor to fish in the vicinity",
      "Nnn onniiiuezczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 56,
    "heading": "2026-04-05 14:17:18 AREA: T",
    "published_at": "2026-04-05 14:17:18",
    "area": "T",
    "message_id": "TA79",
    "text": "ZCZC TA79\n2704_5: '30 =\n__99!_02062!+._*!.)=__\nOOSTENDE-ZEEBGUGGE\nCHAIN ON THE SEABED IN THE_VCMI_H_NO_TQAWPNPTN 003-03,75E\nSHIPPING IS REQU_STED NOT TO ANCHOR \nNOR TO FISH CNM\n_CM_ZCZC",
    "clean_text": "ZCZC TA79\n2704_5: '30 =\n__99!_02062!+._*!.)=__\nOOSTENDE-ZEEBGUGGE\nCHAIN ON THE SEABED IN THE_VCMI_H_NO_TQAWPNPTN 003-03,75E\nSHIPPING IS REQU_STED NOT TO ANCHOR\nNOR TO FISH CNM\n_CM_ZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Shipping is requ sted not to anchor",
      "Nor to fish cnm",
      "Chain on the seabed in the vcmi h no tqawpnptn 003-03,75e"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 57,
    "heading": "2026-04-05 14:16:50 AREA: T",
    "published_at": "2026-04-05 14:16:50",
    "area": "T",
    "message_id": "",
    "text": "ZCZCV_\nF__N\n PU H_TC MAR\nOOSTENDERADIO MSI 101/26\nTSS-W_\nWESTHINDER MEASURINL__\nVTQAWEMEQN _5 7,43)8-_)3\nNNNN",
    "clean_text": "ZCZCV_\nF__N\nPU H_TC MAR\nOOSTENDERADIO MSI 101/26\nTSS-W_\nWESTHINDER MEASURINL__\nVTQAWEMEQN _5 7,43)8-_)3\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. Readable text says: Pu h tc mar. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Pu h tc mar",
      "Westhinder measurinl",
      "Vtqawemeqn 5 7,43)8- )3"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 59,
    "heading": "2026-04-05 14:14:03 AREA: T",
    "published_at": "2026-04-05 14:14:03",
    "area": "T",
    "message_id": "TA96",
    "text": "ZCZC TA96\n08 __3. ,9= \nOOSTENDERADIO MSI 543/24\nOOSTENDE-ZEEBRUGGE\nOBSTACLES ON THE SEAB_LLOWING POS\n5117.431N  00302.602E\n5117.259N  00302.007E\n5116.3_4N  00259.8)\nSHIPPING ISMLP_CPJHPWMZHMHZMK__DZYMZYMHZM_FJDMFMHDPM_F_FH_ONGONNIII_ZCZC",
    "clean_text": "ZCZC TA96\n08 __3. ,9=\nOOSTENDERADIO MSI 543/24\nOOSTENDE-ZEEBRUGGE\nOBSTACLES ON THE SEAB_LLOWING POS\n5117.431N 00302.602E\n5117.259N 00302.007E\n5116.3_4N 00259.8)\nSHIPPING ISMLP_CPJHPWMZHMHZMK__DZYMZYMHZM_FJDMFMHDPM_F_FH_ONGONNIII_ZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Obstacles on the seab llowing pos. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Obstacles on the seab llowing pos",
      "Shipping ismlp cpjhpwmzhmhzmk dzymzymhzm fjdmfmhdpm f fh ongonniii zczc",
      "Oostende-zeebrugge"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 63,
    "heading": "2026-04-05 14:11:21 AREA: T",
    "published_at": "2026-04-05 14:11:21",
    "area": "T",
    "message_id": "T12",
    "text": "ZCZC T12\n261_UTC MAR 26\nOOSTENDERADIO MSI 131/26\nTERRITORIAL SEAOOGRAPHICAL INSTRUMENT ESTABLISHED IN POS \n 1_ 330)9,,:_1./BBXKE__K_LB_QT__MHMMJKIIK DISTANCE AND NOT TOMR NOR FISH _NMHD_M_P\nDQ_GD_ZF_F_ZCZC",
    "clean_text": "ZCZC T12\n261_UTC MAR 26\nOOSTENDERADIO MSI 131/26\nTERRITORIAL SEAOOGRAPHICAL INSTRUMENT ESTABLISHED IN POS\n1_ 330)9,,:_1./BBXKE__K_LB_QT__MHMMJKIIK DISTANCE AND NOT TOMR NOR FISH _NMHD_M_P\nDQ_GD_ZF_F_ZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "1",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. Readable text says: 1 330)9,,: 1./bbxke k lb qt mhmmjkiik distance and not tomr nor fish nmhd m p. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1 330)9,,: 1./bbxke k lb qt mhmmjkiik distance and not tomr nor fish nmhd m p",
      "Territorial seaoographical instrument established in pos"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 66,
    "heading": "2026-04-05 14:08:33 AREA: S",
    "published_at": "2026-04-05 14:08:33",
    "area": "S",
    "message_id": "SE79",
    "text": "ZCZC SE79\n051100 NAVTEX-HAMBURG (NCC)\n\nWEATHERFORECAST FOR GERMADM_F_DHONONGJCWE_WIND: SOUTH HZMJZCHD_PJ\nMLZCHM_C_GJDF_HF_MZYHD_PJHMWMWP_YPJFZON\n_VISIBILITY/WEATHER: LOCALLY SHOWERVORMHDCWPYZZ_J__FHD_ZU_KDZ_FFVBILITY.\nSEA: NORTHERN PART FIRST 6 METER.\n\nMONDAY:\nWIND: WEST TO NORTHWEST ABOUT 6, LATER VARIABLE WINDS ABOUT 3.\n_FLFSFHE_\n(_($: FIRST LOCALLY SHOWER WITH MODERATE VISIBILITY.\nSEA: FIHJLM_YMG_PH_Y_NNNN",
    "clean_text": "ZCZC SE79\n051100 NAVTEX-HAMBURG (NCC)\n\nWEATHERFORECAST FOR GERMADM_F_DHONONGJCWE_WIND: SOUTH HZMJZCHD_PJ\nMLZCHM_C_GJDF_HF_MZYHD_PJHMWMWP_YPJFZON\n_VISIBILITY/WEATHER: LOCALLY SHOWERVORMHDCWPYZZ_J__FHD_ZU_KDZ_FFVBILITY.\nSEA: NORTHERN PART FIRST 6 METER.\n\nMONDAY:\nWIND: WEST TO NORTHWEST ABOUT 6, LATER VARIABLE WINDS ABOUT 3.\n_FLFSFHE_\n(_($: FIRST LOCALLY SHOWER WITH MODERATE VISIBILITY.\nSEA: FIHJLM_YMG_PH_Y_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NAVTEX HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Germany - German Bight and German North Sea. Readable text says: Visibility/weather: locally showervormhdcwpyzz j fhd zu kdz ffvbility. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Visibility/weather: locally showervormhdcwpyzz j fhd zu kdz ffvbility",
      "( ($: first locally shower with moderate visibility",
      "Weatherforecast for germadm f dhonongjcwe wind: south hzmjzchd pj"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 72,
    "heading": "2026-04-05 14:04:14 AREA: S",
    "published_at": "2026-04-05 14:04:14",
    "area": "S",
    "message_id": "SA82",
    "text": "ZCZC SA82\nNCC-HAMBURG\n01063__UTC APR 26\nNAV. AAY_NO. 192\nGERMAN BIGHT. NORTHWESTERLY OWF 'BARD OFFSHOR_C_ J_ONGJCY\nP__ZPYHFZJMFM_YZYPJJMLEMZ\nM\n_GVZ_BWZYMZYXHJ_G_JM\nJGBM!\n!*9,_6+:2._+*!_!+.__6_!__.\n_53$ .-,_8\n6)!'!__.2:6!_.+_KD_)1__'_3$2_-_9XBHLBE_MONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKVVVVVVVVVCZCZC",
    "clean_text": "ZCZC SA82\nNCC-HAMBURG\n01063__UTC APR 26\nNAV. AAY_NO. 192\nGERMAN BIGHT. NORTHWESTERLY OWF 'BARD OFFSHOR_C_ J_ONGJCY\nP__ZPYHFZJMFM_YZYPJJMLEMZ\nM\n_GVZ_BWZYMZYXHJ_G_JM\nJGBM!\n!*9,_6+:2._+*!_!+.__6_!__.\n_53$ .-,_8\n6)!'!__.2:6!_.+_KD_)1__'_3$2_-_9XBHLBE_MONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKVVVVVVVVVCZCZC",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: German bight. northwesterly owf 'bard offshor c j ongjcy. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "German bight. northwesterly owf 'bard offshor c j ongjcy",
      "Nav. aay no. 192",
      "P zpyhfzjmfm yzypjjmlemz"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 73,
    "heading": "2026-04-05 14:03:21 AREA: T",
    "published_at": "2026-04-05 14:03:21",
    "area": "T",
    "message_id": "",
    "text": "CZCZC",
    "clean_text": "CZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 74,
    "heading": "2026-04-05 14:03:21 AREA: S",
    "published_at": "2026-04-05 14:03:21",
    "area": "S",
    "message_id": "SA83",
    "text": "ZCZC SA83\nN_CWA_HAMBURG\n___PRWP UTC APR 26\nNAV. WARN.\n__+__. +6_,___6_.)!_$_\n_38''3 _-,(.\nSURVEY Z_PYHFZJMLEM_\nM\n_G:_1+\n1_OB_CS 'C6XR3',\nAROUND POSITION 54-47,3N 005-58,3E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS,\nBERTH OF 2 NM REQUESTEQM\nNNNN",
    "clean_text": "ZCZC SA83\nN_CWA_HAMBURG\n___PRWP UTC APR 26\nNAV. WARN.\n__+__. +6_,___6_.)!_$_\n_38''3 _-,(.\nSURVEY Z_PYHFZJMLEM_\nM\n_G:_1+\n1_OB_CS 'C6XR3',\nAROUND POSITION 54-47,3N 005-58,3E\nRESTRICTED MANOEVRABILITY DURING OPERATIONS,\nBERTH OF 2 NM REQUESTEQM\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Survey z pyhfzjmlem. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Survey z pyhfzjmlem",
      "Around position 54-47,3n 005-58,3e",
      "Restricted manoevrability during operations"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 76,
    "heading": "2026-04-05 14:00:42 AREA: S",
    "published_at": "2026-04-05 14:00:42",
    "area": "S",
    "message_id": "SA87",
    "text": "ZCZC SA87\nNCC-HAMBKP\n_Y_UYMG_H_MYM\n_AKLLOHOKKRLBHL_LOCG__$11__E__W_J'1__$608_8+_5\nFOLLOWING CONTAINERV''3)' -43 -5 48'( 9! )9'8,_ :9,5-8,34' -,$\n8!597:_8,_ 5_3 '3-_3$ $748,_ _3-=6 '3- :9,$8589,' -,$ _8__ 2-=3' !49. -\n\nNORTH TO NORTHWEST DIRECTION:\nAT A WAVE HEIGHT ABOVE 3.0M CONTAINERVESSELS HAVE TO TAKE APPROPRIATE\n\nMEASURES AWMSHPYM_ZCYJPMF_MP_PJJY_MHZM_ZF_MXZ__MHYJ_PYJPMHZONONGHDPMUOPM_FYN___)__HMMKB_B_28_+_3 4.0M CONTAINERVESSELS WITH A LENGTH ABOVE 160_9,_88_ARE RECOMMENDED TO FOLLOW ALTERNATIVE ROUTE VIAVHJJMPJHM_YFPJSWONGWM_PYBMLF_DHM_PJHPYM_ACH.\nNNNN",
    "clean_text": "ZCZC SA87\nNCC-HAMBKP\n_Y_UYMG_H_MYM\n_AKLLOHOKKRLBHL_LOCG__$11__E__W_J'1__$608_8+_5\nFOLLOWING CONTAINERV''3)' -43 -5 48'( 9! )9'8,_ :9,5-8,34' -,$\n8!597:_8,_ 5_3 '3-_3$ $748,_ _3-=6 '3- :9,$8589,' -,$ _8__ 2-=3' !49. -\n\nNORTH TO NORTHWEST DIRECTION:\nAT A WAVE HEIGHT ABOVE 3.0M CONTAINERVESSELS HAVE TO TAKE APPROPRIATE\n\nMEASURES AWMSHPYM_ZCYJPMF_MP_PJJY_MHZM_ZF_MXZ__MHYJ_PYJPMHZONONGHDPMUOPM_FYN___)__HMMKB_B_28_+_3 4.0M CONTAINERVESSELS WITH A LENGTH ABOVE 160_9,_88_ARE RECOMMENDED TO FOLLOW ALTERNATIVE ROUTE VIAVHJJMPJHM_YFPJSWONGWM_PYBMLF_DHM_PJHPYM_ACH.\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: At a wave height above 3.0m containervessels have to take appropriate. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "At a wave height above 3.0m containervessels have to take appropriate",
      "North to northwest direction",
      "Ncc-hambkp"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 77,
    "heading": "2026-04-05 14:00:11 AREA: S",
    "published_at": "2026-04-05 14:00:11",
    "area": "S",
    "message_id": "SB50",
    "text": "ZCZC SB50\n051100 NAVTEX-HAML_YM_L\nWARNING NO. 118  050840! \n! -04\nFOR GERMA_MBF_DH\n_O_GUM_CMGHZM_F_G_PJF_MFB_FPH_NNNN",
    "clean_text": "ZCZC SB50\n051100 NAVTEX-HAML_YM_L\nWARNING NO. 118 050840!\n! -04\nFOR GERMA_MBF_DH\n_O_GUM_CMGHZM_F_G_PJF_MFB_FPH_NNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code S. Readable text says: Warning no. 118 050840!. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Warning no. 118 050840!",
      "051100 navtex-haml ym l"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 78,
    "heading": "2026-04-05 13:29:53 AREA: P",
    "published_at": "2026-04-05 13:29:53",
    "area": "P",
    "message_id": "PB46",
    "text": "ZCZC PB46\n050718 KTCMYM\n_GALEWARNING, 05 APR 07:10 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 8.\nHUMBER.\nWEST TO SOUTHWEST 8.\nTHAMES.\nWEST TO SOUTHWEST 7.\nDOVER.\nNO WARNING.\n\nNNNN",
    "clean_text": "ZCZC PB46\n050718 KTCMYM\n_GALEWARNING, 05 APR 07:10 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 8.\nHUMBER.\nWEST TO SOUTHWEST 8.\nTHAMES.\nWEST TO SOUTHWEST 7.\nDOVER.\nNO WARNING.\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, 05 apr 07:10 utc.",
    "decoded_highlights": [
      "Galewarning, 05 apr 07:10 utc",
      "No warning",
      "Dogger. german bight"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 79,
    "heading": "2026-04-05 13:15:29 AREA: P",
    "published_at": "2026-04-05 13:15:29",
    "area": "P",
    "message_id": "PB47",
    "text": "ZCZC PB47\n051008 UTC APR 26\nGALEWARNING, DTG 05 APR 10:07 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 8.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\n\nNNNN",
    "clean_text": "ZCZC PB47\n051008 UTC APR 26\nGALEWARNING, DTG 05 APR 10:07 UTC.\nDOGGER. GERMAN BIGHT.\nWEST 8.\nHUMBER. THAMES. DOVER.\nNO WARNING.\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Galewarning, dtg 05 apr 10:07 utc.",
    "decoded_highlights": [
      "Galewarning, dtg 05 apr 10:07 utc",
      "No warning",
      "Dogger. german bight"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 80,
    "heading": "2026-04-05 12:59:49 AREA: G",
    "published_at": "2026-04-05 12:59:49",
    "area": "G",
    "message_id": "GB41",
    "text": "ZCZC GB41\nCULLERCOATSRADIO\nGALE WARNING SUNDAY 05 APRIL 0956 UTC\n\nFORTIES\nVIOLENT STORM FORCE 11 MQXH__X_R_LY AND DECREASING GALE FORCE 8 IMMINENT\n\nDOGGER\nWES_ERLY SEVERE GALE FORCE 9 DECREASING GALE FORCE 8 IMMINE_\nHUMBER THAMES\nGALE NOW CEASED\n\nFAIR ISLE\nNORTHWESTERLY STORM FORCE 10 NOW DECREASED SEV_G__SVM_ZYXPM\nZMGL_G WESTERLY_ANFM_FMIJF_IIC_\nUKFNB_E 8 IMMINENT\nNNNN",
    "clean_text": "ZCZC GB41\nCULLERCOATSRADIO\nGALE WARNING SUNDAY 05 APRIL 0956 UTC\n\nFORTIES\nVIOLENT STORM FORCE 11 MQXH__X_R_LY AND DECREASING GALE FORCE 8 IMMINENT\n\nDOGGER\nWES_ERLY SEVERE GALE FORCE 9 DECREASING GALE FORCE 8 IMMINE_\nHUMBER THAMES\nGALE NOW CEASED\n\nFAIR ISLE\nNORTHWESTERLY STORM FORCE 10 NOW DECREASED SEV_G__SVM_ZYXPM\nZMGL_G WESTERLY_ANFM_FMIJF_IIC_\nUKFNB_E 8 IMMINENT\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "CULLERCOATS",
      "CULLERCOATSRADIO"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Violent storm force 11 mqxh x r ly and decreasing gale force 8 imminent. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Violent storm force 11 mqxh x r ly and decreasing gale force 8 imminent",
      "Wes erly severe gale force 9 decreasing gale force 8 immine",
      "Gale warning sunday 05 april 0956 utc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 81,
    "heading": "2026-04-05 12:07:10 AREA: G",
    "published_at": "2026-04-05 12:07:10",
    "area": "G",
    "message_id": "GA82",
    "text": "ZCZC GA82\nWZ 143/26 \nVIKING. \nBERYL OIL FIELD. \nBERYL SPM3 BUOY 59-31.7N 001-33.5E TEMPORARILY REMOVED. \nNNNN",
    "clean_text": "ZCZC GA82\nWZ 143/26\nVIKING.\nBERYL OIL FIELD.\nBERYL SPM3 BUOY 59-31.7N 001-33.5E TEMPORARILY REMOVED.\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "BERYL OIL FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Beryl spm3 buoy 59-31.7n 001-33.5e temporarily removed.",
    "decoded_highlights": [
      "Beryl spm3 buoy 59-31.7n 001-33.5e temporarily removed",
      "Beryl oil field"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  }
]