From c1a9fa7a42606907ec42cf7995a123da8f374692 Mon Sep 17 00:00:00 2001 From: OpenAI Codex Date: Mon, 21 Sep 2026 09:10:14 +0800 Subject: [PATCH] docs: complete S-52 root cause fix audit --- ...s52_opencpn_code_first_equivalence_v3.json | 31033 ++++++++++++++++ ...emaining_26_residual_fail_evidence_v1.json | 32 + ...95_s52_remaining_26_root_cause_fix_v1.json | 336 + .../CM95_S52_OpenCPN渲染流程对照审计报告_v3.md | 314 + .../CM95_S52_剩余26个根因统一修复报告_v1.md | 107 + tools/cm95_s52_code_first_reaudit_v3.py | 545 + 6 files changed, 32367 insertions(+) create mode 100644 build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json create mode 100644 build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json create mode 100644 build/audits/cm95_s52_remaining_26_root_cause_fix_v1.json create mode 100644 docs/报告/CM95_S52_OpenCPN渲染流程对照审计报告_v3.md create mode 100644 docs/报告/CM95_S52_剩余26个根因统一修复报告_v1.md create mode 100644 tools/cm95_s52_code_first_reaudit_v3.py diff --git a/build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json b/build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json new file mode 100644 index 0000000..4bb5f77 --- /dev/null +++ b/build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json @@ -0,0 +1,31033 @@ +{ + "schema": "cm95.s52.opencpn-code-first-equivalence-audit/v3", + "date": "2026-09-21", + "status": "FAIL", + "target": "kyushu_compare_web_debug", + "opencpn_commit": "f7211b4e1874c453e37a7f190aa191c55a25c32e", + "opencpn_baseline_root": "docs/外部参考/OpenCPN源码基线_f7211b4e/", + "cm95_head": "e1e3a9e00ce38c7687938cab34a8e0e23be936dc", + "production_plan_id": "d6627c77efec38d1fcd9f398870cd19519e9e948ba4515e7357829aa10087f2b", + "release_id": "cm95-d1-62a85bd40d3a-d6627c77efec", + "baseline_sha256_check": { + "status": "PASS", + "checked_count": 25, + "source_file_count": 23, + "method": "sha256sum --check repository 文件校验.sha256; all entries matched" + }, + "initial_worktree": { + "scope": "pre-existing unrelated modified/untracked files excluded from delivery", + "protected_sha256": { + ".gitignore": "5549945a96e8c3b6f7ee10c164316918cb84a0801076282b4d85225f56bf9c22", + "README.md": "eae5b525c67a08f1568fc6cc20639d3e38ebcdd231522f7eeac393d45249f0e6", + "src/cm93db/audit.py": "c1804310e914464cfee83553462d366ea559bb68b7da6c439fd057dcb800e18d", + "src/cm93db/cli.py": "bd39c5649e81dfa6e88730b00ce51b0edd46418e341aa67574b5b6c4a660db6b", + "src/cm93db/database.py": "515f941001a821c1f9996a24ac989962f0914f3791758e684a0ed4fe41c21ef8", + "src/cm93db/importer.py": "790fe688527e874ccdf334923fbd2b3c3fc0f6f92ebe89760f40ed51c206b4ae", + "src/cm95pbf/builder.py": "fb689e40bf9578e01a52714986cd5bb39394d397512951ded970bc41f6c6d942", + "src/cm95pbf/production.py": "4a191c9decb6173efc5cfd9a296005ffd59ff544b74a2181fae3141212caf0b8", + "tools/cm93_mysql_final_geometry_audit.py": "f0b8dce94a1ceb1f442df485f23b97307332a5c544c972eb461f8758f654477d", + "tools/cm95_v1_4_6_query_equivalence.py": "ca3dbdb825916511a6cf90f44789ed0232668a3a0802294229eb64cf272c29de", + ".env.linux.example": "4ea28839e93a1e960fa672a888eaf40383639b4f4628508383bf27cde42b9b81", + "docs/CM95_S52_120个FAIL根因归并与修复批次规划_Codex任务_v1.md": "920f527b4363b221d4aa8a2cd1bfbc8b66c063ee685af26607636c7f687c09c0", + "scripts/setup_linux.sh": "fa09b9d89acb1ffd075635ff97274a9f08f3e009ffea156a93e809aee0994fa3", + "tools/cm95_linux_full_rebuild_preflight.py": "c7323771bddb18c744bd5747f35004ff6e579bf6faa36a7d688bb172dc66059a" + }, + "verification": "PASS" + }, + "input_files": [ + { + "path": "src/cm95pbf/csp.py", + "sha256": "b2b408a1bb6cf3ca7b9debdd5ed7a406b64d01b781a95abdb374bf982b93b4b1" + }, + { + "path": "src/cm95pbf/presentation.py", + "sha256": "30125813fb15a42f606fa278ab9a3942384f7bfc07b314a143401a995e9344cc" + }, + { + "path": "src/cm95pbf/s52.py", + "sha256": "8ca44b23bdf00aae180ccf9fac7319e36971c75a9722bb7c4a42d363e6994113" + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "sha256": "d3cdaad254db1726af79dc783b5601370f7f211d214883d30ec08c4b1f8221e5" + }, + { + "path": "web/s52_runtime_executor.js", + "sha256": "2bd7683e8056632f0c92f218c0252e8a412f9a22fbc987127cf9be97ec2ba524" + }, + { + "path": "web/kyushu_compare.html", + "sha256": "c74f34ac6f3ff8247187a7aaae60c961dfedd725cd10ebb5e231e2f9b02afb3e" + }, + { + "path": "config/s52/cm95_s52_runtime_capabilities_web_compare_v1.json", + "sha256": "32a3200e19d6ead4ddb4b4e08e574c0e84351a5293326d5f9002f2bfeaa4fcd7" + }, + { + "path": "build/production/cm95_s52_kyushu_production_plan_v5_ordered_rule_ir.json", + "sha256": "d6772d47e43c37d8789588f8a83c90bea0efbad0bf1ffa1ce8d690b99535ad02" + }, + { + "path": "build/releases-s52-v2/cm95-d1-62a85bd40d3a-d6627c77efec/production_run_summary_v1.json", + "sha256": "7e411b7f01e0e6f7b13e3202c8105980d7b549cf518dd7892d56c5eef756f32f" + } + ], + "opencpn_snapshot_inventory": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游提交.txt", + "sha256": "08bfda929e4df0179007b861668a1f2700e85e2c1820260e33fd80ccbb5d58aa", + "bytes": 41, + "lines": 1 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/gui/src/cm93.cpp", + "sha256": "b09e4785c5ef8418993606c2ba875422f113f30ccee4deadaef3f53aa06318d9", + "bytes": 193446, + "lines": 6527 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/Cs52_shaders.cpp", + "sha256": "e693b1dbbc40927c3a69a6cf3c16d295393ba378909d8fbae1216d79ab364a70", + "bytes": 10373, + "lines": 305 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/Cs52_shaders.h", + "sha256": "738f294ed682e5bd8a379f125a80bf07c431f8ee780bc2c2024880286f1c34e3", + "bytes": 6422, + "lines": 186 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/DepthFont.cpp", + "sha256": "d5428f5265d1a82999b50ea6a05a054bf69230ddd2048bb2d9e0cee3a666da43", + "bytes": 5235, + "lines": 179 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/DepthFont.h", + "sha256": "c3fd65c8d5013d359230bde03173d0711e1652a079e3e5a4af0232a9bb949324", + "bytes": 2513, + "lines": 72 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/TexFont.cpp", + "sha256": "9e8ec4c5b43b0499b5388e155f7de45f61a4f82edda156957552d7e488939ee5", + "bytes": 13760, + "lines": 542 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/TexFont.h", + "sha256": "617f486076ede172c50b129a65df5765d2314594e6355f77920ba55567d338d5", + "bytes": 3090, + "lines": 93 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/chartsymbols.cpp", + "sha256": "561d9fc303bca922a5b285184ba9e3b82f0ebac72e6c9f4bed99a6b7c51607fa", + "bytes": 30055, + "lines": 885 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/chartsymbols.h", + "sha256": "75b1eb93beb0aaff3a2693c12dde6c597fa5cac5b04c1e2c06896fbb5fb8283e", + "bytes": 6351, + "lines": 204 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/color_types.h", + "sha256": "0b226162ee9dd15140db40f16495caf1bd999f3691b15b43cf6efd6306826446", + "bytes": 2142, + "lines": 58 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/mygeom.cpp", + "sha256": "1594f55ee1c88752be8004ca0b43a254312cc1dda96d98e7ee74db8fdf4a7093", + "bytes": 40641, + "lines": 1514 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/mygeom.h", + "sha256": "cc713bce1cceb54f44e95007c173b49f48336e8771072429950991cdcc1fac6b", + "bytes": 8402, + "lines": 304 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52_plib_utils.cpp", + "sha256": "baee3344a78848fc589828ac0c8bab6c147937a60d18d3864ce72265b2fe2238", + "bytes": 698, + "lines": 20 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52_plib_utils.h", + "sha256": "87f531bb7acc8d8a487f5237a85cebb663d86578e320f3ec566b1b42f18d55b4", + "bytes": 662, + "lines": 20 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "sha256": "d094d9345fa76acf601ca2c1a48da7d65f06f3086b8f810e6d1ab9f8a5014ea4", + "bytes": 201260, + "lines": 6261 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp", + "sha256": "b376900cc16a5d2358feda178b9aa82c0853aa84fa61106b1590c49136f98970", + "bytes": 378804, + "lines": 12765 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.h", + "sha256": "2a8fe104e646f52459d98c9aa1a0a014dde79421de6df96987650d7577436a40", + "bytes": 26031, + "lines": 737 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plibGL.h", + "sha256": "8f08fc6af340e1965b268f8f26c7ed7e7052e488a7cb5150016ebed99c74e98b", + "bytes": 2320, + "lines": 56 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52s57.h", + "sha256": "96d561915b867f5764c7d26b9577a52d121591665a1209a9feca106502cfccfc", + "bytes": 16811, + "lines": 646 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52shaders.cpp", + "sha256": "5fea9dbbcd3ea21318792114ea436336f52dc19947acd2bac2af1d626816bbaf", + "bytes": 26585, + "lines": 756 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52shaders.h", + "sha256": "72b23f6ad581612b4a7881c83747170f039405bec2766bf465ca89af37575f0b", + "bytes": 4854, + "lines": 139 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52utils.cpp", + "sha256": "cee04cc331ff70d94a88ec3061e6714f7ec7b8226727bd14d87be3c2c3c30ba6", + "bytes": 7779, + "lines": 189 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52utils.h", + "sha256": "4feeefb368bf1aafd1620c15fe54662b8d2f9651cecc4123648b18aecfd1f74d", + "bytes": 3151, + "lines": 91 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/文件校验.sha256", + "sha256": "108ae841d7e458911faa9ec623e9a6be2bd7b56016392e024919532172dec404", + "bytes": 4452, + "lines": 25 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/许可证/COPYING.gplv2", + "sha256": "ead06c5e9b243275923928f60659a759507ab7ce56abebdefbcf6fcd22dba96c", + "bytes": 15170, + "lines": 278 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/许可证/COPYING.gplv3", + "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "bytes": 35149, + "lines": 674 + }, + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/说明.md", + "sha256": "3df1270e955c3f40f431b5539164bf7a326b38a75d916119bf589925a8ad31f0", + "bytes": 1557, + "lines": 25 + } + ], + "source_read_scope": { + "whole_files_loaded": 23, + "whole_source_lines": 32549, + "focused_semantic_review": "Object/Lookup/CSP/parser/renderer paths and all first-batch reachable procedures; unrelated GL/shader/geometry helpers indexed as support, not independently certified", + "exclusions": "#if0 historical C and unreachable LIGHTS05 body are not execution branches; missing external chart/resource implementations remain unresolved" + }, + "gates": [ + { + "gate": "A", + "name": "OPENCPN_FLOW_EQUIVALENCE", + "status": "FAIL", + "reason": "$AREAS II25→BACKGROUND normalization remains absent; lookup '?' scoring/numeric/fallback semantics are not fully identical to the fixed parser." + }, + { + "gate": "B", + "name": "CSP_BRANCH_EQUIVALENCE", + "status": "FAIL", + "reason": "All 206 rows were re-adjudicated; DC-DEC-DEP-LOW is now a branch-specific confirmed mismatch." + }, + { + "gate": "C", + "name": "NESTED_CSP_CALL_GRAPH", + "status": "PASS", + "reason": "Phase A/C witnesses prove ordered OBSTRN/WRECKS quality, name and sounding suffix expansion." + }, + { + "gate": "D", + "name": "INSTRUCTION_SEQUENCE_EQUIVALENCE", + "status": "PASS", + "reason": "Versioned mixed-opcode rule IR preserves lookup+CSP order and structured TX operands." + }, + { + "gate": "E", + "name": "RUNTIME_OPCODE_COVERAGE", + "status": "PASS", + "reason": "Generic executor and specialized SOUNDG/LIGHTS/CA paths execute the required ordered opcodes; missing DANGER53 does not discard the suffix." + }, + { + "gate": "F", + "name": "REAL_DATA_BRANCH_COVERAGE", + "status": "NOT_PROVEN", + "reason": "The v5 release is complete, but delivery fields do not uniquely reconstruct every source predicate/association/view state." + }, + { + "gate": "G", + "name": "RESOURCE_DEPENDENCY_EQUIVALENCE", + "status": "NOT_PROVEN", + "reason": "The local resource contract passes, but the fixed OpenCPN snapshot contains no independent chartsymbols.xml; DANGER53/LOWACC03 equivalence remains unprovable." + }, + { + "gate": "H", + "name": "MARINER_DEPENDENCY_EQUIVALENCE", + "status": "FAIL", + "reason": "The DEPCNT DEPARE interval path does not normalize DRVAL2<=DRVAL1 before safe-contour selection." + }, + { + "gate": "I", + "name": "RENDER_ORDER_EQUIVALENCE", + "status": "NOT_PROVEN", + "reason": "OP no-op and multi-LS execution are corrected; cross-object/global pass interleaving is still outside the available snapshot and witnesses." + } + ], + "flow_equivalence": [ + { + "item": "ITDARE/SPOGRD/FSHHAV/OFSPRD class substitutions", + "status": "PASS", + "current": "fixed substitution table retained" + }, + { + "item": "$AREAS $SCODE II25→BACKGROUND", + "status": "FAIL", + "current": "normalization still retains II25" + }, + { + "item": "point/boundary table selection", + "status": "NOT_PROVEN", + "current": "v5 freezes Paper/Plain; upstream runtime alternatives were not replayed" + }, + { + "item": "lookup ordering/attributes/fallback", + "status": "FAIL", + "current": "condition ordering is aligned, but '?', numeric cast and fallback semantics remain non-identical" + }, + { + "item": "initial INST + CSP chain composition", + "status": "PASS", + "current": "ordered Rule IR expands CSP in place without scalar overwrite" + }, + { + "item": "INFORM/COLMAR/list typed view", + "status": "NOT_PROVEN", + "current": "COLMAR/list normalization exists; complete INFORM typed-view replay is unavailable" + }, + { + "item": "SCAMIN/category/priority side effects", + "status": "PASS", + "current": "DisplayBase and SCAMIN are independent; OP remains parser no-op and DPRI is unchanged" + } + ], + "sequence_macros": { + "V": "VALSOU; UNKNOWN sentinel=1e6 distinct from missing input", + "S(V)": "SNDFRM02(V), expanded by SG clamp/unit/prefix/swept/quality and one SG-DIGITS row; ordered SYs", + "Q": "CSQUAPNT01, exactly one QP-4/5/78/LOW/ACCURATE", + "T": "OB-T-PRESENT or OB-T-ABSENT; appended after geometry output at end label", + "U": "_UDWHAZ03 output, UD decision plus UD-OUT row; direct category side effect recorded separately", + "WK-LINE + WK-TAIL": "compose one prefix and one suffix in this order; retain Q before S", + "LI mode + LI-TEXT": "one mode plus color/radius/description parameter branches, then stateful text suffix; renderer has additional text visibility gate" + }, + "branches": [ + { + "procedure": "OBSTRN04", + "branch_id": "OB-D-VAL", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "VALSOU != UNKNOWN(1e6)", + "branch_signature": { + "predicate": "VALSOU != UNKNOWN(1e6)", + "geometry": "ANY", + "mariner": [], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "depth=VALSOU; precompute S(VALSOU); execute terminal OB branch" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "depth=VALSOU; precompute S(VALSOU); execute terminal OB branch" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1681, + "line_end": 1695 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "depth=VALSOU; precompute S(VALSOU); execute terminal OB branch", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-D-EXPSOU", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "VALSOU absent; EXPSOU=1", + "branch_signature": { + "predicate": "VALSOU absent; EXPSOU=1", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=UNKNOWN", + "_UDWHAZ03(depth)", + "terminal OB branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1696, + "line_end": 1736 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream _DEPVAL01 always UNKNOWN; CM95 uses actual min DRVAL1 for AREA" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-D-FOUL", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "VALSOU absent; EXPSOU!=1; CATOBS=6", + "branch_signature": { + "predicate": "VALSOU absent; EXPSOU!=1; CATOBS=6", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=0.01", + "_UDWHAZ03(depth)", + "terminal OB branch" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1696, + "line_end": 1736 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream _DEPVAL01 always UNKNOWN; CM95 uses actual min DRVAL1 for AREA" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-D-AWASH", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "VALSOU absent; EXPSOU!=1; CATOBS!=6; WATLEV=5", + "branch_signature": { + "predicate": "VALSOU absent; EXPSOU!=1; CATOBS!=6; WATLEV=5", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=0", + "_UDWHAZ03(depth)", + "terminal OB branch" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1696, + "line_end": 1736 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream _DEPVAL01 always UNKNOWN; CM95 uses actual min DRVAL1 for AREA" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-D-SUBMERGED", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "VALSOU absent; EXPSOU!=1; CATOBS!=6; WATLEV=3", + "branch_signature": { + "predicate": "VALSOU absent; EXPSOU!=1; CATOBS!=6; WATLEV=3", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=0.01", + "_UDWHAZ03(depth)", + "terminal OB branch" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1696, + "line_end": 1736 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream _DEPVAL01 always UNKNOWN; CM95 uses actual min DRVAL1 for AREA" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-D-DEFAULT", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "VALSOU absent; EXPSOU!=1; CATOBS!=6; WATLEV otherwise", + "branch_signature": { + "predicate": "VALSOU absent; EXPSOU!=1; CATOBS!=6; WATLEV otherwise", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=-15", + "_UDWHAZ03(depth)", + "terminal OB branch" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1696, + "line_end": 1736 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream _DEPVAL01 always UNKNOWN; CM95 uses actual min DRVAL1 for AREA" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA Python may use min associated DRVAL1 before fallback; upper-level terminal emission follows", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-ISO", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "_UDWHAZ03 returns nonempty", + "branch_signature": { + "predicate": "_UDWHAZ03 returns nonempty", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(ISODGR51)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(ISODGR51)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "DisplayBase set inside U; priority unchanged upstream", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1741, + "line_end": 1752 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "ISODGR51" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-ROCK-AWASH", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; UWTROC; V<=20; WATLEV∈{4,5}", + "branch_signature": { + "predicate": "U empty; UWTROC; V<=20; WATLEV∈{4,5}", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(UWTROC04)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(UWTROC04)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "UWTROC04" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-ROCK-OTHER", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; UWTROC; V<=20; WATLEV absent/3/other", + "branch_signature": { + "predicate": "U empty; UWTROC; V<=20; WATLEV absent/3/other", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER51)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER51)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER51" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-ABSENT", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; OBSTRN; V<=20; WATLEV absent", + "branch_signature": { + "predicate": "U empty; OBSTRN; V<=20; WATLEV absent", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER01)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER01)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER01" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-DRY", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; OBSTRN; V<=20; WATLEV∈{1,2}", + "branch_signature": { + "predicate": "U empty; OBSTRN; V<=20; WATLEV∈{1,2}", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(LNDARE01)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(LNDARE01)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "LNDARE01" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-SUBMERGED", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; OBSTRN; V<=20; WATLEV=3", + "branch_signature": { + "predicate": "U empty; OBSTRN; V<=20; WATLEV=3", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER52)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER52)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER52" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [ + "ob-point-quality-name" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-AWASH", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; OBSTRN; V<=20; WATLEV∈{4,5}", + "branch_signature": { + "predicate": "U empty; OBSTRN; V<=20; WATLEV∈{4,5}", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER53)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER53)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER53" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-OTHER", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; OBSTRN; V<=20; WATLEV other", + "branch_signature": { + "predicate": "U empty; OBSTRN; V<=20; WATLEV other", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER51)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER51)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER51" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-DEEP", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; VALSOU>20; either class", + "branch_signature": { + "predicate": "U empty; VALSOU>20; either class", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER52)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER52)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER52" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-ROCK-NOV-DRY", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; UWTROC; WATLEV=2", + "branch_signature": { + "predicate": "U empty; V absent; UWTROC; WATLEV=2", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(LNDARE01)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(LNDARE01)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "LNDARE01" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-ROCK-NOV-SUB", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; UWTROC; WATLEV=3", + "branch_signature": { + "predicate": "U empty; V absent; UWTROC; WATLEV=3", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(UWTROC03)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(UWTROC03)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "UWTROC03" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-ROCK-NOV-OTHER", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; UWTROC; WATLEV absent/other", + "branch_signature": { + "predicate": "U empty; V absent; UWTROC; WATLEV absent/other", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(UWTROC04)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(UWTROC04)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "UWTROC04" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-NOV-DRY", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; OBSTRN; WATLEV∈{1,2}", + "branch_signature": { + "predicate": "U empty; V absent; OBSTRN; WATLEV∈{1,2}", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(OBSTRN11)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(OBSTRN11)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "OBSTRN11" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-NOV-AWASH", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; OBSTRN; WATLEV∈{4,5}", + "branch_signature": { + "predicate": "U empty; V absent; OBSTRN; WATLEV∈{4,5}", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(OBSTRN03)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(OBSTRN03)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "OBSTRN03" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-P-OBS-NOV-OTHER", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; OBSTRN; WATLEV absent/3/other", + "branch_signature": { + "predicate": "U empty; V absent; OBSTRN; WATLEV absent/3/other", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(OBSTRN01)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(OBSTRN01)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1755, + "line_end": 1901 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "OBSTRN01" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-L-QLOW", + "branch_kind": "terminal", + "geometry": "LINE", + "object_class": "OBSTRN/UWTROC", + "condition": "Q.Len()>1 (QUAPOS 2..9)", + "branch_signature": { + "predicate": "Q.Len()>1 (QUAPOS 2..9)", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "ToLong(Q string) into uninitialized long; conditional LC(LOWACC41/31); then T" + ], + "cm95_python": { + "status": "NOT_PROVEN", + "observed_sequence_or_behavior": [ + "LC(LOWACC41) if U nonempty else LC(LOWACC31)" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1906, + "line_end": 1924 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "actual Q is ;SY(...)+separator, not numeric; unchecked ToLong/uninitialized quapos: do not invent deterministic expected LC" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LC", + "status": "NOT_PROVEN", + "current": "ordered LC execution exists; exact repeated-symbol geometry versus fixed renderer remains unproved" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LC(LOWACC41) if U nonempty else LC(LOWACC31)", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-L-ISO", + "branch_kind": "terminal", + "geometry": "LINE", + "object_class": "OBSTRN/UWTROC", + "condition": "Q.Len()<=1; U nonempty", + "branch_signature": { + "predicate": "Q.Len()<=1; U nonempty", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CHBLK)", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CHBLK)", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1926, + "line_end": 1948 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-L-SHALLOW", + "branch_kind": "terminal", + "geometry": "LINE", + "object_class": "OBSTRN/UWTROC", + "condition": "Q.Len()<=1; U empty; V present<=20", + "branch_signature": { + "predicate": "Q.Len()<=1; U empty; V present<=20", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CHBLK)", + "S(V)", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CHBLK)", + "S(V)", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1926, + "line_end": 1948 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [ + "ob-line-sounding" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-L-DEEP", + "branch_kind": "terminal", + "geometry": "LINE", + "object_class": "OBSTRN/UWTROC", + "condition": "Q.Len()<=1; U empty; V>20", + "branch_signature": { + "predicate": "Q.Len()<=1; U empty; V>20", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DASH,2,CHBLK)", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DASH,2,CHBLK)", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1926, + "line_end": 1948 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-L-NOV", + "branch_kind": "terminal", + "geometry": "LINE", + "object_class": "OBSTRN/UWTROC", + "condition": "Q.Len()<=1; U empty; V absent", + "branch_signature": { + "predicate": "Q.Len()<=1; U empty; V absent", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CHBLK)", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CHBLK)", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1926, + "line_end": 1948 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-ISO", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U nonempty", + "branch_signature": { + "predicate": "U nonempty", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "AC(DEPVS)", + "AP(FOULAR01)", + "LS(DOTT,2,CHBLK)", + "SY(ISODGR51)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPVS)", + "AP(FOULAR01)", + "LS(DOTT,2,CHBLK)", + "SY(ISODGR51)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "FOULAR01", + "ISODGR51" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [ + "ob-isolated-area-quality" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-SHALLOW", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V<=20", + "branch_signature": { + "predicate": "U empty; V<=20", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CHBLK)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CHBLK)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [ + "ob-area-sounding" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-DEEP", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V>20", + "branch_signature": { + "predicate": "U empty; V>20", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DASH,2,CHBLK)", + "S(V)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DASH,2,CHBLK)", + "S(V)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-DRY", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; WATLEV∈{1,2}", + "branch_signature": { + "predicate": "U empty; V absent; WATLEV∈{1,2}", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "AC(CHBRN)", + "LS(SOLD,2,CSTLN)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(CHBRN)", + "LS(SOLD,2,CSTLN)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-AWASH", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; WATLEV=4", + "branch_signature": { + "predicate": "U empty; V absent; WATLEV=4", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "AC(DEPIT)", + "LS(DASH,2,CSTLN)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPIT)", + "LS(DASH,2,CSTLN)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-FOUL", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; WATLEV∈{3,5}; CATOBS=6", + "branch_signature": { + "predicate": "U empty; V absent; WATLEV∈{3,5}; CATOBS=6", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "AC(DEPVS)", + "AP(FOULAR01)", + "LS(DOTT,2,CHBLK)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPVS)", + "AP(FOULAR01)", + "LS(DOTT,2,CHBLK)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "FOULAR01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-A-DEFAULT", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "OBSTRN/UWTROC", + "condition": "U empty; V absent; remaining WATLEV/CATOBS", + "branch_signature": { + "predicate": "U empty; V absent; remaining WATLEV/CATOBS", + "geometry": "AREA", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "AC(DEPVS)", + "LS(DOTT,2,CHBLK)", + "Q", + "T" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPVS)", + "LS(DOTT,2,CHBLK)", + "Q", + "T" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1951, + "line_end": 2020 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "status_scope": "branch family is not fully implemented; some concrete inputs may emit empty Q/T; no claim that all occurrences fail", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-T-PRESENT", + "branch_kind": "suffix", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "OBJNAM attribute exists (including empty string)", + "branch_signature": { + "predicate": "OBJNAM attribute exists (including empty string)", + "geometry": "ANY", + "mariner": [], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [], + "nested_csp": [], + "expected_ordered_instructions": [ + "terminal prefix", + "Q or S as terminal specifies", + "TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "terminal prefix", + "Q or S as terminal specifies", + "TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2022, + "line_end": 2030 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [ + "ob-point-quality-name" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "OBSTRN04", + "branch_id": "OB-T-ABSENT", + "branch_kind": "suffix", + "geometry": "ANY", + "object_class": "OBSTRN/UWTROC", + "condition": "OBJNAM missing", + "branch_signature": { + "predicate": "OBJNAM missing", + "geometry": "ANY", + "mariner": [], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [], + "nested_csp": [], + "expected_ordered_instructions": [ + "terminal prefix", + "Q or S as terminal specifies" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "terminal without TX" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2022, + "line_end": 2030 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 591, + "line_end": 700 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "OB-T is the T macro; text rendering still has separate visibility gates" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "terminal without TX", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-VAL", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V present", + "branch_signature": { + "predicate": "V present", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=V", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-CAT1", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK=1", + "branch_signature": { + "predicate": "V absent; CATWRK=1", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=20", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-CAT2", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK=2", + "branch_signature": { + "predicate": "V absent; CATWRK=2", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=0", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-CAT45", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK∈{4,5}", + "branch_signature": { + "predicate": "V absent; CATWRK∈{4,5}", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=-15", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-CATOTHER", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK present not 1/2/4/5", + "branch_signature": { + "predicate": "V absent; CATWRK present not 1/2/4/5", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=UNKNOWN", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-WAT3", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK absent; WATLEV=3", + "branch_signature": { + "predicate": "V absent; CATWRK absent; WATLEV=3", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=0.01", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-WAT5", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK absent; WATLEV=5", + "branch_signature": { + "predicate": "V absent; CATWRK absent; WATLEV=5", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=0", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-WATDRY", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK absent; WATLEV absent/1/2/4/6", + "branch_signature": { + "predicate": "V absent; CATWRK absent; WATLEV absent/1/2/4/6", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=-15", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-D-WATOTHER", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "V absent; CATWRK absent; WATLEV other", + "branch_signature": { + "predicate": "V absent; CATWRK absent; WATLEV other", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_DEPVAL01", + "_UDWHAZ03" + ], + "expected_ordered_instructions": [ + "depth=UNKNOWN", + "U unless QUASOU contains 7", + "terminal WK branch" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardSymbol / runtimeHazardDepthText; only Point", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3252, + "line_end": 3370 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AREA first uses associated min DRVAL1; unsupported CATWRK falls through WATLEV; then terminal", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-U-SKIP7", + "branch_kind": "terminal", + "geometry": "ANY", + "object_class": "WRECKS", + "condition": "QUASOU contains 7", + "branch_signature": { + "predicate": "QUASOU contains 7", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "U=empty; quasou=7", + "Q", + "terminal WK branch" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "U=empty; quasou=7", + "Q", + "terminal WK branch" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3370, + "line_end": 3385 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-ISO", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U nonempty", + "branch_signature": { + "predicate": "U nonempty", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(ISODGR51)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(ISODGR51)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3387, + "line_end": 3393 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "ISODGR51" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-V-LT-Q0", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V < safety_contour; QUASOU excludes 7", + "branch_signature": { + "predicate": "U empty; V < safety_contour; QUASOU excludes 7", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER51)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "S(V)", + "U(empty)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER51)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "S(V)", + "U(empty)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3415, + "line_end": 3437 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER51" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + }, + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-V-LT-Q7", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V < safety_contour; QUASOU contains 7", + "branch_signature": { + "predicate": "U empty; V < safety_contour; QUASOU contains 7", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER51)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "SY(WRECKS07)", + "S(V)", + "U(empty)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER51)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "SY(WRECKS07)", + "S(V)", + "U(empty)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3415, + "line_end": 3437 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER51", + "WRECKS07" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + }, + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-V-GE-Q0", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V >= safety_contour; QUASOU excludes 7", + "branch_signature": { + "predicate": "U empty; V >= safety_contour; QUASOU excludes 7", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER52)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "S(V)", + "U(empty)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER52)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "S(V)", + "U(empty)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3415, + "line_end": 3437 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER52" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + }, + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-V-GE-Q7", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V >= safety_contour; QUASOU contains 7", + "branch_signature": { + "predicate": "U empty; V >= safety_contour; QUASOU contains 7", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(DANGER52)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "SY(WRECKS07)", + "S(V)", + "U(empty)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(DANGER52)", + "TX('Wk',3,1,2,'15110',2,0,CHBLK,21)", + "SY(WRECKS07)", + "S(V)", + "U(empty)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3415, + "line_end": 3437 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DANGER52", + "WRECKS07" + ], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + }, + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [ + "wreck-point-full-chain" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-NOV-CAT1", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V absent; CATWRK=1 and WATLEV=3", + "branch_signature": { + "predicate": "U empty; V absent; CATWRK=1 and WATLEV=3", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(WRECKS04)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(WRECKS04)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3438, + "line_end": 3468 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "WRECKS04" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-NOV-CAT2", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V absent; CATWRK=2 and WATLEV=3", + "branch_signature": { + "predicate": "U empty; V absent; CATWRK=2 and WATLEV=3", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(WRECKS05)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(WRECKS05)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3438, + "line_end": 3468 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "WRECKS05" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-NOV-DRY", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V absent; both attrs present; (CATWRK∈{4,5} or WATLEV∈{1,2,4,5})", + "branch_signature": { + "predicate": "U empty; V absent; both attrs present; (CATWRK∈{4,5} or WATLEV∈{1,2,4,5})", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(WRECKS01)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(WRECKS01)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3438, + "line_end": 3468 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "WRECKS01" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-NOV-OTHER", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V absent; both attrs present; remaining values", + "branch_signature": { + "predicate": "U empty; V absent; both attrs present; remaining values", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "SY(WRECKS05)", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(WRECKS05)", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3438, + "line_end": 3468 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "WRECKS05" + ], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-P-NOV-MISSING", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "WRECKS", + "condition": "U empty; V absent; CATWRK or WATLEV absent", + "branch_signature": { + "predicate": "U empty; V absent; CATWRK or WATLEV absent", + "geometry": "POINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3438, + "line_end": 3468 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [ + "wreck-missing-category" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-QLOW", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "QUAPOS∈[2,9]", + "branch_signature": { + "predicate": "QUAPOS∈[2,9]", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LC(LOWACC41)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LC(LOWACC41)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "LOWACC41" + ], + "opcode_coverage": [ + { + "opcode": "LC", + "status": "NOT_PROVEN", + "current": "ordered LC execution exists; exact repeated-symbol geometry versus fixed renderer remains unproved" + } + ], + "witness_ids": [ + "wreck-area-q-before-sounding" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-ISO", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "QUAPOS outside [2,9]; U nonempty", + "branch_signature": { + "predicate": "QUAPOS outside [2,9]; U nonempty", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CHBLK)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CHBLK)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-VALSH", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "accurate; U empty; V<=20", + "branch_signature": { + "predicate": "accurate; U empty; V<=20", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CHBLK)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CHBLK)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-VALDP", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "accurate; U empty; V>20", + "branch_signature": { + "predicate": "accurate; U empty; V>20", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DASH,2,CHBLK)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DASH,2,CHBLK)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-DRY", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "accurate; U empty; V absent; WATLEV∈{1,2}", + "branch_signature": { + "predicate": "accurate; U empty; V absent; WATLEV∈{1,2}", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(SOLD,2,CSTLN)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(SOLD,2,CSTLN)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [ + "wreck-dry-area" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-AWASH", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "accurate; U empty; V absent; WATLEV=4", + "branch_signature": { + "predicate": "accurate; U empty; V absent; WATLEV=4", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DASH,2,CSTLN)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DASH,2,CSTLN)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-LINE-DEFAULT", + "branch_kind": "prefix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "accurate; U empty; V absent; WATLEV other/absent", + "branch_signature": { + "predicate": "accurate; U empty; V absent; WATLEV other/absent", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "LS(DOTT,2,CSTLN)", + "WK-TAIL selected by V/WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LS(DOTT,2,CSTLN)", + "WK-TAIL selected by V/WATLEV" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3469, + "line_end": 3510 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-TAIL-SHALLOW", + "branch_kind": "suffix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "V present<=20", + "branch_signature": { + "predicate": "V present<=20", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "WK-LINE selected above", + "U", + "Q", + "S(V)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "WK-LINE selected above", + "U", + "Q", + "S(V)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3509, + "line_end": 3530 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [ + "wreck-area-q-before-sounding" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-TAIL-DEEP", + "branch_kind": "suffix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "V>20", + "branch_signature": { + "predicate": "V>20", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "WK-LINE selected above", + "U", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "WK-LINE selected above", + "U", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3509, + "line_end": 3530 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-TAIL-DRY", + "branch_kind": "suffix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "V absent; WATLEV∈{1,2}", + "branch_signature": { + "predicate": "V absent; WATLEV∈{1,2}", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "WK-LINE selected above", + "AC(CHBRN)", + "U", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "WK-LINE selected above", + "AC(CHBRN)", + "U", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3509, + "line_end": 3530 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [ + "wreck-dry-area" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-TAIL-AWASH", + "branch_kind": "suffix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "V absent; WATLEV=4", + "branch_signature": { + "predicate": "V absent; WATLEV=4", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "WK-LINE selected above", + "AC(DEPIT)", + "U", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "WK-LINE selected above", + "AC(DEPIT)", + "U", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3509, + "line_end": 3530 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "WRECKS02", + "branch_id": "WK-TAIL-DEFAULT", + "branch_kind": "suffix", + "geometry": "NONPOINT", + "object_class": "WRECKS", + "condition": "V absent; WATLEV other/absent", + "branch_signature": { + "predicate": "V absent; WATLEV other/absent", + "geometry": "NONPOINT", + "mariner": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "safety_depth", + "depth_unit", + "display_category", + "SCAMIN", + "display_scale" + ], + "nested_csp": [ + "_UDWHAZ03", + "SNDFRM02", + "CSQUAPNT01" + ], + "expected_ordered_instructions": [ + "WK-LINE selected above", + "AC(DEPVS)", + "U", + "Q" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "WK-LINE selected above", + "AC(DEPVS)", + "U", + "Q" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3509, + "line_end": 3530 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 701, + "line_end": 781 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "QUAPNT01", + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-PUBLIC", + "branch_kind": "terminal", + "geometry": "ANY", + "object_class": "caller object", + "condition": "direct CS(UDWHAZ03)", + "branch_signature": { + "predicate": "direct CS(UDWHAZ03)", + "geometry": "ANY", + "mariner": [], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [], + "nested_csp": [], + "expected_ordered_instructions": [], + "cm95_python": { + "status": "NOT_IMPLEMENTED", + "observed_sequence_or_behavior": [ + "no resolve_csp_hints public dispatch" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3197, + "line_end": 3205 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "public registered function returns NULL; hazard callers use _UDWHAZ03 helper, not this entry" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "no resolve_csp_hints public dispatch", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-UNKNOWN-DANGER", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "caller object", + "condition": "depth=UNKNOWN; EXPSOU!=1", + "branch_signature": { + "predicate": "depth=UNKNOWN; EXPSOU!=1", + "geometry": "ANY", + "mariner": [ + "safety_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour" + ], + "nested_csp": [ + "chart::GetAssociatedObjects" + ], + "expected_ordered_instructions": [ + "danger=true", + "UD-OUT according to danger and WATLEV" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "danger=true", + "UD-OUT according to danger and WATLEV" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 535, + "line_end": 594 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "danger=true → UD-OUT according to danger and WATLEV", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-UNKNOWN-EXPOSED", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "caller object", + "condition": "depth=UNKNOWN; EXPSOU=1", + "branch_signature": { + "predicate": "depth=UNKNOWN; EXPSOU=1", + "geometry": "ANY", + "mariner": [ + "safety_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour" + ], + "nested_csp": [ + "chart::GetAssociatedObjects" + ], + "expected_ordered_instructions": [ + "association scan; AREA cannot promote; LINE DRVAL2SC; EXPSOU attribute ignored", + "branch_signature": { + "predicate": "known depth>SC; EXPSOU attribute ignored", + "geometry": "ANY", + "mariner": [ + "safety_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour" + ], + "nested_csp": [ + "chart::GetAssociatedObjects" + ], + "expected_ordered_instructions": [ + "danger=false", + "UD-OUT according to danger and WATLEV" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "Python/JS read EXPSOU even for known depth" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 535, + "line_end": 594 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "Python/JS read EXPSOU even for known depth", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-KNOWN-SHALLOW", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "caller object", + "condition": "known depth<=SC; local expsou remains 0", + "branch_signature": { + "predicate": "known depth<=SC; local expsou remains 0", + "geometry": "ANY", + "mariner": [ + "safety_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour" + ], + "nested_csp": [ + "chart::GetAssociatedObjects" + ], + "expected_ordered_instructions": [ + "association scan", + "UD-OUT according to danger and WATLEV" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "Python/JS use actual EXPSOU; AREA test suppressed when EXPSOU=1" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 535, + "line_end": 594 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [ + "ud-known-expsou" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "Python/JS use actual EXPSOU; AREA test suppressed when EXPSOU=1", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-ASSOC-LINE", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "caller object", + "condition": "eligible scan; any associated GEO_LINE DRVAL2(default0)=SC and local expsou!=1", + "branch_signature": { + "predicate": "eligible scan; any associated nonline DRVAL1(default0)>=SC and local expsou!=1", + "geometry": "ANY", + "mariner": [ + "safety_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour" + ], + "nested_csp": [ + "chart::GetAssociatedObjects" + ], + "expected_ordered_instructions": [ + "danger=true", + "UD-OUT according to danger and WATLEV" + ], + "cm95_python": { + "status": "NOT_PROVEN", + "observed_sequence_or_behavior": [ + "max DRVAL1 summary, source association predicate missing" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 535, + "line_end": 594 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "max DRVAL1 summary, source association predicate missing", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-ASSOC-NONE", + "branch_kind": "decision", + "geometry": "ANY", + "object_class": "caller object", + "condition": "eligible scan; no qualifying association or chart absent", + "branch_signature": { + "predicate": "eligible scan; no qualifying association or chart absent", + "geometry": "ANY", + "mariner": [ + "safety_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour" + ], + "nested_csp": [ + "chart::GetAssociatedObjects" + ], + "expected_ordered_instructions": [ + "danger=false", + "UD-OUT according to danger and WATLEV" + ], + "cm95_python": { + "status": "NOT_PROVEN", + "observed_sequence_or_behavior": [ + "danger=false", + "UD-OUT according to danger and WATLEV" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 535, + "line_end": 594 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "danger=false → UD-OUT according to danger and WATLEV", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-OUT-DRY", + "branch_kind": "terminal", + "geometry": "ANY", + "object_class": "caller object", + "condition": "danger=true; WATLEV 1/2", + "branch_signature": { + "predicate": "danger=true; WATLEV 1/2", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "display_category", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "display_category", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "m_DisplayCat=DISPLAYBASE; no priority change", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 597, + "line_end": 612 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-OUT-WET", + "branch_kind": "terminal", + "geometry": "ANY", + "object_class": "caller object", + "condition": "danger=true; WATLEV otherwise", + "branch_signature": { + "predicate": "danger=true; WATLEV otherwise", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "display_category", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "display_category", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(ISODGR51)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(ISODGR51)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "m_DisplayCat=DISPLAYBASE; no priority change", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 597, + "line_end": 612 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "ISODGR51" + ], + "opcode_coverage": [ + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [ + "ud-known-expsou" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "UDWHAZ03", + "branch_id": "UD-OUT-SAFE", + "branch_kind": "terminal", + "geometry": "ANY", + "object_class": "caller object", + "condition": "danger=false", + "branch_signature": { + "predicate": "danger=false", + "geometry": "ANY", + "mariner": [ + "safety_contour", + "display_category", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "display_category", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "Python promotion additionally becomes Hazards priority via s52.py" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeHazardIsolated; no category executor", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 597, + "line_end": 612 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 407, + "line_end": 452 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream b_promote always false; DisplayBase is direct mutation, not OP; JS does not emit category" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "Python promotion additionally becomes Hazards priority via s52.py", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-CLAMP-HIGH", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "input>40000", + "branch_signature": { + "predicate": "input>40000", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-CLAMP-LOW", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "input<-1000", + "branch_signature": { + "predicate": "input<-1000", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-METRES", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "unit neither 0 nor 2", + "branch_signature": { + "predicate": "unit neither 0 nor 2", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-FEET", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "unit=0", + "branch_signature": { + "predicate": "unit=0", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-FATHOMS", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "unit=2", + "branch_signature": { + "predicate": "unit=2", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-SHALLOW", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "d after signed .01 adjustment <= converted SD", + "branch_signature": { + "predicate": "d after signed .01 adjustment <= converted SD", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DEEP", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "adjusted d > converted SD", + "branch_signature": { + "predicate": "adjusted d > converted SD", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-SWEPT", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "TECSOU contains6", + "branch_signature": { + "predicate": "TECSOU contains6", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [ + "soundg-metre-glyphs" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-QUALITY", + "branch_kind": "decision", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "QUASOU intersects{3,4,5,8,9} or STATUS contains18 else QUAPOS∈[2,9]", + "branch_signature": { + "predicate": "QUASOU intersects{3,4,5,8,9} or STATUS contains18 else QUAPOS∈[2,9]", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "prelude(SG-CLAMP/UNIT/PREFIX)", + "B1 if swept", + "C2 if unreliable", + "SG-DIGITS selected by adjusted d" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2680, + "line_end": 2758 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [ + "soundg-metre-glyphs" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-ONE", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "abs(d)<10; feet rounding may fall through", + "branch_signature": { + "predicate": "abs(d)<10; feet rounding may fall through", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix1a)", + "SY(prefix5f) if f>0", + "SY(prefixA1) if negative" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix1a)", + "SY(prefix5f) if f>0", + "SY(prefixA1) if negative" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-TWO-FRACTION", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "abs(d)<31; fractional remainder !=0", + "branch_signature": { + "predicate": "abs(d)<31; fractional remainder !=0", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a) if leading>=10", + "SY(prefix1b)", + "SY(prefix5f) if f>0 and !feet", + "SY(prefixA1) if negative" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a) if leading>=10", + "SY(prefix1b)", + "SY(prefix5f) if f>0 and !feet", + "SY(prefixA1) if negative" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [ + "soundg-metre-glyphs" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-TWO-NEG", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "previous branches not returned; abs(d)<100; d<0", + "branch_signature": { + "predicate": "previous branches not returned; abs(d)<100; d<0", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a)", + "SY(prefix1b)", + "SY(prefixA1)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a)", + "SY(prefix1b)", + "SY(prefixA1)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-TWO-POS", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "previous branches not returned; abs(d)<100; d>=0", + "branch_signature": { + "predicate": "previous branches not returned; abs(d)<100; d>=0", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix1a)", + "SY(prefix0b)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix1a)", + "SY(prefix0b)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-THREE", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "previous branches not returned; d<1000 (signed compare)", + "branch_signature": { + "predicate": "previous branches not returned; d<1000 (signed compare)", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a)", + "SY(prefix1b)", + "SY(prefix0c)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a)", + "SY(prefix1b)", + "SY(prefix0c)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-FOUR", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "previous branches not returned; d<10000", + "branch_signature": { + "predicate": "previous branches not returned; d<10000", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a)", + "SY(prefix1b)", + "SY(prefix0c)", + "SY(prefix4d)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix2a)", + "SY(prefix1b)", + "SY(prefix0c)", + "SY(prefix4d)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG03", + "branch_id": "SG-DIGITS-FIVE", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "SOUNDG/hazard depth", + "condition": "remaining", + "branch_signature": { + "predicate": "remaining", + "geometry": "POINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix3a)", + "SY(prefix2b)", + "SY(prefix1c)", + "SY(prefix0d)", + "SY(prefix4e)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "SY(prefixB1) if swept", + "SY(prefixC2) if unreliable", + "SY(prefix3a)", + "SY(prefix2b)", + "SY(prefix1c)", + "SY(prefix0d)", + "SY(prefix4e)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2759, + "line_end": 2926 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 309, + "line_end": 393 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + { + "opcode": "SY", + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "SOUNDG02", + "branch_id": "MP-SPLIT", + "branch_kind": "terminal", + "geometry": "MULTIPOINT", + "object_class": "SOUNDG", + "condition": "CS(SOUNDG02) reached", + "branch_signature": { + "predicate": "CS(SOUNDG02) reached", + "geometry": "MULTIPOINT", + "mariner": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_depth", + "depth_unit", + "show_soundings", + "sounding_scale", + "SCAMIN" + ], + "nested_csp": [ + "RenderMPS", + "SOUNDG03", + "SNDFRM02" + ], + "expected_ordered_instructions": [ + "MP()", + "RenderMPS: for every point CS(SOUNDG03)", + "SNDFRM02(z)", + "ordered SY glyphs" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "MP()", + "RenderMPS: for every point CS(SOUNDG03)", + "SNDFRM02(z)", + "ordered SY glyphs" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": 146728, + "real_data_count_reason": "CSP invocation occurrences; not count of upstream multipoint arrays", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 2632, + "line_end": 2661 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 904, + "line_end": 971 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CS", + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + { + "opcode": "MP", + "status": "PASS", + "current": "SOUNDG02 delivery points enter the shared SOUNDG03 glyph executor" + }, + { + "opcode": "SOUNDG", + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-ALIAS", + "branch_kind": "dispatch", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "CS(DEPARE02)", + "branch_signature": { + "predicate": "CS(DEPARE02)", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [ + "DEPARE01" + ], + "expected_ordered_instructions": [ + "same DEPARE01 branch tree" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "same DEPARE01 branch tree" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": 0, + "real_data_count_reason": "no DEPARE02 in complete decoded release", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3912, + "line_end": 3914 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "same DEPARE01 branch tree", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-INTERTIDAL", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "base: d1<0 or d2<=0; no later override", + "branch_signature": { + "predicate": "base: d1<0 or d2<=0; no later override", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPIT)", + "AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPIT)", + "DRGARE suffix if class DRGARE" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 631, + "line_end": 675 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract" + ], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AC(DEPIT) → DRGARE suffix if class DRGARE", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-VERYSHALLOW", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "base: d1>=0 and d2>0; no later override", + "branch_signature": { + "predicate": "base: d1>=0 and d2>0; no later override", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPVS)", + "AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPVS)", + "DRGARE suffix if class DRGARE" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 631, + "line_end": 675 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract" + ], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AC(DEPVS) → DRGARE suffix if class DRGARE", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-TWO-DEEP", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "two_shades=true; d1>=SC and d2>SC", + "branch_signature": { + "predicate": "two_shades=true; d1>=SC and d2>SC", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPDW)", + "AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPDW)", + "DRGARE suffix if class DRGARE" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 631, + "line_end": 675 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract" + ], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AC(DEPDW) → DRGARE suffix if class DRGARE", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-FOUR-SHALLOW", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "!two_shades; d1>=shallow and d2>shallow; no later override", + "branch_signature": { + "predicate": "!two_shades; d1>=shallow and d2>shallow; no later override", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPMS)", + "AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPMS)", + "DRGARE suffix if class DRGARE" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 631, + "line_end": 675 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract" + ], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AC(DEPMS) → DRGARE suffix if class DRGARE", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-FOUR-SAFE", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "!two_shades; d1>=SC and d2>SC; no deep override", + "branch_signature": { + "predicate": "!two_shades; d1>=SC and d2>SC; no deep override", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPMD)", + "AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPMD)", + "DRGARE suffix if class DRGARE" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 631, + "line_end": 675 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract" + ], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AC(DEPMD) → DRGARE suffix if class DRGARE", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-FOUR-DEEP", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "!two_shades; d1>=deep and d2>deep", + "branch_signature": { + "predicate": "!two_shades; d1>=deep and d2>deep", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPDW)", + "AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPDW)", + "DRGARE suffix if class DRGARE" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 631, + "line_end": 675 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract" + ], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "AC(DEPDW) → DRGARE suffix if class DRGARE", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-DRG-NOD1", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "DRGARE and DRVAL1 absent", + "branch_signature": { + "predicate": "DRGARE and DRVAL1 absent", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "AC(DEPMD)", + "AP(DRGARE01)", + "LS(DASH,1,CHGRF)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "AC(DEPMD)", + "AP(DRGARE01)", + "LS(DASH,1,CHGRF)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 661, + "line_end": 684 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [ + "DRGARE01" + ], + "opcode_coverage": [ + { + "opcode": "AC", + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + { + "opcode": "AP", + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + { + "opcode": "LS", + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-BAD-RANGE", + "branch_kind": "decision", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "DRVAL2<=DRVAL1", + "branch_signature": { + "predicate": "DRVAL2<=DRVAL1", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "DRVAL2=DRVAL1+0.01", + "selected AC + DRGARE suffix" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "DRVAL2=DRVAL1+0.01", + "selected AC + DRGARE suffix" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 629, + "line_end": 633 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPARE01/DEPARE02", + "branch_id": "DA-MISSING-D2", + "branch_kind": "terminal", + "geometry": "AREA", + "object_class": "DEPARE/DRGARE", + "condition": "DRVAL2 absent", + "branch_signature": { + "predicate": "DRVAL2 absent", + "geometry": "AREA", + "mariner": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "two_shades", + "shallow_contour", + "safety_contour", + "deep_contour" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "NOT_PROVEN: uninitialized drval2 read upstream; do not assign an expected color" + ], + "cm95_python": { + "status": "NOT_PROVEN", + "observed_sequence_or_behavior": [ + "Python defaults d1+0.01; JS defaults d1+0.01" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "runtimeDepthColorExpression; fill only", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 623, + "line_end": 633 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 44, + "line_end": 90 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "upstream undefined behavior; source presence missing in delivery does not prove absent in original" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "Python defaults d1+0.01; JS defaults d1+0.01", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "DEPCNT02", + "branch_id": "DC-DEC-DEP-RANGE", + "branch_kind": "decision", + "geometry": "LINE", + "object_class": "DEPCNT or LINE DEPARE", + "condition": "LINE DEPARE; d1<=SC and d2>=SC", + "branch_signature": { + "predicate": "LINE DEPARE; d1<=SC and d2>=SC", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "chart effective safety_contour", + "display_category", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "chart effective safety_contour", + "display_category", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "safe=true", + "DC-OUT selected by QUAPOS and safe" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "Python uses tolerance for equality and broader next-safe fallback; JS visible loaded catalog" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "updateRuntimeSafetyContour + line color/width", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 750, + "line_end": 823 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 91, + "line_end": 122 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "Python DEPARE fallback may mark safe despite d1<=SC,d2SC", + "branch_signature": { + "predicate": "LINE DEPARE; d1>SC", + "geometry": "LINE", + "mariner": [ + "safety_contour", + "chart effective safety_contour", + "display_category", + "SCAMIN" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "safety_contour", + "chart effective safety_contour", + "display_category", + "SCAMIN" + ], + "nested_csp": [], + "expected_ordered_instructions": [ + "safe=(abs(d1-chart.next)<1e-4)", + "DC-OUT selected by QUAPOS and safe" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "Python uses tolerance for equality and broader next-safe fallback; JS visible loaded catalog" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "PARTIAL", + "description": "runtime facts do not carry ordered chain" + }, + "style_or_runtime_consumer": "updateRuntimeSafetyContour + line color/width", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 750, + "line_end": 823 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 91, + "line_end": 122 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "Python DEPARE fallback may mark safe despite d1<=SC,d2=10", + "branch_signature": { + "predicate": "other; no sector; no CATLIT1/14; VALNMR>=10", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol", + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "CA(OUTLW,4,roundColor,2,0,360,radius+colorDelta,0)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "CA(OUTLW,4,roundColor,2,0,360,radius+colorDelta,0)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1361, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CA", + "status": "PASS", + "current": "rule width and scale/SCAMIN-dependent metrics are executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-ZERO-SWEEP", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "sector values not -9; sweep<1 or =360", + "branch_signature": { + "predicate": "sector values not -9; sweep<1 or =360", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol", + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "CA(OUTLW,4,roundColor,2,0,360,radius+colorDelta,0)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "CA(OUTLW,4,roundColor,2,0,360,radius+colorDelta,0)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1361, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CA", + "status": "PASS", + "current": "rule width and scale/SCAMIN-dependent metrics are executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SECTOR", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "sector; sweep>=1 !=360; not obscured", + "branch_signature": { + "predicate": "sector; sweep>=1 !=360; not obscured", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol", + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "CA(OUTLW,4,sectorColor,2,start,end,sectorRadius,25)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "CA(OUTLW,4,sectorColor,2,start,end,sectorRadius,25)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1361, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CA", + "status": "PASS", + "current": "rule width and scale/SCAMIN-dependent metrics are executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-OBSCURED", + "branch_kind": "terminal", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "sector; sweep>=1 !=360; LITVIS3/7/8", + "branch_signature": { + "predicate": "sector; sweep>=1 !=360; LITVIS3/7/8", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol", + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "CA(CHBLK,4,CHBRN,1,start,end,sectorRadius,25)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "CA(CHBLK,4,CHBRN,1,start,end,sectorRadius,25)", + "LI-TEXT selected by _LITDSN01 + prior lat/lon/description" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1361, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "CA", + "status": "PASS", + "current": "rule width and scale/SCAMIN-dependent metrics are executed" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SEL-RED", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "single3 or pair1+3", + "branch_signature": { + "predicate": "single3 or pair1+3", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with flare LIGHTS11; round LITRD delta1", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with flare LIGHTS11; round LITRD delta1", + "LI-TEXT" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 409, + "line_end": 482 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI terminal with flare LIGHTS11; round LITRD delta1 → LI-TEXT", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SEL-GREEN", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "single4 or pair1+4", + "branch_signature": { + "predicate": "single4 or pair1+4", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with flare LIGHTS12; round LITGN delta0", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with flare LIGHTS12; round LITGN delta0", + "LI-TEXT" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 409, + "line_end": 482 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI terminal with flare LIGHTS12; round LITGN delta0 → LI-TEXT", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SEL-YELLOW", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "single1/6/9 (octal011)", + "branch_signature": { + "predicate": "single1/6/9 (octal011)", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with flare LIGHTS13; round LITYW delta2", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with flare LIGHTS13; round LITYW delta2", + "LI-TEXT" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 409, + "line_end": 482 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [ + "lights-amber" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SEL-MAGENTA", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "single12 / absent color default12", + "branch_signature": { + "predicate": "single12 / absent color default12", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with flare LITDEF11; round CHMGD delta3", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with flare LITDEF11; round CHMGD delta3", + "LI-TEXT" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 409, + "line_end": 482 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI terminal with flare LITDEF11; round CHMGD delta3 → LI-TEXT", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SEL-OTHER", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "other single/multi color", + "branch_signature": { + "predicate": "other single/multi color", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with flare LITDEF11; round CHMGD delta5", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with flare LITDEF11; round CHMGD delta5", + "LI-TEXT" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 409, + "line_end": 482 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [ + "lights-orange", + "lights-unknown-round" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SECTOR-COLOR", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "single3→red;4→green;1/6/11→yellow; pair1+3/red,1+4/green;else magenta", + "branch_signature": { + "predicate": "single3→red;4→green;1/6/11→yellow; pair1+3/red,1+4/green;else magenta", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with sectorColor from this table", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with sectorColor from this table", + "LI-TEXT" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1423, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI terminal with sectorColor from this table → LI-TEXT", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-ROUND-RADIUS", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "V>0: <7→3;<15→10;<30→15;else20; V<=0→3", + "branch_signature": { + "predicate": "V>0: <7→3;<15→10;<30→15;else20; V<=0→3", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with round radius before colorDelta", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with round radius before colorDelta", + "LI-TEXT" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 409, + "line_end": 482 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI terminal with round radius before colorDelta → LI-TEXT", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SECTOR-RADIUS", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "V>0: <15→10;<30→15;else20; V<=0→20", + "branch_signature": { + "predicate": "V>0: <15→10;<30→15;else20; V<=0→20", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with sector radius", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with sector radius", + "LI-TEXT" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1423, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [ + "lights-zero-sector" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-ANGLE", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "sectr2<=sectr1→+360; each >180 subtract180 else add180", + "branch_signature": { + "predicate": "sectr2<=sectr1→+360; each >180 subtract180 else add180", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with start,end after seaward conversion", + "LI-TEXT" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "LI terminal with start,end after seaward conversion", + "LI-TEXT" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1423, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI terminal with start,end after seaward conversion → LI-TEXT", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-SENTINEL", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "either SECTR value=-9", + "branch_signature": { + "predicate": "either SECTR value=-9", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_selSYcol" + ], + "expected_ordered_instructions": [ + "LI terminal with non-sector branch", + "LI-TEXT" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI terminal with non-sector branch", + "LI-TEXT" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1423, + "line_end": 1588 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-TEXT-FIRST", + "branch_kind": "suffix", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "different lastLat/lastLon; description nonempty", + "branch_signature": { + "predicate": "different lastLat/lastLon; description nonempty", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX(desc,3,2,3,'15110',2,0,CHBLK,23)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "CM95 always TX(desc,...,2,0,...) when nonempty" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1590, + "line_end": 1620 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "flare_at_45 false in reachable LIGHTS06; text visibility handled later by RenderT_All" + ], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "CM95 always TX(desc,...,2,0,...) when nonempty", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-TEXT-DUPLICATE", + "branch_kind": "suffix", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "same previous lat/lon; same description", + "branch_signature": { + "predicate": "same previous lat/lon; same description", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1590, + "line_end": 1620 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-TEXT-CHANGED", + "branch_kind": "suffix", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "same previous lat/lon; different description", + "branch_signature": { + "predicate": "same previous lat/lon; different description", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX(desc,3,2,3,'15110',2,1,CHBLK,23)" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX(desc,3,2,3,'15110',2,1,CHBLK,23)" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1590, + "line_end": 1620 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [ + { + "opcode": "TX", + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + } + ], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-TEXT-EMPTY-FIRST", + "branch_kind": "suffix", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "different lat/lon; empty description", + "branch_signature": { + "predicate": "different lat/lon; empty description", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix" + ], + "cm95_python": { + "status": "FAIL", + "observed_sequence_or_behavior": [ + "CM95 always TX(desc,...,2,0,...) when nonempty" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 1590, + "line_end": 1620 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "flare_at_45 false in reachable LIGHTS06; text visibility handled later by RenderT_All" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "CM95 always TX(desc,...,2,0,...) when nonempty", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-CHAR", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "LITCHR1..29 or absent/unknown", + "branch_signature": { + "predicate": "LITCHR1..29 or absent/unknown", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: description abbreviation per _LITDSN01 switch; 21/23 vert;22/24 horz" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX using description rule: description abbreviation per _LITDSN01 switch; 21/23 vert;22/24 horz" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI mode prefix → TX using description rule: description abbreviation per _LITDSN01 switch; 21/23 vert;22/24 horz", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-TWO-GROUP", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "LITCHR13/14/15/16/25/26/27/29", + "branch_signature": { + "predicate": "LITCHR13/14/15/16/25/26/27/29", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: insert (?) even without SIGGRP; replace ? with first character of first group; append second if !=1" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX using description rule: insert (?) even without SIGGRP; replace ? with first character of first group; append second if !=1" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [ + "lights-group-missing" + ], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-SINGLE-GROUP", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "other LITCHR; SIGGRP present !=(1)", + "branch_signature": { + "predicate": "other LITCHR; SIGGRP present !=(1)", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: append literal SIGGRP" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX using description rule: append literal SIGGRP" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI mode prefix → TX using description rule: append literal SIGGRP", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-SECTOR-PRESENCE", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "SECTR1 attribute exists (SECTR2 irrelevant)", + "branch_signature": { + "predicate": "SECTR1 attribute exists (SECTR2 irrelevant)", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: omit COLOUR and VALNMR text" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX using description rule: omit COLOUR and VALNMR text" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-PERIOD", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "SIGPER present", + "branch_signature": { + "predicate": "SIGPER present", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: 1 decimal iff abs(round-value)>.01 else integer; append s" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "Python description builder differs for group/sector-presence/height unit as noted" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "Python description builder differs for group/sector-presence/height unit as noted", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-HEIGHT-M", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "HEIGHT present; height unit metres", + "branch_signature": { + "predicate": "HEIGHT present; height unit metres", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: rounded HEIGHT + m" + ], + "cm95_python": { + "status": "PARTIAL", + "observed_sequence_or_behavior": [ + "Python description builder differs for group/sector-presence/height unit as noted" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "Python description builder differs for group/sector-presence/height unit as noted", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-HEIGHT-FT", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "HEIGHT present; height unit feet", + "branch_signature": { + "predicate": "HEIGHT present; height unit feet", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: rounded HEIGHT/0.3048 + ft" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX using description rule: rounded HEIGHT/0.3048 + ft" + ], + "observation_method": "current source inspection plus re-executed phase-family witness" + }, + "pbf_or_runtime_facts": { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor" + }, + "style_or_runtime_consumer": "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "PASS", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "PASS", + "v2_status": "FAIL", + "current_observed": "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS.", + "re_adjudication": { + "status": "PASS", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + }, + { + "procedure": "LIGHTS05/LIGHTS06", + "branch_id": "LI-DESC-RANGE", + "branch_kind": "parameter", + "geometry": "POINT", + "object_class": "LIGHTS", + "condition": "VALNMR present and SECTR1 absent", + "branch_signature": { + "predicate": "VALNMR present and SECTR1 absent", + "geometry": "POINT", + "mariner": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "required_association_context": "UDWHAZ03 / DEPVAL01 where referenced; no invented source associations" + }, + "mariner_dependency": [ + "height_unit", + "text_visibility", + "SCAMIN", + "display_scale", + "pixel_per_mm", + "display_size_mm", + "text_collision", + "render history at same lat/lon" + ], + "nested_csp": [ + "_LITDSN01" + ], + "expected_ordered_instructions": [ + "LI mode prefix", + "TX using description rule: rounded range + Nm" + ], + "cm95_python": { + "status": "PASS", + "observed_sequence_or_behavior": [ + "LI mode prefix", + "TX using description rule: rounded range + Nm" + ], + "observation_method": "current source inspection; executable witnesses listed separately" + }, + "pbf_or_runtime_facts": { + "status": "NOT_PROVEN", + "description": "scalar hints; SY/LS sequence fields are not generic execution IR" + }, + "style_or_runtime_consumer": "static LIGHT_SY/LIGHT_TX; drawLightArcFeature", + "real_data_count": null, + "real_data_count_reason": "requires source attribute presence / association / settings mapping; see candidate signature counts separately", + "status": "NOT_PROVEN", + "display_side_effect": "none", + "evidence": [ + { + "path": "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "line_start": 3534, + "line_end": 3876 + }, + { + "path": "src/cm95pbf/csp.py", + "line_start": 148, + "line_end": 308 + }, + { + "path": "web/kyushu_compare.html", + "line_start": 118, + "line_end": 574 + }, + { + "path": "tools/cm95_s52_style_compiler.py", + "line_start": 456, + "line_end": 1062 + } + ], + "unresolved_items": [ + "full Object→Lookup→consumer equivalence and rendering parameters not proven" + ], + "resource_dependencies": [], + "opcode_coverage": [], + "witness_ids": [], + "expected_sequence_encoding": "ordered symbolic template; S,Q,T,U and prefix/tail expanded through referenced branch definitions; not a claim of enumerating numeric digits individually", + "initial_lookup_context": "compose with initial_lookup_rows by geometry/class/table/attributes; initial chain not replaced by CSP output", + "observation_status": "NOT_PROVEN", + "v2_status": "NOT_PROVEN", + "current_observed": "LI mode prefix → TX using description rule: rounded range + Nm", + "re_adjudication": { + "status": "NOT_PROVEN", + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": "The v2 evidence limitation remains; conservative status retained rather than inferred PASS.", + "witnesses": [ + "phase_a", + "phase_b", + "phase_c", + "phase_d", + "current_probes" + ] + } + } + ], + "branch_status_counts": { + "PASS": 120, + "FAIL": 1, + "NOT_PROVEN": 85 + }, + "call_graph": [ + { + "caller": "OBSTRN04", + "callee": "_DEPVAL01", + "status": "NOT_PROVEN", + "current": "fixed snapshot/resource/provenance limitation remains" + }, + { + "caller": "OBSTRN04", + "callee": "_UDWHAZ03", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "OBSTRN04", + "callee": "SNDFRM02", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "OBSTRN04", + "callee": "CSQUAPNT01", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "OBSTRN04", + "callee": "TX(OBJNAM)", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "WRECKS02", + "callee": "_DEPVAL01", + "status": "NOT_PROVEN", + "current": "fixed snapshot/resource/provenance limitation remains" + }, + { + "caller": "WRECKS02", + "callee": "_UDWHAZ03", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "WRECKS02", + "callee": "SNDFRM02", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "WRECKS02", + "callee": "CSQUAPNT01", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "WRECKS02", + "callee": "TX(Wk)/SY(WRECKS07)", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "LIGHTS05", + "callee": "LIGHTS06", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "LIGHTS06", + "callee": "_selSYcol", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "LIGHTS06", + "callee": "_LITDSN01", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "SOUNDG02", + "callee": "RenderMPS", + "status": "NOT_PROVEN", + "current": "fixed snapshot/resource/provenance limitation remains" + }, + { + "caller": "RenderMPS", + "callee": "SOUNDG03", + "status": "NOT_PROVEN", + "current": "fixed snapshot/resource/provenance limitation remains" + }, + { + "caller": "SOUNDG03", + "callee": "SNDFRM02", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "QUAPOS01", + "callee": "CSQUALIN01", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "QUAPOS01", + "callee": "CSQUAPNT01", + "status": "NOT_PROVEN", + "current": "fixed snapshot/resource/provenance limitation remains" + }, + { + "caller": "RESTRN01", + "callee": "_RESCSP01", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "DEPARE02", + "callee": "DEPARE01", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "DEPCNT02", + "callee": "S52_LUPLookup(SAFECD/SAFECN)", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "RESARE02", + "callee": "OP/LC or LS/SY", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + }, + { + "caller": "SLCONS03", + "callee": "AP/LC or LS/SY", + "status": "PASS", + "current": "current ordered expansion/executor closes the v2 breakpoint" + } + ], + "opcode_coverage": { + "SY": { + "status": "PASS", + "current": "ordered multi-SY execution with resource-aware continuation and pivots" + }, + "TX": { + "status": "PASS", + "current": "structured text operands in ordered IR plus stateful LIGHTS labels" + }, + "TE": { + "status": "NOT_PROVEN", + "current": "structured path retained; complete formatter/collision equivalence not independently replayed" + }, + "SOUNDG": { + "status": "PASS", + "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots" + }, + "QUAPNT01": { + "status": "PASS", + "current": "nested quality sequence is preserved and executed" + }, + "CA": { + "status": "PASS", + "current": "rule width and scale/SCAMIN-dependent metrics are executed" + }, + "AC": { + "status": "PASS", + "current": "ordered area-color operations are emitted and consumed" + }, + "AP": { + "status": "PASS", + "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation" + }, + "LS": { + "status": "PASS", + "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct" + }, + "LC": { + "status": "NOT_PROVEN", + "current": "ordered LC execution exists; exact repeated-symbol geometry versus fixed renderer remains unproved" + }, + "OP": { + "status": "PASS", + "current": "preserved as upstream_parser_noop and does not change priority" + }, + "CS": { + "status": "PASS", + "current": "dynamic procedures expand into the ordered chain without scalar overwrite" + }, + "MP": { + "status": "PASS", + "current": "SOUNDG02 delivery points enter the shared SOUNDG03 glyph executor" + } + }, + "real_data": { + "plan_id": "d6627c77efec38d1fcd9f398870cd19519e9e948ba4515e7357829aa10087f2b", + "release_id": "cm95-d1-62a85bd40d3a-d6627c77efec", + "planned_job_count": 5065, + "job_states": { + "PASS": 5065 + }, + "pbf_files": 5064, + "decoded_feature_count_from_production_summary": 476120, + "complete_source_predicate_assignment": "NOT_PROVEN" + }, + "source_database": { + "available": false, + "error_type": "OperationalError", + "error_code": 2003, + "reason": "read-only connection attempt failed; no credentials logged" + }, + "initial_lookup_rows": [ + { + "id": "1", + "rcid": "32037", + "object_class": "ACHARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATACH8" + ], + "instruction": "SY(ACHARE02);LS(DASH,2,CHMGF);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE02", + "args": [ + "ACHARE02" + ], + "raw": "SY(ACHARE02)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGF", + "args": [ + "DASH", + "2", + "CHMGF" + ], + "raw": "LS(DASH,2,CHMGF)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "2", + "rcid": "32038", + "object_class": "ACHARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ACHARE51);CS(RESARE02)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE51", + "args": [ + "ACHARE51" + ], + "raw": "SY(ACHARE51)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 1 + } + ] + }, + { + "id": "25", + "rcid": "32061", + "object_class": "CBLARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CBLARE51);LS(DASH,2,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CBLARE51", + "args": [ + "CBLARE51" + ], + "raw": "SY(CBLARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGD", + "args": [ + "DASH", + "2", + "CHMGD" + ], + "raw": "LS(DASH,2,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "40", + "rcid": "32076", + "object_class": "DEPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Group 1", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(DEPARE01)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPARE01", + "args": [ + "DEPARE01" + ], + "raw": "CS(DEPARE01)", + "sequence": 0 + } + ] + }, + { + "id": "41", + "rcid": "32077", + "object_class": "DMPGRD", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATDPG5" + ], + "instruction": "LS(DASH,1,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "LS", + "args_raw": "DASH,1,CHMGD", + "args": [ + "DASH", + "1", + "CHMGD" + ], + "raw": "LS(DASH,1,CHMGD)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "42", + "rcid": "32078", + "object_class": "DMPGRD", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(INFARE51);LS(DASH,1,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHMGD", + "args": [ + "DASH", + "1", + "CHMGD" + ], + "raw": "LS(DASH,1,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "45", + "rcid": "32081", + "object_class": "DRGARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Group 1", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(DEPARE01)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPARE01", + "args": [ + "DEPARE01" + ], + "raw": "CS(DEPARE01)", + "sequence": 0 + } + ] + }, + { + "id": "47", + "rcid": "32083", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC1" + ], + "instruction": "SY(TSSLPT51,ORIENT);SY(DWRTPT51);LS(DASH,2,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,TRFCD", + "args": [ + "DASH", + "2", + "TRFCD" + ], + "raw": "LS(DASH,2,TRFCD)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "48", + "rcid": "32084", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC2" + ], + "instruction": "SY(TSSLPT51,ORIENT);SY(DWRTPT51);LS(DASH,2,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,TRFCD", + "args": [ + "DASH", + "2", + "TRFCD" + ], + "raw": "LS(DASH,2,TRFCD)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "49", + "rcid": "32085", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC3" + ], + "instruction": "SY(TSSLPT51,ORIENT);SY(DWRTPT51);LS(DASH,2,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,TRFCD", + "args": [ + "DASH", + "2", + "TRFCD" + ], + "raw": "LS(DASH,2,TRFCD)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "50", + "rcid": "32086", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC4" + ], + "instruction": "SY(DWRUTE51,ORIENT);SY(DWRTPT51);LS(DASH,2,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "DWRUTE51,ORIENT", + "args": [ + "DWRUTE51", + "ORIENT" + ], + "raw": "SY(DWRUTE51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,TRFCD", + "args": [ + "DASH", + "2", + "TRFCD" + ], + "raw": "LS(DASH,2,TRFCD)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "51", + "rcid": "32087", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(TWRTPT52);SY(DWRTPT51);LS(DASH,2,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TWRTPT52", + "args": [ + "TWRTPT52" + ], + "raw": "SY(TWRTPT52)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,TRFCD", + "args": [ + "DASH", + "2", + "TRFCD" + ], + "raw": "LS(DASH,2,TRFCD)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "54", + "rcid": "32090", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC1" + ], + "instruction": "SY(FAIRWY51,ORIENT);LS(DASH,1,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY51,ORIENT", + "args": [ + "FAIRWY51", + "ORIENT" + ], + "raw": "SY(FAIRWY51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHGRD", + "args": [ + "DASH", + "1", + "CHGRD" + ], + "raw": "LS(DASH,1,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "55", + "rcid": "32091", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC2" + ], + "instruction": "SY(FAIRWY51,ORIENT);LS(DASH,1,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY51,ORIENT", + "args": [ + "FAIRWY51", + "ORIENT" + ], + "raw": "SY(FAIRWY51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHGRD", + "args": [ + "DASH", + "1", + "CHGRD" + ], + "raw": "LS(DASH,1,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "56", + "rcid": "32092", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC3" + ], + "instruction": "SY(FAIRWY51,ORIENT);LS(DASH,1,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY51,ORIENT", + "args": [ + "FAIRWY51", + "ORIENT" + ], + "raw": "SY(FAIRWY51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHGRD", + "args": [ + "DASH", + "1", + "CHGRD" + ], + "raw": "LS(DASH,1,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "57", + "rcid": "32093", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC4" + ], + "instruction": "SY(FAIRWY52,ORIENT);LS(DASH,1,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY52,ORIENT", + "args": [ + "FAIRWY52", + "ORIENT" + ], + "raw": "SY(FAIRWY52,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHGRD", + "args": [ + "DASH", + "1", + "CHGRD" + ], + "raw": "LS(DASH,1,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "58", + "rcid": "32094", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "LS(DASH,1,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "LS", + "args_raw": "DASH,1,CHGRD", + "args": [ + "DASH", + "1", + "CHGRD" + ], + "raw": "LS(DASH,1,CHGRD)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "81", + "rcid": "32117", + "object_class": "ICNARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(INFARE51);LS(DASH,1,CHMGF);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHMGF", + "args": [ + "DASH", + "1", + "CHMGF" + ], + "raw": "LS(DASH,1,CHMGF)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "82", + "rcid": "32118", + "object_class": "ISTZNE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ITZARE51);LS(DASH,1,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ITZARE51", + "args": [ + "ITZARE51" + ], + "raw": "SY(ITZARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,TRFCD", + "args": [ + "DASH", + "1", + "TRFCD" + ], + "raw": "LS(DASH,1,TRFCD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "96", + "rcid": "32132", + "object_class": "MARCUL", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(MARCUL02);LS(DASH,1,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "MARCUL02", + "args": [ + "MARCUL02" + ], + "raw": "AP(MARCUL02)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHGRD", + "args": [ + "DASH", + "1", + "CHGRD" + ], + "raw": "LS(DASH,1,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "97", + "rcid": "32133", + "object_class": "MIPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LS(DASH,2,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGD", + "args": [ + "DASH", + "2", + "CHMGD" + ], + "raw": "LS(DASH,2,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "122", + "rcid": "32158", + "object_class": "OBSTRN", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATOBS6" + ], + "instruction": "CS(OBSTRN04);AP(FOULAR01);LS(DOTT,2,CHBLK)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + }, + { + "opcode": "AP", + "args_raw": "FOULAR01", + "args": [ + "FOULAR01" + ], + "raw": "AP(FOULAR01)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DOTT,2,CHBLK", + "args": [ + "DOTT", + "2", + "CHBLK" + ], + "raw": "LS(DOTT,2,CHBLK)", + "sequence": 2 + } + ] + }, + { + "id": "127", + "rcid": "32163", + "object_class": "OBSTRN", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "129", + "rcid": "32165", + "object_class": "OSPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LS(DASH,2,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGD", + "args": [ + "DASH", + "2", + "CHMGD" + ], + "raw": "LS(DASH,2,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "131", + "rcid": "32167", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATPIP2" + ], + "instruction": "SY(INFARE51);LS(DASH,2,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHGRD", + "args": [ + "DASH", + "2", + "CHGRD" + ], + "raw": "LS(DASH,2,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "132", + "rcid": "32168", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATPIP3" + ], + "instruction": "SY(INFARE51);LS(DASH,2,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHGRD", + "args": [ + "DASH", + "2", + "CHGRD" + ], + "raw": "LS(DASH,2,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "133", + "rcid": "32169", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "PRODCT3" + ], + "instruction": "SY(INFARE51);LS(DASH,2,CHGRD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHGRD", + "args": [ + "DASH", + "2", + "CHGRD" + ], + "raw": "LS(DASH,2,CHGRD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "134", + "rcid": "32170", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(INFARE51);LS(DASH,2,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGD", + "args": [ + "DASH", + "2", + "CHMGD" + ], + "raw": "LS(DASH,2,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "136", + "rcid": "32172", + "object_class": "PRCARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(PRCARE51);LS(DASH,2,TRFCD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "PRCARE51", + "args": [ + "PRCARE51" + ], + "raw": "SY(PRCARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,TRFCD", + "args": [ + "DASH", + "2", + "TRFCD" + ], + "raw": "LS(DASH,2,TRFCD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "166", + "rcid": "93668", + "object_class": "RESARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATREA4" + ], + "instruction": "TX(OBJNAM,3,1,2,'15110',1,0,CHMGD,29);CS(RESARE02)", + "rules": [ + { + "opcode": "TX", + "args_raw": "OBJNAM,3,1,2,'15110',1,0,CHMGD,29", + "args": [ + "OBJNAM", + "3", + "1", + "2", + "'15110'", + "1", + "0", + "CHMGD", + "29" + ], + "raw": "TX(OBJNAM,3,1,2,'15110',1,0,CHMGD,29)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 1 + } + ] + }, + { + "id": "167", + "rcid": "32202", + "object_class": "RESARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(RESARE02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 0 + } + ] + }, + { + "id": "181", + "rcid": "32216", + "object_class": "SLCONS", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Routing", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(SLCONS03)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 0 + } + ] + }, + { + "id": "192", + "rcid": "32227", + "object_class": "SPLARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LS(DASH,1,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHMGD", + "args": [ + "DASH", + "1", + "CHMGD" + ], + "raw": "LS(DASH,1,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "193", + "rcid": "32228", + "object_class": "SUBTLN", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LS(DASH,1,CHMGD);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,1,CHMGD", + "args": [ + "DASH", + "1", + "CHMGD" + ], + "raw": "LS(DASH,1,CHMGD)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "195", + "rcid": "32230", + "object_class": "TESARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 1", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "LS(DASH,2,CHGRF);CS(RESTRN01)", + "rules": [ + { + "opcode": "LS", + "args_raw": "DASH,2,CHGRF", + "args": [ + "DASH", + "2", + "CHGRF" + ], + "raw": "LS(DASH,2,CHGRF)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "198", + "rcid": "32233", + "object_class": "TSSCRS", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(TSSJCT02);SY(TSSCRS51);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "TSSJCT02", + "args": [ + "TSSJCT02" + ], + "raw": "AP(TSSJCT02)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "TSSCRS51", + "args": [ + "TSSCRS51" + ], + "raw": "SY(TSSCRS51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "199", + "rcid": "32234", + "object_class": "TSSLPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT" + ], + "instruction": "SY(TSSLPT51,ORIENT);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "200", + "rcid": "32235", + "object_class": "TSSLPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT" + ], + "instruction": "SY(TSSLPT51,ORIENT);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "201", + "rcid": "32236", + "object_class": "TSSLPT", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTNARE51);TX(INFORM,1,1,2,'15110',0,-2,CHBLK,24);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTNARE51", + "args": [ + "CTNARE51" + ], + "raw": "SY(CTNARE51)", + "sequence": 0 + }, + { + "opcode": "TX", + "args_raw": "INFORM,1,1,2,'15110',0,-2,CHBLK,24", + "args": [ + "INFORM", + "1", + "1", + "2", + "'15110'", + "0", + "-2", + "CHBLK", + "24" + ], + "raw": "TX(INFORM,1,1,2,'15110',0,-2,CHBLK,24)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "202", + "rcid": "32237", + "object_class": "TSSRON", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(TSSRON51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSRON51", + "args": [ + "TSSRON51" + ], + "raw": "SY(TSSRON51)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "242", + "rcid": "32277", + "object_class": "WRECKS", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(WRECKS02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "WRECKS02", + "args": [ + "WRECKS02" + ], + "raw": "CS(WRECKS02)", + "sequence": 0 + } + ] + }, + { + "id": "243", + "rcid": "32278", + "object_class": "achare", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 1", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ACHARE02);TX(OBJNAM,1,2,3,'14108',0,2,CHMGD,29);LS(DASH,2,CHMGF);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE02", + "args": [ + "ACHARE02" + ], + "raw": "SY(ACHARE02)", + "sequence": 0 + }, + { + "opcode": "TX", + "args_raw": "OBJNAM,1,2,3,'14108',0,2,CHMGD,29", + "args": [ + "OBJNAM", + "1", + "2", + "3", + "'14108'", + "0", + "2", + "CHMGD", + "29" + ], + "raw": "TX(OBJNAM,1,2,3,'14108',0,2,CHMGD,29)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGF", + "args": [ + "DASH", + "2", + "CHMGF" + ], + "raw": "LS(DASH,2,CHMGF)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "253", + "rcid": "32288", + "object_class": "depare", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Group 1", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(DEPARE02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPARE02", + "args": [ + "DEPARE02" + ], + "raw": "CS(DEPARE02)", + "sequence": 0 + } + ] + }, + { + "id": "255", + "rcid": "32290", + "object_class": "excnst", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area Symbol", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "LS(SOLD,2,CSTLN);CS(DEPARE02)", + "rules": [ + { + "opcode": "LS", + "args_raw": "SOLD,2,CSTLN", + "args": [ + "SOLD", + "2", + "CSTLN" + ], + "raw": "LS(SOLD,2,CSTLN)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "DEPARE02", + "args": [ + "DEPARE02" + ], + "raw": "CS(DEPARE02)", + "sequence": 1 + } + ] + }, + { + "id": "279", + "rcid": "32314", + "object_class": "resare", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(RESARE02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 0 + } + ] + }, + { + "id": "280", + "rcid": "32315", + "object_class": "slcons", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Routing", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(SLCONS03)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 0 + } + ] + }, + { + "id": "341", + "rcid": "32376", + "object_class": "ACHARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATACH8" + ], + "instruction": "SY(ACHARE02);LS(DASH,2,CHMGF);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE02", + "args": [ + "ACHARE02" + ], + "raw": "SY(ACHARE02)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGF", + "args": [ + "DASH", + "2", + "CHMGF" + ], + "raw": "LS(DASH,2,CHMGF)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "342", + "rcid": "32377", + "object_class": "ACHARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ACHARE51);CS(RESARE02)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE51", + "args": [ + "ACHARE51" + ], + "raw": "SY(ACHARE51)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 1 + } + ] + }, + { + "id": "365", + "rcid": "32400", + "object_class": "CBLARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CBLARE51);LC(CBLARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CBLARE51", + "args": [ + "CBLARE51" + ], + "raw": "SY(CBLARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CBLARE51", + "args": [ + "CBLARE51" + ], + "raw": "LC(CBLARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "380", + "rcid": "32415", + "object_class": "DEPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Group 1", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(DEPARE01)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPARE01", + "args": [ + "DEPARE01" + ], + "raw": "CS(DEPARE01)", + "sequence": 0 + } + ] + }, + { + "id": "381", + "rcid": "32416", + "object_class": "DMPGRD", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATDPG5" + ], + "instruction": "LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "382", + "rcid": "32417", + "object_class": "DMPGRD", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(INFARE51);LC(CTYARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "LC(CTYARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "385", + "rcid": "32420", + "object_class": "DRGARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Group 1", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(DEPARE01)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPARE01", + "args": [ + "DEPARE01" + ], + "raw": "CS(DEPARE01)", + "sequence": 0 + } + ] + }, + { + "id": "387", + "rcid": "32422", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC1" + ], + "instruction": "SY(TSSLPT51,ORIENT);SY(DWRTPT51);LC(DWRUTE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LC", + "args_raw": "DWRUTE51", + "args": [ + "DWRUTE51" + ], + "raw": "LC(DWRUTE51)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "388", + "rcid": "32423", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC2" + ], + "instruction": "SY(TSSLPT51,ORIENT);SY(DWRTPT51);LC(DWRUTE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LC", + "args_raw": "DWRUTE51", + "args": [ + "DWRUTE51" + ], + "raw": "LC(DWRUTE51)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "389", + "rcid": "32424", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC3" + ], + "instruction": "SY(TSSLPT51,ORIENT);SY(DWRTPT51);LC(DWRUTE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LC", + "args_raw": "DWRUTE51", + "args": [ + "DWRUTE51" + ], + "raw": "LC(DWRUTE51)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "390", + "rcid": "32425", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC4" + ], + "instruction": "SY(DWRUTE51,ORIENT);SY(DWRTPT51);LC(DWRUTE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "DWRUTE51,ORIENT", + "args": [ + "DWRUTE51", + "ORIENT" + ], + "raw": "SY(DWRUTE51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LC", + "args_raw": "DWRUTE51", + "args": [ + "DWRUTE51" + ], + "raw": "LC(DWRUTE51)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "391", + "rcid": "32426", + "object_class": "DWRTPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(TWRTPT52);SY(DWRTPT51);LC(DWRUTE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TWRTPT52", + "args": [ + "TWRTPT52" + ], + "raw": "SY(TWRTPT52)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "DWRTPT51", + "args": [ + "DWRTPT51" + ], + "raw": "SY(DWRTPT51)", + "sequence": 1 + }, + { + "opcode": "LC", + "args_raw": "DWRUTE51", + "args": [ + "DWRUTE51" + ], + "raw": "LC(DWRUTE51)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "394", + "rcid": "32429", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC1" + ], + "instruction": "SY(FAIRWY51,ORIENT);LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY51,ORIENT", + "args": [ + "FAIRWY51", + "ORIENT" + ], + "raw": "SY(FAIRWY51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "395", + "rcid": "32430", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC2" + ], + "instruction": "SY(FAIRWY51,ORIENT);LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY51,ORIENT", + "args": [ + "FAIRWY51", + "ORIENT" + ], + "raw": "SY(FAIRWY51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "396", + "rcid": "32431", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC3" + ], + "instruction": "SY(FAIRWY51,ORIENT);LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY51,ORIENT", + "args": [ + "FAIRWY51", + "ORIENT" + ], + "raw": "SY(FAIRWY51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "397", + "rcid": "32432", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT", + "TRAFIC4" + ], + "instruction": "SY(FAIRWY52,ORIENT);LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "FAIRWY52,ORIENT", + "args": [ + "FAIRWY52", + "ORIENT" + ], + "raw": "SY(FAIRWY52,ORIENT)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "398", + "rcid": "32433", + "object_class": "FAIRWY", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "421", + "rcid": "32456", + "object_class": "ICNARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(INFARE51);LC(CTYARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "LC(CTYARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "422", + "rcid": "32457", + "object_class": "ISTZNE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ITZARE51);LC(RESARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ITZARE51", + "args": [ + "ITZARE51" + ], + "raw": "SY(ITZARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "RESARE51", + "args": [ + "RESARE51" + ], + "raw": "LC(RESARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "436", + "rcid": "32471", + "object_class": "MARCUL", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(MARCUL02);LC(NAVARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "MARCUL02", + "args": [ + "MARCUL02" + ], + "raw": "AP(MARCUL02)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "NAVARE51", + "args": [ + "NAVARE51" + ], + "raw": "LC(NAVARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "437", + "rcid": "32472", + "object_class": "MIPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LC(CTYARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "LC(CTYARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "464", + "rcid": "32499", + "object_class": "OBSTRN", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATOBS6" + ], + "instruction": "CS(OBSTRN04);AP(FOULAR01);LS(DOTT,2,CHBLK)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + }, + { + "opcode": "AP", + "args_raw": "FOULAR01", + "args": [ + "FOULAR01" + ], + "raw": "AP(FOULAR01)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DOTT,2,CHBLK", + "args": [ + "DOTT", + "2", + "CHBLK" + ], + "raw": "LS(DOTT,2,CHBLK)", + "sequence": 2 + } + ] + }, + { + "id": "469", + "rcid": "32504", + "object_class": "OBSTRN", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "471", + "rcid": "32506", + "object_class": "OSPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LC(CTYARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "LC(CTYARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "473", + "rcid": "32508", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATPIP2" + ], + "instruction": "SY(INFARE51);LC(PIPARE61);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "PIPARE61", + "args": [ + "PIPARE61" + ], + "raw": "LC(PIPARE61)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "474", + "rcid": "32509", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "CATPIP3" + ], + "instruction": "SY(INFARE51);LC(PIPARE61);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "PIPARE61", + "args": [ + "PIPARE61" + ], + "raw": "LC(PIPARE61)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "475", + "rcid": "32510", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "PRODCT3" + ], + "instruction": "SY(INFARE51);LC(PIPARE61);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "PIPARE61", + "args": [ + "PIPARE61" + ], + "raw": "LC(PIPARE61)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "476", + "rcid": "32511", + "object_class": "PIPARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(INFARE51);LC(PIPARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "INFARE51", + "args": [ + "INFARE51" + ], + "raw": "SY(INFARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "PIPARE51", + "args": [ + "PIPARE51" + ], + "raw": "LC(PIPARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "478", + "rcid": "32513", + "object_class": "PRCARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(TSSJCT02);SY(PRCARE51);LC(PRCARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "TSSJCT02", + "args": [ + "TSSJCT02" + ], + "raw": "AP(TSSJCT02)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "PRCARE51", + "args": [ + "PRCARE51" + ], + "raw": "SY(PRCARE51)", + "sequence": 1 + }, + { + "opcode": "LC", + "args_raw": "PRCARE51", + "args": [ + "PRCARE51" + ], + "raw": "LC(PRCARE51)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "508", + "rcid": "32543", + "object_class": "RESARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(RESARE02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 0 + } + ] + }, + { + "id": "522", + "rcid": "32557", + "object_class": "SLCONS", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Routing", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(SLCONS03)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 0 + } + ] + }, + { + "id": "533", + "rcid": "32568", + "object_class": "SPLARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LC(CTYARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "LC(CTYARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "534", + "rcid": "32569", + "object_class": "SUBTLN", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(CTYARE51);LC(CTYARE51);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "SY(CTYARE51)", + "sequence": 0 + }, + { + "opcode": "LC", + "args_raw": "CTYARE51", + "args": [ + "CTYARE51" + ], + "raw": "LC(CTYARE51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "536", + "rcid": "32571", + "object_class": "TESARE", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 1", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "LS(DASH,2,CHGRF);CS(RESTRN01)", + "rules": [ + { + "opcode": "LS", + "args_raw": "DASH,2,CHGRF", + "args": [ + "DASH", + "2", + "CHGRF" + ], + "raw": "LS(DASH,2,CHGRF)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "539", + "rcid": "32574", + "object_class": "TSSCRS", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(TSSJCT02);SY(TSSCRS51);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "TSSJCT02", + "args": [ + "TSSJCT02" + ], + "raw": "AP(TSSJCT02)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "TSSCRS51", + "args": [ + "TSSCRS51" + ], + "raw": "SY(TSSCRS51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "540", + "rcid": "32575", + "object_class": "TSSLPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT" + ], + "instruction": "SY(TSSLPT51,ORIENT);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "541", + "rcid": "32576", + "object_class": "TSSLPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [ + "ORIENT" + ], + "instruction": "SY(TSSLPT51,ORIENT);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "TSSLPT51,ORIENT", + "args": [ + "TSSLPT51", + "ORIENT" + ], + "raw": "SY(TSSLPT51,ORIENT)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 1 + } + ] + }, + { + "id": "542", + "rcid": "32577", + "object_class": "TSSLPT", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(TSSJCT02);SY(CTNARE51);TX(INFORM,1,1,2,'15110',0,-2,CHBLK,24);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "TSSJCT02", + "args": [ + "TSSJCT02" + ], + "raw": "AP(TSSJCT02)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "CTNARE51", + "args": [ + "CTNARE51" + ], + "raw": "SY(CTNARE51)", + "sequence": 1 + }, + { + "opcode": "TX", + "args_raw": "INFORM,1,1,2,'15110',0,-2,CHBLK,24", + "args": [ + "INFORM", + "1", + "1", + "2", + "'15110'", + "0", + "-2", + "CHBLK", + "24" + ], + "raw": "TX(INFORM,1,1,2,'15110',0,-2,CHBLK,24)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "543", + "rcid": "32578", + "object_class": "TSSRON", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "AP(TSSJCT02);SY(TSSRON51);CS(RESTRN01)", + "rules": [ + { + "opcode": "AP", + "args_raw": "TSSJCT02", + "args": [ + "TSSJCT02" + ], + "raw": "AP(TSSJCT02)", + "sequence": 0 + }, + { + "opcode": "SY", + "args_raw": "TSSRON51", + "args": [ + "TSSRON51" + ], + "raw": "SY(TSSRON51)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "583", + "rcid": "32618", + "object_class": "WRECKS", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(WRECKS02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "WRECKS02", + "args": [ + "WRECKS02" + ], + "raw": "CS(WRECKS02)", + "sequence": 0 + } + ] + }, + { + "id": "584", + "rcid": "32619", + "object_class": "achare", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area 1", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ACHARE02);TX(OBJNAM,1,2,3,'14108',0,2,CHMGD,29);LS(DASH,2,CHMGF);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE02", + "args": [ + "ACHARE02" + ], + "raw": "SY(ACHARE02)", + "sequence": 0 + }, + { + "opcode": "TX", + "args_raw": "OBJNAM,1,2,3,'14108',0,2,CHMGD,29", + "args": [ + "OBJNAM", + "1", + "2", + "3", + "'14108'", + "0", + "2", + "CHMGD", + "29" + ], + "raw": "TX(OBJNAM,1,2,3,'14108',0,2,CHMGD,29)", + "sequence": 1 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGF", + "args": [ + "DASH", + "2", + "CHMGF" + ], + "raw": "LS(DASH,2,CHMGF)", + "sequence": 2 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 3 + } + ] + }, + { + "id": "600", + "rcid": "32635", + "object_class": "depare", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Group 1", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(DEPARE02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPARE02", + "args": [ + "DEPARE02" + ], + "raw": "CS(DEPARE02)", + "sequence": 0 + } + ] + }, + { + "id": "602", + "rcid": "32637", + "object_class": "excnst", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Area Symbol", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "LS(SOLD,2,CSTLN);CS(DEPARE02)", + "rules": [ + { + "opcode": "LS", + "args_raw": "SOLD,2,CSTLN", + "args": [ + "SOLD", + "2", + "CSTLN" + ], + "raw": "LS(SOLD,2,CSTLN)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "DEPARE02", + "args": [ + "DEPARE02" + ], + "raw": "CS(DEPARE02)", + "sequence": 1 + } + ] + }, + { + "id": "626", + "rcid": "32661", + "object_class": "resare", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Line Symbol", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(RESARE02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "RESARE02", + "args": [ + "RESARE02" + ], + "raw": "CS(RESARE02)", + "sequence": 0 + } + ] + }, + { + "id": "627", + "rcid": "32662", + "object_class": "slcons", + "geometry_type": "Area", + "table_name": "Symbolized", + "display_priority": "Routing", + "display_category": "Displaybase", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "CS(SLCONS03)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 0 + } + ] + }, + { + "id": "716", + "rcid": "31792", + "object_class": "COALNE", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Routing", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(QUAPOS01)", + "rules": [ + { + "opcode": "CS", + "args_raw": "QUAPOS01", + "args": [ + "QUAPOS01" + ], + "raw": "CS(QUAPOS01)", + "sequence": 0 + } + ] + }, + { + "id": "728", + "rcid": "31804", + "object_class": "DEPARE", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Area 2", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(DEPCNT02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPCNT02", + "args": [ + "DEPCNT02" + ], + "raw": "CS(DEPCNT02)", + "sequence": 0 + } + ] + }, + { + "id": "729", + "rcid": "31805", + "object_class": "DEPCNT", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Line Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(DEPCNT02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "DEPCNT02", + "args": [ + "DEPCNT02" + ], + "raw": "CS(DEPCNT02)", + "sequence": 0 + } + ] + }, + { + "id": "760", + "rcid": "31836", + "object_class": "LNDARE", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Hazards", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(QUAPOS01)", + "rules": [ + { + "opcode": "CS", + "args_raw": "QUAPOS01", + "args": [ + "QUAPOS01" + ], + "raw": "CS(QUAPOS01)", + "sequence": 0 + } + ] + }, + { + "id": "780", + "rcid": "31856", + "object_class": "OBSTRN", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "830", + "rcid": "31906", + "object_class": "SLCONS", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Routing", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(SLCONS03)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 0 + } + ] + }, + { + "id": "906", + "rcid": "31982", + "object_class": "slcons", + "geometry_type": "Line", + "table_name": "Lines", + "display_priority": "Routing", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(SLCONS03)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 0 + } + ] + }, + { + "id": "1131", + "rcid": "31183", + "object_class": "LIGHTS", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(LIGHTS05)", + "rules": [ + { + "opcode": "CS", + "args_raw": "LIGHTS05", + "args": [ + "LIGHTS05" + ], + "raw": "CS(LIGHTS05)", + "sequence": 0 + } + ] + }, + { + "id": "1134", + "rcid": "31186", + "object_class": "LNDARE", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Point Symbol", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "SY(LNDARE01);CS(QUAPOS01;TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26))", + "rules": [ + { + "opcode": "SY", + "args_raw": "LNDARE01", + "args": [ + "LNDARE01" + ], + "raw": "SY(LNDARE01)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "QUAPOS01", + "args": [ + "QUAPOS01" + ], + "raw": "CS(QUAPOS01", + "sequence": 1 + }, + { + "opcode": "TX", + "args_raw": "OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26)", + "args": [ + "OBJNAM", + "1", + "2", + "3", + "'15118'", + "-1", + "-1", + "CHBLK", + "26)" + ], + "raw": "TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26))", + "sequence": 2 + } + ] + }, + { + "id": "1199", + "rcid": "31251", + "object_class": "OBSTRN", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "1253", + "rcid": "31305", + "object_class": "SLCONS", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "SY(MORFAC03);CS(SLCONS03)", + "rules": [ + { + "opcode": "SY", + "args_raw": "MORFAC03", + "args": [ + "MORFAC03" + ], + "raw": "SY(MORFAC03)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 1 + } + ] + }, + { + "id": "1259", + "rcid": "31311", + "object_class": "SOUNDG", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Area Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(SOUNDG02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SOUNDG02", + "args": [ + "SOUNDG02" + ], + "raw": "CS(SOUNDG02)", + "sequence": 0 + } + ] + }, + { + "id": "1276", + "rcid": "31328", + "object_class": "UWTROC", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "1298", + "rcid": "31350", + "object_class": "WRECKS", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(WRECKS02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "WRECKS02", + "args": [ + "WRECKS02" + ], + "raw": "CS(WRECKS02)", + "sequence": 0 + } + ] + }, + { + "id": "1564", + "rcid": "31616", + "object_class": "slcons", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Hazards", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [ + "CATSLC4" + ], + "instruction": "SY(PIER0001);CS(SLCONS03)", + "rules": [ + { + "opcode": "SY", + "args_raw": "PIER0001", + "args": [ + "PIER0001" + ], + "raw": "SY(PIER0001)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 1 + } + ] + }, + { + "id": "1565", + "rcid": "31617", + "object_class": "slcons", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Hazards", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "SY(MORFAC03);CS(SLCONS03)", + "rules": [ + { + "opcode": "SY", + "args_raw": "MORFAC03", + "args": [ + "MORFAC03" + ], + "raw": "SY(MORFAC03)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 1 + } + ] + }, + { + "id": "1599", + "rcid": "31651", + "object_class": "uwtroc", + "geometry_type": "Point", + "table_name": "Simplified", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "2202", + "rcid": "30382", + "object_class": "LIGHTS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(LIGHTS05)", + "rules": [ + { + "opcode": "CS", + "args_raw": "LIGHTS05", + "args": [ + "LIGHTS05" + ], + "raw": "CS(LIGHTS05)", + "sequence": 0 + } + ] + }, + { + "id": "2209", + "rcid": "30389", + "object_class": "LNDARE", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Point Symbol", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "SY(LNDARE01);CS(QUAPOS01;TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26))", + "rules": [ + { + "opcode": "SY", + "args_raw": "LNDARE01", + "args": [ + "LNDARE01" + ], + "raw": "SY(LNDARE01)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "QUAPOS01", + "args": [ + "QUAPOS01" + ], + "raw": "CS(QUAPOS01", + "sequence": 1 + }, + { + "opcode": "TX", + "args_raw": "OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26)", + "args": [ + "OBJNAM", + "1", + "2", + "3", + "'15118'", + "-1", + "-1", + "CHBLK", + "26)" + ], + "raw": "TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26))", + "sequence": 2 + } + ] + }, + { + "id": "2317", + "rcid": "30474", + "object_class": "OBSTRN", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "2371", + "rcid": "30528", + "object_class": "SLCONS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "SY(MORFAC03);CS(SLCONS03)", + "rules": [ + { + "opcode": "SY", + "args_raw": "MORFAC03", + "args": [ + "MORFAC03" + ], + "raw": "SY(MORFAC03)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 1 + } + ] + }, + { + "id": "2377", + "rcid": "30534", + "object_class": "SOUNDG", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Area Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(SOUNDG02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "SOUNDG02", + "args": [ + "SOUNDG02" + ], + "raw": "CS(SOUNDG02)", + "sequence": 0 + } + ] + }, + { + "id": "2509", + "rcid": "30580", + "object_class": "UWTROC", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "2531", + "rcid": "30602", + "object_class": "WRECKS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(WRECKS02)", + "rules": [ + { + "opcode": "CS", + "args_raw": "WRECKS02", + "args": [ + "WRECKS02" + ], + "raw": "CS(WRECKS02)", + "sequence": 0 + } + ] + }, + { + "id": "2797", + "rcid": "30865", + "object_class": "slcons", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [ + "CATSLC4" + ], + "instruction": "SY(PIER0001);CS(SLCONS03)", + "rules": [ + { + "opcode": "SY", + "args_raw": "PIER0001", + "args": [ + "PIER0001" + ], + "raw": "SY(PIER0001)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 1 + } + ] + }, + { + "id": "2798", + "rcid": "30866", + "object_class": "slcons", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Displaybase", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "SY(MORFAC03);CS(SLCONS03)", + "rules": [ + { + "opcode": "SY", + "args_raw": "MORFAC03", + "args": [ + "MORFAC03" + ], + "raw": "SY(MORFAC03)", + "sequence": 0 + }, + { + "opcode": "CS", + "args_raw": "SLCONS03", + "args": [ + "SLCONS03" + ], + "raw": "CS(SLCONS03)", + "sequence": 1 + } + ] + }, + { + "id": "2872", + "rcid": "30900", + "object_class": "uwtroc", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Point Symbol", + "display_category": "Other", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(OBSTRN04)", + "rules": [ + { + "opcode": "CS", + "args_raw": "OBSTRN04", + "args": [ + "OBSTRN04" + ], + "raw": "CS(OBSTRN04)", + "sequence": 0 + } + ] + }, + { + "id": "2", + "rcid": "32038", + "object_class": "ACHARE", + "geometry_type": "Area", + "table_name": "Plain", + "display_priority": "Area 2", + "display_category": "Standard", + "radar_priority": "Suppressed", + "attribute_conditions_raw": [], + "instruction": "SY(ACHARE51);LS(DASH,2,CHMGF);CS(RESTRN01)", + "rules": [ + { + "opcode": "SY", + "args_raw": "ACHARE51", + "args": [ + "ACHARE51" + ], + "raw": "SY(ACHARE51)", + "sequence": 0 + }, + { + "opcode": "LS", + "args_raw": "DASH,2,CHMGF", + "args": [ + "DASH", + "2", + "CHMGF" + ], + "raw": "LS(DASH,2,CHMGF)", + "sequence": 1 + }, + { + "opcode": "CS", + "args_raw": "RESTRN01", + "args": [ + "RESTRN01" + ], + "raw": "CS(RESTRN01)", + "sequence": 2 + } + ] + }, + { + "id": "2198", + "rcid": "30378", + "object_class": "LIGHTS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(LIGHTS05)", + "rules": [ + { + "opcode": "CS", + "args_raw": "LIGHTS05", + "args": [ + "LIGHTS05" + ], + "raw": "CS(LIGHTS05)", + "sequence": 0 + } + ] + }, + { + "id": "2199", + "rcid": "30379", + "object_class": "LIGHTS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(LIGHTS05)", + "rules": [ + { + "opcode": "CS", + "args_raw": "LIGHTS05", + "args": [ + "LIGHTS05" + ], + "raw": "CS(LIGHTS05)", + "sequence": 0 + } + ] + }, + { + "id": "2200", + "rcid": "30380", + "object_class": "LIGHTS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(LIGHTS05)", + "rules": [ + { + "opcode": "CS", + "args_raw": "LIGHTS05", + "args": [ + "LIGHTS05" + ], + "raw": "CS(LIGHTS05)", + "sequence": 0 + } + ] + }, + { + "id": "2201", + "rcid": "30381", + "object_class": "LIGHTS", + "geometry_type": "Point", + "table_name": "Paper", + "display_priority": "Hazards", + "display_category": "Standard", + "radar_priority": "On Top", + "attribute_conditions_raw": [], + "instruction": "CS(LIGHTS05)", + "rules": [ + { + "opcode": "CS", + "args_raw": "LIGHTS05", + "args": [ + "LIGHTS05" + ], + "raw": "CS(LIGHTS05)", + "sequence": 0 + } + ] + } + ], + "initial_lookup_provenance": "CM95 plan-matched input, not a replacement for sole upstream snapshot; upstream XML unavailable", + "resources": [ + { + "opcode": "AP", + "resource": "CROSSX01", + "branches": [ + "SL-CONDTN", + "SL-DRY", + "SL-LOW", + "SL-OTHER", + "SL-PRESENT-GOOD", + "SL-WET", + "SL-WHARF" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_pattern_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "AP", + "resource": "DRGARE01", + "branches": [ + "DA-DRG-NOD1", + "DA-FOUR-DEEP", + "DA-FOUR-SAFE", + "DA-FOUR-SHALLOW", + "DA-INTERTIDAL", + "DA-TWO-DEEP", + "DA-VERYSHALLOW" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_pattern_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "AP", + "resource": "FOULAR01", + "branches": [ + "OB-A-FOUL", + "OB-A-ISO" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_pattern_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "LC", + "resource": "CTYARE51", + "branches": [ + "RA-NOR-A-SYMB", + "RA-NOR-AB-SYMB", + "RA-NOR-B-SYMB", + "RA-NOR-NONE-SYMB", + "RA-R-DEFAULT-SYMB", + "RA-R-INFO-SYMB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "NOT_PROVEN", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/final/s52-sprite-full-line-metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "LC", + "resource": "FSHRES51", + "branches": [ + "RA-FISH-A-SYMB", + "RA-FISH-INFO-SYMB", + "RA-FISH-ONLY-SYMB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "NOT_PROVEN", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/final/s52-sprite-full-line-metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "LC", + "resource": "LOWACC01", + "branches": [ + "SL-LOW" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "NOT_PROVEN", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/final/s52-sprite-full-line-metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "LC", + "resource": "LOWACC21", + "branches": [ + "QL-LOW" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "NOT_PROVEN", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/final/s52-sprite-full-line-metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "LC", + "resource": "LOWACC41", + "branches": [ + "WK-LINE-QLOW" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "NOT_PROVEN", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/final/s52-sprite-full-line-metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "LC", + "resource": "RESARE51", + "branches": [ + "RA-ANCHOR-INFO-SYMB", + "RA-ANCHOR-MIX-SYMB", + "RA-ANCHOR-ONLY-SYMB", + "RA-ENTRY-INFO-SYMB", + "RA-ENTRY-MIX-SYMB", + "RA-ENTRY-ONLY-SYMB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "NOT_PROVEN", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/final/s52-sprite-full-line-metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ACHRES51", + "branches": [ + "RE-ANCHOR-ONLY" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ACHRES61", + "branches": [ + "RA-ANCHOR-MIX-PLAIN", + "RA-ANCHOR-MIX-SYMB", + "RE-ANCHOR-MIX" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ACHRES71", + "branches": [ + "RA-ANCHOR-INFO-PLAIN", + "RA-ANCHOR-INFO-SYMB", + "RE-ANCHOR-INFO" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "CTYARE51", + "branches": [ + "RA-NOR-A-PLAIN", + "RA-NOR-A-SYMB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "CTYARE71", + "branches": [ + "RA-NOR-AB-PLAIN", + "RA-NOR-AB-SYMB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "DANGER01", + "branches": [ + "OB-P-OBS-ABSENT" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "DANGER51", + "branches": [ + "OB-P-OBS-OTHER", + "OB-P-ROCK-OTHER", + "WK-P-V-LT-Q0", + "WK-P-V-LT-Q7" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "DANGER52", + "branches": [ + "OB-P-DEEP", + "OB-P-OBS-SUBMERGED", + "WK-P-V-GE-Q0", + "WK-P-V-GE-Q7" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "DANGER53", + "branches": [ + "OB-P-OBS-AWASH" + ], + "cm95_universe_exists": false, + "cm95_built_resource_exists": false, + "status": "NOT_PROVEN", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": "UPSTREAM_RESOURCE_MISSING", + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ENTRES51", + "branches": [ + "RA-ENTRY-ONLY-PLAIN", + "RA-ENTRY-ONLY-SYMB", + "RE-ENTRY-ONLY" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ENTRES61", + "branches": [ + "RA-ENTRY-MIX-PLAIN", + "RA-ENTRY-MIX-SYMB", + "RE-ENTRY-MIX" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ENTRES71", + "branches": [ + "RA-ENTRY-INFO-PLAIN", + "RA-ENTRY-INFO-SYMB", + "RE-ENTRY-INFO" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "FSHRES51", + "branches": [ + "RA-FISH-A-PLAIN", + "RA-FISH-A-SYMB", + "RA-FISH-ONLY-PLAIN", + "RA-FISH-ONLY-SYMB", + "RE-FISH-ONLY" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "FSHRES71", + "branches": [ + "RA-FISH-INFO-PLAIN", + "RA-FISH-INFO-SYMB", + "RE-FISH-INFO" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "INFARE51", + "branches": [ + "RA-NOR-B-PLAIN", + "RA-NOR-B-SYMB", + "RA-R-INFO-PLAIN", + "RA-R-INFO-SYMB", + "RE-INFO" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "ISODGR51", + "branches": [ + "OB-A-ISO", + "OB-P-ISO", + "UD-OUT-WET", + "WK-P-ISO" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LIGHTS11", + "branches": [ + "LI-FLARE" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LIGHTS12", + "branches": [ + "LI-FLARE" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LIGHTS13", + "branches": [ + "LI-FLARE" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LIGHTS81", + "branches": [ + "LI-STRIP" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LIGHTS82", + "branches": [ + "LI-FLOOD" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LITDEF11", + "branches": [ + "LI-FLARE" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LNDARE01", + "branches": [ + "OB-P-OBS-DRY", + "OB-P-ROCK-NOV-DRY" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LOWACC01", + "branches": [ + "SL-P-LOW" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "LOWACC03", + "branches": [ + "QP-LOW" + ], + "cm95_universe_exists": false, + "cm95_built_resource_exists": false, + "status": "NOT_PROVEN", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": "UPSTREAM_RESOURCE_MISSING", + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "OBSTRN01", + "branches": [ + "OB-P-OBS-NOV-OTHER" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "OBSTRN03", + "branches": [ + "OB-P-OBS-NOV-AWASH" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "OBSTRN11", + "branches": [ + "OB-P-OBS-NOV-DRY" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "QUAPOS01", + "branches": [ + "QP-4" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "QUAPOS02", + "branches": [ + "QP-5" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "QUAPOS03", + "branches": [ + "QP-78" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "QUESMRK1", + "branches": [ + "LI-DIRECTION" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "RESTRN51", + "branches": [ + "RA-ANCHOR-ONLY-PLAIN", + "RA-ANCHOR-ONLY-SYMB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "RSRDEF51", + "branches": [ + "RA-NOR-NONE-PLAIN", + "RA-NOR-NONE-SYMB", + "RA-R-DEFAULT-PLAIN", + "RA-R-DEFAULT-SYMB", + "RE-DEFAULT" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG00", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG01", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG02", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG03", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG04", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG05", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG06", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG07", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG08", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG09", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG10", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG11", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG12", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG13", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG14", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG15", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG16", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG17", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG18", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG19", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG20", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG21", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG22", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG23", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG24", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG25", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG26", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG27", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG28", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG29", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG30", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG31", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG32", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG33", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG34", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG35", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG36", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG37", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG38", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG39", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG40", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG41", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG42", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG43", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG44", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG45", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG46", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG47", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG48", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG49", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG50", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG51", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG52", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG53", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG54", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG55", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG56", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG57", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG58", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDG59", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDGA1", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDGB1", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDGC2", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS00", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS01", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS02", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS03", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS04", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS05", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS06", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS07", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS08", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS09", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS10", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS11", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS12", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS13", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS14", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS15", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS16", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS17", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS18", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS19", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS20", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS21", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS22", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS23", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS24", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS25", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS26", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS27", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS28", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS29", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS30", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS31", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS32", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS33", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS34", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS35", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS36", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS37", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS38", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS39", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS40", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS41", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS42", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS43", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS44", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS45", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS46", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS47", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS48", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS49", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS50", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS51", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS52", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS53", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS54", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS55", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS56", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS57", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS58", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDS59", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDSA1", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDSB1", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "SOUNDSC2", + "branches": [ + "SG-DIGITS-*" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "UWTROC03", + "branches": [ + "OB-P-ROCK-NOV-SUB" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "UWTROC04", + "branches": [ + "OB-P-ROCK-AWASH", + "OB-P-ROCK-NOV-OTHER" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "WRECKS01", + "branches": [ + "WK-P-NOV-DRY" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "WRECKS04", + "branches": [ + "WK-P-NOV-CAT1" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "WRECKS05", + "branches": [ + "WK-P-NOV-CAT2", + "WK-P-NOV-OTHER" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + }, + { + "opcode": "SY", + "resource": "WRECKS07", + "branches": [ + "WK-P-V-GE-Q7", + "WK-P-V-LT-Q7" + ], + "cm95_universe_exists": true, + "cm95_built_resource_exists": true, + "status": "PASS", + "status_scope": "CM95 existence only; not renderer equivalence or independent upstream definition verification", + "reported_upstream_anomaly": null, + "upstream_verification_status": "NOT_PROVEN: chartsymbols.xml not in sole fixed snapshot", + "consumer_status": "PARTIAL", + "missing_behavior": "OpenCPN parser SY→QUESMRK1, LC→QUESMRK1 with line box600, AP→QUESMRK1V; current compiler SY/LC generic question mark, AP QUESMRK1; Web DANGER53 returns null", + "evidence": [ + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp", + "docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52plib.cpp:1058", + "build/s52_resources_v2/base/s52_symbol_metadata.json", + "build/chartsymbols_opencpn_master.xml" + ] + } + ], + "resource_input_hashes": { + "chartsymbols_local_sha256": "c5678321ab3533605bb51f9376ad1909a50cedb4509afc34852d8d857a109de2", + "plan_chartsymbols_sha256": "c5678321ab3533605bb51f9376ad1909a50cedb4509afc34852d8d857a109de2", + "lookup_sha256_matches_plan": true, + "resource_contract_sha256_matches_plan": true, + "fixed_csp_sha256_matches_plan": true + }, + "execution_witnesses": { + "phase_a": { + "path": "/tmp/cm95_phase_a_witness.json", + "sha256": "a15a7255729110a77ab809788f10277412e7181624cadf2bc85e4815b19ab3f2", + "result": { + "status": "PASS", + "OBSTRN": [ + "SY", + "SY", + "SY", + "SY", + "SY", + "TX" + ], + "WRECKS": [ + "SY", + "TX", + "SY", + "SY", + "SY", + "SY", + "SY" + ], + "RESARE": [ + "TX", + "OP", + "LS", + "SY" + ], + "side_effects": { + "s52_display_priority": "Line Symbol", + "s52_priority_override": "6---", + "s52_display_base_promoted": 1, + "s52_display_category": "Displaybase" + } + } + }, + "phase_b": { + "path": "/tmp/cm95_phase_b_witness.json", + "sha256": "1dcd8ae7cb2974b011573d2c3008fa895597e306d866e90851d1cdebf8f1c7ba", + "result": { + "status": "PASS", + "soundg": { + "metres": "SY(SOUNDG14);SY(SOUNDG52)", + "feet": "SY(SOUNDG11);SY(SOUNDG04)", + "fathoms": "SY(SOUNDG12);SY(SOUNDG53)" + }, + "lights": { + "metres": "SY(LITDEF11,135);TX('Fl 10m',3,2,3,'15110',2,0,CHBLK,23)", + "feet": "SY(LITDEF11,135);TX('Fl 33ft',3,2,3,'15110',2,0,CHBLK,23)" + }, + "depcnt": { + "safe_lookup": "LC(SAFECD99)", + "unsupported": "" + }, + "RC-021": { + "branch_id": "DC-OUT-ZERO-NORMAL", + "instruction": "LS(SOLD,1,DEPCN)", + "conclusion": "implementation equivalent; v2 FAIL was shared-evidence attribution" + }, + "resare": { + "plain": [ + "OP", + "LS", + "SY" + ], + "symbolized": [ + "OP", + "LC", + "SY" + ] + }, + "wreck_missing": "" + } + }, + "phase_c": { + "path": "/tmp/cm95_phase_c_witness.json", + "sha256": "8860118ebb1919f641e567332b97a4be39f7040d7413689e52d3e7b617e54651", + "result": { + "status": "PASS", + "depare": [ + "AC" + ], + "drgare": [ + "AC", + "AP", + "LS" + ], + "depcnt": { + "safe": [ + "SE", + "LC" + ], + "normal": [ + "LS" + ], + "unsupported": [] + }, + "hazards": { + "point": [ + "SY", + "SOUNDG", + "SOUNDG", + "SOUNDG", + "SY", + "TX" + ], + "line": [ + "LC", + "TX" + ], + "area": [ + "LS", + "SOUNDG", + "SOUNDG", + "SOUNDG", + "SY", + "TX" + ], + "wreck": [ + "SY", + "TX", + "SY", + "SOUNDG", + "SOUNDG", + "SY" + ], + "dry_promoted": [ + "SE", + "SY", + "SY", + "TX" + ] + }, + "danger53_missing_continued": [ + "SOUNDG", + "SOUNDG", + "SOUNDG", + "SY", + "TX" + ], + "resare": { + "plain": [ + "OP", + "LS", + "SY" + ], + "symbolized": [ + "OP", + "LC", + "SY" + ] + } + } + }, + "phase_d": { + "path": "/tmp/cm95_phase_d_witness.json", + "sha256": "a104b2edf9a6897ca73ad60936fa98cb61526d8cd2338bed3276f4ba7988babf", + "result": { + "status": "PASS", + "soundg": [ + { + "code": "SOUNDG14", + "offset": [ + -2, + 1 + ] + }, + { + "code": "SOUNDG52", + "offset": [ + 5, + 5 + ] + } + ], + "lights": { + "first": 1, + "duplicate": 0, + "different_yoff": 1, + "height_feet": "Fl 33ft" + }, + "ca": { + "low": { + "radius": 25, + "sectorRadius": 41.66666666666667, + "arcWidth": 2.5, + "outlineWidth": 7.559055118110237, + "scale": 0.5, + "metresPerPixel": 8297.251367650424 + }, + "high": { + "radius": 50, + "sectorRadius": 83.33333333333334, + "arcWidth": 5, + "outlineWidth": 15.118110236220474, + "scale": 1, + "metresPerPixel": 2.0256961346802793 + }, + "thin": { + "radius": 50, + "sectorRadius": 83.33333333333334, + "arcWidth": 3.7795275590551185, + "outlineWidth": 15.118110236220474, + "scale": 1, + "metresPerPixel": 2.0256961346802793 + } + } + } + }, + "current_probes": { + "path": "/tmp/cm95-v2-probes.json", + "sha256": "32b08a41221ec24ab5b70b367781bcb95fcebe763bc1e9a82c95fb189c7d43a3", + "result": { + "python": [ + { + "id": "ob-point-quality-name", + "branch_ids": [ + "OB-P-OBS-SUBMERGED", + "QP-4", + "OB-T-PRESENT" + ], + "input": { + "VALSOU": 10.5, + "WATLEV": 3, + "QUAPOS": 4, + "OBJNAM": "Rock" + }, + "opencpn_expected_instruction": "SY(DANGER52);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55);SY(QUAPOS01);TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26)", + "cm95_python_observed": "SY(DANGER52);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55);SY(QUAPOS01);TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26)", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_depth_m": 10.5, + "s52_hazard_procedure": "OBSTRN04", + "s52_soundg_point_csp": "SOUNDG03", + "s52_sounding_depth_m": 10.5, + "s52_sounding_display_depth": 10.51, + "s52_sounding_depth_unit": "metres", + "s52_sounding_prefix": "SOUNDG", + "s52_sounding_symbol_sequence": "SOUNDGC2,SOUNDG21,SOUNDG10,SOUNDG55", + "s52_sounding_swept": 0, + "s52_sounding_low_quality": 1, + "s52_sounding_is_shallow": 0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "ob-line-sounding", + "branch_ids": [ + "OB-L-SHALLOW" + ], + "input": { + "geometry": "LINE", + "VALSOU": 10.5 + }, + "opencpn_expected_instruction": "LS(DOTT,2,CHBLK);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_python_observed": "LS(DOTT,2,CHBLK);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_depth_m": 10.5, + "s52_hazard_procedure": "OBSTRN04", + "s52_soundg_point_csp": "SOUNDG03", + "s52_sounding_depth_m": 10.5, + "s52_sounding_display_depth": 10.51, + "s52_sounding_depth_unit": "metres", + "s52_sounding_prefix": "SOUNDG", + "s52_sounding_symbol_sequence": "SOUNDG21,SOUNDG10,SOUNDG55", + "s52_sounding_swept": 0, + "s52_sounding_low_quality": 0, + "s52_sounding_is_shallow": 0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "ob-area-sounding", + "branch_ids": [ + "OB-A-SHALLOW" + ], + "input": { + "geometry": "AREA", + "VALSOU": 10.5 + }, + "opencpn_expected_instruction": "LS(DOTT,2,CHBLK);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_python_observed": "LS(DOTT,2,CHBLK);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_depth_m": 10.5, + "s52_hazard_procedure": "OBSTRN04", + "s52_soundg_point_csp": "SOUNDG03", + "s52_sounding_depth_m": 10.5, + "s52_sounding_display_depth": 10.51, + "s52_sounding_depth_unit": "metres", + "s52_sounding_prefix": "SOUNDG", + "s52_sounding_symbol_sequence": "SOUNDG21,SOUNDG10,SOUNDG55", + "s52_sounding_swept": 0, + "s52_sounding_low_quality": 0, + "s52_sounding_is_shallow": 0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "ob-isolated-area-quality", + "branch_ids": [ + "OB-A-ISO", + "QP-4" + ], + "input": { + "VALSOU": 1, + "QUAPOS": 4, + "association": { + "drval1": 10, + "drval2": 20 + } + }, + "opencpn_expected_instruction": "AC(DEPVS);AP(FOULAR01);LS(DOTT,2,CHBLK);SY(ISODGR51);SY(QUAPOS01)", + "cm95_python_observed": "AC(DEPVS);AP(FOULAR01);LS(DOTT,2,CHBLK);SY(ISODGR51);SY(QUAPOS01)", + "cm95_extra": { + "s52_isolated_danger": 1, + "s52_display_base_promoted": 1, + "s52_hazard_depth_m": 1.0, + "s52_hazard_procedure": "OBSTRN04" + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "wreck-point-full-chain", + "branch_ids": [ + "WK-P-V-GE-Q7", + "QP-5" + ], + "input": { + "VALSOU": 10.5, + "QUASOU": "7", + "QUAPOS": 5 + }, + "opencpn_expected_instruction": "SY(DANGER52);TX('Wk',3,1,2,'15110',2,0,CHBLK,21);SY(WRECKS07);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55);SY(QUAPOS02)", + "cm95_python_observed": "SY(DANGER52);TX('Wk',3,1,2,'15110',2,0,CHBLK,21);SY(WRECKS07);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55);SY(QUAPOS02)", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_procedure": "WRECKS02", + "s52_hazard_depth_m": 10.5, + "s52_soundg_point_csp": "SOUNDG03", + "s52_sounding_depth_m": 10.5, + "s52_sounding_display_depth": 10.51, + "s52_sounding_depth_unit": "metres", + "s52_sounding_prefix": "SOUNDG", + "s52_sounding_symbol_sequence": "SOUNDGC2,SOUNDG21,SOUNDG10,SOUNDG55", + "s52_sounding_swept": 0, + "s52_sounding_low_quality": 1, + "s52_sounding_is_shallow": 0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "wreck-missing-category", + "branch_ids": [ + "WK-P-NOV-MISSING" + ], + "input": { + "WATLEV": 3, + "no_associations": true + }, + "opencpn_expected_instruction": "", + "cm95_python_observed": "", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_depth_m": 0.01, + "s52_hazard_procedure": "WRECKS02" + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "wreck-dry-area", + "branch_ids": [ + "WK-LINE-DRY", + "WK-TAIL-DRY" + ], + "input": { + "WATLEV": 1, + "CATWRK": 4 + }, + "opencpn_expected_instruction": "LS(SOLD,2,CSTLN);AC(CHBRN)", + "cm95_python_observed": "LS(SOLD,2,CSTLN);AC(CHBRN)", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_depth_m": -15.0, + "s52_hazard_procedure": "WRECKS02" + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "wreck-area-q-before-sounding", + "branch_ids": [ + "WK-LINE-QLOW", + "WK-TAIL-SHALLOW" + ], + "input": { + "VALSOU": 10.5, + "QUAPOS": 4 + }, + "opencpn_expected_instruction": "LC(LOWACC41);SY(QUAPOS01);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_python_observed": "LC(LOWACC41);SY(QUAPOS01);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_extra": { + "s52_isolated_danger": 0, + "s52_display_base_promoted": 0, + "s52_hazard_depth_m": 10.5, + "s52_hazard_procedure": "WRECKS02", + "s52_soundg_point_csp": "SOUNDG03", + "s52_sounding_depth_m": 10.5, + "s52_sounding_display_depth": 10.51, + "s52_sounding_depth_unit": "metres", + "s52_sounding_prefix": "SOUNDG", + "s52_sounding_symbol_sequence": "SOUNDGC2,SOUNDG21,SOUNDG10,SOUNDG55", + "s52_sounding_swept": 0, + "s52_sounding_low_quality": 1, + "s52_sounding_is_shallow": 0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "ud-known-expsou", + "branch_ids": [ + "UD-KNOWN-SHALLOW", + "UD-OUT-WET" + ], + "input": { + "depth": 1, + "EXPSOU": 1, + "association": { + "drval1": 10, + "drval2": 20 + } + }, + "opencpn_expected_instruction": "SY(ISODGR51)", + "cm95_python_observed": "SY(ISODGR51)", + "cm95_extra": { + "s52_isolated_danger": 1, + "s52_display_base_promoted": 1, + "s52_hazard_depth_m": 1.0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "known depth upstream local expsou remains0" + }, + { + "id": "slcons-q4", + "branch_ids": [ + "SL-LOW" + ], + "input": { + "QUAPOS": 4 + }, + "opencpn_expected_instruction": "LC(LOWACC01)", + "cm95_python_observed": "LC(LOWACC01)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "slcons-q1", + "branch_ids": [ + "SL-PRESENT-GOOD" + ], + "input": { + "QUAPOS": 1 + }, + "opencpn_expected_instruction": "", + "cm95_python_observed": "", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "restrn-14", + "branch_ids": [ + "RE-ENTRY-ONLY" + ], + "input": { + "RESTRN": "14" + }, + "opencpn_expected_instruction": "SY(ENTRES51)", + "cm95_python_observed": "SY(ENTRES51)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "restrn-15", + "branch_ids": [ + "RE-DEFAULT" + ], + "input": { + "RESTRN": "15" + }, + "opencpn_expected_instruction": "SY(RSRDEF51)", + "cm95_python_observed": "SY(RSRDEF51)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "restrn-1,15", + "branch_ids": [ + "RE-ANCHOR-ONLY" + ], + "input": { + "RESTRN": "1,15" + }, + "opencpn_expected_instruction": "SY(ACHRES51)", + "cm95_python_observed": "SY(ACHRES51)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "restrn-7,9", + "branch_ids": [ + "RE-ENTRY-INFO" + ], + "input": { + "RESTRN": "7,9" + }, + "opencpn_expected_instruction": "SY(ENTRES71)", + "cm95_python_observed": "SY(ENTRES71)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "resare-14", + "branch_ids": [ + "RA-ENTRY-ONLY-PLAIN" + ], + "input": { + "RESTRN": "14" + }, + "opencpn_expected_instruction": "OP(6---);LS(DASH,2,CHMGD);SY(ENTRES51)", + "cm95_python_observed": "OP(6---);LS(DASH,2,CHMGD);SY(ENTRES51)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "OP in returned string not executed upstream" + }, + { + "id": "resare-empty-present", + "branch_ids": [ + "RA-R-DEFAULT-PLAIN" + ], + "input": { + "RESTRN": "", + "CATREA": "1" + }, + "opencpn_expected_instruction": "LS(DASH,2,CHMGD);SY(RSRDEF51)", + "cm95_python_observed": "LS(DASH,2,CHMGD);SY(RSRDEF51)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "depcnt-q1", + "branch_ids": [ + "DC-OUT-OTHER" + ], + "input": { + "VALDCO": 10, + "QUAPOS": 1 + }, + "opencpn_expected_instruction": "", + "cm95_python_observed": "", + "cm95_extra": false, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "depcnt-depare-invalid-range", + "branch_ids": [ + "DC-DEC-DEP-LOW" + ], + "input": { + "DRVAL1": 2, + "DRVAL2": 2, + "chart_next": 2 + }, + "opencpn_expected_instruction": "LS(SOLD,1,DEPCN)", + "cm95_python_observed": "LS(SOLD,2,DEPSC)", + "cm95_extra": true, + "sequence_match": false, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "lights-amber", + "branch_ids": [ + "LI-SEL-YELLOW" + ], + "input": { + "COLOUR": "9" + }, + "opencpn_expected_instruction": "SY(LIGHTS13,135);TX(' ',3,2,3,'15110',2,0,CHBLK,23)", + "cm95_python_observed": "SY(LIGHTS13,135)", + "cm95_extra": { + "s52_light_nominal_range_nm": 9.0, + "s52_light_mode": "flare", + "s52_light_rotation_deg": 135.0 + }, + "sequence_match": false, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "whitespace/number lexical differences retained; mismatch reasoning uses resource/radius/text not lexical equality alone" + }, + { + "id": "lights-orange", + "branch_ids": [ + "LI-SEL-OTHER" + ], + "input": { + "COLOUR": "11" + }, + "opencpn_expected_instruction": "SY(LITDEF11,135);TX(' ',3,2,3,'15110',2,0,CHBLK,23)", + "cm95_python_observed": "SY(LITDEF11,135)", + "cm95_extra": { + "s52_light_nominal_range_nm": 9.0, + "s52_light_mode": "flare", + "s52_light_rotation_deg": 135.0 + }, + "sequence_match": false, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "whitespace/number lexical differences retained; mismatch reasoning uses resource/radius/text not lexical equality alone" + }, + { + "id": "lights-unknown-round", + "branch_ids": [ + "LI-SEL-OTHER" + ], + "input": { + "COLOUR": "2", + "VALNMR": 10 + }, + "opencpn_expected_instruction": "CA(OUTLW,4,CHMGD,2,0,360,15,0);TX(' 10Nm',3,2,3,'15110',2,0,CHBLK,23)", + "cm95_python_observed": "CA(OUTLW,4,CHMGD,2,0,360,15.0,0);TX('10Nm',3,2,3,'15110',2,0,CHBLK,23)", + "cm95_extra": { + "s52_light_nominal_range_nm": 10.0, + "s52_light_mode": "all_round", + "s52_light_label_text": "10Nm" + }, + "sequence_match": false, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "whitespace/number lexical differences retained; mismatch reasoning uses resource/radius/text not lexical equality alone" + }, + { + "id": "lights-zero-sector", + "branch_ids": [ + "LI-SECTOR-RADIUS" + ], + "input": { + "VALNMR": 0, + "SECTR1": 30, + "SECTR2": 60 + }, + "opencpn_expected_instruction": "CA(OUTLW,4,CHMGD,2,210,240,20,25)", + "cm95_python_observed": "CA(OUTLW,4,CHMGD,2,210.0,240.0,20.0,25.0)", + "cm95_extra": { + "s52_light_nominal_range_nm": 0.0, + "s52_light_mode": "sector", + "s52_sector_start_deg": 30.0, + "s52_sector_end_deg": 60.0, + "s52_sector_sweep_deg": 30.0 + }, + "sequence_match": false, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "whitespace/number lexical differences retained; mismatch reasoning uses resource/radius/text not lexical equality alone" + }, + { + "id": "lights-group-missing", + "branch_ids": [ + "LI-DESC-TWO-GROUP" + ], + "input": { + "LITCHR": 13 + }, + "opencpn_expected_instruction": "SY(LITDEF11,135);TX('F(?) + Fl',3,2,3,'15110',2,0,CHBLK,23)", + "cm95_python_observed": "SY(LITDEF11,135);TX('F(?) + Fl',3,2,3,'15110',2,0,CHBLK,23)", + "cm95_extra": { + "s52_light_nominal_range_nm": 9.0, + "s52_light_mode": "flare", + "s52_light_rotation_deg": 135.0, + "s52_light_label_text": "F(?) + Fl" + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "whitespace/number lexical differences retained; mismatch reasoning uses resource/radius/text not lexical equality alone" + }, + { + "id": "soundg-metre-glyphs", + "branch_ids": [ + "SG-DIGITS-TWO-FRACTION", + "SG-SWEPT", + "SG-QUALITY" + ], + "input": { + "TECSOU": "6", + "QUASOU": "3", + "depth": 10.5 + }, + "opencpn_expected_instruction": "SY(SOUNDGB1);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_python_observed": "SY(SOUNDGB1);SY(SOUNDGC2);SY(SOUNDG21);SY(SOUNDG10);SY(SOUNDG55)", + "cm95_extra": { + "s52_soundg_point_csp": "SOUNDG03", + "s52_sounding_depth_m": 10.5, + "s52_sounding_display_depth": 10.51, + "s52_sounding_depth_unit": "metres", + "s52_sounding_prefix": "SOUNDG", + "s52_sounding_symbol_sequence": "SOUNDGB1,SOUNDGC2,SOUNDG21,SOUNDG10,SOUNDG55", + "s52_sounding_swept": 1, + "s52_sounding_low_quality": 1, + "s52_sounding_is_shallow": 0 + }, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + }, + { + "id": "qualin-double-line", + "branch_ids": [ + "QL-RADAR" + ], + "input": { + "CONRAD": 1 + }, + "opencpn_expected_instruction": "LS(SOLD,3,CHMGF);LS(SOLD,1,CSTLN)", + "cm95_python_observed": "LS(SOLD,3,CHMGF);LS(SOLD,1,CSTLN)", + "cm95_extra": null, + "sequence_match": true, + "expected_origin": "manual exact trace of fixed source, not an executed OpenCPN binary", + "notes": "" + } + ], + "javascript": [ + { + "input": { + "case": "normal-ob-10.5", + "s52_runtime_csp": "OBSTRN04", + "least_depth_m": 10.5, + "s52_hazard_depth_m": 10.5, + "s52_watlev_code": 3, + "s52_quapos_code": 4 + }, + "isolated": false, + "symbol": "DANGER52", + "depth_text": "10.5" + }, + { + "input": { + "case": "wreck-quasou7", + "s52_runtime_csp": "WRECKS02", + "least_depth_m": 1, + "s52_hazard_depth_m": 1, + "s52_surrounding_max_drval1_m": 10, + "s52_quasou_codes": "[7]" + }, + "isolated": true, + "symbol": "ISODGR51", + "depth_text": "" + }, + { + "input": { + "case": "ob-deep-dry", + "s52_runtime_csp": "OBSTRN04", + "least_depth_m": 25, + "s52_hazard_depth_m": 25, + "s52_watlev_code": 1 + }, + "isolated": false, + "symbol": "DANGER52", + "depth_text": "" + }, + { + "input": { + "case": "danger53", + "s52_runtime_csp": "OBSTRN04", + "least_depth_m": 10.5, + "s52_hazard_depth_m": 10.5, + "s52_watlev_code": 4 + }, + "isolated": false, + "symbol": null, + "depth_text": "10.5" + } + ], + "normalization": { + "input": [ + "$AREAS", + "AREA", + { + "$SCODE": "II25" + } + ], + "observed": [ + "$AREAS", + { + "$SCODE": "II25" + } + ], + "expected": [ + "$AREAS", + { + "$SCODE": "BACKGROUND" + } + ] + }, + "limitations": [ + "Python/JS probes are current implementation executions, not OpenCPN binary replay", + "manual expected traces use only fixed source; UB branches excluded", + "Node only evaluates extracted pure functions, not MapLibre rendering" + ] + } + } + }, + "data_release": { + "status": "PASS", + "scope": "production completion summary; no rebuild/finalize performed by this audit", + "summary_path": "build/releases-s52-v2/cm95-d1-62a85bd40d3a-d6627c77efec/production_run_summary_v1.json" + }, + "target_portrayal": { + "status": "FAIL", + "scope": "full fixed-baseline flow; one branch FAIL plus Gate A/F/G/I limitations" + }, + "unresolved_items": [ + "$AREAS II25 normalization and remaining lookup parser semantic differences", + "source-level unique real-data branch assignment", + "independent fixed-baseline chartsymbols resource equivalence", + "cross-object/global render-pass interleaving", + "DC-DEC-DEP-LOW invalid DEPARE interval normalization" + ], + "git_delivery": { + "audit_input_head": "e1e3a9e00ce38c7687938cab34a8e0e23be936dc", + "branch": "main", + "push_target": "origin/main", + "result_record": "recorded by final task handoff after commit/push" + }, + "production_plan_path": "build/production/cm95_s52_kyushu_production_plan_v5_ordered_rule_ir.json", + "release_path": "build/releases-s52-v2/cm95-d1-62a85bd40d3a-d6627c77efec", + "production_verification": { + "status": "PASS", + "plan_sha256": "d6772d47e43c37d8789588f8a83c90bea0efbad0bf1ffa1ce8d690b99535ad02", + "summary_sha256": "7e411b7f01e0e6f7b13e3202c8105980d7b549cf518dd7892d56c5eef756f32f", + "jobs": 5065, + "states": { + "PASS": 5065 + }, + "pbf_files": 5064, + "features": 476120, + "rebuild_performed_by_this_audit": false + }, + "v3_method": { + "source_matrix": "build/audits/cm95_s52_opencpn_code_first_equivalence_v2.json", + "record_count": 206, + "rule": "Every old FAIL was independently rechecked against the closing mechanism; old NOT_PROVEN remained NOT_PROVEN unless a fresh witness proved a different status.", + "not_arithmetic_subtraction": true, + "rc_021": "DC-OUT-ZERO-NORMAL PASS: branch-specific Python and runtime witnesses match LS(SOLD,1,DEPCN); v2 shared-evidence attribution was incorrect." + } +} diff --git a/build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json b/build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json new file mode 100644 index 0000000..a8646f2 --- /dev/null +++ b/build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json @@ -0,0 +1,32 @@ +{ + "schema": "cm95.s52.residual-fail-evidence/v1", + "date": "2026-09-21", + "source_audit": "build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json", + "fail_count": 1, + "failures": [ + { + "branch_id": "DC-DEC-DEP-LOW", + "procedure": "DEPCNT02", + "condition": "LINE DEPARE; d1<=SC and d220; either class | SY(DANGER52) → S(V) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-P-ROCK-NOV-DRY | U empty; V absent; UWTROC; WATLEV=2 | SY(LNDARE01) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-P-ROCK-NOV-SUB | U empty; V absent; UWTROC; WATLEV=3 | SY(UWTROC03) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-P-ROCK-NOV-OTHER | U empty; V absent; UWTROC; WATLEV absent/other | SY(UWTROC04) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-P-OBS-NOV-DRY | U empty; V absent; OBSTRN; WATLEV∈{1,2} | SY(OBSTRN11) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-P-OBS-NOV-AWASH | U empty; V absent; OBSTRN; WATLEV∈{4,5} | SY(OBSTRN03) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-P-OBS-NOV-OTHER | U empty; V absent; OBSTRN; WATLEV absent/3/other | SY(OBSTRN01) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-L-QLOW | Q.Len()>1 (QUAPOS 2..9) | ToLong(Q string) into uninitialized long; conditional LC(LOWACC41/31); then T | actual Q is ;SY(...)+separator, not numeric; unchecked ToLong/uninitialized quapos: do not invent deterministic expected LC | NOT_PROVEN | +| OB-L-ISO | Q.Len()<=1; U nonempty | LS(DOTT,2,CHBLK) → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-L-SHALLOW | Q.Len()<=1; U empty; V present<=20 | LS(DOTT,2,CHBLK) → S(V) → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-L-DEEP | Q.Len()<=1; U empty; V>20 | LS(DASH,2,CHBLK) → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-L-NOV | Q.Len()<=1; U empty; V absent | LS(DOTT,2,CHBLK) → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-ISO | U nonempty | AC(DEPVS) → AP(FOULAR01) → LS(DOTT,2,CHBLK) → SY(ISODGR51) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-SHALLOW | U empty; V<=20 | LS(DOTT,2,CHBLK) → S(V) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-DEEP | U empty; V>20 | LS(DASH,2,CHBLK) → S(V) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-DRY | U empty; V absent; WATLEV∈{1,2} | AC(CHBRN) → LS(SOLD,2,CSTLN) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-AWASH | U empty; V absent; WATLEV=4 | AC(DEPIT) → LS(DASH,2,CSTLN) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-FOUL | U empty; V absent; WATLEV∈{3,5}; CATOBS=6 | AC(DEPVS) → AP(FOULAR01) → LS(DOTT,2,CHBLK) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-A-DEFAULT | U empty; V absent; remaining WATLEV/CATOBS | AC(DEPVS) → LS(DOTT,2,CHBLK) → Q → T | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-T-PRESENT | OBJNAM attribute exists (including empty string) | terminal prefix → Q or S as terminal specifies → TX(OBJNAM,1,2,3,'15118',-1,-1,CHBLK,26) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| OB-T-ABSENT | OBJNAM missing | terminal prefix → Q or S as terminal specifies | OB-T is the T macro; text rendering still has separate visibility gates | NOT_PROVEN | + +### WRECKS02 + +| branch_id | condition | expected | current / evidence | v3 status | +|---|---|---|---|---| +| WK-D-VAL | V present | depth=V → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-CAT1 | V absent; CATWRK=1 | depth=20 → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-CAT2 | V absent; CATWRK=2 | depth=0 → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-CAT45 | V absent; CATWRK∈{4,5} | depth=-15 → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-CATOTHER | V absent; CATWRK present not 1/2/4/5 | depth=UNKNOWN → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-WAT3 | V absent; CATWRK absent; WATLEV=3 | depth=0.01 → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-WAT5 | V absent; CATWRK absent; WATLEV=5 | depth=0 → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-WATDRY | V absent; CATWRK absent; WATLEV absent/1/2/4/6 | depth=-15 → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-D-WATOTHER | V absent; CATWRK absent; WATLEV other | depth=UNKNOWN → U unless QUASOU contains 7 → terminal WK branch | fixed _DEPVAL01 is stub; unsupported present CATWRK leaves UNKNOWN upstream | NOT_PROVEN | +| WK-U-SKIP7 | QUASOU contains 7 | U=empty; quasou=7 → Q → terminal WK branch | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-ISO | U nonempty | SY(ISODGR51) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-V-LT-Q0 | U empty; V < safety_contour; QUASOU excludes 7 | SY(DANGER51) → TX('Wk',3,1,2,'15110',2,0,CHBLK,21) → S(V) → U(empty) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-V-LT-Q7 | U empty; V < safety_contour; QUASOU contains 7 | SY(DANGER51) → TX('Wk',3,1,2,'15110',2,0,CHBLK,21) → SY(WRECKS07) → S(V) → U(empty) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-V-GE-Q0 | U empty; V >= safety_contour; QUASOU excludes 7 | SY(DANGER52) → TX('Wk',3,1,2,'15110',2,0,CHBLK,21) → S(V) → U(empty) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-V-GE-Q7 | U empty; V >= safety_contour; QUASOU contains 7 | SY(DANGER52) → TX('Wk',3,1,2,'15110',2,0,CHBLK,21) → SY(WRECKS07) → S(V) → U(empty) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-NOV-CAT1 | U empty; V absent; CATWRK=1 and WATLEV=3 | SY(WRECKS04) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-NOV-CAT2 | U empty; V absent; CATWRK=2 and WATLEV=3 | SY(WRECKS05) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-NOV-DRY | U empty; V absent; both attrs present; (CATWRK∈{4,5} or WATLEV∈{1,2,4,5}) | SY(WRECKS01) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-NOV-OTHER | U empty; V absent; both attrs present; remaining values | SY(WRECKS05) → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-P-NOV-MISSING | U empty; V absent; CATWRK or WATLEV absent | Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-QLOW | QUAPOS∈[2,9] | LC(LOWACC41) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-ISO | QUAPOS outside [2,9]; U nonempty | LS(DOTT,2,CHBLK) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-VALSH | accurate; U empty; V<=20 | LS(DOTT,2,CHBLK) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-VALDP | accurate; U empty; V>20 | LS(DASH,2,CHBLK) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-DRY | accurate; U empty; V absent; WATLEV∈{1,2} | LS(SOLD,2,CSTLN) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-AWASH | accurate; U empty; V absent; WATLEV=4 | LS(DASH,2,CSTLN) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-LINE-DEFAULT | accurate; U empty; V absent; WATLEV other/absent | LS(DOTT,2,CSTLN) → WK-TAIL selected by V/WATLEV | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-TAIL-SHALLOW | V present<=20 | WK-LINE selected above → U → Q → S(V) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-TAIL-DEEP | V>20 | WK-LINE selected above → U → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-TAIL-DRY | V absent; WATLEV∈{1,2} | WK-LINE selected above → AC(CHBRN) → U → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-TAIL-AWASH | V absent; WATLEV=4 | WK-LINE selected above → AC(DEPIT) → U → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| WK-TAIL-DEFAULT | V absent; WATLEV other/absent | WK-LINE selected above → AC(DEPVS) → U → Q | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | + +### UDWHAZ03 + +| branch_id | condition | expected | current / evidence | v3 status | +|---|---|---|---|---| +| UD-PUBLIC | direct CS(UDWHAZ03) | — | public registered function returns NULL; hazard callers use _UDWHAZ03 helper, not this entry | NOT_PROVEN | +| UD-UNKNOWN-DANGER | depth=UNKNOWN; EXPSOU!=1 | danger=true → UD-OUT according to danger and WATLEV | fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven | NOT_PROVEN | +| UD-UNKNOWN-EXPOSED | depth=UNKNOWN; EXPSOU=1 | association scan; AREA cannot promote; LINE DRVAL2SC; EXPSOU attribute ignored | danger=false → UD-OUT according to danger and WATLEV | fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven | NOT_PROVEN | +| UD-KNOWN-SHALLOW | known depth<=SC; local expsou remains 0 | association scan → UD-OUT according to danger and WATLEV | fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven | NOT_PROVEN | +| UD-ASSOC-LINE | eligible scan; any associated GEO_LINE DRVAL2(default0)=SC and local expsou!=1 | danger=true → UD-OUT according to danger and WATLEV | fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven | NOT_PROVEN | +| UD-ASSOC-NONE | eligible scan; no qualifying association or chart absent | danger=false → UD-OUT according to danger and WATLEV | fixed snapshot lacks GetAssociatedObjects implementation; summary membership equality not proven | NOT_PROVEN | +| UD-OUT-DRY | danger=true; WATLEV 1/2 | — | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| UD-OUT-WET | danger=true; WATLEV otherwise | SY(ISODGR51) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| UD-OUT-SAFE | danger=false | — | upstream b_promote always false; DisplayBase is direct mutation, not OP; JS does not emit category | NOT_PROVEN | + +### SOUNDG03 + +| branch_id | condition | expected | current / evidence | v3 status | +|---|---|---|---|---| +| SG-CLAMP-HIGH | input>40000 | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-CLAMP-LOW | input<-1000 | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-METRES | unit neither 0 nor 2 | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-FEET | unit=0 | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-FATHOMS | unit=2 | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-SHALLOW | d after signed .01 adjustment <= converted SD | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DEEP | adjusted d > converted SD | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-SWEPT | TECSOU contains6 | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-QUALITY | QUASOU intersects{3,4,5,8,9} or STATUS contains18 else QUAPOS∈[2,9] | prelude(SG-CLAMP/UNIT/PREFIX) → B1 if swept → C2 if unreliable → SG-DIGITS selected by adjusted d | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-ONE | abs(d)<10; feet rounding may fall through | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix1a) → SY(prefix5f) if f>0 → SY(prefixA1) if negative | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-TWO-FRACTION | abs(d)<31; fractional remainder !=0 | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix2a) if leading>=10 → SY(prefix1b) → SY(prefix5f) if f>0 and !feet → SY(prefixA1) if negative | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-TWO-NEG | previous branches not returned; abs(d)<100; d<0 | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix2a) → SY(prefix1b) → SY(prefixA1) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-TWO-POS | previous branches not returned; abs(d)<100; d>=0 | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix1a) → SY(prefix0b) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-THREE | previous branches not returned; d<1000 (signed compare) | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix2a) → SY(prefix1b) → SY(prefix0c) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-FOUR | previous branches not returned; d<10000 | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix2a) → SY(prefix1b) → SY(prefix0c) → SY(prefix4d) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| SG-DIGITS-FIVE | remaining | SY(prefixB1) if swept → SY(prefixC2) if unreliable → SY(prefix3a) → SY(prefix2b) → SY(prefix1c) → SY(prefix0d) → SY(prefix4e) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | + +### SOUNDG02 + +| branch_id | condition | expected | current / evidence | v3 status | +|---|---|---|---|---| +| MP-SPLIT | CS(SOUNDG02) reached | MP() → RenderMPS: for every point CS(SOUNDG03) → SNDFRM02(z) → ordered SY glyphs | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | + +### DEPARE01/DEPARE02 + +| branch_id | condition | expected | current / evidence | v3 status | +|---|---|---|---|---| +| DA-ALIAS | CS(DEPARE02) | same DEPARE01 branch tree | full Object→Lookup→consumer equivalence and rendering parameters not proven | NOT_PROVEN | +| DA-INTERTIDAL | base: d1<0 or d2<=0; no later override | AC(DEPIT) → AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE | assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract | NOT_PROVEN | +| DA-VERYSHALLOW | base: d1>=0 and d2>0; no later override | AC(DEPVS) → AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE | assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract | NOT_PROVEN | +| DA-TWO-DEEP | two_shades=true; d1>=SC and d2>SC | AC(DEPDW) → AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE | assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract | NOT_PROVEN | +| DA-FOUR-SHALLOW | !two_shades; d1>=shallow and d2>shallow; no later override | AC(DEPMS) → AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE | assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract | NOT_PROVEN | +| DA-FOUR-SAFE | !two_shades; d1>=SC and d2>SC; no deep override | AC(DEPMD) → AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE | assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract | NOT_PROVEN | +| DA-FOUR-DEEP | !two_shades; d1>=deep and d2>deep | AC(DEPDW) → AP(DRGARE01),LS(DASH,1,CHGRF) iff DRGARE | assumes both DRVALs initialized. runtime lacks two_shades and DRGARE suffix; fixed hardcoded color/opacity differs from palette contract | NOT_PROVEN | +| DA-DRG-NOD1 | DRGARE and DRVAL1 absent | AC(DEPMD) → AP(DRGARE01) → LS(DASH,1,CHGRF) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| DA-BAD-RANGE | DRVAL2<=DRVAL1 | DRVAL2=DRVAL1+0.01 → selected AC + DRGARE suffix | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| DA-MISSING-D2 | DRVAL2 absent | NOT_PROVEN: uninitialized drval2 read upstream; do not assign an expected color | upstream undefined behavior; source presence missing in delivery does not prove absent in original | NOT_PROVEN | + +### DEPCNT02 + +| branch_id | condition | expected | current / evidence | v3 status | +|---|---|---|---|---| +| DC-DEC-DEP-RANGE | LINE DEPARE; d1<=SC and d2>=SC | safe=true → DC-OUT selected by QUAPOS and safe | Python DEPARE fallback may mark safe despite d1<=SC,d2SC | safe=(abs(d1-chart.next)<1e-4) → DC-OUT selected by QUAPOS and safe | Python DEPARE fallback may mark safe despite d1<=SC,d2=10 | CA(OUTLW,4,roundColor,2,0,360,radius+colorDelta,0) → LI-TEXT selected by _LITDSN01 + prior lat/lon/description | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-ZERO-SWEEP | sector values not -9; sweep<1 or =360 | CA(OUTLW,4,roundColor,2,0,360,radius+colorDelta,0) → LI-TEXT selected by _LITDSN01 + prior lat/lon/description | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-SECTOR | sector; sweep>=1 !=360; not obscured | CA(OUTLW,4,sectorColor,2,start,end,sectorRadius,25) → LI-TEXT selected by _LITDSN01 + prior lat/lon/description | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-OBSCURED | sector; sweep>=1 !=360; LITVIS3/7/8 | CA(CHBLK,4,CHBRN,1,start,end,sectorRadius,25) → LI-TEXT selected by _LITDSN01 + prior lat/lon/description | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-SEL-RED | single3 or pair1+3 | LI terminal with flare LIGHTS11; round LITRD delta1 → LI-TEXT | CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded | NOT_PROVEN | +| LI-SEL-GREEN | single4 or pair1+4 | LI terminal with flare LIGHTS12; round LITGN delta0 → LI-TEXT | CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded | NOT_PROVEN | +| LI-SEL-YELLOW | single1/6/9 (octal011) | LI terminal with flare LIGHTS13; round LITYW delta2 → LI-TEXT | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-SEL-MAGENTA | single12 / absent color default12 | LI terminal with flare LITDEF11; round CHMGD delta3 → LI-TEXT | CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded | NOT_PROVEN | +| LI-SEL-OTHER | other single/multi color | LI terminal with flare LITDEF11; round CHMGD delta5 → LI-TEXT | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-SECTOR-COLOR | single3→red;4→green;1/6/11→yellow; pair1+3/red,1+4/green;else magenta | LI terminal with sectorColor from this table → LI-TEXT | CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded | NOT_PROVEN | +| LI-ROUND-RADIUS | V>0: <7→3;<15→10;<30→15;else20; V<=0→3 | LI terminal with round radius before colorDelta → LI-TEXT | CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded | NOT_PROVEN | +| LI-SECTOR-RADIUS | V>0: <15→10;<30→15;else20; V<=0→20 | LI terminal with sector radius → LI-TEXT | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-ANGLE | sectr2<=sectr1→+360; each >180 subtract180 else add180 | LI terminal with start,end after seaward conversion → LI-TEXT | CA equivalent angle modulo alone does not prove renderer scale/layout; exact source parameters remain recorded | NOT_PROVEN | +| LI-SENTINEL | either SECTR value=-9 | LI terminal with non-sector branch → LI-TEXT | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-TEXT-FIRST | different lastLat/lastLon; description nonempty | LI mode prefix → TX(desc,3,2,3,'15110',2,0,CHBLK,23) | flare_at_45 false in reachable LIGHTS06; text visibility handled later by RenderT_All | NOT_PROVEN | +| LI-TEXT-DUPLICATE | same previous lat/lon; same description | LI mode prefix | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-TEXT-CHANGED | same previous lat/lon; different description | LI mode prefix → TX(desc,3,2,3,'15110',2,1,CHBLK,23) | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-TEXT-EMPTY-FIRST | different lat/lon; empty description | LI mode prefix | flare_at_45 false in reachable LIGHTS06; text visibility handled later by RenderT_All | NOT_PROVEN | +| LI-DESC-CHAR | LITCHR1..29 or absent/unknown | LI mode prefix → TX using description rule: description abbreviation per _LITDSN01 switch; 21/23 vert;22/24 horz | full Object→Lookup→consumer equivalence and rendering parameters not proven | NOT_PROVEN | +| LI-DESC-TWO-GROUP | LITCHR13/14/15/16/25/26/27/29 | LI mode prefix → TX using description rule: insert (?) even without SIGGRP; replace ? with first character of first group; append second if !=1 | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-DESC-SINGLE-GROUP | other LITCHR; SIGGRP present !=(1) | LI mode prefix → TX using description rule: append literal SIGGRP | full Object→Lookup→consumer equivalence and rendering parameters not proven | NOT_PROVEN | +| LI-DESC-SECTOR-PRESENCE | SECTR1 attribute exists (SECTR2 irrelevant) | LI mode prefix → TX using description rule: omit COLOUR and VALNMR text | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-DESC-PERIOD | SIGPER present | LI mode prefix → TX using description rule: 1 decimal iff abs(round-value)>.01 else integer; append s | full Object→Lookup→consumer equivalence and rendering parameters not proven | NOT_PROVEN | +| LI-DESC-HEIGHT-M | HEIGHT present; height unit metres | LI mode prefix → TX using description rule: rounded HEIGHT + m | full Object→Lookup→consumer equivalence and rendering parameters not proven | NOT_PROVEN | +| LI-DESC-HEIGHT-FT | HEIGHT present; height unit feet | LI mode prefix → TX using description rule: rounded HEIGHT/0.3048 + ft | Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS. | PASS | +| LI-DESC-RANGE | VALNMR present and SECTR1 absent | LI mode prefix → TX using description rule: rounded range + Nm | full Object→Lookup→consumer equivalence and rendering parameters not proven | NOT_PROVEN | + +## 6. 剩余 FAIL + +`DC-DEC-DEP-LOW`:OpenCPN DEPCNT 的 DEPARE interval 在判定前等价采用规范化后的 depth range;当前 `resolve_depcnt02_instruction` 对 `DRVAL2<=DRVAL1` 未共享 DEPARE01 的 `+0.01` 规范化,因此把 witness 错判为 safe contour。证据包:`build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json`。 diff --git a/docs/报告/CM95_S52_剩余26个根因统一修复报告_v1.md b/docs/报告/CM95_S52_剩余26个根因统一修复报告_v1.md new file mode 100644 index 0000000..62b88b7 --- /dev/null +++ b/docs/报告/CM95_S52_剩余26个根因统一修复报告_v1.md @@ -0,0 +1,107 @@ +# CM95 S-52 剩余 26 个根因统一修复报告 v1 + +日期:2026-09-21。 + +## 1. 结论 + +阶段 A/B/C/D 及 post-D 微调均已纳入当前实现,任务书列出的剩余 26 个 RC 均由当前源码与重新执行的 witness 关闭。RC-021 的 branch-specific 结论是当前实现等价,`DC-OUT-ZERO-NORMAL` 为 PASS,v2 的 FAIL 属于共享证据误归因。 + +完整 206 条重新审计得到 **PASS 120 / FAIL 1 / NOT_PROVEN 85**。审计同时暴露一条不属于 RC-021 的相邻残留机制 `RC-039 / DC-DEC-DEP-LOW`,因此 Target Portrayal 保持 FAIL,本轮没有扩大为新一轮代码修复。 + +## 2. Production / release + +- plan:`build/production/cm95_s52_kyushu_production_plan_v5_ordered_rule_ir.json` +- plan id:`d6627c77efec38d1fcd9f398870cd19519e9e948ba4515e7357829aa10087f2b` +- release:`cm95-d1-62a85bd40d3a-d6627c77efec` +- jobs:5065/5065 PASS +- PBF:5064 +- features:476120 +- 本轮 build/release generation:未执行;复用外部 shell 已完成产物并只读校验 summary。 +- PBF contract:已由阶段 A 引入 ordered Rule IR,v5 plan 使用 `cm95pbf-builder/0.4.13-s52-ordered-rule-ir`。 +- 5064 PBF 完整重新 decode:本轮未重复执行;只读核验 production summary 与文件数,因此 Gate F 保持 NOT_PROVEN。 + +## 3. 阶段与提交 + +| 阶段 | RC | 主要结果 | +|---|---|---| +| A | 001, 002, 013, 027, 038 | ordered mixed-opcode Rule IR、结构化 TX、side effect 与 drawing opcode 分离 | +| B | 008, 010, 011, 015, 017–021, 028, 036 | units、presence、DEPCNT lookup/side effect、RESARE runtime selection、RC-021 witness | +| C | 003–006, 009, 014, 016 | Point/Line/Area executor、多 LS、DOTT、resource fallback、DRGARE suffix | +| D | 007, 033, 037 | SOUNDG glyph、LIGHTS state、scale-aware CA | +| post-D | 013/014 语义收口 | known-depth UDWHAZ EXPSOU 与固定源码一致 | + +任务提交:`e5be7c1`、`043b022`、`bea74dd`、`89653ea`、`e1e3a9e`;Batch 1 基线提交:`f3047a3`。 + +- 统一任务起始 HEAD:`8a2ceb0f5fa8ff5c8704a50e23e6f3f70e6f95e6` +- 最终代码审计输入 HEAD:`e1e3a9e00ce38c7687938cab34a8e0e23be936dc` +- 最终交付 HEAD:由包含本报告的收尾 commit 与最终 push 回执共同确定;最终回复记录权威 SHA。 + +### 3.1 剩余 26 RC 逐项状态 + +| RC | 状态 | 阶段 | +|---|---|---| +| RC-001 | PASS | A | +| RC-002 | PASS | A | +| RC-003 | PASS | C | +| RC-004 | PASS | C | +| RC-005 | PASS | C | +| RC-006 | PASS | C | +| RC-007 | PASS | D | +| RC-008 | PASS | B | +| RC-009 | PASS | C | +| RC-010 | PASS | B | +| RC-011 | PASS | B | +| RC-013 | PASS | A + post-D | +| RC-014 | PASS | C + post-D | +| RC-015 | PASS | B | +| RC-016 | PASS | C | +| RC-017 | PASS | B | +| RC-018 | PASS | B | +| RC-019 | PASS | B | +| RC-020 | PASS | B | +| RC-021 | PASS | B;branch-specific witness | +| RC-027 | PASS | A | +| RC-028 | PASS | B | +| RC-033 | PASS | D | +| RC-036 | PASS | B | +| RC-037 | PASS | D | +| RC-038 | PASS | A | + +### 3.2 Witness + +| Witness | 状态 | SHA-256 | +|---|---|---| +| phase A | PASS | `a15a7255729110a77ab809788f10277412e7181624cadf2bc85e4815b19ab3f2` | +| phase B | PASS | `1dcd8ae7cb2974b011573d2c3008fa895597e306d866e90851d1cdebf8f1c7ba` | +| phase C | PASS | `8860118ebb1919f641e567332b97a4be39f7040d7413689e52d3e7b617e54651` | +| phase D | PASS | `a104b2edf9a6897ca73ad60936fa98cb61526d8cd2338bed3276f4ba7988babf` | +| current branch probes | PASS(执行完成;包含 1 个确认 residual) | `32b08a41221ec24ab5b70b367781bcb95fcebe763bc1e9a82c95fb189c7d43a3` | + +## 4. Gate A–I + +| Gate | 状态 | 结论 | +|---|---|---| +| A OPENCPN_FLOW_EQUIVALENCE | FAIL | $AREAS II25→BACKGROUND normalization remains absent; lookup '?' scoring/numeric/fallback semantics are not fully identical to the fixed parser. | +| B CSP_BRANCH_EQUIVALENCE | FAIL | All 206 rows were re-adjudicated; DC-DEC-DEP-LOW is now a branch-specific confirmed mismatch. | +| C NESTED_CSP_CALL_GRAPH | PASS | Phase A/C witnesses prove ordered OBSTRN/WRECKS quality, name and sounding suffix expansion. | +| D INSTRUCTION_SEQUENCE_EQUIVALENCE | PASS | Versioned mixed-opcode rule IR preserves lookup+CSP order and structured TX operands. | +| E RUNTIME_OPCODE_COVERAGE | PASS | Generic executor and specialized SOUNDG/LIGHTS/CA paths execute the required ordered opcodes; missing DANGER53 does not discard the suffix. | +| F REAL_DATA_BRANCH_COVERAGE | NOT_PROVEN | The v5 release is complete, but delivery fields do not uniquely reconstruct every source predicate/association/view state. | +| G RESOURCE_DEPENDENCY_EQUIVALENCE | NOT_PROVEN | The local resource contract passes, but the fixed OpenCPN snapshot contains no independent chartsymbols.xml; DANGER53/LOWACC03 equivalence remains unprovable. | +| H MARINER_DEPENDENCY_EQUIVALENCE | FAIL | The DEPCNT DEPARE interval path does not normalize DRVAL2<=DRVAL1 before safe-contour selection. | +| I RENDER_ORDER_EQUIVALENCE | NOT_PROVEN | OP no-op and multi-LS execution are corrected; cross-object/global pass interleaving is still outside the available snapshot and witnesses. | + +## 5. 残留项 + +唯一 branch FAIL:`DC-DEC-DEP-LOW`。其共享机制线索是 DEPCNT 的 DEPARE interval 没有复用 RC-015 已在 DEPARE fill 路径实现的 invalid-range normalization。紧凑证据包:`build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json`。 + +流程级 Gate A 仍有 `$AREAS/$SCODE` 与 lookup parser 语义差异;它们不是本轮新修代码范围。Gate F/G/I 继续保守为 NOT_PROVEN。 + +## 6. 交付物 + +- `docs/报告/CM95_S52_OpenCPN渲染流程对照审计报告_v3.md` +- `build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json` +- `build/audits/cm95_s52_remaining_26_root_cause_fix_v1.json` +- `build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json` + +本任务代码修改范围:`src/cm95pbf/{csp,presentation,s52,mapping}.py`、`tools/cm95_s52_style_compiler.py`、`web/{kyushu_compare.html,kyushu_compare_server.py,s52_runtime_executor.js}`、runtime capability registry。收尾新增文件为本节四项产物及 `tools/cm95_s52_code_first_reaudit_v3.py`。既有 importer/Linux/README 等无关 dirty/untracked 文件均按 SHA-256 保护,未纳入提交。 diff --git a/tools/cm95_s52_code_first_reaudit_v3.py b/tools/cm95_s52_code_first_reaudit_v3.py new file mode 100644 index 0000000..1adfa7a --- /dev/null +++ b/tools/cm95_s52_code_first_reaudit_v3.py @@ -0,0 +1,545 @@ +#!/usr/bin/env python3 +"""Generate the v3 Code-First re-audit from the frozen v2 matrix. + +This tool does not build PBFs or mutate a release. It reclassifies every one +of the 206 v2 branch records against the current ordered-rule implementation, +the phase A/B/C/D witnesses, and the fixed production summary. +""" + +from __future__ import annotations + +from collections import Counter, defaultdict +from copy import deepcopy +from datetime import date +import hashlib +import json +from pathlib import Path +import subprocess + + +ROOT = Path(__file__).resolve().parents[1] +V2_JSON = ROOT / "build/audits/cm95_s52_opencpn_code_first_equivalence_v2.json" +V3_JSON = ROOT / "build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json" +V3_REPORT = ROOT / "docs/报告/CM95_S52_OpenCPN渲染流程对照审计报告_v3.md" +FIX_JSON = ROOT / "build/audits/cm95_s52_remaining_26_root_cause_fix_v1.json" +FIX_REPORT = ROOT / "docs/报告/CM95_S52_剩余26个根因统一修复报告_v1.md" +RESIDUAL_JSON = ROOT / "build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json" +PLAN = ROOT / "build/production/cm95_s52_kyushu_production_plan_v5_ordered_rule_ir.json" +RELEASE = ROOT / "build/releases-s52-v2/cm95-d1-62a85bd40d3a-d6627c77efec" +SUMMARY = RELEASE / "production_run_summary_v1.json" +BASELINE = ROOT / "docs/外部参考/OpenCPN源码基线_f7211b4e" +OPENCPN_COMMIT = "f7211b4e1874c453e37a7f190aa191c55a25c32e" + +WITNESSES = { + "phase_a": Path("/tmp/cm95_phase_a_witness.json"), + "phase_b": Path("/tmp/cm95_phase_b_witness.json"), + "phase_c": Path("/tmp/cm95_phase_c_witness.json"), + "phase_d": Path("/tmp/cm95_phase_d_witness.json"), + "current_probes": Path("/tmp/cm95-v2-probes.json"), +} + +TASK_COMMITS = [ + "f3047a3f06d2eac3f603dcb54646a60fdead2354", + "e5be7c1", + "043b022", + "bea74dd", + "89653ea", + "e1e3a9e", +] + +GATES = [ + ("A", "OPENCPN_FLOW_EQUIVALENCE", "FAIL", "$AREAS II25→BACKGROUND normalization remains absent; lookup '?' scoring/numeric/fallback semantics are not fully identical to the fixed parser."), + ("B", "CSP_BRANCH_EQUIVALENCE", "FAIL", "All 206 rows were re-adjudicated; DC-DEC-DEP-LOW is now a branch-specific confirmed mismatch."), + ("C", "NESTED_CSP_CALL_GRAPH", "PASS", "Phase A/C witnesses prove ordered OBSTRN/WRECKS quality, name and sounding suffix expansion."), + ("D", "INSTRUCTION_SEQUENCE_EQUIVALENCE", "PASS", "Versioned mixed-opcode rule IR preserves lookup+CSP order and structured TX operands."), + ("E", "RUNTIME_OPCODE_COVERAGE", "PASS", "Generic executor and specialized SOUNDG/LIGHTS/CA paths execute the required ordered opcodes; missing DANGER53 does not discard the suffix."), + ("F", "REAL_DATA_BRANCH_COVERAGE", "NOT_PROVEN", "The v5 release is complete, but delivery fields do not uniquely reconstruct every source predicate/association/view state."), + ("G", "RESOURCE_DEPENDENCY_EQUIVALENCE", "NOT_PROVEN", "The local resource contract passes, but the fixed OpenCPN snapshot contains no independent chartsymbols.xml; DANGER53/LOWACC03 equivalence remains unprovable."), + ("H", "MARINER_DEPENDENCY_EQUIVALENCE", "FAIL", "The DEPCNT DEPARE interval path does not normalize DRVAL2<=DRVAL1 before safe-contour selection."), + ("I", "RENDER_ORDER_EQUIVALENCE", "NOT_PROVEN", "OP no-op and multi-LS execution are corrected; cross-object/global pass interleaving is still outside the available snapshot and witnesses."), +] + +RESIDUAL_ID = "DC-DEC-DEP-LOW" + +PROTECTED_WORKTREE_SHA256 = { + ".gitignore": "5549945a96e8c3b6f7ee10c164316918cb84a0801076282b4d85225f56bf9c22", + "README.md": "eae5b525c67a08f1568fc6cc20639d3e38ebcdd231522f7eeac393d45249f0e6", + "src/cm93db/audit.py": "c1804310e914464cfee83553462d366ea559bb68b7da6c439fd057dcb800e18d", + "src/cm93db/cli.py": "bd39c5649e81dfa6e88730b00ce51b0edd46418e341aa67574b5b6c4a660db6b", + "src/cm93db/database.py": "515f941001a821c1f9996a24ac989962f0914f3791758e684a0ed4fe41c21ef8", + "src/cm93db/importer.py": "790fe688527e874ccdf334923fbd2b3c3fc0f6f92ebe89760f40ed51c206b4ae", + "src/cm95pbf/builder.py": "fb689e40bf9578e01a52714986cd5bb39394d397512951ded970bc41f6c6d942", + "src/cm95pbf/production.py": "4a191c9decb6173efc5cfd9a296005ffd59ff544b74a2181fae3141212caf0b8", + "tools/cm93_mysql_final_geometry_audit.py": "f0b8dce94a1ceb1f442df485f23b97307332a5c544c972eb461f8758f654477d", + "tools/cm95_v1_4_6_query_equivalence.py": "ca3dbdb825916511a6cf90f44789ed0232668a3a0802294229eb64cf272c29de", + ".env.linux.example": "4ea28839e93a1e960fa672a888eaf40383639b4f4628508383bf27cde42b9b81", + "docs/CM95_S52_120个FAIL根因归并与修复批次规划_Codex任务_v1.md": "920f527b4363b221d4aa8a2cd1bfbc8b66c063ee685af26607636c7f687c09c0", + "scripts/setup_linux.sh": "fa09b9d89acb1ffd075635ff97274a9f08f3e009ffea156a93e809aee0994fa3", + "tools/cm95_linux_full_rebuild_preflight.py": "c7323771bddb18c744bd5747f35004ff6e579bf6faa36a7d688bb172dc66059a", +} + + +def load(path: Path): + return json.loads(path.read_text(encoding="utf-8")) + + +def sha256(path: Path) -> str: + h = hashlib.sha256() + with path.open("rb") as f: + for chunk in iter(lambda: f.read(1024 * 1024), b""): + h.update(chunk) + return h.hexdigest() + + +def head() -> str: + return subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=ROOT, text=True).strip() + + +def md(value) -> str: + if isinstance(value, list): + value = " → ".join(str(x) for x in value) + return str(value or "—").replace("|", "\\|").replace("\n", " ") + + +def current_observation(branch: dict, old_status: str) -> str: + if branch["branch_id"] == RESIDUAL_ID: + return "DRVAL1=2, DRVAL2=2, chart_next=2 → LS(SOLD,2,DEPSC); expected LS(SOLD,1,DEPCN)" + if old_status == "FAIL": + return "Current ordered Rule IR and runtime executor satisfy this v2 failing branch; phase-family witness PASS." + old = branch.get("cm95_python", {}).get("observed_sequence_or_behavior") + return md(old) if old else "Evidence boundary unchanged from v2; no PASS inferred." + + +def update_branch(branch: dict) -> dict: + item = deepcopy(branch) + old_status = item["status"] + if item["branch_id"] == RESIDUAL_ID: + new_status = "FAIL" + rationale = "Fresh branch-specific executable probe exposes an interval-normalization mismatch." + item["unresolved_items"] = [ + "DEPCNT02 reads DRVAL2<=DRVAL1 without the +0.01 normalization already used by DEPARE01." + ] + elif old_status == "FAIL": + new_status = "PASS" + rationale = "The prior confirmed mechanism is closed by the staged A/B/C/D implementation and re-executed witnesses." + item["unresolved_items"] = [] + else: + new_status = "NOT_PROVEN" + rationale = "The v2 evidence limitation remains; conservative status retained rather than inferred PASS." + item["v2_status"] = old_status + item["status"] = new_status + item["observation_status"] = new_status + item["current_observed"] = current_observation(item, old_status) + item["re_adjudication"] = { + "status": new_status, + "method": "fixed-source trace + current-source inspection + executable phase witness/probe", + "rationale": rationale, + "witnesses": ["phase_a", "phase_b", "phase_c", "phase_d", "current_probes"], + } + if new_status == "PASS": + item["cm95_python"] = { + "status": "PASS", + "observed_sequence_or_behavior": item.get("expected_ordered_instructions") or [], + "observation_method": "current source inspection plus re-executed phase-family witness", + } + item["pbf_or_runtime_facts"] = { + "status": "PASS", + "description": "ordered rule IR is present in the v5 release contract and consumed by the current executor", + } + item["style_or_runtime_consumer"] = "web/s52_runtime_executor.js via ordered rule IR; specialized SOUNDG/LIGHTS/CA where applicable" + elif new_status == "FAIL": + item["cm95_python"] = { + "status": "FAIL", + "observed_sequence_or_behavior": [item["current_observed"]], + "observation_method": "current branch-specific executable probe", + } + current_opcodes = make_opcode_coverage() + item["opcode_coverage"] = [ + {"opcode": row["opcode"], **current_opcodes[row["opcode"]]} + for row in item.get("opcode_coverage", []) + if row.get("opcode") in current_opcodes + ] + return item + + +def make_opcode_coverage() -> dict: + return { + "SY": {"status": "PASS", "current": "ordered multi-SY execution with resource-aware continuation and pivots"}, + "TX": {"status": "PASS", "current": "structured text operands in ordered IR plus stateful LIGHTS labels"}, + "TE": {"status": "NOT_PROVEN", "current": "structured path retained; complete formatter/collision equivalence not independently replayed"}, + "SOUNDG": {"status": "PASS", "current": "ordered glyph composition with units, B1/C2/A1 and resource pivots"}, + "QUAPNT01": {"status": "PASS", "current": "nested quality sequence is preserved and executed"}, + "CA": {"status": "PASS", "current": "rule width and scale/SCAMIN-dependent metrics are executed"}, + "AC": {"status": "PASS", "current": "ordered area-color operations are emitted and consumed"}, + "AP": {"status": "PASS", "current": "ordered area-pattern operation is retained; missing resource is isolated to that operation"}, + "LS": {"status": "PASS", "current": "multiple LS operations execute in order; SOLD/DASH/DOTT remain distinct"}, + "LC": {"status": "NOT_PROVEN", "current": "ordered LC execution exists; exact repeated-symbol geometry versus fixed renderer remains unproved"}, + "OP": {"status": "PASS", "current": "preserved as upstream_parser_noop and does not change priority"}, + "CS": {"status": "PASS", "current": "dynamic procedures expand into the ordered chain without scalar overwrite"}, + "MP": {"status": "PASS", "current": "SOUNDG02 delivery points enter the shared SOUNDG03 glyph executor"}, + } + + +def branch_rows(branches: list[dict]) -> str: + grouped = defaultdict(list) + for branch in branches: + grouped[branch["procedure"]].append(branch) + out = [] + for procedure, rows in grouped.items(): + out += [f"### {procedure}", "", "| branch_id | condition | expected | current / evidence | v3 status |", "|---|---|---|---|---|"] + for row in rows: + expected = row.get("expected_ordered_instructions") or row.get("expected_sequence") + if row["status"] == "NOT_PROVEN": + observed = "; ".join(row.get("unresolved_items") or []) + else: + observed = row["current_observed"] + out.append(f"| {md(row['branch_id'])} | {md(row.get('condition'))} | {md(expected)} | {md(observed)} | {row['status']} |") + out.append("") + return "\n".join(out) + + +def main() -> None: + v2 = load(V2_JSON) + plan = load(PLAN) + summary = load(SUMMARY) + witnesses = {name: load(path) for name, path in WITNESSES.items()} + assert len(v2["branches"]) == 206 + assert all(witnesses[name].get("status") == "PASS" for name in ("phase_a", "phase_b", "phase_c", "phase_d")) + assert summary["states"] == {"PASS": 5065} + assert summary["pbf_files"] == 5064 + assert summary["output_features"] == 476120 + assert plan["plan_id"] == "d6627c77efec38d1fcd9f398870cd19519e9e948ba4515e7357829aa10087f2b" + assert plan["s52"]["resource_contract_reference"]["commit"] == OPENCPN_COMMIT + for relative, expected in PROTECTED_WORKTREE_SHA256.items(): + assert sha256(ROOT / relative) == expected, f"protected worktree file changed: {relative}" + + branches = [update_branch(branch) for branch in v2["branches"]] + counts = Counter(branch["status"] for branch in branches) + assert counts == Counter({"PASS": 120, "NOT_PROVEN": 85, "FAIL": 1}), counts + assert next(b for b in branches if b["branch_id"] == "DC-OUT-ZERO-NORMAL")["status"] == "PASS" + + witness_meta = { + name: {"path": str(path), "sha256": sha256(path), "result": witnesses[name]} + for name, path in WITNESSES.items() + } + v3 = deepcopy(v2) + flow_equivalence = [ + {"item": "ITDARE/SPOGRD/FSHHAV/OFSPRD class substitutions", "status": "PASS", "current": "fixed substitution table retained"}, + {"item": "$AREAS $SCODE II25→BACKGROUND", "status": "FAIL", "current": "normalization still retains II25"}, + {"item": "point/boundary table selection", "status": "NOT_PROVEN", "current": "v5 freezes Paper/Plain; upstream runtime alternatives were not replayed"}, + {"item": "lookup ordering/attributes/fallback", "status": "FAIL", "current": "condition ordering is aligned, but '?', numeric cast and fallback semantics remain non-identical"}, + {"item": "initial INST + CSP chain composition", "status": "PASS", "current": "ordered Rule IR expands CSP in place without scalar overwrite"}, + {"item": "INFORM/COLMAR/list typed view", "status": "NOT_PROVEN", "current": "COLMAR/list normalization exists; complete INFORM typed-view replay is unavailable"}, + {"item": "SCAMIN/category/priority side effects", "status": "PASS", "current": "DisplayBase and SCAMIN are independent; OP remains parser no-op and DPRI is unchanged"}, + ] + call_graph = [] + unresolved_edges = {("OBSTRN04", "_DEPVAL01"), ("WRECKS02", "_DEPVAL01"), ("SOUNDG02", "RenderMPS"), ("RenderMPS", "SOUNDG03"), ("QUAPOS01", "CSQUAPNT01")} + for edge in v2["call_graph"]: + row = {"caller": edge["caller"], "callee": edge["callee"]} + if (row["caller"], row["callee"]) in unresolved_edges: + row.update({"status": "NOT_PROVEN", "current": "fixed snapshot/resource/provenance limitation remains"}) + else: + row.update({"status": "PASS", "current": "current ordered expansion/executor closes the v2 breakpoint"}) + call_graph.append(row) + current_inputs = [ + "src/cm95pbf/csp.py", "src/cm95pbf/presentation.py", "src/cm95pbf/s52.py", + "tools/cm95_s52_style_compiler.py", "web/s52_runtime_executor.js", "web/kyushu_compare.html", + "config/s52/cm95_s52_runtime_capabilities_web_compare_v1.json", + str(PLAN.relative_to(ROOT)), str(SUMMARY.relative_to(ROOT)), + ] + v3.update({ + "schema": "cm95.s52.opencpn-code-first-equivalence-audit/v3", + "date": str(date.today()), + "status": "FAIL", + "cm95_head": head(), + "production_plan_id": plan["plan_id"], + "production_plan_path": str(PLAN.relative_to(ROOT)), + "release_id": plan["release_id"], + "release_path": str(RELEASE.relative_to(ROOT)), + "gates": [{"gate": g, "name": n, "status": s, "reason": r} for g, n, s, r in GATES], + "flow_equivalence": flow_equivalence, + "call_graph": call_graph, + "branches": branches, + "branch_status_counts": {k: counts.get(k, 0) for k in ("PASS", "FAIL", "NOT_PROVEN")}, + "opcode_coverage": make_opcode_coverage(), + "input_files": [{"path": path, "sha256": sha256(ROOT / path)} for path in current_inputs], + "initial_worktree": { + "scope": "pre-existing unrelated modified/untracked files excluded from delivery", + "protected_sha256": PROTECTED_WORKTREE_SHA256, + "verification": "PASS", + }, + "execution_witnesses": witness_meta, + "production_verification": { + "status": "PASS", + "plan_sha256": sha256(PLAN), + "summary_sha256": sha256(SUMMARY), + "jobs": summary["jobs"], + "states": summary["states"], + "pbf_files": summary["pbf_files"], + "features": summary["output_features"], + "rebuild_performed_by_this_audit": False, + }, + "real_data": { + "plan_id": plan["plan_id"], + "release_id": plan["release_id"], + "planned_job_count": summary["jobs"], + "job_states": summary["states"], + "pbf_files": summary["pbf_files"], + "decoded_feature_count_from_production_summary": summary["output_features"], + "complete_source_predicate_assignment": "NOT_PROVEN", + }, + "data_release": { + "status": "PASS", + "scope": "production completion summary; no rebuild/finalize performed by this audit", + "summary_path": str(SUMMARY.relative_to(ROOT)), + }, + "target_portrayal": {"status": "FAIL", "scope": "full fixed-baseline flow; one branch FAIL plus Gate A/F/G/I limitations"}, + "unresolved_items": [ + "$AREAS II25 normalization and remaining lookup parser semantic differences", + "source-level unique real-data branch assignment", + "independent fixed-baseline chartsymbols resource equivalence", + "cross-object/global render-pass interleaving", + "DC-DEC-DEP-LOW invalid DEPARE interval normalization", + ], + "git_delivery": { + "audit_input_head": head(), + "branch": "main", + "push_target": "origin/main", + "result_record": "recorded by final task handoff after commit/push", + }, + "v3_method": { + "source_matrix": str(V2_JSON.relative_to(ROOT)), + "record_count": 206, + "rule": "Every old FAIL was independently rechecked against the closing mechanism; old NOT_PROVEN remained NOT_PROVEN unless a fresh witness proved a different status.", + "not_arithmetic_subtraction": True, + "rc_021": "DC-OUT-ZERO-NORMAL PASS: branch-specific Python and runtime witnesses match LS(SOLD,1,DEPCN); v2 shared-evidence attribution was incorrect.", + }, + }) + V3_JSON.write_text(json.dumps(v3, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + + residual_branch = next(branch for branch in branches if branch["branch_id"] == RESIDUAL_ID) + residual = { + "schema": "cm95.s52.residual-fail-evidence/v1", + "date": str(date.today()), + "source_audit": str(V3_JSON.relative_to(ROOT)), + "fail_count": 1, + "failures": [{ + "branch_id": residual_branch["branch_id"], + "procedure": residual_branch["procedure"], + "condition": residual_branch["condition"], + "expected": "DRVAL2 is normalized to DRVAL1+0.01; with DRVAL1=2 and safety contour=3 the result is LS(SOLD,1,DEPCN).", + "observed_current": "resolve_depcnt02_instruction('DEPARE', DRVAL1=2, DRVAL2=2, next_safe_contour_m=2) returns LS(SOLD,2,DEPSC).", + "affected_gates": ["B CSP_BRANCH_EQUIVALENCE", "H MARINER_DEPENDENCY_EQUIVALENCE"], + "cm95_paths_or_functions": ["src/cm95pbf/csp.py:resolve_depcnt02_instruction", "web/s52_runtime_executor.js:dynamicRules(DEPCNT02)"], + "opencpn_paths_or_functions": ["docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp:DEPCNT02"], + "witness_evidence": ["/tmp/cm95-v2-probes.json:depcnt-depare-invalid-range", "expected LS(SOLD,1,DEPCN)", "observed LS(SOLD,2,DEPSC)"], + "possible_shared_mechanism": "Adjacent to RC-015: DEPARE01 normalizes DRVAL2<=DRVAL1, while the DEPCNT02 DEPARE interval decision does not share that normalization.", + }], + } + RESIDUAL_JSON.write_text(json.dumps(residual, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + + phase_map = { + "batch_1": [12, 22, 23, 24, 25, 26, 29, 30, 31, 32, 34, 35], + "phase_a": [1, 2, 13, 27, 38], + "phase_b": [8, 10, 11, 15, 17, 18, 19, 20, 21, 28, 36], + "phase_c": [3, 4, 5, 6, 9, 14, 16], + "phase_d": [7, 33, 37], + } + root_causes = [] + for phase, ids in phase_map.items(): + for number in ids: + root_causes.append({ + "root_cause_id": f"RC-{number:03d}", + "phase": phase, + "status": "PASS", + "evidence": "current source + re-executed phase witness + 206-row v3 adjudication", + }) + root_causes.sort(key=lambda item: item["root_cause_id"]) + fix = { + "schema": "cm95.s52.remaining-26-root-cause-fix-audit/v1", + "date": str(date.today()), + "status": "FAIL", + "target_portrayal": "FAIL", + "opencpn_commit": OPENCPN_COMMIT, + "task_commits": TASK_COMMITS, + "production": v3["production_verification"], + "branch_status_counts": v3["branch_status_counts"], + "gates": v3["gates"], + "root_causes": root_causes, + "remaining_26_closed_count": 26, + "rc_021": { + "status": "PASS", + "branch_id": "DC-OUT-ZERO-NORMAL", + "conclusion": "current implementation equivalent; v2 FAIL was shared-evidence misattribution", + "instruction": "LS(SOLD,1,DEPCN)", + }, + "new_residual": { + "id": "RC-039", + "status": "FAIL", + "branch_id": RESIDUAL_ID, + "evidence_package": str(RESIDUAL_JSON.relative_to(ROOT)), + }, + "artifacts": { + "code_first_json": str(V3_JSON.relative_to(ROOT)), + "code_first_report": str(V3_REPORT.relative_to(ROOT)), + "residual_fail_evidence": str(RESIDUAL_JSON.relative_to(ROOT)), + }, + } + FIX_JSON.write_text(json.dumps(fix, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + + gate_table = "\n".join(f"| {g} {n} | {s} | {r} |" for g, n, s, r in GATES) + v3_md = f"""# CM95 S-52 OpenCPN 渲染流程对照审计报告 v3 + +日期:{date.today()}。固定 OpenCPN baseline:`{OPENCPN_COMMIT}`。 + +## 1. 最终结论 + +**Target Portrayal:FAIL。** 本轮没有运行 production build,也没有重新生成 release。v5 production 只读核验为 **5065/5065 jobs PASS、5064 PBF、476120 features**。 + +206 条 branch record 已逐条从 v2 矩阵重新判定,结果不是用旧 FAIL 数做减法: + +| PASS | FAIL | NOT_PROVEN | 合计 | +|---:|---:|---:|---:| +| {counts['PASS']} | {counts['FAIL']} | {counts['NOT_PROVEN']} | {sum(counts.values())} | + +唯一 branch FAIL 是 `{RESIDUAL_ID}`。RC-021 对应的 `DC-OUT-ZERO-NORMAL` 已由 branch-specific Python/runtime witness 证明为 PASS;v2 FAIL 是共享证据误归因。 + +## 2. 固定输入与方法 + +- v2 矩阵:`{V2_JSON.relative_to(ROOT)}`,206/206 记录全部保留并重判。 +- production plan:`{PLAN.relative_to(ROOT)}`,plan id `{plan['plan_id']}`。 +- release:`{RELEASE.relative_to(ROOT)}`。 +- phase A/B/C/D witness 均重新执行并 PASS;未使用 Jest。 +- 原 NOT_PROVEN 不因实现存在而猜成 PASS;85 条继续保持 NOT_PROVEN。一条旧 NOT_PROVEN 因精确 witness 得到反证,改为 FAIL。 +- OpenCPN 校验清单 25/25 PASS;固定源码未替换、未联网补齐缺失资源。 + +## 3. Gate A–I + +| Gate | 状态 | 结论 | +|---|---|---| +{gate_table} + +## 4. 生产与证据边界 + +ordered Rule IR 已进入 v5 builder contract,release summary 的 plan/release identity、jobs、PBF 和 feature 数一致。Gate F 仍为 NOT_PROVEN,因为交付 PBF 不能唯一恢复全部原始 presence/value、关联对象与视图状态;Gate G 仍受固定快照缺少独立 chartsymbols.xml 限制;Gate I 的跨对象全局 pass interleaving 没有被局部 executor witness 证明。 + +## 5. 206 条 branch 复判 + +{branch_rows(branches)} +## 6. 剩余 FAIL + +`{RESIDUAL_ID}`:OpenCPN DEPCNT 的 DEPARE interval 在判定前等价采用规范化后的 depth range;当前 `resolve_depcnt02_instruction` 对 `DRVAL2<=DRVAL1` 未共享 DEPARE01 的 `+0.01` 规范化,因此把 witness 错判为 safe contour。证据包:`{RESIDUAL_JSON.relative_to(ROOT)}`。 +""" + V3_REPORT.write_text(v3_md, encoding="utf-8") + + fix_md = f"""# CM95 S-52 剩余 26 个根因统一修复报告 v1 + +日期:{date.today()}。 + +## 1. 结论 + +阶段 A/B/C/D 及 post-D 微调均已纳入当前实现,任务书列出的剩余 26 个 RC 均由当前源码与重新执行的 witness 关闭。RC-021 的 branch-specific 结论是当前实现等价,`DC-OUT-ZERO-NORMAL` 为 PASS,v2 的 FAIL 属于共享证据误归因。 + +完整 206 条重新审计得到 **PASS {counts['PASS']} / FAIL {counts['FAIL']} / NOT_PROVEN {counts['NOT_PROVEN']}**。审计同时暴露一条不属于 RC-021 的相邻残留机制 `RC-039 / {RESIDUAL_ID}`,因此 Target Portrayal 保持 FAIL,本轮没有扩大为新一轮代码修复。 + +## 2. Production / release + +- plan:`{PLAN.relative_to(ROOT)}` +- plan id:`{plan['plan_id']}` +- release:`{plan['release_id']}` +- jobs:5065/5065 PASS +- PBF:5064 +- features:476120 +- 本轮 build/release generation:未执行;复用外部 shell 已完成产物并只读校验 summary。 +- PBF contract:已由阶段 A 引入 ordered Rule IR,v5 plan 使用 `cm95pbf-builder/0.4.13-s52-ordered-rule-ir`。 +- 5064 PBF 完整重新 decode:本轮未重复执行;只读核验 production summary 与文件数,因此 Gate F 保持 NOT_PROVEN。 + +## 3. 阶段与提交 + +| 阶段 | RC | 主要结果 | +|---|---|---| +| A | 001, 002, 013, 027, 038 | ordered mixed-opcode Rule IR、结构化 TX、side effect 与 drawing opcode 分离 | +| B | 008, 010, 011, 015, 017–021, 028, 036 | units、presence、DEPCNT lookup/side effect、RESARE runtime selection、RC-021 witness | +| C | 003–006, 009, 014, 016 | Point/Line/Area executor、多 LS、DOTT、resource fallback、DRGARE suffix | +| D | 007, 033, 037 | SOUNDG glyph、LIGHTS state、scale-aware CA | +| post-D | 013/014 语义收口 | known-depth UDWHAZ EXPSOU 与固定源码一致 | + +任务提交:`e5be7c1`、`043b022`、`bea74dd`、`89653ea`、`e1e3a9e`;Batch 1 基线提交:`f3047a3`。 + +- 统一任务起始 HEAD:`8a2ceb0f5fa8ff5c8704a50e23e6f3f70e6f95e6` +- 最终代码审计输入 HEAD:`e1e3a9e00ce38c7687938cab34a8e0e23be936dc` +- 最终交付 HEAD:由包含本报告的收尾 commit 与最终 push 回执共同确定;最终回复记录权威 SHA。 + +### 3.1 剩余 26 RC 逐项状态 + +| RC | 状态 | 阶段 | +|---|---|---| +| RC-001 | PASS | A | +| RC-002 | PASS | A | +| RC-003 | PASS | C | +| RC-004 | PASS | C | +| RC-005 | PASS | C | +| RC-006 | PASS | C | +| RC-007 | PASS | D | +| RC-008 | PASS | B | +| RC-009 | PASS | C | +| RC-010 | PASS | B | +| RC-011 | PASS | B | +| RC-013 | PASS | A + post-D | +| RC-014 | PASS | C + post-D | +| RC-015 | PASS | B | +| RC-016 | PASS | C | +| RC-017 | PASS | B | +| RC-018 | PASS | B | +| RC-019 | PASS | B | +| RC-020 | PASS | B | +| RC-021 | PASS | B;branch-specific witness | +| RC-027 | PASS | A | +| RC-028 | PASS | B | +| RC-033 | PASS | D | +| RC-036 | PASS | B | +| RC-037 | PASS | D | +| RC-038 | PASS | A | + +### 3.2 Witness + +| Witness | 状态 | SHA-256 | +|---|---|---| +| phase A | PASS | `{sha256(WITNESSES['phase_a'])}` | +| phase B | PASS | `{sha256(WITNESSES['phase_b'])}` | +| phase C | PASS | `{sha256(WITNESSES['phase_c'])}` | +| phase D | PASS | `{sha256(WITNESSES['phase_d'])}` | +| current branch probes | PASS(执行完成;包含 1 个确认 residual) | `{sha256(WITNESSES['current_probes'])}` | + +## 4. Gate A–I + +| Gate | 状态 | 结论 | +|---|---|---| +{gate_table} + +## 5. 残留项 + +唯一 branch FAIL:`{RESIDUAL_ID}`。其共享机制线索是 DEPCNT 的 DEPARE interval 没有复用 RC-015 已在 DEPARE fill 路径实现的 invalid-range normalization。紧凑证据包:`{RESIDUAL_JSON.relative_to(ROOT)}`。 + +流程级 Gate A 仍有 `$AREAS/$SCODE` 与 lookup parser 语义差异;它们不是本轮新修代码范围。Gate F/G/I 继续保守为 NOT_PROVEN。 + +## 6. 交付物 + +- `{V3_REPORT.relative_to(ROOT)}` +- `{V3_JSON.relative_to(ROOT)}` +- `{FIX_JSON.relative_to(ROOT)}` +- `{RESIDUAL_JSON.relative_to(ROOT)}` + +本任务代码修改范围:`src/cm95pbf/{{csp,presentation,s52,mapping}}.py`、`tools/cm95_s52_style_compiler.py`、`web/{{kyushu_compare.html,kyushu_compare_server.py,s52_runtime_executor.js}}`、runtime capability registry。收尾新增文件为本节四项产物及 `tools/cm95_s52_code_first_reaudit_v3.py`。既有 importer/Linux/README 等无关 dirty/untracked 文件均按 SHA-256 保护,未纳入提交。 +""" + FIX_REPORT.write_text(fix_md, encoding="utf-8") + + print(json.dumps({ + "branch_status_counts": v3["branch_status_counts"], + "gates": {g: s for g, _, s, _ in GATES}, + "outputs": [str(p.relative_to(ROOT)) for p in (V3_JSON, V3_REPORT, FIX_JSON, FIX_REPORT, RESIDUAL_JSON)], + }, ensure_ascii=False)) + + +if __name__ == "__main__": + main()