From d5bf170e9f6a6e18664ed2c73ac096fcf1b02e20 Mon Sep 17 00:00:00 2001 From: Ashin Walpola Date: Wed, 26 Aug 2026 15:57:18 +0200 Subject: [PATCH] Add the user guide and technical documentation as Word documents Two documents, wiki-style so they import cleanly: short titled sections, tables over prose where the content is comparative, and cross-references between sections rather than a narrative that has to be read start to end. MicrOBU-User-Guide.docx is for riders. Features, setup for both hardware paths, what each screen shows, what the five alerts mean in plain language, troubleshooting. No ASN.1, no BTP ports, no bit widths anywhere in it. The alert descriptions and the link states are taken from values/strings.xml so the guide and the interface use the same words. MicrOBU-Technical-Documentation.docx is for supervisors and stakeholders. Architecture, the message path end to end, the serial protocol, the codecs and how they are verified, the full requirements matrix, the bench results, and the decisions. Section 15 is fourteen decisions written as chosen / alternative / reasoning / cost accepted, because the alternative is the part a supervisor asks about and it was previously recorded only in commit messages. Nothing is re-derived. Every measurement is cited from 05-obu-bench-test-2026-08-25.md, 04-transmit-setup.md, asn1/README.md or the commit history. Where a claim has no evidence it is marked as unverified rather than asserted: - 11.6 Phase A success criteria is stated as not met, in its own subsection. The bench proves reception; it cannot prove the use case with two moving stations because nothing on the bench moves. This is the central claim of the project and it needs a real ride. - The tx_custom.c bypass is described as the least defensible component in the system and load bearing, with the reverse-engineered struct layouts and the skipped sanity checking spelled out. - The 5900 MHz transmit story is marked a mitigation for a hypothesis, not a diagnosis, and the isolation test that would settle it is named as not run. - The detection thresholds are presented as untuned engineering estimates in both documents, since presenting them as validated is the easiest and most damaging overstatement available here. Twenty image placeholders, none of them filled. Each is a shaded block carrying a caption and a "Must show" line. For the three screenshots that exist the line names the bench session and section they came from; for the four diagrams that do not exist yet it is a full drawing spec, so the two hardware paths, the message path, the frame layout and the verification loop can be drawn from the document without re-reading the source. references.bib collects the standards as BibTeX for a later publication: EN 302 637-2/3, TS 103 301, SAE J2735, TS 102 894-2, EN 302 636-4-1 and -5-1, TS 103 248, TS 103 097, IEEE 802.11 OCB, plus the C2C-CC white paper and the vendored parser provenance. Also tracks two documents the new ones cite that had never been committed: docs/01-requirements-traceability.md and 04-transmit-setup.md. Section 18.3 lists them as repository sources, which would have been a dangling reference otherwise. Not included, deliberately: the two consider it PDFs cited in section 18.2. They are third-party vendor documentation and redistributing them is a licensing decision, not a documentation one. Still missing: the German user guide. values-de/strings.xml already fixes the terminology for it. Co-Authored-By: Claude Opus 5 --- 04-transmit-setup.md | 280 ++++++++++++++++++++++ docs/01-requirements-traceability.md | 229 ++++++++++++++++++ docs/MicrOBU-Technical-Documentation.docx | Bin 0 -> 84932 bytes docs/MicrOBU-User-Guide.docx | Bin 0 -> 52173 bytes docs/references.bib | 151 ++++++++++++ 5 files changed, 660 insertions(+) create mode 100644 04-transmit-setup.md create mode 100644 docs/01-requirements-traceability.md create mode 100644 docs/MicrOBU-Technical-Documentation.docx create mode 100644 docs/MicrOBU-User-Guide.docx create mode 100644 docs/references.bib diff --git a/04-transmit-setup.md b/04-transmit-setup.md new file mode 100644 index 0000000..b2476fe --- /dev/null +++ b/04-transmit-setup.md @@ -0,0 +1,280 @@ +# Step 4 - Build, flash, and validate the HLN-SV DENM transmitter + +## Radio-config fix (2026-07-15) - read this first + +Symptom: nothing on air. Proof it was a radio-config problem, not a +frame-format problem: the 2026-07-15 sniffer capture (`recordings/ +its5_20260715_131448.pcap`) contains 13,584 ITS-G5 frames on 5.9 GHz but +**zero** from our source MAC `02:00:00:00:00:01`. A sniffer records a +station's frames even if the payload is malformed, so the frame was never +leaving the radio - the DENM/GeoNet/802.11 encoding was never the issue. + +Three stacking causes, all in `main.c`'s Wi-Fi init, now fixed: + +1. **Plain STA, no promiscuous, power-save on.** ESP-IDF only actually emits + raw frames when the MAC is in promiscuous mode or associated to an AP, and + default STA power-save sleeps the radio between beacons and drops outbound + frames. The *working sniffer* runs promiscuous - the OBU didn't. Fixed: + `esp_wifi_set_ps(WIFI_PS_NONE)` + `esp_wifi_set_promiscuous(true)` after + `esp_wifi_start()`. +2. **Never entered 5 GHz band mode.** The stuck `esp_wifi_get_channel() + primary=1` was the dual-band C5 still in 2.4 GHz band mode, so + `esp_wifi_set_channel(<5G channel>)` failed silently and the HMAC TX path + keyed the 2.4 GHz PHY on ch1 - inaudible to a 5.9 GHz sniffer. Fixed: + `esp_wifi_set_band_mode(WIFI_BAND_MODE_5G_ONLY)` before start. Channel prime + changed from 140 (5700 MHz) to **177 (5885 MHz)** - see cause 3. +3. **5900 MHz is out of the C5's spec range.** The datasheet 5 GHz range is + **5180-5885 MHz**; our target 5900 MHz (ITS-G5 G5-CCH) is 15 MHz above it. + RX tolerates 15 MHz over (that's why the sniffer works at 5900); TX may be + PA-calibration-gated at an uncalibrated frequency. Priming the driver to + channel 177 (5885, the top legal channel) keeps TX on the closest real + power table before `phy_change_channel(5900,...)` nudges the LO. + +### If it STILL shows nothing after these fixes - the 5900 MHz isolation test + +Causes 1 and 2 are high-confidence. Cause 3 is the remaining unknown, so +isolate it before touching anything else. Temporarily change **both** ends to +a channel inside the C5's spec range and see if the OBU appears: + +- In `main.c`, change the target frequency from `5900` to `5885` in *both* + `phy_change_channel()` calls (boot + per-TX), matching the channel-177 prime. +- Put your sniffer on 5885 MHz too. +- Ground GPIO4 and watch the dashboard/PCAP for source MAC + `02:00:00:00:00:01`. + +If the OBU now appears at 5885 but not at 5900: TX genuinely can't key the PA +at the out-of-spec 5900 MHz, and no amount of frame-format work will change +that - you'd need a chip whose 5 GHz range covers the ITS band, or to accept +operating one channel down. If it appears at neither, the problem is still in +the TX-enable path (recheck that the three calls above returned ESP_OK in the +boot log), not the frequency. + +Also note: **nothing transmits until GPIO4 is grounded** (active-low hazard +input). If you were bench-testing without grounding GPIO4, the TX path was +never even entered - ground it (jumper GPIO4 to GND) before concluding +anything. + +--- + +Profile: **HLN-SV** (aftermarket stationary recovery vehicle) - causeCode 94 +(stationaryVehicle), subCauseCode 0, transmits only while the hazard-light +GPIO reads active. No location/alacarte containers, no optional fields. + +Code lives in `obu-firmware/main/`: `main.c` (entry, PHY hack, GPIO, TX loop), +`denm.c/.h` (ASN.1 UPER encoding), `geonet.c/.h` (GeoNetworking + BTP-B +wrapping), `dot11p.c/.h` (802.11 OCB frame assembly), `tx_custom.c/.h` (the +actual raw-frame transmit path - see "The TX bypass" below). + +## The TX bypass (tx_custom.c) + +`esp_wifi_80211_tx()` - ESP-IDF's public raw-frame API - rejects QoS Data +frames outright (`esp_err 258` / "unsupport QoS frame type"), and there's no +supported way to override that from application code (a linker-level symbol +override attempt, `main/wifi_patches.c`, is kept around only for history - +confirmed not to work). + +`tx_custom.c` was pulled from +[opentrafficmap/its-g5-receiver-firmware_txenabled](https://codeberg.org/opentrafficmap/its-g5-receiver-firmware_txenabled) +- a TX-enabled fork of the exact receiver firmware (V2X2MAP) already used on +the RX side of this project, same authors, same chip. Instead of trying to +disable the gate, it skips the code path that contains it entirely: it calls +`ic_ebuf_alloc()` and `ieee80211_post_hmac_tx()` - undocumented internal +driver functions - directly, submitting straight to the MAC. `main.c` now +calls `esp_wifi_80211_tx_custom()` instead of `esp_wifi_80211_tx()`, with the +one proven-working parameter set (`WIFI_PHY_MODE_11A`, `WIFI_PHY_RATE_12M`, +`WIFI_BAND_5G`, `WIFI_BW20`) copied from the only call site in the upstream +repo (`mqtt.cpp`, triggered by an incoming MQTT message there - ours is +triggered by the GPIO4 hazard-light logic instead). + +**What this unlocks**: `dot11p.c` is back to real QoS Data frames (subtype 8) +since the gate that forced the non-QoS downgrade no longer applies. Frame +size is now 117 bytes (was 115 with non-QoS Data's 2-byte-shorter header) - +expect `sent (117 bytes)` in the log now, not 115. + +**What's NOT yet independently verified** - things worth checking as you go: +- Whether `ieee80211_post_hmac_tx`, `ic_ebuf_alloc`, `ic_get_default_sched`, + `g_osi_funcs_p`, and `g_wifi_global_lock` actually exist as symbols in + *your* IDF version's `libnet80211.a`/`libpp.a` for esp32c5 - we only + previously confirmed `ieee80211_raw_frame_sanity_check` exists via `nm`, + not these. If the build fails to link with `undefined reference`, this is + the first thing to check - same `nm` approach as the `phy_11p_set` section + below, just against these symbol names. +- `tx_custom.c`'s internal struct layouts (`x_eb_txdesc_t`, `x_ebuf_t`) are + reverse-engineered from the closed WiFi driver, pinned only by a `sizeof()` + assert - that catches a total-size mismatch across IDF versions but not a + field-order mismatch that happens to keep the same total size. If your IDF + version differs meaningfully from whatever the upstream repo has pinned + (check their `esp-idf` git submodule commit vs. `idf.py --version`), this + could compile and link cleanly but write to the wrong internal offsets. + Worth keeping in mind as a possible explanation if you get a crash/hang + right when TX fires rather than a clean error. +- Same "skips ALL sanity checking" risk as the old override attempt: a + malformed frame from a bug anywhere in `denm.c`/`geonet.c`/`dot11p.c` could + now behave worse (crash, silent corruption) than a clean rejection. +- `esp_wifi_set_channel(140, ...)` was added in `main.c` right before the + `phy_11p_set`/`phy_change_channel` pair, copied from upstream's + `cmd_sniffer.c` (their own comment on it: "not sure if strictly needed"). + Motivation: our own `esp_wifi_get_channel()` diagnostic was reporting a + stuck `primary=1` regardless of what the PHY hack was told, consistent + with the driver's channel bookkeeping never being touched by anything it + tracks. This is a "worth trying," not a confirmed fix - watch whether + `esp_wifi_get_channel()`'s reported value changes at all now. + +## Confidence levels - read this before debugging blind + +Updated after pulling the actual specs (EN 302 636-4-1, EN 302 636-5-1) and +the real ASN.1 modules from forge.etsi.org (EN 302 637-3, TS 102 894-2 CDD) - +this isn't guesswork anymore for the parts listed as "verified" below. + +- **GeoNetworking Basic/Common/SHB headers, BTP-B header** (`geonet.c`): + verified field-by-field against EN 302 636-4-1. This caught three real + bugs in the previous version: wrong header type (was encoded as + GeoUnicast, HT=2 - now correctly TSB/SINGLE_HOP, HT=5/HST=0), wrong + payload-length calculation (was including the 24-byte extended header, + which it shouldn't), and GN_ADDR being an arbitrary byte string instead of + its actual structure (M-flag + 5-bit station type + reserved + 48-bit + MID = the same link-layer address used in the 802.11 header). +- **BTP-B header** (`geonet.c`): verified against EN 302 636-5-1 - unchanged + from before, structure was already correct. +- **802.11 header, LLC/SNAP** (`dot11p.c`): back to real QoS Data (subtype 8, + 26-byte header with a QoS Control field), matching actual ITS-G5 hardware. + This required abandoning `esp_wifi_80211_tx()` entirely in favor of + `esp_wifi_80211_tx_custom()` (`tx_custom.c`) - see "The TX bypass" above for + the full story and the list of things about it that aren't independently + verified yet for our exact toolchain. +- **DENM ASN.1 UPER payload** (`denm.c`): verified against the real ASN.1 + modules (DENM-PDU-Descriptions.asn, ITS-Container.asn). This caught real + bugs too: `ManagementContainer`, `SituationContainer`, and the inner + `CauseCode` SEQUENCE are all declared with a trailing `...` (extensible), + each of which needs its own leading extension bit that the previous + version omitted entirely; `SituationContainer`'s optional-presence bits + were encoded in the wrong position (at the end instead of the start); and + three field widths were wrong (latitude is 31 bits not 32, the two + position-confidence fields and orientation are 12 bits not 16, altitude + value is 20 bits not 24). All fixed now, with the exact ASN.1 type and + constraint range cited in comments next to each field. +- **Known-missing, by design, not bugs**: `detectionTime`/`referenceTime`/GN + timestamp are hardcoded to 0 (no RTC/NTP wired up - will decode as + 2004-01-01), and `latitude`/`longitude` are hardcoded to 0 (no GNSS wired + up). Both are called out with `TODO` comments in the source. +- **Privacy pseudonym**: the source MAC/GN_ADDR MID is a fixed placeholder, + not rotated. Fine for bench testing; real stacks rotate this every 5-15 min. +- **Unsecured** (no IEEE 1609.2 signing) - matches "no additional + parameters"/easiest, and your sniffer already handles unsecured frames fine + (that's how it decodes RSU SPATEM/MAPEM today). +- **Still a deliberate simplification, not a bug**: single-hop broadcast + (TSB/SINGLE_HOP) instead of GeoBroadcast. Real DENM dissemination + typically uses GeoBroadcast so RSUs/OBUs can forward it across an area - + upgrading to that needs a sequence number + circular geo-area fields in + the GN extended header that this skeleton doesn't build. Fine for a + single-vehicle beacon; revisit if you need multi-hop forwarding. + +## Build + +```powershell +. $env:IDF_PATH\export.ps1 # or use the "ESP-IDF PowerShell" Start Menu shortcut instead +cd C:\Users\Ashin\Documents\micrOBU_workspace\v2x-obu-esp32c5\obu-firmware +idf.py set-target esp32c5 +idf.py build +``` + +### If the linker fails on `phy_11p_set` / `phy_change_channel` + +These are undocumented, reverse-engineered symbols pulled straight from +`libphy.a` - not a public API, so exact names/signatures can shift between +ESP-IDF versions. If you get `undefined reference`, check what's actually +exported for your IDF version: + +```powershell +riscv32-esp-elf-nm $env:IDF_PATH\components\esp_phy\lib\esp32c5\libphy.a | Select-String -Pattern "11p|change_channel" +``` + +Adjust the `extern` declarations at the top of `main.c` to match whatever you +find. + +## Flash + +```powershell +idf.py -p COM5 -b 921600 flash monitor +``` + +You should see in the log: +``` +OCB mode requested @ 5900 MHz - HLN-SV DENM beacon armed, waiting on GPIO4 +``` +Nothing transmits yet - GPIO4 is pulled up (inactive) until you ground it. + +## Wire up the hazard-light input + +For bench testing: a jumper wire or push button between GPIO4 and GND is +enough (active-low - grounding it = "hazard lights on" = beacon active). +For the real thing later: tap whatever signal your recovery vehicle's hazard +switch drives (through a level shifter / opto-isolator if it's 12V vehicle +wiring - don't feed vehicle voltage directly into a GPIO). + +## Event lifecycle (added after cross-checking the Cohda UCA MQTT schema) + +The Cohda "Use Case App" schema (`v2x-uca/output/json/denm`) documents a +`termination` key: "present if the DENM is cancelled or negated." The +firmware now implements this properly: + +- `actionID` (station ID + sequence number) is assigned once per event, on + the rising edge of the hazard-light GPIO, and stays constant across every + repeat of that same event - it does **not** increment every second like an + earlier version of this code did. +- On the falling edge (hazard lights go off), exactly one DENM is sent with + `termination = isCancellation`, referencing that same actionID, then + transmission stops until the next rising edge. + +Expect your sniffer to show the same station+sequence number repeating for +the duration of the event, then one final frame with a termination flag. + +## Validate against your own sniffer + +This is the important part, since a few of the payload bit widths are +best-effort: with the transmitter running (GPIO4 grounded) and your Phase 1 +sniffer board powered on nearby, check the V2X2MAP dashboard. + +Expect to see: +- A new station appear, sending DENM (and only DENM - this skeleton doesn't + send CAM). +- `causeCode` decoding to **stationaryVehicle**, `subCauseCode` **0**. +- `stationType` decoding to **passengerCar**. + +If instead you get "unknown message type," garbage station type, or the +dashboard just doesn't show anything: capture a PCAP from the dashboard's +record button and open it in Wireshark - compare byte-by-byte against a real +captured DENM (like the one from your Cohda OBU) to see exactly where the +two diverge. That's a much faster debug loop than staring at the C code. + +## Validate against the real RSU + +Your own sniffer receiving the frame only tells you the RF/PHY side works - +it doesn't tell you whether a standards-strict stack (Cohda) will accept it. +With the transmitter running and both your sniffer and the Cohda-based RSU +mqtt monitor watching: + +- If **both** see it, and it decodes as a real DENM (not "Type ?"): done, + move on to the "once this round-trips cleanly" list below. +- If your sniffer sees it but doesn't classify it, or the RSU doesn't see it + at all: worth first ruling out the receiver's own reliability (checked + separately - the receiver has shown signs of hanging independent of the + transmitter) before concluding anything about frame format. +- If **neither** sees it: still worth re-checking `esp_wifi_get_channel()`'s + reported value (logged before every TX) - if it's still stuck regardless of + the new `esp_wifi_set_channel(140, ...)` call, that's a stronger signal + the PHY genuinely isn't moving to 5900MHz, independent of frame format. + +Note the receiver firmware (V2X2MAP) never faces the frame-type problem this +project spent a while on: receiving never calls `esp_wifi_80211_tx()`, so +there was never a gate on that side to work around. The `phy_11p_set`/ +`phy_change_channel` PHY setup in `main.c` already mirrors what the receiver +does for getting onto 5.9GHz OCB mode. + +## Once this round-trips cleanly + +Next reasonable steps, in rough order: wire in real GNSS (replaces the 0/0 +lat-long and the GN timestamp), wire in SNTP or GNSS-derived UTC time +(replaces detectionTime/referenceTime), then decide whether you actually +need GeoBroadcast/multi-hop forwarding instead of SHB, then - only if you +need it - look at IEEE 1609.2 signing. diff --git a/docs/01-requirements-traceability.md b/docs/01-requirements-traceability.md new file mode 100644 index 0000000..3e94bee --- /dev/null +++ b/docs/01-requirements-traceability.md @@ -0,0 +1,229 @@ +# Requirements traceability matrix + +Maps every section of `V2X_MicrOBU_Android_App_Requirements_v15.pdf` (37 pages, chapters 0–13) to +its implementation and to the evidence that it works. + +**Status as of 2026-08-25**, commit `cc35994`. Test counts refer to `app/src/test/` (41 tests, +0 failures); bench measurements refer to `05-obu-bench-test-2026-08-25.md`. + +## How to read this + +The project began against the **consider it CiT One OBU** and later added the **ESP32-C5** as a +second hardware path (requirements chapter 13). That transition is the single biggest source of +divergence in this table, and it is deliberate rather than drift: chapter 13 was written to describe +it. Where a requirement was authored assuming the CiT One, the ESP32-C5 path may satisfy it by a +different mechanism, satisfy it only partly, or make it inapplicable. + +Status values: + +| status | meaning | +|---|---| +| **Done** | implemented and exercised on both hardware paths | +| **Done (CiT One)** | implemented; applies only to the CiT One path by design | +| **Done (ESP32-C5)** | implemented; applies only to the ESP32-C5 path by design | +| **Partial** | implemented in part, with the remainder identified | +| **Backlog** | explicitly deferred in the requirements themselves | +| **Superseded** | the ESP32-C5 transition changed the answer; see the note | +| **Not started** | no implementation | + +"Cited" means a source file names the section in a KDoc comment — 23 files do. Absence of a citation +is **not** absence of implementation; several well-covered areas were written before that convention +and are mapped here by inspection. + +--- + +## 0. Project Context & Main Goal + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 0.1 | Technological Innovation Context | n/a | context, not a requirement | — | +| 0.2 | Bicycle Safety Use Case Foundation (C2C-CC) | **Done** | `DenmUseCase.kt` *(cited)*, `UseCaseType.kt` | use cases 1.1/1.2 below | + +**Note.** 0.2 is the origin of the project's central architectural rule: the CAM-based use cases +never generate DENM. `DenmUseCase.kt` records this, and it survived the ESP32 transition unchanged. + +## 1. Phase 01 — Data Collection + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 1.1 | Test Intersections & Use Cases | **Done** | `UseCaseDetectionEngine.kt`, `UseCaseType.kt` *(both cited)* | IMA-S observed firing on hardware, 2026-08-25 | +| 1.2 | C2C-CC Use Case Mapping & Roadmap | **Done** | `UseCaseType.kt`, `UseCaseDetectionConfig.kt` *(both cited)* | 5 use cases enumerated: IMA-B, IMA-S, RTW-B, LTW-B, SMVA/BCW-B | + +## 2. Functional Requirements + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 2.1 | Screens & Features | **Done** | `ui/screens/` — Dashboard, Record, Trips, V2X, Settings | bench screenshots | +| 2.2 | User Interactions | **Done** | `UseCaseAlertPreferences.kt` *(cited)*, Settings screen | per-use-case toggles | +| 2.3 | Backend, Database & Login | **Partial** | `data/db/` (Room: sessions, trips, events, V2X messages) | no login/backend; local-only by design | + +**Gap.** 2.3's backend and login have no implementation. Everything is on-device. Worth stating +explicitly in the thesis as a scope boundary rather than leaving it to be discovered. + +## 3. Non-Functional Requirements + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 3.1 | Android Version & Target Devices | **Done** | `minSdk 29`, `targetSdk 36` | runs on Pixel 9 Pro | +| 3.2 | Performance & Offline | **Done** | offline by construction on the ESP32-C5 path | 210 MB PSS, 43 threads, no GC pressure attributable to the app | + +**ESP32-C5 note.** 3.2's offline requirement is *more* satisfied after the transition: the ESP32-C5 +path needs no MQTT broker and no network at all. + +## 4. Technical Requirements + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 4.1 | Development Environment | **Done** | Gradle 8.10.2, AGP, Android Studio JBR | builds from CLI | +| 4.2 | Architecture | **Done** | `UseCaseDetectionEngine.kt` *(cited)*; MVVM + Hilt + repositories | pure-domain classes unit-tested without Android | +| 4.3 | Key Libraries | **Done** | Compose, Room, Hilt, osmdroid, usb-serial-for-android, Paho MQTT | — | +| 4.4 | Security Requirements (future) | **Backlog** | — | see note | + +**Security note (4.4).** ETSI TS 103 097 message signing is not implemented and is out of scope. The +firmware rejects secured packets (GN `NextHeader=2`) rather than mis-parsing them; 75 such frames +were observed on the bench. The OBU under test runs `ItsGnSecurity = 0`, so this has not blocked +anything. **This is the most likely reviewer question and the answer should be pre-written.** + +## 5. Design Requirements + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 5.1–5.4 | Visual language, system bars, UX, wireframes | **Done** | Compose Material 3, edge-to-edge | screenshots | +| 5.5 | Alert Level Model (C2C-CC three-tier) | **Done** | `AlertLevel.kt`, `UseCaseDetectionConfig.kt`, `UseCaseDetectionEngine.kt` *(all cited)* | Info / Awareness / Warning; observed WARNING on hardware | + +## 6. Sensor Data Streams (Phase 01) + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 6 | Sensor Data Streams | **Done** | `SensorRepository.kt`, `CamUseCaseRepository.kt` *(cited)* | GNSS, accel, gyro, magnetometer, barometer | + +## 7. Recording Session & Data Export + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 7.1 | Recording Mode | **Done** | `TripRecordingService.kt`, `RecordingScreen.kt` | — | +| 7.2 | CSV Export Format | **Done** | `CsvExporter.kt`, `TripExporter.kt` | export includes V2X messages and RSSI | + +## 8. Connectivity + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 8.1 | Connection Phase Roadmap | **Superseded** | `ObuHardware.kt`, `TransportType.kt` | chapter 13 replaced the roadmap | +| 8.2 | Transport Methods Detail | **Partial** | `UsbSerialTransport.kt`, `UsbNetworkDetector.kt`, `MqttRepository.kt` | USB-C both paths; **Bluetooth not implemented** (13.9 keeps it open) | + +## 9. Phase 01 Key Design Principles + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 9 | Key Design Principles | **Done** | pure-domain `domain/` packages, no Android imports | `EventDetectorTest`, `UseCaseDetectionEngine` unit-testable | + +## 10. Phase 02 — OBU Communication (CAM-based use cases) + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 10.1 | USB-C Wired Transport | **Done (CiT One)** | `UsbNetworkDetector.kt` (IP over USB tethering) | superseded on the ESP32-C5 path by USB serial | +| 10.2 | CAM Reception & Use Case Detection | **Done** | `Cam.kt`, `CamUseCaseRepository.kt`, `MqttViewModel.kt`, `MqttTopicViewerScreen.kt` *(all cited)* | 1244 CAMs decoded in 305 s, 0 failures | +| 10.2.1 | Detection Algorithm Detail | **Done** | `UseCaseDetectionEngine.kt`, `UseCaseDetectionConfig.kt` | IMA-S fired with TTC 4.8 s on hardware | +| 10.3 | Test and Verification Procedure | **Done** | `CamParser.kt`, `UseCaseDetectionConfig.kt`, `UseCaseDetectionEngine.kt` *(all cited)* | extended well beyond the original procedure — see chapter 14 below | +| 10.4 | New/Updated UI Elements | **Done** | `MqttTopicViewerScreen.kt` *(cited)* | alert panel, list/topics/map | +| 10.5 | Phase 02 Key Technical Decisions | **Done** | `DenmUseCase.kt` | DENM decoupled from sensor triggers | + +**Transition note (10.1).** Phase 02 assumed IP-over-USB tethering to the CiT One. The ESP32-C5 path +uses a custom framed serial protocol over USB CDC instead. Both are "USB-C wired transport", but they +share no code. The requirement is satisfied twice, by different means. + +## 11. Phase A — Trip Recording & Cyclist Event Detection + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 11.1 | Orientation-Independent Sensor Strategy | **Done** | `SensorRepository.kt` (magnitude-based) | — | +| 11.2 | Running Standard Deviation Event Detector | **Done** | `EventDetector.kt`, `RunningStats.kt` | **18 unit tests, 0 failures** | +| 11.3 | Trip Recording Architecture | **Done** | `TripRepository.kt`, `TripRecordingService.kt` *(cited)* | — | +| 11.4 | Data Model | **Done** | `data/db/` Room entities *(cited)* | — | +| 11.5 | New UI Elements for Phase A | **Done** | `TripHistoryScreen.kt`, `TripReviewScreen.kt` | — | +| 11.6 | Phase A Success Criteria | **Partial** | — | needs a real ride; see Open Items | + +**Correction note (11.2).** Four `EventDetectorTest` cases had been failing since the initial commit. +Investigation (2026-08-25) established the **detector was correct and the tests were wrong**: they +described stimuli the detector cannot physically see, because they ignored the settling time of the +rolling standard-deviation window. Tests corrected, assertions unchanged, detector untouched. This is +worth reporting — it is a finding about test design, not a defect. + +## 12. Future Architecture & Open Design Questions + +| § | Title | Status | Notes | +|---|---|---|---| +| 12.1 | Multi-Vehicle Handling & Notification Limits | **Partial** | engine tracks per-station history; no notification cap | +| 12.2 | Intersection Ambiguity: Traffic-Light State | **Partial — advanced** | **SPATEM now decoded** (`SpatemUperCodec.kt`), see below | +| 12.3 | Shared-Road / Bike Lane Awareness Dataset | **Not started** | would need MAPEM lane geometry | +| 12.4 | Geo-Server for Crowdsourced Trajectory Data | **Not started** | related to the 2.3 backend gap | +| 12.5 | Geofencing Around High-Risk Intersections | **Not started** | — | +| 12.6 | Sensor Fusion Roadmap (Kalman Filter) | **Not started** | — | +| 12.7 | EventDetector Evolution | **Not started** | — | + +**12.2 is the notable movement.** The requirements listed traffic-light state as future/backlog. It +is now partly delivered: SPATEM is received over the air and decoded to per-signal-group phase and +timing, validated against 79,042 real messages. What remains is the *association* problem — knowing +which signal group applies to the rider's lane — which needs MAPEM geometry (12.3). Worth presenting +as a backlog item advanced ahead of schedule, with the remaining half named precisely. + +## 13. Phase 03 — ESP32-C5 Dual-OBU & Phone-Generated CAM + +The transition chapter. Cited by **16 source files**, more than any other. + +| § | Title | Status | Implementation | Evidence | +|---|---|---|---|---| +| 13.1 | ESP32-C5 as a Second OBU Option | **Done** | `obu-firmware/`, `ObuHardware.kt` | bench campaign T1–T9 | +| 13.2 | Transport: USB-C to ESP32 | **Done** | `SerialFrame.kt`, `serial_link.c` | 2868 frames / 305 s, 0 errors | +| 13.3 | Settings: OBU Hardware Selection | **Done** | `ObuHardwarePreferences.kt`, Settings | both paths selectable | +| 13.4 | DENM Trigger Retained for CiT One Only | **Done (CiT One)** | `MqttTopicViewerScreen.kt` gating | trigger hidden on the ESP32-C5 path | +| 13.5 | Phone-Generated CAM | **Done (ESP32-C5)** | `PhoneCamBuilder.kt`, `CamUperCodec.kt`, `CamTransmitLoop.kt` | **golden-byte test**; 26 own CAMs verified off-air by an independent decoder | +| 13.6 | Adaptive CAM Transmission Rate | **Partial** | `CamTransmitConfig.kt` | fixed 1 Hz pinger; adaptive rate not implemented | +| 13.7 | UI Updates: Map View & Dashboard | **Done** | `V2xLiveMapView.kt`, `DashboardScreen.kt` | screenshots | +| 13.8 | Detection Engine: Unchanged for Reception | **Done** | `UseCaseDetectionEngine.kt` | engine is transport-agnostic; confirmed by inspection — zero SPATEM/MAPEM references | +| 13.9 | Bluetooth Transport (Open Discussion) | **Not started** | — | remains open, as the requirement says | + +**13.8 is the load-bearing claim of the transition** and it holds: the same detection engine serves +both hardware paths, fed by `CamUseCaseRepository` from either MQTT or serial. That is what makes the +ESP32-C5 a drop-in second OBU rather than a fork of the application. + +--- + +## Beyond the requirements + +Work delivered that chapter 13 does not cover, because it postdates v15 of the document. For a +publication these are contributions rather than scope creep, and they need their own section. + +| area | what | evidence | +|---|---|---| +| DENM over-the-air receive | GeoBroadcast unwrapping, `DenmUperCodec` | 1885 DENMs cross-checked, 0 mismatches | +| SPATEM receive | `SpatemUperCodec`, live signal phase UI | 79,042 messages cross-checked, 0 mismatches | +| RSU CAM support | `rsuContainerHighFrequency` decoding | 611 RSU CAMs decoded on the bench | +| Verification methodology | independent ETSI oracle, golden bytes, real captures | three encoding bugs found that self-consistent tests structurally cannot catch | + +## Open items + +Ranked by what a reviewer is most likely to probe. + +1. **11.6 Phase A success criteria** — needs a real ride. The bench proves reception; it cannot + prove the use case behaves correctly with two genuinely moving stations. This is the main + remaining evidence gap for the central claim. +2. **4.4 Security** — no message signing. Pre-write the answer. +3. **2.3 Backend & login** — not implemented; state as a scope boundary. +4. **13.6 Adaptive CAM rate** — fixed 1 Hz. +5. **8.2 / 13.9 Bluetooth** — not implemented; the requirements leave it open. +6. **12.2 remainder** — signal-group-to-lane association needs MAPEM. + +## Known limitations carried deliberately + +Documented decisions, not oversights. Each has its reasoning recorded in the commit history and in +`05-obu-bench-test-2026-08-25.md`. + +- **512-byte serial payload cap.** ~70% of *road* RSU SPATEMs would be dropped. Accepted: the + intersection use case is CAM-driven and needs none of it, and raising the cap would put a + measured, zero-failure chain at risk for an add-on. CAM 26–211 B and DENM 402 B both fit. +- **No MAPEM decoder.** Nothing on air transmits it; it exists only in recorded drive data. +- **Secured messages rejected**, not mis-parsed. +- **No auto-reconnect** after USB re-enumeration; requires a manual Connect. +- **Station IDs rotate** (observed twice within one session), so they cannot identify a physical + unit over time. diff --git a/docs/MicrOBU-Technical-Documentation.docx b/docs/MicrOBU-Technical-Documentation.docx new file mode 100644 index 0000000000000000000000000000000000000000..7a131349b2406df8c7a0b4cb8c090df3d4f56f41 GIT binary patch literal 84932 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

4eg3r9>Ob=MXDQ6OPd%NnCk9LOr1{!D z8osOhNc{#Ln=kC6Bm(+louMql} z53m5rzCcm$R*10XOLU$j7@n?Uq#IFf_)$Kc3_Qu30H^XTaH2<7Auj%frF^}!WBY(PBA!0~=zKEXx$@kls7*q)dwp26%%s%ynO%7HiF zW=BO~(AMw>DQ$Js(QrQ0sop~s;n%InF3QYpv>F1!I-%KQ^x1Qk+;{yQz-voj-y*U& zW`zx93Np0=9*!C43ub9%xh^oh>Yf)JVlk;H8K`i{C5M9wP~Db#5-7#6bz*Y{9om`- zJ?;&~mG)ob`j9)-4E)ne&C@dshk|8FEWG!VUpwdL*=}i~yF3sDE$l~o5T?zEE7vMW zLRW*}A&R=&Kb{$w{m&L@pORn<6gvFaSPPJ{u3lF3Qv9-9T4+_Yerlj+G%9y5PcDDh zdKBfbfJNcWeAX>N0+GT&5#Or3o88E0O*2ISel2l%TVt7HJ+{o&$*iXo(&J$! zSkOtlW8Q;x))8D0HrCU>fP1KKl;wZ@Ck{(r@Xy%#{!&*7D z+3`nGCbA(al^+AlLMUDb%+Yms>87f_usyZ+-$fvhu5puUhN?Jr#%%b10VL^arR?5v z`=qND;WXnKS&kNRiv^nUDx|+UA$nEZquPFr*`Bm@!ESjKBbuasA*+Tem$VnE=--v{ zl!sT@{?B>-Z;xiDRaIi**QU0v#T|cS{5XTZ_l;I7b5)EZ6Ou!((lz*MBfR2!n{OWY z-N@!p74Wo44Dz$GVroX@6jb_feCPp;p4TT5s{@js|D3D{7lk*dpLV->`++kHV>`NU zD?*FV81-{#zvQWd&mzCcAS1@%ywA*JUv|5y{6s6hu_|FTBm;Q-n%!hEj#HRHG))h7 zu0HT9q@&91Ezb_2|6$6mNZKVyh$nQ*(o5)Lx0oiPASiIdvZ$qd(zy&T{K6gKQb2V_ zR-(!h%o(=kofS&xkeGBx?(Sa>N*#-CMxB;2$e<*U{>cBme#Pu!ysM=#q|`;J|?C zhGcE5Ovl1sXVoX1XKV3--3Mr zTQj%~f&tPet{8sI8aIQ7@Tyl4q|i^Kb6n&b>eim`w0c2 z8O{x(}B2Lq=>WCMvVilh%?+WZ|7Yp0eb6 zYJBfin+jnD$jwT_`Lk z`M}(+X70cUDJ5yF$P{d_wLSxLF;t+@%MNNYu#J*Z> z!+}F{M8_O)IrB>R6P{&OuxOr`FX@?6&JEC69H3ldqW-Gei@}~`BIr@>sRjFmoW!fE zc8*4avsN+vc4mn#QZS&6iQu!ajrU&SffVaihHxCY$*4G%;Cjhtg2ZV3+JC01PjbNs z6s z(#XL2z;)y_j+O53TvCCPu-$=|@{QD{8UpibFQVRAyBdVBf;1Mw=&O?NqA(g|6On;Vy-n)Q;M7;FY&JX~N;s-0mjhCiZK8v;$mLR` zQyY%?Y2tt~qY60kjY_cYnnNd8!h{&<<#^hG%$Dc;)w%e`tFv-sM>5IW%&5I#QV!0R zW+TK0l0tx%LSF08BH8I%RHYCS`lOL1$22?r55vmQQLuBqiXCjzK?y4nspjh46BrxcQ?wzO+pczt>P{sHe8au&g<=fp#fTyC zEqEeRDTMJQIZ`%rCLk53#?PUYJ;r^OsW;N#gPDn~;MhpZR4x`!-2Yp1hTm6=;;3ia z85#rTMNoMQR+08-d1iPuM|Cz+n=R-;pNf~nRgBPb2#Tpo01KfyY{t;YqL%<2z?Fd3pPH%(#MqKP;T^2M8&a#QdqNJ=T}~cq|*%Z|{WU zIqSTQAaWT#J-+_6{I4ZwJCw+Cc)~u$4*iCXAYWFcstj?=sr3u2sUR`6+XACO1S{C# zTjBwE&E=T7(Q4|Y#D4~uLm64!vD7_bP6T(g*e=F1TU_gl{IN1qDobI|pJh@=7RnYYB+^kLA8Iui|i85cuE$sHeWTN?N@LC|!#; zFw@%q2$Ck=G2FzjBLLAQnVBXM2|hUnAFKoYzye?dRuIYr&p_PD1v*SBKt^#?NOt1++>_Dv*+>lHD3uDee3Cs^M?JotRvnNv2I+KKpuP^hPK!d zQ%?$VHtr?i5sl$^M5B=4&qN{{ef%lhB2diAUS%$>nunhN%c7sq-JLMIlNLz2!5dmQ zhRM==F#p=2YyoHl$smF=BFjJws3_UgGZ-RCc=4z)`k=`%v+g14DACjA%a4Ud z@PGdb^)-YtR_3YJ#iijLU{5Z;!vvcp9#`JyPO9GusO|9F8dv$+W2m9vkp4~Y zaB^+KzYP2VA&x3K<4vP02aty<+_UDh$6RbE`Z&YQ;+X+U>vT3*DIai+9W=j1))}q| z(y}I^t0U2tFC7f~K&+4|iAf=n{t$DFMLT`!1r{}q&<$s+Zab>aBVhoBIywfrf-&J$ zxkf2-bq2$Q)3AL9^>A~4WSH)l^VNr+!8R7rKcQYw7e7iMmR(YhJ+ zaIg{@awK5$2XK#r6?tEdGJJ<(L18hA!$CfUKO?Ygzu*hU?%#u;B$ zJ9#>{#15k1?#!pF{qgRe@?iZW9Jx9-qdr_A6P0R)QPJ4bH-sMV2V9d31y!59{ciYK z$JwX1hJN2z5@y6+5v)2_+v6b(6KMJ81E`olA?kpbBQ&3E~E<*sc@ z;o!VkHDoyxYF~?J+4SOvu$n?|LC#JnwH1uK&TJcwgvrs?aeI3SaqW*Mlb5TmzWpk- zISA1!mVK_uRh}CmGlwngq4ilW&*tZxlLxrVUkEPZllJz0(Hy(Ea>+KT>slaaYI**2 zLShdQam1BZT4~^_{We*vFu`50Nph<{cZ&Yh>9)TDL*CsGYbc{YQ zH?FLZaUqZa8AWn@`z=H1Cv}$P9>#~*b3?RXu6_>^?mYsMs&sK-kMhHUirAY>aZ^|< zr+bkc#eK;#lZ`YzP=%Ye^olC$X|efD>EsIlazf+v&fa(SigkmpOW7o8jIv>=ztAi! zCR@z?Z}LiAQ}qSTQ)h^U43dw6KMp9Y+LBGBs*=Uy<}w+Lngr0k@>pUo_#Q_v-bho6 zl7~A9%vmAZp+4CK$m|p=fo5`}Hc~5LMd#2dV=1P9cb-|B0>lLkh+PMz1`09m_zF{QF0dsVqJH zXR&1@+@DEd;dy8U!E`Cy)s5_6?U-uKlcCNDEAdNMI6(m0}w zIQP!`A8>`B!>z>lWK^F=y%j#wAJ7m!xqQfUhjBFRpDyth{D_Ut{DMTsSXz9Nq%_*Z zkdDDLl);e=m{ew(WE`N_@K}(S%`*_n8Hfmn9NJ3k^(#LHZa`C!?-P4;?oIC;ahjDI zyc4Fy^AnS@lxvCM&a^tAyLg_~!w{YtVkwBEq;FYi7R^=>*Ph)Eg;d>byrXS!2}W*i z@U8K!aUe~j|I4tM zZF_%%1k>$O(}r)bVbhBXYC>?|tEbHEtMsx5XX&V^v*HIo^z!AfE@9guiXIQ-b~Y<4 z$|bt}CcV4kw-6e{r;F}<<|jGeG3Ld0=>I&(ZsUiC#suteFb3>!fDi0&@W(;+Kl^k1 z^EmsTy*lCrXr&)YF|!xdoPpG{D~>8u^d;5RS)#nq&QY?r>h`19|LFT z|FhO0F?{Ev^dKPjDv%(^f7ja4$=%At@sE}PI@XTIVzqBRzQJR9*Ho4tG+P z6%!^*9b?y~a2%tS^)DgYDMzZhVq>axP4iPS6IsX_bQ194lM|n;GmBD=9#1xXeU~?1 zT|K!jqC$}MBHx*wj%_@b@UvV(rieP9_7AsCmepJj$DS_hH;9l|k@a3{czpr)U9VGm zU0#lzFEyK)7rj$Nlbh{Ud~5uAbXA)?Jn8IHt4V-I`k}=$60fV-tJ~VnAm2!m~XMFfqZXEm< zx>HAA^+d#;9e8*&Lg4uM z2nXIhmNz#$tU4dhZ?@eu`Olk(&ink&-?1#tkD9LDlpU zPrB-LYGkputxx65+4&{ua4a;1_qn?gb=K-+(TCsIWOz@@Rf<;ef3Y?8ad7N3rlWV2 zYkLk6|MfU^Iq+V2PjpWExucc~yXtH)Wa_BlZ2Lry&(xN}@rV)szVG$v7BD1w+Y_?4 zOc*BjqWSU}>!o$$)R6N;F3I{Ac8*4_;CV7heyG)RAi1#Nd zUZJZDiwKjrw>rVd92qF0mFo7#$s z&bIqrIlOnb-S6vPHxJLYlWy*gUZ1)Gmlk7D*@v3?_C21jWYV)?*n{M_a1`OVG#`L1I+i)C;Ne!*ho`|G(^2~qmZ zC+9%;<)8ZxjA?V==1tZXa4^?Mt4(Szz}`ys+Yc?V-! z9;kxV)kV{80b#Oc7|mN-pNS`M52ZhUIjowIeN$pd-FhbuC7%sk5=Jo%jvS)rP{f|( zI4&=Ura?ndC}zcpiUh`N1EX6H=BCgOBgkDz0B)t7iWuH{!zw*b97d7sGg^RMY?B{x z`rbN6^beH$%=VMuEpl5>4UQ2l0TkJ5ER>+QcF18`p=+#|fS7j3{OsS8UxAZYe@{Ye zf3yV^{43t39+#XBg5Di|xL0BW>~HL|`dDBpF))tmk5o+{S}+jzKT`jsf+(T9@E~#f z9|RW?pMfKAf2c@ohcwRlUlRWf72|PTi5-vxjQXcA7cHP3MHHY{jQTxVVtCsBA(56C zhSD7#<`30#ajqRG?Z2b`HI(ltTtDg3)q$>?$t9*aPuxkU>g;_10QFt*S;=e+iR_ky z6ZJnrmlRjl)@tV=^ld}eTC#S;7g3)(x9{Q}9J6}+6vd@93b|3o? zLf>*GG+ljl&~zD@#IM_TrCV3#omn|H5hvPrh1ccTYJC#QhriyhQ|nLNg1>1=%KCPH zg#S(RI&=DydW$1>b7y#ypv7r_suY{J&JCGwAck3<2F~fp>-iOiEqXY6Oov`*fm!4C zf>sGv=YeR=y!13KQh==-xigO*{ZKC9Vh;byN%xHMgLYTJVij3M=HkfEMny`eQRb=P zuqUqYL??G9?TtleInmU}`|Q2w5qv?J^5g9>*P%6%SjYa0h=UYwo%vRb!;5i?;F&7Ds7l|KUrV$U#|Fm0|(;i6QI zX?m5q%Gn`@c7wNNvMQ5I+K;%<+~eZeP2yEqdI01qws1_}tTxhOOAN-xWf!gCoavmG z-h5Ccw0|T^nt_iabXhl5@dsTK&G2_3%lP^XKacF*&0b+xbhp@)$sD4v+js7+k~<_{ zytj3Qq9yarObnj9D_bc=>F(JmO?qE@r#U!rZWPk+$nomFx3%)!QwUWb#YKP*WtE4` zrZ7uZ8N2XIDHk=%FJmo6(nzz{LacrNQJZ>0vpVXYH~=WOpW+=ebx#c6(qLPxvyz^w zb-tk)n{Z$Fexjjj%QFT?;eV1u`~cAtj$et*nXJ19<2KE$b=qCxaAYwEpjtJ~TG4qQ zyJqm*rYow84bgxhWZU*wf|%{2X!TS_valx@pYH9!p&G6UwA_i@#K(pdW?w4}TEt5~XhqYIVEM z$#PXFD0o=e=vuw)yVp?R|fh@V@YRH@p9I?8ai${^r)M9Yy~# zH8k(@27>&U=HAQ;p|=^*lr(fk_1GBq{A#>LkY9doxribvGe$8+6lHEnF^E_|uhLeu z(o}NhOW^uUo&C_iS-8oi??s92TcyBDdzmnA@>KCDYWe(Qa_hZuF>6@fdXDeBXB8_D|?GA#3PETs{a(OG&7^|Im6fvs_qd^>} zPOgvQ`yj8h@@(cta7+2g@V#6!@^h=Kj2iS3C~`-gUS{ykqD4$w#1}|wu`uU$=$}LDV|40x zaqQqENCA{3{YqepZuJHUE@rClSppuBCvH7)%eypAt)|<+8{EAuLpP+5~6cVuoL9_(bg>;>26Potj zQB$z+zTl%4U9an$FW_4Ccja{~EUrJ9Z@neEX4T+PREf}3Y^z3xRP~}{4D($Y6IED0 ze;r9)Q35nZz&=Pa3n{elhKcGFoVerX19*_wIpT&#stV?AJ~s`W_@3NjlG5D$sNcz- z2}A$*S@ubP;GoG=Vr8v=^%6d`Ha8|6M`NB zcJ`s+K6y8Ys1Ke3gE73s7h`vHMPx?LiVhldy*Q_%VDdBNwb{|mmI<0()vNHM(G(5e zG6hL<4B~GkO_K1gp|=d<32JvrOOaiaJmK)?cp*Zg{dF3RLpEhZhXdMhzAa)O5Kekv>VbQO-F#Yj+3arIE-&_Ua7>q z!J#){1uQ#-yMw*);9>R|PZ?k=eCved_|6CM6=9-WEbd3&v~(+9T};dTdRSGJLz$gP za7h4$3ZRDlnV6c@!ew&9DcL-*vRn*LBa)`UuSxsOGQmZWzLa>?B%>hk#l;C0ZASVz z*5T%dJ5~~mQ=OZdq!T$8O-^~-uY?DD$U@25NO}%A{*qT+$h-o7ZL^5|tJ`{Bov!dG zZlk&E2?Z$YPFrS~CsRMZ&tZ#M?A4fqx7$T0gy7N#T)5 z9Uc8R?PZo@*k!7%>Q(jw!r*vcbd}-#;FB(_O8&jus~C$T5=-$YjeE;li}!L|XiGP> zdsa3S07`xiVP8G}o3m$YrFJLiM+M9Ct@lsYa{<(TvQ~sojgFF>|zv zP#^mX*VpK_5Wm*7`Oyej8*2#J3<{u6-GOb=3&icDa~hw1D({_;y^ONvn(tcoD`@Kk+>KIuCwXA5YSH4#*0)Wc^(AYSETGXorTRyj(GW?Kt8Xf_DR7 z!KWt<|B0so#OB=U2YB1|LQuM#AL~!!6$W5TYds>^PAR9yTV1`O}^Jl*?leXL0tNdG)O#jc- zevw<#XtPPL5m|wYtrqBC6B=}?pOgL*r(26ah5p}~uCWDuK-JtQ@mW0jlw(Le90z`; zS(19(Si7?B%x!GkC?fyVV#sJiqMU8L{I6;tGB4Z)5EBMC9fyA*stC^figdg*%11uG ziY8^KxC^p;>Evq7qb|vKePRPIvAPsS6w`$Efs94#=NFaXuVnA?<|Ekbl^)3^Z*ihZ zZ-!%=ut`Xg**5hnE!th(Z7XZTIEY~&V&KU8APlb-+Z%3N*JuqDP|eD#wBv}CfLDl8 zsB-3+?K+DQGo|!7k-0IMI$v zF=pwxHq9vQ#ShfS38&aOu5}+`7M0-B_;NRZ>9jcCB0T;~r~fm(_+RPMztf?3gFIB8 zt$wZNL+=6Ro{FN2oAl?sPQpm?bm81`{3z$79KRFN&C?u{uaYdwLISQm@Jtlw+iOsB zbm!kbda$#Dx$`ziACn!^s-h&L(;cC=^8Ys|sh z!iW~DHB^Of$mHmscofeoBP-bUls>9b35#`LTnd586(=2_@M@QCJ9ij!*~^1 z&>RP|&ydcQtssB7Fx4ckD#Ft77U_U2JJ1?O_yADshKJ)lrBlc!4P#}_9pVaMsfsjP z)G1lXQ4tdZ1+3#qqEzGLvC+Zjm#nP$zEcuL3dttyD$0#iT2mB}N;S6aBw zcO5BPk~zq?sC^XeC5xVAnF}*)$)80F*1I~Tgj#LvXuSZ?_a0JN(&Zi>m&(axod&)1dE+I+IEz|0M+p))%SQ{!~{hR^K)`)_?J0qr#UuE zP*2@k2KLq#Q30J^t%_q3j7(*S)58B+&0J!1x6a*28!|I^CY$sB!_Dja1or0mT<_`m z_|WbHcTw%datYXP+j9&5~!!t%>=TzP+;OGc{Za+oZxCs zQVj@2RTw1W z#*`laaSZ)<1lTIsUmcEADuoU^5A(iSvOE-=6q3nVU=M@>`8y7Z)(>nEuL63nVA8s@ zVJkQ=j3~%SA{<`h1EDAzzdZCn^Vd_?b&d#A$_>jA!%^s}8+C-22WLaZ0;^`Y!ZE6% z>B?ZXV1ax;SuXHle|&E!6mafd9Zi&)a!}$+`N|T^45@V6k ze^-~*Q%4XrW&g2^0rLreJf6SSa+u~D{yNAPO02w#&}i!#oQ_HSx!8gD=+505oCi?1 zenZJ+JHl}+DOs5z!89RaMFD78uss3UY>4lmH8}2q{f1AyhM$<)LdOdQ1h$PsUsA~a zp)tDL!csIvH-y3*=-cf666hO($dGX#&`>u&?6|aS7x0H~EOPKY0pO*-`))uSo)l{q z8%y}dvWziXBR$0?F83yj_diso;Qdx9>-`g`5}9ZVs1g;T-*A-R@L+5@J`Pc*o(h5# za_$V77<%RnnHb6?!oQx_kkQ+K5hGZ=AuVu;KsUyO5lXsJH6NEigr8RJ@*X*tEE8yRoRqxhWG z9KkC%vwCwDU&d%?DR?WXUr2w$uh3ZzGf(RLqc__ArudI_OQY=+{r&7U z5prI$9C0~ApBX2`l%>++ILx{Pq3mT}ovOw;Pr8 z`_c5eyDccG*Da`>^gqUF$w#aVnX26R>}6?o(GOWBf&CjL)9X;@|4?EZBbctlzy8^A za>a;^24KYY{a*@&xyQMW{WvI7|5SMTzZLFt9^SVxcWGGP<_ZO_NO14P?#l-w?S%@P zXvLW6NHCj@-V~>X1P}zMRFx3cF7-bYZMik4lXY?1y0m5G9lqPW*S<|%-JX#~^osAW z1&RNcM1WGnk~eB?A>_qPrBG7MXKXjs5F3_p`ml5~RJSLi1G$LE zS3v4S93-jV)arjwCjzN?)OUbihz65@Mw@Dgn?I<@w1CvBHK>13C(^a3JN-B6dve*W ziI<)0gIhvCz+codp4UL?nh<^1>y_A-%6DxV+5eUfEk)ytx|d|yzL{tGH+hvXkUWhG z6*lx(>(vCdN;ckg>Bth=q* z$zNPfE^o~92?-)6k5luUzA~_~689R__!zTzn}$^3&((r~%Jq)rg zn%UaEjZyL3`7t%F{s2>i1yN+yqLV@C0#TTy0-8l8yCv{tZBb53sVqh26Q93-#r^aVmwS&u)%V9E%Lod1#@z$Sj1FS?PgRk@<|0ik!}d zQ|f~ICfB;T<}Ms*Dpaodd4nalLrRXR3+(~l3;n-pI@7C2btF+w*AxC^ z@i+bM2l-CmtR8fBi{n(K@wdmwbD6mCe}LWH7mmpOHaTmqdFUPKTx1^kx5>oDIZr9{ zKTRTi{%z78>$geI)&HAGyVM2mEY}Hh%^RRe3hCK5`xRb$ZXPjuY8IFD#=cSM9gfLQ zPbTP1w>$G^NubSZl(gWtq6zgF;+X21;v^xgpAQyI2XIF3jBm;%H}wo09^JexekyQ+ z3HNABm*oM4o(#breRqfSXAlDV>P+@KFJ{yW3 zg1_{U4#FOlc?eiG9La%2Vm=kDcmq)su(kkoAl4xUH570Ir4vV^ABM+;(Um`en>K0( zxxwj$m!{W(8e=qT_&D}&agl<*#o+{93O!m5FI((!o>pfu^bywkfD%LgzChOkFHns> zpfutxuL1ShIa`ngXCu6W@C?x;?cKT<3|AC<&sy|}NzSc4pums3OEA|E4?_BG*J5ephTMu>VH6}5u~U}lSGe#J_QS5QZBv#6t^UyG zny1%ehCfwM)QF1^bl)HFeWZ6-8r-IOHWYE*6M$n2fyK~i{=(NFwhgyj5I?g^G#zgv zl~%%zSL=9OAwpq8HVnZ*y~LQh;Chef>gOc;wXLn7b3Nlh2l*ibeSA>roKK6m4;=?% zF0;r-U7SDjNx=ZoO=KwHtXYZuT%cJOTI;Y)-&0o~@)Xj&|Ni?0>gMbqO#i+7=??8H zteNN!n~19CM%?3cIm`mTAxLiV8%_3%$9b=uqK)RDWIg2MO$(L}oarzP+2eBh^73Q} zPX;93O2=P<8zfK()EYlat~Y}l_z4SZWnz#Fav2OKUn-ihH}$a6TVN| zQQ)R|5%cK0Ni31^Sdxoz*?c)8u=|@wr7631PD>v3<^=R6jXr4%){MRl(ZmNVFhEm# z4jKOFs{%iDxqtAl=Gs^4<3R$r8_TW?73^_aGzWf{;5a~h|BEz8Q~!&{R|rF&PcESz zFm9)c*vu8K!!ND2&P9_i$_j99+7F~#gAF!ZH)S>yUrX50KOQWCAF$)K$eK2p(+LrL zx&aoi_XXk`Bm=*{g5bEEo3_M(8uz(CvL19KY@5DMA`!$X9OVgB=;H?vo6twVG)(`C zUGio>ycb)wSs?%^MekllYCa{4S`suG-X-SXPbzrJlBQr_5x@@)X|T%@#-e`0#y`R$ zz^xpr@zWS*>Aej-KC?;kkYquX@F*TR**V3~aenLc3uGSwp)y$wU4An6osX z_28o)UId`Ke{|mP!8ORrBK=LYdAQiTAY^MX)}FX>=Lp zOKG%m<9xJn;a|Y*TZC0k!0`Ms4OFkf)0n$$1hc{aDb0(-d5)8TwP zAbBxgP$&TUT&@Ic@Af5IMK$+nO#6s~k0o1X7Cp$k(8ni`%9p~dY?v?789wprUt2Wo zu)=Da!7*Pverb8rKjb_$OZQA^W%)e&xOT>udQHQ-UVZNF-Ef+dHK0$4Ofb8~vJB*< zxs2G!3INwbPEoDg%NDF$9Vm_G7#t6^7N!$q9#+N4R?01OoOe7^S#U?g%c z+N>zbkwHl(<{13Y0?`W_bdMUO6-Cf|DhdVB*XFm~$PIgNYOM>=&kYlUb;^kUX(N#d z8g$S;p#)@T?2BsB7RN)gMZm6bz-}+)5-L6=$Ho_qbInAf<#Z5Yj*T97xTv$0sAfT! zC_LNf?e43_cup9Os4{6t4qZO^T8N>Z5D7GVA~bw#KD}>S96eWjz4k+{Ls)GiofD%+ z5JPxu!*dy0jl+y|5JS&~{}bT61PJhj7xfQ-^EX+$^es1{?Ph|dUD#(lxsZfe*eG_Z z7>TX%B6#~i6nyp#!ao09Ybr++JAAbiIJlPx#=uB?q6|2_zLq1~es*CV`abskX)0{ts6VhKf6tRGH6 zy$P*d*msf?atX^c8VMWjfeXc@xD5f&70JgvMyhPWqUJ9X=HE(L?u19^Jx1oe*q=-k zgH9VPcNebKSe^>e>egL|rk;Pz)0O*lpnwfou~%ucfHDZ}_l0Qw%3#ZqI!Sfz73My+ zMzSlBgE|^W*X6c}fM%fEU4xpnUKMzWIBW*@_ z0IAx&u_-AXk*qG4lHA~+s^n6Hv}0JRU7o$x8y}-4RJ6Wd+*jI5U&|!9pHYs0&-k@^J`N3WiTX2_w1k^$MX0=HsIQDHo6Jbj|zY zvgHx#8p!I)P8Jn3cepsF?;?gKXh#j%YeM=3Nogh~v^dG?DY6R!Mka5@oLaT)xV04h zbQ&qxG==bYq*e=mF}*bcnQR@U$`Mi$Fg?`vDTtv*N8w)09RpX&=fc@&{1Sk+%B9Uz z*Kxz)b=hR};@nMMj%AXO8@0V9r^nZ6;zFoGCJ*BCPn=vPPshT89l z*2;zqT+BFQ$Y3tk)LnZyt_Wg@)98Um$bt5%cQgCWGDH5rBT@{I`@k*7TZcM?LP&7* z!08d(uL!0MnvpzrkEZ3YHBwM@2#H3~G6)(?lAE7L>S`U#z7l>8WdBZ~`fYp^PG{2r zJqF&yBzSVNMUe6jo5skhuf_eNET$%%*v+7xXroO#rv#tTzv~#9@S2z`%;`ukV``X! zYyMT@KklO&vg*yBJ}>X|TQU#p*vacC`epC+W!gihDB8-k$Wdm;7k^(_?7VxD2Cz^r>$&@w}g)CI`C? znX!f`^j1^e#z0b>o_%aolYyazDWlwfa5SLckY+i9Q61edshmc=5-Z(t2I#h2Iw(Pu zlIf~M{e?Q-r+~XH)Cch7SGbVo!_IZ3Ot@+69I$cF*-^bb3+pI#VKL93O1CDDbQSNC zv3V|r%ITP(M|6^kf`%nxiYiKs8;Hc3UT3YE_e+gIY54(qb(lsU&R4{CuCi6(6GgGD zemd_M>PAPhKre%U&@+KKECq@*ak2n|;7Ts=p+|ZYNGm9$?U7tS%|itnEGBiUg=r30 zdjW-Du%JLN(#l6PW#VE1dH?Ky7tks}7_22diE0OxBzcnR_JSsiu6c?aA5kDgB*OgE>Om-yGy~>RD5=!2}_7vI9<@H$*tpoMACvL>cau z5F*^mWQ2mlG9@*NL2Qdf`XSOxs)G<%IuGs-zo}#gMVj-3kCzEk>t6S*nazHC9sq&VU^ve zQ_SsDonE2J*CrujdnI@?RgNlDy)MCkZ9mSZAB07Sg-A|QI2IED?`e?40SZvX{2?@; zJ4~bKcM<$CUqC!ZB0sxPtC%}~OD?f)U-_Za(;p+%*EBMwcdbSz4KX}fOD$3ij+TdJ zqh`9tuvMSF+SJ`3N&GJ$)!#t2{|3?k0{whpyniAIKFHD_%V%&tOr*W8_7?a9;i??? zQ@OvRS}Nbqqby83$B@z(i>ljI2u+bV|K}$~`IXOe1d3nZILu#Tgns)_Oa?v;AKi%T zJ+(JrQT)1Xa217M_2T5ji|n8#0*8r5QYQ}Di5eRNMiNZ%BVa`}=Ny>#CH*+$PX__K znVgPyi-zM9pTx+5ft9e$5Za}@J9clbCRHq6f=&^IyY!9;!hoS-3B{OmfpZ4t@w>?J z1067124Q%u>WnxwGvHFyUsivI)@Ab!%g=~->rY1&Cf1UvF)=A0}t37*u#B4YokjqR2AsHF-o_z=^=>^Ow<{o&2`&CR{@*}G-Eg6-sf z6XBih;lQTFXNjkBA#2n3=0b1RmU46L>@FOzyW?J`+xdPlwSS)W{&?~J^mgLf_L?;{ zwytyi3^;GAszScF$hv!8yx8bi<>jH(!)oj5C?{-8TR)h6vqerza!r%VQbitf)ni{B za-G!Y;CSg;JUcLGStTDl2nSq*ufLYGBq8cq(uarKygNe$N?hMtc$@FuMX^ znm*SqQTp2OQ+6%+xO={`ncq0q=y_}NR^9m)T0bV4`uO_3H|qGhTI{ZldFOXM(zW>9v=%-nr!!y>q@Bjyc8+Wd)@H-zePo@NMpJUEOzd=t~2fn*%(~*q0Y#G47*y7%h)zPPSa%fo9!*t=geuzKT@M97K1`c}(Jz)i?S#Pja_!o5*`-_};O zN$Y}KHeWUJN?y@bjwZ}MzR))B?O@unbY|8zPwL6UMIbfBUx3Zz`&hkdh6G(UH2>O` z4p`S4QR$-3+}z}zoG5v$yxqGoe0}tCXnDKaB&xkn;k;#Je0=k%dA;j9UFp5QU|P3( zB3o1l^;c8f?7(`mxo>q-C$KTTGVhXJXf%FMDw`_9V3}Ovf4{0~avI07eU^En)2(y; z!Ja}$g>byxaz8?Px800Qj!nb=TJQc)>-ADCC)?h|uP%r5_B^E5ST@0?v9`G>S5y>8 zlt^Djq#7MP26%qne(VLz9@{^@XC|KbUL-~@?!My@9lVzegiNe@_$_zWoE4lL|vG%!|XmUBW6GN zxC9b)X03Mz1BZTX0f%saL(F#oeouA$x6a3HaRk<`%Dbtt6@ayPO?u{CN}C?m>cHXI z4&aDxACkTBIQ8-J&VI^uRyZK-t$Nc&@lMNV%pS%{l)g$XeBDCLHqwy8M@C~~eY2@- zNYgVf_O)WLmwqZdWPkSH(Y~eQ+4*ruxAaFAyDL!?ez8wCtjB)Q{9)0nPHza2JIxb0 zc#p|m(Y%eGZO&d!GmRZ$r5@NiF8sSXU*(4GB=11a53i)&C?(q=rJ6V-xT(H~_((gR z&?>`^1YVhxA3o!4yTyjqqBd=OU!%sPYt(x<*ipA>oMN9!J1c53J6AEGVLzmIc_0+C zS<#EItDrS%;mpzsx-dmX4iz2+H<_PT?~XsNrO^*F^~Pcluak$z`KVq4Sw2F${;v7f zxsn0f^w504)ZTQ5wH}LvYRL5d+_=0LXB;Bb`e5IoSLr&&%@;=p={a$h4;Cm_T>z&} zwxk7Fj%rm4wt(TPdo- z3hTDDf!|^fZTO9|4#t5n^Bd=%0srt^EmjXXr$xE}3_}Bk{kDc==};!|gmiav9rYZ% zPqME?@lqub*AC+2HRnsqPunyG03SM`#ZaA^qSjB`LA=$kdvqAOm+;dHz-ROnatRzI(Y2kO?JwYUlnA=?5*OldE zFb1AM!fPyhjSe?1e`}%Z*alojdmoJ)&OePk?kxkG&eTk3I}m)o307)3=SZLQLQQ!A zn6!Aka<+821{?8LER5;gZ2|g5qQ~UYtY^G8_WUMiUE`Bj&+PyQ)>%FxkFyt3N!%@K zLg!?oYl{_|N#3ii4{`%d6-Og8wpxx|?LMoigpVMWjo zL@V5B29P2o}k&DgN!>qN%5JVTfl*~S$57pWo2$&vB!lDO$g zn41xwtROC{oFg-D@sxhM5hqLk;vG_F#+U9`?Zm^*7dDH3>V`iHHeUr*T7_Edv+2*p z1ndlNX<0^0s21o}j@rN58Mt(T^1VawsS0MtdnQs1=Dk(&Mg+1SCR3TrEf=*Xu9M8o ziZ5V3_?zIih}c)0pF-}Mi2EgCpX8pA_Cp`#7g}*FMPG%%DhGs_kTCsIl%h(;ita)X zl*S+BVQ@=zoTM*VZgpNc9}#z{C=Wiz)o}8I9^cd;7QdSqqLf>7dXT-+a_PvcQK29Q{+1OCfSkSwwsvQ8SjWQY1DNyx#;TdN#nDHHW8!kc6?+j@BkL%_J(#mQ1a zO8A7%)mJ@ceNa~pYX73$gx=Y!`U-o_CFOubn*t;0K-^@_x+P~Q{?mQh`KZbdVkvf1 z#w7cCM>Zr|9>$;NkBKP@Q}v#%#I^twADwG+`aGgDOua{W&79?CXyub~cF&itk(B*qNAQjpDY4wYWB~l| zFLKzyv%>M5pL}vja#%N!oik*Rt8urb`FkaGak}{Ghd=L@Q|`IZwpT!g2@+Jc9aU@R z;vL8Ry6#YAXSsDN|8ewixuoBfSQqc$kSikbt0&cj;{0mAwP@hUQF9n@=?X4QewGkh zaiA=czfI>zz@LfK+-h}NzhFXcd6+XMk~mS=X2p?QzhKt0dUI22=&+GN$53`};~cd& z9G$e81Wz#GWH!IXt81`^QF)|Lv`<)(x>7{QYW;2Tws=)D`pwJDq###V4qJUbBQLS7 z&SI3P>Z{Kvx6)=tB6>zDAwcVVx|GWIczUp?T{AjL>txz}=GNj>6%CTp>1ZFVuC;#D z*?0!<&26@&t@Pma5qHE^)&GdO)5c|_k$=)kDM1Y>WZBLUP_Sz?+t1pa=|(gr<)-AL)pD01uFO6`e%Gi&09hkkf9CPA3Ry=R%)9DQ4aUJ;nMu&Q zIfw(qKI2QQ#~R|63?agurbGG7(CPIq)f*uBnLJFmuK_+LFV>uzA7$-or)Qi0E`+JI z+xIN;S|Pj7%U<5{se^kxeN4Xh^ytR3h49g{MHc`T$2s#CPzI!rgT#b zOwi)##WCdD-YgYV+S#symK*kQjBL%|#0TTGbg!K>GC@8HEoIA~#r;zAgY-g$iiCNt z4=ek~B4;m!Gm})_#s;UI7bZUAt0lh0O`g<48h4pyg>%(UU|aAH&Z$^_FN1@x0b`F_ zGGLkGQL2sI`1t={VebGP*Y|}DPi)(^ji#|}+jiQhvC-I8W7|%{h7B60u^KhTJL%8; z{_p$EtlU{MYxc9BXP!&QblWmjdTZOge*hQ1Nkbf#jqhXUi8Q)9Uh;PN#B39B`AHDQL29#o zi~S9s4q_%!@a{Ddm*H2~1>i;Iot|Ah)d*7%9f@m#MpO*l+s*MZh&{CLPR=)&JdU%b z)FFEIAkLs38$-MMK~wpr-h$8%D6Y3m$H0JLKR2zM{*Y4Cg=$FlbJS(cW~4vc^k`kg zZ1uj_EB<;Zv?2AP7fV2dxVxm~c}z{x?qu{isb|>;*=N!ArH^=@2pnU5XL(7gx9Y~| z^ka&8()ZI4HnOzp&dXDHi(DY;`H&!(H;K5JjtbEWyyj0?L3-L}T=3G83(0MHvbe|&Z=`hcxvD%k})G22!Hd5bkmS) zC8JirZH32+%hBt2O*W7iTW;)LY_)UKmgp2=1lcB2bxruXQl(MA1&8*5SED;c(&v+`|Rr;b~4 zVAuAJZi)|kYwo?a{5Svq?Bv-aFLU0nICHdcVIqO~dwqv%;aY-K%5rreUC2R_25v$m zm+yNj$CrJtKfngU+~R(F;nD6P)0E}K8M?6&(2{Zq`mN52IjMOv`wc=&Msv)d1$(95>xp-e#$>BnbwMQk`J0>Neg6ZxuBF58p! zbDp}+A;rt)(hykhqNAM6@4J{pDhP(!{^d^d&Nf1)OI{4^3BcNM$Xd)qGLy8uusRPPbWb^s)}sWy`N^H z6id(DM%~jU6)fb7e^V!LTQM`k5>K0?rM3DsT(PqE?lwzfxC#S|=cIKwR%>R(gmuIH zIyP7BjeKhtX%0Y&o0TILnhS9Poty9{bCHZ49CV!=;~*k?g3D{Te$%YXs-2Ca+ds7& zqDfueb~GNFMeikH<@kh{R;FZmN=6_#R7yEi`Zar#8UQJ}+g!kWcPk8Z;NIl>nGfeM zA?<+R(lf;~)zl1W*Z>bt<8bn0`Kw7%$~*4r(@Zn8gdQFd-sj}mb0S!DolD@yXt zK9oOjOZ=Ked}6^Q;zlJ>_NKPOK@So<1#zx;l)*dp&hF;t2@SI{?avGqBhhl(MR^c> z=w}9bBXq@n_>e2410vU+p~gZL5&%Gijd=ilb_(G;b=%_TLgfVEi99m^dQR8{cZXTs zuVbPIAZRZz>=p`5D-&TZ0*+20hC({59}=G*l8A10chCk8%}7Wck*;%#Oj@IdR#RN2 zXBF0yS@%vGV(48NBdO@r7P|OX{c*z}Xk=0VL5&l`fod3_X9^ykj=?_ zeAvHTB7^+p@@UZl=+f=@mrLI3khxlmKV4=*B9jV+^&raiWGjyrk$}2b)7W5OFVp;t zMiz=xNo5i>oJ1djw>N?$6E!?13q)LOPj;mh1sGaFhU9u4N+@vy)s_|8pIW{b1{ci5 zOrNC=tp(k-3xNhWKL}O55#2Zsfv&rMD-1pq1brLXIX3PXH*dDvEct+1uT$tzitOJ4 z(mNP93lIi}Mp?{*ah$|nrBgpiSHmSmX3KL~nxSRBsJ4SfaW#d#42C{V>r3rrc#Q$Q zkLeVM*FwB}Ff;&uq6b+;p`SZbG$FFG!t-$F<2x!*0JwD?PqZ^Oo#2{z7=XB$XuC}W zoNNub7n%eVO$1z@Ib%}BT0I8VCqR^z#ecpCH5{gaDM4H|*P~S%ybn^eKJgq!FbqHf z`i33k6sN#zuuQLh)CL7QZK~DQ3IqFYfino2mo=Ej21S!Cm?cmrwHF#i^Km#A?7E5~ z3l;@{o$gOklFd6!|Aor5JAD**HvGG3zG{O5T7MER5RjgEh=B78gHwh;Z=KKGNKfrx zJ%XR(FwV4%KVn)L7{7~TXTl&w<|1x!cf|djkF*H5F{LY`jy8n&b0Y#tz(-l5E@c0= zD%fl-!8lRK{(~{_yoNutXG)Pl{PJ+HjSsEx#r3&cUK`Bke>a#s0qO1M3#Xsg7r=Sn z)RjkIR=}RN9I7q}9vMIP&c`tJnQqIv`;kn==cy$b!l~CNHVkqUF98-| zG$SD#ZB!@W;aYH%un({s3_{EIqu;;ZFQ*rU=$Q`j;qzdB%H;BdPG9I{^0HUGf-^6B zM+19T3wvjWz#ENn*F?T zJh2k=dA;p3QJWFI7zLdEHMO_Tr6-EM@3;PssS7zzl1Td9Ec!2egizn(jaB7$ASoIT z=+Y9FE|TD-ZEvNo3p;$YBG2wOe{ya898(A%!b-zTPTR%8HQ8VGX2x~5tzK8Mus*xz z>F^n!SR0pff2#C)Qp$9%kRJ(1c?(;;-k~3~kaJx_xBJuL?K}6UA@?W$H#rK@hcYcm zc!_hLs!iq1$23@}Yd7hZ5-#q|82XMv7uLfTm;@+r4NSE)&C?Amqw*YPiJ`?c_NZmn zb=^KeR_F8|{UK~&y=&nIum{s>oz+Qf{>)eaGMy#79_VOXSm z``b&~0@2VWd3qwf`%=N#{lt-&`_pGuVPXB3qC?~kpM;L*b5nlkx7UyyWh=RboF6D$ zl!<+H%$XCfMvhz89rqfJcKn%pd{b^~;682U;u(!oD@Pdwux>U|!BvbVR zB1RzV4zKF*2nI-U!~aFkA>t04e(!(vIQZhokToG39g%DA|GYFiFOXbI`MI^Z4aalW zUxz@Wpke)9`OCWvp}s)!pTw=_ULyQjGSnb_aDXzcN+qyLl(0Qw?}zX6-ZXxRf$cjQ znPieOSeckB7-(2h^O7JM(TqL>0968GPk}G-Yre$~Z!!yCXy=cP)8^oGKXqHlH8DT8 z&X3LY=7L~bHt27?qAv4lj&rbu_{(iYbu#?05c zW(_k(o*+*D=@N`(;`g>}0A_kzKUJ7L(9(SGVgW?bO}KCR%?$FyI7$j}`d2V`Q`~$U zMZ-kPAq|72yozf0X?ialQMOl%`_{flmL5Wkx?oFlCRvhnA@+KgyCXm$FUjUUfmN9K zZkP=6#32YIE5bB9HM2DPcRGbr#bl~bOQ4ASUl@OiI206Ne-!~__5T(TJs?^y)2aW5 z0G3>sX?VI0Li6PU)?)rR9@d!Fjk{-T=o{xj`hZyJos~AfS_6MuRa+ zeIaE^wg+wPH;0;pbv$QSW!gDCIdnEzV4V}%Iym2W?)^+yX&Mprs$^5>7+06w>(_qF z@YH%~R{F@bUp+mIZ3$$YAk~{XNjX@hF~2O?Hx6e<$$y@?R5%D8H{d_MPV4VIbov^R zQ-WYVfX5(Wr0iT9Qp-gUT4CXcyB3JywN$30if(YREFyBsBPa+DDn+DCT<&pSz0piS zMB{b5@YVC>c`bV4y=ddxSkRmuS_t3m#zeObAxAi@ba6*GH*SRwjw)d)p1oVPMC4fH z%_zD4yR@wMr#?-#2zlUv;8ItU&TgJsjESQrVhLIXU5GpNAulZrTu7Ycb>I?7WnHMJ z7>%juN8sA#b_B!86?6pSVz-(NQsj1Io&;V5TyTQ2E9#4V>R+8qjwYvO@|%L+`B^}X z&vKV%L$~wwM)EMRxh+gO`$Ab&5oCu!*AjP!!L;TJ105mA&Wwowa z3bfSMP+Tkj1#w*h3+q=K4{y;YvUwYzLua)PN+*OOWRq{+fTH4&o*i z9{xhD4T zn=}iQhhbGZU8hLqnY+4cKV54S52j;=fEXh{1!<$&aMKR(Bw}n4&kI(Nl*&_`k2K>n z{xBWkkUkQs*c7$&_=1~9s;@pZS{2D*ECLC19*t@E(`0S}(?(UA*|;nPk#_($MA}g9 z>!^Js#{?4C04^eQBl*1J9H$$#O@=TqXd=oQYMDpa%8hEtx&_qq1Gw@*$q^jJJ5-gq zNqSf|10nFn2m`nbJ%^u5G8pDd(2<5znFw6NIHL5MKdm|cLlzg^=DADnt-6N4bTu)} zGrPTB#zAKOCc=!bt=gXV8Tb1@ZYbtb!;c*-r70@g6C(qdJCzvf7a_+_^Ff{bWp9!0 z8YNux2K&kwD>*;VU#)n5R!>TFh0!W#6OAUhJC0v+7xR8J523w zVk2}!Nq07yq%ov`DY=r-M}JCODKv}k#E5rPsR*J<-^of<1`i`lJ<24N;^0+Tyl~_Q zs@?IUWSoh3zeeV&>cL~UC?|EP!jC3eE7ekoVZhMCDvN1F=0@C?OZm~7pNWWLVC-U- zue$lEgh>WO+MR-!@Ml6j~u0~!%Es0^q5I}o4X@*di+KYsvrkZM!8zHVd=z$$l&vOG_?@tRH3Eavw zv!dTBV9?an2GW`{70_^Fy=H3N$7)Og$`HD$<5Ee5DlF70Dw2c$MJYpLdtpSE04i57*1QYEM33tR-i;){8o+yc)8cKtibL|ndkY;OYsNWhEU!drW(BCH0=P{756rDO|~w6@$XFmS8Mobgm(r zs^={lzv2&P<47;(&LA2DGQ)1_2xHQqr)bAHN$9%M01#q4A^{m?TDpDK$Fu|d(Q#K~ zYvQ>?s<~*Y{#o|IuiYN|NZK~u18zn^gwNmg%In55@TZ)t^-BgF}nzj*GzLoVI zykOsfsJb>9MW#Dyu+s3VL98S3rf$fZ<7a$S#8^<6;vXAMeZ=s$cYYA4AK!ZPN>Sk3 zvobPmo?U(bwX41Rxj>Sd)aYKv$4n(>DHzMUF4Yos!43!V($;RtTiT<32+lL-IzncN+{- zlKXn@h&aiyWu&DesDJVXrt8SY2i=Qo(@|B^iJGoLu+Kk8v?I+V|2QN%XWn{w$J-${3bSbt1-ij{^TAJ~w))!>6>_ z6Kc-YS)Pl1o(VomZ_`FZAvk5v&|CzZ36ZIw6=gazQPCSgO^siuq7k!*(qr8(xujhjBCP9 z&&<;-54e^AcsKhD11^fZ3=U`{Axzcm&JM#k%hB@UNo`~9eD_Ac-}+GnUJ(`7+vOr6 zsp5UK?lgxlUixO9BJ8($^>IIzY|7C`;_AMRloT zyjRd#tz?r~x8m-(2>9+dz=>P-?{0*e4Q#@)Eu+qz#KOfd<*C z-N5M{lZSOgfta$HFlGxB-=54yi!Y?lez$=L++vR)=TNgO5w}1u&nt`PwtOZjKTKO! z!vuhi1paWu7oPm(9LiKz82H`LHv>d%xV~ov)Z-d@+)Q(KGbCXGemNx1hTyH~kV4GH z7QqyffXG|0Eu_@?cN1E#+-g9I!vu(*4SB^;d;vvMM8a_Wjzf&P1J3Qh_f;sq%qBji zpNaVVZ$&t{{a!6!zdcoSD}o)GVA-cz@^(l#`WEaKXA6lTp&YmjA|2uD@yJ&uP1ctQ zr0+7H&GXA2=LY&~EMz}ZZz1KPeM-QYsTW`*IKM2RjfQr?Jck=TLZ#z}DD8`eXu>qX_$ijJR7Lui&m}&$Wfr!?A^AKF$OLY+3ZVvua$f4@5jz zYVWt&;qG^jexL2$o60hqDHE-I-YJ~G3&)(D%-*Un10f&u&x#r|p_{Uru9J!^H7Y{N;Wcoo>gXLSRznFUqd#1Gr8p+zd|$M(So$e(o|pv=e(F5Avcp*e2yK-C zgGpJ+_E&XHCy*~*@}C8EDb8XKeryE3rrBfDP&9eAOmpsu4~yX+KA+<^n~M3(t}qpQ z9JY2Hod<%*yS&fZ1;P}+!W91jqbFZ{r#wdRYNwOAYlRG6K;yF3y0jStgvOC~A$n)b zbPrXmM;j4=T9~Xak zdsJj$%e#bT?J6D1eP;7v?y)+pnq7g!++criMZC$r%oZCV?;@3ViC3JKJIwPc1;KZA zTnPg4Z=kGR%dHq0b#U&9C+GCl&4CQaM?;`Uz2a5`dLY`2V4qc!1u;g}Zv0^;mpq%0 znLPJ|V|s>Lx`%X150DsqF>vR-bJyc&C^I_H%v~RziMXRlsAEk?GInNexh?}hn_S6xvkq5SdZyH-*zXKfSM+yL5s?Zu}n zqS+r`2;a=Z;>(lFO)-gI*ZB3J^92-nL(WKY4XT~L7F=1ko>qj6=Y+OgSrTVzqWCX_SSgkU24`emS?yXBKU%BQ`^6s! zY&Il9Jgu3WYCJUXRz{sXMD|KNR$wlQ^4r77@!aOv(mYL4V)NHY22>SLODN6FNNiWWo?ZNYAiD+@x z6u`r7Ugni756)mh7y;ZkTnAdlgo0uE{oXk+sf{4zQwoG;a(PnYxoJlAn zmJA7={yHHt=q*F+x+45}vdt4%wzVqi(sHd&nTm-ELC(r8Q`|d+irQonxQ{Crj7igE z1}Cfw_a(q|Q5*@FF0y(;vm@;k8jMPz5BZF*EnGI{=4L|EQLRMAzn#MzmC{H=vpAj{ zI)=unhsIA#7_(AIO8Ao#C!1%39}hK^bF2+jfdm|2I(xbwsXr`>EqbuVR#D!(z!AL` zf^nWqh=)alhlZv~8%SwRGx!fmqN4c78uFs9I5<0^g&$ym2M=nhCuR99>T6O?jgjtf z;8~){v#FnWoY$l%-V{ya=n1M{{XmH59bFq0C1k=YUbJ2K9wP$q1uT z_~RCAP0oFuzKcto(4nFVtuw zR+~7^+gFq>c*8WqrSVF!Dg@heG5L-Ioq3Cb@&#Ia@JpbGm%j*jY}9WjlEU!)Nq}+( zk_Q84#ECu23sg)&mb^IFVmNL#V@8Cyn7CM4Tu9z6=;wDw<#?&k#ym|Sc?l!kcu~JQ z$%**cHq~}5XX!W#tnCIzl3^>N%j|&6h*lhv_sk|A$uGw&evvA>MDoiF$fU)A;Q1;f zpQUQKy{2eOT)asiVVv?uK$hTN`6K}meg))HG8mAL)IvrO+dIDKw5df=XKi3R@pMYj zAv(i4mze^iBylmqd?78JRm+KvH*9qwIU66~Ixb=Dm-+mm-LrzEC{$*ywFHhay*oBG zvW_zSbma>bJn4z^Q%B19^fZ7iIq%IQ5fcG$thJ4h4V$A^=1a@@sb{G@qko!B8>ObD zkVWk)*nwgOKu^~LxCUwnB5dWGXsb^a1A>rUh1&OQ}>q<0> zLtjeiAq8THT?dOvTeQ_=iHR2&qDHk6;nUB=$~Pp7$-iBAzZ8{`R#`qtUl$F;A?k@jidpe{GNwD~?IlGx z5Vg_TUd-WTR50)tYnst$)7s{P@5g!3t@RfJPJ@7AYNbq4kCD<`;P{IH&*sQugvi7R z0;4yPnUi~g@fzJ)NQjtLl2qDbq!Pes@Ol+^=7jp|G_j^>Ad)FERDb-Wg{I3OBxdP( z9JHpX-c}xcWT7M& zC0*Z;N^DXar??ybOC3(Yt2zZ{J*xY4`T ziw#>g&0(6HWWUoKkk_oqQQES(-2>`A0PL=~;^FfY*2$J5Mv~1_PmVDz?!I()xeR<( zV9G>zmy3{O%n!>HFbxo;p`+!zoL(rleKcZcP7aG;rZME_^~3ql_I&c4pTm&BIt|1V znQ~{xyQNXRC?TAtxhK3e78X3frj)1l7IIT-6C+dzA=cxS;k%l7 z(i7b%9)?DCXS*yZ+65bJ;hXOaS3FKS2}Sfah<%(WRJho?#KB9-W*uD52Aw1=Kjq*3 zz^MH`est2m5#@ZNtWk}*SGWhCm`s5kh&7O=5F5eo_!wBQu!x1-PFL#`ylXU-c|VTu zhAIxzGdGy>-Z2w`X|_E&HXR*)S7hAWJv!>1l7i@XmOy9^0y{(LO(r)WGVW*v6%HB? zB8tZoQ3et`>tr^X5Ax-x%=g6-@L4Y^Eeg!c%;RcHASA7pa>hQL3nJDvNl31JgyF>uGO2Ya>5j)} z0kxK!?2gG(KwZ9;Ck|Jsw1QBm8fksYJX|xB=@W>jw7M{)e6+_kI^pRTN250ufCxTl1Z)Cmf z@_pOn@!%t_POvacfm+^Pu;Eql2VXDHS)=2R4^1JtxHd2Pr806XI$IFp$@zm#Be$*7 z-8v6=`&61A2pa`>(h=NkYKc3h65-YD-^gc*=jAw*p1FgxFl}Iu9Q6f$cY?!~#~yRk zeT&?15rNwnFaBFX+$ajbz`o6|6;fkix#5${_hoOOYBt`@xS zD}phU%FMiLVfIACxpeS&*&+=vy2>XcYQuTyt!qjK(~*?hjFsBoT-6PaeZ2al&v{~2 zn=;sWJTu1VrL|=io?z$n$We7{ktyQqdeLYqdzyD&{@EAVZEQvEM$WFtU}P1N^Td1& z6=Lk&IvJ4}-990JZL#RgxOM`Ap9-wNa&QDr-x_%$^HM&8!|Nfssz0;N^C*ur`S$5- zs3k4jcV}x2I8Whw3C484x0BBhsT3F~yD4K@bPY@`F^4o=JwgjYi^T~Cg-{`+Zeg2+ zPPvzQl&AHbaKTso?z=4))b$shD|(KF4QlBxJMKYiyj~~E@iEg+C$bI{GlHoBB)a`rEL=$(NSoJLK?;p@w@~BT=ii2P(>@Y17&{F4u=MfeOErJ`XK`M#8$=kV} zM9%s#pqwT8>!_V)*s|&{@b>3|iL5&2O1qz#cWm(XPq0~VCG$i}Y|Pp2B9!S|-hdy3 zi8T!d>}H@~p(2rPEe{Rb8)&M3`I64bWB%#cX9$v1x=1yO1uH_ZK*4c)Id|Kn{b;Ed zTSn~4latnx#GF07l04H=3E8A9@LW2>P%5RIem~-4RC)=>Vny#4+NtKvcMvDzr4AYa zbH%lK{=qy4fjag>pWsz;So15IO|3i8;4hy#V(;|*dEG(yE=A0@)y_bRH-3IQhIaGp zM5wMR)#c)A=|B1uq2UR`mSf`K#)6kBrtYMDF~ZH@k$33`S~5JMqu$}R)1zyaX`elK zaIm>N+mCc~ep&pP$>2o^i}QLm-pZYe7ORa3Z6;^X6sbRUEzZczqz^%G3b0@n4f6ty z{I;2;ojae>N=@jfC^~FrIE%`%hTbyEUTO-_a=07zoAI*?%S&TRx50RK4!^xDeE8$! z1tqFfc*Q6lv&Wm*RjZ3+fhPS8RYS+^-sDUEWR=eqHCql4piC3BKXyKZe{p+E>7qO; z_LQpOg#Hq*6Xtkyv_PD9Prcw~@c;+eHo}dYF z-vFCtDS}$bd3R9m8wJ#7(mOuyZUg1BuScPTAP-?qvQO9AJIWpi#Ot3BuRotOdIdfY z&f{)?-XoIFNt`s&Y}qVS>$SjELt}YBOSVi__cZOmqUh2jwJ?N|bc=#*kF}zh5u#tj zMav)tLdDOM6Qtkfd&#??EtFm-^K(ax)q2}z%l73$XxTyc*m)3rlBWh>0mavkBRp~<}!nWe6gvnW`$OSihwm%Xgm;{B}Qe=-!^BFk*RA?o~|yKlgxbQMEbFW3DYzmib#1r z<)~p527M9A7&jNCfuafyhLF{pT&M-McOZT)bK-I@QPXc39xC7N1HPb^@yGeD4|m^} zQzm=MC7ATz-tT<<{<)g)Nf*2u=E({5dG~?o+2@|-_UP`tL$-G#U^t;?-S_^u*`Qn3 z4_Rv9s5hAH_+}q)tf)Y1&_ID(N0A4HwMFjQPvo*M z0>K#YGpM}xRF=eF%nxyfz%ggUSSPH7#iN9#@u)6b@^f-X%Z?|maisE0Ud1AyIT2fG zS?=*1v~`gjX3^iVTd~5PHpnwUa2J*v1ZNkbeFr?{N_C4W# z`nBp)WKzR+)GNYb?~2Fg@jnN{e_|m;zrr8zAh~7Cu%=y&Z*&qewTmk)7D?^#3XWZl zogp_(ICaz8hZyuUT9*sp-|}KrAzu8HugPDwSL2!dG5C2atSu%^vrc%m-(&$l%G$gS z)&)bUGemX-I)C6@8Hu@P#^L)#0rl=n({`C<+oUJ?rnrT5{-++^)sO}wqq^dUWnsa# zayJ^6v(V`|&dq^!aaR9HuWud-Z+=)=loT^mNSFUG^<0QJ^}TFgopzhlab3nU5`H(B zn7gd&;HR5DbTGD5Fm1`V9m$mMPuFezEipDbd*q>_` zy-gtD^Aog{NTU)ZzIMIIws&UQ`WWK#O`QFMn@fH%Sf#CYvdwj771|7BRHWSSY8ba} zQWN7j!lyFM!%>RzMm4Li+H=}TH)@glBgmVU?7~gV;vUAdjc)8FwC%2>$jfe7V9exb zO<+ZChf2J>sbgSTZqGfY{-u+wYD{OlpvgWz97FUOF>8m@wY^E}m`znp zR0q_h(trVkpUwnC9!iIJQmD2jZDqFAWREvk3^h58Hd%w32FKT4>=&fJy5~Z}E!rl? z29JLe)}m%kwFtXL!6`9bQ?;-2d*dL#)Kz(tQftMb{rvj7WKt9xo||>simV_~y0FF&k~#Rh4;_*! zCZBvz^yNDT#w0mn@61wpK@fTqkET zq=HN%`)Eo{4o{dRX3P}QWYDUR(l8C0ldQ2jOJQ;rmr z%VruqjB^b4Q?=ghZ~L!i`|&Om1Ap)!f!Qk>@YTf4#nr)1)6SO3%GJ#7*Uw&MR4r^D zGdkeLM{Fd1LSGT}s zm^uf2UHVNI|LD%wPM{ttpf1Ay==x)G*}v8O+F3SwvKE-1BSUUl=V@M} zf-VU=l9b0z0{6E=Ym<>&>&jOF!(m+`c)4-0^F=Ce5u%KlF8NfJ?9#}#5StKYt=1{MBaooY#&4L3wxJ!>ggf+SYAt(2?=H@w)4~(ze>0iJc3HVipkQO5aP0pGf0eB0?BM9~t5vgNYwZJ>(Z$|(^<8X@ zu;hYUqK8QWXl%Yp>k+v7QP`3#i$<3{d&%)~n0$U;<$C({4ZgrmkiB8W6fM;>B{{Te z`J23u%#LmjcCumKDqemo2%gqJiqE9nuJ6{JK3C2{G9r>+5bmT+obRu6Sd2H3N!oLH zLhkhIinq2<&BK9JPLJt znM`{7Ta^|&6&h{>oRbL$W_N$r9QJN@#%9jIS((@DZbEa_ev2EsbG=wFPF%M!Jb@jY zy&+#vT`yXktnm^+iCuG;Gt9!gaw>CTGC^07B~TK&so#)wG{t@E#@hmWY z4KWPy%0A`sjWWy83SAh5 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 G_kRE(@v;*D literal 0 HcmV?d00001 diff --git a/docs/references.bib b/docs/references.bib new file mode 100644 index 0000000..4b394fe --- /dev/null +++ b/docs/references.bib @@ -0,0 +1,151 @@ +% MicrOBU standards and source references. +% Collected for the technical documentation and any later publication. +% Keep entry keys stable once cited. + +@techreport{etsi_en_302_637_2, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 2: Specification of Cooperative Awareness Basic Service}, + institution = {European Telecommunications Standards Institute}, + type = {{EN}}, + number = {302 637-2}, + note = {CAM encode and decode}, +} + +@techreport{etsi_en_302_637_3, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 3: Specifications of Decentralized Environmental Notification Basic Service}, + institution = {European Telecommunications Standards Institute}, + type = {{EN}}, + number = {302 637-3}, + note = {DENM decode and the HLN-SV transmit profile}, +} + +@techreport{etsi_ts_103_301, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Facilities layer protocols and communication requirements for infrastructure services}, + institution = {European Telecommunications Standards Institute}, + type = {{TS}}, + number = {103 301}, + note = {SPATEM and MAPEM}, +} + +@techreport{sae_j2735, + author = {{SAE International}}, + title = {V2X Communications Message Set Dictionary}, + institution = {SAE International}, + type = {Standard}, + number = {J2735}, + note = {SPATEM and MAPEM message content}, +} + +@techreport{etsi_ts_102_894_2, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Users and applications requirements; Part 2: Applications and facilities layer common data dictionary}, + institution = {European Telecommunications Standards Institute}, + type = {{TS}}, + number = {102 894-2}, + note = {Common data dictionary for all messages}, +} + +@techreport{etsi_en_302_636_4_1, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Vehicular Communications; GeoNetworking; Part 4: Geographical addressing and forwarding for point-to-point and point-to-multipoint communications; Sub-part 1: Media-Independent Functionality}, + institution = {European Telecommunications Standards Institute}, + type = {{EN}}, + number = {302 636-4-1}, + note = {GeoNetworking Basic, Common and SHB headers; verified field by field}, +} + +@techreport{etsi_en_302_636_5_1, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Vehicular Communications; GeoNetworking; Part 5: Transport Protocols; Sub-part 1: Basic Transport Protocol}, + institution = {European Telecommunications Standards Institute}, + type = {{EN}}, + number = {302 636-5-1}, + note = {BTP-B header}, +} + +@techreport{etsi_ts_103_248, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); GeoNetworking; Port Numbers for the Basic Transport Protocol (BTP)}, + institution = {European Telecommunications Standards Institute}, + type = {{TS}}, + number = {103 248}, + note = {BTP destination ports 2001, 2002, 2003, 2004}, +} + +@techreport{etsi_ts_103_097, + author = {{ETSI}}, + title = {Intelligent Transport Systems (ITS); Security; Security header and certificate formats}, + institution = {European Telecommunications Standards Institute}, + type = {{TS}}, + number = {103 097}, + note = {Message signing; not implemented in this project}, +} + +@techreport{ieee_802_11_ocb, + author = {{IEEE}}, + title = {IEEE Standard for Information Technology; Telecommunications and Information Exchange between Systems; Local and Metropolitan Area Networks; Specific Requirements; Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications}, + institution = {Institute of Electrical and Electronics Engineers}, + type = {Standard}, + number = {802.11}, + note = {Operation outside the context of a BSS (OCB), the frame layer used by ITS-G5}, +} + +@techreport{c2ccc_wp_2324, + author = {{Car 2 Car Communication Consortium}}, + title = {Bicycle Safety Use Cases}, + institution = {Car 2 Car Communication Consortium}, + type = {White Paper}, + number = {C2CCC\_WP\_2324}, + version = {1.0}, + year = {2026}, + month = {5}, + note = {Source of the five in-scope use cases: IMA-B, IMA-S, RTW-B, LTW-B, SMVA/BCW-B}, +} + +@techreport{microbu_requirements_v15, + author = {{HAW Hamburg}}, + title = {V2X MicrOBU Android App Requirements}, + institution = {HAW Hamburg, Urban Mobility Lab}, + version = {15}, + note = {The requirements baseline, chapters 0 to 13, 37 pages}, +} + +@manual{considerit_mqtt_api_v6, + author = {{consider it GmbH}}, + title = {CiT MQTT API Documentation}, + version = {6}, + year = {2025}, + month = {2}, + note = {The MQTT API used on the CiT One hardware path}, +} + +@manual{considerit_tx_use_cases_v4, + author = {{consider it GmbH}}, + title = {CiT Transmit Use Cases}, + version = {4}, + year = {2025}, + month = {2}, + note = {Transmit use case definitions including HLN-SV, causeCode 94}, +} + +@misc{considerit_cits_parser, + author = {{consider it GmbH}}, + title = {{C-ITS-Parser}}, + howpublished = {\url{https://github.com/consider-it/C-ITS-Parser}}, + note = {Commit f457426efc2486fac49a02fc9a1c8c7762d160e9, MIT licensed. Source of the seven vendored ASN.1 modules in \texttt{asn1/}}, +} + +@misc{asn1tools, + title = {{asn1tools}}, + howpublished = {Python package, version 0.167.0}, + note = {The independent ASN.1 implementation used as the verification oracle}, +} + +@misc{its_g5_receiver_firmware_txenabled, + author = {{opentrafficmap}}, + title = {{its-g5-receiver-firmware\_txenabled}}, + howpublished = {\url{https://codeberg.org/opentrafficmap/its-g5-receiver-firmware_txenabled}}, + note = {Transmit-enabled fork of the receiver firmware; source of the raw transmit bypass in \texttt{tx\_custom.c}}, +}