From fa2243ddaa63e23891ffee521dd6ba690614f91e Mon Sep 17 00:00:00 2001 From: pmodular <282521242+pmodular@users.noreply.github.com> Date: Wed, 7 Oct 2026 00:57:29 +0900 Subject: [PATCH] webchannel/benchmark: more runs, draw histogram, etc. --- .../artifacts.md | 22 + .../connection-reuse-audit.md | 18 + .../delay-0ms/artifacts.md | 122 + .../delay-0ms/connection-reuse-audit.md | 234 + .../delay-0ms/histograms/histogram-data.json | 1186 +++++ .../delay-0ms/histograms/input-manifest.json | 1602 ++++++ .../delay-0ms/histograms/pair-differences.csv | 51 + .../histograms/ttfa-on-minus-off.png | Bin 0 -> 43830 bytes .../histograms/ttfa-on-minus-off.svg | 4364 ++++++++++++++++ .../histograms/ttfd-on-minus-off.png | Bin 0 -> 45640 bytes .../histograms/ttfd-on-minus-off.svg | 4262 ++++++++++++++++ .../delay-0ms/report.md | 50 + .../delay-0ms/run-metadata.json | 15 + .../delay-100ms/artifacts.md | 122 + .../delay-100ms/connection-reuse-audit.md | 234 + .../histograms/histogram-data.json | 1135 +++++ .../histograms/input-manifest.json | 1602 ++++++ .../histograms/pair-differences.csv | 51 + .../histograms/ttfa-on-minus-off.png | Bin 0 -> 47012 bytes .../histograms/ttfa-on-minus-off.svg | 4377 ++++++++++++++++ .../histograms/ttfd-on-minus-off.png | Bin 0 -> 45675 bytes .../histograms/ttfd-on-minus-off.svg | 4163 +++++++++++++++ .../delay-100ms/report.md | 50 + .../delay-100ms/run-metadata.json | 15 + .../delay-200ms/artifacts.md | 122 + .../delay-200ms/connection-reuse-audit.md | 234 + .../histograms/histogram-data.json | 1137 +++++ .../histograms/input-manifest.json | 1602 ++++++ .../histograms/pair-differences.csv | 51 + .../histograms/ttfa-on-minus-off.png | Bin 0 -> 50321 bytes .../histograms/ttfa-on-minus-off.svg | 4468 +++++++++++++++++ .../histograms/ttfd-on-minus-off.png | Bin 0 -> 49546 bytes .../histograms/ttfd-on-minus-off.svg | 4229 ++++++++++++++++ .../delay-200ms/report.md | 50 + .../delay-200ms/run-metadata.json | 15 + .../delay-50ms/artifacts.md | 122 + .../delay-50ms/connection-reuse-audit.md | 234 + .../delay-50ms/histograms/histogram-data.json | 1144 +++++ .../delay-50ms/histograms/input-manifest.json | 1602 ++++++ .../histograms/pair-differences.csv | 51 + .../histograms/ttfa-on-minus-off.png | Bin 0 -> 47223 bytes .../histograms/ttfa-on-minus-off.svg | 4391 ++++++++++++++++ .../histograms/ttfd-on-minus-off.png | Bin 0 -> 47811 bytes .../histograms/ttfd-on-minus-off.svg | 4253 ++++++++++++++++ .../delay-50ms/report.md | 50 + .../delay-50ms/run-metadata.json | 15 + .../delay-200ms-pair-30/README.md | 7 + .../delay-50ms-pair-27-reconnect/README.md | 7 + .../delay-50ms-pair-27/README.md | 7 + .../report.md | 86 + .../run-metadata.json | 80 + webchannel/benchmark/lens/AGENTS.md | 4 + webchannel/benchmark/lens/README.md | 19 + .../benchmark/lens/run-bounded-command.py | 41 + .../benchmark/lens/run-cold-benchmark.sh | 66 +- .../benchmark/lens/run-omnient-delay-sweep.sh | 31 + .../lens/summarize-cold-benchmark.py | 221 +- .../benchmark/lens/summarize-delay-sweep.py | 121 + .../objc/demo/WebChanneliOSDemo/README.md | 8 + 59 files changed, 48104 insertions(+), 39 deletions(-) create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/artifacts.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/connection-reuse-audit.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/artifacts.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/connection-reuse-audit.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/histogram-data.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/input-manifest.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/pair-differences.csv create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/report.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/run-metadata.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/artifacts.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/connection-reuse-audit.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/histogram-data.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/input-manifest.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/pair-differences.csv create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfa-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfa-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfd-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfd-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/report.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/run-metadata.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/artifacts.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/connection-reuse-audit.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/histogram-data.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/input-manifest.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/pair-differences.csv create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/report.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/run-metadata.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/artifacts.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/connection-reuse-audit.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/histogram-data.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/input-manifest.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/pair-differences.csv create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfd-on-minus-off.png create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfd-on-minus-off.svg create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/report.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/run-metadata.json create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-200ms-pair-30/README.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27/README.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/report.md create mode 100644 webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/run-metadata.json create mode 100644 webchannel/benchmark/lens/run-bounded-command.py create mode 100644 webchannel/benchmark/lens/run-omnient-delay-sweep.sh create mode 100644 webchannel/benchmark/lens/summarize-delay-sweep.py diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/artifacts.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/artifacts.md new file mode 100644 index 0000000..8075a57 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/artifacts.md @@ -0,0 +1,22 @@ +# Omnient delay-sweep artifacts + +[Report](report.md) · [Connection reuse audit](connection-reuse-audit.md) + +Each delay retains every attempted OFF/ON trial. Raw CSV/JSON, logs, result bundles, histogram bins, paired differences, and selection decisions are linked below. + +| M1 delay (ms) | Artifacts | Transport audit | Histogram input and bins | Paired differences | +|---:|---|---|---|---| +| 0 | [Artifacts](delay-0ms/artifacts.md) | [Audit](delay-0ms/connection-reuse-audit.md) | [JSON](delay-0ms/histograms/histogram-data.json) | [CSV](delay-0ms/histograms/pair-differences.csv) | +| 50 | [Artifacts](delay-50ms/artifacts.md) | [Audit](delay-50ms/connection-reuse-audit.md) | [JSON](delay-50ms/histograms/histogram-data.json) | [CSV](delay-50ms/histograms/pair-differences.csv) | +| 100 | [Artifacts](delay-100ms/artifacts.md) | [Audit](delay-100ms/connection-reuse-audit.md) | [JSON](delay-100ms/histograms/histogram-data.json) | [CSV](delay-100ms/histograms/pair-differences.csv) | +| 200 | [Artifacts](delay-200ms/artifacts.md) | [Audit](delay-200ms/connection-reuse-audit.md) | [JSON](delay-200ms/histograms/histogram-data.json) | [CSV](delay-200ms/histograms/pair-differences.csv) | + +## Infrastructure interruptions + +- [delay-200ms-pair-30](infrastructure-attempts/delay-200ms-pair-30/README.md) +- [delay-50ms-pair-27](infrastructure-attempts/delay-50ms-pair-27/README.md) +- [delay-50ms-pair-27-reconnect](infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md) + +Histogram PNG and SVG files are generated with matplotlib. Each metric shares 10 ms bin edges across all delay settings. Exact bin counts, renderer version, generator SHA-256, and input SHA-256 manifests are saved with each delay's evidence. + +[Build log](logs/build.log) · [Successful trust preflight](logs/trust-preflight.log). Setup and preflight trials are not included in the measurement pairs. diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/connection-reuse-audit.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/connection-reuse-audit.md new file mode 100644 index 0000000..8ccd364 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/connection-reuse-audit.md @@ -0,0 +1,18 @@ +# Omnient delay-sweep connection reuse audit + +[Report](report.md) · [Artifacts](artifacts.md) + +Per-delay audits retain every trial's HTTP/2 connection evidence, initial early POST status, and M1/M3 dispatch. HTTP 400 confirms rejection; client evidence does not identify the server-side cause. + +- [0 ms connection reuse audit](delay-0ms/connection-reuse-audit.md) +- [50 ms connection reuse audit](delay-50ms/connection-reuse-audit.md) +- [100 ms connection reuse audit](delay-100ms/connection-reuse-audit.md) +- [200 ms connection reuse audit](delay-200ms/connection-reuse-audit.md) + +## Infrastructure interruptions + +Install/launch failures produced no paired benchmark measurement. Their files are retained separately; completed measurement pairs excluded by the histogram rules were not repeated. The interrupted pair was restarted as adjacent OFF/ON trials after reconnecting. + +- [delay-200ms-pair-30](infrastructure-attempts/delay-200ms-pair-30/README.md) +- [delay-50ms-pair-27](infrastructure-attempts/delay-50ms-pair-27/README.md) +- [delay-50ms-pair-27-reconnect](infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/artifacts.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/artifacts.md new file mode 100644 index 0000000..a6aeaaa --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/artifacts.md @@ -0,0 +1,122 @@ +# Lens benchmark artifacts — 2026-10-12 physical-device cold-connection run + +[Report](report.md) · [Transport audit](connection-reuse-audit.md) · [Run metadata](run-metadata.json) + +Each trial has an Xcode log and exported attachments. Current runs keep logs in `logs/`, result bundles in `xcresults/`, and exported attachments in `attachments/`; older runs may keep these at the run root. The exported JSON and CSV preserve every attempted trial, including pairs omitted from the report tables. CSV values retain their recorded precision. + +| Scenario | Run # | Setting | Raw CSV | Raw JSON | Xcode log | Export log | Result bundle | Export manifest | +|---|---:|:---:|---|---|---|---|---|---| +| omnient | 1 | OFF | [CSV](attachments/omnient-1-off-attachments/6C1C4C43-30EE-4F55-9B19-CF7CFA808F91.csv) | [JSON](attachments/omnient-1-off-attachments/9E01CB8C-DAAB-431C-9717-D2DD0C504AE2.json) | [Log](logs/omnient-1-off.log) | [Export log](logs/omnient-1-off-export.log) | [xcresult](xcresults/omnient-1-off.xcresult) | [Manifest](attachments/omnient-1-off-attachments/manifest.json) | +| omnient | 1 | ON | [CSV](attachments/omnient-1-on-attachments/B42288E5-EEE2-472F-B591-9ECEC25C0D49.csv) | [JSON](attachments/omnient-1-on-attachments/2D5D4C3E-D16D-47E4-8B24-CCE2B417B960.json) | [Log](logs/omnient-1-on.log) | [Export log](logs/omnient-1-on-export.log) | [xcresult](xcresults/omnient-1-on.xcresult) | [Manifest](attachments/omnient-1-on-attachments/manifest.json) | +| omnient | 2 | OFF | [CSV](attachments/omnient-2-off-attachments/F71C8532-0819-47BF-A869-A6F34065FE72.csv) | [JSON](attachments/omnient-2-off-attachments/7D68E2AF-1800-4265-822B-F882C716FBC8.json) | [Log](logs/omnient-2-off.log) | [Export log](logs/omnient-2-off-export.log) | [xcresult](xcresults/omnient-2-off.xcresult) | [Manifest](attachments/omnient-2-off-attachments/manifest.json) | +| omnient | 2 | ON | [CSV](attachments/omnient-2-on-attachments/7515F939-3E1F-4A6D-AF98-051C83F44070.csv) | [JSON](attachments/omnient-2-on-attachments/76709039-ED33-4264-A2D9-D4E30D027408.json) | [Log](logs/omnient-2-on.log) | [Export log](logs/omnient-2-on-export.log) | [xcresult](xcresults/omnient-2-on.xcresult) | [Manifest](attachments/omnient-2-on-attachments/manifest.json) | +| omnient | 3 | OFF | [CSV](attachments/omnient-3-off-attachments/FF33C59F-6113-4196-ABC3-44F68B142BE7.csv) | [JSON](attachments/omnient-3-off-attachments/BFEC511E-7395-449E-AE82-755980099749.json) | [Log](logs/omnient-3-off.log) | [Export log](logs/omnient-3-off-export.log) | [xcresult](xcresults/omnient-3-off.xcresult) | [Manifest](attachments/omnient-3-off-attachments/manifest.json) | +| omnient | 3 | ON | [CSV](attachments/omnient-3-on-attachments/3DB6F26F-EF8F-4A32-BFCD-98E8930DB809.csv) | [JSON](attachments/omnient-3-on-attachments/8535910F-7DB0-4D0B-B2D9-0867F1784A75.json) | [Log](logs/omnient-3-on.log) | [Export log](logs/omnient-3-on-export.log) | [xcresult](xcresults/omnient-3-on.xcresult) | [Manifest](attachments/omnient-3-on-attachments/manifest.json) | +| omnient | 4 | OFF | [CSV](attachments/omnient-4-off-attachments/4D57A70E-4719-41AC-A222-FBC1DD0F29E8.csv) | [JSON](attachments/omnient-4-off-attachments/A1CD9359-36B9-4644-97B5-59083902967D.json) | [Log](logs/omnient-4-off.log) | [Export log](logs/omnient-4-off-export.log) | [xcresult](xcresults/omnient-4-off.xcresult) | [Manifest](attachments/omnient-4-off-attachments/manifest.json) | +| omnient | 4 | ON | [CSV](attachments/omnient-4-on-attachments/8ACD2068-4DA6-469E-B224-619CEE7239E8.csv) | [JSON](attachments/omnient-4-on-attachments/2CEC77EB-4F2D-49EA-8088-3461EC933B96.json) | [Log](logs/omnient-4-on.log) | [Export log](logs/omnient-4-on-export.log) | [xcresult](xcresults/omnient-4-on.xcresult) | [Manifest](attachments/omnient-4-on-attachments/manifest.json) | +| omnient | 5 | OFF | [CSV](attachments/omnient-5-off-attachments/B518430B-9A54-4CB3-BA6B-491F7DA427FA.csv) | [JSON](attachments/omnient-5-off-attachments/A9C02429-5A92-4BE2-817B-A62C53524267.json) | [Log](logs/omnient-5-off.log) | [Export log](logs/omnient-5-off-export.log) | [xcresult](xcresults/omnient-5-off.xcresult) | [Manifest](attachments/omnient-5-off-attachments/manifest.json) | +| omnient | 5 | ON | [CSV](attachments/omnient-5-on-attachments/84186A51-123B-41D2-9EF0-B24CE9DBA6B8.csv) | [JSON](attachments/omnient-5-on-attachments/C9C8BFD0-E128-42FD-99DE-9EE3ED7E258D.json) | [Log](logs/omnient-5-on.log) | [Export log](logs/omnient-5-on-export.log) | [xcresult](xcresults/omnient-5-on.xcresult) | [Manifest](attachments/omnient-5-on-attachments/manifest.json) | +| omnient | 6 | OFF | [CSV](attachments/omnient-6-off-attachments/C5DF091B-0A67-4730-87F1-53FB21680EA5.csv) | [JSON](attachments/omnient-6-off-attachments/D864AEF7-8DC4-414A-8655-E15024B05EE4.json) | [Log](logs/omnient-6-off.log) | [Export log](logs/omnient-6-off-export.log) | [xcresult](xcresults/omnient-6-off.xcresult) | [Manifest](attachments/omnient-6-off-attachments/manifest.json) | +| omnient | 6 | ON | [CSV](attachments/omnient-6-on-attachments/EBA8EEE5-3784-4FF2-8DAF-B59F16ECE64A.csv) | [JSON](attachments/omnient-6-on-attachments/56106984-2B73-434E-B25F-F21EAD2E96D9.json) | [Log](logs/omnient-6-on.log) | [Export log](logs/omnient-6-on-export.log) | [xcresult](xcresults/omnient-6-on.xcresult) | [Manifest](attachments/omnient-6-on-attachments/manifest.json) | +| omnient | 7 | OFF | [CSV](attachments/omnient-7-off-attachments/343B67B8-F5CE-4C40-9A62-2FEDAAF9B441.csv) | [JSON](attachments/omnient-7-off-attachments/2FA7364C-69A7-4C5A-88AE-B5EBDF231649.json) | [Log](logs/omnient-7-off.log) | [Export log](logs/omnient-7-off-export.log) | [xcresult](xcresults/omnient-7-off.xcresult) | [Manifest](attachments/omnient-7-off-attachments/manifest.json) | +| omnient | 7 | ON | [CSV](attachments/omnient-7-on-attachments/63A7B855-2E21-4B17-A987-E24205A3B262.csv) | [JSON](attachments/omnient-7-on-attachments/BC84C103-DBAA-45E4-BB8B-2449469EEAED.json) | [Log](logs/omnient-7-on.log) | [Export log](logs/omnient-7-on-export.log) | [xcresult](xcresults/omnient-7-on.xcresult) | [Manifest](attachments/omnient-7-on-attachments/manifest.json) | +| omnient | 8 | OFF | [CSV](attachments/omnient-8-off-attachments/CF5F9251-2855-42C7-B8DD-B065161FE7FE.csv) | [JSON](attachments/omnient-8-off-attachments/738D46B6-A1C1-4540-8715-0A70819D5797.json) | [Log](logs/omnient-8-off.log) | [Export log](logs/omnient-8-off-export.log) | [xcresult](xcresults/omnient-8-off.xcresult) | [Manifest](attachments/omnient-8-off-attachments/manifest.json) | +| omnient | 8 | ON | [CSV](attachments/omnient-8-on-attachments/D1634EDA-8E2E-4024-BCC1-3BF76E4A9267.csv) | [JSON](attachments/omnient-8-on-attachments/1C315484-8290-4070-978C-DBA35F34F6F9.json) | [Log](logs/omnient-8-on.log) | [Export log](logs/omnient-8-on-export.log) | [xcresult](xcresults/omnient-8-on.xcresult) | [Manifest](attachments/omnient-8-on-attachments/manifest.json) | +| omnient | 9 | OFF | [CSV](attachments/omnient-9-off-attachments/1153808B-64C8-4FC9-9FA3-0C2A5A8CDDF7.csv) | [JSON](attachments/omnient-9-off-attachments/BD2F3E45-1919-4FCE-8F26-A529C4284FE7.json) | [Log](logs/omnient-9-off.log) | [Export log](logs/omnient-9-off-export.log) | [xcresult](xcresults/omnient-9-off.xcresult) | [Manifest](attachments/omnient-9-off-attachments/manifest.json) | +| omnient | 9 | ON | [CSV](attachments/omnient-9-on-attachments/03832D66-1A6E-4C53-89E1-85F4B738D3C9.csv) | [JSON](attachments/omnient-9-on-attachments/F9DC8BD9-2967-497B-A68D-37D3B6989FC2.json) | [Log](logs/omnient-9-on.log) | [Export log](logs/omnient-9-on-export.log) | [xcresult](xcresults/omnient-9-on.xcresult) | [Manifest](attachments/omnient-9-on-attachments/manifest.json) | +| omnient | 10 | OFF | [CSV](attachments/omnient-10-off-attachments/72C37942-DE94-42F0-B92E-712E0755523B.csv) | [JSON](attachments/omnient-10-off-attachments/E0393CC7-2EC6-48D3-98C2-43DD98D39094.json) | [Log](logs/omnient-10-off.log) | [Export log](logs/omnient-10-off-export.log) | [xcresult](xcresults/omnient-10-off.xcresult) | [Manifest](attachments/omnient-10-off-attachments/manifest.json) | +| omnient | 10 | ON | [CSV](attachments/omnient-10-on-attachments/CCADD93C-F8BA-4837-8B65-380846FB33D4.csv) | [JSON](attachments/omnient-10-on-attachments/D2E206F2-7078-4424-B704-732FA1B8F27F.json) | [Log](logs/omnient-10-on.log) | [Export log](logs/omnient-10-on-export.log) | [xcresult](xcresults/omnient-10-on.xcresult) | [Manifest](attachments/omnient-10-on-attachments/manifest.json) | +| omnient | 11 | OFF | [CSV](attachments/omnient-11-off-attachments/DD5FFA8A-09C5-4C9A-ADE4-0A2A46CDB832.csv) | [JSON](attachments/omnient-11-off-attachments/20367781-CB6C-4FB7-9A1A-D4EC026A0F6D.json) | [Log](logs/omnient-11-off.log) | [Export log](logs/omnient-11-off-export.log) | [xcresult](xcresults/omnient-11-off.xcresult) | [Manifest](attachments/omnient-11-off-attachments/manifest.json) | +| omnient | 11 | ON | [CSV](attachments/omnient-11-on-attachments/4E2FE5FA-5E71-4C2F-8B67-82B823E49BB3.csv) | [JSON](attachments/omnient-11-on-attachments/F177FAA8-B2AD-4A92-839B-05B97AB6E788.json) | [Log](logs/omnient-11-on.log) | [Export log](logs/omnient-11-on-export.log) | [xcresult](xcresults/omnient-11-on.xcresult) | [Manifest](attachments/omnient-11-on-attachments/manifest.json) | +| omnient | 12 | OFF | [CSV](attachments/omnient-12-off-attachments/3F952E68-3FC4-473E-B029-2FE75E6344F8.csv) | [JSON](attachments/omnient-12-off-attachments/01EF3B61-38DD-41EB-A4AF-5BF49613C9FB.json) | [Log](logs/omnient-12-off.log) | [Export log](logs/omnient-12-off-export.log) | [xcresult](xcresults/omnient-12-off.xcresult) | [Manifest](attachments/omnient-12-off-attachments/manifest.json) | +| omnient | 12 | ON | [CSV](attachments/omnient-12-on-attachments/61038C43-FEC2-4E3A-81E9-270FFB67F599.csv) | [JSON](attachments/omnient-12-on-attachments/7B808074-8296-4821-8A94-761046269AB9.json) | [Log](logs/omnient-12-on.log) | [Export log](logs/omnient-12-on-export.log) | [xcresult](xcresults/omnient-12-on.xcresult) | [Manifest](attachments/omnient-12-on-attachments/manifest.json) | +| omnient | 13 | OFF | [CSV](attachments/omnient-13-off-attachments/810F64BC-AC85-4641-8373-B1AF7BAF1D14.csv) | [JSON](attachments/omnient-13-off-attachments/E9F2EB11-4A1D-4487-B695-F7CDDE51F527.json) | [Log](logs/omnient-13-off.log) | [Export log](logs/omnient-13-off-export.log) | [xcresult](xcresults/omnient-13-off.xcresult) | [Manifest](attachments/omnient-13-off-attachments/manifest.json) | +| omnient | 13 | ON | [CSV](attachments/omnient-13-on-attachments/A33985B6-90CB-4363-B87F-F9F516F4F666.csv) | [JSON](attachments/omnient-13-on-attachments/C96347E9-DA53-464D-BB78-E32F582E9C42.json) | [Log](logs/omnient-13-on.log) | [Export log](logs/omnient-13-on-export.log) | [xcresult](xcresults/omnient-13-on.xcresult) | [Manifest](attachments/omnient-13-on-attachments/manifest.json) | +| omnient | 14 | OFF | [CSV](attachments/omnient-14-off-attachments/5F361CA2-F52F-4528-B6D7-E8843CE1D651.csv) | [JSON](attachments/omnient-14-off-attachments/5CE9121F-E586-4B8C-B339-9D053F4967B5.json) | [Log](logs/omnient-14-off.log) | [Export log](logs/omnient-14-off-export.log) | [xcresult](xcresults/omnient-14-off.xcresult) | [Manifest](attachments/omnient-14-off-attachments/manifest.json) | +| omnient | 14 | ON | [CSV](attachments/omnient-14-on-attachments/A54A339C-ED01-494D-8F1D-6E5502909396.csv) | [JSON](attachments/omnient-14-on-attachments/FC553C5F-D36D-485A-81CE-1D4134D9C962.json) | [Log](logs/omnient-14-on.log) | [Export log](logs/omnient-14-on-export.log) | [xcresult](xcresults/omnient-14-on.xcresult) | [Manifest](attachments/omnient-14-on-attachments/manifest.json) | +| omnient | 15 | OFF | [CSV](attachments/omnient-15-off-attachments/F6E6B85A-BA7B-4E44-9D61-B7560A5FB0E6.csv) | [JSON](attachments/omnient-15-off-attachments/4D2CC459-108E-4854-8D12-064AD99EE0CD.json) | [Log](logs/omnient-15-off.log) | [Export log](logs/omnient-15-off-export.log) | [xcresult](xcresults/omnient-15-off.xcresult) | [Manifest](attachments/omnient-15-off-attachments/manifest.json) | +| omnient | 15 | ON | [CSV](attachments/omnient-15-on-attachments/6B98FA67-AC79-4213-9803-8248425677DD.csv) | [JSON](attachments/omnient-15-on-attachments/3446576E-E308-4CA8-A876-87CF9BE219FA.json) | [Log](logs/omnient-15-on.log) | [Export log](logs/omnient-15-on-export.log) | [xcresult](xcresults/omnient-15-on.xcresult) | [Manifest](attachments/omnient-15-on-attachments/manifest.json) | +| omnient | 16 | OFF | [CSV](attachments/omnient-16-off-attachments/43F4FBA7-4736-419F-8754-50112FB9A88D.csv) | [JSON](attachments/omnient-16-off-attachments/1478A3C7-E2D7-4C72-A5E9-4DC8FB3B1297.json) | [Log](logs/omnient-16-off.log) | [Export log](logs/omnient-16-off-export.log) | [xcresult](xcresults/omnient-16-off.xcresult) | [Manifest](attachments/omnient-16-off-attachments/manifest.json) | +| omnient | 16 | ON | [CSV](attachments/omnient-16-on-attachments/7DEF15EA-1826-4BC9-A15B-C45DFFD687B9.csv) | [JSON](attachments/omnient-16-on-attachments/6BD97954-90A4-4F0D-AC90-6D3974304E31.json) | [Log](logs/omnient-16-on.log) | [Export log](logs/omnient-16-on-export.log) | [xcresult](xcresults/omnient-16-on.xcresult) | [Manifest](attachments/omnient-16-on-attachments/manifest.json) | +| omnient | 17 | OFF | [CSV](attachments/omnient-17-off-attachments/166F0AD9-D033-4566-B7F4-84F7AB8EA054.csv) | [JSON](attachments/omnient-17-off-attachments/2B586A6C-5583-4BA5-BE81-0D935BC474D2.json) | [Log](logs/omnient-17-off.log) | [Export log](logs/omnient-17-off-export.log) | [xcresult](xcresults/omnient-17-off.xcresult) | [Manifest](attachments/omnient-17-off-attachments/manifest.json) | +| omnient | 17 | ON | [CSV](attachments/omnient-17-on-attachments/E1F87986-6548-4331-81C7-D4C85761B4AD.csv) | [JSON](attachments/omnient-17-on-attachments/2078480F-8782-4983-B598-CC7BED4BE98B.json) | [Log](logs/omnient-17-on.log) | [Export log](logs/omnient-17-on-export.log) | [xcresult](xcresults/omnient-17-on.xcresult) | [Manifest](attachments/omnient-17-on-attachments/manifest.json) | +| omnient | 18 | OFF | [CSV](attachments/omnient-18-off-attachments/F2FB43CE-385E-4B99-A054-C4CA0F815C05.csv) | [JSON](attachments/omnient-18-off-attachments/6B410A77-3F93-4E33-A663-83F2386DAC5F.json) | [Log](logs/omnient-18-off.log) | [Export log](logs/omnient-18-off-export.log) | [xcresult](xcresults/omnient-18-off.xcresult) | [Manifest](attachments/omnient-18-off-attachments/manifest.json) | +| omnient | 18 | ON | [CSV](attachments/omnient-18-on-attachments/F2A234FC-1E3F-41E9-983A-C39CE4448276.csv) | [JSON](attachments/omnient-18-on-attachments/97B35CA8-6D7B-4E98-B929-621D72EF8019.json) | [Log](logs/omnient-18-on.log) | [Export log](logs/omnient-18-on-export.log) | [xcresult](xcresults/omnient-18-on.xcresult) | [Manifest](attachments/omnient-18-on-attachments/manifest.json) | +| omnient | 19 | OFF | [CSV](attachments/omnient-19-off-attachments/F01356F7-9A31-4081-8B9D-79CA440635C8.csv) | [JSON](attachments/omnient-19-off-attachments/4D0F6EBF-337E-4C47-B489-F346382265FF.json) | [Log](logs/omnient-19-off.log) | [Export log](logs/omnient-19-off-export.log) | [xcresult](xcresults/omnient-19-off.xcresult) | [Manifest](attachments/omnient-19-off-attachments/manifest.json) | +| omnient | 19 | ON | [CSV](attachments/omnient-19-on-attachments/02F0198F-D9C9-4F83-8D37-F99CE906F165.csv) | [JSON](attachments/omnient-19-on-attachments/7C2DB65A-C449-4850-8A9B-1D5270DDE4C5.json) | [Log](logs/omnient-19-on.log) | [Export log](logs/omnient-19-on-export.log) | [xcresult](xcresults/omnient-19-on.xcresult) | [Manifest](attachments/omnient-19-on-attachments/manifest.json) | +| omnient | 20 | OFF | [CSV](attachments/omnient-20-off-attachments/6F0BCF98-98D7-43F9-BC31-86D538AED11D.csv) | [JSON](attachments/omnient-20-off-attachments/098D5A1D-93F4-41D3-96EA-008E3399FD68.json) | [Log](logs/omnient-20-off.log) | [Export log](logs/omnient-20-off-export.log) | [xcresult](xcresults/omnient-20-off.xcresult) | [Manifest](attachments/omnient-20-off-attachments/manifest.json) | +| omnient | 20 | ON | [CSV](attachments/omnient-20-on-attachments/BB9B9A7B-EEE9-4AEC-987F-B429A9F22E4B.csv) | [JSON](attachments/omnient-20-on-attachments/639892DD-6855-4975-A20C-7F60EF474B36.json) | [Log](logs/omnient-20-on.log) | [Export log](logs/omnient-20-on-export.log) | [xcresult](xcresults/omnient-20-on.xcresult) | [Manifest](attachments/omnient-20-on-attachments/manifest.json) | +| omnient | 21 | OFF | [CSV](attachments/omnient-21-off-attachments/E8340FD8-C6E0-496C-8EA3-7258DB62D6CC.csv) | [JSON](attachments/omnient-21-off-attachments/377CAF64-82DA-4A7C-AE35-D3F37AC74094.json) | [Log](logs/omnient-21-off.log) | [Export log](logs/omnient-21-off-export.log) | [xcresult](xcresults/omnient-21-off.xcresult) | [Manifest](attachments/omnient-21-off-attachments/manifest.json) | +| omnient | 21 | ON | [CSV](attachments/omnient-21-on-attachments/9224979D-8729-4ABD-8866-FBF7ED7E3A91.csv) | [JSON](attachments/omnient-21-on-attachments/A59D04A9-D202-4A82-8227-95F63DDA1E0D.json) | [Log](logs/omnient-21-on.log) | [Export log](logs/omnient-21-on-export.log) | [xcresult](xcresults/omnient-21-on.xcresult) | [Manifest](attachments/omnient-21-on-attachments/manifest.json) | +| omnient | 22 | OFF | [CSV](attachments/omnient-22-off-attachments/84A5548D-8BAF-49B4-92EC-F23AF7C65607.csv) | [JSON](attachments/omnient-22-off-attachments/D213D383-E111-4731-B6C1-0ADB3CCB5EE5.json) | [Log](logs/omnient-22-off.log) | [Export log](logs/omnient-22-off-export.log) | [xcresult](xcresults/omnient-22-off.xcresult) | [Manifest](attachments/omnient-22-off-attachments/manifest.json) | +| omnient | 22 | ON | [CSV](attachments/omnient-22-on-attachments/B3A54946-1CE2-4267-ACD4-AB3219030337.csv) | [JSON](attachments/omnient-22-on-attachments/7C48D095-C6A6-4E2B-8F61-8FBA045BF75B.json) | [Log](logs/omnient-22-on.log) | [Export log](logs/omnient-22-on-export.log) | [xcresult](xcresults/omnient-22-on.xcresult) | [Manifest](attachments/omnient-22-on-attachments/manifest.json) | +| omnient | 23 | OFF | [CSV](attachments/omnient-23-off-attachments/8189CD38-23F6-4D1B-B024-AA853009304B.csv) | [JSON](attachments/omnient-23-off-attachments/53333517-5D9A-4B10-A2F0-4F72EDBC4D4B.json) | [Log](logs/omnient-23-off.log) | [Export log](logs/omnient-23-off-export.log) | [xcresult](xcresults/omnient-23-off.xcresult) | [Manifest](attachments/omnient-23-off-attachments/manifest.json) | +| omnient | 23 | ON | [CSV](attachments/omnient-23-on-attachments/77E286A1-0215-41A0-9193-F63AF2FCFBDE.csv) | [JSON](attachments/omnient-23-on-attachments/52D5BA74-C975-41A6-A1B4-D217C8D8D1A2.json) | [Log](logs/omnient-23-on.log) | [Export log](logs/omnient-23-on-export.log) | [xcresult](xcresults/omnient-23-on.xcresult) | [Manifest](attachments/omnient-23-on-attachments/manifest.json) | +| omnient | 24 | OFF | [CSV](attachments/omnient-24-off-attachments/1FFD595E-9AF1-4B01-8012-93BA9FF304EA.csv) | [JSON](attachments/omnient-24-off-attachments/E1029505-152C-409B-BD4A-1BEB4D5A17C1.json) | [Log](logs/omnient-24-off.log) | [Export log](logs/omnient-24-off-export.log) | [xcresult](xcresults/omnient-24-off.xcresult) | [Manifest](attachments/omnient-24-off-attachments/manifest.json) | +| omnient | 24 | ON | [CSV](attachments/omnient-24-on-attachments/BF3F00B6-81BA-4308-834B-FE6CC57F5B6D.csv) | [JSON](attachments/omnient-24-on-attachments/1F524260-9A3D-4575-B3F3-5992A3660DCB.json) | [Log](logs/omnient-24-on.log) | [Export log](logs/omnient-24-on-export.log) | [xcresult](xcresults/omnient-24-on.xcresult) | [Manifest](attachments/omnient-24-on-attachments/manifest.json) | +| omnient | 25 | OFF | [CSV](attachments/omnient-25-off-attachments/FEF35487-A76F-46AD-803F-B2ED61AB60DB.csv) | [JSON](attachments/omnient-25-off-attachments/963F0DFF-4D47-4F97-A3F4-08C48AFFC84B.json) | [Log](logs/omnient-25-off.log) | [Export log](logs/omnient-25-off-export.log) | [xcresult](xcresults/omnient-25-off.xcresult) | [Manifest](attachments/omnient-25-off-attachments/manifest.json) | +| omnient | 25 | ON | [CSV](attachments/omnient-25-on-attachments/FA1AD431-3AC5-42D6-83BF-2BE59AA752A9.csv) | [JSON](attachments/omnient-25-on-attachments/A53CCEFF-C3B2-4E8B-8798-EB13723020EC.json) | [Log](logs/omnient-25-on.log) | [Export log](logs/omnient-25-on-export.log) | [xcresult](xcresults/omnient-25-on.xcresult) | [Manifest](attachments/omnient-25-on-attachments/manifest.json) | +| omnient | 26 | OFF | [CSV](attachments/omnient-26-off-attachments/F1A0015C-B543-4ED9-A7E9-B867239FCE51.csv) | [JSON](attachments/omnient-26-off-attachments/DA4C0F06-6795-447A-8E70-1E58A0C6B770.json) | [Log](logs/omnient-26-off.log) | [Export log](logs/omnient-26-off-export.log) | [xcresult](xcresults/omnient-26-off.xcresult) | [Manifest](attachments/omnient-26-off-attachments/manifest.json) | +| omnient | 26 | ON | [CSV](attachments/omnient-26-on-attachments/BCBDF052-07EF-4999-BE88-F2BF78E9565C.csv) | [JSON](attachments/omnient-26-on-attachments/3730F0F1-0E6A-4BD4-AF11-336F3F7F3229.json) | [Log](logs/omnient-26-on.log) | [Export log](logs/omnient-26-on-export.log) | [xcresult](xcresults/omnient-26-on.xcresult) | [Manifest](attachments/omnient-26-on-attachments/manifest.json) | +| omnient | 27 | OFF | [CSV](attachments/omnient-27-off-attachments/1DC16DDA-2DAF-4E91-B507-B7D9F166F436.csv) | [JSON](attachments/omnient-27-off-attachments/3ECA6EB3-0259-4BB8-ABC8-CC7B3AD4C364.json) | [Log](logs/omnient-27-off.log) | [Export log](logs/omnient-27-off-export.log) | [xcresult](xcresults/omnient-27-off.xcresult) | [Manifest](attachments/omnient-27-off-attachments/manifest.json) | +| omnient | 27 | ON | [CSV](attachments/omnient-27-on-attachments/70849D6D-2DC8-4021-89E9-8A38DC4327EB.csv) | [JSON](attachments/omnient-27-on-attachments/A857A5E9-CB3F-4951-8CFE-373E5F60AC69.json) | [Log](logs/omnient-27-on.log) | [Export log](logs/omnient-27-on-export.log) | [xcresult](xcresults/omnient-27-on.xcresult) | [Manifest](attachments/omnient-27-on-attachments/manifest.json) | +| omnient | 28 | OFF | [CSV](attachments/omnient-28-off-attachments/80A6A842-04EA-4313-86A6-520C6B7DF6AC.csv) | [JSON](attachments/omnient-28-off-attachments/E501B635-9AC1-4B73-8D88-6E9A321DD1FA.json) | [Log](logs/omnient-28-off.log) | [Export log](logs/omnient-28-off-export.log) | [xcresult](xcresults/omnient-28-off.xcresult) | [Manifest](attachments/omnient-28-off-attachments/manifest.json) | +| omnient | 28 | ON | [CSV](attachments/omnient-28-on-attachments/7AD0A599-9844-4E14-9426-527582D27671.csv) | [JSON](attachments/omnient-28-on-attachments/EC80DCA0-DD6C-4A33-983A-D73A12C5294D.json) | [Log](logs/omnient-28-on.log) | [Export log](logs/omnient-28-on-export.log) | [xcresult](xcresults/omnient-28-on.xcresult) | [Manifest](attachments/omnient-28-on-attachments/manifest.json) | +| omnient | 29 | OFF | [CSV](attachments/omnient-29-off-attachments/37118FE2-B663-4B67-A396-DCC4B1658FFB.csv) | [JSON](attachments/omnient-29-off-attachments/47676D43-6396-4683-853E-6746CA66AA0D.json) | [Log](logs/omnient-29-off.log) | [Export log](logs/omnient-29-off-export.log) | [xcresult](xcresults/omnient-29-off.xcresult) | [Manifest](attachments/omnient-29-off-attachments/manifest.json) | +| omnient | 29 | ON | [CSV](attachments/omnient-29-on-attachments/4929DF15-7AB3-4CC7-9BD7-228926914C99.csv) | [JSON](attachments/omnient-29-on-attachments/18046288-1A9E-4A23-B2A7-F1670FEC5A3A.json) | [Log](logs/omnient-29-on.log) | [Export log](logs/omnient-29-on-export.log) | [xcresult](xcresults/omnient-29-on.xcresult) | [Manifest](attachments/omnient-29-on-attachments/manifest.json) | +| omnient | 30 | OFF | [CSV](attachments/omnient-30-off-attachments/623495A2-E29F-4B85-9E9B-F6D4160F6959.csv) | [JSON](attachments/omnient-30-off-attachments/7EADDAB6-4B3D-409E-8EBD-00B10C73FB4D.json) | [Log](logs/omnient-30-off.log) | [Export log](logs/omnient-30-off-export.log) | [xcresult](xcresults/omnient-30-off.xcresult) | [Manifest](attachments/omnient-30-off-attachments/manifest.json) | +| omnient | 30 | ON | [CSV](attachments/omnient-30-on-attachments/C3220496-33CD-420D-92EC-8B82504BD8E8.csv) | [JSON](attachments/omnient-30-on-attachments/5142655D-4285-4270-830E-14090D57998F.json) | [Log](logs/omnient-30-on.log) | [Export log](logs/omnient-30-on-export.log) | [xcresult](xcresults/omnient-30-on.xcresult) | [Manifest](attachments/omnient-30-on-attachments/manifest.json) | +| omnient | 31 | OFF | [CSV](attachments/omnient-31-off-attachments/345F4FAB-6CF6-4E2A-9D2B-6B1D19AF5703.csv) | [JSON](attachments/omnient-31-off-attachments/7201EE76-719B-4A02-B0BB-37EEA0AF1CFF.json) | [Log](logs/omnient-31-off.log) | [Export log](logs/omnient-31-off-export.log) | [xcresult](xcresults/omnient-31-off.xcresult) | [Manifest](attachments/omnient-31-off-attachments/manifest.json) | +| omnient | 31 | ON | [CSV](attachments/omnient-31-on-attachments/5974A353-DD15-47FC-B26C-705464253990.csv) | [JSON](attachments/omnient-31-on-attachments/0D52CCA4-A89F-42BB-847A-855D776D9FC1.json) | [Log](logs/omnient-31-on.log) | [Export log](logs/omnient-31-on-export.log) | [xcresult](xcresults/omnient-31-on.xcresult) | [Manifest](attachments/omnient-31-on-attachments/manifest.json) | +| omnient | 32 | OFF | [CSV](attachments/omnient-32-off-attachments/8F8A75DC-027C-4116-98CE-A7396FFCA024.csv) | [JSON](attachments/omnient-32-off-attachments/DC10A180-E449-4652-A077-4F71EB68EB7D.json) | [Log](logs/omnient-32-off.log) | [Export log](logs/omnient-32-off-export.log) | [xcresult](xcresults/omnient-32-off.xcresult) | [Manifest](attachments/omnient-32-off-attachments/manifest.json) | +| omnient | 32 | ON | [CSV](attachments/omnient-32-on-attachments/4FB0E495-C9DF-4132-A8C4-F7CF40781684.csv) | [JSON](attachments/omnient-32-on-attachments/203571F9-630A-4049-B483-39ACC9ED59E4.json) | [Log](logs/omnient-32-on.log) | [Export log](logs/omnient-32-on-export.log) | [xcresult](xcresults/omnient-32-on.xcresult) | [Manifest](attachments/omnient-32-on-attachments/manifest.json) | +| omnient | 33 | OFF | [CSV](attachments/omnient-33-off-attachments/91EE7142-8AD3-43C5-887C-187B558E10CE.csv) | [JSON](attachments/omnient-33-off-attachments/570B45E6-95D3-4E6A-AA32-7931DC012DE7.json) | [Log](logs/omnient-33-off.log) | [Export log](logs/omnient-33-off-export.log) | [xcresult](xcresults/omnient-33-off.xcresult) | [Manifest](attachments/omnient-33-off-attachments/manifest.json) | +| omnient | 33 | ON | [CSV](attachments/omnient-33-on-attachments/B03411B4-8049-41CE-B1A1-7F973CCF8231.csv) | [JSON](attachments/omnient-33-on-attachments/412E53F0-B775-47FF-A34C-9A6A62675A63.json) | [Log](logs/omnient-33-on.log) | [Export log](logs/omnient-33-on-export.log) | [xcresult](xcresults/omnient-33-on.xcresult) | [Manifest](attachments/omnient-33-on-attachments/manifest.json) | +| omnient | 34 | OFF | [CSV](attachments/omnient-34-off-attachments/F17F4EA7-9AF1-4C89-8343-68122DC2DCC2.csv) | [JSON](attachments/omnient-34-off-attachments/1DB20D65-7F57-4F54-AE99-4BC86E61DA3F.json) | [Log](logs/omnient-34-off.log) | [Export log](logs/omnient-34-off-export.log) | [xcresult](xcresults/omnient-34-off.xcresult) | [Manifest](attachments/omnient-34-off-attachments/manifest.json) | +| omnient | 34 | ON | [CSV](attachments/omnient-34-on-attachments/2CB8E852-6266-43E5-95B9-230A6970E5C9.csv) | [JSON](attachments/omnient-34-on-attachments/54EB13B7-D95F-48CE-8335-184034B27DF0.json) | [Log](logs/omnient-34-on.log) | [Export log](logs/omnient-34-on-export.log) | [xcresult](xcresults/omnient-34-on.xcresult) | [Manifest](attachments/omnient-34-on-attachments/manifest.json) | +| omnient | 35 | OFF | [CSV](attachments/omnient-35-off-attachments/01677329-D115-41D5-8A1D-27F9AF2E2DDE.csv) | [JSON](attachments/omnient-35-off-attachments/5792CF14-48C5-48A5-9A08-5A1A00FA10D0.json) | [Log](logs/omnient-35-off.log) | [Export log](logs/omnient-35-off-export.log) | [xcresult](xcresults/omnient-35-off.xcresult) | [Manifest](attachments/omnient-35-off-attachments/manifest.json) | +| omnient | 35 | ON | [CSV](attachments/omnient-35-on-attachments/A72B129D-A3DB-41DF-884D-CBDA691F4B59.csv) | [JSON](attachments/omnient-35-on-attachments/7503DE1A-2468-472D-9318-E50CE4CFFCC0.json) | [Log](logs/omnient-35-on.log) | [Export log](logs/omnient-35-on-export.log) | [xcresult](xcresults/omnient-35-on.xcresult) | [Manifest](attachments/omnient-35-on-attachments/manifest.json) | +| omnient | 36 | OFF | [CSV](attachments/omnient-36-off-attachments/38EFAD4D-8DA7-46BA-872A-2FBFE81452BA.csv) | [JSON](attachments/omnient-36-off-attachments/B60ACFD8-EA36-4736-BD24-DAD74283A353.json) | [Log](logs/omnient-36-off.log) | [Export log](logs/omnient-36-off-export.log) | [xcresult](xcresults/omnient-36-off.xcresult) | [Manifest](attachments/omnient-36-off-attachments/manifest.json) | +| omnient | 36 | ON | [CSV](attachments/omnient-36-on-attachments/85FD36BF-FAAE-4C74-BCDB-062C2A3AD0BE.csv) | [JSON](attachments/omnient-36-on-attachments/7607B701-2EFF-4BD9-9B1F-AB11309EB1C5.json) | [Log](logs/omnient-36-on.log) | [Export log](logs/omnient-36-on-export.log) | [xcresult](xcresults/omnient-36-on.xcresult) | [Manifest](attachments/omnient-36-on-attachments/manifest.json) | +| omnient | 37 | OFF | [CSV](attachments/omnient-37-off-attachments/9607DCAD-23D5-4D37-9864-71CA727A35CD.csv) | [JSON](attachments/omnient-37-off-attachments/9F2D1CDB-5ABB-45BC-825E-B7537B6C1D7D.json) | [Log](logs/omnient-37-off.log) | [Export log](logs/omnient-37-off-export.log) | [xcresult](xcresults/omnient-37-off.xcresult) | [Manifest](attachments/omnient-37-off-attachments/manifest.json) | +| omnient | 37 | ON | [CSV](attachments/omnient-37-on-attachments/1A40A9BE-8BF3-4CDE-823C-78660711D6C3.csv) | [JSON](attachments/omnient-37-on-attachments/8BDF6B0D-83D9-4839-B0DC-889306DE15BE.json) | [Log](logs/omnient-37-on.log) | [Export log](logs/omnient-37-on-export.log) | [xcresult](xcresults/omnient-37-on.xcresult) | [Manifest](attachments/omnient-37-on-attachments/manifest.json) | +| omnient | 38 | OFF | [CSV](attachments/omnient-38-off-attachments/9610A5DD-6AAF-486D-BF11-FBE2A9F39FBD.csv) | [JSON](attachments/omnient-38-off-attachments/C0399E69-426B-4DB0-BE97-F7D48A6DC901.json) | [Log](logs/omnient-38-off.log) | [Export log](logs/omnient-38-off-export.log) | [xcresult](xcresults/omnient-38-off.xcresult) | [Manifest](attachments/omnient-38-off-attachments/manifest.json) | +| omnient | 38 | ON | [CSV](attachments/omnient-38-on-attachments/5A5E51B8-F2F5-4C7A-8618-9FBFF764AAFD.csv) | [JSON](attachments/omnient-38-on-attachments/65DD8380-26F6-4C07-90CB-9D58598AD3A1.json) | [Log](logs/omnient-38-on.log) | [Export log](logs/omnient-38-on-export.log) | [xcresult](xcresults/omnient-38-on.xcresult) | [Manifest](attachments/omnient-38-on-attachments/manifest.json) | +| omnient | 39 | OFF | [CSV](attachments/omnient-39-off-attachments/43CC1BD1-0867-4501-AB0B-93EFCE3A483E.csv) | [JSON](attachments/omnient-39-off-attachments/BB05A408-C8CD-4FB3-B2E7-B1B89F613618.json) | [Log](logs/omnient-39-off.log) | [Export log](logs/omnient-39-off-export.log) | [xcresult](xcresults/omnient-39-off.xcresult) | [Manifest](attachments/omnient-39-off-attachments/manifest.json) | +| omnient | 39 | ON | [CSV](attachments/omnient-39-on-attachments/11B9F71D-BADD-4936-95B6-78F989FA2DCF.csv) | [JSON](attachments/omnient-39-on-attachments/40C86367-7880-4D05-84B8-35C3F61D34F8.json) | [Log](logs/omnient-39-on.log) | [Export log](logs/omnient-39-on-export.log) | [xcresult](xcresults/omnient-39-on.xcresult) | [Manifest](attachments/omnient-39-on-attachments/manifest.json) | +| omnient | 40 | OFF | [CSV](attachments/omnient-40-off-attachments/A9D460BE-F1C4-4C37-819B-5F102A65FE19.csv) | [JSON](attachments/omnient-40-off-attachments/50008E7F-1425-4221-878C-4DAB3827ECDF.json) | [Log](logs/omnient-40-off.log) | [Export log](logs/omnient-40-off-export.log) | [xcresult](xcresults/omnient-40-off.xcresult) | [Manifest](attachments/omnient-40-off-attachments/manifest.json) | +| omnient | 40 | ON | [CSV](attachments/omnient-40-on-attachments/663A009E-1887-4F30-BAFC-0A342C402B2F.csv) | [JSON](attachments/omnient-40-on-attachments/E5F2F58D-3468-4C79-B63D-3A13EEDB828A.json) | [Log](logs/omnient-40-on.log) | [Export log](logs/omnient-40-on-export.log) | [xcresult](xcresults/omnient-40-on.xcresult) | [Manifest](attachments/omnient-40-on-attachments/manifest.json) | +| omnient | 41 | OFF | [CSV](attachments/omnient-41-off-attachments/A4FCF1C3-19DC-45DF-B1EC-86731328BBE9.csv) | [JSON](attachments/omnient-41-off-attachments/1DEBE1C6-4F4A-4F7E-9CDE-A2DCD4A0E619.json) | [Log](logs/omnient-41-off.log) | [Export log](logs/omnient-41-off-export.log) | [xcresult](xcresults/omnient-41-off.xcresult) | [Manifest](attachments/omnient-41-off-attachments/manifest.json) | +| omnient | 41 | ON | [CSV](attachments/omnient-41-on-attachments/142E1DD6-D820-4154-8577-CF348AB3DC15.csv) | [JSON](attachments/omnient-41-on-attachments/D92B06D0-9DF5-4DF1-A3E4-732BB1014BC3.json) | [Log](logs/omnient-41-on.log) | [Export log](logs/omnient-41-on-export.log) | [xcresult](xcresults/omnient-41-on.xcresult) | [Manifest](attachments/omnient-41-on-attachments/manifest.json) | +| omnient | 42 | OFF | [CSV](attachments/omnient-42-off-attachments/A1264CA6-CBE1-484D-944E-766F68A2922F.csv) | [JSON](attachments/omnient-42-off-attachments/0DC05290-EC10-491A-B30A-7445EE89300E.json) | [Log](logs/omnient-42-off.log) | [Export log](logs/omnient-42-off-export.log) | [xcresult](xcresults/omnient-42-off.xcresult) | [Manifest](attachments/omnient-42-off-attachments/manifest.json) | +| omnient | 42 | ON | [CSV](attachments/omnient-42-on-attachments/375A825C-C4BA-4276-B5D6-172B4D58CBD9.csv) | [JSON](attachments/omnient-42-on-attachments/5DC89189-106D-45C7-8A67-E9F49D147ACF.json) | [Log](logs/omnient-42-on.log) | [Export log](logs/omnient-42-on-export.log) | [xcresult](xcresults/omnient-42-on.xcresult) | [Manifest](attachments/omnient-42-on-attachments/manifest.json) | +| omnient | 43 | OFF | [CSV](attachments/omnient-43-off-attachments/65762F00-16BD-4B61-852E-7746EE8A7DC5.csv) | [JSON](attachments/omnient-43-off-attachments/B2D54715-A6AF-402F-9FA3-FF897E6767A3.json) | [Log](logs/omnient-43-off.log) | [Export log](logs/omnient-43-off-export.log) | [xcresult](xcresults/omnient-43-off.xcresult) | [Manifest](attachments/omnient-43-off-attachments/manifest.json) | +| omnient | 43 | ON | [CSV](attachments/omnient-43-on-attachments/5CC9F8CC-6949-4A4E-B3EF-FC4E354CB73D.csv) | [JSON](attachments/omnient-43-on-attachments/5E3871DB-9D15-42DB-9CAD-9A5217D2F65D.json) | [Log](logs/omnient-43-on.log) | [Export log](logs/omnient-43-on-export.log) | [xcresult](xcresults/omnient-43-on.xcresult) | [Manifest](attachments/omnient-43-on-attachments/manifest.json) | +| omnient | 44 | OFF | [CSV](attachments/omnient-44-off-attachments/D57281A7-5A69-4DD7-AC8D-D8627006F3C6.csv) | [JSON](attachments/omnient-44-off-attachments/03C96C25-CDCF-48DC-950B-F784AABE5755.json) | [Log](logs/omnient-44-off.log) | [Export log](logs/omnient-44-off-export.log) | [xcresult](xcresults/omnient-44-off.xcresult) | [Manifest](attachments/omnient-44-off-attachments/manifest.json) | +| omnient | 44 | ON | [CSV](attachments/omnient-44-on-attachments/8C1D02D9-858E-4A1B-8774-5DE2D8054EBD.csv) | [JSON](attachments/omnient-44-on-attachments/93977518-11BF-4627-BFF1-B007473492BD.json) | [Log](logs/omnient-44-on.log) | [Export log](logs/omnient-44-on-export.log) | [xcresult](xcresults/omnient-44-on.xcresult) | [Manifest](attachments/omnient-44-on-attachments/manifest.json) | +| omnient | 45 | OFF | [CSV](attachments/omnient-45-off-attachments/05DC0581-45CA-4663-9B45-09C592CF813B.csv) | [JSON](attachments/omnient-45-off-attachments/A6BAA78D-D1D0-4146-8969-F07C25361231.json) | [Log](logs/omnient-45-off.log) | [Export log](logs/omnient-45-off-export.log) | [xcresult](xcresults/omnient-45-off.xcresult) | [Manifest](attachments/omnient-45-off-attachments/manifest.json) | +| omnient | 45 | ON | [CSV](attachments/omnient-45-on-attachments/DEEAE241-B066-4E70-A7B6-4D8407FD52BE.csv) | [JSON](attachments/omnient-45-on-attachments/48074F1A-E922-493F-AA7C-CB20B816F049.json) | [Log](logs/omnient-45-on.log) | [Export log](logs/omnient-45-on-export.log) | [xcresult](xcresults/omnient-45-on.xcresult) | [Manifest](attachments/omnient-45-on-attachments/manifest.json) | +| omnient | 46 | OFF | [CSV](attachments/omnient-46-off-attachments/A7CB0288-72F5-4C37-A78E-ACEBC6AB807E.csv) | [JSON](attachments/omnient-46-off-attachments/9924A5DC-5CF1-426E-8D08-F125F0A84F58.json) | [Log](logs/omnient-46-off.log) | [Export log](logs/omnient-46-off-export.log) | [xcresult](xcresults/omnient-46-off.xcresult) | [Manifest](attachments/omnient-46-off-attachments/manifest.json) | +| omnient | 46 | ON | [CSV](attachments/omnient-46-on-attachments/6CE6F3DE-26E1-4BCD-BA08-84F277D9A017.csv) | [JSON](attachments/omnient-46-on-attachments/AEAE459C-6B05-40A3-9BBD-C5C4903602B5.json) | [Log](logs/omnient-46-on.log) | [Export log](logs/omnient-46-on-export.log) | [xcresult](xcresults/omnient-46-on.xcresult) | [Manifest](attachments/omnient-46-on-attachments/manifest.json) | +| omnient | 47 | OFF | [CSV](attachments/omnient-47-off-attachments/224156A2-72EA-42CA-B589-B15B86F6D758.csv) | [JSON](attachments/omnient-47-off-attachments/6469765B-C420-4F6C-9FD1-536D384655A4.json) | [Log](logs/omnient-47-off.log) | [Export log](logs/omnient-47-off-export.log) | [xcresult](xcresults/omnient-47-off.xcresult) | [Manifest](attachments/omnient-47-off-attachments/manifest.json) | +| omnient | 47 | ON | [CSV](attachments/omnient-47-on-attachments/B9B80027-E0F4-4E1B-98E4-CB5BE9CD3DC3.csv) | [JSON](attachments/omnient-47-on-attachments/9036AB97-8079-4789-A6F8-450507ACDE90.json) | [Log](logs/omnient-47-on.log) | [Export log](logs/omnient-47-on-export.log) | [xcresult](xcresults/omnient-47-on.xcresult) | [Manifest](attachments/omnient-47-on-attachments/manifest.json) | +| omnient | 48 | OFF | [CSV](attachments/omnient-48-off-attachments/10D81902-FE9A-430C-A9A9-42696CEFE5D9.csv) | [JSON](attachments/omnient-48-off-attachments/E4374BF0-C3DE-43D9-9852-091526E18E27.json) | [Log](logs/omnient-48-off.log) | [Export log](logs/omnient-48-off-export.log) | [xcresult](xcresults/omnient-48-off.xcresult) | [Manifest](attachments/omnient-48-off-attachments/manifest.json) | +| omnient | 48 | ON | [CSV](attachments/omnient-48-on-attachments/E30FC6B7-8C75-409B-9799-586EF95D9F79.csv) | [JSON](attachments/omnient-48-on-attachments/50F22418-8357-47C4-99FF-BA3F38584903.json) | [Log](logs/omnient-48-on.log) | [Export log](logs/omnient-48-on-export.log) | [xcresult](xcresults/omnient-48-on.xcresult) | [Manifest](attachments/omnient-48-on-attachments/manifest.json) | +| omnient | 49 | OFF | [CSV](attachments/omnient-49-off-attachments/7E3B5CB3-72D5-43C9-86DC-35FB029CA368.csv) | [JSON](attachments/omnient-49-off-attachments/EB6D113C-41F8-4697-B6B3-9B9865A1285B.json) | [Log](logs/omnient-49-off.log) | [Export log](logs/omnient-49-off-export.log) | [xcresult](xcresults/omnient-49-off.xcresult) | [Manifest](attachments/omnient-49-off-attachments/manifest.json) | +| omnient | 49 | ON | [CSV](attachments/omnient-49-on-attachments/CC83B5DD-ECC9-4342-8ED9-02C79EE3334B.csv) | [JSON](attachments/omnient-49-on-attachments/FAF35B53-8BF0-4030-8F1B-9D57CD12A8AA.json) | [Log](logs/omnient-49-on.log) | [Export log](logs/omnient-49-on-export.log) | [xcresult](xcresults/omnient-49-on.xcresult) | [Manifest](attachments/omnient-49-on-attachments/manifest.json) | +| omnient | 50 | OFF | [CSV](attachments/omnient-50-off-attachments/C0F4BBF5-5BCA-4CDD-8765-7CABB051E73F.csv) | [JSON](attachments/omnient-50-off-attachments/448023EE-C582-403E-8C3C-D7C70498F62D.json) | [Log](logs/omnient-50-off.log) | [Export log](logs/omnient-50-off-export.log) | [xcresult](xcresults/omnient-50-off.xcresult) | [Manifest](attachments/omnient-50-off-attachments/manifest.json) | +| omnient | 50 | ON | [CSV](attachments/omnient-50-on-attachments/752848D6-FE2E-4FA9-BE9C-6ADDECF1BAF8.csv) | [JSON](attachments/omnient-50-on-attachments/D82A0B43-6198-4E2B-B17D-1AE4AB8D3652.json) | [Log](logs/omnient-50-on.log) | [Export log](logs/omnient-50-on-export.log) | [xcresult](xcresults/omnient-50-on.xcresult) | [Manifest](attachments/omnient-50-on-attachments/manifest.json) | + +## Histogram evidence + +[Histogram data and selection decisions](histograms/histogram-data.json) · [Full-precision paired differences](histograms/pair-differences.csv). Each record retains its pair number and exclusion reasons; no raw measurement is changed. + +[Input SHA-256 manifest](histograms/input-manifest.json) records the raw files used for aggregation. The histogram JSON records the renderer version and generator SHA-256. + +| Metric | PNG | SVG | +|---|---|---| +| TTFA | [PNG](histograms/ttfa-on-minus-off.png) | [SVG](histograms/ttfa-on-minus-off.svg) | +| TTFD | [PNG](histograms/ttfd-on-minus-off.png) | [SVG](histograms/ttfd-on-minus-off.svg) | + + +JSON includes app logs and task-level `URLSessionTaskMetrics`. Xcode logs include HTTP response metadata used to classify early POST status. Manifests map exported attachments to XCTest tests. diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/connection-reuse-audit.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/connection-reuse-audit.md new file mode 100644 index 0000000..cf792f0 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/connection-reuse-audit.md @@ -0,0 +1,234 @@ +# Handshake transport audit + +[Report](report.md) · [Artifacts](artifacts.md) + +The table lists the actual handshake task, identified by its request ID. In ON trials, either the handshake GET or the concurrent early POST may create the fresh connection; the other request can reuse it within that trial. + +The early POST HTTP status comes from the saved Xcode response metadata for `AID=-1`. HTTP 400 confirms rejection of that POST, but does not identify whether soft stickiness failed, requests arrived out of order, or another server-side condition caused it. OFF has no early POST. + +A fresh HTTP/2 connection was verified for each trial's first transport request, not inferred from creating a new service or process. In ON trials, the early POST could create the connection first and the handshake GET could reuse it. DNS, radio, and server state may remain warm. Repeated response-metadata callbacks for one request are counted once. + +Connection setup is `connectEndDate - connectStartDate` and includes the TLS handshake. TLS handshake is `secureConnectionEndDate - secureConnectionStartDate`, a portion of connection setup; do not add the two values. + +| Scenario | Pair | Setting | Test status | Early POST HTTP | Cold source | Handshake protocol | Handshake reused | Connection setup (incl. TLS, ms) | TLS handshake (ms) | Remote address | +|---|---:|:---:|---|:---:|---|---|:---:|---:|---:|---| +| omnient | 1 | OFF | completed | — | handshake | h2 | false | 234.000 | 226.000 | 2404:6800:400b:c015::451 | +| omnient | 1 | ON | completed | 200 | handshake | h2 | false | 31.000 | 20.000 | 2404:6800:400b:c015::451 | +| omnient | 2 | OFF | completed | — | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 2 | ON | completed | 400 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 3 | OFF | completed | — | handshake | h2 | false | 27.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 3 | ON | completed | 400 | handshake | h2 | false | 426.000 | 25.000 | 2404:6800:400b:c015::451 | +| omnient | 4 | OFF | completed | — | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 4 | ON | completed | 200 | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 5 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 5 | ON | completed | 400 | earlyPOST | h2 | true | 35.000 | 24.000 | 2404:6800:400b:c015::451 | +| omnient | 6 | OFF | completed | — | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 6 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 7 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 7 | ON | completed | 200 | earlyPOST | h2 | true | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 8 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 8 | ON | completed | 200 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 9 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 9 | ON | completed | 200 | earlyPOST | h2 | true | 21.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 10 | OFF | completed | — | handshake | h2 | false | 23.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 10 | ON | completed | 200 | earlyPOST | h2 | true | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 11 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 11 | ON | completed | 200 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 12 | OFF | completed | — | handshake | h2 | false | 27.000 | 17.000 | 2404:6800:400b:c015::451 | +| omnient | 12 | ON | completed | 200 | earlyPOST | h2 | true | 26.000 | 17.000 | 192.178.226.81 | +| omnient | 13 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 13 | ON | completed | 400 | earlyPOST | h2 | true | 20.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 14 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 14 | ON | completed | 400 | earlyPOST | h2 | true | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 15 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 15 | ON | completed | 200 | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 16 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 16 | ON | completed | 400 | earlyPOST | h2 | true | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 17 | OFF | completed | — | handshake | h2 | false | 89.000 | 19.000 | 2404:6800:400b:c015::451 | +| omnient | 17 | ON | completed | 400 | earlyPOST | h2 | true | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 18 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 18 | ON | completed | 400 | earlyPOST | h2 | true | 28.000 | 17.000 | 2404:6800:400b:c015::451 | +| omnient | 19 | OFF | completed | — | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 19 | ON | completed | 400 | earlyPOST | h2 | true | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 20 | OFF | completed | — | handshake | h2 | false | 178.000 | 24.000 | 2404:6800:400b:c015::451 | +| omnient | 20 | ON | completed | 400 | handshake | h2 | false | 23.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 21 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 21 | ON | completed | 400 | handshake | h2 | false | 334.000 | 26.000 | 192.178.226.81 | +| omnient | 22 | OFF | completed | — | handshake | h2 | false | 27.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 22 | ON | completed | 400 | handshake | h2 | false | 27.000 | 17.000 | 2404:6800:400b:c015::451 | +| omnient | 23 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 23 | ON | completed | 200 | handshake | h2 | false | 29.000 | 19.000 | 2404:6800:400b:c015::451 | +| omnient | 24 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 24 | ON | completed | 400 | earlyPOST | h2 | true | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 25 | OFF | completed | — | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 25 | ON | completed | 400 | earlyPOST | h2 | true | 23.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 26 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 26 | ON | completed | 400 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 27 | OFF | completed | — | handshake | h2 | false | 144.000 | 134.000 | 2404:6800:400b:c015::451 | +| omnient | 27 | ON | completed | 400 | earlyPOST | h2 | true | 21.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 28 | OFF | completed | — | handshake | h2 | false | 24.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 28 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 29 | OFF | completed | — | handshake | h2 | false | 27.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 29 | ON | completed | 400 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 30 | OFF | completed | — | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 30 | ON | completed | 200 | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 31 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 31 | ON | completed | 200 | earlyPOST | h2 | true | 20.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 32 | OFF | completed | — | handshake | h2 | false | 24.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 32 | ON | completed | 400 | earlyPOST | h2 | true | 27.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 33 | OFF | completed | — | handshake | h2 | false | 27.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 33 | ON | completed | 400 | earlyPOST | h2 | true | 34.000 | 24.000 | 2404:6800:400b:c017::451 | +| omnient | 34 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 34 | ON | completed | 400 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 35 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 35 | ON | completed | 400 | handshake | h2 | false | 29.000 | 19.000 | 2404:6800:400b:c017::451 | +| omnient | 36 | OFF | completed | — | handshake | h2 | false | 24.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 36 | ON | completed | 200 | handshake | h2 | false | 26.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 37 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 37 | ON | completed | 400 | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 38 | OFF | completed | — | handshake | h2 | false | 33.000 | 23.000 | 2404:6800:400b:c017::451 | +| omnient | 38 | ON | completed | 200 | handshake | h2 | false | 26.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 39 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 39 | ON | completed | 200 | earlyPOST | h2 | true | 43.000 | 32.000 | 2404:6800:400b:c017::451 | +| omnient | 40 | OFF | completed | — | handshake | h2 | false | 24.000 | 16.000 | 172.217.221.81 | +| omnient | 40 | ON | completed | 400 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 41 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 41 | ON | completed | 400 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 42 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 42 | ON | completed | 400 | earlyPOST | h2 | true | 34.000 | 25.000 | 2404:6800:400b:c017::451 | +| omnient | 43 | OFF | completed | — | handshake | h2 | false | 24.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 43 | ON | completed | 400 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 44 | OFF | completed | — | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 44 | ON | completed | 400 | earlyPOST | h2 | true | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 45 | OFF | completed | — | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 45 | ON | completed | 200 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 46 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 46 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 47 | OFF | completed | — | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 47 | ON | completed | 400 | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 48 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 48 | ON | completed | 400 | earlyPOST | h2 | true | 27.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 49 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 49 | ON | completed | 200 | earlyPOST | h2 | true | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 50 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 50 | ON | completed | 200 | earlyPOST | h2 | true | 23.000 | 13.000 | 2404:6800:400b:c017::451 | + +## M1 and M3 dispatch + +The handshake payload column is the request's encoded `count`. `count=0` means neither M1 nor M3 was in the handshake request itself. `early POST` means the first request containing that message was an `AID=-1` POST logged before WebChannel opened, concurrent with the handshake; it does not prove server arrival order or acceptance. `post-open POST` means its first request was logged after the channel opened. + +M1 is message offset 0. The demo sends M3 at offset 1 in Omnient and offset 2 in Viewfinder (after M2 Heartbeat). Request body prefixes expose `count` and `ofs`, which identify the first HTTP request containing each queued message. A rejected early POST may be retried after opening; the table records the first dispatch. + +The observed M1 delay is measured from the client connect timestamp to the M1 `send()` call; scheduling can vary slightly from the requested delay. + +| Scenario | Pair | Setting | M1 after connect (ms) | Handshake payload | M1 first request | M3 first request | +|---|---:|:---:|---:|:---:|---|---| +| omnient | 1 | OFF | 0.247 | count=0 | post-open POST | post-open POST | +| omnient | 1 | ON | 0.261 | count=0 | early POST | early POST | +| omnient | 2 | OFF | 0.254 | count=0 | post-open POST | post-open POST | +| omnient | 2 | ON | 0.264 | count=0 | early POST | early POST | +| omnient | 3 | OFF | 0.272 | count=0 | post-open POST | post-open POST | +| omnient | 3 | ON | 0.258 | count=0 | early POST | early POST | +| omnient | 4 | OFF | 0.258 | count=0 | post-open POST | post-open POST | +| omnient | 4 | ON | 0.259 | count=0 | early POST | early POST | +| omnient | 5 | OFF | 0.268 | count=0 | post-open POST | post-open POST | +| omnient | 5 | ON | 0.267 | count=0 | early POST | early POST | +| omnient | 6 | OFF | 0.258 | count=0 | post-open POST | post-open POST | +| omnient | 6 | ON | 0.260 | count=0 | early POST | early POST | +| omnient | 7 | OFF | 0.264 | count=0 | post-open POST | post-open POST | +| omnient | 7 | ON | 0.264 | count=0 | early POST | early POST | +| omnient | 8 | OFF | 0.263 | count=0 | post-open POST | post-open POST | +| omnient | 8 | ON | 0.255 | count=0 | early POST | early POST | +| omnient | 9 | OFF | 0.263 | count=0 | post-open POST | post-open POST | +| omnient | 9 | ON | 0.256 | count=0 | early POST | early POST | +| omnient | 10 | OFF | 0.262 | count=0 | post-open POST | post-open POST | +| omnient | 10 | ON | 0.254 | count=0 | early POST | early POST | +| omnient | 11 | OFF | 0.262 | count=0 | post-open POST | post-open POST | +| omnient | 11 | ON | 0.270 | count=0 | early POST | early POST | +| omnient | 12 | OFF | 0.263 | count=0 | post-open POST | post-open POST | +| omnient | 12 | ON | 0.256 | count=0 | early POST | early POST | +| omnient | 13 | OFF | 0.258 | count=0 | post-open POST | post-open POST | +| omnient | 13 | ON | 0.270 | count=0 | early POST | early POST | +| omnient | 14 | OFF | 0.276 | count=0 | post-open POST | post-open POST | +| omnient | 14 | ON | 0.262 | count=0 | early POST | early POST | +| omnient | 15 | OFF | 0.261 | count=0 | post-open POST | post-open POST | +| omnient | 15 | ON | 0.265 | count=0 | early POST | early POST | +| omnient | 16 | OFF | 0.277 | count=0 | post-open POST | post-open POST | +| omnient | 16 | ON | 0.263 | count=0 | early POST | early POST | +| omnient | 17 | OFF | 0.271 | count=0 | post-open POST | post-open POST | +| omnient | 17 | ON | 0.257 | count=0 | early POST | early POST | +| omnient | 18 | OFF | 0.268 | count=0 | post-open POST | post-open POST | +| omnient | 18 | ON | 0.257 | count=0 | early POST | early POST | +| omnient | 19 | OFF | 0.266 | count=0 | post-open POST | post-open POST | +| omnient | 19 | ON | 0.254 | count=0 | early POST | early POST | +| omnient | 20 | OFF | 1.016 | count=0 | post-open POST | post-open POST | +| omnient | 20 | ON | 0.266 | count=0 | early POST | early POST | +| omnient | 21 | OFF | 0.260 | count=0 | post-open POST | post-open POST | +| omnient | 21 | ON | 0.266 | count=0 | early POST | early POST | +| omnient | 22 | OFF | 0.258 | count=0 | post-open POST | post-open POST | +| omnient | 22 | ON | 0.262 | count=0 | early POST | early POST | +| omnient | 23 | OFF | 0.277 | count=0 | post-open POST | post-open POST | +| omnient | 23 | ON | 0.261 | count=0 | early POST | early POST | +| omnient | 24 | OFF | 0.252 | count=0 | post-open POST | post-open POST | +| omnient | 24 | ON | 0.247 | count=0 | early POST | early POST | +| omnient | 25 | OFF | 0.254 | count=0 | post-open POST | post-open POST | +| omnient | 25 | ON | 0.268 | count=0 | early POST | early POST | +| omnient | 26 | OFF | 0.265 | count=0 | post-open POST | post-open POST | +| omnient | 26 | ON | 0.264 | count=0 | early POST | early POST | +| omnient | 27 | OFF | 0.262 | count=0 | post-open POST | post-open POST | +| omnient | 27 | ON | 0.260 | count=0 | early POST | early POST | +| omnient | 28 | OFF | 0.260 | count=0 | post-open POST | post-open POST | +| omnient | 28 | ON | 0.260 | count=0 | early POST | early POST | +| omnient | 29 | OFF | 0.242 | count=0 | post-open POST | post-open POST | +| omnient | 29 | ON | 0.256 | count=0 | early POST | early POST | +| omnient | 30 | OFF | 0.255 | count=0 | post-open POST | post-open POST | +| omnient | 30 | ON | 0.289 | count=0 | early POST | early POST | +| omnient | 31 | OFF | 0.262 | count=0 | post-open POST | post-open POST | +| omnient | 31 | ON | 0.264 | count=0 | early POST | early POST | +| omnient | 32 | OFF | 0.262 | count=0 | post-open POST | post-open POST | +| omnient | 32 | ON | 0.258 | count=0 | early POST | early POST | +| omnient | 33 | OFF | 0.258 | count=0 | post-open POST | post-open POST | +| omnient | 33 | ON | 0.276 | count=0 | early POST | early POST | +| omnient | 34 | OFF | 0.271 | count=0 | post-open POST | post-open POST | +| omnient | 34 | ON | 0.250 | count=0 | early POST | early POST | +| omnient | 35 | OFF | 0.255 | count=0 | post-open POST | post-open POST | +| omnient | 35 | ON | 0.248 | count=0 | early POST | early POST | +| omnient | 36 | OFF | 0.251 | count=0 | post-open POST | post-open POST | +| omnient | 36 | ON | 0.273 | count=0 | early POST | early POST | +| omnient | 37 | OFF | 0.262 | count=0 | post-open POST | post-open POST | +| omnient | 37 | ON | 0.252 | count=0 | early POST | early POST | +| omnient | 38 | OFF | 0.249 | count=0 | post-open POST | post-open POST | +| omnient | 38 | ON | 0.259 | count=0 | early POST | early POST | +| omnient | 39 | OFF | 0.255 | count=0 | post-open POST | post-open POST | +| omnient | 39 | ON | 0.255 | count=0 | early POST | early POST | +| omnient | 40 | OFF | 0.260 | count=0 | post-open POST | post-open POST | +| omnient | 40 | ON | 0.249 | count=0 | early POST | early POST | +| omnient | 41 | OFF | 0.270 | count=0 | post-open POST | post-open POST | +| omnient | 41 | ON | 0.265 | count=0 | early POST | early POST | +| omnient | 42 | OFF | 0.247 | count=0 | post-open POST | post-open POST | +| omnient | 42 | ON | 0.242 | count=0 | early POST | early POST | +| omnient | 43 | OFF | 0.246 | count=0 | post-open POST | post-open POST | +| omnient | 43 | ON | 0.246 | count=0 | early POST | early POST | +| omnient | 44 | OFF | 0.249 | count=0 | post-open POST | post-open POST | +| omnient | 44 | ON | 0.237 | count=0 | early POST | early POST | +| omnient | 45 | OFF | 0.241 | count=0 | post-open POST | post-open POST | +| omnient | 45 | ON | 0.255 | count=0 | early POST | early POST | +| omnient | 46 | OFF | 0.243 | count=0 | post-open POST | post-open POST | +| omnient | 46 | ON | 0.248 | count=0 | early POST | early POST | +| omnient | 47 | OFF | 0.250 | count=0 | post-open POST | post-open POST | +| omnient | 47 | ON | 0.268 | count=0 | early POST | early POST | +| omnient | 48 | OFF | 0.250 | count=0 | post-open POST | post-open POST | +| omnient | 48 | ON | 0.252 | count=0 | early POST | early POST | +| omnient | 49 | OFF | 0.259 | count=0 | post-open POST | post-open POST | +| omnient | 49 | ON | 0.256 | count=0 | early POST | early POST | +| omnient | 50 | OFF | 0.249 | count=0 | post-open POST | post-open POST | +| omnient | 50 | ON | 0.250 | count=0 | early POST | early POST | + +## Observations and limits + +Omnient sends M3 immediately after M1, scheduled 0 ms after connect() returns. Fresh connection verification is to the reached edge, not a cold DNS lookup or cold backend application state. + +The initial early POST returned HTTP 400 in 29/50 ON trials. Of those trials, 29 completed; inspect the logs to distinguish successful retries from incomplete runs. + +The Xcode logs contain retry diagnostics in ON trials for omnient pairs 2, 3, 5, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 32, 33, 34, 35, 37, 40, 41, 42, 43, 44, 47, 48. Those retries can affect TTFA and TTFD; the raw logs should be consulted before attributing a timing difference solely to the handshake option. + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/histogram-data.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/histogram-data.json new file mode 100644 index 0000000..1f87d1a --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/histogram-data.json @@ -0,0 +1,1186 @@ +{ + "initialMessageDelayMs": 0, + "pairCount": 50, + "handshakeThresholdMs": 20.0, + "difference": "ON minus OFF", + "binWidthMs": 10, + "pairs": [ + { + "pair": 1, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -686.2250566482544, + "ttfdDifferenceMs": -689.8720264434814 + }, + { + "pair": 2, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -266.2680149078369, + "ttfdDifferenceMs": -211.44402027130127 + }, + { + "pair": 3, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 419.1168546676636, + "ttfdDifferenceMs": 376.67083740234375 + }, + { + "pair": 4, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -168.90215873718262, + "ttfdDifferenceMs": -156.24713897705078 + }, + { + "pair": 5, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -213.73391151428223, + "ttfdDifferenceMs": -163.61403465270996 + }, + { + "pair": 6, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -132.5669288635254, + "ttfdDifferenceMs": -130.3039789199829 + }, + { + "pair": 7, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -126.26504898071289, + "ttfdDifferenceMs": -135.53404808044434 + }, + { + "pair": 8, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -242.96796321868896, + "ttfdDifferenceMs": -192.8020715713501 + }, + { + "pair": 9, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -142.1661376953125, + "ttfdDifferenceMs": -138.47100734710693 + }, + { + "pair": 10, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -72.91996479034424, + "ttfdDifferenceMs": -22.04608917236328 + }, + { + "pair": 11, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -134.00089740753174, + "ttfdDifferenceMs": -135.94400882720947 + }, + { + "pair": 12, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 25.297045707702637, + "ttfdDifferenceMs": 26.59893035888672 + }, + { + "pair": 13, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -139.88900184631348, + "ttfdDifferenceMs": -130.64706325531006 + }, + { + "pair": 14, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -274.3901014328003, + "ttfdDifferenceMs": -225.38602352142334 + }, + { + "pair": 15, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -135.71202754974365, + "ttfdDifferenceMs": -137.28809356689453 + }, + { + "pair": 16, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -140.1510238647461, + "ttfdDifferenceMs": -123.22998046875 + }, + { + "pair": 17, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -209.79690551757812, + "ttfdDifferenceMs": 38.91611099243164 + }, + { + "pair": 18, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -82.06808567047119, + "ttfdDifferenceMs": -45.27008533477783 + }, + { + "pair": 19, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -149.880051612854, + "ttfdDifferenceMs": -147.9640007019043 + }, + { + "pair": 20, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -284.28900241851807, + "ttfdDifferenceMs": -283.14101696014404 + }, + { + "pair": 21, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 286.07189655303955, + "ttfdDifferenceMs": 294.02899742126465 + }, + { + "pair": 22, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -135.187029838562, + "ttfdDifferenceMs": -136.58607006072998 + }, + { + "pair": 23, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -126.20306015014648, + "ttfdDifferenceMs": -120.9869384765625 + }, + { + "pair": 24, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -145.17199993133545, + "ttfdDifferenceMs": -156.27801418304443 + }, + { + "pair": 25, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -158.42998027801514, + "ttfdDifferenceMs": -156.66794776916504 + }, + { + "pair": 26, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -137.9150152206421, + "ttfdDifferenceMs": -126.16300582885742 + }, + { + "pair": 27, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -284.0619087219238, + "ttfdDifferenceMs": -276.3129472732544 + }, + { + "pair": 28, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 1450.154185295105, + "ttfdDifferenceMs": 1410.9081029891968 + }, + { + "pair": 29, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -144.7979211807251, + "ttfdDifferenceMs": -143.21398735046387 + }, + { + "pair": 30, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -138.82505893707275, + "ttfdDifferenceMs": -138.81099224090576 + }, + { + "pair": 31, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -136.3229751586914, + "ttfdDifferenceMs": -125.16498565673828 + }, + { + "pair": 32, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -113.97898197174072, + "ttfdDifferenceMs": -87.07797527313232 + }, + { + "pair": 33, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -112.81394958496094, + "ttfdDifferenceMs": -106.10103607177734 + }, + { + "pair": 34, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -267.4858570098877, + "ttfdDifferenceMs": -217.229962348938 + }, + { + "pair": 35, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -143.57399940490723, + "ttfdDifferenceMs": -139.043927192688 + }, + { + "pair": 36, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -130.35905361175537, + "ttfdDifferenceMs": -130.76400756835938 + }, + { + "pair": 37, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -138.2439136505127, + "ttfdDifferenceMs": -122.8179931640625 + }, + { + "pair": 38, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -152.1850824356079, + "ttfdDifferenceMs": -142.06111431121826 + }, + { + "pair": 39, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -118.65293979644775, + "ttfdDifferenceMs": -116.94800853729248 + }, + { + "pair": 40, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -256.90996646881104, + "ttfdDifferenceMs": -251.2040138244629 + }, + { + "pair": 41, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -308.7778091430664, + "ttfdDifferenceMs": -259.17887687683105 + }, + { + "pair": 42, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -251.48308277130127, + "ttfdDifferenceMs": -201.76804065704346 + }, + { + "pair": 43, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -143.8438892364502, + "ttfdDifferenceMs": -139.9219036102295 + }, + { + "pair": 44, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -147.7978229522705, + "ttfdDifferenceMs": -133.9728832244873 + }, + { + "pair": 45, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -150.26187896728516, + "ttfdDifferenceMs": -130.50591945648193 + }, + { + "pair": 46, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -147.6280689239502, + "ttfdDifferenceMs": -147.75311946868896 + }, + { + "pair": 47, + "accepted": false, + "exclusionReasons": [ + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -147.70591259002686, + "ttfdDifferenceMs": -141.6260004043579 + }, + { + "pair": 48, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -129.660964012146, + "ttfdDifferenceMs": -119.58301067352295 + }, + { + "pair": 49, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -152.95302867889404, + "ttfdDifferenceMs": -146.71194553375244 + }, + { + "pair": 50, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -124.28903579711914, + "ttfdDifferenceMs": -119.22407150268555 + } + ], + "histograms": { + "TTFA": { + "binEdgesMs": [ + -280.0, + -270.0, + -260.0, + -250.0, + -240.0, + -230.0, + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0, + 1430.0, + 1440.0, + 1450.0, + 1460.0 + ], + "pairCounts": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 3, + 2, + 5, + 3, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + }, + "TTFD": { + "binEdgesMs": [ + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0 + ], + "pairCounts": [ + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 3, + 7, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + } + }, + "earlyPost400Pairs": 29, + "earlyPost400Rate": 0.58, + "unknownEarlyPostPairs": 0, + "noEarlyPostPairs": 0, + "acceptedPairs": 17, + "matplotlibVersion": "3.10.9", + "generatorSHA256": "766535930221932399509978f10b8b165a4a53854ccd020b2a379a83be842761", + "sharedHistogramAxes": true +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/input-manifest.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/input-manifest.json new file mode 100644 index 0000000..8b92583 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/input-manifest.json @@ -0,0 +1,1602 @@ +[ + { + "path": "attachments/omnient-1-off-attachments/6C1C4C43-30EE-4F55-9B19-CF7CFA808F91.csv", + "sha256": "5be9543bf40b136eb12ba3ee77efdcf47e78afcdafb2a4f0c0cc7e2648948c32" + }, + { + "path": "attachments/omnient-1-off-attachments/9E01CB8C-DAAB-431C-9717-D2DD0C504AE2.json", + "sha256": "96ad86de306d6ac9e68bbc3b7084108e11912245c27d96554a9925fb40681673" + }, + { + "path": "attachments/omnient-1-off-attachments/manifest.json", + "sha256": "867dacce52ef47554459c3c7a34076c078bce49fa68cac49d721416d036f1a44" + }, + { + "path": "attachments/omnient-1-on-attachments/2D5D4C3E-D16D-47E4-8B24-CCE2B417B960.json", + "sha256": "a6896e1dfdf56b019db5f4f5e64a1f0005771112c2d9534983626c33a1285ae6" + }, + { + "path": "attachments/omnient-1-on-attachments/B42288E5-EEE2-472F-B591-9ECEC25C0D49.csv", + "sha256": "0c9eb3e602b17ba5765383eb5827eeca4aec529c53cd6d05c7ef029f59ff8f3d" + }, + { + "path": "attachments/omnient-1-on-attachments/manifest.json", + "sha256": "0637a3c05dfdb07fc1e896245c7b788b3f7eda117f9f75419c6df9bc6aaa8cef" + }, + { + "path": "attachments/omnient-10-off-attachments/72C37942-DE94-42F0-B92E-712E0755523B.csv", + "sha256": "31f994d8c29d67b53bdc9a05a1319c23fec2b554ff586e0bb883fba9b8cf32e6" + }, + { + "path": "attachments/omnient-10-off-attachments/E0393CC7-2EC6-48D3-98C2-43DD98D39094.json", + "sha256": "9c06a5c63a3991813c0edbe4adda94b13a7f5a6481b11aaea8a06481f5ff8ed5" + }, + { + "path": "attachments/omnient-10-off-attachments/manifest.json", + "sha256": "632225425735efaff0e9d1af5615930b48900d7726b3fdfb9b54d49d11e0bc55" + }, + { + "path": "attachments/omnient-10-on-attachments/CCADD93C-F8BA-4837-8B65-380846FB33D4.csv", + "sha256": "ef402238afb39a5b41d625e6422e6e8f3dd37ed822316672575bfe739fdb44d8" + }, + { + "path": "attachments/omnient-10-on-attachments/D2E206F2-7078-4424-B704-732FA1B8F27F.json", + "sha256": "445d4074eafaf8589c286c2d9084a5d471b8b2ee27f2775431fcc3fd82a2264a" + }, + { + "path": "attachments/omnient-10-on-attachments/manifest.json", + "sha256": "3ca24c2ba98ddb6fe6c8f3fe28a17a331916b65397b346b011729ad3e7d6410c" + }, + { + "path": "attachments/omnient-11-off-attachments/20367781-CB6C-4FB7-9A1A-D4EC026A0F6D.json", + "sha256": "b5647683dae03bcd01b5c5df1ae412bba1c71e6594576fa3aa65b173a2859b03" + }, + { + "path": "attachments/omnient-11-off-attachments/DD5FFA8A-09C5-4C9A-ADE4-0A2A46CDB832.csv", + "sha256": "9258cfe88913ca78760d97fc0ab7c790d098637c97952e2f1b5a7789747134e3" + }, + { + "path": "attachments/omnient-11-off-attachments/manifest.json", + "sha256": "83724df46cca46db48275a8385900dfda345b4a171286d61790b5060cc62efe3" + }, + { + "path": "attachments/omnient-11-on-attachments/4E2FE5FA-5E71-4C2F-8B67-82B823E49BB3.csv", + "sha256": "90350f75694850cdeb745ea4474495b7cc01587b8306ee3ff098f1abac484c76" + }, + { + "path": "attachments/omnient-11-on-attachments/F177FAA8-B2AD-4A92-839B-05B97AB6E788.json", + "sha256": "9da6357d5ff54e878f946ab53f175f7a8843c9fd8f3185be98974f1d68071de0" + }, + { + "path": "attachments/omnient-11-on-attachments/manifest.json", + "sha256": "b98a3e8db4f7a6894aaeafe15c449a042906f5eb1e74c8044349ce1ce791e820" + }, + { + "path": "attachments/omnient-12-off-attachments/01EF3B61-38DD-41EB-A4AF-5BF49613C9FB.json", + "sha256": "5f8c8f252053d5be81e9b50d587a6968c82d6629014f4ccab49fe02741ec8aa5" + }, + { + "path": "attachments/omnient-12-off-attachments/3F952E68-3FC4-473E-B029-2FE75E6344F8.csv", + "sha256": "26ae94e11a1b20a3dad8f437419c254b50dc575ca192a36646d1ccca765b85e1" + }, + { + "path": "attachments/omnient-12-off-attachments/manifest.json", + "sha256": "402f2ab732fb4b2f87327641d4200a221162e94a363903b29b1c3c09e6650954" + }, + { + "path": "attachments/omnient-12-on-attachments/61038C43-FEC2-4E3A-81E9-270FFB67F599.csv", + "sha256": "3f13dcbd0f3f39244d99877e741ba51d64a5f166ff65792bb77251d75ef50096" + }, + { + "path": "attachments/omnient-12-on-attachments/7B808074-8296-4821-8A94-761046269AB9.json", + "sha256": "b8ba962602fcb2cba1d1b4c50d5e2c90218f3b5be2efd70631be0b48916060c7" + }, + { + "path": "attachments/omnient-12-on-attachments/manifest.json", + "sha256": "bd8099fc436ebabdc854645c0aabf2483975af5a720f7745d9f06c1dd41f6434" + }, + { + "path": "attachments/omnient-13-off-attachments/810F64BC-AC85-4641-8373-B1AF7BAF1D14.csv", + "sha256": "cd9d312986614858a9401ecbee5cf0c1cc909411877a080f102165d9cabd342a" + }, + { + "path": "attachments/omnient-13-off-attachments/E9F2EB11-4A1D-4487-B695-F7CDDE51F527.json", + "sha256": "61af0a81b5fc8efe5ffce9b8f046b579c1eb24f7e9122aec841c1347bed06333" + }, + { + "path": "attachments/omnient-13-off-attachments/manifest.json", + "sha256": "f9852385d42598299744a9d7171dab4ed21168417a2a56b4305b10b977bf154b" + }, + { + "path": "attachments/omnient-13-on-attachments/A33985B6-90CB-4363-B87F-F9F516F4F666.csv", + "sha256": "e28f50eb78d59b1b755b01e31558b0982e514ded99fa86cf863792a734f7ca92" + }, + { + "path": "attachments/omnient-13-on-attachments/C96347E9-DA53-464D-BB78-E32F582E9C42.json", + "sha256": "287391ff68cf601b15bb4ca68a95370204dc63051be7e3e0b0df021515fde520" + }, + { + "path": "attachments/omnient-13-on-attachments/manifest.json", + "sha256": "61c877b951c7846e3d40bccdf8c5b52e8b9d2524b1e7896864b9a5311f28949d" + }, + { + "path": "attachments/omnient-14-off-attachments/5CE9121F-E586-4B8C-B339-9D053F4967B5.json", + "sha256": "3257fb3e2067683d217e86cc65c62999a1284e78f6bfaf55428fd2b73ffb04d3" + }, + { + "path": "attachments/omnient-14-off-attachments/5F361CA2-F52F-4528-B6D7-E8843CE1D651.csv", + "sha256": "887a9f10e816da6777ca82979ff548bffa4c6dacc800da2c86930a0d26bee1ef" + }, + { + "path": "attachments/omnient-14-off-attachments/manifest.json", + "sha256": "7a24af2a8fe592387504a16452688741d5c5e6f2c77507947b7ac0a2d1f2ea5c" + }, + { + "path": "attachments/omnient-14-on-attachments/A54A339C-ED01-494D-8F1D-6E5502909396.csv", + "sha256": "9b1efa48b8823c87659ce0cb1fdd58f00eddf599de8b3a9d2682d07d1709aa33" + }, + { + "path": "attachments/omnient-14-on-attachments/FC553C5F-D36D-485A-81CE-1D4134D9C962.json", + "sha256": "efee2e905df1a7aefbe7ad840c089461b484bf6a70bd105a0589ccdcb59a57f7" + }, + { + "path": "attachments/omnient-14-on-attachments/manifest.json", + "sha256": "2c6af167a407306296a5a0c512700c4948120edd611dceeef145f3ec97ce8bd0" + }, + { + "path": "attachments/omnient-15-off-attachments/4D2CC459-108E-4854-8D12-064AD99EE0CD.json", + "sha256": "056088016738e378511eec084e9609451386e6349cec196181b9fbc25ba9f5c2" + }, + { + "path": "attachments/omnient-15-off-attachments/F6E6B85A-BA7B-4E44-9D61-B7560A5FB0E6.csv", + "sha256": "faa4103704191e9901e1773485314775c5a7d8258547f89e824277e6fe5046b2" + }, + { + "path": "attachments/omnient-15-off-attachments/manifest.json", + "sha256": "fb2826017a31138e939ac4c9883b6908186904480198925a5291e92c3ca0a383" + }, + { + "path": "attachments/omnient-15-on-attachments/3446576E-E308-4CA8-A876-87CF9BE219FA.json", + "sha256": "403a8a2ba52e3f3667fc29a5b28f3113ccf97bbecc4ced476864f83a5db561f6" + }, + { + "path": "attachments/omnient-15-on-attachments/6B98FA67-AC79-4213-9803-8248425677DD.csv", + "sha256": "51db95f6b5bae5d5bbe621031bb8d62a5801cbd9ec13a0d52f24cc9ded71bbc9" + }, + { + "path": "attachments/omnient-15-on-attachments/manifest.json", + "sha256": "330fa603c63d0e43b9c48ca3f2e6364922d3ca5826aaf639f2cd16328bf41532" + }, + { + "path": "attachments/omnient-16-off-attachments/1478A3C7-E2D7-4C72-A5E9-4DC8FB3B1297.json", + "sha256": "4a6ce5bc49140237500b99c1dbe2ed4893acb97027464f900499f91e1d2204ea" + }, + { + "path": "attachments/omnient-16-off-attachments/43F4FBA7-4736-419F-8754-50112FB9A88D.csv", + "sha256": "77a1e1a4f55a559fc2b23d35c1824da00c1b3d392216fd927941c0cc318c26a6" + }, + { + "path": "attachments/omnient-16-off-attachments/manifest.json", + "sha256": "16cf62068efc911701f689bb4826108d5c77d366989731f376109ee7b81865df" + }, + { + "path": "attachments/omnient-16-on-attachments/6BD97954-90A4-4F0D-AC90-6D3974304E31.json", + "sha256": "c993b37724561a3f58115ad68a25703c8452a8854fc2fe7451679dd35996700e" + }, + { + "path": "attachments/omnient-16-on-attachments/7DEF15EA-1826-4BC9-A15B-C45DFFD687B9.csv", + "sha256": "629d5813c9d7774ec71103592dce5569881ca1cd27edd648003bf58f1e2ac267" + }, + { + "path": "attachments/omnient-16-on-attachments/manifest.json", + "sha256": "d68b52765ceb6224713c04fa90db0f2e209bd6c8525d42afce77c3c61d0bfc0c" + }, + { + "path": "attachments/omnient-17-off-attachments/166F0AD9-D033-4566-B7F4-84F7AB8EA054.csv", + "sha256": "16e8206ca6f219eb60faa054e9842f424ca21624a8cfc50ceb582b88ec981e62" + }, + { + "path": "attachments/omnient-17-off-attachments/2B586A6C-5583-4BA5-BE81-0D935BC474D2.json", + "sha256": "ba4fa48af0416e0cb121b2c73ebba7fb3c34f30d857f50c0f4f0ff873fda1cbf" + }, + { + "path": "attachments/omnient-17-off-attachments/manifest.json", + "sha256": "2238ba72e1f4fe4e94484f701e8c75e0c16706d024bcc59ac1ff1b4432328f9a" + }, + { + "path": "attachments/omnient-17-on-attachments/2078480F-8782-4983-B598-CC7BED4BE98B.json", + "sha256": "6d9357bcf8cc8fd11083baab0c3b4b1d5d068f03ad1bedfd318b5d366e5cda09" + }, + { + "path": "attachments/omnient-17-on-attachments/E1F87986-6548-4331-81C7-D4C85761B4AD.csv", + "sha256": "39a73240297e65fc896381213aa135e085fbc9faeb8efd0e34517fd14aa59cf8" + }, + { + "path": "attachments/omnient-17-on-attachments/manifest.json", + "sha256": "0b823ea49b0374a7b0d31da8c12605f265efd23021ba51cfc4c2d0615ef6b9df" + }, + { + "path": "attachments/omnient-18-off-attachments/6B410A77-3F93-4E33-A663-83F2386DAC5F.json", + "sha256": "d2d0a9c17d8bc208eb3368201765f5ba61fb722918c9ffe0405af62645e71de8" + }, + { + "path": "attachments/omnient-18-off-attachments/F2FB43CE-385E-4B99-A054-C4CA0F815C05.csv", + "sha256": "6a27205c7354bf49d78b1061ac74bf437dd9127218a61a1242fb7631a4810eda" + }, + { + "path": "attachments/omnient-18-off-attachments/manifest.json", + "sha256": "957fa66c56e5bb10ecee18e41ef6bcfcea0d42193b7e0535f1a84d4abb7e1b2b" + }, + { + "path": "attachments/omnient-18-on-attachments/97B35CA8-6D7B-4E98-B929-621D72EF8019.json", + "sha256": "9b6f182c333155941dbcf6a0de2d51db25e5fe8e103d930f7da6e498608b1306" + }, + { + "path": "attachments/omnient-18-on-attachments/F2A234FC-1E3F-41E9-983A-C39CE4448276.csv", + "sha256": "6a2a41a8f03e3d81c632a7347687849a398cf6ba4a35f8c46bb80bb5f316d2ad" + }, + { + "path": "attachments/omnient-18-on-attachments/manifest.json", + "sha256": "57ba32c9a055e4cf8fb3ce31f634149a34789b29b6b8fbc7bd9cf4cc2dc94ef3" + }, + { + "path": "attachments/omnient-19-off-attachments/4D0F6EBF-337E-4C47-B489-F346382265FF.json", + "sha256": "a7e7740dd2b495c89610dcb2921e44f173c9a20ab2e92b39fdc1466c69b1d89e" + }, + { + "path": "attachments/omnient-19-off-attachments/F01356F7-9A31-4081-8B9D-79CA440635C8.csv", + "sha256": "4a29325a397385d2c421d7eaffd81f23683772940df2e97b53358b30f41eb168" + }, + { + "path": "attachments/omnient-19-off-attachments/manifest.json", + "sha256": "a5450b4a97c77fae86fba865f4db911658c19a3f83672836c5983e7aa9cea40a" + }, + { + "path": "attachments/omnient-19-on-attachments/02F0198F-D9C9-4F83-8D37-F99CE906F165.csv", + "sha256": "9530518c02439986d238cd4e0c5fea6e4cf51505c36a1f70d0e03d01b5f839f0" + }, + { + "path": "attachments/omnient-19-on-attachments/7C2DB65A-C449-4850-8A9B-1D5270DDE4C5.json", + "sha256": "0c61152fa4981e8dcdc29a268d112ced5f00c6537c3167cb75dd0697ec52c2b9" + }, + { + "path": "attachments/omnient-19-on-attachments/manifest.json", + "sha256": "9c21a1c71c9dfd90f92614ff24fde643ac719b7e190ad6518cb6b3fc160bb29c" + }, + { + "path": "attachments/omnient-2-off-attachments/7D68E2AF-1800-4265-822B-F882C716FBC8.json", + "sha256": "b8931eb0a07661660fa7edf31507b2eff6ae6dfc5a2fb867575eee5957346b0f" + }, + { + "path": "attachments/omnient-2-off-attachments/F71C8532-0819-47BF-A869-A6F34065FE72.csv", + "sha256": "8bf0e8eea37264abaadffa16971dafe2c1ec1b8cfac62ba20c20c18f05c89e09" + }, + { + "path": "attachments/omnient-2-off-attachments/manifest.json", + "sha256": "71f649f0e363b485f10b8fe16fd0f2dcb80d747122346efb5b9bbd3fa69d7efa" + }, + { + "path": "attachments/omnient-2-on-attachments/7515F939-3E1F-4A6D-AF98-051C83F44070.csv", + "sha256": "192ccac2cc990b0ecb6f3a7b897d80f97b33b655960dcb8f414f786f3edd6e45" + }, + { + "path": "attachments/omnient-2-on-attachments/76709039-ED33-4264-A2D9-D4E30D027408.json", + "sha256": "ca2e6f2fdfa686ee202ba89b55c22bbffdbb976ffbf502e8f77f2612215a1db9" + }, + { + "path": "attachments/omnient-2-on-attachments/manifest.json", + "sha256": "9c68f19a93b8ba4dd1abb8f0d127ad3ae4b78d30e522a16b7fb90ed00a7c5b08" + }, + { + "path": "attachments/omnient-20-off-attachments/098D5A1D-93F4-41D3-96EA-008E3399FD68.json", + "sha256": "7fcb739fc3940147d4de72cc93dcfab331f6ca55ff46a5eb788c581349d9fd4d" + }, + { + "path": "attachments/omnient-20-off-attachments/6F0BCF98-98D7-43F9-BC31-86D538AED11D.csv", + "sha256": "c6e8ffbebdd4227a57ab6bf663e291c0597412293aab501523f06bc8a3e0092a" + }, + { + "path": "attachments/omnient-20-off-attachments/manifest.json", + "sha256": "2d9f61196749453afff2434f839260f4b457f6fa50c098157b1ca19e0c4901aa" + }, + { + "path": "attachments/omnient-20-on-attachments/639892DD-6855-4975-A20C-7F60EF474B36.json", + "sha256": "b7bc1eae6b1a12433bf9d685def5da3e9c5977afbc812c7e77a267e2cb6c9426" + }, + { + "path": "attachments/omnient-20-on-attachments/BB9B9A7B-EEE9-4AEC-987F-B429A9F22E4B.csv", + "sha256": "d3e3c32c23390e3408313a4e836542376910a0184867469defb384dd17c1aa05" + }, + { + "path": "attachments/omnient-20-on-attachments/manifest.json", + "sha256": "783e55bd08938ceccf1123b61bfcbe03f7ac8cf63740393380480ee6757cec51" + }, + { + "path": "attachments/omnient-21-off-attachments/377CAF64-82DA-4A7C-AE35-D3F37AC74094.json", + "sha256": "f30509395490aa192e70c16d20cf2ef856623113d8f313352e0034bd3cce02fe" + }, + { + "path": "attachments/omnient-21-off-attachments/E8340FD8-C6E0-496C-8EA3-7258DB62D6CC.csv", + "sha256": "3fd75d326207ea43d5045227d054e073d2bfc37db8af68aa0b1e91b14aa9485e" + }, + { + "path": "attachments/omnient-21-off-attachments/manifest.json", + "sha256": "16b903a2f5d70b0460e508c8da1286e7ccc17b9d905ded062cbc761a886ecb1a" + }, + { + "path": "attachments/omnient-21-on-attachments/9224979D-8729-4ABD-8866-FBF7ED7E3A91.csv", + "sha256": "438b39d8923db7b904e556974c04076fe4f2456f958a75b580a0b627c9caf138" + }, + { + "path": "attachments/omnient-21-on-attachments/A59D04A9-D202-4A82-8227-95F63DDA1E0D.json", + "sha256": "532edceb732cce3e3490b195f154bdbae606872c8a101624c093209745e2e35b" + }, + { + "path": "attachments/omnient-21-on-attachments/manifest.json", + "sha256": "69dd6c503fe7aef994889d1445255c247ce22eecb7bc4b19b714523c73809e9d" + }, + { + "path": "attachments/omnient-22-off-attachments/84A5548D-8BAF-49B4-92EC-F23AF7C65607.csv", + "sha256": "8749adb25645c31cc7e60330abaf5d836ac9d05e6b2a7ae33bab6ef8edb7227f" + }, + { + "path": "attachments/omnient-22-off-attachments/D213D383-E111-4731-B6C1-0ADB3CCB5EE5.json", + "sha256": "6cc1458842735a8d65354585412df342f6fd957c9f81c22d1cb7f75e9ead4978" + }, + { + "path": "attachments/omnient-22-off-attachments/manifest.json", + "sha256": "d04e84423c69fafb86077d94e140ddc243ef60fc78387abdc420e23fb9033f38" + }, + { + "path": "attachments/omnient-22-on-attachments/7C48D095-C6A6-4E2B-8F61-8FBA045BF75B.json", + "sha256": "5a60704c81f2bbf0b3b18ae3c305fd5388c94e5f01348f415737848d54758acc" + }, + { + "path": "attachments/omnient-22-on-attachments/B3A54946-1CE2-4267-ACD4-AB3219030337.csv", + "sha256": "82daeda52735c8847655a37bfb698f490fcae3f69568293ebf74f836c1ca69aa" + }, + { + "path": "attachments/omnient-22-on-attachments/manifest.json", + "sha256": "09ef509e717acaaa70d07999e14d7e252bd1378ea170731423a8ad69c99d6b23" + }, + { + "path": "attachments/omnient-23-off-attachments/53333517-5D9A-4B10-A2F0-4F72EDBC4D4B.json", + "sha256": "6d440afec4e4163161c7f2ef9d03320cfd411873da6ca0e34e9fcef41e89c978" + }, + { + "path": "attachments/omnient-23-off-attachments/8189CD38-23F6-4D1B-B024-AA853009304B.csv", + "sha256": "60f54e52419bd744544f989a80f4296918a9aeb7e1893234962497b7832b61c9" + }, + { + "path": "attachments/omnient-23-off-attachments/manifest.json", + "sha256": "c6f66c0434a6d142d2588afa872b2299c8a70714dd7f8c257070d11e304a2a98" + }, + { + "path": "attachments/omnient-23-on-attachments/52D5BA74-C975-41A6-A1B4-D217C8D8D1A2.json", + "sha256": "62e90c3ae09fea98d756dfa509087191e54c548ea72f5adc08d0c229ee9cd9b3" + }, + { + "path": "attachments/omnient-23-on-attachments/77E286A1-0215-41A0-9193-F63AF2FCFBDE.csv", + "sha256": "75fdf5fe8208a99cdb4ce23252efa973609d81d1dd8054502110874fa13ee07d" + }, + { + "path": "attachments/omnient-23-on-attachments/manifest.json", + "sha256": "2bb794f0ad8b87ee1466bb05c6bf3d7c44866623671c9f7de41321e557c162a6" + }, + { + "path": "attachments/omnient-24-off-attachments/1FFD595E-9AF1-4B01-8012-93BA9FF304EA.csv", + "sha256": "5eb993a55aa8c1f5f0cdddc73645e1c2f7f3bf17294434d445f47accd3364325" + }, + { + "path": "attachments/omnient-24-off-attachments/E1029505-152C-409B-BD4A-1BEB4D5A17C1.json", + "sha256": "7a014b89ecacef8a1c8d1cbd1ce367d87d2f186a1531312ed576fc7d15ea2d8b" + }, + { + "path": "attachments/omnient-24-off-attachments/manifest.json", + "sha256": "47736e411193aac5d66dafaffa919a8e3641929b35851057d90bd051a4eb1e3a" + }, + { + "path": "attachments/omnient-24-on-attachments/1F524260-9A3D-4575-B3F3-5992A3660DCB.json", + "sha256": "f6d963b422fcb28cafe94cb2c6b2c701d79d065169c0b4bed236e6ca7a475e99" + }, + { + "path": "attachments/omnient-24-on-attachments/BF3F00B6-81BA-4308-834B-FE6CC57F5B6D.csv", + "sha256": "ee31c2f3c5c061947eedbfaf2066fffc2b0f2f11441322d397755834a5d2b2d9" + }, + { + "path": "attachments/omnient-24-on-attachments/manifest.json", + "sha256": "c191fc8a141444d013205ece9ecc3ecdf7859f9e30a4f550e2c1c368e1cbe4b1" + }, + { + "path": "attachments/omnient-25-off-attachments/963F0DFF-4D47-4F97-A3F4-08C48AFFC84B.json", + "sha256": "8ccfcc8117511af4a3d57e3192b8e12b027c3d27de49bbd82c56cbe0459d4611" + }, + { + "path": "attachments/omnient-25-off-attachments/FEF35487-A76F-46AD-803F-B2ED61AB60DB.csv", + "sha256": "eef6aeca3c0498e633ac73aa720351b1d8bb7eaf2c6af35c4d4b5762ae2cae8a" + }, + { + "path": "attachments/omnient-25-off-attachments/manifest.json", + "sha256": "423dd4200ea63c5f2f690b9cbdcff369539763d15930eede3e173e76a3319f10" + }, + { + "path": "attachments/omnient-25-on-attachments/A53CCEFF-C3B2-4E8B-8798-EB13723020EC.json", + "sha256": "8a9f5865f8eb6a703752b57336f19a152a73a7b63387823d9f8a129a99238ca9" + }, + { + "path": "attachments/omnient-25-on-attachments/FA1AD431-3AC5-42D6-83BF-2BE59AA752A9.csv", + "sha256": "9771e9eb90841bc6176cd08d2795096bb2be9f407972514b89bd2bbcbefab7e4" + }, + { + "path": "attachments/omnient-25-on-attachments/manifest.json", + "sha256": "f78741e9cbab06865bad4475236948e68002963531d452a9fa3f599c58927cd4" + }, + { + "path": "attachments/omnient-26-off-attachments/DA4C0F06-6795-447A-8E70-1E58A0C6B770.json", + "sha256": "46a67cb27e493ac146e50c1eda3febad964401e4366e04fc31d2319770d0bdd5" + }, + { + "path": "attachments/omnient-26-off-attachments/F1A0015C-B543-4ED9-A7E9-B867239FCE51.csv", + "sha256": "820518ba2222f16daa0750384bdc7ef53286f49d1fc1bee60d7d0edaf0a7cc44" + }, + { + "path": "attachments/omnient-26-off-attachments/manifest.json", + "sha256": "74f1ea9c042f52216965e0e20803a243f984e0e999a2806da6d201c61a6bd649" + }, + { + "path": "attachments/omnient-26-on-attachments/3730F0F1-0E6A-4BD4-AF11-336F3F7F3229.json", + "sha256": "df74e2f3b234b5efe1d97c7f30cc262b6e6fcd2cdcf9f5e3cfe1b3b16fd93fc9" + }, + { + "path": "attachments/omnient-26-on-attachments/BCBDF052-07EF-4999-BE88-F2BF78E9565C.csv", + "sha256": "56f0ca06b9e21aaa9c8e7abee8a62879fbd5b905d66fc84649e33616f95dd139" + }, + { + "path": "attachments/omnient-26-on-attachments/manifest.json", + "sha256": "daeabc700efdf391636994509a1a95cef1c32e7be58159c8614268282f039e1d" + }, + { + "path": "attachments/omnient-27-off-attachments/1DC16DDA-2DAF-4E91-B507-B7D9F166F436.csv", + "sha256": "6418a6413cbbc2826cfa3ec3e4538871eadd74f6e42f6547e3656f139926a81d" + }, + { + "path": "attachments/omnient-27-off-attachments/3ECA6EB3-0259-4BB8-ABC8-CC7B3AD4C364.json", + "sha256": "72d18c04cfbb70de547e92728815be7c9ca19219ab4ae069b2adeab26f75fcc4" + }, + { + "path": "attachments/omnient-27-off-attachments/manifest.json", + "sha256": "d43639d5a1582073bde1538dcb162ec377a47864edaffd5acbfbd5a840444556" + }, + { + "path": "attachments/omnient-27-on-attachments/70849D6D-2DC8-4021-89E9-8A38DC4327EB.csv", + "sha256": "5a784afc6ceab46ec13f943dba54d606b6a1290a6641a169051476df1dff917d" + }, + { + "path": "attachments/omnient-27-on-attachments/A857A5E9-CB3F-4951-8CFE-373E5F60AC69.json", + "sha256": "7dddc180e412b4b9d3821674457ba2997b940662a3e70f8cb6bd495d487446e8" + }, + { + "path": "attachments/omnient-27-on-attachments/manifest.json", + "sha256": "c40dd267f791368918309f560925f6de3ce5d6b0875d91b90cb40dca57576b74" + }, + { + "path": "attachments/omnient-28-off-attachments/80A6A842-04EA-4313-86A6-520C6B7DF6AC.csv", + "sha256": "2e846093b7d6f5cbefddb4ceb09447e99d13f837e50d54a58b9d5c433890f685" + }, + { + "path": "attachments/omnient-28-off-attachments/E501B635-9AC1-4B73-8D88-6E9A321DD1FA.json", + "sha256": "87d8a16f4ac1ddd30c6b7fa7a263c9fe9cad5ac684ace6ce87fc897d85aaeb6a" + }, + { + "path": "attachments/omnient-28-off-attachments/manifest.json", + "sha256": "c6f9ab357f6a07ce842b6225389bd9f2729198e4fb26caebc39493cbf9d4d646" + }, + { + "path": "attachments/omnient-28-on-attachments/7AD0A599-9844-4E14-9426-527582D27671.csv", + "sha256": "971997c8ab432a389451feda78fa675e2fea34f0cb738ef01df9d47316a2062f" + }, + { + "path": "attachments/omnient-28-on-attachments/EC80DCA0-DD6C-4A33-983A-D73A12C5294D.json", + "sha256": "f43b9c81c73e4d886746581f46307ee38c7796d87eca2e5d0d7ab32ca8c26ec6" + }, + { + "path": "attachments/omnient-28-on-attachments/manifest.json", + "sha256": "7afa9dda93a86c90da25ad05fae35e275e8afa1e8cccc567f6da37b50bb2d46a" + }, + { + "path": "attachments/omnient-29-off-attachments/37118FE2-B663-4B67-A396-DCC4B1658FFB.csv", + "sha256": "b7d2cafa28feffe398354c9d23762ed3fd4414506a388be8109edd0eb61d208c" + }, + { + "path": "attachments/omnient-29-off-attachments/47676D43-6396-4683-853E-6746CA66AA0D.json", + "sha256": "a0e0dc28676d9fa0bc6ebb2bf53c1e0f29cbb6faf91999d35b0e06014989bc55" + }, + { + "path": "attachments/omnient-29-off-attachments/manifest.json", + "sha256": "c2e69ba72bf9c7c92e65ae218e24786b483f34908aa38140f8f8f13e166b2f3a" + }, + { + "path": "attachments/omnient-29-on-attachments/18046288-1A9E-4A23-B2A7-F1670FEC5A3A.json", + "sha256": "2249243d99893a4697d7d744c252cbcaedc65030443d136575bdbf961928cbc1" + }, + { + "path": "attachments/omnient-29-on-attachments/4929DF15-7AB3-4CC7-9BD7-228926914C99.csv", + "sha256": "9ad4569a9cfea2a99784d08725b2896d98ad166fa5e694c2f63c96992c261761" + }, + { + "path": "attachments/omnient-29-on-attachments/manifest.json", + "sha256": "92bc2359e5a0042d47575b1e37ebb9fbb75a43d33472559d52387fe1804db996" + }, + { + "path": "attachments/omnient-3-off-attachments/BFEC511E-7395-449E-AE82-755980099749.json", + "sha256": "6076e14621e95dd09d966ad24256f19c05a5a76cea14de9c672423a85deab6fc" + }, + { + "path": "attachments/omnient-3-off-attachments/FF33C59F-6113-4196-ABC3-44F68B142BE7.csv", + "sha256": "377d6a167a141f2bd8b41e0d32739fd83c3b48f4dbc34fff32f9f38d0786b0d0" + }, + { + "path": "attachments/omnient-3-off-attachments/manifest.json", + "sha256": "2a3030fd6b4dbce86b8246b027d32e24baad638dc64617775795bcc6eb96dab8" + }, + { + "path": "attachments/omnient-3-on-attachments/3DB6F26F-EF8F-4A32-BFCD-98E8930DB809.csv", + "sha256": "ba328809540180fb2d859ff34946cafaf11d290191abbc9e55b79def11f9f807" + }, + { + "path": "attachments/omnient-3-on-attachments/8535910F-7DB0-4D0B-B2D9-0867F1784A75.json", + "sha256": "4e11516fff010bdd88898c7027ff336a2da0073272e46744143b509dca0c01a4" + }, + { + "path": "attachments/omnient-3-on-attachments/manifest.json", + "sha256": "9b509709c4f998b8e6fbf3d0aae707aa1e278151f6c6139e3562e50b7e365de5" + }, + { + "path": "attachments/omnient-30-off-attachments/623495A2-E29F-4B85-9E9B-F6D4160F6959.csv", + "sha256": "cc99a55cc63132427df6e81c2d1d683d2b22fb07fdfa6380213e0d89a3caff83" + }, + { + "path": "attachments/omnient-30-off-attachments/7EADDAB6-4B3D-409E-8EBD-00B10C73FB4D.json", + "sha256": "9c62c5d65db2d04f751d80a47d4701a176ebcd16b0042f6a878c5b66ae933197" + }, + { + "path": "attachments/omnient-30-off-attachments/manifest.json", + "sha256": "9aa7b74a3d57aa1caab8a17a56945b9951553d509c4d8d64027132996c784020" + }, + { + "path": "attachments/omnient-30-on-attachments/5142655D-4285-4270-830E-14090D57998F.json", + "sha256": "5d2b67b886818276b1473d37a936f521b95e2ca0b571db79bf81662cc28e58bb" + }, + { + "path": "attachments/omnient-30-on-attachments/C3220496-33CD-420D-92EC-8B82504BD8E8.csv", + "sha256": "cae100c5488f7e93cea4160b656d6f04dc8f3b3886cadb4e526cf572b905f508" + }, + { + "path": "attachments/omnient-30-on-attachments/manifest.json", + "sha256": "a9418b6b62a23fd1673a387c820cf853b7ba74144afffce156a43d4046159d96" + }, + { + "path": "attachments/omnient-31-off-attachments/345F4FAB-6CF6-4E2A-9D2B-6B1D19AF5703.csv", + "sha256": "18b1b0f53a2a1b7bdd67120b23847024ba3f0dce6f45bb49dc7fc8ea9c7d2b96" + }, + { + "path": "attachments/omnient-31-off-attachments/7201EE76-719B-4A02-B0BB-37EEA0AF1CFF.json", + "sha256": "272607d659f274a915b172e118dac1df3e1467403faecf6a66e305aff87423c0" + }, + { + "path": "attachments/omnient-31-off-attachments/manifest.json", + "sha256": "34b5978a7ee430fd8ca233eb3e3cf4c9d4379a6451387693bc169845b3934aa3" + }, + { + "path": "attachments/omnient-31-on-attachments/0D52CCA4-A89F-42BB-847A-855D776D9FC1.json", + "sha256": "06a33eb197bbc245317066590afee6852f233309c07131990a23bb2fe013a3c5" + }, + { + "path": "attachments/omnient-31-on-attachments/5974A353-DD15-47FC-B26C-705464253990.csv", + "sha256": "30ab43348d198628ce174396ccda17e3d111b8228f0de3baf8f67eb1ecc26acd" + }, + { + "path": "attachments/omnient-31-on-attachments/manifest.json", + "sha256": "df0cb4a35753b0b2a5a0bbbe4bceb6b7862df05ff478d96d60794062565b467b" + }, + { + "path": "attachments/omnient-32-off-attachments/8F8A75DC-027C-4116-98CE-A7396FFCA024.csv", + "sha256": "255e07b36617891bd6b53be759ce1abc009826598c8f83c196caedaeae1fdc08" + }, + { + "path": "attachments/omnient-32-off-attachments/DC10A180-E449-4652-A077-4F71EB68EB7D.json", + "sha256": "61e6399134674aafc89e63a52e6f23db25da2d366a3fc75edaa30623946e3e75" + }, + { + "path": "attachments/omnient-32-off-attachments/manifest.json", + "sha256": "bc99dded9a0f4d6f484153d6e9948a6853c30a914e2716a77eb111eba45f2b56" + }, + { + "path": "attachments/omnient-32-on-attachments/203571F9-630A-4049-B483-39ACC9ED59E4.json", + "sha256": "a3e664154d49d67cc7c53848ab0f6d3564a786a257faf469a8ad8d55fe60769f" + }, + { + "path": "attachments/omnient-32-on-attachments/4FB0E495-C9DF-4132-A8C4-F7CF40781684.csv", + "sha256": "e889b943068c458330919331d5e57f6922ebfabcd17e8eb0d1b409130e527b2a" + }, + { + "path": "attachments/omnient-32-on-attachments/manifest.json", + "sha256": "0736a0078daa0270c8b409581e23dff2eaa5321e0b6de7b859d5e6ca5df01cd8" + }, + { + "path": "attachments/omnient-33-off-attachments/570B45E6-95D3-4E6A-AA32-7931DC012DE7.json", + "sha256": "d0e26703b7255d99a3f5f82babf43dce7b6f95425751ee298503682955f69e4a" + }, + { + "path": "attachments/omnient-33-off-attachments/91EE7142-8AD3-43C5-887C-187B558E10CE.csv", + "sha256": "924738347651b39e71b5f80544457108b38b8d9f6e87be9e3d4a386d07ad4291" + }, + { + "path": "attachments/omnient-33-off-attachments/manifest.json", + "sha256": "9ac2fe15ae41b3379855b05d5953855c1ce985ea9c8884eb120b2d8cb219104b" + }, + { + "path": "attachments/omnient-33-on-attachments/412E53F0-B775-47FF-A34C-9A6A62675A63.json", + "sha256": "50a9e2459f476ed62667b494e896a0d4d02818c9b901cab113b58b71f145389a" + }, + { + "path": "attachments/omnient-33-on-attachments/B03411B4-8049-41CE-B1A1-7F973CCF8231.csv", + "sha256": "1b6502e20bf4b3c84dce436f39c5b2f137831778674b53333ea9325b2d5ad625" + }, + { + "path": "attachments/omnient-33-on-attachments/manifest.json", + "sha256": "2566059dd443f489d49e40f6dd0fb95d87edf1639299d3212e87a11308f4c78a" + }, + { + "path": "attachments/omnient-34-off-attachments/1DB20D65-7F57-4F54-AE99-4BC86E61DA3F.json", + "sha256": "22fba292dfa92bf478bfce30b47f1382f3db774ba92aafbc983d95df4229a56d" + }, + { + "path": "attachments/omnient-34-off-attachments/F17F4EA7-9AF1-4C89-8343-68122DC2DCC2.csv", + "sha256": "7906aaaccc3067b1befb2cb194ae75ee72f3bf66be8df30e4c3dad7716717086" + }, + { + "path": "attachments/omnient-34-off-attachments/manifest.json", + "sha256": "1885c2a15513e0822d59db5660a8912e0abdcdadf16aba2200549e9b5e5bc3de" + }, + { + "path": "attachments/omnient-34-on-attachments/2CB8E852-6266-43E5-95B9-230A6970E5C9.csv", + "sha256": "87f1bb4dae9722652005873c31641e19c0364128433723d5d209d70e9c5ed526" + }, + { + "path": "attachments/omnient-34-on-attachments/54EB13B7-D95F-48CE-8335-184034B27DF0.json", + "sha256": "e0c70cf7e1d85f33b7884bae248498de037af474416494c2ca4b615f593cc74b" + }, + { + "path": "attachments/omnient-34-on-attachments/manifest.json", + "sha256": "55c0185aab46152f5f60df52077db5d078cebd92e13d312885b3ef0ef496b31f" + }, + { + "path": "attachments/omnient-35-off-attachments/01677329-D115-41D5-8A1D-27F9AF2E2DDE.csv", + "sha256": "afc386e8a7f70e842aeee3e50aa9b8846799772e9800eb4ea69dccf0770a335b" + }, + { + "path": "attachments/omnient-35-off-attachments/5792CF14-48C5-48A5-9A08-5A1A00FA10D0.json", + "sha256": "c0f8300e275b0c051cb388653969ee9362d290bae50faa376ca063b28cdb7dcc" + }, + { + "path": "attachments/omnient-35-off-attachments/manifest.json", + "sha256": "33e3acdc6756ff7047d0acef7b44499a06c54fbd7e8c96f4fad18ff4124dcc13" + }, + { + "path": "attachments/omnient-35-on-attachments/7503DE1A-2468-472D-9318-E50CE4CFFCC0.json", + "sha256": "38dd982ac93e426ff16dc3e2672363c5898a7c2f319bd2cad97bb4ccd6020de7" + }, + { + "path": "attachments/omnient-35-on-attachments/A72B129D-A3DB-41DF-884D-CBDA691F4B59.csv", + "sha256": "928a66a98b931027450b4d667de298d2342c584cc09019c85e9c71ea6a706006" + }, + { + "path": "attachments/omnient-35-on-attachments/manifest.json", + "sha256": "a0887308dd1ad1389156ed17c30e88e69f056c40c4ba8921ba41df9a6381d02d" + }, + { + "path": "attachments/omnient-36-off-attachments/38EFAD4D-8DA7-46BA-872A-2FBFE81452BA.csv", + "sha256": "a70904c5a0b387aff52c35bb1929304dacf8f9c7897ed41ffe41593540771973" + }, + { + "path": "attachments/omnient-36-off-attachments/B60ACFD8-EA36-4736-BD24-DAD74283A353.json", + "sha256": "81fd201a800f06e9956cf2eb61b4b43d5dd15193e6b13e192776357028b12e26" + }, + { + "path": "attachments/omnient-36-off-attachments/manifest.json", + "sha256": "984f02dc349577b1db2f117f7c44718a0d174ff6cabd06a516290932e0e1c417" + }, + { + "path": "attachments/omnient-36-on-attachments/7607B701-2EFF-4BD9-9B1F-AB11309EB1C5.json", + "sha256": "40ab202dcae97151a9fb8d7be1691f93f63b2729d332f1752cd4755bb7ff0430" + }, + { + "path": "attachments/omnient-36-on-attachments/85FD36BF-FAAE-4C74-BCDB-062C2A3AD0BE.csv", + "sha256": "2209bf763304a81d145c1f88d80c0f175ac6aa1f4a56bd4d4fd42cf67b981d2c" + }, + { + "path": "attachments/omnient-36-on-attachments/manifest.json", + "sha256": "8ea41e211285982639d359fd15d9f07b165965441e5a26032fe05ecb5b9702c8" + }, + { + "path": "attachments/omnient-37-off-attachments/9607DCAD-23D5-4D37-9864-71CA727A35CD.csv", + "sha256": "692def5244b44f9a81f6f477a72b7731dfe07261ab8c4b5137d099c6971383cd" + }, + { + "path": "attachments/omnient-37-off-attachments/9F2D1CDB-5ABB-45BC-825E-B7537B6C1D7D.json", + "sha256": "8955ba845d858cb4456997e2d86793d4d211a1b3ea7288d95e9d2b9b686f4334" + }, + { + "path": "attachments/omnient-37-off-attachments/manifest.json", + "sha256": "226e7fae8547f6d9c2c7bf206c11c7db5cad4320eb969156f4840eb57026493a" + }, + { + "path": "attachments/omnient-37-on-attachments/1A40A9BE-8BF3-4CDE-823C-78660711D6C3.csv", + "sha256": "7cad089f64457bfc2d02e56459de4d1effe6c9fdfddceb318ec983361853bb69" + }, + { + "path": "attachments/omnient-37-on-attachments/8BDF6B0D-83D9-4839-B0DC-889306DE15BE.json", + "sha256": "03823b8634a60468bc78f2355e3a49e24f6238a1957e4c092d5f3a05a2bcce2a" + }, + { + "path": "attachments/omnient-37-on-attachments/manifest.json", + "sha256": "87b93211d380767ff590606e19f9bc88ccd081962d377d84311986a04d8233e8" + }, + { + "path": "attachments/omnient-38-off-attachments/9610A5DD-6AAF-486D-BF11-FBE2A9F39FBD.csv", + "sha256": "8a68cb3c8213aef702527907b6d57ba29deb51dae13124571dd812af5bd856cf" + }, + { + "path": "attachments/omnient-38-off-attachments/C0399E69-426B-4DB0-BE97-F7D48A6DC901.json", + "sha256": "855d88b5a086165804e8ed5b3859103e79727d0d780c55b807918e43dccd27c1" + }, + { + "path": "attachments/omnient-38-off-attachments/manifest.json", + "sha256": "a7be14090a2a1a4ddadccd27de923d491a3b615265fa96b0d56bc41c0e55b729" + }, + { + "path": "attachments/omnient-38-on-attachments/5A5E51B8-F2F5-4C7A-8618-9FBFF764AAFD.csv", + "sha256": "4d222587b7054b8a82af0726fb8affdff60acd50def33f834eebce1418c7a64c" + }, + { + "path": "attachments/omnient-38-on-attachments/65DD8380-26F6-4C07-90CB-9D58598AD3A1.json", + "sha256": "5663e42dbe0ba6c8138227145ac0a57c28b6f8b9622569156d531287d6a08917" + }, + { + "path": "attachments/omnient-38-on-attachments/manifest.json", + "sha256": "49c42ba8c8b307c5bd9f0f07a93a9a1cc3c901bf1f8eb80d19b09c0aaab99f3a" + }, + { + "path": "attachments/omnient-39-off-attachments/43CC1BD1-0867-4501-AB0B-93EFCE3A483E.csv", + "sha256": "0728562a934fc1fa792622082f163f9c112f96e24c0bf329de869684e004bdb5" + }, + { + "path": "attachments/omnient-39-off-attachments/BB05A408-C8CD-4FB3-B2E7-B1B89F613618.json", + "sha256": "5e165af2d661a4af5133620796c71958b5833ce78f7918b84398e73f373fdeb2" + }, + { + "path": "attachments/omnient-39-off-attachments/manifest.json", + "sha256": "848f61fc74bbbcb7e3d95d1610dfdbe9c3eb80c0c9af0751e4959c24a72c8ca5" + }, + { + "path": "attachments/omnient-39-on-attachments/11B9F71D-BADD-4936-95B6-78F989FA2DCF.csv", + "sha256": "2ed5e4c888e33a323b6563406d185ad904485699b8d7cdad3aa60528252acf3f" + }, + { + "path": "attachments/omnient-39-on-attachments/40C86367-7880-4D05-84B8-35C3F61D34F8.json", + "sha256": "0ad4e557c133e337e37671864a8b58c54520ff8e58b681d18c0604c50add9075" + }, + { + "path": "attachments/omnient-39-on-attachments/manifest.json", + "sha256": "da4ff813b81696cb8e3f3de4da2eff1d9669c2e2818ae3e65a0e1156d8e7ad1e" + }, + { + "path": "attachments/omnient-4-off-attachments/4D57A70E-4719-41AC-A222-FBC1DD0F29E8.csv", + "sha256": "0d94a53bde170af7080889349964baed32866f05eb5152dd8552e52793b04110" + }, + { + "path": "attachments/omnient-4-off-attachments/A1CD9359-36B9-4644-97B5-59083902967D.json", + "sha256": "0a243fecb567814939d96ee003b3423ac237a08637943e930c92f247f9a6315c" + }, + { + "path": "attachments/omnient-4-off-attachments/manifest.json", + "sha256": "abff8c3b66ea272e184216aad53cf31cbbfafdfe4a6c24daa981858f87ac620d" + }, + { + "path": "attachments/omnient-4-on-attachments/2CEC77EB-4F2D-49EA-8088-3461EC933B96.json", + "sha256": "16bb4bc87cf80948123c6c2d38acc583ddb2bb159a1be6afa50c58573b3e2e76" + }, + { + "path": "attachments/omnient-4-on-attachments/8ACD2068-4DA6-469E-B224-619CEE7239E8.csv", + "sha256": "13e47d94646df576d188ebdeb7a6fe56f1e73e753ef6b86144636941828b8cf4" + }, + { + "path": "attachments/omnient-4-on-attachments/manifest.json", + "sha256": "6a62f9a79ec75c97837c33a10f87e6ba6da5471d7d4a67e2ee19fea968a95648" + }, + { + "path": "attachments/omnient-40-off-attachments/50008E7F-1425-4221-878C-4DAB3827ECDF.json", + "sha256": "debe5e9f4827b3a44b3ded03441fe5176ef8a64f6db7631849541f97a646c56f" + }, + { + "path": "attachments/omnient-40-off-attachments/A9D460BE-F1C4-4C37-819B-5F102A65FE19.csv", + "sha256": "19dc4f9d255331fc30e8989ec2372ea5429e09995b3d8121a6cd5742becde1a9" + }, + { + "path": "attachments/omnient-40-off-attachments/manifest.json", + "sha256": "a0a446e9fa08bd1242ef6eccf83b2c8f286ed5b7774cb7cae8b83d90bb11ec4d" + }, + { + "path": "attachments/omnient-40-on-attachments/663A009E-1887-4F30-BAFC-0A342C402B2F.csv", + "sha256": "5acaa01fdd622d0597b87791efaf6e74611809f47ad98bdc5dd437f9ea5f81a4" + }, + { + "path": "attachments/omnient-40-on-attachments/E5F2F58D-3468-4C79-B63D-3A13EEDB828A.json", + "sha256": "341cf6c0e248f6b4e619e46c127505e487449acf6b02e96ef34c59ec4d828979" + }, + { + "path": "attachments/omnient-40-on-attachments/manifest.json", + "sha256": "4f4e798ff5506357b507e06a20dbabe9ab3be850e5e76bec61ded89885193240" + }, + { + "path": "attachments/omnient-41-off-attachments/1DEBE1C6-4F4A-4F7E-9CDE-A2DCD4A0E619.json", + "sha256": "cfac5b4bc46ee656d711363cb45dcb56b38874aaa2d60564f3684f4367e390d5" + }, + { + "path": "attachments/omnient-41-off-attachments/A4FCF1C3-19DC-45DF-B1EC-86731328BBE9.csv", + "sha256": "a2aafd5abe22fb73f411cc5420614198f9a68ce2bac4de92e8f6777cc9c91dd5" + }, + { + "path": "attachments/omnient-41-off-attachments/manifest.json", + "sha256": "0cae1e9901e883b6d0dcf02e6215e14b50281643d52ecdeb12fa0c39a04b73c5" + }, + { + "path": "attachments/omnient-41-on-attachments/142E1DD6-D820-4154-8577-CF348AB3DC15.csv", + "sha256": "dfa16df11c2d97a6810f543b4e04e413e8ccfd2e153ab9f15b6d11b475bc9732" + }, + { + "path": "attachments/omnient-41-on-attachments/D92B06D0-9DF5-4DF1-A3E4-732BB1014BC3.json", + "sha256": "5db25eabadc48104c712b0b2900ab331cbd372544135c179f7056a3918c302cb" + }, + { + "path": "attachments/omnient-41-on-attachments/manifest.json", + "sha256": "4381a19ea5582151b8e8b98269d30a9666114ec38614f1778e94a2d0bf2a4953" + }, + { + "path": "attachments/omnient-42-off-attachments/0DC05290-EC10-491A-B30A-7445EE89300E.json", + "sha256": "e59645b997b6e137714c994ae66737da59f1f7a289f5a6578b36dd2a547e8d87" + }, + { + "path": "attachments/omnient-42-off-attachments/A1264CA6-CBE1-484D-944E-766F68A2922F.csv", + "sha256": "0a75615b30d46e6ed42bf61c96efc6a95726ea0ee732201fb5706bdcb615b1bc" + }, + { + "path": "attachments/omnient-42-off-attachments/manifest.json", + "sha256": "2a64a18e2cf8380956518e13ca90aa2ef84c6b34686ea2d15f04de6adb832989" + }, + { + "path": "attachments/omnient-42-on-attachments/375A825C-C4BA-4276-B5D6-172B4D58CBD9.csv", + "sha256": "39e11e273bbaf019d24628be29cc1fc2823c16e5a6cdc4d404a4b63bda81cd58" + }, + { + "path": "attachments/omnient-42-on-attachments/5DC89189-106D-45C7-8A67-E9F49D147ACF.json", + "sha256": "9a485993253af36dc5e6ab1cb830cc0cd8266b9d473a1914b89bda5399796258" + }, + { + "path": "attachments/omnient-42-on-attachments/manifest.json", + "sha256": "217e040798e1b9a9f8658c05e4db3f7dd87cd44c3a034ee6f8564e1e925f7b56" + }, + { + "path": "attachments/omnient-43-off-attachments/65762F00-16BD-4B61-852E-7746EE8A7DC5.csv", + "sha256": "93956c8955c43f768ce14549155f9e5cc143de3f3ef7a801acb6a939875462b5" + }, + { + "path": "attachments/omnient-43-off-attachments/B2D54715-A6AF-402F-9FA3-FF897E6767A3.json", + "sha256": "a830b4072aeec1333e09beba0068a4624eafcc07061e58bdc0fc8d9097e87588" + }, + { + "path": "attachments/omnient-43-off-attachments/manifest.json", + "sha256": "56f49362abdbacaad1eabc57b7cd1c0a2cc4efca411973edb7fb74c95ddce873" + }, + { + "path": "attachments/omnient-43-on-attachments/5CC9F8CC-6949-4A4E-B3EF-FC4E354CB73D.csv", + "sha256": "a3e5e2ba511ac39baccfb977bbf72465d3512a784d281ea3620dca0db7d068f7" + }, + { + "path": "attachments/omnient-43-on-attachments/5E3871DB-9D15-42DB-9CAD-9A5217D2F65D.json", + "sha256": "5bf635cc3de9ef4de4a65acc8bc1677dcbd6eab159e3bf8853d55a038f7671a3" + }, + { + "path": "attachments/omnient-43-on-attachments/manifest.json", + "sha256": "1211c7b8328d8fa0ed9a6ae9df98ece17c5f594887de8c9ca1cc15e2a8185e59" + }, + { + "path": "attachments/omnient-44-off-attachments/03C96C25-CDCF-48DC-950B-F784AABE5755.json", + "sha256": "ab358589fc6aed2ca500aba3b8063fcd8681fa7b7f038cbd2a7d354f22eb7176" + }, + { + "path": "attachments/omnient-44-off-attachments/D57281A7-5A69-4DD7-AC8D-D8627006F3C6.csv", + "sha256": "42c8ab8b297cb5162d75127afcc832a9a24228bde92fc5ea9dbb9680207f204b" + }, + { + "path": "attachments/omnient-44-off-attachments/manifest.json", + "sha256": "bc2d0a0efe3de70dbdff1a71a48fd36cba4a38c9aad9e6ced2d6c873bf5ea490" + }, + { + "path": "attachments/omnient-44-on-attachments/8C1D02D9-858E-4A1B-8774-5DE2D8054EBD.csv", + "sha256": "ac69af4a77b580e041a6ce601a44b7d458ed53e78801fce4313b01f826cbd06f" + }, + { + "path": "attachments/omnient-44-on-attachments/93977518-11BF-4627-BFF1-B007473492BD.json", + "sha256": "59a3b8bcfedbea3e2bd00843a7fc7d44fbe4065e9c346853fd4c80c60a523c10" + }, + { + "path": "attachments/omnient-44-on-attachments/manifest.json", + "sha256": "0115152fe8a94185da537b7d1cbc060aab5691680bcf6daa49271a523cfe22ad" + }, + { + "path": "attachments/omnient-45-off-attachments/05DC0581-45CA-4663-9B45-09C592CF813B.csv", + "sha256": "fab12c3854441113dacc360493967744f8631f8987813dc0ef5da807a3110f14" + }, + { + "path": "attachments/omnient-45-off-attachments/A6BAA78D-D1D0-4146-8969-F07C25361231.json", + "sha256": "04f2f54eec6f9eed03b6776c50c14cafa2cc8b0c17770f6c0218bbf7c08ef7bd" + }, + { + "path": "attachments/omnient-45-off-attachments/manifest.json", + "sha256": "31bd765f309cf78eebfa5f2d1a16b1a8ff96dcd92fe70a13c975378c2a1f1c57" + }, + { + "path": "attachments/omnient-45-on-attachments/48074F1A-E922-493F-AA7C-CB20B816F049.json", + "sha256": "de44992f0f9bbf4ff5d13fd788549491a291c44c94478724e99020569c950027" + }, + { + "path": "attachments/omnient-45-on-attachments/DEEAE241-B066-4E70-A7B6-4D8407FD52BE.csv", + "sha256": "898fac7edf28e110412abdbc38a5105f1e0a9b87fdf9243a8eaed844065e0e00" + }, + { + "path": "attachments/omnient-45-on-attachments/manifest.json", + "sha256": "d9fa78c93d1af41cda67e829c384717e4e36a5a50c9fe979c10b1326e000dc93" + }, + { + "path": "attachments/omnient-46-off-attachments/9924A5DC-5CF1-426E-8D08-F125F0A84F58.json", + "sha256": "72509a8eae0253b4a058b7d1bba5fde8b50942d7a16cb540e4fec155836469fe" + }, + { + "path": "attachments/omnient-46-off-attachments/A7CB0288-72F5-4C37-A78E-ACEBC6AB807E.csv", + "sha256": "b53db38b1440bbd05647cda65f88815af33ef4c3fe0c63daea18b120cd09d5ca" + }, + { + "path": "attachments/omnient-46-off-attachments/manifest.json", + "sha256": "a36f72e3392eaac90657d39017e1eb062e95b2b950afe6bba67c72b6a70b29fb" + }, + { + "path": "attachments/omnient-46-on-attachments/6CE6F3DE-26E1-4BCD-BA08-84F277D9A017.csv", + "sha256": "80454ce5033426534ef87d79cc59d46e58f32a8d78f516f5576e31fae2441c6f" + }, + { + "path": "attachments/omnient-46-on-attachments/AEAE459C-6B05-40A3-9BBD-C5C4903602B5.json", + "sha256": "c675cf96c3d88c9d1a4c27d6545e5b6d52da49796cc80c942fd3c51ab21c2a01" + }, + { + "path": "attachments/omnient-46-on-attachments/manifest.json", + "sha256": "4283307cb976a5c2af261f12360f73f6b9ed7937a02e9ef549e60d86ecc579f3" + }, + { + "path": "attachments/omnient-47-off-attachments/224156A2-72EA-42CA-B589-B15B86F6D758.csv", + "sha256": "3533c5b5a8c1a95d9d53ab6cc8987e2dc020ff37c6486d898919eee295f561a7" + }, + { + "path": "attachments/omnient-47-off-attachments/6469765B-C420-4F6C-9FD1-536D384655A4.json", + "sha256": "971bbf5de5476731bb02c73a84b0a0ce520c1aa5363fcba690d3e0567e9dbc9c" + }, + { + "path": "attachments/omnient-47-off-attachments/manifest.json", + "sha256": "374502e674c64a64f5ef1e364db92a4f57132bdc2b2a097075763d23061db403" + }, + { + "path": "attachments/omnient-47-on-attachments/9036AB97-8079-4789-A6F8-450507ACDE90.json", + "sha256": "04b97e258f0ea1d076202dd16d05dfabd6108bde2dcb3e6cd29711b075282cc7" + }, + { + "path": "attachments/omnient-47-on-attachments/B9B80027-E0F4-4E1B-98E4-CB5BE9CD3DC3.csv", + "sha256": "82d96260bf2c33e5f1e54b5afd51920c1314dc66fa604cd9fb0c6796b408a331" + }, + { + "path": "attachments/omnient-47-on-attachments/manifest.json", + "sha256": "ac3d6a0c06e3be40878683bd663d54a538298d82e9e42aef05542753708bde04" + }, + { + "path": "attachments/omnient-48-off-attachments/10D81902-FE9A-430C-A9A9-42696CEFE5D9.csv", + "sha256": "9794722d02bfc5855df8dd566a9d10ae3cc4b3e2dbd97293f0d50e3fa592da73" + }, + { + "path": "attachments/omnient-48-off-attachments/E4374BF0-C3DE-43D9-9852-091526E18E27.json", + "sha256": "7b8a56ae638c88a672778b27f147a769a379e58690c1b70e9a46b67bb7a2a3fc" + }, + { + "path": "attachments/omnient-48-off-attachments/manifest.json", + "sha256": "82b2b697b61498cccc1a77900832947e047f63c5dcf247980e1bf1c07d1b2b07" + }, + { + "path": "attachments/omnient-48-on-attachments/50F22418-8357-47C4-99FF-BA3F38584903.json", + "sha256": "96e7feed48bfb76539fec8e26205b29354db135dec77a3525bc9ac1252835c56" + }, + { + "path": "attachments/omnient-48-on-attachments/E30FC6B7-8C75-409B-9799-586EF95D9F79.csv", + "sha256": "0c4530e7e0a79c7b3caeccce4412d3e844df1c0085f41bf62d8159f1ba3dd8ed" + }, + { + "path": "attachments/omnient-48-on-attachments/manifest.json", + "sha256": "4a57447f233d8d321d2a2b56433be7f5d48013499365e9846ffa2f974b733c63" + }, + { + "path": "attachments/omnient-49-off-attachments/7E3B5CB3-72D5-43C9-86DC-35FB029CA368.csv", + "sha256": "a478f37a2203cf48755c7bd72ca1e0e259cd2ae473cc72777198f6c7f7c8bf3a" + }, + { + "path": "attachments/omnient-49-off-attachments/EB6D113C-41F8-4697-B6B3-9B9865A1285B.json", + "sha256": "3db45ce91735d0663010b0938642f077a5cbd76ded51d84923f6fcee54c3052d" + }, + { + "path": "attachments/omnient-49-off-attachments/manifest.json", + "sha256": "0f4ce7b8e8411abd0c55ac6cee92aa7e8dcd26b036852f8431e2e9517c2d80be" + }, + { + "path": "attachments/omnient-49-on-attachments/CC83B5DD-ECC9-4342-8ED9-02C79EE3334B.csv", + "sha256": "b14abc9658809a8874b9df21bbce3425301f74517f006f6a2f958bd37f6cbb29" + }, + { + "path": "attachments/omnient-49-on-attachments/FAF35B53-8BF0-4030-8F1B-9D57CD12A8AA.json", + "sha256": "45ef5451bef3fe450dd0ce264971feabdbdb08932ecbe168de5da555c7f83901" + }, + { + "path": "attachments/omnient-49-on-attachments/manifest.json", + "sha256": "78c6f558f9fbb2bde5b7ca0a5701c2ebb181048c5da427aad5deada509f3a9d1" + }, + { + "path": "attachments/omnient-5-off-attachments/A9C02429-5A92-4BE2-817B-A62C53524267.json", + "sha256": "5aeee3c7229284834439cbd31308cc85de7d04da2324f1a1dee96dd7b24bb6fa" + }, + { + "path": "attachments/omnient-5-off-attachments/B518430B-9A54-4CB3-BA6B-491F7DA427FA.csv", + "sha256": "55314e5fe835ad20eda42a4d9b7d24ef63622eae143bc8a5ba6b66f7e63b68b7" + }, + { + "path": "attachments/omnient-5-off-attachments/manifest.json", + "sha256": "728f289b3555e5d94707157cbc1bda9a70f7b74e739b121a54ab0217e1ec1393" + }, + { + "path": "attachments/omnient-5-on-attachments/84186A51-123B-41D2-9EF0-B24CE9DBA6B8.csv", + "sha256": "17c019d9e4d3162d9ef7253e5d877f4b03b5ec95f2cab378168578ea3ac9591c" + }, + { + "path": "attachments/omnient-5-on-attachments/C9C8BFD0-E128-42FD-99DE-9EE3ED7E258D.json", + "sha256": "902e2053abc46416936b3c5d3fd261a044d4d7f9318f0041f1901612c1e406ec" + }, + { + "path": "attachments/omnient-5-on-attachments/manifest.json", + "sha256": "8d6b74dd5e83efc95eece14f09974c4b891f257ad9c598b31f143b8acf489422" + }, + { + "path": "attachments/omnient-50-off-attachments/448023EE-C582-403E-8C3C-D7C70498F62D.json", + "sha256": "9f4a8f36939fa37320d63f761ac833ae9187b8c576512f9b62c1ec3dc6ee3e45" + }, + { + "path": "attachments/omnient-50-off-attachments/C0F4BBF5-5BCA-4CDD-8765-7CABB051E73F.csv", + "sha256": "80b8b20848ff8ae6eaf3bcc93bf878f694f455cb65041f14ab1726510fcca3f2" + }, + { + "path": "attachments/omnient-50-off-attachments/manifest.json", + "sha256": "f18615b8bd8e0866fdfdb962ee9edf1259a43dd014265ca1f90cca7928384311" + }, + { + "path": "attachments/omnient-50-on-attachments/752848D6-FE2E-4FA9-BE9C-6ADDECF1BAF8.csv", + "sha256": "3d1dd1e92716137a762da99d318bb630f988fd80d2d4cb44858a97775ffc0661" + }, + { + "path": "attachments/omnient-50-on-attachments/D82A0B43-6198-4E2B-B17D-1AE4AB8D3652.json", + "sha256": "4fc80e06742b250119abcb1359b80cf390537205acb8fbf3e90b8208c6f9efac" + }, + { + "path": "attachments/omnient-50-on-attachments/manifest.json", + "sha256": "56db2becc37274fc62bf7397529626a19caba706868ba74370351da50901782f" + }, + { + "path": "attachments/omnient-6-off-attachments/C5DF091B-0A67-4730-87F1-53FB21680EA5.csv", + "sha256": "985be14a3a2eb851d2ea8d13dde361f08c9102745c1090fa81922ca57e1626b6" + }, + { + "path": "attachments/omnient-6-off-attachments/D864AEF7-8DC4-414A-8655-E15024B05EE4.json", + "sha256": "2be5eb6260d8161e7d65b49729f308e51190bfd4f9405d6ebe394eb19b1dd2e0" + }, + { + "path": "attachments/omnient-6-off-attachments/manifest.json", + "sha256": "93de8b67c50e458cc7967b806c08f53670da81c18f2ab002cab65334bba2e0b1" + }, + { + "path": "attachments/omnient-6-on-attachments/56106984-2B73-434E-B25F-F21EAD2E96D9.json", + "sha256": "e00a2674591601d4081f891e30cefe6c6c870499c3e93546aea7044b9545968b" + }, + { + "path": "attachments/omnient-6-on-attachments/EBA8EEE5-3784-4FF2-8DAF-B59F16ECE64A.csv", + "sha256": "2f531700e48baac35d1ce94773cd442ee7cb33ede825f2ea35ebf0b71140700e" + }, + { + "path": "attachments/omnient-6-on-attachments/manifest.json", + "sha256": "ff67effcd2be6cd587aa0ef044be39e771c5c16b14ee969dff38d236945c6176" + }, + { + "path": "attachments/omnient-7-off-attachments/2FA7364C-69A7-4C5A-88AE-B5EBDF231649.json", + "sha256": "84bd9456825e7361a887e069b9acc9c4ae5b4b3d171d97645d99dea76181cb79" + }, + { + "path": "attachments/omnient-7-off-attachments/343B67B8-F5CE-4C40-9A62-2FEDAAF9B441.csv", + "sha256": "1d9dae5ce2212f7102cb18c7a854e30433f5a2f85022ca6ab2bc4096ec14c019" + }, + { + "path": "attachments/omnient-7-off-attachments/manifest.json", + "sha256": "1604f195061c7c18571b88824e1e77ae94e5a649f42267e76d4498ec11dca84a" + }, + { + "path": "attachments/omnient-7-on-attachments/63A7B855-2E21-4B17-A987-E24205A3B262.csv", + "sha256": "038473796ba8a39f07da64dfcf551d710a5ea4ba0ac32da7122c2a57bb8ecfc4" + }, + { + "path": "attachments/omnient-7-on-attachments/BC84C103-DBAA-45E4-BB8B-2449469EEAED.json", + "sha256": "f5fdc4072716c8bf1355296851af4dfebcc55f5c165b446b764659118bcdd2e0" + }, + { + "path": "attachments/omnient-7-on-attachments/manifest.json", + "sha256": "c9813987830300802cc32d1639ecb429427df94407dcf4d86a73061dbcf10b7f" + }, + { + "path": "attachments/omnient-8-off-attachments/738D46B6-A1C1-4540-8715-0A70819D5797.json", + "sha256": "522c642a7b49430b99f79466958778d54cb412d57b47bd3af6ac91229e0b9c85" + }, + { + "path": "attachments/omnient-8-off-attachments/CF5F9251-2855-42C7-B8DD-B065161FE7FE.csv", + "sha256": "fcd87925c6e1369bd075f5f48dfb49748b67d860301d41bc0f613cf1ef2fd573" + }, + { + "path": "attachments/omnient-8-off-attachments/manifest.json", + "sha256": "5c9d3e266f95cc54aee9fcf4e7511819ffdc43d7fdea2b3c2b100a159d35cfcd" + }, + { + "path": "attachments/omnient-8-on-attachments/1C315484-8290-4070-978C-DBA35F34F6F9.json", + "sha256": "1a1da9afffcd8e388d23dba4f7dc881e4c610afa185b4a7c684edd70eea3f421" + }, + { + "path": "attachments/omnient-8-on-attachments/D1634EDA-8E2E-4024-BCC1-3BF76E4A9267.csv", + "sha256": "eda0c7b5ac0644ae55cdbc1850d446101eb1f5169ee60b7756dd9c7bdd249072" + }, + { + "path": "attachments/omnient-8-on-attachments/manifest.json", + "sha256": "5347a0354a314dcdeff1812122b0cce97d740049d3be531f62626e527e837c7a" + }, + { + "path": "attachments/omnient-9-off-attachments/1153808B-64C8-4FC9-9FA3-0C2A5A8CDDF7.csv", + "sha256": "051e23811f170138e00522e48a18e616cc2024b9adef57c9699e64172f73ee73" + }, + { + "path": "attachments/omnient-9-off-attachments/BD2F3E45-1919-4FCE-8F26-A529C4284FE7.json", + "sha256": "e50a26ed32a3e98fc86867ba32541a86cf3a63efc18f2df9ad8f7f71324617c6" + }, + { + "path": "attachments/omnient-9-off-attachments/manifest.json", + "sha256": "c3ad40247685a990ae19aafd7f905bcece32912b4dd2edc071f8122520573c26" + }, + { + "path": "attachments/omnient-9-on-attachments/03832D66-1A6E-4C53-89E1-85F4B738D3C9.csv", + "sha256": "c52652041f8f54048fbc2430656a22ff44289ac4d81b3e076004ff5b6c02fb92" + }, + { + "path": "attachments/omnient-9-on-attachments/F9DC8BD9-2967-497B-A68D-37D3B6989FC2.json", + "sha256": "9ca2be4edc838429672a66e7f465ec9de9ce55a835d3d232576318f264f4821b" + }, + { + "path": "attachments/omnient-9-on-attachments/manifest.json", + "sha256": "e1106b6f9d43201cd7f45706c3a097bb1246692dedb8eb10fb5a809844a83b3b" + }, + { + "path": "logs/omnient-1-off.log", + "sha256": "c3641f0ce35e0951462d4fe87251f2c73edaf3e39a59dc3f56cfcbf8b5cc00de" + }, + { + "path": "logs/omnient-1-on.log", + "sha256": "db709b59826bbb9a7b24d35fb1b37f4d8aa2821882c3519bda82aaf9cf35cff9" + }, + { + "path": "logs/omnient-10-off.log", + "sha256": "2930a6fb8154c9336e2bd9c6185a06b3cd134cf5f551ccd2e76a64186465859b" + }, + { + "path": "logs/omnient-10-on.log", + "sha256": "a80e97f8082b545dbe6f1f0a8c535029433a9aff2620848654255c4fa6562126" + }, + { + "path": "logs/omnient-11-off.log", + "sha256": "2b0785e4b082c45034b451f397c16f0e1216d490e85b6483f2b120514aa2214b" + }, + { + "path": "logs/omnient-11-on.log", + "sha256": "748eef2d269d0258c7d62f531c8432371402ae482ac432e3f82c4e37127ff47f" + }, + { + "path": "logs/omnient-12-off.log", + "sha256": "5e92e20763a6093f90403821112e5c86e19be58ba29d42d9416399401a610e18" + }, + { + "path": "logs/omnient-12-on.log", + "sha256": "cc0bfe4b268bc77d5ea9b8d09aa89173c02329f1c4292010dea6a4cf781f48fd" + }, + { + "path": "logs/omnient-13-off.log", + "sha256": "3d87fda47e30d2eab8c70e9178e7dda9b5509c5acf2758d7d8a5f63c718bf391" + }, + { + "path": "logs/omnient-13-on.log", + "sha256": "1f20e9e89d0aad1f2d37c25ddab66cdf488cc477fe7769da6300c048762c9fb7" + }, + { + "path": "logs/omnient-14-off.log", + "sha256": "20c494084945d8b1beff520e4e3ccc408b440a98ff484116573c397d6f14566d" + }, + { + "path": "logs/omnient-14-on.log", + "sha256": "371d9d26c425442b212c9d14283d0177f68936007bc5d0bc932b82216c7f85e1" + }, + { + "path": "logs/omnient-15-off.log", + "sha256": "28974185e85030e1e3871e9ea8b01b5080585b5c851ee431e5d1aebc2424efe7" + }, + { + "path": "logs/omnient-15-on.log", + "sha256": "c5d40853cc9676a9f1db18b29074f1e9c90a92dbed09db971a03f348be8f4695" + }, + { + "path": "logs/omnient-16-off.log", + "sha256": "26b250c14b1f4b92fc87a62ddedc76920376d9fa19415a4d4225c2e1603aee0b" + }, + { + "path": "logs/omnient-16-on.log", + "sha256": "cb767ea7a9b04b5e99051f57e70d1b87ad5f04c3381e0262a890bb1f8df0b221" + }, + { + "path": "logs/omnient-17-off.log", + "sha256": "1183b11ea8983b6ce1863d85230804e01f881a8038bcfcb18e7fd86f4d1b3935" + }, + { + "path": "logs/omnient-17-on.log", + "sha256": "78537b853f7554a110a9f92965b4da2a9f815665e81c7cf6af8dc73f567778f8" + }, + { + "path": "logs/omnient-18-off.log", + "sha256": "2d54df67b2c88e335fb051cbde9d23e0ab256d14687bfeccb2f2cdadec0c2bcf" + }, + { + "path": "logs/omnient-18-on.log", + "sha256": "783c66d52b79daefcf37fc48cfae21bd68c54660fdbb5eaa1697ec20f1031a1f" + }, + { + "path": "logs/omnient-19-off.log", + "sha256": "32e075913fd7aba558905f5ef451e39007a41b99e0e5555ca9c82b1193165185" + }, + { + "path": "logs/omnient-19-on.log", + "sha256": "26287964fff0304f457bad352827c559aded4f5aaeb2548d2d23ea3e4dd8885a" + }, + { + "path": "logs/omnient-2-off.log", + "sha256": "d24c134264c4c13847908d25c845934803e09323b20a1dac5fa4ae32b93ca496" + }, + { + "path": "logs/omnient-2-on.log", + "sha256": "01f000f9a37cd15c9fe0fe9b82c10d1ff62c641e5b657f1e4fb1309e602ab73e" + }, + { + "path": "logs/omnient-20-off.log", + "sha256": "8e0d77fe18bdcc16f53bc8f12788168fc3909d47fd6f29f0b529f517f466f74b" + }, + { + "path": "logs/omnient-20-on.log", + "sha256": "72a7272ff69b84144c2b448df17ba717bca656c965c808fcb6fd2f40cdddc02a" + }, + { + "path": "logs/omnient-21-off.log", + "sha256": "ade0189d56e5a467f649c08d26e6f6c9ce37ac09111fc60eda9410925de5a4db" + }, + { + "path": "logs/omnient-21-on.log", + "sha256": "1ff31db64d5d92862c3e7166d9c948aceafa2c762c12669400353e209d395d50" + }, + { + "path": "logs/omnient-22-off.log", + "sha256": "2385b83a7b2720e781666eb1668313b89cf6356e2495935d48c54854ec354ca5" + }, + { + "path": "logs/omnient-22-on.log", + "sha256": "a13045415def13618a7b290c7de7b6b8d5832bab9635e54b4672db3336c36638" + }, + { + "path": "logs/omnient-23-off.log", + "sha256": "3ce7110cb07bb9e80c7ab3ca94728a82d6a7b716400e9eca74f06f635e337473" + }, + { + "path": "logs/omnient-23-on.log", + "sha256": "af2d9dd493745d8d8a661d015e5179dcb0703e561323b463d63704492eea55c4" + }, + { + "path": "logs/omnient-24-off.log", + "sha256": "39819812fe05f7948226780766eb903b98f08ab2ff4b39b9163f30e98cc4a213" + }, + { + "path": "logs/omnient-24-on.log", + "sha256": "b55122a4e83133fb51d88e0d544376c815ae2a62bbcb1fa0c8539ea76edf2686" + }, + { + "path": "logs/omnient-25-off.log", + "sha256": "d7fda0c3e498613e3345b7e39f92c73de897a27bd26b82900071f4dcd66a2beb" + }, + { + "path": "logs/omnient-25-on.log", + "sha256": "19c3af0f23f1c9fab574c07dc7087090f4ea1306bbc30189533189ce78157d2e" + }, + { + "path": "logs/omnient-26-off.log", + "sha256": "64bcb6764e2e153d87f964c37b6cddf5fbb0da977db26ef70c6cdd2107ed607c" + }, + { + "path": "logs/omnient-26-on.log", + "sha256": "b4bc123f7687af0fe1ddef19d1b7e1392b7f630700afc4e79eeb81736633144e" + }, + { + "path": "logs/omnient-27-off.log", + "sha256": "e1c2f146c03279e943c7776984ea97d93b2abd7d19078a8d4e06a51a1b36c8f2" + }, + { + "path": "logs/omnient-27-on.log", + "sha256": "4b8028180528feb98771f6696cec0509ae0edadb9f40f0f3b5e5aa769ce32a03" + }, + { + "path": "logs/omnient-28-off.log", + "sha256": "28e602432fbbe32109e25b8f4eb6c2d2133d6bece0a8ea39a166cca5465a7738" + }, + { + "path": "logs/omnient-28-on.log", + "sha256": "dabfb3cedb0670482c358d0ad51174578067ddbeb6a2507b94b5f8ca70932756" + }, + { + "path": "logs/omnient-29-off.log", + "sha256": "c250612844fc72432c6eee6edb17f9106182f31eca0bccf95e724fdde16c4677" + }, + { + "path": "logs/omnient-29-on.log", + "sha256": "19c3891ccce3b7b8872d8421d520bc1d038c1937651ee5f215214313479630e6" + }, + { + "path": "logs/omnient-3-off.log", + "sha256": "17acc191e36ce25e6be5bae403038b57294040208ae6c73e8ec1749b4771aeba" + }, + { + "path": "logs/omnient-3-on.log", + "sha256": "321a70febc4aeb7b133f17e23af009461b11e57d170e04aab24ac97c55c6c0bc" + }, + { + "path": "logs/omnient-30-off.log", + "sha256": "cd0f4fba901c82b012103cc1d1c2570bedd3fca222685eb1d8c24fe82fb42994" + }, + { + "path": "logs/omnient-30-on.log", + "sha256": "0c0a2dd301057d9c5458f46829d7f91d0d50ee74ccbeb329e1a5de658e8fc130" + }, + { + "path": "logs/omnient-31-off.log", + "sha256": "f857222c19a4b6a1fab40649d0e4d5457c5be36ac57a3d67b6f0948378961d8e" + }, + { + "path": "logs/omnient-31-on.log", + "sha256": "ff93b0228feccd7d9076c21287e0f4bd5db614dd5f276195316399a1b63ce016" + }, + { + "path": "logs/omnient-32-off.log", + "sha256": "8d8b2722c62ec0c1658fa1167a0a7ea0e569d55a1ea1679f3486d8ef5e2ada89" + }, + { + "path": "logs/omnient-32-on.log", + "sha256": "d6d91ed288e0584fe06ec94ee93aab8f0e973b56576e4172bfb8d33d30344868" + }, + { + "path": "logs/omnient-33-off.log", + "sha256": "8b0f709a2463540bb83eb5402de07128a16ac7bd4131f5c9cbcfadde91f7627c" + }, + { + "path": "logs/omnient-33-on.log", + "sha256": "8e6b1399ba418c2b18ced9622d15c46498507f3e2130b469619486628f8205fb" + }, + { + "path": "logs/omnient-34-off.log", + "sha256": "54eaacc7a52033dc0d6cd7ec0b0028c7e8ff51f045a58cc4ec46dfbae92f7dc0" + }, + { + "path": "logs/omnient-34-on.log", + "sha256": "48123d0428bee565716291ab4da3f26bffd930b950a87bc7fca19a45a095ffe2" + }, + { + "path": "logs/omnient-35-off.log", + "sha256": "518420ac978a8d1aced7625a60af736d1c8fec7da3e634b0b55c24a109c1d61a" + }, + { + "path": "logs/omnient-35-on.log", + "sha256": "bf7c3ae6cd594c0d0363124686ebf39530f42a729ccb590472b7a2cccb66e5a9" + }, + { + "path": "logs/omnient-36-off.log", + "sha256": "23488351bd5f1d300a7e6d5de008bad8af2db11eae8c0bdcd2ca32a1578ccdc7" + }, + { + "path": "logs/omnient-36-on.log", + "sha256": "62d541170dc9b446ad0e92ac62e2e5a50eff4c30cda10b9b6395b6f174ce3777" + }, + { + "path": "logs/omnient-37-off.log", + "sha256": "03fea7601444c212545098dca302c3c4c5d4ad4140e8a10e1585f6b0eb70702b" + }, + { + "path": "logs/omnient-37-on.log", + "sha256": "ecdfa1daedc4dd0d85c79422bff0f58b703f9c891f3e0d8492331d2cf23e7074" + }, + { + "path": "logs/omnient-38-off.log", + "sha256": "153b6b164f6a8221335e2c63a179e7de41c4aa2387fa646e4dda9e5efae5b278" + }, + { + "path": "logs/omnient-38-on.log", + "sha256": "a4930d896f89cdf3df9c7b828965ebf262afaccfec599edee3e0240817cbdf55" + }, + { + "path": "logs/omnient-39-off.log", + "sha256": "750b24fc897e947b75d836eb6bfc26f13850a894cad6eb2027d2e042b6dbee11" + }, + { + "path": "logs/omnient-39-on.log", + "sha256": "7f2737231666895b018714f962765b877281de6b30ab9a9cc02e895ee90dcd05" + }, + { + "path": "logs/omnient-4-off.log", + "sha256": "326f7d6882b171825e8978220db2dd9910f37958636f6767b629f4145150da51" + }, + { + "path": "logs/omnient-4-on.log", + "sha256": "2803395a3c2cdcbb5444fd167cde41042f35843c8386191f9c83c864e2bea8d5" + }, + { + "path": "logs/omnient-40-off.log", + "sha256": "94e86c420eaa6d12135160f559da749b2b7f38315ae062155778956af91a858e" + }, + { + "path": "logs/omnient-40-on.log", + "sha256": "2e580b6d335f3b354d743d07366cb3db4e6bb88475f3a4212b4cebf8dd3ccf6a" + }, + { + "path": "logs/omnient-41-off.log", + "sha256": "b1f571a59d8c2cba5beaa9b064b3cbf9fe41273f67edcd02162ae00a66659859" + }, + { + "path": "logs/omnient-41-on.log", + "sha256": "e9c2585d3fb33dfa27e4f878c50f5511c575b26a5bd19fdb5f33396569b4c3d4" + }, + { + "path": "logs/omnient-42-off.log", + "sha256": "44cb7a6e266618bde7b5f4c4cfd4b0cdeeeb4ff70d5b8c307ce33c34df9b1422" + }, + { + "path": "logs/omnient-42-on.log", + "sha256": "dc03da18ae4d9c98d1cb96d3a957b21bc242233b4ef9f846b726bef04cab8433" + }, + { + "path": "logs/omnient-43-off.log", + "sha256": "d7b18d0003e7f0ce8fec3db08c410535b2e66cd1c7692c28752ed7a64daf5be9" + }, + { + "path": "logs/omnient-43-on.log", + "sha256": "e1a71d957e7e816041e4e8c4560f12b5be42747250983cd023dcad9df5e11b12" + }, + { + "path": "logs/omnient-44-off.log", + "sha256": "1c0106a205e74ce4368b17d0d8481fae6ae7f9e32f2149312f9a73ddfad42d69" + }, + { + "path": "logs/omnient-44-on.log", + "sha256": "93e039404de61a4d7cad613e11716c77ffb11a5ae02c764e8215031c5f14de24" + }, + { + "path": "logs/omnient-45-off.log", + "sha256": "0cddbd0b07619f9812a68b92dc5f93e59f5408c5cad46ccb7ef0dd9c663844f6" + }, + { + "path": "logs/omnient-45-on.log", + "sha256": "a4ec0e1c0ece8c2f0b6677f8a60ef8200c3fe857e7cb9557453f8febc14640b0" + }, + { + "path": "logs/omnient-46-off.log", + "sha256": "f281580c84a997b231c36c617900d6bf90288b1a38d1e998ea4a99f7a0f7f161" + }, + { + "path": "logs/omnient-46-on.log", + "sha256": "a724cd947f19c278b161895b1650969e2df6c7d82cf3b245042bbf51d38405c1" + }, + { + "path": "logs/omnient-47-off.log", + "sha256": "b159262d44eeacbf1fcf71631cc981ec5327c3b5baa03c4a2e3a1ec93ef9ae20" + }, + { + "path": "logs/omnient-47-on.log", + "sha256": "affe18be26f01f0f702e899f17c13d8edfc83d4aa99722fbcaa1b5e813975a3a" + }, + { + "path": "logs/omnient-48-off.log", + "sha256": "df450101e4c0d758837b701a4e2acf3e3aba651c999825eeb2576f1d03326594" + }, + { + "path": "logs/omnient-48-on.log", + "sha256": "7b1bb4352be3ddc261238d9f9f33a3d47cb9b3b2841740d64749805535eb5c2e" + }, + { + "path": "logs/omnient-49-off.log", + "sha256": "55489c03ac13f75946bf10c6ac38b77f1016b617b388639e5c0af96f7bcd7a1a" + }, + { + "path": "logs/omnient-49-on.log", + "sha256": "c44608dd389196cc319902e605ead697bbf0da7210b9b944f2a9e7f33e5146c4" + }, + { + "path": "logs/omnient-5-off.log", + "sha256": "40da102385b0b498d98de22e413541ab449961de32c019dc14cb3cd67b528842" + }, + { + "path": "logs/omnient-5-on.log", + "sha256": "f0334f3e9c5531f064d425868f76230d1a41eb8221e33767c98bb6de35cd3a89" + }, + { + "path": "logs/omnient-50-off.log", + "sha256": "12a65d3ec96912baf88284431702f0170aab1fa38b7d98b678b0abeb377cea66" + }, + { + "path": "logs/omnient-50-on.log", + "sha256": "593710682750aaa0507db725418283acd6576474292e64c669e96a56b3377932" + }, + { + "path": "logs/omnient-6-off.log", + "sha256": "54fef1f43f226720de21dc1afa8674cd802174ebaa5f807ba88665d7a3c827e1" + }, + { + "path": "logs/omnient-6-on.log", + "sha256": "1c0f8e107e64762b9d771bd57c0d2c6e7b8d5260dce7c424302a0202eb15a2d8" + }, + { + "path": "logs/omnient-7-off.log", + "sha256": "678894e55bf6b1402ccfa7e2f3d79faceddaaa6469b919859456fa9d6d22591c" + }, + { + "path": "logs/omnient-7-on.log", + "sha256": "6e983111b8822bf5aded784791a2770fb64950a76a500ebe8418e0c24da97e4b" + }, + { + "path": "logs/omnient-8-off.log", + "sha256": "b3d9dc620499c610edaada44dddfec66a66f44dfc65983c0d6a72d593a2cdd3b" + }, + { + "path": "logs/omnient-8-on.log", + "sha256": "2326b102785629786dfc207b83bc8d1824c6ba5d1f8cafe2e2412cec62126e3b" + }, + { + "path": "logs/omnient-9-off.log", + "sha256": "f9dfba620475bf050a23399c0b8cdcdf6d9142251808b638cfecc7465d521694" + }, + { + "path": "logs/omnient-9-on.log", + "sha256": "231bf3e76272bcb4e61acc69823e12a51ca3b5faaba339b19449d188406e8cfa" + } +] diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/pair-differences.csv b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/pair-differences.csv new file mode 100644 index 0000000..153b103 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/pair-differences.csv @@ -0,0 +1,51 @@ +pair,accepted,exclusionReasons,earlyPostHTTP,ttfaDifferenceMs,ttfdDifferenceMs +1,False,['handshake difference >20 ms'],200,-686.2250566482544,-689.8720264434814 +2,False,['ON initial early POST HTTP 400'],400,-266.2680149078369,-211.44402027130127 +3,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,419.1168546676636,376.67083740234375 +4,True,[],200,-168.90215873718262,-156.24713897705078 +5,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-213.73391151428223,-163.61403465270996 +6,True,[],200,-132.5669288635254,-130.3039789199829 +7,True,[],200,-126.26504898071289,-135.53404808044434 +8,True,[],200,-242.96796321868896,-192.8020715713501 +9,True,[],200,-142.1661376953125,-138.47100734710693 +10,True,[],200,-72.91996479034424,-22.04608917236328 +11,True,[],200,-134.00089740753174,-135.94400882720947 +12,False,['handshake difference >20 ms'],200,25.297045707702637,26.59893035888672 +13,False,['ON initial early POST HTTP 400'],400,-139.88900184631348,-130.64706325531006 +14,False,['ON initial early POST HTTP 400'],400,-274.3901014328003,-225.38602352142334 +15,True,[],200,-135.71202754974365,-137.28809356689453 +16,False,['ON initial early POST HTTP 400'],400,-140.1510238647461,-123.22998046875 +17,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-209.79690551757812,38.91611099243164 +18,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-82.06808567047119,-45.27008533477783 +19,False,['ON initial early POST HTTP 400'],400,-149.880051612854,-147.9640007019043 +20,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-284.28900241851807,-283.14101696014404 +21,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,286.07189655303955,294.02899742126465 +22,False,['ON initial early POST HTTP 400'],400,-135.187029838562,-136.58607006072998 +23,True,[],200,-126.20306015014648,-120.9869384765625 +24,False,['ON initial early POST HTTP 400'],400,-145.17199993133545,-156.27801418304443 +25,False,['ON initial early POST HTTP 400'],400,-158.42998027801514,-156.66794776916504 +26,False,['ON initial early POST HTTP 400'],400,-137.9150152206421,-126.16300582885742 +27,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-284.0619087219238,-276.3129472732544 +28,True,[],200,1450.154185295105,1410.9081029891968 +29,False,['ON initial early POST HTTP 400'],400,-144.7979211807251,-143.21398735046387 +30,True,[],200,-138.82505893707275,-138.81099224090576 +31,True,[],200,-136.3229751586914,-125.16498565673828 +32,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-113.97898197174072,-87.07797527313232 +33,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-112.81394958496094,-106.10103607177734 +34,False,['ON initial early POST HTTP 400'],400,-267.4858570098877,-217.229962348938 +35,False,['ON initial early POST HTTP 400'],400,-143.57399940490723,-139.043927192688 +36,False,['handshake difference >20 ms'],200,-130.35905361175537,-130.76400756835938 +37,False,['ON initial early POST HTTP 400'],400,-138.2439136505127,-122.8179931640625 +38,True,[],200,-152.1850824356079,-142.06111431121826 +39,False,['handshake difference >20 ms'],200,-118.65293979644775,-116.94800853729248 +40,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-256.90996646881104,-251.2040138244629 +41,False,['ON initial early POST HTTP 400'],400,-308.7778091430664,-259.17887687683105 +42,False,['ON initial early POST HTTP 400'],400,-251.48308277130127,-201.76804065704346 +43,False,['ON initial early POST HTTP 400'],400,-143.8438892364502,-139.9219036102295 +44,False,['ON initial early POST HTTP 400'],400,-147.7978229522705,-133.9728832244873 +45,True,[],200,-150.26187896728516,-130.50591945648193 +46,True,[],200,-147.6280689239502,-147.75311946868896 +47,False,['ON initial early POST HTTP 400'],400,-147.70591259002686,-141.6260004043579 +48,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-129.660964012146,-119.58301067352295 +49,True,[],200,-152.95302867889404,-146.71194553375244 +50,True,[],200,-124.28903579711914,-119.22407150268555 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a81673ac664750ad764a8b1ef4bbb7759d2ad3 GIT binary patch literal 43830 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 MRFF!$aQoi>1)O{{#sB~S literal 0 HcmV?d00001 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.svg b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.svg new file mode 100644 index 0000000..3b8715f --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfa-on-minus-off.svg @@ -0,0 +1,4364 @@ + + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..aed1656b72cc089d740e51d290123675e3a8e786 GIT binary patch literal 45640 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%0Dl{0&Q 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 literal 0 HcmV?d00001 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.svg b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.svg new file mode 100644 index 0000000..c8cb77b --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/histograms/ttfd-on-minus-off.svg @@ -0,0 +1,4262 @@ + + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/report.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/report.md new file mode 100644 index 0000000..e45bc0d --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/report.md @@ -0,0 +1,50 @@ +# Lens benchmark — 2026-10-12 physical-device cold-connection run (binary encoding) + +## Experiment specification + +[Google net_http: Lens Latency Mimic & Shutter Benchmark Mode](https://github.com/google/net_http/blob/main/webchannel/objc/demo/WebChanneliOSDemo/DESIGN.md#d-lens-latency-mimic--shutter-benchmark-mode). + +## Environment + +| Field | Recorded value | +|---|---| +| Device | iPhone SE (3rd generation), hardware model `iPhone14,6` | +| iOS | 26.3.1, from XCTest | +| Network switches | Not independently recorded for this run | +| Endpoint | `https://webchannel.sandbox.google.com/staging/channel/lens` | +| Mac | macOS 26.5.1; Xcode 26.6; Build version 17F113 | +| Source | Git HEAD `21eee148acc4a2bcb9856adc5ba9d7463a33f84d` plus uncommitted benchmark instrumentation | +| Test period | 2026-10-12 14:10–14:17 JST, from artifact timestamps | +| Test execution | 50 alternating OFF/ON pairs per scenario; a separate `xcodebuild test-without-building` invocation for each trial | +| Test result | All trials completed and passed fresh-transport verification | +| Transport requirement | First transport: `h2`, a new TCP/TLS connection on the handshake GET/POST or early POST; if the GET reused the early POST connection, matching address and local port | + +## Procedure and parameters + +1. Build the XCTest bundle once, then launch exactly one cold-trial test method per `xcodebuild test-without-building` invocation. Keep parallel testing disabled and retain each `.xcresult` bundle. +2. Run Omnient. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial. +3. Use `imageSizeKb=150`, `detectionDelayMs=50`, `initialMessageDelayMs=0`, `enableBinaryEncoding=true`, `sendRawJson=true`, `fastHandshake=false`, `nonBlockingSend=false`, `blockingHandshake=false`, `forceLongPolling=false`, and `detectBufferingProxy=false`. The 150 KB value is metadata; no 150 KB image is uploaded. +4. Schedule M1 Sticky Cluster Info 0 ms after `connect()` returns. Omnient sends M3 Prefetch immediately after M1. M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline. +5. Record Handshake (`webChannelOpened` minus connect), TTFA (M3 send to stream ACK), TTFD (M3 send to preliminary detections), and M4 RTT (M4 send to interaction response). +6. Include a pair in the histograms only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤20 ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit. + +7. Exclude a pair if the ON trial's initial early POST returned HTTP 400, even if a retry completed the trial. An unresolved early POST status is also excluded; a verified absence of an early POST is eligible. Do not replace excluded pairs with additional trials. +8. Plot paired differences as ON minus OFF, using full-precision measurements. Negative values mean ON was faster. Histograms use 10 ms bins aligned to multiples of 10 ms, pair counts on the vertical axis, and all eligible values without clipping in the main plot. When the full range exceeds 600 ms, an inset magnifies -300 to 300 ms and labels the number of pairs in that range; no additional pairs are excluded. TTFA and TTFD are measured from M3 send, so the configured M1 delay is not added to either metric. + +## Omnient: paired difference histograms + +| Item | Count / rate | +|---|---:| +| Measured OFF/ON pairs | 50 | +| ON initial early POST HTTP 400 pairs | 29/50 (58.0%) | +| ON early POST not sent | 0 | +| ON early POST status unresolved | 0 | +| Pairs included in both histograms | 17/50 | + +### TTFA: ON minus OFF + +![TTFA paired difference histogram](histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram](histograms/ttfd-on-minus-off.png) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/run-metadata.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/run-metadata.json new file mode 100644 index 0000000..c72aaeb --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-0ms/run-metadata.json @@ -0,0 +1,15 @@ +{ + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 14:10–14:17 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 0 +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/artifacts.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/artifacts.md new file mode 100644 index 0000000..9f208d7 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/artifacts.md @@ -0,0 +1,122 @@ +# Lens benchmark artifacts — 2026-10-12 physical-device cold-connection run + +[Report](report.md) · [Transport audit](connection-reuse-audit.md) · [Run metadata](run-metadata.json) + +Each trial has an Xcode log and exported attachments. Current runs keep logs in `logs/`, result bundles in `xcresults/`, and exported attachments in `attachments/`; older runs may keep these at the run root. The exported JSON and CSV preserve every attempted trial, including pairs omitted from the report tables. CSV values retain their recorded precision. + +| Scenario | Run # | Setting | Raw CSV | Raw JSON | Xcode log | Export log | Result bundle | Export manifest | +|---|---:|:---:|---|---|---|---|---|---| +| omnient | 1 | OFF | [CSV](attachments/omnient-1-off-attachments/832A160D-8670-4A29-8D6A-075484320ED4.csv) | [JSON](attachments/omnient-1-off-attachments/BFDFE828-D7B0-4AD2-AF3B-102CE2BDE82A.json) | [Log](logs/omnient-1-off.log) | [Export log](logs/omnient-1-off-export.log) | [xcresult](xcresults/omnient-1-off.xcresult) | [Manifest](attachments/omnient-1-off-attachments/manifest.json) | +| omnient | 1 | ON | [CSV](attachments/omnient-1-on-attachments/0C35CA67-82C5-42B2-8E79-15C50AF16795.csv) | [JSON](attachments/omnient-1-on-attachments/01B990FE-E6F1-4255-853D-20BEB93AC364.json) | [Log](logs/omnient-1-on.log) | [Export log](logs/omnient-1-on-export.log) | [xcresult](xcresults/omnient-1-on.xcresult) | [Manifest](attachments/omnient-1-on-attachments/manifest.json) | +| omnient | 2 | OFF | [CSV](attachments/omnient-2-off-attachments/EF229AC0-9FF3-4627-8FF7-5EA07CE6DA9D.csv) | [JSON](attachments/omnient-2-off-attachments/759734B4-7B0C-4EE9-916C-3C3E84001263.json) | [Log](logs/omnient-2-off.log) | [Export log](logs/omnient-2-off-export.log) | [xcresult](xcresults/omnient-2-off.xcresult) | [Manifest](attachments/omnient-2-off-attachments/manifest.json) | +| omnient | 2 | ON | [CSV](attachments/omnient-2-on-attachments/8E946674-20ED-4821-9D1E-C8160BDBAAFC.csv) | [JSON](attachments/omnient-2-on-attachments/6F1EF493-580D-4914-BD0A-804EB13BD1A7.json) | [Log](logs/omnient-2-on.log) | [Export log](logs/omnient-2-on-export.log) | [xcresult](xcresults/omnient-2-on.xcresult) | [Manifest](attachments/omnient-2-on-attachments/manifest.json) | +| omnient | 3 | OFF | [CSV](attachments/omnient-3-off-attachments/FA907F9A-41DD-4190-91D9-91B0597D0096.csv) | [JSON](attachments/omnient-3-off-attachments/68FD9ADE-F603-4DF7-8A99-C0D305B41ECB.json) | [Log](logs/omnient-3-off.log) | [Export log](logs/omnient-3-off-export.log) | [xcresult](xcresults/omnient-3-off.xcresult) | [Manifest](attachments/omnient-3-off-attachments/manifest.json) | +| omnient | 3 | ON | [CSV](attachments/omnient-3-on-attachments/CC80F69C-0CA5-4462-BE06-C96BB243786D.csv) | [JSON](attachments/omnient-3-on-attachments/48134C8A-A441-49DD-A3D9-90A9BFC9862D.json) | [Log](logs/omnient-3-on.log) | [Export log](logs/omnient-3-on-export.log) | [xcresult](xcresults/omnient-3-on.xcresult) | [Manifest](attachments/omnient-3-on-attachments/manifest.json) | +| omnient | 4 | OFF | [CSV](attachments/omnient-4-off-attachments/26C050BC-90AE-47B0-BD96-C02ACC610462.csv) | [JSON](attachments/omnient-4-off-attachments/4E4105F2-02E2-4BDC-84BA-DF329260FCB9.json) | [Log](logs/omnient-4-off.log) | [Export log](logs/omnient-4-off-export.log) | [xcresult](xcresults/omnient-4-off.xcresult) | [Manifest](attachments/omnient-4-off-attachments/manifest.json) | +| omnient | 4 | ON | [CSV](attachments/omnient-4-on-attachments/0BEF5DC9-7906-49EF-A4E4-6FC3FFFAAF65.csv) | [JSON](attachments/omnient-4-on-attachments/4D3378F0-84F4-4E58-BCFB-76FEE87D0B07.json) | [Log](logs/omnient-4-on.log) | [Export log](logs/omnient-4-on-export.log) | [xcresult](xcresults/omnient-4-on.xcresult) | [Manifest](attachments/omnient-4-on-attachments/manifest.json) | +| omnient | 5 | OFF | [CSV](attachments/omnient-5-off-attachments/5FE0C5D0-B971-4BF1-B63D-B402EFDE5EE8.csv) | [JSON](attachments/omnient-5-off-attachments/933D0AD7-BE83-4730-9079-D1D96D37B075.json) | [Log](logs/omnient-5-off.log) | [Export log](logs/omnient-5-off-export.log) | [xcresult](xcresults/omnient-5-off.xcresult) | [Manifest](attachments/omnient-5-off-attachments/manifest.json) | +| omnient | 5 | ON | [CSV](attachments/omnient-5-on-attachments/1025DCBF-4615-48B7-80AC-E476418E87CA.csv) | [JSON](attachments/omnient-5-on-attachments/EBB27257-071C-4EEC-8F91-EEC5FB706922.json) | [Log](logs/omnient-5-on.log) | [Export log](logs/omnient-5-on-export.log) | [xcresult](xcresults/omnient-5-on.xcresult) | [Manifest](attachments/omnient-5-on-attachments/manifest.json) | +| omnient | 6 | OFF | [CSV](attachments/omnient-6-off-attachments/8D50F78B-27D8-441B-94F6-8C6934098EA8.csv) | [JSON](attachments/omnient-6-off-attachments/489FBF04-755B-4E33-BB02-6E211565BC38.json) | [Log](logs/omnient-6-off.log) | [Export log](logs/omnient-6-off-export.log) | [xcresult](xcresults/omnient-6-off.xcresult) | [Manifest](attachments/omnient-6-off-attachments/manifest.json) | +| omnient | 6 | ON | [CSV](attachments/omnient-6-on-attachments/E6C3729F-A057-452A-A9FB-40FAA77FD740.csv) | [JSON](attachments/omnient-6-on-attachments/6D7E1B35-E5AF-43DE-9128-CE18E82AD7B1.json) | [Log](logs/omnient-6-on.log) | [Export log](logs/omnient-6-on-export.log) | [xcresult](xcresults/omnient-6-on.xcresult) | [Manifest](attachments/omnient-6-on-attachments/manifest.json) | +| omnient | 7 | OFF | [CSV](attachments/omnient-7-off-attachments/D3035EDE-A3A8-48D9-A2F6-DE57F792380C.csv) | [JSON](attachments/omnient-7-off-attachments/D9CB3A6B-756D-4741-A502-AE311F132DC2.json) | [Log](logs/omnient-7-off.log) | [Export log](logs/omnient-7-off-export.log) | [xcresult](xcresults/omnient-7-off.xcresult) | [Manifest](attachments/omnient-7-off-attachments/manifest.json) | +| omnient | 7 | ON | [CSV](attachments/omnient-7-on-attachments/E13896B5-724E-4BD4-B47D-F6EE4EC6E691.csv) | [JSON](attachments/omnient-7-on-attachments/E10CA6F1-4910-4800-9C1D-792374BDFD34.json) | [Log](logs/omnient-7-on.log) | [Export log](logs/omnient-7-on-export.log) | [xcresult](xcresults/omnient-7-on.xcresult) | [Manifest](attachments/omnient-7-on-attachments/manifest.json) | +| omnient | 8 | OFF | [CSV](attachments/omnient-8-off-attachments/9994A64C-BFAF-4BFD-8C4F-07D6C2EAEBF9.csv) | [JSON](attachments/omnient-8-off-attachments/B363FC1F-C7F0-43C8-89F7-313091C7313A.json) | [Log](logs/omnient-8-off.log) | [Export log](logs/omnient-8-off-export.log) | [xcresult](xcresults/omnient-8-off.xcresult) | [Manifest](attachments/omnient-8-off-attachments/manifest.json) | +| omnient | 8 | ON | [CSV](attachments/omnient-8-on-attachments/DFC897DF-0706-4A15-BABF-E5C5BBFA9939.csv) | [JSON](attachments/omnient-8-on-attachments/101DBAE6-71B8-478E-8312-A721A6D524E0.json) | [Log](logs/omnient-8-on.log) | [Export log](logs/omnient-8-on-export.log) | [xcresult](xcresults/omnient-8-on.xcresult) | [Manifest](attachments/omnient-8-on-attachments/manifest.json) | +| omnient | 9 | OFF | [CSV](attachments/omnient-9-off-attachments/80019BB0-ED05-4A54-ADB1-F17E8274BA78.csv) | [JSON](attachments/omnient-9-off-attachments/98F3D5D1-0A2F-4BDF-8808-E7797E791760.json) | [Log](logs/omnient-9-off.log) | [Export log](logs/omnient-9-off-export.log) | [xcresult](xcresults/omnient-9-off.xcresult) | [Manifest](attachments/omnient-9-off-attachments/manifest.json) | +| omnient | 9 | ON | [CSV](attachments/omnient-9-on-attachments/B2A83480-FA4E-491A-A1D4-52863385B9C2.csv) | [JSON](attachments/omnient-9-on-attachments/207CE9BA-4BBD-4C2F-975F-C1000EEFDC4E.json) | [Log](logs/omnient-9-on.log) | [Export log](logs/omnient-9-on-export.log) | [xcresult](xcresults/omnient-9-on.xcresult) | [Manifest](attachments/omnient-9-on-attachments/manifest.json) | +| omnient | 10 | OFF | [CSV](attachments/omnient-10-off-attachments/5B3798AB-FD81-4925-9306-8E2BFACAF855.csv) | [JSON](attachments/omnient-10-off-attachments/31FFCB36-0F26-478A-BA19-6214E017A480.json) | [Log](logs/omnient-10-off.log) | [Export log](logs/omnient-10-off-export.log) | [xcresult](xcresults/omnient-10-off.xcresult) | [Manifest](attachments/omnient-10-off-attachments/manifest.json) | +| omnient | 10 | ON | [CSV](attachments/omnient-10-on-attachments/159D2BE8-1A22-49E2-BF68-EE2FF01BBDB9.csv) | [JSON](attachments/omnient-10-on-attachments/8A4C452A-27FB-4A59-860B-D5ADFBF176FF.json) | [Log](logs/omnient-10-on.log) | [Export log](logs/omnient-10-on-export.log) | [xcresult](xcresults/omnient-10-on.xcresult) | [Manifest](attachments/omnient-10-on-attachments/manifest.json) | +| omnient | 11 | OFF | [CSV](attachments/omnient-11-off-attachments/6A6AD907-A79B-44FE-9E21-B379BCE8F4FF.csv) | [JSON](attachments/omnient-11-off-attachments/E60322DE-0DE2-4E96-A7FF-B274896C4F5C.json) | [Log](logs/omnient-11-off.log) | [Export log](logs/omnient-11-off-export.log) | [xcresult](xcresults/omnient-11-off.xcresult) | [Manifest](attachments/omnient-11-off-attachments/manifest.json) | +| omnient | 11 | ON | [CSV](attachments/omnient-11-on-attachments/8E79B96A-8D3B-48D5-856C-E078608FA175.csv) | [JSON](attachments/omnient-11-on-attachments/F693DD4A-F856-4B7F-BE97-1379FDE49CAD.json) | [Log](logs/omnient-11-on.log) | [Export log](logs/omnient-11-on-export.log) | [xcresult](xcresults/omnient-11-on.xcresult) | [Manifest](attachments/omnient-11-on-attachments/manifest.json) | +| omnient | 12 | OFF | [CSV](attachments/omnient-12-off-attachments/7E9AFECB-5919-4A38-85AF-B55D2D665989.csv) | [JSON](attachments/omnient-12-off-attachments/4558417E-1C49-4717-881E-4A8AB34D8669.json) | [Log](logs/omnient-12-off.log) | [Export log](logs/omnient-12-off-export.log) | [xcresult](xcresults/omnient-12-off.xcresult) | [Manifest](attachments/omnient-12-off-attachments/manifest.json) | +| omnient | 12 | ON | [CSV](attachments/omnient-12-on-attachments/1D24D489-FBB9-4DB0-9FE6-88678DFF2327.csv) | [JSON](attachments/omnient-12-on-attachments/AF43E3BC-0F42-41F7-8F3E-5A35F4A8FFCA.json) | [Log](logs/omnient-12-on.log) | [Export log](logs/omnient-12-on-export.log) | [xcresult](xcresults/omnient-12-on.xcresult) | [Manifest](attachments/omnient-12-on-attachments/manifest.json) | +| omnient | 13 | OFF | [CSV](attachments/omnient-13-off-attachments/02EDB649-E46D-4BC4-BA22-BC75EDC0E17C.csv) | [JSON](attachments/omnient-13-off-attachments/C6802EE1-5E26-472F-A0B0-1B791117700C.json) | [Log](logs/omnient-13-off.log) | [Export log](logs/omnient-13-off-export.log) | [xcresult](xcresults/omnient-13-off.xcresult) | [Manifest](attachments/omnient-13-off-attachments/manifest.json) | +| omnient | 13 | ON | [CSV](attachments/omnient-13-on-attachments/CB32D6FA-8466-4C21-BCE2-404DD37DFC76.csv) | [JSON](attachments/omnient-13-on-attachments/0DF1862A-4E58-4530-B78F-EBE9860D7F85.json) | [Log](logs/omnient-13-on.log) | [Export log](logs/omnient-13-on-export.log) | [xcresult](xcresults/omnient-13-on.xcresult) | [Manifest](attachments/omnient-13-on-attachments/manifest.json) | +| omnient | 14 | OFF | [CSV](attachments/omnient-14-off-attachments/135443D6-82B7-4697-B28E-ADB5F594DA0C.csv) | [JSON](attachments/omnient-14-off-attachments/790155C9-4A4A-4A75-9691-7410B10A24C8.json) | [Log](logs/omnient-14-off.log) | [Export log](logs/omnient-14-off-export.log) | [xcresult](xcresults/omnient-14-off.xcresult) | [Manifest](attachments/omnient-14-off-attachments/manifest.json) | +| omnient | 14 | ON | [CSV](attachments/omnient-14-on-attachments/96EC4D2C-4936-4B2E-B314-531E26D64981.csv) | [JSON](attachments/omnient-14-on-attachments/44EC7E08-2019-44C3-B79A-3B346F67894E.json) | [Log](logs/omnient-14-on.log) | [Export log](logs/omnient-14-on-export.log) | [xcresult](xcresults/omnient-14-on.xcresult) | [Manifest](attachments/omnient-14-on-attachments/manifest.json) | +| omnient | 15 | OFF | [CSV](attachments/omnient-15-off-attachments/CCC7A94D-FD0C-4ED8-AE0A-650FFAAA3FF8.csv) | [JSON](attachments/omnient-15-off-attachments/E5F4A6B1-49D6-443F-AD55-FC3477281181.json) | [Log](logs/omnient-15-off.log) | [Export log](logs/omnient-15-off-export.log) | [xcresult](xcresults/omnient-15-off.xcresult) | [Manifest](attachments/omnient-15-off-attachments/manifest.json) | +| omnient | 15 | ON | [CSV](attachments/omnient-15-on-attachments/9312177F-F714-4114-BE3C-C987591D791B.csv) | [JSON](attachments/omnient-15-on-attachments/2DA171C0-A283-4101-8554-7A1B69CA6DE6.json) | [Log](logs/omnient-15-on.log) | [Export log](logs/omnient-15-on-export.log) | [xcresult](xcresults/omnient-15-on.xcresult) | [Manifest](attachments/omnient-15-on-attachments/manifest.json) | +| omnient | 16 | OFF | [CSV](attachments/omnient-16-off-attachments/908A498C-6503-4C0E-BEED-AA51AED1B30F.csv) | [JSON](attachments/omnient-16-off-attachments/5F0983C2-6265-4928-867E-FCF09D3EB4B8.json) | [Log](logs/omnient-16-off.log) | [Export log](logs/omnient-16-off-export.log) | [xcresult](xcresults/omnient-16-off.xcresult) | [Manifest](attachments/omnient-16-off-attachments/manifest.json) | +| omnient | 16 | ON | [CSV](attachments/omnient-16-on-attachments/C7FD96A0-04DA-47B4-A7CB-21604C695E39.csv) | [JSON](attachments/omnient-16-on-attachments/C94854F2-2CD1-4709-8D2D-80AC2D3A7D75.json) | [Log](logs/omnient-16-on.log) | [Export log](logs/omnient-16-on-export.log) | [xcresult](xcresults/omnient-16-on.xcresult) | [Manifest](attachments/omnient-16-on-attachments/manifest.json) | +| omnient | 17 | OFF | [CSV](attachments/omnient-17-off-attachments/8E99555B-65DC-4887-91A0-2FA30D0285BD.csv) | [JSON](attachments/omnient-17-off-attachments/8900F7CC-6A55-4A20-992D-F93BF84C8BBC.json) | [Log](logs/omnient-17-off.log) | [Export log](logs/omnient-17-off-export.log) | [xcresult](xcresults/omnient-17-off.xcresult) | [Manifest](attachments/omnient-17-off-attachments/manifest.json) | +| omnient | 17 | ON | [CSV](attachments/omnient-17-on-attachments/B59240B1-3C35-4E9C-BB9E-934E45594012.csv) | [JSON](attachments/omnient-17-on-attachments/B34CD746-B3BB-442B-80B8-68FADAA198D7.json) | [Log](logs/omnient-17-on.log) | [Export log](logs/omnient-17-on-export.log) | [xcresult](xcresults/omnient-17-on.xcresult) | [Manifest](attachments/omnient-17-on-attachments/manifest.json) | +| omnient | 18 | OFF | [CSV](attachments/omnient-18-off-attachments/69854C88-5CE6-4B61-B765-1ADEB0A1E2F3.csv) | [JSON](attachments/omnient-18-off-attachments/A4A9DFBA-8912-420C-8560-70813441FF75.json) | [Log](logs/omnient-18-off.log) | [Export log](logs/omnient-18-off-export.log) | [xcresult](xcresults/omnient-18-off.xcresult) | [Manifest](attachments/omnient-18-off-attachments/manifest.json) | +| omnient | 18 | ON | [CSV](attachments/omnient-18-on-attachments/FAD7B75A-9AA2-472B-A481-17D527AED2B5.csv) | [JSON](attachments/omnient-18-on-attachments/358955FF-7B5D-4E93-AC35-8DE15162A9AF.json) | [Log](logs/omnient-18-on.log) | [Export log](logs/omnient-18-on-export.log) | [xcresult](xcresults/omnient-18-on.xcresult) | [Manifest](attachments/omnient-18-on-attachments/manifest.json) | +| omnient | 19 | OFF | [CSV](attachments/omnient-19-off-attachments/E4E546BE-BD2C-4004-A84E-8C699BB73E8E.csv) | [JSON](attachments/omnient-19-off-attachments/23C095D0-E434-4E4A-83A0-EA5D00511F6B.json) | [Log](logs/omnient-19-off.log) | [Export log](logs/omnient-19-off-export.log) | [xcresult](xcresults/omnient-19-off.xcresult) | [Manifest](attachments/omnient-19-off-attachments/manifest.json) | +| omnient | 19 | ON | [CSV](attachments/omnient-19-on-attachments/650DF601-8EA6-4485-8C64-A425EF4DD456.csv) | [JSON](attachments/omnient-19-on-attachments/92FEB931-50F8-4788-BB97-C9054E265A28.json) | [Log](logs/omnient-19-on.log) | [Export log](logs/omnient-19-on-export.log) | [xcresult](xcresults/omnient-19-on.xcresult) | [Manifest](attachments/omnient-19-on-attachments/manifest.json) | +| omnient | 20 | OFF | [CSV](attachments/omnient-20-off-attachments/D2801FB0-45CE-4415-9D0A-CF4122C93CA4.csv) | [JSON](attachments/omnient-20-off-attachments/9881C7F6-E381-4799-BDC3-5420993502A6.json) | [Log](logs/omnient-20-off.log) | [Export log](logs/omnient-20-off-export.log) | [xcresult](xcresults/omnient-20-off.xcresult) | [Manifest](attachments/omnient-20-off-attachments/manifest.json) | +| omnient | 20 | ON | [CSV](attachments/omnient-20-on-attachments/C48370E6-9887-4F4B-A7E2-91BD7B160A8E.csv) | [JSON](attachments/omnient-20-on-attachments/654BF54C-237E-40A9-8636-E7B144887236.json) | [Log](logs/omnient-20-on.log) | [Export log](logs/omnient-20-on-export.log) | [xcresult](xcresults/omnient-20-on.xcresult) | [Manifest](attachments/omnient-20-on-attachments/manifest.json) | +| omnient | 21 | OFF | [CSV](attachments/omnient-21-off-attachments/28EB684E-6DAA-4259-B8FE-B21EF54445CB.csv) | [JSON](attachments/omnient-21-off-attachments/BDD58BAE-2182-45DA-A7C9-38A50DF48336.json) | [Log](logs/omnient-21-off.log) | [Export log](logs/omnient-21-off-export.log) | [xcresult](xcresults/omnient-21-off.xcresult) | [Manifest](attachments/omnient-21-off-attachments/manifest.json) | +| omnient | 21 | ON | [CSV](attachments/omnient-21-on-attachments/1D82C4AB-2433-41C9-AB5B-5595E844B110.csv) | [JSON](attachments/omnient-21-on-attachments/78304137-DA36-4EFD-8864-E4CC55FE061F.json) | [Log](logs/omnient-21-on.log) | [Export log](logs/omnient-21-on-export.log) | [xcresult](xcresults/omnient-21-on.xcresult) | [Manifest](attachments/omnient-21-on-attachments/manifest.json) | +| omnient | 22 | OFF | [CSV](attachments/omnient-22-off-attachments/E43A6F94-B8DF-47E7-9032-018727FED6D8.csv) | [JSON](attachments/omnient-22-off-attachments/7D085580-5273-4B1E-A7DE-0344547A7E7C.json) | [Log](logs/omnient-22-off.log) | [Export log](logs/omnient-22-off-export.log) | [xcresult](xcresults/omnient-22-off.xcresult) | [Manifest](attachments/omnient-22-off-attachments/manifest.json) | +| omnient | 22 | ON | [CSV](attachments/omnient-22-on-attachments/41181262-11A3-4AF3-9810-C226F3336F57.csv) | [JSON](attachments/omnient-22-on-attachments/05102F37-B812-4201-874E-6DA7C2C523D3.json) | [Log](logs/omnient-22-on.log) | [Export log](logs/omnient-22-on-export.log) | [xcresult](xcresults/omnient-22-on.xcresult) | [Manifest](attachments/omnient-22-on-attachments/manifest.json) | +| omnient | 23 | OFF | [CSV](attachments/omnient-23-off-attachments/83C70201-9BB6-49F6-BF06-D6011108B39A.csv) | [JSON](attachments/omnient-23-off-attachments/30EE212C-A954-49E1-8DA2-C1E56742536D.json) | [Log](logs/omnient-23-off.log) | [Export log](logs/omnient-23-off-export.log) | [xcresult](xcresults/omnient-23-off.xcresult) | [Manifest](attachments/omnient-23-off-attachments/manifest.json) | +| omnient | 23 | ON | [CSV](attachments/omnient-23-on-attachments/24DB1505-A2FE-4C6A-BB6E-AFF0FDAE8C3D.csv) | [JSON](attachments/omnient-23-on-attachments/154162FA-B0A6-4B75-98CA-3BA04B15B94C.json) | [Log](logs/omnient-23-on.log) | [Export log](logs/omnient-23-on-export.log) | [xcresult](xcresults/omnient-23-on.xcresult) | [Manifest](attachments/omnient-23-on-attachments/manifest.json) | +| omnient | 24 | OFF | [CSV](attachments/omnient-24-off-attachments/9414B78D-5808-4E19-A8A4-1C1618EE4CF2.csv) | [JSON](attachments/omnient-24-off-attachments/1ADF93B0-AEC8-4959-8E41-B9B63437A33A.json) | [Log](logs/omnient-24-off.log) | [Export log](logs/omnient-24-off-export.log) | [xcresult](xcresults/omnient-24-off.xcresult) | [Manifest](attachments/omnient-24-off-attachments/manifest.json) | +| omnient | 24 | ON | [CSV](attachments/omnient-24-on-attachments/96E90D48-D796-49B2-A972-BA4AC75B1B67.csv) | [JSON](attachments/omnient-24-on-attachments/8CDC5821-3C78-4EC4-A88C-A69B24CC8869.json) | [Log](logs/omnient-24-on.log) | [Export log](logs/omnient-24-on-export.log) | [xcresult](xcresults/omnient-24-on.xcresult) | [Manifest](attachments/omnient-24-on-attachments/manifest.json) | +| omnient | 25 | OFF | [CSV](attachments/omnient-25-off-attachments/9C905E1E-2AD8-4AFD-871C-7015FD584E47.csv) | [JSON](attachments/omnient-25-off-attachments/9C4A36F9-767C-4992-BECF-0B16913EC0A1.json) | [Log](logs/omnient-25-off.log) | [Export log](logs/omnient-25-off-export.log) | [xcresult](xcresults/omnient-25-off.xcresult) | [Manifest](attachments/omnient-25-off-attachments/manifest.json) | +| omnient | 25 | ON | [CSV](attachments/omnient-25-on-attachments/B192088E-DDE5-481B-8DDA-F63F81EF5848.csv) | [JSON](attachments/omnient-25-on-attachments/394FEC37-5B4B-416E-B82A-8BE69580C208.json) | [Log](logs/omnient-25-on.log) | [Export log](logs/omnient-25-on-export.log) | [xcresult](xcresults/omnient-25-on.xcresult) | [Manifest](attachments/omnient-25-on-attachments/manifest.json) | +| omnient | 26 | OFF | [CSV](attachments/omnient-26-off-attachments/49051135-B39C-44A8-9A46-BCE4C4AD6691.csv) | [JSON](attachments/omnient-26-off-attachments/B25E15C0-F388-4239-B958-F01329674952.json) | [Log](logs/omnient-26-off.log) | [Export log](logs/omnient-26-off-export.log) | [xcresult](xcresults/omnient-26-off.xcresult) | [Manifest](attachments/omnient-26-off-attachments/manifest.json) | +| omnient | 26 | ON | [CSV](attachments/omnient-26-on-attachments/D488CC57-8AAD-4AB9-9797-E8BB19DF2BF7.csv) | [JSON](attachments/omnient-26-on-attachments/46F7A8E7-E22C-4384-9E7B-9F8FED27C2F1.json) | [Log](logs/omnient-26-on.log) | [Export log](logs/omnient-26-on-export.log) | [xcresult](xcresults/omnient-26-on.xcresult) | [Manifest](attachments/omnient-26-on-attachments/manifest.json) | +| omnient | 27 | OFF | [CSV](attachments/omnient-27-off-attachments/CF9E4A88-C485-4920-A961-78775E598052.csv) | [JSON](attachments/omnient-27-off-attachments/7F589A17-4832-4E59-9324-99EC64D228A5.json) | [Log](logs/omnient-27-off.log) | [Export log](logs/omnient-27-off-export.log) | [xcresult](xcresults/omnient-27-off.xcresult) | [Manifest](attachments/omnient-27-off-attachments/manifest.json) | +| omnient | 27 | ON | [CSV](attachments/omnient-27-on-attachments/B941597F-A46D-4F54-8B12-35AC7ADEB390.csv) | [JSON](attachments/omnient-27-on-attachments/E55C6A05-22DD-4A6C-B5B3-7424CF7CB3BD.json) | [Log](logs/omnient-27-on.log) | [Export log](logs/omnient-27-on-export.log) | [xcresult](xcresults/omnient-27-on.xcresult) | [Manifest](attachments/omnient-27-on-attachments/manifest.json) | +| omnient | 28 | OFF | [CSV](attachments/omnient-28-off-attachments/2BB4297E-4484-4AC1-B5FF-8443A114DE75.csv) | [JSON](attachments/omnient-28-off-attachments/303A29E6-0C91-4AC7-88E2-C180519D497E.json) | [Log](logs/omnient-28-off.log) | [Export log](logs/omnient-28-off-export.log) | [xcresult](xcresults/omnient-28-off.xcresult) | [Manifest](attachments/omnient-28-off-attachments/manifest.json) | +| omnient | 28 | ON | [CSV](attachments/omnient-28-on-attachments/3F951475-72A9-4F3C-AF23-124DA4BFE380.csv) | [JSON](attachments/omnient-28-on-attachments/218B5DE2-9398-44AC-8871-4B9B570A8DCC.json) | [Log](logs/omnient-28-on.log) | [Export log](logs/omnient-28-on-export.log) | [xcresult](xcresults/omnient-28-on.xcresult) | [Manifest](attachments/omnient-28-on-attachments/manifest.json) | +| omnient | 29 | OFF | [CSV](attachments/omnient-29-off-attachments/490CFB43-385A-450F-963F-4DCF97B863D2.csv) | [JSON](attachments/omnient-29-off-attachments/33D94FDF-4BD2-448C-B98C-7130A558DC2D.json) | [Log](logs/omnient-29-off.log) | [Export log](logs/omnient-29-off-export.log) | [xcresult](xcresults/omnient-29-off.xcresult) | [Manifest](attachments/omnient-29-off-attachments/manifest.json) | +| omnient | 29 | ON | [CSV](attachments/omnient-29-on-attachments/FEA3FEF2-7070-4717-94FE-04CFD5BDCAFC.csv) | [JSON](attachments/omnient-29-on-attachments/E588E5D4-F584-47DE-B903-8F1F9182FBCB.json) | [Log](logs/omnient-29-on.log) | [Export log](logs/omnient-29-on-export.log) | [xcresult](xcresults/omnient-29-on.xcresult) | [Manifest](attachments/omnient-29-on-attachments/manifest.json) | +| omnient | 30 | OFF | [CSV](attachments/omnient-30-off-attachments/B14B85CB-B926-4738-B9BA-8E31711A2762.csv) | [JSON](attachments/omnient-30-off-attachments/1EB6E99A-482C-4A21-87E9-CBF7D1E49D87.json) | [Log](logs/omnient-30-off.log) | [Export log](logs/omnient-30-off-export.log) | [xcresult](xcresults/omnient-30-off.xcresult) | [Manifest](attachments/omnient-30-off-attachments/manifest.json) | +| omnient | 30 | ON | [CSV](attachments/omnient-30-on-attachments/2453DDFF-A172-44A2-B6DC-C0CA98E9DB33.csv) | [JSON](attachments/omnient-30-on-attachments/01E9E446-19BB-4F07-A3D0-BE1E505BA945.json) | [Log](logs/omnient-30-on.log) | [Export log](logs/omnient-30-on-export.log) | [xcresult](xcresults/omnient-30-on.xcresult) | [Manifest](attachments/omnient-30-on-attachments/manifest.json) | +| omnient | 31 | OFF | [CSV](attachments/omnient-31-off-attachments/E4C24AFD-E40F-40C5-99AA-E3D02FED824B.csv) | [JSON](attachments/omnient-31-off-attachments/2A8A18A5-DAF4-4AFB-B77E-FD0A991CDC91.json) | [Log](logs/omnient-31-off.log) | [Export log](logs/omnient-31-off-export.log) | [xcresult](xcresults/omnient-31-off.xcresult) | [Manifest](attachments/omnient-31-off-attachments/manifest.json) | +| omnient | 31 | ON | [CSV](attachments/omnient-31-on-attachments/F94D98DD-5A7E-404A-A4C2-BF8DC593D789.csv) | [JSON](attachments/omnient-31-on-attachments/61153B03-D1B6-401A-8F96-EC260CE681E3.json) | [Log](logs/omnient-31-on.log) | [Export log](logs/omnient-31-on-export.log) | [xcresult](xcresults/omnient-31-on.xcresult) | [Manifest](attachments/omnient-31-on-attachments/manifest.json) | +| omnient | 32 | OFF | [CSV](attachments/omnient-32-off-attachments/94805741-48C8-49B7-86CB-97589B419EB0.csv) | [JSON](attachments/omnient-32-off-attachments/0271B4A7-ABB4-400A-AB1B-F34DB1185707.json) | [Log](logs/omnient-32-off.log) | [Export log](logs/omnient-32-off-export.log) | [xcresult](xcresults/omnient-32-off.xcresult) | [Manifest](attachments/omnient-32-off-attachments/manifest.json) | +| omnient | 32 | ON | [CSV](attachments/omnient-32-on-attachments/B2F231D4-C69D-4857-912C-716684436571.csv) | [JSON](attachments/omnient-32-on-attachments/47A6159C-B919-4D8A-A0CA-B50289A2A813.json) | [Log](logs/omnient-32-on.log) | [Export log](logs/omnient-32-on-export.log) | [xcresult](xcresults/omnient-32-on.xcresult) | [Manifest](attachments/omnient-32-on-attachments/manifest.json) | +| omnient | 33 | OFF | [CSV](attachments/omnient-33-off-attachments/55C6A48B-2DDB-4327-8BF2-91D83C516765.csv) | [JSON](attachments/omnient-33-off-attachments/65C5F034-D152-4096-8460-AF60F10A9D12.json) | [Log](logs/omnient-33-off.log) | [Export log](logs/omnient-33-off-export.log) | [xcresult](xcresults/omnient-33-off.xcresult) | [Manifest](attachments/omnient-33-off-attachments/manifest.json) | +| omnient | 33 | ON | [CSV](attachments/omnient-33-on-attachments/AC05D25E-8952-45CC-8843-4036B712CC12.csv) | [JSON](attachments/omnient-33-on-attachments/5426A8EC-415D-4E78-9D22-0A18415EF891.json) | [Log](logs/omnient-33-on.log) | [Export log](logs/omnient-33-on-export.log) | [xcresult](xcresults/omnient-33-on.xcresult) | [Manifest](attachments/omnient-33-on-attachments/manifest.json) | +| omnient | 34 | OFF | [CSV](attachments/omnient-34-off-attachments/FE086387-DF2F-4090-89E8-636CA12C73C1.csv) | [JSON](attachments/omnient-34-off-attachments/BD6F0520-A10D-4C93-8AB0-FA0481A91C92.json) | [Log](logs/omnient-34-off.log) | [Export log](logs/omnient-34-off-export.log) | [xcresult](xcresults/omnient-34-off.xcresult) | [Manifest](attachments/omnient-34-off-attachments/manifest.json) | +| omnient | 34 | ON | [CSV](attachments/omnient-34-on-attachments/86B0CBF5-FE89-4F25-B635-107BD79FAE0A.csv) | [JSON](attachments/omnient-34-on-attachments/045C6115-6874-483C-B2CD-6FD935F225CF.json) | [Log](logs/omnient-34-on.log) | [Export log](logs/omnient-34-on-export.log) | [xcresult](xcresults/omnient-34-on.xcresult) | [Manifest](attachments/omnient-34-on-attachments/manifest.json) | +| omnient | 35 | OFF | [CSV](attachments/omnient-35-off-attachments/F28DDB0A-4441-4234-9DE5-6A59696F4768.csv) | [JSON](attachments/omnient-35-off-attachments/6A42C480-092A-4102-ACE1-16A35CF82C65.json) | [Log](logs/omnient-35-off.log) | [Export log](logs/omnient-35-off-export.log) | [xcresult](xcresults/omnient-35-off.xcresult) | [Manifest](attachments/omnient-35-off-attachments/manifest.json) | +| omnient | 35 | ON | [CSV](attachments/omnient-35-on-attachments/B70D9125-6051-46F1-A09E-A96C7E73C364.csv) | [JSON](attachments/omnient-35-on-attachments/B303A44F-9FFB-44B5-BFA5-B5F0127E7EE9.json) | [Log](logs/omnient-35-on.log) | [Export log](logs/omnient-35-on-export.log) | [xcresult](xcresults/omnient-35-on.xcresult) | [Manifest](attachments/omnient-35-on-attachments/manifest.json) | +| omnient | 36 | OFF | [CSV](attachments/omnient-36-off-attachments/F8DD658E-8BC9-4D1A-92F9-5006BEFBDF5F.csv) | [JSON](attachments/omnient-36-off-attachments/2A924FE8-A5BE-4968-8F2E-57B3A20A87EC.json) | [Log](logs/omnient-36-off.log) | [Export log](logs/omnient-36-off-export.log) | [xcresult](xcresults/omnient-36-off.xcresult) | [Manifest](attachments/omnient-36-off-attachments/manifest.json) | +| omnient | 36 | ON | [CSV](attachments/omnient-36-on-attachments/3BBA24AE-BBF3-4648-A40E-77939E6172E1.csv) | [JSON](attachments/omnient-36-on-attachments/2082ADE1-D4D2-4F4D-BDAE-DE1FF2564548.json) | [Log](logs/omnient-36-on.log) | [Export log](logs/omnient-36-on-export.log) | [xcresult](xcresults/omnient-36-on.xcresult) | [Manifest](attachments/omnient-36-on-attachments/manifest.json) | +| omnient | 37 | OFF | [CSV](attachments/omnient-37-off-attachments/1969C835-4742-49A7-A724-5A783C35D6F8.csv) | [JSON](attachments/omnient-37-off-attachments/5325A4A5-EFBC-4734-BFD6-0C4EE75EF493.json) | [Log](logs/omnient-37-off.log) | [Export log](logs/omnient-37-off-export.log) | [xcresult](xcresults/omnient-37-off.xcresult) | [Manifest](attachments/omnient-37-off-attachments/manifest.json) | +| omnient | 37 | ON | [CSV](attachments/omnient-37-on-attachments/0379251A-C183-41F3-9333-156E0E06D7CE.csv) | [JSON](attachments/omnient-37-on-attachments/C4986599-287E-4843-879E-74E464434FFF.json) | [Log](logs/omnient-37-on.log) | [Export log](logs/omnient-37-on-export.log) | [xcresult](xcresults/omnient-37-on.xcresult) | [Manifest](attachments/omnient-37-on-attachments/manifest.json) | +| omnient | 38 | OFF | [CSV](attachments/omnient-38-off-attachments/B1BB59C7-C359-49B5-8C70-F95715C833E2.csv) | [JSON](attachments/omnient-38-off-attachments/F9D44975-D6FC-4497-B842-D4C00153C27F.json) | [Log](logs/omnient-38-off.log) | [Export log](logs/omnient-38-off-export.log) | [xcresult](xcresults/omnient-38-off.xcresult) | [Manifest](attachments/omnient-38-off-attachments/manifest.json) | +| omnient | 38 | ON | [CSV](attachments/omnient-38-on-attachments/1EE57D9B-6660-43C3-9378-D601C3E5E697.csv) | [JSON](attachments/omnient-38-on-attachments/9CBF5D90-BEBB-451E-B6DC-DC5E9A5E3EDF.json) | [Log](logs/omnient-38-on.log) | [Export log](logs/omnient-38-on-export.log) | [xcresult](xcresults/omnient-38-on.xcresult) | [Manifest](attachments/omnient-38-on-attachments/manifest.json) | +| omnient | 39 | OFF | [CSV](attachments/omnient-39-off-attachments/EF137444-27E5-4AE4-BE02-FAF3CCA29B07.csv) | [JSON](attachments/omnient-39-off-attachments/A9F7007A-2142-4726-A01C-E86976394810.json) | [Log](logs/omnient-39-off.log) | [Export log](logs/omnient-39-off-export.log) | [xcresult](xcresults/omnient-39-off.xcresult) | [Manifest](attachments/omnient-39-off-attachments/manifest.json) | +| omnient | 39 | ON | [CSV](attachments/omnient-39-on-attachments/05C5443F-F8C2-43C5-A2F3-8F84554F0098.csv) | [JSON](attachments/omnient-39-on-attachments/CF5346A7-D006-4D29-8099-DBB84FEC06CB.json) | [Log](logs/omnient-39-on.log) | [Export log](logs/omnient-39-on-export.log) | [xcresult](xcresults/omnient-39-on.xcresult) | [Manifest](attachments/omnient-39-on-attachments/manifest.json) | +| omnient | 40 | OFF | [CSV](attachments/omnient-40-off-attachments/098AB007-F52F-4CBE-83D1-58DB3FA1AEA1.csv) | [JSON](attachments/omnient-40-off-attachments/9D5CABC2-9EC6-4D5B-AE42-1C0DEBAEF75D.json) | [Log](logs/omnient-40-off.log) | [Export log](logs/omnient-40-off-export.log) | [xcresult](xcresults/omnient-40-off.xcresult) | [Manifest](attachments/omnient-40-off-attachments/manifest.json) | +| omnient | 40 | ON | [CSV](attachments/omnient-40-on-attachments/BB131A44-BB9B-478F-8FBD-18160D81E5E2.csv) | [JSON](attachments/omnient-40-on-attachments/39F5B7A3-6966-4E99-84EE-5CB362E81964.json) | [Log](logs/omnient-40-on.log) | [Export log](logs/omnient-40-on-export.log) | [xcresult](xcresults/omnient-40-on.xcresult) | [Manifest](attachments/omnient-40-on-attachments/manifest.json) | +| omnient | 41 | OFF | [CSV](attachments/omnient-41-off-attachments/39B5DB14-B04F-48AF-816F-5549022123D9.csv) | [JSON](attachments/omnient-41-off-attachments/68AEC900-19F6-4843-9AC6-239FC82E223E.json) | [Log](logs/omnient-41-off.log) | [Export log](logs/omnient-41-off-export.log) | [xcresult](xcresults/omnient-41-off.xcresult) | [Manifest](attachments/omnient-41-off-attachments/manifest.json) | +| omnient | 41 | ON | [CSV](attachments/omnient-41-on-attachments/A192AFBE-119B-4BD5-9750-7E89E535FF40.csv) | [JSON](attachments/omnient-41-on-attachments/C84981F8-7C14-416D-9B7C-A58805FE2682.json) | [Log](logs/omnient-41-on.log) | [Export log](logs/omnient-41-on-export.log) | [xcresult](xcresults/omnient-41-on.xcresult) | [Manifest](attachments/omnient-41-on-attachments/manifest.json) | +| omnient | 42 | OFF | [CSV](attachments/omnient-42-off-attachments/81F34ED0-8917-46AC-B389-1FCC01C297AF.csv) | [JSON](attachments/omnient-42-off-attachments/938C22FD-8814-42E5-9E46-A301CF44C467.json) | [Log](logs/omnient-42-off.log) | [Export log](logs/omnient-42-off-export.log) | [xcresult](xcresults/omnient-42-off.xcresult) | [Manifest](attachments/omnient-42-off-attachments/manifest.json) | +| omnient | 42 | ON | [CSV](attachments/omnient-42-on-attachments/5EFCD299-BB74-4092-B86E-BB89818B2158.csv) | [JSON](attachments/omnient-42-on-attachments/FEF593D6-7BD3-44BE-95BD-58D7613949CA.json) | [Log](logs/omnient-42-on.log) | [Export log](logs/omnient-42-on-export.log) | [xcresult](xcresults/omnient-42-on.xcresult) | [Manifest](attachments/omnient-42-on-attachments/manifest.json) | +| omnient | 43 | OFF | [CSV](attachments/omnient-43-off-attachments/D8D22E6E-BB69-431D-8A70-92B6B1EE0935.csv) | [JSON](attachments/omnient-43-off-attachments/237040EE-7F80-440E-ADC5-FF35E31AD8D5.json) | [Log](logs/omnient-43-off.log) | [Export log](logs/omnient-43-off-export.log) | [xcresult](xcresults/omnient-43-off.xcresult) | [Manifest](attachments/omnient-43-off-attachments/manifest.json) | +| omnient | 43 | ON | [CSV](attachments/omnient-43-on-attachments/1E6017FE-24EC-4079-9DE4-A9600490FA0C.csv) | [JSON](attachments/omnient-43-on-attachments/68C20B3C-DDE6-4E2D-87E6-D1C82BC14E8F.json) | [Log](logs/omnient-43-on.log) | [Export log](logs/omnient-43-on-export.log) | [xcresult](xcresults/omnient-43-on.xcresult) | [Manifest](attachments/omnient-43-on-attachments/manifest.json) | +| omnient | 44 | OFF | [CSV](attachments/omnient-44-off-attachments/763BECEC-AC1B-42A6-94E1-2BB024CEA729.csv) | [JSON](attachments/omnient-44-off-attachments/152036F0-77DD-4590-BB8E-A1B3B5A4C6B5.json) | [Log](logs/omnient-44-off.log) | [Export log](logs/omnient-44-off-export.log) | [xcresult](xcresults/omnient-44-off.xcresult) | [Manifest](attachments/omnient-44-off-attachments/manifest.json) | +| omnient | 44 | ON | [CSV](attachments/omnient-44-on-attachments/1ECBA35B-E8A3-4D5E-B96A-FC3631481C1C.csv) | [JSON](attachments/omnient-44-on-attachments/DA09BF97-FF1D-4597-995E-D1D54B24D618.json) | [Log](logs/omnient-44-on.log) | [Export log](logs/omnient-44-on-export.log) | [xcresult](xcresults/omnient-44-on.xcresult) | [Manifest](attachments/omnient-44-on-attachments/manifest.json) | +| omnient | 45 | OFF | [CSV](attachments/omnient-45-off-attachments/A700139C-5CB3-4923-B551-222A81ADD66B.csv) | [JSON](attachments/omnient-45-off-attachments/F1C0E3DF-689F-4498-9AAF-F3BA4C12DB1C.json) | [Log](logs/omnient-45-off.log) | [Export log](logs/omnient-45-off-export.log) | [xcresult](xcresults/omnient-45-off.xcresult) | [Manifest](attachments/omnient-45-off-attachments/manifest.json) | +| omnient | 45 | ON | [CSV](attachments/omnient-45-on-attachments/2351D8B1-AB60-4DC3-A559-C6A2E7EA77B6.csv) | [JSON](attachments/omnient-45-on-attachments/56EDBCBB-FE9D-4276-8113-E696F28B20EB.json) | [Log](logs/omnient-45-on.log) | [Export log](logs/omnient-45-on-export.log) | [xcresult](xcresults/omnient-45-on.xcresult) | [Manifest](attachments/omnient-45-on-attachments/manifest.json) | +| omnient | 46 | OFF | [CSV](attachments/omnient-46-off-attachments/0091470A-6453-4AB7-BD9C-31B746F3EBA8.csv) | [JSON](attachments/omnient-46-off-attachments/16EC1E3D-9BDE-4404-99DA-E84EF3C721CF.json) | [Log](logs/omnient-46-off.log) | [Export log](logs/omnient-46-off-export.log) | [xcresult](xcresults/omnient-46-off.xcresult) | [Manifest](attachments/omnient-46-off-attachments/manifest.json) | +| omnient | 46 | ON | [CSV](attachments/omnient-46-on-attachments/29C4C49E-B2F5-41BE-ADAD-DB176F69C648.csv) | [JSON](attachments/omnient-46-on-attachments/89475DDF-DF56-490F-959E-ADC7D9D477C8.json) | [Log](logs/omnient-46-on.log) | [Export log](logs/omnient-46-on-export.log) | [xcresult](xcresults/omnient-46-on.xcresult) | [Manifest](attachments/omnient-46-on-attachments/manifest.json) | +| omnient | 47 | OFF | [CSV](attachments/omnient-47-off-attachments/E31A25A4-A3F5-468F-825D-D6352ACB7725.csv) | [JSON](attachments/omnient-47-off-attachments/4B6E9B57-9AEE-47DC-8AEE-023501AF22D9.json) | [Log](logs/omnient-47-off.log) | [Export log](logs/omnient-47-off-export.log) | [xcresult](xcresults/omnient-47-off.xcresult) | [Manifest](attachments/omnient-47-off-attachments/manifest.json) | +| omnient | 47 | ON | [CSV](attachments/omnient-47-on-attachments/E5811806-602C-4021-8073-F43FB3B55FC1.csv) | [JSON](attachments/omnient-47-on-attachments/2B72473B-3A45-45AA-B139-A7715EDE84E0.json) | [Log](logs/omnient-47-on.log) | [Export log](logs/omnient-47-on-export.log) | [xcresult](xcresults/omnient-47-on.xcresult) | [Manifest](attachments/omnient-47-on-attachments/manifest.json) | +| omnient | 48 | OFF | [CSV](attachments/omnient-48-off-attachments/D92CD015-F055-4FA0-BE1B-A09B93C7E8F7.csv) | [JSON](attachments/omnient-48-off-attachments/3C2E3579-82ED-4C7E-915A-F340942775DB.json) | [Log](logs/omnient-48-off.log) | [Export log](logs/omnient-48-off-export.log) | [xcresult](xcresults/omnient-48-off.xcresult) | [Manifest](attachments/omnient-48-off-attachments/manifest.json) | +| omnient | 48 | ON | [CSV](attachments/omnient-48-on-attachments/3F961B14-6C6A-439C-8C51-86544B9F2751.csv) | [JSON](attachments/omnient-48-on-attachments/4D49007A-2228-4C9E-AEF1-B9FF3DF8EDA0.json) | [Log](logs/omnient-48-on.log) | [Export log](logs/omnient-48-on-export.log) | [xcresult](xcresults/omnient-48-on.xcresult) | [Manifest](attachments/omnient-48-on-attachments/manifest.json) | +| omnient | 49 | OFF | [CSV](attachments/omnient-49-off-attachments/C18055F0-ECAF-4959-8649-8CEFDB784BFB.csv) | [JSON](attachments/omnient-49-off-attachments/AD47A388-6C97-447F-8931-22B0711360D2.json) | [Log](logs/omnient-49-off.log) | [Export log](logs/omnient-49-off-export.log) | [xcresult](xcresults/omnient-49-off.xcresult) | [Manifest](attachments/omnient-49-off-attachments/manifest.json) | +| omnient | 49 | ON | [CSV](attachments/omnient-49-on-attachments/A7E45A97-CBD5-43EF-AB43-19D2587E6E8B.csv) | [JSON](attachments/omnient-49-on-attachments/8A229E29-A51B-4D42-9EE5-DF8227B6C37A.json) | [Log](logs/omnient-49-on.log) | [Export log](logs/omnient-49-on-export.log) | [xcresult](xcresults/omnient-49-on.xcresult) | [Manifest](attachments/omnient-49-on-attachments/manifest.json) | +| omnient | 50 | OFF | [CSV](attachments/omnient-50-off-attachments/1CB5643C-A00D-4415-9D43-73E432C69491.csv) | [JSON](attachments/omnient-50-off-attachments/415DE086-55E6-4F30-AFF4-941EBC0A07D9.json) | [Log](logs/omnient-50-off.log) | [Export log](logs/omnient-50-off-export.log) | [xcresult](xcresults/omnient-50-off.xcresult) | [Manifest](attachments/omnient-50-off-attachments/manifest.json) | +| omnient | 50 | ON | [CSV](attachments/omnient-50-on-attachments/D37DA46D-1729-4714-8F9D-FA379583663D.csv) | [JSON](attachments/omnient-50-on-attachments/2B3779D5-9172-4482-BD5B-38391D3834D1.json) | [Log](logs/omnient-50-on.log) | [Export log](logs/omnient-50-on-export.log) | [xcresult](xcresults/omnient-50-on.xcresult) | [Manifest](attachments/omnient-50-on-attachments/manifest.json) | + +## Histogram evidence + +[Histogram data and selection decisions](histograms/histogram-data.json) · [Full-precision paired differences](histograms/pair-differences.csv). Each record retains its pair number and exclusion reasons; no raw measurement is changed. + +[Input SHA-256 manifest](histograms/input-manifest.json) records the raw files used for aggregation. The histogram JSON records the renderer version and generator SHA-256. + +| Metric | PNG | SVG | +|---|---|---| +| TTFA | [PNG](histograms/ttfa-on-minus-off.png) | [SVG](histograms/ttfa-on-minus-off.svg) | +| TTFD | [PNG](histograms/ttfd-on-minus-off.png) | [SVG](histograms/ttfd-on-minus-off.svg) | + + +JSON includes app logs and task-level `URLSessionTaskMetrics`. Xcode logs include HTTP response metadata used to classify early POST status. Manifests map exported attachments to XCTest tests. diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/connection-reuse-audit.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/connection-reuse-audit.md new file mode 100644 index 0000000..cacbde6 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/connection-reuse-audit.md @@ -0,0 +1,234 @@ +# Handshake transport audit + +[Report](report.md) · [Artifacts](artifacts.md) + +The table lists the actual handshake task, identified by its request ID. In ON trials, either the handshake GET or the concurrent early POST may create the fresh connection; the other request can reuse it within that trial. + +The early POST HTTP status comes from the saved Xcode response metadata for `AID=-1`. HTTP 400 confirms rejection of that POST, but does not identify whether soft stickiness failed, requests arrived out of order, or another server-side condition caused it. OFF has no early POST. + +A fresh HTTP/2 connection was verified for each trial's first transport request, not inferred from creating a new service or process. In ON trials, the early POST could create the connection first and the handshake GET could reuse it. DNS, radio, and server state may remain warm. Repeated response-metadata callbacks for one request are counted once. + +Connection setup is `connectEndDate - connectStartDate` and includes the TLS handshake. TLS handshake is `secureConnectionEndDate - secureConnectionStartDate`, a portion of connection setup; do not add the two values. + +| Scenario | Pair | Setting | Test status | Early POST HTTP | Cold source | Handshake protocol | Handshake reused | Connection setup (incl. TLS, ms) | TLS handshake (ms) | Remote address | +|---|---:|:---:|---|:---:|---|---|:---:|---:|---:|---| +| omnient | 1 | OFF | completed | — | handshake | h2 | false | 32.000 | 23.000 | 2404:6800:400b:c017::451 | +| omnient | 1 | ON | completed | 200 | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 2 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 2 | ON | completed | 200 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 3 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 3 | ON | completed | 200 | handshake | h2 | false | 31.000 | 21.000 | 2404:6800:400b:c015::451 | +| omnient | 4 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 4 | ON | completed | 200 | handshake | h2 | false | 31.000 | 20.000 | 2404:6800:400b:c015::451 | +| omnient | 5 | OFF | completed | — | handshake | h2 | false | 25.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 5 | ON | completed | 200 | handshake | h2 | false | 57.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 6 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 6 | ON | completed | 200 | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 7 | OFF | completed | — | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 7 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 8 | OFF | completed | — | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 8 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 9 | OFF | completed | — | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 9 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 10 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 10 | ON | completed | 200 | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 11 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 11 | ON | completed | 200 | handshake | h2 | false | 23.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 12 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 12 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 13 | OFF | completed | — | handshake | h2 | false | 63.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 13 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 14 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 14 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 15 | OFF | completed | — | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 15 | ON | completed | 200 | handshake | h2 | false | 24.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 16 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 16 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 17 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 17 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 18 | OFF | completed | — | handshake | h2 | false | 25.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 18 | ON | completed | 200 | handshake | h2 | false | 31.000 | 22.000 | 2404:6800:400b:c015::451 | +| omnient | 19 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 19 | ON | completed | 200 | handshake | h2 | false | 27.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 20 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 20 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 21 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 21 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 22 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 22 | ON | completed | 200 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 23 | OFF | completed | — | handshake | h2 | false | 20.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 23 | ON | completed | 200 | handshake | h2 | false | 20.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 24 | OFF | completed | — | handshake | h2 | false | 86.000 | 75.000 | 2404:6800:400b:c015::451 | +| omnient | 24 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 25 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 25 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 26 | OFF | completed | — | handshake | h2 | false | 33.000 | 23.000 | 2404:6800:400b:c015::451 | +| omnient | 26 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 27 | OFF | completed | — | handshake | h2 | false | 30.000 | 17.000 | 2404:6800:400b:c015::451 | +| omnient | 27 | ON | completed | 200 | handshake | h2 | false | 28.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 28 | OFF | completed | — | handshake | h2 | false | 30.000 | 19.000 | 2404:6800:400b:c015::451 | +| omnient | 28 | ON | completed | 200 | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 29 | OFF | completed | — | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 29 | ON | completed | 200 | handshake | h2 | false | 40.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 30 | OFF | completed | — | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 30 | ON | completed | 200 | handshake | h2 | false | 26.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 31 | OFF | completed | — | handshake | h2 | false | 20.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 31 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 32 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 32 | ON | completed | 200 | handshake | h2 | false | 89.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 33 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 33 | ON | completed | 200 | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 34 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 34 | ON | completed | 200 | handshake | h2 | false | 21.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 35 | OFF | completed | — | handshake | h2 | false | 29.000 | 21.000 | 2404:6800:400b:c015::451 | +| omnient | 35 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 36 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 36 | ON | completed | 200 | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c015::451 | +| omnient | 37 | OFF | completed | — | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c015::451 | +| omnient | 37 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 38 | OFF | completed | — | handshake | h2 | false | 29.000 | 19.000 | 2404:6800:400b:c015::451 | +| omnient | 38 | ON | completed | 200 | handshake | h2 | false | 64.000 | 55.000 | 2404:6800:400b:c015::451 | +| omnient | 39 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 39 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c015::451 | +| omnient | 40 | OFF | completed | — | handshake | h2 | false | 37.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 40 | ON | completed | 200 | handshake | h2 | false | 26.000 | 17.000 | 2404:6800:400b:c015::451 | +| omnient | 41 | OFF | completed | — | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c015::451 | +| omnient | 41 | ON | completed | 200 | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 42 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 42 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 43 | OFF | completed | — | handshake | h2 | false | 75.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 43 | ON | completed | 200 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 44 | OFF | completed | — | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 44 | ON | completed | 200 | handshake | h2 | false | 23.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 45 | OFF | completed | — | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 45 | ON | completed | 200 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 46 | OFF | completed | — | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 46 | ON | completed | 200 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 47 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 47 | ON | completed | 200 | handshake | h2 | false | 24.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 48 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 48 | ON | completed | 200 | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 49 | OFF | completed | — | handshake | h2 | false | 64.000 | 52.000 | 2404:6800:400b:c017::451 | +| omnient | 49 | ON | completed | 200 | handshake | h2 | false | 26.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 50 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 50 | ON | completed | 200 | handshake | h2 | false | 216.000 | 206.000 | 2404:6800:400b:c017::451 | + +## M1 and M3 dispatch + +The handshake payload column is the request's encoded `count`. `count=0` means neither M1 nor M3 was in the handshake request itself. `early POST` means the first request containing that message was an `AID=-1` POST logged before WebChannel opened, concurrent with the handshake; it does not prove server arrival order or acceptance. `post-open POST` means its first request was logged after the channel opened. + +M1 is message offset 0. The demo sends M3 at offset 1 in Omnient and offset 2 in Viewfinder (after M2 Heartbeat). Request body prefixes expose `count` and `ofs`, which identify the first HTTP request containing each queued message. A rejected early POST may be retried after opening; the table records the first dispatch. + +The observed M1 delay is measured from the client connect timestamp to the M1 `send()` call; scheduling can vary slightly from the requested delay. + +| Scenario | Pair | Setting | M1 after connect (ms) | Handshake payload | M1 first request | M3 first request | +|---|---:|:---:|---:|:---:|---|---| +| omnient | 1 | OFF | 104.914 | count=0 | post-open POST | post-open POST | +| omnient | 1 | ON | 104.991 | count=0 | early POST | early POST | +| omnient | 2 | OFF | 105.415 | count=0 | post-open POST | post-open POST | +| omnient | 2 | ON | 103.433 | count=0 | early POST | early POST | +| omnient | 3 | OFF | 104.413 | count=0 | post-open POST | post-open POST | +| omnient | 3 | ON | 105.076 | count=0 | early POST | early POST | +| omnient | 4 | OFF | 104.025 | count=0 | post-open POST | post-open POST | +| omnient | 4 | ON | 105.209 | count=0 | early POST | early POST | +| omnient | 5 | OFF | 103.406 | count=0 | post-open POST | post-open POST | +| omnient | 5 | ON | 102.466 | count=0 | early POST | early POST | +| omnient | 6 | OFF | 103.587 | count=0 | post-open POST | post-open POST | +| omnient | 6 | ON | 103.989 | count=0 | early POST | early POST | +| omnient | 7 | OFF | 103.673 | count=0 | post-open POST | post-open POST | +| omnient | 7 | ON | 102.616 | count=0 | early POST | early POST | +| omnient | 8 | OFF | 104.408 | count=0 | post-open POST | post-open POST | +| omnient | 8 | ON | 103.042 | count=0 | early POST | early POST | +| omnient | 9 | OFF | 102.323 | count=0 | post-open POST | post-open POST | +| omnient | 9 | ON | 105.412 | count=0 | early POST | early POST | +| omnient | 10 | OFF | 104.275 | count=0 | post-open POST | post-open POST | +| omnient | 10 | ON | 104.374 | count=0 | early POST | early POST | +| omnient | 11 | OFF | 103.420 | count=0 | post-open POST | post-open POST | +| omnient | 11 | ON | 101.947 | count=0 | early POST | early POST | +| omnient | 12 | OFF | 103.352 | count=0 | post-open POST | post-open POST | +| omnient | 12 | ON | 102.298 | count=0 | early POST | early POST | +| omnient | 13 | OFF | 103.677 | count=0 | post-open POST | post-open POST | +| omnient | 13 | ON | 101.642 | count=0 | early POST | early POST | +| omnient | 14 | OFF | 102.123 | count=0 | post-open POST | post-open POST | +| omnient | 14 | ON | 104.201 | count=0 | early POST | early POST | +| omnient | 15 | OFF | 104.071 | count=0 | post-open POST | post-open POST | +| omnient | 15 | ON | 104.663 | count=0 | early POST | early POST | +| omnient | 16 | OFF | 105.384 | count=0 | post-open POST | post-open POST | +| omnient | 16 | ON | 103.165 | count=0 | early POST | early POST | +| omnient | 17 | OFF | 104.421 | count=0 | post-open POST | post-open POST | +| omnient | 17 | ON | 100.589 | count=0 | early POST | early POST | +| omnient | 18 | OFF | 103.110 | count=0 | post-open POST | post-open POST | +| omnient | 18 | ON | 100.727 | count=0 | early POST | early POST | +| omnient | 19 | OFF | 104.989 | count=0 | post-open POST | post-open POST | +| omnient | 19 | ON | 103.655 | count=0 | early POST | early POST | +| omnient | 20 | OFF | 103.124 | count=0 | post-open POST | post-open POST | +| omnient | 20 | ON | 101.231 | count=0 | early POST | early POST | +| omnient | 21 | OFF | 105.404 | count=0 | post-open POST | post-open POST | +| omnient | 21 | ON | 102.199 | count=0 | early POST | early POST | +| omnient | 22 | OFF | 102.648 | count=0 | post-open POST | post-open POST | +| omnient | 22 | ON | 104.145 | count=0 | early POST | early POST | +| omnient | 23 | OFF | 103.422 | count=0 | post-open POST | post-open POST | +| omnient | 23 | ON | 103.498 | count=0 | early POST | early POST | +| omnient | 24 | OFF | 101.470 | count=0 | post-open POST | post-open POST | +| omnient | 24 | ON | 103.616 | count=0 | early POST | early POST | +| omnient | 25 | OFF | 104.101 | count=0 | post-open POST | post-open POST | +| omnient | 25 | ON | 104.210 | count=0 | early POST | early POST | +| omnient | 26 | OFF | 100.932 | count=0 | post-open POST | post-open POST | +| omnient | 26 | ON | 102.569 | count=0 | early POST | early POST | +| omnient | 27 | OFF | 100.424 | count=0 | post-open POST | post-open POST | +| omnient | 27 | ON | 101.249 | count=0 | early POST | early POST | +| omnient | 28 | OFF | 100.431 | count=0 | post-open POST | post-open POST | +| omnient | 28 | ON | 100.608 | count=0 | early POST | early POST | +| omnient | 29 | OFF | 105.416 | count=0 | post-open POST | post-open POST | +| omnient | 29 | ON | 102.545 | count=0 | early POST | early POST | +| omnient | 30 | OFF | 101.318 | count=0 | post-open POST | post-open POST | +| omnient | 30 | ON | 104.884 | count=0 | early POST | early POST | +| omnient | 31 | OFF | 105.365 | count=0 | post-open POST | post-open POST | +| omnient | 31 | ON | 103.486 | count=0 | early POST | early POST | +| omnient | 32 | OFF | 102.522 | count=0 | post-open POST | post-open POST | +| omnient | 32 | ON | 103.039 | count=0 | early POST | early POST | +| omnient | 33 | OFF | 103.480 | count=0 | post-open POST | post-open POST | +| omnient | 33 | ON | 104.134 | count=0 | early POST | early POST | +| omnient | 34 | OFF | 103.807 | count=0 | post-open POST | post-open POST | +| omnient | 34 | ON | 103.522 | count=0 | early POST | early POST | +| omnient | 35 | OFF | 100.710 | count=0 | post-open POST | post-open POST | +| omnient | 35 | ON | 102.129 | count=0 | early POST | early POST | +| omnient | 36 | OFF | 105.125 | count=0 | post-open POST | post-open POST | +| omnient | 36 | ON | 104.553 | count=0 | early POST | early POST | +| omnient | 37 | OFF | 103.029 | count=0 | post-open POST | post-open POST | +| omnient | 37 | ON | 102.544 | count=0 | early POST | early POST | +| omnient | 38 | OFF | 104.355 | count=0 | post-open POST | post-open POST | +| omnient | 38 | ON | 105.316 | count=0 | early POST | early POST | +| omnient | 39 | OFF | 101.961 | count=0 | post-open POST | post-open POST | +| omnient | 39 | ON | 104.111 | count=0 | early POST | early POST | +| omnient | 40 | OFF | 103.602 | count=0 | post-open POST | post-open POST | +| omnient | 40 | ON | 103.677 | count=0 | early POST | early POST | +| omnient | 41 | OFF | 101.448 | count=0 | post-open POST | post-open POST | +| omnient | 41 | ON | 104.581 | count=0 | early POST | early POST | +| omnient | 42 | OFF | 105.441 | count=0 | post-open POST | post-open POST | +| omnient | 42 | ON | 103.232 | count=0 | early POST | early POST | +| omnient | 43 | OFF | 104.077 | count=0 | post-open POST | post-open POST | +| omnient | 43 | ON | 103.517 | count=0 | early POST | early POST | +| omnient | 44 | OFF | 104.018 | count=0 | post-open POST | post-open POST | +| omnient | 44 | ON | 100.782 | count=0 | early POST | early POST | +| omnient | 45 | OFF | 105.417 | count=0 | post-open POST | post-open POST | +| omnient | 45 | ON | 102.229 | count=0 | early POST | early POST | +| omnient | 46 | OFF | 103.165 | count=0 | post-open POST | post-open POST | +| omnient | 46 | ON | 103.464 | count=0 | early POST | early POST | +| omnient | 47 | OFF | 103.481 | count=0 | post-open POST | post-open POST | +| omnient | 47 | ON | 103.441 | count=0 | early POST | early POST | +| omnient | 48 | OFF | 102.730 | count=0 | post-open POST | post-open POST | +| omnient | 48 | ON | 103.604 | count=0 | early POST | early POST | +| omnient | 49 | OFF | 102.555 | count=0 | post-open POST | post-open POST | +| omnient | 49 | ON | 102.419 | count=0 | early POST | early POST | +| omnient | 50 | OFF | 104.778 | count=0 | post-open POST | post-open POST | +| omnient | 50 | ON | 105.048 | count=0 | early POST | early POST | + +## Observations and limits + +Omnient sends M3 immediately after M1, scheduled 100 ms after connect() returns. Fresh connection verification is to the reached edge, not a cold DNS lookup or cold backend application state. + +The initial early POST returned HTTP 400 in 0/50 ON trials. Of those trials, 0 completed; inspect the logs to distinguish successful retries from incomplete runs. + +The Xcode logs contain retry diagnostics in ON trials for omnient pairs none. Those retries can affect TTFA and TTFD; the raw logs should be consulted before attributing a timing difference solely to the handshake option. + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/histogram-data.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/histogram-data.json new file mode 100644 index 0000000..a2a0a08 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/histogram-data.json @@ -0,0 +1,1135 @@ +{ + "initialMessageDelayMs": 100, + "pairCount": 50, + "handshakeThresholdMs": 20.0, + "difference": "ON minus OFF", + "binWidthMs": 10, + "pairs": [ + { + "pair": 1, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -73.94194602966309, + "ttfdDifferenceMs": -67.9008960723877 + }, + { + "pair": 2, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -209.59293842315674, + "ttfdDifferenceMs": -161.45098209381104 + }, + { + "pair": 3, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -107.43892192840576, + "ttfdDifferenceMs": -119.01605129241943 + }, + { + "pair": 4, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -52.25396156311035, + "ttfdDifferenceMs": -51.26595497131348 + }, + { + "pair": 5, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -73.28498363494873, + "ttfdDifferenceMs": -77.78000831604004 + }, + { + "pair": 6, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -63.34185600280762, + "ttfdDifferenceMs": -62.988877296447754 + }, + { + "pair": 7, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -68.27199459075928, + "ttfdDifferenceMs": -72.41201400756836 + }, + { + "pair": 8, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -50.004005432128906, + "ttfdDifferenceMs": -44.69108581542969 + }, + { + "pair": 9, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -57.05606937408447, + "ttfdDifferenceMs": -53.034067153930664 + }, + { + "pair": 10, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -63.474059104919434, + "ttfdDifferenceMs": -49.29399490356445 + }, + { + "pair": 11, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -72.0059871673584, + "ttfdDifferenceMs": -65.59908390045166 + }, + { + "pair": 12, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -69.64492797851562, + "ttfdDifferenceMs": -69.85294818878174 + }, + { + "pair": 13, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -91.08996391296387, + "ttfdDifferenceMs": -88.56093883514404 + }, + { + "pair": 14, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -81.05003833770752, + "ttfdDifferenceMs": -79.87701892852783 + }, + { + "pair": 15, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -68.20106506347656, + "ttfdDifferenceMs": -66.24913215637207 + }, + { + "pair": 16, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -64.66293334960938, + "ttfdDifferenceMs": -58.71093273162842 + }, + { + "pair": 17, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -67.97003746032715, + "ttfdDifferenceMs": -63.68100643157959 + }, + { + "pair": 18, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 102.26094722747803, + "ttfdDifferenceMs": 57.30998516082764 + }, + { + "pair": 19, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -222.32306003570557, + "ttfdDifferenceMs": -173.78711700439453 + }, + { + "pair": 20, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -68.89402866363525, + "ttfdDifferenceMs": -68.44103336334229 + }, + { + "pair": 21, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -44.3340539932251, + "ttfdDifferenceMs": -47.557950019836426 + }, + { + "pair": 22, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -237.746000289917, + "ttfdDifferenceMs": -187.9209280014038 + }, + { + "pair": 23, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -55.946946144104004, + "ttfdDifferenceMs": -55.523037910461426 + }, + { + "pair": 24, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -117.39003658294678, + "ttfdDifferenceMs": -113.42203617095947 + }, + { + "pair": 25, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -49.44193363189697, + "ttfdDifferenceMs": -45.726895332336426 + }, + { + "pair": 26, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -90.19601345062256, + "ttfdDifferenceMs": -88.63389492034912 + }, + { + "pair": 27, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -61.3938570022583, + "ttfdDifferenceMs": -65.61887264251709 + }, + { + "pair": 28, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -76.51591300964355, + "ttfdDifferenceMs": -75.61099529266357 + }, + { + "pair": 29, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -45.85087299346924, + "ttfdDifferenceMs": -42.29593276977539 + }, + { + "pair": 30, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -81.10499382019043, + "ttfdDifferenceMs": -63.44807147979736 + }, + { + "pair": 31, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -42.01102256774902, + "ttfdDifferenceMs": -36.16595268249512 + }, + { + "pair": 32, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -62.52288818359375, + "ttfdDifferenceMs": -62.40808963775635 + }, + { + "pair": 33, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -50.68695545196533, + "ttfdDifferenceMs": -45.81093788146973 + }, + { + "pair": 34, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -62.767982482910156, + "ttfdDifferenceMs": -57.166099548339844 + }, + { + "pair": 35, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -67.45803356170654, + "ttfdDifferenceMs": -57.98006057739258 + }, + { + "pair": 36, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -52.54006385803223, + "ttfdDifferenceMs": -51.05710029602051 + }, + { + "pair": 37, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -25.085926055908203, + "ttfdDifferenceMs": -71.6710090637207 + }, + { + "pair": 38, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -70.66488265991211, + "ttfdDifferenceMs": -57.498931884765625 + }, + { + "pair": 39, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -134.10604000091553, + "ttfdDifferenceMs": -133.40997695922852 + }, + { + "pair": 40, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -87.4030590057373, + "ttfdDifferenceMs": -77.4010419845581 + }, + { + "pair": 41, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -46.167969703674316, + "ttfdDifferenceMs": -49.60298538208008 + }, + { + "pair": 42, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -46.99993133544922, + "ttfdDifferenceMs": -48.99299144744873 + }, + { + "pair": 43, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -122.55096435546875, + "ttfdDifferenceMs": -121.64998054504395 + }, + { + "pair": 44, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -67.30103492736816, + "ttfdDifferenceMs": -64.1469955444336 + }, + { + "pair": 45, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -63.903093338012695, + "ttfdDifferenceMs": -62.59918212890625 + }, + { + "pair": 46, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -53.256988525390625, + "ttfdDifferenceMs": -53.08198928833008 + }, + { + "pair": 47, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -56.44798278808594, + "ttfdDifferenceMs": -55.43398857116699 + }, + { + "pair": 48, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -46.8289852142334, + "ttfdDifferenceMs": -46.00811004638672 + }, + { + "pair": 49, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -115.52810668945312, + "ttfdDifferenceMs": -108.74903202056885 + }, + { + "pair": 50, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 80.28209209442139, + "ttfdDifferenceMs": 85.10303497314453 + } + ], + "histograms": { + "TTFA": { + "binEdgesMs": [ + -280.0, + -270.0, + -260.0, + -250.0, + -240.0, + -230.0, + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0, + 1430.0, + 1440.0, + 1450.0, + 1460.0 + ], + "pairCounts": [ + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 4, + 12, + 8, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "TTFD": { + "binEdgesMs": [ + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0 + ], + "pairCounts": [ + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 4, + 11, + 9, + 8, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "earlyPost400Pairs": 0, + "earlyPost400Rate": 0.0, + "unknownEarlyPostPairs": 0, + "noEarlyPostPairs": 0, + "acceptedPairs": 37, + "matplotlibVersion": "3.10.9", + "generatorSHA256": "766535930221932399509978f10b8b165a4a53854ccd020b2a379a83be842761", + "sharedHistogramAxes": true +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/input-manifest.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/input-manifest.json new file mode 100644 index 0000000..ac7ef40 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/input-manifest.json @@ -0,0 +1,1602 @@ +[ + { + "path": "attachments/omnient-1-off-attachments/832A160D-8670-4A29-8D6A-075484320ED4.csv", + "sha256": "cca70f9d06cbebfccca8d5b22d1946db03ea26fcb853e1cf4f57d25c80f8d596" + }, + { + "path": "attachments/omnient-1-off-attachments/BFDFE828-D7B0-4AD2-AF3B-102CE2BDE82A.json", + "sha256": "94f28565e6a670d97b0796b9efd789dda1e1927850aa7e5464f81173f100c1a2" + }, + { + "path": "attachments/omnient-1-off-attachments/manifest.json", + "sha256": "ca0fac564054d982cab9835e34fb26c3788d5000b3e16e23a7261a809fc88ec2" + }, + { + "path": "attachments/omnient-1-on-attachments/01B990FE-E6F1-4255-853D-20BEB93AC364.json", + "sha256": "86fa583c27031e2b0785a842d206cadef22a20b85241cdf9665be59e678745da" + }, + { + "path": "attachments/omnient-1-on-attachments/0C35CA67-82C5-42B2-8E79-15C50AF16795.csv", + "sha256": "2cfcce8b98268a6588898a638cf712cd48103d937e39b891e13a3bc8166ca8b9" + }, + { + "path": "attachments/omnient-1-on-attachments/manifest.json", + "sha256": "913b917d6617cb775f21f96873c926af9ff5f58dd38467b4ba3ca46952e8f5b4" + }, + { + "path": "attachments/omnient-10-off-attachments/31FFCB36-0F26-478A-BA19-6214E017A480.json", + "sha256": "991f632aeac366f6b04fdcec46b9b465ea3545afb54db19b95e9c4c383f4bda7" + }, + { + "path": "attachments/omnient-10-off-attachments/5B3798AB-FD81-4925-9306-8E2BFACAF855.csv", + "sha256": "3f37996cc2274b47f3a2faa2618c040cdbfdc9564b4ce5a765d8dd9cc75a516c" + }, + { + "path": "attachments/omnient-10-off-attachments/manifest.json", + "sha256": "ff51517156aeac3295d91a581fb4da06cde04ea822f8fe1c6138f1bc0fb7fcf6" + }, + { + "path": "attachments/omnient-10-on-attachments/159D2BE8-1A22-49E2-BF68-EE2FF01BBDB9.csv", + "sha256": "95aed4a56a1daf4ef0b44c2ddafaeefcf856c660608855f012a202e10e996b05" + }, + { + "path": "attachments/omnient-10-on-attachments/8A4C452A-27FB-4A59-860B-D5ADFBF176FF.json", + "sha256": "9b6f4e1e95878e9c196a54ec039c1173b70e59cdcc75f94363c42dd56f03e2bb" + }, + { + "path": "attachments/omnient-10-on-attachments/manifest.json", + "sha256": "60b060707b197f32d6672fe2f904bc273e34f5e8451ece5d78ef29e319717984" + }, + { + "path": "attachments/omnient-11-off-attachments/6A6AD907-A79B-44FE-9E21-B379BCE8F4FF.csv", + "sha256": "d1c88a2d99507dd5cb0d5d0260f569b9927f0ba34200a13d70b4952e50dbf6e7" + }, + { + "path": "attachments/omnient-11-off-attachments/E60322DE-0DE2-4E96-A7FF-B274896C4F5C.json", + "sha256": "f520f51f8c59b6f65cdaa4907ebb8f3ec3e787c6182c5af0379a85714e60c09f" + }, + { + "path": "attachments/omnient-11-off-attachments/manifest.json", + "sha256": "66cae543b0be25fa04263aa6a8549dffd52d333734a0183510473076e4a83574" + }, + { + "path": "attachments/omnient-11-on-attachments/8E79B96A-8D3B-48D5-856C-E078608FA175.csv", + "sha256": "37df6d28657efd37dca3abdff5d72ebf095474ca7489cba0f9f00eed8140fc93" + }, + { + "path": "attachments/omnient-11-on-attachments/F693DD4A-F856-4B7F-BE97-1379FDE49CAD.json", + "sha256": "b46df42a9cf7d3035db3a79e80894e381cfcbf8d522499c924420a1f8bd105a6" + }, + { + "path": "attachments/omnient-11-on-attachments/manifest.json", + "sha256": "3755f157c2fe26910b6af8fc9c9643ba1f785482768ab62e9be92972f4bf3541" + }, + { + "path": "attachments/omnient-12-off-attachments/4558417E-1C49-4717-881E-4A8AB34D8669.json", + "sha256": "5b9e240f851351bdc960b36c8caad6d554d0ea10e32d39a406e928b769ade2da" + }, + { + "path": "attachments/omnient-12-off-attachments/7E9AFECB-5919-4A38-85AF-B55D2D665989.csv", + "sha256": "af8e8deedcfe5171d242b89b4e4bac0965b31c72534db7c48e876a607d69866d" + }, + { + "path": "attachments/omnient-12-off-attachments/manifest.json", + "sha256": "bbb205fab23eebc49866b01c3964e093420ef7702fdfcab6072e019cc06dd404" + }, + { + "path": "attachments/omnient-12-on-attachments/1D24D489-FBB9-4DB0-9FE6-88678DFF2327.csv", + "sha256": "c9ed43d7f20918c754db9a5e45515ef45b7cd155019827987ef8dccee238ee58" + }, + { + "path": "attachments/omnient-12-on-attachments/AF43E3BC-0F42-41F7-8F3E-5A35F4A8FFCA.json", + "sha256": "024ee2e8a094c656806c82093785d2b62766c0be0c5684289f9c7a6285d4104e" + }, + { + "path": "attachments/omnient-12-on-attachments/manifest.json", + "sha256": "b9991d7b8d64ba6fcf2f31a2e8558bf8f0b636af52600bb6c5c0ad381dd2f005" + }, + { + "path": "attachments/omnient-13-off-attachments/02EDB649-E46D-4BC4-BA22-BC75EDC0E17C.csv", + "sha256": "7554ca4f44703e294dce060cc47834a36753a490a75f76f10d7b3fdd1a101462" + }, + { + "path": "attachments/omnient-13-off-attachments/C6802EE1-5E26-472F-A0B0-1B791117700C.json", + "sha256": "cca43d162287a855108bca4a15f875d7c6aad8cc99d579104c52accdceb61b8f" + }, + { + "path": "attachments/omnient-13-off-attachments/manifest.json", + "sha256": "5e54638d6f4c68f77a256fdba2b18ed08bc57668f521befeed4f329e69c5a50f" + }, + { + "path": "attachments/omnient-13-on-attachments/0DF1862A-4E58-4530-B78F-EBE9860D7F85.json", + "sha256": "b5a7ca0afde6d98efc0569ebdcb24f0cef8a1b3260c94b4d7b8100b0fb984005" + }, + { + "path": "attachments/omnient-13-on-attachments/CB32D6FA-8466-4C21-BCE2-404DD37DFC76.csv", + "sha256": "c951b87a5f02c53b13d0bd23e4826a517b3feedf023f8f85d02ca6d12033f421" + }, + { + "path": "attachments/omnient-13-on-attachments/manifest.json", + "sha256": "4d2e8be1a3ec1a6dd2846884b250a03a6162677e75a72870572bda003a35109d" + }, + { + "path": "attachments/omnient-14-off-attachments/135443D6-82B7-4697-B28E-ADB5F594DA0C.csv", + "sha256": "4dea55ac60c784d609ee636a124d7fa85dfa2d36688e740d7575352643454a1d" + }, + { + "path": "attachments/omnient-14-off-attachments/790155C9-4A4A-4A75-9691-7410B10A24C8.json", + "sha256": "88033d90b0c220c60eab24877f5d9727ea7593f5fc0674cb8caca3089625241f" + }, + { + "path": "attachments/omnient-14-off-attachments/manifest.json", + "sha256": "1e798453d0efa12325c5768104208c768d3e8e8dfb69c08168edf195f2dcd590" + }, + { + "path": "attachments/omnient-14-on-attachments/44EC7E08-2019-44C3-B79A-3B346F67894E.json", + "sha256": "6dc6a35ce3e88c4d2b399a6c2f5ad91d9f01e7d3bb6b143132d0b7425a3295ef" + }, + { + "path": "attachments/omnient-14-on-attachments/96EC4D2C-4936-4B2E-B314-531E26D64981.csv", + "sha256": "507cc9a82f17ba40ff1e417e82559602e6f64c462ba971d7de588884ae496347" + }, + { + "path": "attachments/omnient-14-on-attachments/manifest.json", + "sha256": "84ddbed9f709393a492abd6839c5754b98c71cb3e5ce87c29b3c28ebe07c3497" + }, + { + "path": "attachments/omnient-15-off-attachments/CCC7A94D-FD0C-4ED8-AE0A-650FFAAA3FF8.csv", + "sha256": "e48ecd1032caa5291f4bc85dfe95e5c060d7cfccae5406b7ffc918ea8625247b" + }, + { + "path": "attachments/omnient-15-off-attachments/E5F4A6B1-49D6-443F-AD55-FC3477281181.json", + "sha256": "b89a39f68714bc9e5e0641a371d111e7058761736f7f4bad2933e7b0797e3cb6" + }, + { + "path": "attachments/omnient-15-off-attachments/manifest.json", + "sha256": "851a963878567690561c922ad0d4aef1e87431b92105cede3e8e7c7721e6031b" + }, + { + "path": "attachments/omnient-15-on-attachments/2DA171C0-A283-4101-8554-7A1B69CA6DE6.json", + "sha256": "2e8452ba6559ea324145a0e36c3c204ca0455f02c1f9d8cecc3372b5e7932128" + }, + { + "path": "attachments/omnient-15-on-attachments/9312177F-F714-4114-BE3C-C987591D791B.csv", + "sha256": "e0fd0086c989999e501c72946c781167bb70a9b013a7c41c3c2aef4191901352" + }, + { + "path": "attachments/omnient-15-on-attachments/manifest.json", + "sha256": "c318615567bfed40f3e9eee211d77025a81211202517463b38552ab0fd8879ee" + }, + { + "path": "attachments/omnient-16-off-attachments/5F0983C2-6265-4928-867E-FCF09D3EB4B8.json", + "sha256": "3d4255faebc413a7651c9e3410c5b3246657fc1dd87b01c81944f6de5df8b760" + }, + { + "path": "attachments/omnient-16-off-attachments/908A498C-6503-4C0E-BEED-AA51AED1B30F.csv", + "sha256": "e579f7d4e9c2bfd6a75edd97cb7d76d18c6ac33e589b78d2668abc5e4bf94848" + }, + { + "path": "attachments/omnient-16-off-attachments/manifest.json", + "sha256": "37e2857db24b0704c7c8cc769ea38132b2288e6597eef8c4f876ad621813979c" + }, + { + "path": "attachments/omnient-16-on-attachments/C7FD96A0-04DA-47B4-A7CB-21604C695E39.csv", + "sha256": "1f9f3aa36bddbac6386d5670717f0e964a8b629c74563ed9c45f13769102178a" + }, + { + "path": "attachments/omnient-16-on-attachments/C94854F2-2CD1-4709-8D2D-80AC2D3A7D75.json", + "sha256": "8deee03fcf9c040849566603fb0a35e33cd2df6cf059ed00fd110bc8252330b6" + }, + { + "path": "attachments/omnient-16-on-attachments/manifest.json", + "sha256": "b7683682b41f91602cc9a655ff270535b91c39226ca520d14986b5c7adde8b20" + }, + { + "path": "attachments/omnient-17-off-attachments/8900F7CC-6A55-4A20-992D-F93BF84C8BBC.json", + "sha256": "341d7d16bd37501db7780e97fa87daf352e7e7e3e0b614a220a054e5187bda67" + }, + { + "path": "attachments/omnient-17-off-attachments/8E99555B-65DC-4887-91A0-2FA30D0285BD.csv", + "sha256": "736b450157c44b93412e3dbc6ed547f877725bfc3e9efcef7b83705f9346466d" + }, + { + "path": "attachments/omnient-17-off-attachments/manifest.json", + "sha256": "32486de15add136bdd13623e2125c775bc7ea6e53450a896eb014d78f1128d95" + }, + { + "path": "attachments/omnient-17-on-attachments/B34CD746-B3BB-442B-80B8-68FADAA198D7.json", + "sha256": "eae5879212ac67c3cbd2ba68fc655afd99052a4cbeb135a58be2905c0a4a9c28" + }, + { + "path": "attachments/omnient-17-on-attachments/B59240B1-3C35-4E9C-BB9E-934E45594012.csv", + "sha256": "12af417716d7d1330edd5662721042c855c98581de552f955388224f957c7693" + }, + { + "path": "attachments/omnient-17-on-attachments/manifest.json", + "sha256": "72b744c5bbddf5959d99363c7479ad0a3335afaa7e80c5bedc0f874e4f559dec" + }, + { + "path": "attachments/omnient-18-off-attachments/69854C88-5CE6-4B61-B765-1ADEB0A1E2F3.csv", + "sha256": "60e16c6e5bc69158529601d7b40e9cc0258c901c32f324f22d2c5cee07eb5fb1" + }, + { + "path": "attachments/omnient-18-off-attachments/A4A9DFBA-8912-420C-8560-70813441FF75.json", + "sha256": "a7c882b794f29a54dddb96af07988aab27e2a91727a84695b9c891b047e2a820" + }, + { + "path": "attachments/omnient-18-off-attachments/manifest.json", + "sha256": "fbdff59a8e4ed304e8ed92a814fead63eeda341a56d9b12692c61d32956de491" + }, + { + "path": "attachments/omnient-18-on-attachments/358955FF-7B5D-4E93-AC35-8DE15162A9AF.json", + "sha256": "5dd5a216f4c8e993513f565a21a65faaed1021dc59df17fa111a7ed65e18c023" + }, + { + "path": "attachments/omnient-18-on-attachments/FAD7B75A-9AA2-472B-A481-17D527AED2B5.csv", + "sha256": "2468d270426fb77aaa20ac979ad72356583f3b1c80a123f0fcb04b0ac10b6108" + }, + { + "path": "attachments/omnient-18-on-attachments/manifest.json", + "sha256": "d70330005410a4ef6829ae2af07bda27a6885ad21e6a3580b417c3728d880759" + }, + { + "path": "attachments/omnient-19-off-attachments/23C095D0-E434-4E4A-83A0-EA5D00511F6B.json", + "sha256": "53ceb690436f43a705d8fd76d2cce18ea996d677b04aa4188863f9b18498707b" + }, + { + "path": "attachments/omnient-19-off-attachments/E4E546BE-BD2C-4004-A84E-8C699BB73E8E.csv", + "sha256": "f268b7bfc67a3f46a5bc889045577ce2a07ad4a323d4e5f87d1be60b0bdf75cf" + }, + { + "path": "attachments/omnient-19-off-attachments/manifest.json", + "sha256": "9a086ad2c1f6a12cc400c45ae4c7bc986bca114a5017603f0b792afd88cc516c" + }, + { + "path": "attachments/omnient-19-on-attachments/650DF601-8EA6-4485-8C64-A425EF4DD456.csv", + "sha256": "7fb934557f6401cfee0faa36922011f3f69c50ae6da909e6b1dda2a2f9325f89" + }, + { + "path": "attachments/omnient-19-on-attachments/92FEB931-50F8-4788-BB97-C9054E265A28.json", + "sha256": "57b1f2b108eaee205431de07faab2a754709851f84a09efa63fa1feb74db6fcd" + }, + { + "path": "attachments/omnient-19-on-attachments/manifest.json", + "sha256": "119f09bedf88a080d6351f62c70a500323d63e8a1b35cca48c216f9b05566791" + }, + { + "path": "attachments/omnient-2-off-attachments/759734B4-7B0C-4EE9-916C-3C3E84001263.json", + "sha256": "b559aa0fe6a08e17656047141793202d5e18891abe8e0798c1eece315dc74a33" + }, + { + "path": "attachments/omnient-2-off-attachments/EF229AC0-9FF3-4627-8FF7-5EA07CE6DA9D.csv", + "sha256": "e13e2a27d6cdfcd6c1e49d232d22967f77381a4a8a27395290a0d7f6038252d9" + }, + { + "path": "attachments/omnient-2-off-attachments/manifest.json", + "sha256": "924b886d80b47dd47fcf7e641c22551b9eb383524e6959b19c38b7d68666ef3a" + }, + { + "path": "attachments/omnient-2-on-attachments/6F1EF493-580D-4914-BD0A-804EB13BD1A7.json", + "sha256": "1dc14cc8982bb818a35f01ee300bced7c17c5d6bd7e94f5313c4ea52069bf7e4" + }, + { + "path": "attachments/omnient-2-on-attachments/8E946674-20ED-4821-9D1E-C8160BDBAAFC.csv", + "sha256": "f4bd90a407f0494a114893f709191718737176a3277b60cf7379746f03ca4101" + }, + { + "path": "attachments/omnient-2-on-attachments/manifest.json", + "sha256": "4a810b038fce687017d5a8c24351dfbd2265bf897f6580ddf3d3189ac82a9e97" + }, + { + "path": "attachments/omnient-20-off-attachments/9881C7F6-E381-4799-BDC3-5420993502A6.json", + "sha256": "ae268ccd5afd9c7c1db5c719af54c7c34af0fd3289a90d99cd8eefd03d5007a8" + }, + { + "path": "attachments/omnient-20-off-attachments/D2801FB0-45CE-4415-9D0A-CF4122C93CA4.csv", + "sha256": "2a4f36983b4c52f1efa7326d1d7cca360c3827782fa3abc31574e6cbd4159b53" + }, + { + "path": "attachments/omnient-20-off-attachments/manifest.json", + "sha256": "194935f696f2dc53207eb19dfc65faa303a497e6448559690c159c03d8b9c72a" + }, + { + "path": "attachments/omnient-20-on-attachments/654BF54C-237E-40A9-8636-E7B144887236.json", + "sha256": "948aacbec9956a78145b004be37a7873a3a2b42dc3db580a77cf6fa2bd58c176" + }, + { + "path": "attachments/omnient-20-on-attachments/C48370E6-9887-4F4B-A7E2-91BD7B160A8E.csv", + "sha256": "1666fb312fafd0b25f2ed8434fd61b6dea2622c2d16222e44dfcddeb55580bb6" + }, + { + "path": "attachments/omnient-20-on-attachments/manifest.json", + "sha256": "2866446507f1e9ac445edc93437f526988c8f405b6b7104863033e89c1411def" + }, + { + "path": "attachments/omnient-21-off-attachments/28EB684E-6DAA-4259-B8FE-B21EF54445CB.csv", + "sha256": "3aa528b090c2d18837b67750ec7577a988d09a2649fa8933995ee5d9362780c5" + }, + { + "path": "attachments/omnient-21-off-attachments/BDD58BAE-2182-45DA-A7C9-38A50DF48336.json", + "sha256": "8cf3cff4d0e62e5fe7e890ee2f3b7c1df0264a6ce60ccc249c4ee487efae56fd" + }, + { + "path": "attachments/omnient-21-off-attachments/manifest.json", + "sha256": "05e2eb5695ec3623cbf00a7eda3ab1487a73be14048beb5d517fbb4477c98853" + }, + { + "path": "attachments/omnient-21-on-attachments/1D82C4AB-2433-41C9-AB5B-5595E844B110.csv", + "sha256": "fafabc30a569ee7ca8b7d4fb527cd285f94192c8090bb7b151344ecac07145b5" + }, + { + "path": "attachments/omnient-21-on-attachments/78304137-DA36-4EFD-8864-E4CC55FE061F.json", + "sha256": "6ae8dccf8270cbb2cfe86b7e428399fe0c97a4fab9c070f3fe0541c2f68a0902" + }, + { + "path": "attachments/omnient-21-on-attachments/manifest.json", + "sha256": "28ed1c23bbd14d4f6641fec10d9bb8d5329038c1fb1c1b5551785ae4f86fb37a" + }, + { + "path": "attachments/omnient-22-off-attachments/7D085580-5273-4B1E-A7DE-0344547A7E7C.json", + "sha256": "728734012ac3c18baffa27fc9ea7533ea2ca8ffa83ec0c9fc3277dbf7c5577c4" + }, + { + "path": "attachments/omnient-22-off-attachments/E43A6F94-B8DF-47E7-9032-018727FED6D8.csv", + "sha256": "bf5cd4446acd7493c021e9ef8ab8f038810aaf88d0e344ad6d08cbb65e139cd3" + }, + { + "path": "attachments/omnient-22-off-attachments/manifest.json", + "sha256": "304c57089259e1efc3fef332d365453e97ee62c2a675ae78956371de269d7034" + }, + { + "path": "attachments/omnient-22-on-attachments/05102F37-B812-4201-874E-6DA7C2C523D3.json", + "sha256": "5ab602392352fc15553bd5914045723e6fc645720e0cfbc5e70ae51321dc358c" + }, + { + "path": "attachments/omnient-22-on-attachments/41181262-11A3-4AF3-9810-C226F3336F57.csv", + "sha256": "f224c5cf5f9716d7422c1c6dff33d6458e1ae48ac520429dd1d55c13dcb23670" + }, + { + "path": "attachments/omnient-22-on-attachments/manifest.json", + "sha256": "daebefe3004130b7205a9f5457b971cad03872efb4e63210b97ea9328f4404e7" + }, + { + "path": "attachments/omnient-23-off-attachments/30EE212C-A954-49E1-8DA2-C1E56742536D.json", + "sha256": "001e35540421a6affae65abe507e84ad61f59042d1aeb414d85555cffaca9da4" + }, + { + "path": "attachments/omnient-23-off-attachments/83C70201-9BB6-49F6-BF06-D6011108B39A.csv", + "sha256": "ec53bb56e14c2b3b17c2b680b56436b291c92a66bce7c512e98bd49e207a7540" + }, + { + "path": "attachments/omnient-23-off-attachments/manifest.json", + "sha256": "e5230efa538ec0ed974ca2814a1f80df0f1d709610cb902c942408ca922c1fc2" + }, + { + "path": "attachments/omnient-23-on-attachments/154162FA-B0A6-4B75-98CA-3BA04B15B94C.json", + "sha256": "3b5f62cddd1fd529ae7f37835047d33c19557c8393d9aa42a29cbdc1a279ede3" + }, + { + "path": "attachments/omnient-23-on-attachments/24DB1505-A2FE-4C6A-BB6E-AFF0FDAE8C3D.csv", + "sha256": "4a81baf2e2dae199eebb37be9e5ae2d6c5f13ff54797f0f3b5b70f545fac7a74" + }, + { + "path": "attachments/omnient-23-on-attachments/manifest.json", + "sha256": "5998b56d9144e71d93bd0f732de6eeacc08c3e7085cdfad61f4bd931c04afb73" + }, + { + "path": "attachments/omnient-24-off-attachments/1ADF93B0-AEC8-4959-8E41-B9B63437A33A.json", + "sha256": "252d499a5fb0726bc6e65d5170ad44d9d72c4ca1704d2b0ba36afb4a50a9c9f2" + }, + { + "path": "attachments/omnient-24-off-attachments/9414B78D-5808-4E19-A8A4-1C1618EE4CF2.csv", + "sha256": "1918b8f9c6a07f963dd47e5e6a3179fad449f7559afaa7257f222b45318cf058" + }, + { + "path": "attachments/omnient-24-off-attachments/manifest.json", + "sha256": "61c5ad5f299d514b72445540c43f2b7005d9b3c5dd844e22226470dbe37ad6ca" + }, + { + "path": "attachments/omnient-24-on-attachments/8CDC5821-3C78-4EC4-A88C-A69B24CC8869.json", + "sha256": "3c104b1c96b8b5f3ae87ae9b570a453c77569324d785270b2c7277a3aacb50c7" + }, + { + "path": "attachments/omnient-24-on-attachments/96E90D48-D796-49B2-A972-BA4AC75B1B67.csv", + "sha256": "5480993a48d4d08b114a7d874c067b91cf6bbe996a3415b0468fae8d72771a62" + }, + { + "path": "attachments/omnient-24-on-attachments/manifest.json", + "sha256": "72c65528889cde7e63381a5d1c723d6ab33f25b9c4de2dcc0b2c9c6058f0a9ca" + }, + { + "path": "attachments/omnient-25-off-attachments/9C4A36F9-767C-4992-BECF-0B16913EC0A1.json", + "sha256": "5cefa5e23c3eafff03de2882553341b00476529c2467d709a33693b611d00685" + }, + { + "path": "attachments/omnient-25-off-attachments/9C905E1E-2AD8-4AFD-871C-7015FD584E47.csv", + "sha256": "8ff479311ed1e042c5532ae8996f5b12e0d97c5ad303dc99c431fe3caa82cfb7" + }, + { + "path": "attachments/omnient-25-off-attachments/manifest.json", + "sha256": "d01188ae19558d4dc98bdd1a87052d6b4bca73ad0faafa2042a38ea7733600ab" + }, + { + "path": "attachments/omnient-25-on-attachments/394FEC37-5B4B-416E-B82A-8BE69580C208.json", + "sha256": "3c38a571a9d5a9bd0430bb4a33298de688f11fd76f86313f02f85ed579421078" + }, + { + "path": "attachments/omnient-25-on-attachments/B192088E-DDE5-481B-8DDA-F63F81EF5848.csv", + "sha256": "9517f39ce28f8308f637355627c35d8888eb5c328be90ecb62efca90cdb5f019" + }, + { + "path": "attachments/omnient-25-on-attachments/manifest.json", + "sha256": "eacee2065f685cc1c0dce650b052f0f2db8d4a9d6735cc7393434a54f9f98f7f" + }, + { + "path": "attachments/omnient-26-off-attachments/49051135-B39C-44A8-9A46-BCE4C4AD6691.csv", + "sha256": "8e22a59107db19ec6b396895a3a713166f589d5fb0fa05f3d4a1f0d638760e3c" + }, + { + "path": "attachments/omnient-26-off-attachments/B25E15C0-F388-4239-B958-F01329674952.json", + "sha256": "a0653189544305a68886832ead62fd667a0e93922237d48a9ab60d55f0f05c59" + }, + { + "path": "attachments/omnient-26-off-attachments/manifest.json", + "sha256": "f3d79e3ccf7af339742857ec5c8c807e7e3b296593561a59de64acbf4d0d52f5" + }, + { + "path": "attachments/omnient-26-on-attachments/46F7A8E7-E22C-4384-9E7B-9F8FED27C2F1.json", + "sha256": "6c8948c7ec989c9b6d1b9a8bb48dc4360fb46594c15710080104c1f93bf7b6ae" + }, + { + "path": "attachments/omnient-26-on-attachments/D488CC57-8AAD-4AB9-9797-E8BB19DF2BF7.csv", + "sha256": "831333b84dfb45dd88b5013d8d102c42f2bd666add457059ad92aec6080ab21a" + }, + { + "path": "attachments/omnient-26-on-attachments/manifest.json", + "sha256": "b62373d0bfcd19b30fa8dbfa23330a5f8d2b0e3819d95e22ba60742e4703b326" + }, + { + "path": "attachments/omnient-27-off-attachments/7F589A17-4832-4E59-9324-99EC64D228A5.json", + "sha256": "2f4e10ad46e8d60aa97c5457a3093cd1a9ce14c97858d779ecb6d7f18af35dd9" + }, + { + "path": "attachments/omnient-27-off-attachments/CF9E4A88-C485-4920-A961-78775E598052.csv", + "sha256": "c3dfc0553853b4cd238a2f32bf5d5b50b0d64cc29152e4fa4c6e3265cabb335e" + }, + { + "path": "attachments/omnient-27-off-attachments/manifest.json", + "sha256": "69a4fee5a02ff770ff65c7650e9cf011df4972db82c3455ac59d6925f1ab9fa4" + }, + { + "path": "attachments/omnient-27-on-attachments/B941597F-A46D-4F54-8B12-35AC7ADEB390.csv", + "sha256": "c7789ad635fc026a2989304d093ab600e89fddfd45dcb2b31f74d5f6a81a45e7" + }, + { + "path": "attachments/omnient-27-on-attachments/E55C6A05-22DD-4A6C-B5B3-7424CF7CB3BD.json", + "sha256": "1fc8be7c401e6ecdbe135e8270bfbcea5e3b63133f3555262265fb35f309ce10" + }, + { + "path": "attachments/omnient-27-on-attachments/manifest.json", + "sha256": "bfa7469c20bf1f0aa574abc96859f0b002db4a22b0b7f359c1af35c0a0a2d96f" + }, + { + "path": "attachments/omnient-28-off-attachments/2BB4297E-4484-4AC1-B5FF-8443A114DE75.csv", + "sha256": "bfc333ce01da70c50dd90f278a05b3a0aaec038315ba0e9a499cf10dbae4c38c" + }, + { + "path": "attachments/omnient-28-off-attachments/303A29E6-0C91-4AC7-88E2-C180519D497E.json", + "sha256": "d31b2ac56600818840b3d40021ddb7546fd0d3a391c657e2e6abaaf063bfb007" + }, + { + "path": "attachments/omnient-28-off-attachments/manifest.json", + "sha256": "d3fc7f3df9a0ed1a334d5b6f0ba0866b2374a0d44a56351f1775661696cef451" + }, + { + "path": "attachments/omnient-28-on-attachments/218B5DE2-9398-44AC-8871-4B9B570A8DCC.json", + "sha256": "f8f664aff8440d0fce65a9d3309a8f5efef7fe2e2782df1ecac13dfe7bd5cf24" + }, + { + "path": "attachments/omnient-28-on-attachments/3F951475-72A9-4F3C-AF23-124DA4BFE380.csv", + "sha256": "c46e39f92128bc3397758e4f641ebfe0eda2cdfab3186e7fdcfafb496998285e" + }, + { + "path": "attachments/omnient-28-on-attachments/manifest.json", + "sha256": "7980d57b224f90e3702065d1d091ab08b407d9471c971aae5315522651530696" + }, + { + "path": "attachments/omnient-29-off-attachments/33D94FDF-4BD2-448C-B98C-7130A558DC2D.json", + "sha256": "d1a56b1330ee2e2861d57dbd0aeeed01657e6a718dd226e3a16352b78a2d6bec" + }, + { + "path": "attachments/omnient-29-off-attachments/490CFB43-385A-450F-963F-4DCF97B863D2.csv", + "sha256": "d965bdbe2d148c3b0aa5fbd5ef6aa73b566c2f584eef2fb5e2dbde5dc4139c1e" + }, + { + "path": "attachments/omnient-29-off-attachments/manifest.json", + "sha256": "7753a45be1c9e5c3dac0dfca73690a28a911b2d472ef3c5867ae180cc122e972" + }, + { + "path": "attachments/omnient-29-on-attachments/E588E5D4-F584-47DE-B903-8F1F9182FBCB.json", + "sha256": "02bc74a7e3657602c28a0c979891e5b05a089d880004bab8aa8587d66e34a5bf" + }, + { + "path": "attachments/omnient-29-on-attachments/FEA3FEF2-7070-4717-94FE-04CFD5BDCAFC.csv", + "sha256": "e23f9e861b68b0109ed2f042a5e78f1ff73b544babd2e1f9f37bd1179b3d8e7c" + }, + { + "path": "attachments/omnient-29-on-attachments/manifest.json", + "sha256": "516f4bc7d19c15f05b1752312be797f144792c7febf0228e2d9df002c25b24e1" + }, + { + "path": "attachments/omnient-3-off-attachments/68FD9ADE-F603-4DF7-8A99-C0D305B41ECB.json", + "sha256": "568745712a26b6bd4a6f34d1cadb2daecac9d253e54b6d280b4e2b4b586e3773" + }, + { + "path": "attachments/omnient-3-off-attachments/FA907F9A-41DD-4190-91D9-91B0597D0096.csv", + "sha256": "bdc76a97ce18472454258c7d76607aa567d194df586ee1d3ba298be943686fde" + }, + { + "path": "attachments/omnient-3-off-attachments/manifest.json", + "sha256": "22fe4437a83983354bd207a82db2493efd0ad0bfd620bd030508423f4f7ba041" + }, + { + "path": "attachments/omnient-3-on-attachments/48134C8A-A441-49DD-A3D9-90A9BFC9862D.json", + "sha256": "4abc2eb678f61599f1b5bb7ae4ca6f67df3db4dd62ef36bb205624672298b824" + }, + { + "path": "attachments/omnient-3-on-attachments/CC80F69C-0CA5-4462-BE06-C96BB243786D.csv", + "sha256": "5db857a199846a2ecde70f22b0064e5285a33e763c42b967d4905dd1dee12fa0" + }, + { + "path": "attachments/omnient-3-on-attachments/manifest.json", + "sha256": "486419b0ff49a59039267e2e61386da3492a8eca7f34716b999a92a6a200fdd9" + }, + { + "path": "attachments/omnient-30-off-attachments/1EB6E99A-482C-4A21-87E9-CBF7D1E49D87.json", + "sha256": "acb17f38b4aab75e862d094701dd79ef502e842d09ba8898eaf534c51fa68503" + }, + { + "path": "attachments/omnient-30-off-attachments/B14B85CB-B926-4738-B9BA-8E31711A2762.csv", + "sha256": "d63e00d9644efd007504ec51b9fcdfcfe377d249560c2d9b99fd95951f3d160a" + }, + { + "path": "attachments/omnient-30-off-attachments/manifest.json", + "sha256": "a6387bfa062760aa20538f3e5f924bf133dc21b53dfa6f2a4c78b0b58133cc37" + }, + { + "path": "attachments/omnient-30-on-attachments/01E9E446-19BB-4F07-A3D0-BE1E505BA945.json", + "sha256": "12eb691b3851cd7b14b8ae420421c703041e8d2fdbd370a96c3ffc77aa830b92" + }, + { + "path": "attachments/omnient-30-on-attachments/2453DDFF-A172-44A2-B6DC-C0CA98E9DB33.csv", + "sha256": "db00a6bba8f6ada5f7b30062aabc31d4b47e98bf2faad764304f1465eeecd53f" + }, + { + "path": "attachments/omnient-30-on-attachments/manifest.json", + "sha256": "4b65029a0cfebb7691cbb88574c4193f8c6efbbfb443a62429ec654ec383cc53" + }, + { + "path": "attachments/omnient-31-off-attachments/2A8A18A5-DAF4-4AFB-B77E-FD0A991CDC91.json", + "sha256": "ecae3b717974b447e8a8e6d5da0c5fb27909e108be169120bda56c4361b874cd" + }, + { + "path": "attachments/omnient-31-off-attachments/E4C24AFD-E40F-40C5-99AA-E3D02FED824B.csv", + "sha256": "390424174e936ba325af501c94fd937648197249c742a6cce8a9baedad77bef2" + }, + { + "path": "attachments/omnient-31-off-attachments/manifest.json", + "sha256": "da3529852b0dde769544cfd040ee99e8266cb4d06d1a2c13b702bb7d91acdc1e" + }, + { + "path": "attachments/omnient-31-on-attachments/61153B03-D1B6-401A-8F96-EC260CE681E3.json", + "sha256": "c9d278b0c3563fa1a751b428ebef6890509614015732aab6771611cd1fd9738f" + }, + { + "path": "attachments/omnient-31-on-attachments/F94D98DD-5A7E-404A-A4C2-BF8DC593D789.csv", + "sha256": "d84248a35cd292f40d8d5ab38d3d972d3726fb2bab49c8b2cf35200d0b9fd506" + }, + { + "path": "attachments/omnient-31-on-attachments/manifest.json", + "sha256": "7425566cfee648dcf5fa4d8da3d29b7b2ef0012e2ae0210a4a304d55bd03bfe8" + }, + { + "path": "attachments/omnient-32-off-attachments/0271B4A7-ABB4-400A-AB1B-F34DB1185707.json", + "sha256": "869e869d7952b4e35da4d243b90532a2591b3567665df63ceb484d22702d50cb" + }, + { + "path": "attachments/omnient-32-off-attachments/94805741-48C8-49B7-86CB-97589B419EB0.csv", + "sha256": "96c07285f86a9ce39cfc76a96fac95637db8d491062958a9b39c228ff0d6649b" + }, + { + "path": "attachments/omnient-32-off-attachments/manifest.json", + "sha256": "4f9608fe6c7a6c822e053005a630ec3b525e34a778d777b1654f273886f5bf59" + }, + { + "path": "attachments/omnient-32-on-attachments/47A6159C-B919-4D8A-A0CA-B50289A2A813.json", + "sha256": "7444f9571624b31d74790cd8ec451785d87cc0d48b525e9ecc1c7c935c0931fa" + }, + { + "path": "attachments/omnient-32-on-attachments/B2F231D4-C69D-4857-912C-716684436571.csv", + "sha256": "fcabfd39b419ba38301c287643da7e6a0dbed04ac29348ab502a3774e161a65c" + }, + { + "path": "attachments/omnient-32-on-attachments/manifest.json", + "sha256": "1dd3694343a370a53c12b80e9228bff45ff3f06e1672446eaaf35480b0a9edad" + }, + { + "path": "attachments/omnient-33-off-attachments/55C6A48B-2DDB-4327-8BF2-91D83C516765.csv", + "sha256": "e0b0f1377b14ef1f1e76cbdc1fec737ef31bf0918196f69ded02d7fc0bb88b58" + }, + { + "path": "attachments/omnient-33-off-attachments/65C5F034-D152-4096-8460-AF60F10A9D12.json", + "sha256": "604e03905d9b2fadff56b25e27a3b84e13d83287ffbe480f2c3a69123c83d5ad" + }, + { + "path": "attachments/omnient-33-off-attachments/manifest.json", + "sha256": "3f20d651b350120ace78473bae846ba357b4008de301418726918c609f439b4a" + }, + { + "path": "attachments/omnient-33-on-attachments/5426A8EC-415D-4E78-9D22-0A18415EF891.json", + "sha256": "aee6ff1cd44abda9d50e00080988dccebc55a724a7a3e3baa2878315adee282e" + }, + { + "path": "attachments/omnient-33-on-attachments/AC05D25E-8952-45CC-8843-4036B712CC12.csv", + "sha256": "21aef39bb26ce5dcc4ad20e8c3656a30a57a6e2be6b33fca343fd83d31ed93bb" + }, + { + "path": "attachments/omnient-33-on-attachments/manifest.json", + "sha256": "6fd006cc3cdf5413ad2adc8aa34a9fa1c66a144bea5441109e4a470071806f86" + }, + { + "path": "attachments/omnient-34-off-attachments/BD6F0520-A10D-4C93-8AB0-FA0481A91C92.json", + "sha256": "fa6198917cec69283ffc5226c4832d345f4a56e8f3bcb1c9205e2c895b1d6945" + }, + { + "path": "attachments/omnient-34-off-attachments/FE086387-DF2F-4090-89E8-636CA12C73C1.csv", + "sha256": "204801da7ec1bb2bc973a2e5f5607ae1c1cb085a0d407a6e67bd5cf3a82c4b75" + }, + { + "path": "attachments/omnient-34-off-attachments/manifest.json", + "sha256": "48073b0d2cbfcc2b77b2f9632b2c95e54493270c44ca53ee5935cec6c1497798" + }, + { + "path": "attachments/omnient-34-on-attachments/045C6115-6874-483C-B2CD-6FD935F225CF.json", + "sha256": "daee0ff85f0783184309dfe8b0001ff17b4389c8cb05d2704ab9dc53d798d089" + }, + { + "path": "attachments/omnient-34-on-attachments/86B0CBF5-FE89-4F25-B635-107BD79FAE0A.csv", + "sha256": "0961dd9c50e0f4a6f767799d8707f2641d3a63287d0d9d6292af525b78cc1d4e" + }, + { + "path": "attachments/omnient-34-on-attachments/manifest.json", + "sha256": "03ad868d9db6552605e3e3d58d3e863359160464d579a44b300ca49fcd666cee" + }, + { + "path": "attachments/omnient-35-off-attachments/6A42C480-092A-4102-ACE1-16A35CF82C65.json", + "sha256": "1b70ea3e18fe046ebc1ebd462f0910ff890ebe35b83fcae2fce4d70efdc41b7d" + }, + { + "path": "attachments/omnient-35-off-attachments/F28DDB0A-4441-4234-9DE5-6A59696F4768.csv", + "sha256": "b73d9ef7bf8b94a84bd1b4f14806274ac149c64ace98b348d79233a1f5bfe7dc" + }, + { + "path": "attachments/omnient-35-off-attachments/manifest.json", + "sha256": "6bb9918d17c895028091d3bdab42096bd2d5525d4395454d20f9c8bd8e5baa68" + }, + { + "path": "attachments/omnient-35-on-attachments/B303A44F-9FFB-44B5-BFA5-B5F0127E7EE9.json", + "sha256": "efffc4614de1e6861083335c4a825b5f5006726e0ea6fdfb0b50aa10a69c7835" + }, + { + "path": "attachments/omnient-35-on-attachments/B70D9125-6051-46F1-A09E-A96C7E73C364.csv", + "sha256": "9ee4844fc715f2f2459ba5c545ad20fdcb8d77244b0fe9c8a11f1b2f06d82e1b" + }, + { + "path": "attachments/omnient-35-on-attachments/manifest.json", + "sha256": "3641936b0de630c8ada4d8d4acba2369fcf7d717dac9a461c18ed2e0493d0c18" + }, + { + "path": "attachments/omnient-36-off-attachments/2A924FE8-A5BE-4968-8F2E-57B3A20A87EC.json", + "sha256": "b721e8ab73534c3dfa8f774f14b8b2ec741be98fe34e49da8a36ac8fe699fa0a" + }, + { + "path": "attachments/omnient-36-off-attachments/F8DD658E-8BC9-4D1A-92F9-5006BEFBDF5F.csv", + "sha256": "b11c9dc828877dbfc5fe12dbfcca295e23fd1c97f06c89b08b0e20a66c2e857d" + }, + { + "path": "attachments/omnient-36-off-attachments/manifest.json", + "sha256": "5ee5ed6d1931730cf2014e7d1ee4daa4e5d72f8747d2475548002689db816c31" + }, + { + "path": "attachments/omnient-36-on-attachments/2082ADE1-D4D2-4F4D-BDAE-DE1FF2564548.json", + "sha256": "a5039f13002313f66d0aaa09d28f8a2d5eb5be109b4b576b5a686597b97a5c46" + }, + { + "path": "attachments/omnient-36-on-attachments/3BBA24AE-BBF3-4648-A40E-77939E6172E1.csv", + "sha256": "78b2d9470aa38201e3298b3be83942f1a1f03928293249d250e50d2d91badea0" + }, + { + "path": "attachments/omnient-36-on-attachments/manifest.json", + "sha256": "c910be6ac27777092a35c3e23e171781493bc7610045d70356b3913bcdab4944" + }, + { + "path": "attachments/omnient-37-off-attachments/1969C835-4742-49A7-A724-5A783C35D6F8.csv", + "sha256": "cd129fee43d8550c242a7c556427e32bc9dab4c610ad6c31b6e7ebd308d0e99d" + }, + { + "path": "attachments/omnient-37-off-attachments/5325A4A5-EFBC-4734-BFD6-0C4EE75EF493.json", + "sha256": "6ff7e0afcd2ec085815a6e1b62002a75ad34ce7a1b8402b53659175325e90dbf" + }, + { + "path": "attachments/omnient-37-off-attachments/manifest.json", + "sha256": "ca30d93fd7814c2572b1175d1a5fdc8908bbf3693193144232464d63419d4fa2" + }, + { + "path": "attachments/omnient-37-on-attachments/0379251A-C183-41F3-9333-156E0E06D7CE.csv", + "sha256": "68d125bb1ad35d8c2748d0e49cc2c49c6592a4408dc4fedcbef317c6a805d4bd" + }, + { + "path": "attachments/omnient-37-on-attachments/C4986599-287E-4843-879E-74E464434FFF.json", + "sha256": "257c91366c19170a968c4b6dc364dcf5d7a1f379eecd449c1f2a3f6741885853" + }, + { + "path": "attachments/omnient-37-on-attachments/manifest.json", + "sha256": "9ad47a1c33b83713165854d0f99fb95bc89d3b012bdfe4b3b7c1e871b580d91b" + }, + { + "path": "attachments/omnient-38-off-attachments/B1BB59C7-C359-49B5-8C70-F95715C833E2.csv", + "sha256": "1745d0202897e76c08203977c591162acded4f0407e4559b7a9843dbe0b48460" + }, + { + "path": "attachments/omnient-38-off-attachments/F9D44975-D6FC-4497-B842-D4C00153C27F.json", + "sha256": "b98aefa3fd7b57edc1e1a816f89ce0603f530b014baaede3a9b08a92dff54c03" + }, + { + "path": "attachments/omnient-38-off-attachments/manifest.json", + "sha256": "d0c254a7ad18fb0f1f2aeceb95eafc6e2beef31af5564ca2f781947c509a3c1f" + }, + { + "path": "attachments/omnient-38-on-attachments/1EE57D9B-6660-43C3-9378-D601C3E5E697.csv", + "sha256": "5fb6d912e4266c74c9378d56a0ad2fbd8933a6cd9537eccf3f474e46a382bd8e" + }, + { + "path": "attachments/omnient-38-on-attachments/9CBF5D90-BEBB-451E-B6DC-DC5E9A5E3EDF.json", + "sha256": "532c192c8d4a1cbe5af63171cde7ddedce04d369e18caa133b0c110d09e3beb1" + }, + { + "path": "attachments/omnient-38-on-attachments/manifest.json", + "sha256": "a8daf6e594dc1b757852e9e8254618c6cb3fc7e5f6cd4fe25a178d270f2f3a50" + }, + { + "path": "attachments/omnient-39-off-attachments/A9F7007A-2142-4726-A01C-E86976394810.json", + "sha256": "180bc2b55c48e2ca8c7bc81fc9612304096592541ff2a9a5bf5bf0c42fc542b3" + }, + { + "path": "attachments/omnient-39-off-attachments/EF137444-27E5-4AE4-BE02-FAF3CCA29B07.csv", + "sha256": "9249e83008f94f173853be12387d3be3d21c97fc4643a9db36ad4a7f39aaf5a2" + }, + { + "path": "attachments/omnient-39-off-attachments/manifest.json", + "sha256": "5332f50a2598b5b0d732bc2cdfbf9b3b6b7f6df5b296cc4ec6584df4ae3567fb" + }, + { + "path": "attachments/omnient-39-on-attachments/05C5443F-F8C2-43C5-A2F3-8F84554F0098.csv", + "sha256": "40aebf149b7cdbbedcaabaf5f50ae99242362510a459fd624aa0331c05f3231a" + }, + { + "path": "attachments/omnient-39-on-attachments/CF5346A7-D006-4D29-8099-DBB84FEC06CB.json", + "sha256": "4ce63ec183654b0b705a14378d0391d836b070f2b9a335cd25e926b510373abf" + }, + { + "path": "attachments/omnient-39-on-attachments/manifest.json", + "sha256": "aef31c4d89950b4d82a96caf697abc674585602253431ab24ac9fe18e7f58961" + }, + { + "path": "attachments/omnient-4-off-attachments/26C050BC-90AE-47B0-BD96-C02ACC610462.csv", + "sha256": "c56c039e9397ede2b713e90ff1ccc1bb4ad69b6300f5bbf226b3ac08b4174976" + }, + { + "path": "attachments/omnient-4-off-attachments/4E4105F2-02E2-4BDC-84BA-DF329260FCB9.json", + "sha256": "b0a4c5003a09d9fba4287714dbd39bdd0aa7ae7f6004e3c3e3273ebeecf279ab" + }, + { + "path": "attachments/omnient-4-off-attachments/manifest.json", + "sha256": "1c44bbe151c42d743b993c52e1d6f7d73aec0c177c2ae0bf6ef2b2671552a17f" + }, + { + "path": "attachments/omnient-4-on-attachments/0BEF5DC9-7906-49EF-A4E4-6FC3FFFAAF65.csv", + "sha256": "c101ab328dbf4bb8b87540c7895bc7977661e0a5fca3473b779b8007646a1f93" + }, + { + "path": "attachments/omnient-4-on-attachments/4D3378F0-84F4-4E58-BCFB-76FEE87D0B07.json", + "sha256": "863573c10b519c65f59a4a55c7e9b29cbe00497a19db20fe302d29bdd9b34c8f" + }, + { + "path": "attachments/omnient-4-on-attachments/manifest.json", + "sha256": "d63eae1df45db411a241ac2be819f2dd92ae0c13e476d9225ea7cd7e4127d270" + }, + { + "path": "attachments/omnient-40-off-attachments/098AB007-F52F-4CBE-83D1-58DB3FA1AEA1.csv", + "sha256": "8b2ff278b75ecd46deef3701c1ac0e793b74c065a3cd7efb439997a455bf0602" + }, + { + "path": "attachments/omnient-40-off-attachments/9D5CABC2-9EC6-4D5B-AE42-1C0DEBAEF75D.json", + "sha256": "ae74ff17a9c7d498db38724fb6b60dc8dba046d3faaed8c01cf98b697e7a0d61" + }, + { + "path": "attachments/omnient-40-off-attachments/manifest.json", + "sha256": "b1040f0177d95fb07afb16947c3bcc501fec20c41c4bc5409549df7c35b40dd6" + }, + { + "path": "attachments/omnient-40-on-attachments/39F5B7A3-6966-4E99-84EE-5CB362E81964.json", + "sha256": "9ea53eab9da66d9ec5d6fb743b82880e24fa847768a757a3a0b779bc0b794ef9" + }, + { + "path": "attachments/omnient-40-on-attachments/BB131A44-BB9B-478F-8FBD-18160D81E5E2.csv", + "sha256": "030ad0d0bdf7308b0f48fa3d981442b8efa32d3a49c2c9a72cbc1d700553d8e7" + }, + { + "path": "attachments/omnient-40-on-attachments/manifest.json", + "sha256": "c0db445c655830796e13925861361c8e63b1a739e425678ffa12cd548678d294" + }, + { + "path": "attachments/omnient-41-off-attachments/39B5DB14-B04F-48AF-816F-5549022123D9.csv", + "sha256": "cb1bb3e5a3da289217cec4626a56f3f3fe67c26cd3a68ad890f727d22c9f5fb7" + }, + { + "path": "attachments/omnient-41-off-attachments/68AEC900-19F6-4843-9AC6-239FC82E223E.json", + "sha256": "d2da9f59fc411eacc2dcfc0297ca9d8d8a44a90aaa88d974baf3fb61d33455a8" + }, + { + "path": "attachments/omnient-41-off-attachments/manifest.json", + "sha256": "eac4a6c3eceb308fd1e04e3bf045624dbda0bceb4ae7965d8656297212452468" + }, + { + "path": "attachments/omnient-41-on-attachments/A192AFBE-119B-4BD5-9750-7E89E535FF40.csv", + "sha256": "d74c84aa58713be333b57f30b6c505c1ad51a2f3e5b7d4860c1a5dd436533140" + }, + { + "path": "attachments/omnient-41-on-attachments/C84981F8-7C14-416D-9B7C-A58805FE2682.json", + "sha256": "911ea49efdbb8bf61db89e0bfcd951365a24414e5ae4e185e2eb47e81f46ae48" + }, + { + "path": "attachments/omnient-41-on-attachments/manifest.json", + "sha256": "a0b8b05beb987ce37bf04cce174e8480ac1f8168d34eb180a6cf08e6e62f44d2" + }, + { + "path": "attachments/omnient-42-off-attachments/81F34ED0-8917-46AC-B389-1FCC01C297AF.csv", + "sha256": "87cbb1bcc7b3146e5dffa6f7405664d51eacb8146d42eeb50fed230240bd74c2" + }, + { + "path": "attachments/omnient-42-off-attachments/938C22FD-8814-42E5-9E46-A301CF44C467.json", + "sha256": "aa1dce3090edf46f9836981a2263b6b764e4c970bf89f7a3f6d4df73a779d498" + }, + { + "path": "attachments/omnient-42-off-attachments/manifest.json", + "sha256": "d50dfed12999674cfa47436ab6a1745fe77809d7e7706100aca25e9a024d5fdf" + }, + { + "path": "attachments/omnient-42-on-attachments/5EFCD299-BB74-4092-B86E-BB89818B2158.csv", + "sha256": "ad99d0a129e2cc6f3facd7594317e15a8cebd7c63da416ab67e72e061c1f8175" + }, + { + "path": "attachments/omnient-42-on-attachments/FEF593D6-7BD3-44BE-95BD-58D7613949CA.json", + "sha256": "8f96b7952fbababae6749b6364fd002dfdfe048f3e5990d5905a8c46e32627d3" + }, + { + "path": "attachments/omnient-42-on-attachments/manifest.json", + "sha256": "c6bebc86fda5e8accf0769a116f997e879af893d5f86052ebf719bfff65c98f9" + }, + { + "path": "attachments/omnient-43-off-attachments/237040EE-7F80-440E-ADC5-FF35E31AD8D5.json", + "sha256": "b5f7e9acd38219735b0fa12355f4cf5a92f34d39c0c04ebbc5397a6d3aff9032" + }, + { + "path": "attachments/omnient-43-off-attachments/D8D22E6E-BB69-431D-8A70-92B6B1EE0935.csv", + "sha256": "f064ef8f239321c4642178638655c8faf2f60acfb0f91991a4942e94dfa0db62" + }, + { + "path": "attachments/omnient-43-off-attachments/manifest.json", + "sha256": "f9f946c92bdb91851b0a80c96dbb1b01965c717c7a4e4205e53a90e4968e0f62" + }, + { + "path": "attachments/omnient-43-on-attachments/1E6017FE-24EC-4079-9DE4-A9600490FA0C.csv", + "sha256": "ce755dd689530f3c170b8ba399c3fb0b6d75496aa245026ba039b1f2e51018f4" + }, + { + "path": "attachments/omnient-43-on-attachments/68C20B3C-DDE6-4E2D-87E6-D1C82BC14E8F.json", + "sha256": "eef09d2754abb9cb17e41f05dbf1763a8e58a6f2f6c7ddfc0aaf2a0b3cbffa36" + }, + { + "path": "attachments/omnient-43-on-attachments/manifest.json", + "sha256": "b3d3ecad45e5745dedcfa2253301014a12582a431f32741ec69a971d28fa32fa" + }, + { + "path": "attachments/omnient-44-off-attachments/152036F0-77DD-4590-BB8E-A1B3B5A4C6B5.json", + "sha256": "67bc8fca04ff3d7d6214735aa55920e93b60302ffaa79633ad8f4ec6d1127858" + }, + { + "path": "attachments/omnient-44-off-attachments/763BECEC-AC1B-42A6-94E1-2BB024CEA729.csv", + "sha256": "740abae48bce6052770772cda2f35e817a0e6db60b68dd45fb2f87d90b5adcde" + }, + { + "path": "attachments/omnient-44-off-attachments/manifest.json", + "sha256": "ab680201d0ee055a17ff3d07bea41495587e404bd9718707e2656dc9230545b1" + }, + { + "path": "attachments/omnient-44-on-attachments/1ECBA35B-E8A3-4D5E-B96A-FC3631481C1C.csv", + "sha256": "e02c129f42cf1bbaa0bf5463ef77671a44c7b65d9c0a174e0fcdbde04a0bf76c" + }, + { + "path": "attachments/omnient-44-on-attachments/DA09BF97-FF1D-4597-995E-D1D54B24D618.json", + "sha256": "8dd4f8b146cff00008c6aab29519191dc0a776cb2e27f2ca551431e95eaf42f5" + }, + { + "path": "attachments/omnient-44-on-attachments/manifest.json", + "sha256": "d97d4bf93d4e6fedb4da14f4af0227f51dfc70785aeaeb4b0229b4e968f26fe9" + }, + { + "path": "attachments/omnient-45-off-attachments/A700139C-5CB3-4923-B551-222A81ADD66B.csv", + "sha256": "d014a08f1de8ead6b6162e49200bba1c5586caa25f3f0023ddcb9f754fbb1ebd" + }, + { + "path": "attachments/omnient-45-off-attachments/F1C0E3DF-689F-4498-9AAF-F3BA4C12DB1C.json", + "sha256": "74e9349741a91ce9f2573b37f06b557e7fa47f2c90efef7a1d2647908b721576" + }, + { + "path": "attachments/omnient-45-off-attachments/manifest.json", + "sha256": "fad7a930909ec3d18f8c7a8d35dd4389d62b29f2af0c6ebec3947d347952d2ec" + }, + { + "path": "attachments/omnient-45-on-attachments/2351D8B1-AB60-4DC3-A559-C6A2E7EA77B6.csv", + "sha256": "5a2976c73b93d9fa227205b0ac562c61a5a6c581d4c9ab5b9577d1b750a201d0" + }, + { + "path": "attachments/omnient-45-on-attachments/56EDBCBB-FE9D-4276-8113-E696F28B20EB.json", + "sha256": "f066484ce902581a0a8a6e879a6350b8913081650dbb1b712c76059821ef55f1" + }, + { + "path": "attachments/omnient-45-on-attachments/manifest.json", + "sha256": "f8bcfdc6f674687fc68d1773a910bf11a9d7774310201ce77a09e26c065ab4cc" + }, + { + "path": "attachments/omnient-46-off-attachments/0091470A-6453-4AB7-BD9C-31B746F3EBA8.csv", + "sha256": "0f20c4f7198926aea3a4a42874ffbda775749c67854cbb9acbf38ef653cdd626" + }, + { + "path": "attachments/omnient-46-off-attachments/16EC1E3D-9BDE-4404-99DA-E84EF3C721CF.json", + "sha256": "5cf9d3c3f976c6790f0d73059e13ab88f4d2a9f9904f84b02858bbf84c9cbe4a" + }, + { + "path": "attachments/omnient-46-off-attachments/manifest.json", + "sha256": "977f75900ffc9dd53baf8850c436f7d32b9f9bec75b821fcfc7c86c4b8652e3d" + }, + { + "path": "attachments/omnient-46-on-attachments/29C4C49E-B2F5-41BE-ADAD-DB176F69C648.csv", + "sha256": "deaf081a3820952ecc06b472cd280f5a4d832e079dd1920b2c01bf5094b2f950" + }, + { + "path": "attachments/omnient-46-on-attachments/89475DDF-DF56-490F-959E-ADC7D9D477C8.json", + "sha256": "c0275ba470d7f8b5c01a27d92eee592541c8aa83417a54549ce46dc3089ece49" + }, + { + "path": "attachments/omnient-46-on-attachments/manifest.json", + "sha256": "0938bebfc97d8a2f45d2862084ef396bb13ad44f0d75753d9df56496a13a4e96" + }, + { + "path": "attachments/omnient-47-off-attachments/4B6E9B57-9AEE-47DC-8AEE-023501AF22D9.json", + "sha256": "bf469c96bc1a4815a33b22497d3fd5a2975cf9a99790686dfb0a95745fb304f8" + }, + { + "path": "attachments/omnient-47-off-attachments/E31A25A4-A3F5-468F-825D-D6352ACB7725.csv", + "sha256": "e1081933054d79a6b862af194dab970f85f41fc33594e7196efae72379870dd4" + }, + { + "path": "attachments/omnient-47-off-attachments/manifest.json", + "sha256": "403e1a2d00bafc57d3e74fbc20a4855ae040627231c8d826b552da7dcbe947ae" + }, + { + "path": "attachments/omnient-47-on-attachments/2B72473B-3A45-45AA-B139-A7715EDE84E0.json", + "sha256": "5cadd5b3da4976870f864c56926b94c828a344deb0f28ea6cbdd8d81761007ac" + }, + { + "path": "attachments/omnient-47-on-attachments/E5811806-602C-4021-8073-F43FB3B55FC1.csv", + "sha256": "2939c14137fe8e6fa945c259d0e8a43f7e4c432a44c0b751aa0ab99afe3e1a88" + }, + { + "path": "attachments/omnient-47-on-attachments/manifest.json", + "sha256": "d7f8a3e98852be2636057b512aba82852a5ebacbf247d243ece3c18035bbd7f7" + }, + { + "path": "attachments/omnient-48-off-attachments/3C2E3579-82ED-4C7E-915A-F340942775DB.json", + "sha256": "bf9f330ce891003befe1e94e3510274462c5c7960f76eaa7cdc38a8589f665a3" + }, + { + "path": "attachments/omnient-48-off-attachments/D92CD015-F055-4FA0-BE1B-A09B93C7E8F7.csv", + "sha256": "dab779609c889a52e896f3d296ed3792cc2161ce0aa5c2eb125e6e38d8569df8" + }, + { + "path": "attachments/omnient-48-off-attachments/manifest.json", + "sha256": "65a100441b58c8a85e6255b84ad99b3a5068b229126cd772caab066a473a752d" + }, + { + "path": "attachments/omnient-48-on-attachments/3F961B14-6C6A-439C-8C51-86544B9F2751.csv", + "sha256": "a1348f383a72d996f2216bcf12c0a4bf409657fd55be390e7d9e0fd7f56fdcb5" + }, + { + "path": "attachments/omnient-48-on-attachments/4D49007A-2228-4C9E-AEF1-B9FF3DF8EDA0.json", + "sha256": "808b2ff23d06155e1f64a8ae448de5585432ce9d6b5c01be6c9ac969a8021d26" + }, + { + "path": "attachments/omnient-48-on-attachments/manifest.json", + "sha256": "8f8379a4391beccd5af054ff490314672562cdcf2f695c0231ba314095ec744b" + }, + { + "path": "attachments/omnient-49-off-attachments/AD47A388-6C97-447F-8931-22B0711360D2.json", + "sha256": "b13009722b564591e220fc085e9b0442a9064a59300be73f5e67b98b7e412d9c" + }, + { + "path": "attachments/omnient-49-off-attachments/C18055F0-ECAF-4959-8649-8CEFDB784BFB.csv", + "sha256": "0885dd1d1ba9bced71ac04a0a31e932b2992ce602c2048d90328691793eee8f3" + }, + { + "path": "attachments/omnient-49-off-attachments/manifest.json", + "sha256": "67cd5c001097fdc9a65a0c9c74aed74a565643c187bf20634a05dd137fc0817d" + }, + { + "path": "attachments/omnient-49-on-attachments/8A229E29-A51B-4D42-9EE5-DF8227B6C37A.json", + "sha256": "e512bbc899a5ad029b43573861bef3c69bdd8ed7c9385695854829328e1320fb" + }, + { + "path": "attachments/omnient-49-on-attachments/A7E45A97-CBD5-43EF-AB43-19D2587E6E8B.csv", + "sha256": "f8054de2f917f2294ef0d2e4a28c758eabc2193f71cea68ef2291b4376d1ea6a" + }, + { + "path": "attachments/omnient-49-on-attachments/manifest.json", + "sha256": "bd244f476957823f0f19fd91b29f47aa0ba18f87f745db61511e41cd2d581ae3" + }, + { + "path": "attachments/omnient-5-off-attachments/5FE0C5D0-B971-4BF1-B63D-B402EFDE5EE8.csv", + "sha256": "9236ba102ac1aa63387b0cf346b647b223ea532012c10d64b75294a4c2e8eeb3" + }, + { + "path": "attachments/omnient-5-off-attachments/933D0AD7-BE83-4730-9079-D1D96D37B075.json", + "sha256": "a114e0747fd548b8fb69cdcb900e88cc9937ad36a06e011f7ecd8914b3fcf7a9" + }, + { + "path": "attachments/omnient-5-off-attachments/manifest.json", + "sha256": "44417983af0793338806e51ed0ea6e92ce7475c728b7dfc77b5233d6999678f3" + }, + { + "path": "attachments/omnient-5-on-attachments/1025DCBF-4615-48B7-80AC-E476418E87CA.csv", + "sha256": "c96471890791620fafe9b6e713bfb2ea5f536437f44006486afd7f30f4babacf" + }, + { + "path": "attachments/omnient-5-on-attachments/EBB27257-071C-4EEC-8F91-EEC5FB706922.json", + "sha256": "14a371709a63b345c624f815b62ccd34de5353e44fbd00dfceb5dd9cb8dfffb5" + }, + { + "path": "attachments/omnient-5-on-attachments/manifest.json", + "sha256": "ae5c80d1728e7ceeb799b566da3482e54fd1a57fb999e594e6e25a6f647d4d99" + }, + { + "path": "attachments/omnient-50-off-attachments/1CB5643C-A00D-4415-9D43-73E432C69491.csv", + "sha256": "3ae76a36c0d058b8132c2f3b3db32e37e5fdd9d2fb9d35a174fafb1f627cb43d" + }, + { + "path": "attachments/omnient-50-off-attachments/415DE086-55E6-4F30-AFF4-941EBC0A07D9.json", + "sha256": "e91b5b6bd8021efa9b35c3f747e4c45a00ae76f256976cf86ac430d73fa46778" + }, + { + "path": "attachments/omnient-50-off-attachments/manifest.json", + "sha256": "ecc39040064f748c94a477bc446d9a17747a379fc9524d03afe30975e6fa9d07" + }, + { + "path": "attachments/omnient-50-on-attachments/2B3779D5-9172-4482-BD5B-38391D3834D1.json", + "sha256": "e5c02a13218e1abb8ecbe7cb6c49feda0779a0f25167dfa7e92633a7283eb106" + }, + { + "path": "attachments/omnient-50-on-attachments/D37DA46D-1729-4714-8F9D-FA379583663D.csv", + "sha256": "de193ce51f27308774be8c72b9082a2162e57d7d4e6c14c86e70ff113de6695b" + }, + { + "path": "attachments/omnient-50-on-attachments/manifest.json", + "sha256": "ef60bc8b9fb5787c2b1e275992d03139885649f534bb5ff36fec47fe733793d8" + }, + { + "path": "attachments/omnient-6-off-attachments/489FBF04-755B-4E33-BB02-6E211565BC38.json", + "sha256": "cdb136c265df40124b617425efe9dadacde111ec59aba529170e7ef02d97857f" + }, + { + "path": "attachments/omnient-6-off-attachments/8D50F78B-27D8-441B-94F6-8C6934098EA8.csv", + "sha256": "03eef9c4a3b39217eb08122856ce3d764cf7ac165a82b604f06f01a05271ec16" + }, + { + "path": "attachments/omnient-6-off-attachments/manifest.json", + "sha256": "be332f5a5cfa6483efb100458f5ba0eca2c49c8430eaa8797b77564f50fb86f3" + }, + { + "path": "attachments/omnient-6-on-attachments/6D7E1B35-E5AF-43DE-9128-CE18E82AD7B1.json", + "sha256": "495fedab402721a49cb234a9cd454c4d78ecbba29877fc95ed6d89e52c929df6" + }, + { + "path": "attachments/omnient-6-on-attachments/E6C3729F-A057-452A-A9FB-40FAA77FD740.csv", + "sha256": "c1671b761508b0254e8a3abfcb5c40137aaa0caad3f0df8f2e854dc4c8cd998c" + }, + { + "path": "attachments/omnient-6-on-attachments/manifest.json", + "sha256": "382d46768a74c6e4bed96d1a31611b06daa813213e9ceef48b27ef614f08c27c" + }, + { + "path": "attachments/omnient-7-off-attachments/D3035EDE-A3A8-48D9-A2F6-DE57F792380C.csv", + "sha256": "97d40eb3249d560b34c89c9251f7fbaf28390e41a75be341bab5ba09b4be9d72" + }, + { + "path": "attachments/omnient-7-off-attachments/D9CB3A6B-756D-4741-A502-AE311F132DC2.json", + "sha256": "921ac7260db75a5bdfacf1552f4b8d5bd2973c96fc19c896f3e0640c3ab25a95" + }, + { + "path": "attachments/omnient-7-off-attachments/manifest.json", + "sha256": "bbde326a4d8c6547d13870f481cc98fd84fbf12da2fff267e59cc6e4a59def77" + }, + { + "path": "attachments/omnient-7-on-attachments/E10CA6F1-4910-4800-9C1D-792374BDFD34.json", + "sha256": "72a3d3242eb509bf01f8e895fc002e5ff18aaa8c16bd135820e28b1bf062f806" + }, + { + "path": "attachments/omnient-7-on-attachments/E13896B5-724E-4BD4-B47D-F6EE4EC6E691.csv", + "sha256": "638b97f9d5f958a82dac83567f7e307fb01dee45b055bd2124d19364b647ec7e" + }, + { + "path": "attachments/omnient-7-on-attachments/manifest.json", + "sha256": "b444f3ff41f3fc1730802f17e7de47e83114815beec4c82f772dd7b8b6aef3cf" + }, + { + "path": "attachments/omnient-8-off-attachments/9994A64C-BFAF-4BFD-8C4F-07D6C2EAEBF9.csv", + "sha256": "f4ee0693f135643f5afaa9caf5650364aba7bb960745985736430299d76a48e6" + }, + { + "path": "attachments/omnient-8-off-attachments/B363FC1F-C7F0-43C8-89F7-313091C7313A.json", + "sha256": "3fcd438cd62dde4889addaa9347ddf09f5728016f7313fbbaaa898011ec2ae6b" + }, + { + "path": "attachments/omnient-8-off-attachments/manifest.json", + "sha256": "55be14959d9e8fabc106e4fa2a1790a7f2ba5faf1ab7ae9f2034936d4eb23a48" + }, + { + "path": "attachments/omnient-8-on-attachments/101DBAE6-71B8-478E-8312-A721A6D524E0.json", + "sha256": "3fd9ae60fdd76664a4a477c5a0be167a244e69006bf35648145540d3e1a77135" + }, + { + "path": "attachments/omnient-8-on-attachments/DFC897DF-0706-4A15-BABF-E5C5BBFA9939.csv", + "sha256": "ca3059c35265ccfd37d1dbabd1b37b33ae1fc9f22141e002be28ce1fb825dc19" + }, + { + "path": "attachments/omnient-8-on-attachments/manifest.json", + "sha256": "84347a3338313fc479cba350b3caa34c3b921f01371c2142a29a190dfcc1d15d" + }, + { + "path": "attachments/omnient-9-off-attachments/80019BB0-ED05-4A54-ADB1-F17E8274BA78.csv", + "sha256": "4b72182c7047898530592bc865499dab95f34903fa5745a9e42fc8587e638954" + }, + { + "path": "attachments/omnient-9-off-attachments/98F3D5D1-0A2F-4BDF-8808-E7797E791760.json", + "sha256": "f5aa8ef9e98fbdc696760dbcd2a6f7acf18165661e792fc45d796b1d5d3c428a" + }, + { + "path": "attachments/omnient-9-off-attachments/manifest.json", + "sha256": "3ca1393db5e708a002ee408ee5d330e4ee04894518e93bbe549bf68ccdecf756" + }, + { + "path": "attachments/omnient-9-on-attachments/207CE9BA-4BBD-4C2F-975F-C1000EEFDC4E.json", + "sha256": "3536382284d9a422781bf2fdf064b78d39deef4b54c08c73cf12406638c6fb1c" + }, + { + "path": "attachments/omnient-9-on-attachments/B2A83480-FA4E-491A-A1D4-52863385B9C2.csv", + "sha256": "2147aea603381011d395ffb13fb544ee8d4bb8bf1df162c4f225f047d692a729" + }, + { + "path": "attachments/omnient-9-on-attachments/manifest.json", + "sha256": "7e2ead2b8c2bcdf7fac129727791058defebd1747fcf409aa8f4169e6664f74f" + }, + { + "path": "logs/omnient-1-off.log", + "sha256": "2d95e456e789431c121813153beffc3936772126d8dc3cbbc10bc7d7a18e2800" + }, + { + "path": "logs/omnient-1-on.log", + "sha256": "3dc82c233ea3112a56599b43eeef63de6537011abb0d0dca153acb0fbca1f9d6" + }, + { + "path": "logs/omnient-10-off.log", + "sha256": "22e7af7a0fd8ff92572880138ebf631b56ba0c5201d4a3aa46bee8020db3d6c7" + }, + { + "path": "logs/omnient-10-on.log", + "sha256": "b205c02b0d38135f4aacab98c9099e35cdd8aff6f0b2e059588b9dbafd367e3b" + }, + { + "path": "logs/omnient-11-off.log", + "sha256": "096f3bf4fcbc491705f8d136fe3c4f3fddc9b804eef2d6cd40c180893fb892a4" + }, + { + "path": "logs/omnient-11-on.log", + "sha256": "3a89b78d06384357b8904851176b1c3893390f5e22c81db8554d47be3d04c2cc" + }, + { + "path": "logs/omnient-12-off.log", + "sha256": "c862cf12934c82449ac0c2f0ae60862d10dd3b0dabc70548412b111fa300247c" + }, + { + "path": "logs/omnient-12-on.log", + "sha256": "3fa572c7a4788225bc7965ef3112a5ee6677fb108f7940d7de2a31c780b95323" + }, + { + "path": "logs/omnient-13-off.log", + "sha256": "1ed0dc72f45dd4cc2b730979cca59fd4f02bbd66cdad3c358ea490d2003309ba" + }, + { + "path": "logs/omnient-13-on.log", + "sha256": "bf4a796be3d07cfca4b0a59bbafc53753e058b49f12baa43cf79653ebe97fc62" + }, + { + "path": "logs/omnient-14-off.log", + "sha256": "ae5d255e3f9bf94350ac3b8623479bf07721ccf0252e951ee746adb2b1bd7da1" + }, + { + "path": "logs/omnient-14-on.log", + "sha256": "b536eefbc36647c02705c2ce020ec97cc7aedd1bedddafe32137b1c9fb3955e0" + }, + { + "path": "logs/omnient-15-off.log", + "sha256": "15d0bba4d5a461c6dffa198445d5a13bec86a1933ebc881e9cefa9e08ab617a6" + }, + { + "path": "logs/omnient-15-on.log", + "sha256": "a15076ae3b3e12b2793de0d5d7503bdb979a002f88163514b386895d0827cdf6" + }, + { + "path": "logs/omnient-16-off.log", + "sha256": "69f88454ea15d341a7756dbb609474f5da82c681e342f8781fc0206e90252006" + }, + { + "path": "logs/omnient-16-on.log", + "sha256": "04e977fa653a5b677f37a42640fc05478537a7cd607dd17366e3d73129413b0b" + }, + { + "path": "logs/omnient-17-off.log", + "sha256": "f96b83e3a5e0c6a9f5a5d94ed2e8d9c88ade5d5f08d071c5c0e68b945416b271" + }, + { + "path": "logs/omnient-17-on.log", + "sha256": "783b28836a0b9275f29b6b1c525c1a96cd5e5b45d588693290c6c32ae260ae73" + }, + { + "path": "logs/omnient-18-off.log", + "sha256": "c83cb1646351a134fd4b4c6db9c734a9d5458111d4069736661d7d9f2f4102ee" + }, + { + "path": "logs/omnient-18-on.log", + "sha256": "e4e6db01a35c181740b05612f88b1009a4e83e89cf4a9eda6df778b6dcbc31f1" + }, + { + "path": "logs/omnient-19-off.log", + "sha256": "b722b661754f3ce73dac600e828c140180cbfb4fc9adb81fe2d50c98e83ae7ef" + }, + { + "path": "logs/omnient-19-on.log", + "sha256": "766364e21024fff607a4400adbf0a32cb2aa92c4a13d8fc33f8749182229125e" + }, + { + "path": "logs/omnient-2-off.log", + "sha256": "4cc2feadf62d61a904ba2bf24af706fb0ca2e83454a20df70dee0344dbca8dfc" + }, + { + "path": "logs/omnient-2-on.log", + "sha256": "e2985d22bebcf4f2ab89ada50f9276b76c1347fdbf18372eebb74ba370122c28" + }, + { + "path": "logs/omnient-20-off.log", + "sha256": "d910ff2c8f9397a89768993dd37b1a9b05ba63106752721a28cd39b733cdfc85" + }, + { + "path": "logs/omnient-20-on.log", + "sha256": "b2bb49bd5851f118a7c19b04cb8bd6ee353910009b45b1f44de6661582bdd886" + }, + { + "path": "logs/omnient-21-off.log", + "sha256": "8e58771bd042c208604c4d26cf7d9f7d73b5d41a887c5dc48ebaeeeedf26e312" + }, + { + "path": "logs/omnient-21-on.log", + "sha256": "e334513a59cfb68799676cae0eccabdda030600013f0939c974a0e396799567c" + }, + { + "path": "logs/omnient-22-off.log", + "sha256": "42172091c8ec2bc3ed8ecf92b53db267f6d74204716cca6dfe6ecc4186c40b3a" + }, + { + "path": "logs/omnient-22-on.log", + "sha256": "6d4d65e9184421606f45d8bb1fc7fbc4994733aa17592da0b00bf8a225e2c6f5" + }, + { + "path": "logs/omnient-23-off.log", + "sha256": "401d5a995a71421c2931024e11e82241e3c738ad5b7f8799cd228430a90fb620" + }, + { + "path": "logs/omnient-23-on.log", + "sha256": "b57cabb9521306436f367155d300f70b60050f4003b34c699eda26b6b2c9b7c2" + }, + { + "path": "logs/omnient-24-off.log", + "sha256": "18df3d3e931177313b5ab00f7f0c41375ec6ca2b5f3fc01c601128d7265313a9" + }, + { + "path": "logs/omnient-24-on.log", + "sha256": "584225a63826dbad22bbf22cac1ec4f76c5ad3495fb769b1865d1add851d88d2" + }, + { + "path": "logs/omnient-25-off.log", + "sha256": "5a4ab8bded5ab294c0193034c9ff2fc0966d138aba53ad98190396b2c39c9ab5" + }, + { + "path": "logs/omnient-25-on.log", + "sha256": "ac61d08d79a964b5d45e2daa3690b6aa5c3206c39b0d60fbcde7551d5e2ced65" + }, + { + "path": "logs/omnient-26-off.log", + "sha256": "92da21b5d8b51a687404b69fdfbcd259aeeb9df2d250e53c817948798917e250" + }, + { + "path": "logs/omnient-26-on.log", + "sha256": "2e9350750ffeab5f92d4bb0dbb9b925eab44404553f7b9dbea93ec1b31904358" + }, + { + "path": "logs/omnient-27-off.log", + "sha256": "fa33b4f98a60a6843071aea2655e73540a1da5e3da5376a7fdb4f238c09f13d1" + }, + { + "path": "logs/omnient-27-on.log", + "sha256": "7b89f33bbaf0ce41f4ab01006fba9d6efd24c1f3060176db5c22c49cbb7ace11" + }, + { + "path": "logs/omnient-28-off.log", + "sha256": "3f12ef3a6bcaf48ce1bf1d9795f6019cbd6f853097c991997da0816d69999edb" + }, + { + "path": "logs/omnient-28-on.log", + "sha256": "dc60f09541559289eb86483a6045b7fd70003007d6799bacfea54785ccfdadb9" + }, + { + "path": "logs/omnient-29-off.log", + "sha256": "6c911c6c7acd91a652283f4c1d776b3edf49d85a917aa8cecbc807376cfac9f4" + }, + { + "path": "logs/omnient-29-on.log", + "sha256": "ab3600e60ba71599e4f911e4fd73c469011472bd73c64de160f48a6fc71de45e" + }, + { + "path": "logs/omnient-3-off.log", + "sha256": "a8bbc79325daf737edbede844467ba74bce3e8875992b02613af914583c93798" + }, + { + "path": "logs/omnient-3-on.log", + "sha256": "4b8538d50784ff105b1aca9141060295d034b914f5c32249847a50a9898d809a" + }, + { + "path": "logs/omnient-30-off.log", + "sha256": "d016b73b119f2f08d950dda75b84ee0e7ddcebd826a54459be366bf240867acf" + }, + { + "path": "logs/omnient-30-on.log", + "sha256": "296ec67aeba008ec7f72f294773065b380fe3beab955045792c5b412655a6486" + }, + { + "path": "logs/omnient-31-off.log", + "sha256": "facb92455d75689ef1d19ac52816dc0f63223aa14f93837b71661dd2a37ee4e0" + }, + { + "path": "logs/omnient-31-on.log", + "sha256": "1635bebcb7d64cecd001b627c71c399af360d4957c03047a8a5d9b9d95bf4e61" + }, + { + "path": "logs/omnient-32-off.log", + "sha256": "6b98d030b8ff6c1301fc1ad177fb89217f4f976b0ec5fc7796ce8ba389f17075" + }, + { + "path": "logs/omnient-32-on.log", + "sha256": "e8653bdffaaa65c34bb59162546ec961e3ce3a49f87e2b0f23eef86050608ae4" + }, + { + "path": "logs/omnient-33-off.log", + "sha256": "996e031a14ebee2924a47a8c053cddcfbcf6f839c39f175d85c017e8c193a09e" + }, + { + "path": "logs/omnient-33-on.log", + "sha256": "0107bc9a0936b4c7e81a7107702902a6461c0b4cf47250b8ba303a68fe2bd86c" + }, + { + "path": "logs/omnient-34-off.log", + "sha256": "cfe8c4106705af0443dfa31d8bb9f5303ce0b38f59feb1b99cc971743a4aadca" + }, + { + "path": "logs/omnient-34-on.log", + "sha256": "2e52740487e1ad4a863a8671937b8c39e755c4dd6af251d4955f11f3694fb6ad" + }, + { + "path": "logs/omnient-35-off.log", + "sha256": "269e809601d3f0b1d2b3381f7fb95dda8e67f2fdfffee9528c487da8c3ac4e6f" + }, + { + "path": "logs/omnient-35-on.log", + "sha256": "9cd1d659d9b6bde1f894abfbe00dc2ea1500a3f3cf907b2a6669da87346654ee" + }, + { + "path": "logs/omnient-36-off.log", + "sha256": "6aa02829a2c5ab7f7c6790808d19d2fd76d727cf6e2154a0929a00c22b75fc04" + }, + { + "path": "logs/omnient-36-on.log", + "sha256": "34479849124f52df44362769b436367ec2e35ef9d3f564f84bbdb4ecf257fdb8" + }, + { + "path": "logs/omnient-37-off.log", + "sha256": "f605b90c75134c7d0690cca6a4403385756e3660f7291c40426e28b69bb8c228" + }, + { + "path": "logs/omnient-37-on.log", + "sha256": "8ebfe189762e6529cff522728136a2166387666a6613852288fd8b9fb65ac344" + }, + { + "path": "logs/omnient-38-off.log", + "sha256": "e6232c2ba7b7611227fe70800c33a09c44283abe06a5cb30dafb631a4410f263" + }, + { + "path": "logs/omnient-38-on.log", + "sha256": "67b85ee1c98bd47c75317f43730d64b1b93adc966e6a257914112a1b4dd5d915" + }, + { + "path": "logs/omnient-39-off.log", + "sha256": "57c59ac16994cc53493105ba60b353c6b5e28a4971010e7608e9d3aba4dd9a1b" + }, + { + "path": "logs/omnient-39-on.log", + "sha256": "66630da462df909a192f10a72ca8e951e2261ce0c46cc888b1c92d3d64feaa88" + }, + { + "path": "logs/omnient-4-off.log", + "sha256": "c6a49cd954a46b4cd0218bf864ff75bef0c36836e956b5771af542b5f518095c" + }, + { + "path": "logs/omnient-4-on.log", + "sha256": "56e1f444179f16eecac26d5d32cdf68b4a93fba9ea60738ee5cf9a54473593ea" + }, + { + "path": "logs/omnient-40-off.log", + "sha256": "1104e8cb0d40f17d9b33aa3468329934ce45343cede31fd3b2b9e0d3f2cb7179" + }, + { + "path": "logs/omnient-40-on.log", + "sha256": "cd6d10a27a9013e7280a2b2568b9a3eeb8327ccaf37740ed42d044b8d4ce07a2" + }, + { + "path": "logs/omnient-41-off.log", + "sha256": "99d6dc03a5722ce690db62b89e13e2dde0e82c5d29194f9553239da4b1dbe4a0" + }, + { + "path": "logs/omnient-41-on.log", + "sha256": "9014535986795d059d2f4ad62720e96c25158d52c65ce3aeab39ff2b5b9eb4fa" + }, + { + "path": "logs/omnient-42-off.log", + "sha256": "a87bddc25ae56038fee15db9357365ca26c4b4a7c8b88364bc30df520739aa86" + }, + { + "path": "logs/omnient-42-on.log", + "sha256": "274e0e16ad8aeabc41d8c4b463b35c50edaf26fa37219f0303702954e3686753" + }, + { + "path": "logs/omnient-43-off.log", + "sha256": "6db2a93b967ba764b650b5f8712d576ab8dc4c40129bf2a6e7c6b65e939a0008" + }, + { + "path": "logs/omnient-43-on.log", + "sha256": "61b4668ed0aa181bb6f5560b7088778addcf9c374ba22b0129d95718cda60a57" + }, + { + "path": "logs/omnient-44-off.log", + "sha256": "7630bfbed03703901cb9d2896757749d17cbaff1b7dfc7518fc8089fd3014eeb" + }, + { + "path": "logs/omnient-44-on.log", + "sha256": "92034734bfd6ff3b5f91499b5ee14cdc56c8450986d86baccc3138ede8bb40a6" + }, + { + "path": "logs/omnient-45-off.log", + "sha256": "771811edb19cc22e4f92130cf4f6490e8cc787dcd64ff04b6f8ed5a444f096b4" + }, + { + "path": "logs/omnient-45-on.log", + "sha256": "797952af7c442b410503f05d5e898ea40b415bedabd1b007cba228c2dabe88f5" + }, + { + "path": "logs/omnient-46-off.log", + "sha256": "ecf7801669adcc5efb00f62a0ce5649ee0de07eae24e1eeecf78d88e33d5976f" + }, + { + "path": "logs/omnient-46-on.log", + "sha256": "b13de9f749c3103d1f7a61f7b56aa76f563441017d6ead9de906795f065b742c" + }, + { + "path": "logs/omnient-47-off.log", + "sha256": "1e238fd94533aa74a7250c48c3f63d0f49f11cb9365ccf7108c57c3d3902a8ae" + }, + { + "path": "logs/omnient-47-on.log", + "sha256": "770c187f8f79249a386cc952f2eec029366e4be2d7d35ba134e4fdb684c6c191" + }, + { + "path": "logs/omnient-48-off.log", + "sha256": "48da8d2ad789a8e5bf51c2a53e4f1dfa06029af6fa4d75c681098b4ba440ef1b" + }, + { + "path": "logs/omnient-48-on.log", + "sha256": "a23a3a36082b43ffa702b3ddc30189e549c36e15e650439891209b1c29f29fe3" + }, + { + "path": "logs/omnient-49-off.log", + "sha256": "cdfab0fce90c269e46d747aea834a97fff3c6972ea261e1ca969b2117830ddbf" + }, + { + "path": "logs/omnient-49-on.log", + "sha256": "e1a002c4c4d4dc5c9fa44472a0abe33f9a635b101834dd34ef2d127ce05a49e8" + }, + { + "path": "logs/omnient-5-off.log", + "sha256": "9f966b2ed2c39630df458182976b9b6b7ffa6f20b302d6b83418478452770d58" + }, + { + "path": "logs/omnient-5-on.log", + "sha256": "d7ae7b6e5a8d2b2b0b5f666fc0a8707e491795414a3fbf1e46ec489c9c2dc8fc" + }, + { + "path": "logs/omnient-50-off.log", + "sha256": "d9d9a72c7fbcf7cf03031815a7a82292f1a90a60fc78aa02bb3952c920edf5a5" + }, + { + "path": "logs/omnient-50-on.log", + "sha256": "b2351649f8efb2d7e97770892bb8818608230e9c7859471c8d7f6cd699fc7e56" + }, + { + "path": "logs/omnient-6-off.log", + "sha256": "4d700bf4d937f48e99895573fcab30aaeb5b93d6a08e501819799d050e414b1e" + }, + { + "path": "logs/omnient-6-on.log", + "sha256": "b6ce1ec62a3c455ace640510f630e08be2857fb6bc725d60b402544751eaf096" + }, + { + "path": "logs/omnient-7-off.log", + "sha256": "96de140bd40c9b1a1fdf200350ea8e4dbb3129b78c7865e71490dd9e67225e48" + }, + { + "path": "logs/omnient-7-on.log", + "sha256": "93ab6c46df814956825a4a8cc6156f9d443bc30ef5212d93ac0fa4f7fe751bcd" + }, + { + "path": "logs/omnient-8-off.log", + "sha256": "3858416d5022bbb8debc452cb9dd4bca450a99ffb0e3a325f13306bc5e117f09" + }, + { + "path": "logs/omnient-8-on.log", + "sha256": "9d60c7799ebeab354cb8291a31f1a75827ba5f300abc87de4b9944921aa6ad7a" + }, + { + "path": "logs/omnient-9-off.log", + "sha256": "f001a7d1ff1159eded55deb1789bacc1fb69c2000d963b29d78f7877e9faa7a1" + }, + { + "path": "logs/omnient-9-on.log", + "sha256": "fb7b860811c13dcf9fe5e1546f5f6b4fc6cc040c874c663a34aa0e8e711d5666" + } +] diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/pair-differences.csv b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/pair-differences.csv new file mode 100644 index 0000000..4b7744e --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/pair-differences.csv @@ -0,0 +1,51 @@ +pair,accepted,exclusionReasons,earlyPostHTTP,ttfaDifferenceMs,ttfdDifferenceMs +1,True,[],200,-73.94194602966309,-67.9008960723877 +2,True,[],200,-209.59293842315674,-161.45098209381104 +3,False,['handshake difference >20 ms'],200,-107.43892192840576,-119.01605129241943 +4,True,[],200,-52.25396156311035,-51.26595497131348 +5,True,[],200,-73.28498363494873,-77.78000831604004 +6,True,[],200,-63.34185600280762,-62.988877296447754 +7,True,[],200,-68.27199459075928,-72.41201400756836 +8,True,[],200,-50.004005432128906,-44.69108581542969 +9,True,[],200,-57.05606937408447,-53.034067153930664 +10,False,['handshake difference >20 ms'],200,-63.474059104919434,-49.29399490356445 +11,True,[],200,-72.0059871673584,-65.59908390045166 +12,True,[],200,-69.64492797851562,-69.85294818878174 +13,True,[],200,-91.08996391296387,-88.56093883514404 +14,False,['handshake difference >20 ms'],200,-81.05003833770752,-79.87701892852783 +15,True,[],200,-68.20106506347656,-66.24913215637207 +16,True,[],200,-64.66293334960938,-58.71093273162842 +17,True,[],200,-67.97003746032715,-63.68100643157959 +18,False,['handshake difference >20 ms'],200,102.26094722747803,57.30998516082764 +19,True,[],200,-222.32306003570557,-173.78711700439453 +20,True,[],200,-68.89402866363525,-68.44103336334229 +21,True,[],200,-44.3340539932251,-47.557950019836426 +22,True,[],200,-237.746000289917,-187.9209280014038 +23,True,[],200,-55.946946144104004,-55.523037910461426 +24,False,['handshake difference >20 ms'],200,-117.39003658294678,-113.42203617095947 +25,True,[],200,-49.44193363189697,-45.726895332336426 +26,False,['handshake difference >20 ms'],200,-90.19601345062256,-88.63389492034912 +27,True,[],200,-61.3938570022583,-65.61887264251709 +28,True,[],200,-76.51591300964355,-75.61099529266357 +29,True,[],200,-45.85087299346924,-42.29593276977539 +30,True,[],200,-81.10499382019043,-63.44807147979736 +31,True,[],200,-42.01102256774902,-36.16595268249512 +32,False,['handshake difference >20 ms'],200,-62.52288818359375,-62.40808963775635 +33,True,[],200,-50.68695545196533,-45.81093788146973 +34,True,[],200,-62.767982482910156,-57.166099548339844 +35,True,[],200,-67.45803356170654,-57.98006057739258 +36,True,[],200,-52.54006385803223,-51.05710029602051 +37,False,['handshake difference >20 ms'],200,-25.085926055908203,-71.6710090637207 +38,False,['handshake difference >20 ms'],200,-70.66488265991211,-57.498931884765625 +39,False,['handshake difference >20 ms'],200,-134.10604000091553,-133.40997695922852 +40,True,[],200,-87.4030590057373,-77.4010419845581 +41,True,[],200,-46.167969703674316,-49.60298538208008 +42,True,[],200,-46.99993133544922,-48.99299144744873 +43,False,['handshake difference >20 ms'],200,-122.55096435546875,-121.64998054504395 +44,True,[],200,-67.30103492736816,-64.1469955444336 +45,True,[],200,-63.903093338012695,-62.59918212890625 +46,True,[],200,-53.256988525390625,-53.08198928833008 +47,True,[],200,-56.44798278808594,-55.43398857116699 +48,True,[],200,-46.8289852142334,-46.00811004638672 +49,False,['handshake difference >20 ms'],200,-115.52810668945312,-108.74903202056885 +50,False,['handshake difference >20 ms'],200,80.28209209442139,85.10303497314453 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfa-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfa-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8a664e112c26f77af89a8a96f660aa8b8e5422 GIT binary patch literal 47012 zcmaHT1yodTxAzbVilP`GtsnwQ2-2;@s7Oh-GIUCJ`d5Jw5JkEK>5^`+29WL!1z~8U z8@_#f-|yc0t}kXS*RY0RJoB9W?7e@npCDyL^x4xir%@=>*$4M!9-~kvl2Irk6zNHL zrQ7;59XyFR$!a;N+L=1JK6NlbDLi$0W^LzWZDDlP#l*qU!p`;%7td`jVUDZjPEOAp zMYy?b{_7oFb`ECTH{^P>;ZsgMyRYqtLS2bN{t-NIejb5Bm7jkgb63qResPQ>TF+!x zXi@N5h}z?;{>1m*-AF(^41bGy%O;!sPbh&*7QyRFCkU?bS=^KjPQI_AeD(e*mH^U# zs|vwaaZgD9dHc^l=P%4uCvG3N9SOuO#r9>1i_cIosf zxDphKvM?0u@$&DFS5aq?XQ>}ee#lowC0{2_CP02*J4IlQJfj}oL(w45es9nFolNGa zU2DEI7on>7AkMnz0S%wI@_cuiJdMz^C&O-2Aw54>lj040cBgwIt!p>?v!q{<&wVC3 z_h@M-_*Q;&l(f~^bCL(oY#Zb3>V`fJ^i2<9!t!EgatseGe?*Q*pA(O$+aFs==l0!g z$ug|>$}of=?HlQ%61~=boWxU%+{FxdTNm^5n~Vh6 zR64wM{#0`lsaau2R)pdfZxFA&ye_SsMyuH;l!EzxQDl0mq#~7 zCXNK?9b0+abzeJARJ*QtoiTJ7GU*wpKiYKaQ`b!Ekl4>vnZUG(`w%J9Bs}CZM44}$ zY8ouW^h`$?)+sA5)NYTrd{b2tf8P+sm_#ml@P|$h>qnY)nYDVvx>$k1cPd0MzJ&jt zb-m!Y8>a7=(f43=V?L)Ky-!2eCOj|7b=;km-l_BM+|m9@0snd0Z$#(B-n0u%y>@CB z#((@qE}E;do*?P#v$q=N8*f{;JEO*a`o+CI{J}<#5|tYl;U6Bc?NP@$Gs%5z@?Zmd z+~q8#B#FHKaR8W`&efN+w)Y4092NGq%Ij zTukN+U+_℘GH)+%<2aa0>UAM&Ya?o_)@j#i5_Z1N* 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 + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfd-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/histograms/ttfd-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..8db2b3cbe71d912e2c170222aad141767aa0da31 GIT binary patch literal 45675 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 + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/report.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/report.md new file mode 100644 index 0000000..70c8fe5 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/report.md @@ -0,0 +1,50 @@ +# Lens benchmark — 2026-10-12 physical-device cold-connection run (binary encoding) + +## Experiment specification + +[Google net_http: Lens Latency Mimic & Shutter Benchmark Mode](https://github.com/google/net_http/blob/main/webchannel/objc/demo/WebChanneliOSDemo/DESIGN.md#d-lens-latency-mimic--shutter-benchmark-mode). + +## Environment + +| Field | Recorded value | +|---|---| +| Device | iPhone SE (3rd generation), hardware model `iPhone14,6` | +| iOS | 26.3.1, from XCTest | +| Network switches | Not independently recorded for this run | +| Endpoint | `https://webchannel.sandbox.google.com/staging/channel/lens` | +| Mac | macOS 26.5.1; Xcode 26.6; Build version 17F113 | +| Source | Git HEAD `21eee148acc4a2bcb9856adc5ba9d7463a33f84d` plus uncommitted benchmark instrumentation | +| Test period | 2026-10-12 14:56–15:03 JST, from artifact timestamps | +| Test execution | 50 alternating OFF/ON pairs per scenario; a separate `xcodebuild test-without-building` invocation for each trial | +| Test result | All trials completed and passed fresh-transport verification | +| Transport requirement | First transport: `h2`, a new TCP/TLS connection on the handshake GET/POST or early POST; if the GET reused the early POST connection, matching address and local port | + +## Procedure and parameters + +1. Build the XCTest bundle once, then launch exactly one cold-trial test method per `xcodebuild test-without-building` invocation. Keep parallel testing disabled and retain each `.xcresult` bundle. +2. Run Omnient. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial. +3. Use `imageSizeKb=150`, `detectionDelayMs=50`, `initialMessageDelayMs=100`, `enableBinaryEncoding=true`, `sendRawJson=true`, `fastHandshake=false`, `nonBlockingSend=false`, `blockingHandshake=false`, `forceLongPolling=false`, and `detectBufferingProxy=false`. The 150 KB value is metadata; no 150 KB image is uploaded. +4. Schedule M1 Sticky Cluster Info 100 ms after `connect()` returns. Omnient sends M3 Prefetch immediately after M1. M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline. +5. Record Handshake (`webChannelOpened` minus connect), TTFA (M3 send to stream ACK), TTFD (M3 send to preliminary detections), and M4 RTT (M4 send to interaction response). +6. Include a pair in the histograms only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤20 ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit. + +7. Exclude a pair if the ON trial's initial early POST returned HTTP 400, even if a retry completed the trial. An unresolved early POST status is also excluded; a verified absence of an early POST is eligible. Do not replace excluded pairs with additional trials. +8. Plot paired differences as ON minus OFF, using full-precision measurements. Negative values mean ON was faster. Histograms use 10 ms bins aligned to multiples of 10 ms, pair counts on the vertical axis, and all eligible values without clipping in the main plot. When the full range exceeds 600 ms, an inset magnifies -300 to 300 ms and labels the number of pairs in that range; no additional pairs are excluded. TTFA and TTFD are measured from M3 send, so the configured M1 delay is not added to either metric. + +## Omnient: paired difference histograms + +| Item | Count / rate | +|---|---:| +| Measured OFF/ON pairs | 50 | +| ON initial early POST HTTP 400 pairs | 0/50 (0.0%) | +| ON early POST not sent | 0 | +| ON early POST status unresolved | 0 | +| Pairs included in both histograms | 37/50 | + +### TTFA: ON minus OFF + +![TTFA paired difference histogram](histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram](histograms/ttfd-on-minus-off.png) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/run-metadata.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/run-metadata.json new file mode 100644 index 0000000..e812f1e --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-100ms/run-metadata.json @@ -0,0 +1,15 @@ +{ + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 14:56–15:03 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 100 +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/artifacts.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/artifacts.md new file mode 100644 index 0000000..b5cd722 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/artifacts.md @@ -0,0 +1,122 @@ +# Lens benchmark artifacts — 2026-10-12 physical-device cold-connection run + +[Report](report.md) · [Transport audit](connection-reuse-audit.md) · [Run metadata](run-metadata.json) + +Each trial has an Xcode log and exported attachments. Current runs keep logs in `logs/`, result bundles in `xcresults/`, and exported attachments in `attachments/`; older runs may keep these at the run root. The exported JSON and CSV preserve every attempted trial, including pairs omitted from the report tables. CSV values retain their recorded precision. + +| Scenario | Run # | Setting | Raw CSV | Raw JSON | Xcode log | Export log | Result bundle | Export manifest | +|---|---:|:---:|---|---|---|---|---|---| +| omnient | 1 | OFF | [CSV](attachments/omnient-1-off-attachments/397CDEBC-7A68-4849-9DBB-DD122C445707.csv) | [JSON](attachments/omnient-1-off-attachments/CAFAD207-B6E7-402A-B303-28B0DBEBA32D.json) | [Log](logs/omnient-1-off.log) | [Export log](logs/omnient-1-off-export.log) | [xcresult](xcresults/omnient-1-off.xcresult) | [Manifest](attachments/omnient-1-off-attachments/manifest.json) | +| omnient | 1 | ON | [CSV](attachments/omnient-1-on-attachments/5229E451-1D9A-4623-BE73-257E0517DA9E.csv) | [JSON](attachments/omnient-1-on-attachments/75A9A20A-E772-44A3-9CDE-3697FDD414BD.json) | [Log](logs/omnient-1-on.log) | [Export log](logs/omnient-1-on-export.log) | [xcresult](xcresults/omnient-1-on.xcresult) | [Manifest](attachments/omnient-1-on-attachments/manifest.json) | +| omnient | 2 | OFF | [CSV](attachments/omnient-2-off-attachments/296B40FE-02C1-4A3A-9725-314D64C2278A.csv) | [JSON](attachments/omnient-2-off-attachments/15A3B656-7234-4FBC-8B52-A868099D2880.json) | [Log](logs/omnient-2-off.log) | [Export log](logs/omnient-2-off-export.log) | [xcresult](xcresults/omnient-2-off.xcresult) | [Manifest](attachments/omnient-2-off-attachments/manifest.json) | +| omnient | 2 | ON | [CSV](attachments/omnient-2-on-attachments/0BAAFB69-D6C7-4EFD-8551-7B7CFBC715D4.csv) | [JSON](attachments/omnient-2-on-attachments/ECC14867-42BA-4FCB-A587-B742B4D3E9CA.json) | [Log](logs/omnient-2-on.log) | [Export log](logs/omnient-2-on-export.log) | [xcresult](xcresults/omnient-2-on.xcresult) | [Manifest](attachments/omnient-2-on-attachments/manifest.json) | +| omnient | 3 | OFF | [CSV](attachments/omnient-3-off-attachments/BBD9B3DE-87A6-40E5-B0B9-FD801D5A07D8.csv) | [JSON](attachments/omnient-3-off-attachments/0508BD65-1222-42D4-B9AE-157EEAA76963.json) | [Log](logs/omnient-3-off.log) | [Export log](logs/omnient-3-off-export.log) | [xcresult](xcresults/omnient-3-off.xcresult) | [Manifest](attachments/omnient-3-off-attachments/manifest.json) | +| omnient | 3 | ON | [CSV](attachments/omnient-3-on-attachments/B4C70C61-C71C-451F-A9C0-5ED15D295A0A.csv) | [JSON](attachments/omnient-3-on-attachments/F84574A4-DE04-4CCE-B8D3-84CBEC348A10.json) | [Log](logs/omnient-3-on.log) | [Export log](logs/omnient-3-on-export.log) | [xcresult](xcresults/omnient-3-on.xcresult) | [Manifest](attachments/omnient-3-on-attachments/manifest.json) | +| omnient | 4 | OFF | [CSV](attachments/omnient-4-off-attachments/548F8987-690E-4B47-80E9-30C7E983413C.csv) | [JSON](attachments/omnient-4-off-attachments/5F4C5FBB-AB78-4386-A1A1-7D583D12B695.json) | [Log](logs/omnient-4-off.log) | [Export log](logs/omnient-4-off-export.log) | [xcresult](xcresults/omnient-4-off.xcresult) | [Manifest](attachments/omnient-4-off-attachments/manifest.json) | +| omnient | 4 | ON | [CSV](attachments/omnient-4-on-attachments/E53F5C59-B83A-4451-92C9-4873369EDC00.csv) | [JSON](attachments/omnient-4-on-attachments/95FA50EE-8AA8-496C-AD9D-4B34C7469C31.json) | [Log](logs/omnient-4-on.log) | [Export log](logs/omnient-4-on-export.log) | [xcresult](xcresults/omnient-4-on.xcresult) | [Manifest](attachments/omnient-4-on-attachments/manifest.json) | +| omnient | 5 | OFF | [CSV](attachments/omnient-5-off-attachments/1764D317-D3A8-4064-9030-9A2A083FD84E.csv) | [JSON](attachments/omnient-5-off-attachments/4A1C15B8-E363-438A-8179-D8A04FF2B299.json) | [Log](logs/omnient-5-off.log) | [Export log](logs/omnient-5-off-export.log) | [xcresult](xcresults/omnient-5-off.xcresult) | [Manifest](attachments/omnient-5-off-attachments/manifest.json) | +| omnient | 5 | ON | [CSV](attachments/omnient-5-on-attachments/01C823EA-D5C1-40EC-BDF0-4AAF383B81AD.csv) | [JSON](attachments/omnient-5-on-attachments/30E7FA58-8F91-40C2-BD65-F0749DE1842B.json) | [Log](logs/omnient-5-on.log) | [Export log](logs/omnient-5-on-export.log) | [xcresult](xcresults/omnient-5-on.xcresult) | [Manifest](attachments/omnient-5-on-attachments/manifest.json) | +| omnient | 6 | OFF | [CSV](attachments/omnient-6-off-attachments/694B6328-CFD5-4436-A0D0-396C80C6184F.csv) | [JSON](attachments/omnient-6-off-attachments/C12DE915-9314-4BBE-9DC7-E3CEDA942D4D.json) | [Log](logs/omnient-6-off.log) | [Export log](logs/omnient-6-off-export.log) | [xcresult](xcresults/omnient-6-off.xcresult) | [Manifest](attachments/omnient-6-off-attachments/manifest.json) | +| omnient | 6 | ON | [CSV](attachments/omnient-6-on-attachments/D9228DF9-B343-4A9D-AD02-22C004D3C5ED.csv) | [JSON](attachments/omnient-6-on-attachments/292E2B3E-6142-4DDD-9554-F3E367DC64CA.json) | [Log](logs/omnient-6-on.log) | [Export log](logs/omnient-6-on-export.log) | [xcresult](xcresults/omnient-6-on.xcresult) | [Manifest](attachments/omnient-6-on-attachments/manifest.json) | +| omnient | 7 | OFF | [CSV](attachments/omnient-7-off-attachments/EE2C2164-72AC-4C09-9882-6BD327059B1F.csv) | [JSON](attachments/omnient-7-off-attachments/BB25B3FC-4521-4DE9-9C2D-960721E35D97.json) | [Log](logs/omnient-7-off.log) | [Export log](logs/omnient-7-off-export.log) | [xcresult](xcresults/omnient-7-off.xcresult) | [Manifest](attachments/omnient-7-off-attachments/manifest.json) | +| omnient | 7 | ON | [CSV](attachments/omnient-7-on-attachments/E15F4025-CC4B-45FE-B434-D38B4BB8BD43.csv) | [JSON](attachments/omnient-7-on-attachments/921020D8-B919-49A8-909D-D944BCB4D3BD.json) | [Log](logs/omnient-7-on.log) | [Export log](logs/omnient-7-on-export.log) | [xcresult](xcresults/omnient-7-on.xcresult) | [Manifest](attachments/omnient-7-on-attachments/manifest.json) | +| omnient | 8 | OFF | [CSV](attachments/omnient-8-off-attachments/267BD8C9-0D6C-4168-9386-4A249FFD8F53.csv) | [JSON](attachments/omnient-8-off-attachments/89089348-3677-4C04-8B57-A22FC808265E.json) | [Log](logs/omnient-8-off.log) | [Export log](logs/omnient-8-off-export.log) | [xcresult](xcresults/omnient-8-off.xcresult) | [Manifest](attachments/omnient-8-off-attachments/manifest.json) | +| omnient | 8 | ON | [CSV](attachments/omnient-8-on-attachments/302E78FD-A5B3-427D-8C8C-F636391D4F13.csv) | [JSON](attachments/omnient-8-on-attachments/DC3ED0C2-6B9A-4A30-B282-378D05C6DCD0.json) | [Log](logs/omnient-8-on.log) | [Export log](logs/omnient-8-on-export.log) | [xcresult](xcresults/omnient-8-on.xcresult) | [Manifest](attachments/omnient-8-on-attachments/manifest.json) | +| omnient | 9 | OFF | [CSV](attachments/omnient-9-off-attachments/6C157FAB-D51D-4FF5-87FC-6F1B723586F5.csv) | [JSON](attachments/omnient-9-off-attachments/76063F8D-2F46-46E5-A1A1-54ABBF2753BD.json) | [Log](logs/omnient-9-off.log) | [Export log](logs/omnient-9-off-export.log) | [xcresult](xcresults/omnient-9-off.xcresult) | [Manifest](attachments/omnient-9-off-attachments/manifest.json) | +| omnient | 9 | ON | [CSV](attachments/omnient-9-on-attachments/2CE301AD-CDDA-42BD-80E7-36DDF74D5DB2.csv) | [JSON](attachments/omnient-9-on-attachments/C3E81F31-C764-4CA8-B4ED-51FE1F82EAED.json) | [Log](logs/omnient-9-on.log) | [Export log](logs/omnient-9-on-export.log) | [xcresult](xcresults/omnient-9-on.xcresult) | [Manifest](attachments/omnient-9-on-attachments/manifest.json) | +| omnient | 10 | OFF | [CSV](attachments/omnient-10-off-attachments/FA714D30-9C9B-41C1-ABFA-FCDCEB239F32.csv) | [JSON](attachments/omnient-10-off-attachments/3AC8373B-AE7E-4AA1-96A9-39912AC935AA.json) | [Log](logs/omnient-10-off.log) | [Export log](logs/omnient-10-off-export.log) | [xcresult](xcresults/omnient-10-off.xcresult) | [Manifest](attachments/omnient-10-off-attachments/manifest.json) | +| omnient | 10 | ON | [CSV](attachments/omnient-10-on-attachments/5CF71B65-8D23-4697-857B-2F94DB34A7C6.csv) | [JSON](attachments/omnient-10-on-attachments/ED35ED22-45D1-4780-9035-8C5D158A49DF.json) | [Log](logs/omnient-10-on.log) | [Export log](logs/omnient-10-on-export.log) | [xcresult](xcresults/omnient-10-on.xcresult) | [Manifest](attachments/omnient-10-on-attachments/manifest.json) | +| omnient | 11 | OFF | [CSV](attachments/omnient-11-off-attachments/FF0D985D-AC5D-498D-8A94-247FA545DBEB.csv) | [JSON](attachments/omnient-11-off-attachments/9AB018E0-32E7-43D0-A2FE-76D18AF54CF1.json) | [Log](logs/omnient-11-off.log) | [Export log](logs/omnient-11-off-export.log) | [xcresult](xcresults/omnient-11-off.xcresult) | [Manifest](attachments/omnient-11-off-attachments/manifest.json) | +| omnient | 11 | ON | [CSV](attachments/omnient-11-on-attachments/69AA265F-C571-4AB7-BF7C-74B04800B5FD.csv) | [JSON](attachments/omnient-11-on-attachments/3E06EF33-72BA-4B5C-B664-8B372271C606.json) | [Log](logs/omnient-11-on.log) | [Export log](logs/omnient-11-on-export.log) | [xcresult](xcresults/omnient-11-on.xcresult) | [Manifest](attachments/omnient-11-on-attachments/manifest.json) | +| omnient | 12 | OFF | [CSV](attachments/omnient-12-off-attachments/94CDB80E-2A15-49B7-BF31-562E08953ACD.csv) | [JSON](attachments/omnient-12-off-attachments/BB093D9B-E42E-4F57-87C5-C8C7EF9E1F9F.json) | [Log](logs/omnient-12-off.log) | [Export log](logs/omnient-12-off-export.log) | [xcresult](xcresults/omnient-12-off.xcresult) | [Manifest](attachments/omnient-12-off-attachments/manifest.json) | +| omnient | 12 | ON | [CSV](attachments/omnient-12-on-attachments/C75CB0B3-954F-4E1C-A602-68B33C337242.csv) | [JSON](attachments/omnient-12-on-attachments/7BEE6B89-31BB-4827-9046-1A216E78EA77.json) | [Log](logs/omnient-12-on.log) | [Export log](logs/omnient-12-on-export.log) | [xcresult](xcresults/omnient-12-on.xcresult) | [Manifest](attachments/omnient-12-on-attachments/manifest.json) | +| omnient | 13 | OFF | [CSV](attachments/omnient-13-off-attachments/344EA533-7790-4650-8998-1A30EF354933.csv) | [JSON](attachments/omnient-13-off-attachments/8F760863-9EB9-4055-B606-A7A78EA7C6A0.json) | [Log](logs/omnient-13-off.log) | [Export log](logs/omnient-13-off-export.log) | [xcresult](xcresults/omnient-13-off.xcresult) | [Manifest](attachments/omnient-13-off-attachments/manifest.json) | +| omnient | 13 | ON | [CSV](attachments/omnient-13-on-attachments/029158D5-E4D9-4482-9662-98D572204E9B.csv) | [JSON](attachments/omnient-13-on-attachments/C1775B6F-2877-45C9-8FEA-F05C2D225EA0.json) | [Log](logs/omnient-13-on.log) | [Export log](logs/omnient-13-on-export.log) | [xcresult](xcresults/omnient-13-on.xcresult) | [Manifest](attachments/omnient-13-on-attachments/manifest.json) | +| omnient | 14 | OFF | [CSV](attachments/omnient-14-off-attachments/4F9117D7-6BF2-436D-95AF-D702560E33FF.csv) | [JSON](attachments/omnient-14-off-attachments/C85B5998-2536-4936-9B75-C1A7A3E0C973.json) | [Log](logs/omnient-14-off.log) | [Export log](logs/omnient-14-off-export.log) | [xcresult](xcresults/omnient-14-off.xcresult) | [Manifest](attachments/omnient-14-off-attachments/manifest.json) | +| omnient | 14 | ON | [CSV](attachments/omnient-14-on-attachments/383AB7DF-A9D8-48F9-BB38-A5D0F9E68BB5.csv) | [JSON](attachments/omnient-14-on-attachments/741DB92A-3B79-4099-A41F-D9608880653B.json) | [Log](logs/omnient-14-on.log) | [Export log](logs/omnient-14-on-export.log) | [xcresult](xcresults/omnient-14-on.xcresult) | [Manifest](attachments/omnient-14-on-attachments/manifest.json) | +| omnient | 15 | OFF | [CSV](attachments/omnient-15-off-attachments/264314EF-B413-40CF-8E6B-F6272EEE07BA.csv) | [JSON](attachments/omnient-15-off-attachments/67EA5317-DAAE-472E-BF3D-E629135905B7.json) | [Log](logs/omnient-15-off.log) | [Export log](logs/omnient-15-off-export.log) | [xcresult](xcresults/omnient-15-off.xcresult) | [Manifest](attachments/omnient-15-off-attachments/manifest.json) | +| omnient | 15 | ON | [CSV](attachments/omnient-15-on-attachments/FC6E7BF3-ABD7-44EC-95A7-DF602F6AC302.csv) | [JSON](attachments/omnient-15-on-attachments/0EFBAE7E-714B-40A9-9BFE-BAA43E72FB6B.json) | [Log](logs/omnient-15-on.log) | [Export log](logs/omnient-15-on-export.log) | [xcresult](xcresults/omnient-15-on.xcresult) | [Manifest](attachments/omnient-15-on-attachments/manifest.json) | +| omnient | 16 | OFF | [CSV](attachments/omnient-16-off-attachments/014024EE-3AFD-4474-84CC-922FC1B98453.csv) | [JSON](attachments/omnient-16-off-attachments/86DC8835-E64C-4631-8A9A-6727C92F30BD.json) | [Log](logs/omnient-16-off.log) | [Export log](logs/omnient-16-off-export.log) | [xcresult](xcresults/omnient-16-off.xcresult) | [Manifest](attachments/omnient-16-off-attachments/manifest.json) | +| omnient | 16 | ON | [CSV](attachments/omnient-16-on-attachments/544FDEBC-A27B-4237-94AE-80FA0A648AC2.csv) | [JSON](attachments/omnient-16-on-attachments/860AD35F-F7B1-4963-94C4-CE8134565985.json) | [Log](logs/omnient-16-on.log) | [Export log](logs/omnient-16-on-export.log) | [xcresult](xcresults/omnient-16-on.xcresult) | [Manifest](attachments/omnient-16-on-attachments/manifest.json) | +| omnient | 17 | OFF | [CSV](attachments/omnient-17-off-attachments/3D259ADB-88B3-4644-B8C1-7E6D7F9F78E5.csv) | [JSON](attachments/omnient-17-off-attachments/C4CEB7F3-1AE2-4C4B-A527-7291DA888B15.json) | [Log](logs/omnient-17-off.log) | [Export log](logs/omnient-17-off-export.log) | [xcresult](xcresults/omnient-17-off.xcresult) | [Manifest](attachments/omnient-17-off-attachments/manifest.json) | +| omnient | 17 | ON | [CSV](attachments/omnient-17-on-attachments/44739C09-D0F1-4376-B9A5-BA9FBD1656C5.csv) | [JSON](attachments/omnient-17-on-attachments/BF21ADA3-6CF3-4377-ACD5-80D1AEF63923.json) | [Log](logs/omnient-17-on.log) | [Export log](logs/omnient-17-on-export.log) | [xcresult](xcresults/omnient-17-on.xcresult) | [Manifest](attachments/omnient-17-on-attachments/manifest.json) | +| omnient | 18 | OFF | [CSV](attachments/omnient-18-off-attachments/3F142386-73A5-438D-A6D3-DD2061089385.csv) | [JSON](attachments/omnient-18-off-attachments/2E77A6AD-05AE-439E-BA1A-B902487C7C61.json) | [Log](logs/omnient-18-off.log) | [Export log](logs/omnient-18-off-export.log) | [xcresult](xcresults/omnient-18-off.xcresult) | [Manifest](attachments/omnient-18-off-attachments/manifest.json) | +| omnient | 18 | ON | [CSV](attachments/omnient-18-on-attachments/8AD57547-5F12-4883-A193-501245D3EDEB.csv) | [JSON](attachments/omnient-18-on-attachments/BB503E13-E021-4BBE-A907-ACC2EE4C8D56.json) | [Log](logs/omnient-18-on.log) | [Export log](logs/omnient-18-on-export.log) | [xcresult](xcresults/omnient-18-on.xcresult) | [Manifest](attachments/omnient-18-on-attachments/manifest.json) | +| omnient | 19 | OFF | [CSV](attachments/omnient-19-off-attachments/47C96E1D-4930-4ECC-859E-BE962048F8AB.csv) | [JSON](attachments/omnient-19-off-attachments/2369C7FF-9114-4328-9AB7-3CB1457F2DC6.json) | [Log](logs/omnient-19-off.log) | [Export log](logs/omnient-19-off-export.log) | [xcresult](xcresults/omnient-19-off.xcresult) | [Manifest](attachments/omnient-19-off-attachments/manifest.json) | +| omnient | 19 | ON | [CSV](attachments/omnient-19-on-attachments/BD435F7A-BB20-46AB-90BA-DE9AF193F7F7.csv) | [JSON](attachments/omnient-19-on-attachments/2764E674-8B4F-498C-882B-484770C17CDD.json) | [Log](logs/omnient-19-on.log) | [Export log](logs/omnient-19-on-export.log) | [xcresult](xcresults/omnient-19-on.xcresult) | [Manifest](attachments/omnient-19-on-attachments/manifest.json) | +| omnient | 20 | OFF | [CSV](attachments/omnient-20-off-attachments/DF9816A1-A273-4F32-9BFE-F76A067D2705.csv) | [JSON](attachments/omnient-20-off-attachments/B3F84FD6-E67D-43B2-AE38-DD4B15A83834.json) | [Log](logs/omnient-20-off.log) | [Export log](logs/omnient-20-off-export.log) | [xcresult](xcresults/omnient-20-off.xcresult) | [Manifest](attachments/omnient-20-off-attachments/manifest.json) | +| omnient | 20 | ON | [CSV](attachments/omnient-20-on-attachments/4E94F0DC-5511-41F9-B56E-832C1ACB7679.csv) | [JSON](attachments/omnient-20-on-attachments/6FF67838-7864-46BE-BD07-2526DCCAF8C8.json) | [Log](logs/omnient-20-on.log) | [Export log](logs/omnient-20-on-export.log) | [xcresult](xcresults/omnient-20-on.xcresult) | [Manifest](attachments/omnient-20-on-attachments/manifest.json) | +| omnient | 21 | OFF | [CSV](attachments/omnient-21-off-attachments/C1E8351D-24E0-474E-862D-A75659CD956B.csv) | [JSON](attachments/omnient-21-off-attachments/F8AEF998-8035-4F0A-A08F-BAFB0AF97F33.json) | [Log](logs/omnient-21-off.log) | [Export log](logs/omnient-21-off-export.log) | [xcresult](xcresults/omnient-21-off.xcresult) | [Manifest](attachments/omnient-21-off-attachments/manifest.json) | +| omnient | 21 | ON | [CSV](attachments/omnient-21-on-attachments/0F3CA4F4-08E7-4532-A609-CCA54FA8B919.csv) | [JSON](attachments/omnient-21-on-attachments/5509DF00-B730-40D6-9056-8D75F73A9824.json) | [Log](logs/omnient-21-on.log) | [Export log](logs/omnient-21-on-export.log) | [xcresult](xcresults/omnient-21-on.xcresult) | [Manifest](attachments/omnient-21-on-attachments/manifest.json) | +| omnient | 22 | OFF | [CSV](attachments/omnient-22-off-attachments/A01FC804-E33F-488F-9585-07DF7B0D0A05.csv) | [JSON](attachments/omnient-22-off-attachments/D7DBCC90-665F-43E0-AE17-777D507EA0FE.json) | [Log](logs/omnient-22-off.log) | [Export log](logs/omnient-22-off-export.log) | [xcresult](xcresults/omnient-22-off.xcresult) | [Manifest](attachments/omnient-22-off-attachments/manifest.json) | +| omnient | 22 | ON | [CSV](attachments/omnient-22-on-attachments/F27FDA93-A0D0-4FF4-98C5-7B102B3B536A.csv) | [JSON](attachments/omnient-22-on-attachments/94D207D8-E6F0-4C53-A317-8BE5C7D86E9B.json) | [Log](logs/omnient-22-on.log) | [Export log](logs/omnient-22-on-export.log) | [xcresult](xcresults/omnient-22-on.xcresult) | [Manifest](attachments/omnient-22-on-attachments/manifest.json) | +| omnient | 23 | OFF | [CSV](attachments/omnient-23-off-attachments/4B80296E-9A89-40F8-B86F-C105967564F2.csv) | [JSON](attachments/omnient-23-off-attachments/EC182F4E-48C6-4103-BE89-096F88722986.json) | [Log](logs/omnient-23-off.log) | [Export log](logs/omnient-23-off-export.log) | [xcresult](xcresults/omnient-23-off.xcresult) | [Manifest](attachments/omnient-23-off-attachments/manifest.json) | +| omnient | 23 | ON | [CSV](attachments/omnient-23-on-attachments/CE0BD401-B485-44DA-8040-83D860F90E21.csv) | [JSON](attachments/omnient-23-on-attachments/C1A9034F-F0E4-4947-9974-CA7E17EE5C38.json) | [Log](logs/omnient-23-on.log) | [Export log](logs/omnient-23-on-export.log) | [xcresult](xcresults/omnient-23-on.xcresult) | [Manifest](attachments/omnient-23-on-attachments/manifest.json) | +| omnient | 24 | OFF | [CSV](attachments/omnient-24-off-attachments/6A1533A6-9F4B-493F-9D67-16CC1B507801.csv) | [JSON](attachments/omnient-24-off-attachments/3C4773B3-B36B-4AC8-99AC-98A5F0DE1D03.json) | [Log](logs/omnient-24-off.log) | [Export log](logs/omnient-24-off-export.log) | [xcresult](xcresults/omnient-24-off.xcresult) | [Manifest](attachments/omnient-24-off-attachments/manifest.json) | +| omnient | 24 | ON | [CSV](attachments/omnient-24-on-attachments/86B08BE5-53C8-42CE-A9B2-B142653D97AE.csv) | [JSON](attachments/omnient-24-on-attachments/B23A0A44-0A8F-43EF-9F66-023D075BF46F.json) | [Log](logs/omnient-24-on.log) | [Export log](logs/omnient-24-on-export.log) | [xcresult](xcresults/omnient-24-on.xcresult) | [Manifest](attachments/omnient-24-on-attachments/manifest.json) | +| omnient | 25 | OFF | [CSV](attachments/omnient-25-off-attachments/55D0345C-D20E-48E9-B94E-B3E1157A49BE.csv) | [JSON](attachments/omnient-25-off-attachments/39C12114-0A08-46A6-B4C0-D696899398FE.json) | [Log](logs/omnient-25-off.log) | [Export log](logs/omnient-25-off-export.log) | [xcresult](xcresults/omnient-25-off.xcresult) | [Manifest](attachments/omnient-25-off-attachments/manifest.json) | +| omnient | 25 | ON | [CSV](attachments/omnient-25-on-attachments/E149FF30-83F1-4756-90D8-47B376A153DE.csv) | [JSON](attachments/omnient-25-on-attachments/FE2ABC8B-DC37-4775-91C0-CF994E195023.json) | [Log](logs/omnient-25-on.log) | [Export log](logs/omnient-25-on-export.log) | [xcresult](xcresults/omnient-25-on.xcresult) | [Manifest](attachments/omnient-25-on-attachments/manifest.json) | +| omnient | 26 | OFF | [CSV](attachments/omnient-26-off-attachments/93FD66ED-7DDD-440E-BFC0-F555F4DE7330.csv) | [JSON](attachments/omnient-26-off-attachments/BDD31469-C150-4D5F-8757-89E3D27CF3BC.json) | [Log](logs/omnient-26-off.log) | [Export log](logs/omnient-26-off-export.log) | [xcresult](xcresults/omnient-26-off.xcresult) | [Manifest](attachments/omnient-26-off-attachments/manifest.json) | +| omnient | 26 | ON | [CSV](attachments/omnient-26-on-attachments/F761AE51-85B0-4CEC-BA3F-3181970B364F.csv) | [JSON](attachments/omnient-26-on-attachments/EB2F5177-3338-48E7-AB1B-F7879E3566F6.json) | [Log](logs/omnient-26-on.log) | [Export log](logs/omnient-26-on-export.log) | [xcresult](xcresults/omnient-26-on.xcresult) | [Manifest](attachments/omnient-26-on-attachments/manifest.json) | +| omnient | 27 | OFF | [CSV](attachments/omnient-27-off-attachments/229B26C7-A4B5-4D42-91A8-6D9FFBB095B8.csv) | [JSON](attachments/omnient-27-off-attachments/D675E89B-5D6A-4B6D-B24B-3990A54703E5.json) | [Log](logs/omnient-27-off.log) | [Export log](logs/omnient-27-off-export.log) | [xcresult](xcresults/omnient-27-off.xcresult) | [Manifest](attachments/omnient-27-off-attachments/manifest.json) | +| omnient | 27 | ON | [CSV](attachments/omnient-27-on-attachments/A2E933FC-4E63-4249-88B5-684E2894FC3D.csv) | [JSON](attachments/omnient-27-on-attachments/5DF9CE6F-C8DB-4082-B5BB-2F3E7341BE5E.json) | [Log](logs/omnient-27-on.log) | [Export log](logs/omnient-27-on-export.log) | [xcresult](xcresults/omnient-27-on.xcresult) | [Manifest](attachments/omnient-27-on-attachments/manifest.json) | +| omnient | 28 | OFF | [CSV](attachments/omnient-28-off-attachments/20662AA6-85D7-4066-B036-598298541EB3.csv) | [JSON](attachments/omnient-28-off-attachments/1CE38103-65C7-4EAD-A770-455112D2F418.json) | [Log](logs/omnient-28-off.log) | [Export log](logs/omnient-28-off-export.log) | [xcresult](xcresults/omnient-28-off.xcresult) | [Manifest](attachments/omnient-28-off-attachments/manifest.json) | +| omnient | 28 | ON | [CSV](attachments/omnient-28-on-attachments/2C5CA4B9-4110-42BE-90A0-B8D68EB7BBA1.csv) | [JSON](attachments/omnient-28-on-attachments/E28BD901-67E1-4851-8D69-214E1EF03272.json) | [Log](logs/omnient-28-on.log) | [Export log](logs/omnient-28-on-export.log) | [xcresult](xcresults/omnient-28-on.xcresult) | [Manifest](attachments/omnient-28-on-attachments/manifest.json) | +| omnient | 29 | OFF | [CSV](attachments/omnient-29-off-attachments/48F21419-1E1C-4EB8-A68D-395307DF8D1F.csv) | [JSON](attachments/omnient-29-off-attachments/511D9E78-D4CC-4782-B5DF-6A93E46FA5F0.json) | [Log](logs/omnient-29-off.log) | [Export log](logs/omnient-29-off-export.log) | [xcresult](xcresults/omnient-29-off.xcresult) | [Manifest](attachments/omnient-29-off-attachments/manifest.json) | +| omnient | 29 | ON | [CSV](attachments/omnient-29-on-attachments/2BCB8C50-CABC-42D2-A261-10F097CC930D.csv) | [JSON](attachments/omnient-29-on-attachments/3DD6C018-12BF-4C69-A27B-23B109576BD0.json) | [Log](logs/omnient-29-on.log) | [Export log](logs/omnient-29-on-export.log) | [xcresult](xcresults/omnient-29-on.xcresult) | [Manifest](attachments/omnient-29-on-attachments/manifest.json) | +| omnient | 30 | OFF | [CSV](attachments/omnient-30-off-attachments/992BBBE1-7D96-4CDA-8B91-EF30B9AFFC50.csv) | [JSON](attachments/omnient-30-off-attachments/2C0BBF6C-3A17-484B-90BB-99404FC839DA.json) | [Log](logs/omnient-30-off.log) | [Export log](logs/omnient-30-off-export.log) | [xcresult](xcresults/omnient-30-off.xcresult) | [Manifest](attachments/omnient-30-off-attachments/manifest.json) | +| omnient | 30 | ON | [CSV](attachments/omnient-30-on-attachments/934ADB2C-9B0D-4321-80D6-EF9F8896FAC9.csv) | [JSON](attachments/omnient-30-on-attachments/79286352-ECAB-46F9-B796-83CAB4C35C9B.json) | [Log](logs/omnient-30-on.log) | [Export log](logs/omnient-30-on-export.log) | [xcresult](xcresults/omnient-30-on.xcresult) | [Manifest](attachments/omnient-30-on-attachments/manifest.json) | +| omnient | 31 | OFF | [CSV](attachments/omnient-31-off-attachments/09D6494D-0C68-43B9-99C2-0A37927B70D2.csv) | [JSON](attachments/omnient-31-off-attachments/95664352-8C51-453C-B9B1-5F159535B266.json) | [Log](logs/omnient-31-off.log) | [Export log](logs/omnient-31-off-export.log) | [xcresult](xcresults/omnient-31-off.xcresult) | [Manifest](attachments/omnient-31-off-attachments/manifest.json) | +| omnient | 31 | ON | [CSV](attachments/omnient-31-on-attachments/ACEDC4C2-42DF-4B65-B7AC-4170CF50B960.csv) | [JSON](attachments/omnient-31-on-attachments/56B99695-D568-4194-863C-B921FC067EE4.json) | [Log](logs/omnient-31-on.log) | [Export log](logs/omnient-31-on-export.log) | [xcresult](xcresults/omnient-31-on.xcresult) | [Manifest](attachments/omnient-31-on-attachments/manifest.json) | +| omnient | 32 | OFF | [CSV](attachments/omnient-32-off-attachments/EDE2E04F-47E6-4E2F-B4F2-AF63FA4906F2.csv) | [JSON](attachments/omnient-32-off-attachments/63BCB1F8-CA73-4BBD-872E-9EA1D26B6007.json) | [Log](logs/omnient-32-off.log) | [Export log](logs/omnient-32-off-export.log) | [xcresult](xcresults/omnient-32-off.xcresult) | [Manifest](attachments/omnient-32-off-attachments/manifest.json) | +| omnient | 32 | ON | [CSV](attachments/omnient-32-on-attachments/BF729F82-DCBD-4D40-B79A-36A406E02175.csv) | [JSON](attachments/omnient-32-on-attachments/C1A9A941-2AC5-49B1-A215-4B0A9E88A466.json) | [Log](logs/omnient-32-on.log) | [Export log](logs/omnient-32-on-export.log) | [xcresult](xcresults/omnient-32-on.xcresult) | [Manifest](attachments/omnient-32-on-attachments/manifest.json) | +| omnient | 33 | OFF | [CSV](attachments/omnient-33-off-attachments/64E96885-2957-4329-8C53-179693412688.csv) | [JSON](attachments/omnient-33-off-attachments/ED3BA902-6356-4068-B0AF-C7E618507271.json) | [Log](logs/omnient-33-off.log) | [Export log](logs/omnient-33-off-export.log) | [xcresult](xcresults/omnient-33-off.xcresult) | [Manifest](attachments/omnient-33-off-attachments/manifest.json) | +| omnient | 33 | ON | [CSV](attachments/omnient-33-on-attachments/554119FF-4D42-4C7C-9431-149B2ADC849A.csv) | [JSON](attachments/omnient-33-on-attachments/0E238E4A-81C6-49F8-9A23-E6029C7E8F4A.json) | [Log](logs/omnient-33-on.log) | [Export log](logs/omnient-33-on-export.log) | [xcresult](xcresults/omnient-33-on.xcresult) | [Manifest](attachments/omnient-33-on-attachments/manifest.json) | +| omnient | 34 | OFF | [CSV](attachments/omnient-34-off-attachments/AA4D2CA5-4094-49E5-B272-C5831C36424A.csv) | [JSON](attachments/omnient-34-off-attachments/08214B8F-F954-49B7-B002-42621069968A.json) | [Log](logs/omnient-34-off.log) | [Export log](logs/omnient-34-off-export.log) | [xcresult](xcresults/omnient-34-off.xcresult) | [Manifest](attachments/omnient-34-off-attachments/manifest.json) | +| omnient | 34 | ON | [CSV](attachments/omnient-34-on-attachments/696002B5-9114-473F-AA8C-A65E28FE6DE7.csv) | [JSON](attachments/omnient-34-on-attachments/82DD3EFE-21C6-45DB-890D-DD3C20E2D246.json) | [Log](logs/omnient-34-on.log) | [Export log](logs/omnient-34-on-export.log) | [xcresult](xcresults/omnient-34-on.xcresult) | [Manifest](attachments/omnient-34-on-attachments/manifest.json) | +| omnient | 35 | OFF | [CSV](attachments/omnient-35-off-attachments/8898651F-A67A-41D5-8023-D1D3EBCEED5C.csv) | [JSON](attachments/omnient-35-off-attachments/03700795-8ADB-489A-9C7B-2E082396977A.json) | [Log](logs/omnient-35-off.log) | [Export log](logs/omnient-35-off-export.log) | [xcresult](xcresults/omnient-35-off.xcresult) | [Manifest](attachments/omnient-35-off-attachments/manifest.json) | +| omnient | 35 | ON | [CSV](attachments/omnient-35-on-attachments/04936024-6DF4-43B3-8FBE-1352A1EC2DE4.csv) | [JSON](attachments/omnient-35-on-attachments/347FFA09-48EF-427A-AA37-3C66966B8831.json) | [Log](logs/omnient-35-on.log) | [Export log](logs/omnient-35-on-export.log) | [xcresult](xcresults/omnient-35-on.xcresult) | [Manifest](attachments/omnient-35-on-attachments/manifest.json) | +| omnient | 36 | OFF | [CSV](attachments/omnient-36-off-attachments/AA5F2963-87F1-464F-94A0-FE9E1C1FA77A.csv) | [JSON](attachments/omnient-36-off-attachments/309E55EF-7FA5-4DBB-AF1B-7E6FED62387F.json) | [Log](logs/omnient-36-off.log) | [Export log](logs/omnient-36-off-export.log) | [xcresult](xcresults/omnient-36-off.xcresult) | [Manifest](attachments/omnient-36-off-attachments/manifest.json) | +| omnient | 36 | ON | [CSV](attachments/omnient-36-on-attachments/7173EDCB-7951-4723-B8B2-EF02C7FCCD1A.csv) | [JSON](attachments/omnient-36-on-attachments/CF8D4219-5782-42DC-AD21-BB294EF875F6.json) | [Log](logs/omnient-36-on.log) | [Export log](logs/omnient-36-on-export.log) | [xcresult](xcresults/omnient-36-on.xcresult) | [Manifest](attachments/omnient-36-on-attachments/manifest.json) | +| omnient | 37 | OFF | [CSV](attachments/omnient-37-off-attachments/7520A373-DCD0-4AC0-BC5C-4832D32E8B7E.csv) | [JSON](attachments/omnient-37-off-attachments/5888ABAC-C27F-4977-8EB4-138254E99C63.json) | [Log](logs/omnient-37-off.log) | [Export log](logs/omnient-37-off-export.log) | [xcresult](xcresults/omnient-37-off.xcresult) | [Manifest](attachments/omnient-37-off-attachments/manifest.json) | +| omnient | 37 | ON | [CSV](attachments/omnient-37-on-attachments/0D1EE27D-F518-49EB-8759-70AD552B5600.csv) | [JSON](attachments/omnient-37-on-attachments/B355A41D-4AC3-4BA4-81BC-C0EA5B7BE0F3.json) | [Log](logs/omnient-37-on.log) | [Export log](logs/omnient-37-on-export.log) | [xcresult](xcresults/omnient-37-on.xcresult) | [Manifest](attachments/omnient-37-on-attachments/manifest.json) | +| omnient | 38 | OFF | [CSV](attachments/omnient-38-off-attachments/E31D78AF-2FBA-483F-8B31-F91FC5248A4A.csv) | [JSON](attachments/omnient-38-off-attachments/2C206366-AB8D-4F62-AD55-5F5967C334CE.json) | [Log](logs/omnient-38-off.log) | [Export log](logs/omnient-38-off-export.log) | [xcresult](xcresults/omnient-38-off.xcresult) | [Manifest](attachments/omnient-38-off-attachments/manifest.json) | +| omnient | 38 | ON | [CSV](attachments/omnient-38-on-attachments/F983571D-03A0-4878-B0D4-05732C3CDC28.csv) | [JSON](attachments/omnient-38-on-attachments/042703F8-2815-49C1-8C30-C43F20FE379B.json) | [Log](logs/omnient-38-on.log) | [Export log](logs/omnient-38-on-export.log) | [xcresult](xcresults/omnient-38-on.xcresult) | [Manifest](attachments/omnient-38-on-attachments/manifest.json) | +| omnient | 39 | OFF | [CSV](attachments/omnient-39-off-attachments/5E934BC8-A5B8-45FE-BCDA-257D59E2058E.csv) | [JSON](attachments/omnient-39-off-attachments/DFF5FBC2-6153-47C3-93BA-DB1CD150236C.json) | [Log](logs/omnient-39-off.log) | [Export log](logs/omnient-39-off-export.log) | [xcresult](xcresults/omnient-39-off.xcresult) | [Manifest](attachments/omnient-39-off-attachments/manifest.json) | +| omnient | 39 | ON | [CSV](attachments/omnient-39-on-attachments/AD4D5F79-6B65-4578-B84A-8327256272EC.csv) | [JSON](attachments/omnient-39-on-attachments/DAD33528-5C76-4CC8-80B6-194C01427D2A.json) | [Log](logs/omnient-39-on.log) | [Export log](logs/omnient-39-on-export.log) | [xcresult](xcresults/omnient-39-on.xcresult) | [Manifest](attachments/omnient-39-on-attachments/manifest.json) | +| omnient | 40 | OFF | [CSV](attachments/omnient-40-off-attachments/FBBF3593-8F7B-4DAB-A72E-91C36A81932A.csv) | [JSON](attachments/omnient-40-off-attachments/68BDBD7E-74C8-481D-9062-B8293F0E1522.json) | [Log](logs/omnient-40-off.log) | [Export log](logs/omnient-40-off-export.log) | [xcresult](xcresults/omnient-40-off.xcresult) | [Manifest](attachments/omnient-40-off-attachments/manifest.json) | +| omnient | 40 | ON | [CSV](attachments/omnient-40-on-attachments/FFA3732A-E7AE-425A-A109-0C2954B95390.csv) | [JSON](attachments/omnient-40-on-attachments/708FBA44-CBF8-4E26-9AB7-ABF649E0FF20.json) | [Log](logs/omnient-40-on.log) | [Export log](logs/omnient-40-on-export.log) | [xcresult](xcresults/omnient-40-on.xcresult) | [Manifest](attachments/omnient-40-on-attachments/manifest.json) | +| omnient | 41 | OFF | [CSV](attachments/omnient-41-off-attachments/402AD6CB-A7FA-4C39-8B1F-C57567855841.csv) | [JSON](attachments/omnient-41-off-attachments/C2917C69-FC7E-48E7-BDB8-89D7C0E9BBED.json) | [Log](logs/omnient-41-off.log) | [Export log](logs/omnient-41-off-export.log) | [xcresult](xcresults/omnient-41-off.xcresult) | [Manifest](attachments/omnient-41-off-attachments/manifest.json) | +| omnient | 41 | ON | [CSV](attachments/omnient-41-on-attachments/7AE99723-52D8-4F61-BA0B-E92B6A6772E3.csv) | [JSON](attachments/omnient-41-on-attachments/A4D5885B-5639-40DD-A20A-5DCF76320FBB.json) | [Log](logs/omnient-41-on.log) | [Export log](logs/omnient-41-on-export.log) | [xcresult](xcresults/omnient-41-on.xcresult) | [Manifest](attachments/omnient-41-on-attachments/manifest.json) | +| omnient | 42 | OFF | [CSV](attachments/omnient-42-off-attachments/9EB55B9B-337A-4C68-AB9E-0FEDD3DD696C.csv) | [JSON](attachments/omnient-42-off-attachments/0F393249-5F99-4C6E-99A6-5B2D1E15A81D.json) | [Log](logs/omnient-42-off.log) | [Export log](logs/omnient-42-off-export.log) | [xcresult](xcresults/omnient-42-off.xcresult) | [Manifest](attachments/omnient-42-off-attachments/manifest.json) | +| omnient | 42 | ON | [CSV](attachments/omnient-42-on-attachments/CAAB67F4-B9B6-4EFE-B4D2-BBF2DC73EED7.csv) | [JSON](attachments/omnient-42-on-attachments/51F1CFDE-7442-4F8B-9D65-F8EA385307BB.json) | [Log](logs/omnient-42-on.log) | [Export log](logs/omnient-42-on-export.log) | [xcresult](xcresults/omnient-42-on.xcresult) | [Manifest](attachments/omnient-42-on-attachments/manifest.json) | +| omnient | 43 | OFF | [CSV](attachments/omnient-43-off-attachments/DD637BD9-04E4-4D60-BC05-14624BC8A19F.csv) | [JSON](attachments/omnient-43-off-attachments/4C6331ED-D225-430A-8F79-7EBB23EFD41B.json) | [Log](logs/omnient-43-off.log) | [Export log](logs/omnient-43-off-export.log) | [xcresult](xcresults/omnient-43-off.xcresult) | [Manifest](attachments/omnient-43-off-attachments/manifest.json) | +| omnient | 43 | ON | [CSV](attachments/omnient-43-on-attachments/53C43A15-ABC5-4C22-AA20-D1C73191C6B4.csv) | [JSON](attachments/omnient-43-on-attachments/B69C5366-C201-4BAA-85A2-24D67BBE8069.json) | [Log](logs/omnient-43-on.log) | [Export log](logs/omnient-43-on-export.log) | [xcresult](xcresults/omnient-43-on.xcresult) | [Manifest](attachments/omnient-43-on-attachments/manifest.json) | +| omnient | 44 | OFF | [CSV](attachments/omnient-44-off-attachments/F7F7E11E-A40E-4DC7-A559-E14665A978C4.csv) | [JSON](attachments/omnient-44-off-attachments/C712D8CF-7EBE-4520-8FF5-AD14913DA667.json) | [Log](logs/omnient-44-off.log) | [Export log](logs/omnient-44-off-export.log) | [xcresult](xcresults/omnient-44-off.xcresult) | [Manifest](attachments/omnient-44-off-attachments/manifest.json) | +| omnient | 44 | ON | [CSV](attachments/omnient-44-on-attachments/E30DAB4A-ED21-4BFC-B1F7-C87B904E3CC2.csv) | [JSON](attachments/omnient-44-on-attachments/CCB9CBD4-A190-453D-A923-1148E1F14521.json) | [Log](logs/omnient-44-on.log) | [Export log](logs/omnient-44-on-export.log) | [xcresult](xcresults/omnient-44-on.xcresult) | [Manifest](attachments/omnient-44-on-attachments/manifest.json) | +| omnient | 45 | OFF | [CSV](attachments/omnient-45-off-attachments/0F4E102A-9C6D-472F-8633-44A9FC12FFB7.csv) | [JSON](attachments/omnient-45-off-attachments/12496F94-11E6-456D-A76B-8D9CFEBF441A.json) | [Log](logs/omnient-45-off.log) | [Export log](logs/omnient-45-off-export.log) | [xcresult](xcresults/omnient-45-off.xcresult) | [Manifest](attachments/omnient-45-off-attachments/manifest.json) | +| omnient | 45 | ON | [CSV](attachments/omnient-45-on-attachments/2AAD49D0-310F-4E00-974A-1A42236C660C.csv) | [JSON](attachments/omnient-45-on-attachments/C42779CF-0DF2-4452-AD1B-349809714CF5.json) | [Log](logs/omnient-45-on.log) | [Export log](logs/omnient-45-on-export.log) | [xcresult](xcresults/omnient-45-on.xcresult) | [Manifest](attachments/omnient-45-on-attachments/manifest.json) | +| omnient | 46 | OFF | [CSV](attachments/omnient-46-off-attachments/0C7FB59F-139D-4D23-8AF1-ECBB53B27326.csv) | [JSON](attachments/omnient-46-off-attachments/F14D9D47-09B3-4216-8887-4E20807E3AD1.json) | [Log](logs/omnient-46-off.log) | [Export log](logs/omnient-46-off-export.log) | [xcresult](xcresults/omnient-46-off.xcresult) | [Manifest](attachments/omnient-46-off-attachments/manifest.json) | +| omnient | 46 | ON | [CSV](attachments/omnient-46-on-attachments/0BA866AB-F8BD-4ED1-A8E9-A751B666D70E.csv) | [JSON](attachments/omnient-46-on-attachments/9FF4002D-AA45-46CB-AF7E-E980DC336ABA.json) | [Log](logs/omnient-46-on.log) | [Export log](logs/omnient-46-on-export.log) | [xcresult](xcresults/omnient-46-on.xcresult) | [Manifest](attachments/omnient-46-on-attachments/manifest.json) | +| omnient | 47 | OFF | [CSV](attachments/omnient-47-off-attachments/63AF8539-060B-43E2-9C9A-494F95C8E17E.csv) | [JSON](attachments/omnient-47-off-attachments/11ECBCCB-4B25-4D3E-8EA8-06D37E9E1331.json) | [Log](logs/omnient-47-off.log) | [Export log](logs/omnient-47-off-export.log) | [xcresult](xcresults/omnient-47-off.xcresult) | [Manifest](attachments/omnient-47-off-attachments/manifest.json) | +| omnient | 47 | ON | [CSV](attachments/omnient-47-on-attachments/84D1EC19-52EE-4E63-A72C-CEB077FF8172.csv) | [JSON](attachments/omnient-47-on-attachments/309F8770-1B6F-43F2-B2A4-474A32E91075.json) | [Log](logs/omnient-47-on.log) | [Export log](logs/omnient-47-on-export.log) | [xcresult](xcresults/omnient-47-on.xcresult) | [Manifest](attachments/omnient-47-on-attachments/manifest.json) | +| omnient | 48 | OFF | [CSV](attachments/omnient-48-off-attachments/36894AD2-B1A1-4B89-9DCC-E8EE667668AE.csv) | [JSON](attachments/omnient-48-off-attachments/B1839AE9-9573-488B-A429-7FDE12A326C6.json) | [Log](logs/omnient-48-off.log) | [Export log](logs/omnient-48-off-export.log) | [xcresult](xcresults/omnient-48-off.xcresult) | [Manifest](attachments/omnient-48-off-attachments/manifest.json) | +| omnient | 48 | ON | [CSV](attachments/omnient-48-on-attachments/F6D294D8-29DA-4112-A509-CDBF9C3E6308.csv) | [JSON](attachments/omnient-48-on-attachments/0A9ABCCE-2E5F-4C33-9921-5366399B02F8.json) | [Log](logs/omnient-48-on.log) | [Export log](logs/omnient-48-on-export.log) | [xcresult](xcresults/omnient-48-on.xcresult) | [Manifest](attachments/omnient-48-on-attachments/manifest.json) | +| omnient | 49 | OFF | [CSV](attachments/omnient-49-off-attachments/86D3BA03-CF04-4D24-9F3B-85766BFB9174.csv) | [JSON](attachments/omnient-49-off-attachments/754D4BDE-6A90-4160-8BE7-572A5FF86FA7.json) | [Log](logs/omnient-49-off.log) | [Export log](logs/omnient-49-off-export.log) | [xcresult](xcresults/omnient-49-off.xcresult) | [Manifest](attachments/omnient-49-off-attachments/manifest.json) | +| omnient | 49 | ON | [CSV](attachments/omnient-49-on-attachments/E0C97026-11C7-440D-9C21-4B19C3D250A6.csv) | [JSON](attachments/omnient-49-on-attachments/2F008BE0-37EB-4DDC-941E-A7B2DBD47618.json) | [Log](logs/omnient-49-on.log) | [Export log](logs/omnient-49-on-export.log) | [xcresult](xcresults/omnient-49-on.xcresult) | [Manifest](attachments/omnient-49-on-attachments/manifest.json) | +| omnient | 50 | OFF | [CSV](attachments/omnient-50-off-attachments/8F073A6F-202D-47BA-B8DE-E20F2FB26FCC.csv) | [JSON](attachments/omnient-50-off-attachments/E1C46BCF-3855-4E08-A932-198EC4DC95BB.json) | [Log](logs/omnient-50-off.log) | [Export log](logs/omnient-50-off-export.log) | [xcresult](xcresults/omnient-50-off.xcresult) | [Manifest](attachments/omnient-50-off-attachments/manifest.json) | +| omnient | 50 | ON | [CSV](attachments/omnient-50-on-attachments/395C97BD-9B32-437D-9A91-F824BA97D952.csv) | [JSON](attachments/omnient-50-on-attachments/AE2CA739-66C2-4A10-B8A3-259BB731047E.json) | [Log](logs/omnient-50-on.log) | [Export log](logs/omnient-50-on-export.log) | [xcresult](xcresults/omnient-50-on.xcresult) | [Manifest](attachments/omnient-50-on-attachments/manifest.json) | + +## Histogram evidence + +[Histogram data and selection decisions](histograms/histogram-data.json) · [Full-precision paired differences](histograms/pair-differences.csv). Each record retains its pair number and exclusion reasons; no raw measurement is changed. + +[Input SHA-256 manifest](histograms/input-manifest.json) records the raw files used for aggregation. The histogram JSON records the renderer version and generator SHA-256. + +| Metric | PNG | SVG | +|---|---|---| +| TTFA | [PNG](histograms/ttfa-on-minus-off.png) | [SVG](histograms/ttfa-on-minus-off.svg) | +| TTFD | [PNG](histograms/ttfd-on-minus-off.png) | [SVG](histograms/ttfd-on-minus-off.svg) | + + +JSON includes app logs and task-level `URLSessionTaskMetrics`. Xcode logs include HTTP response metadata used to classify early POST status. Manifests map exported attachments to XCTest tests. diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/connection-reuse-audit.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/connection-reuse-audit.md new file mode 100644 index 0000000..5b84626 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/connection-reuse-audit.md @@ -0,0 +1,234 @@ +# Handshake transport audit + +[Report](report.md) · [Artifacts](artifacts.md) + +The table lists the actual handshake task, identified by its request ID. In ON trials, either the handshake GET or the concurrent early POST may create the fresh connection; the other request can reuse it within that trial. + +The early POST HTTP status comes from the saved Xcode response metadata for `AID=-1`. HTTP 400 confirms rejection of that POST, but does not identify whether soft stickiness failed, requests arrived out of order, or another server-side condition caused it. OFF has no early POST. + +A fresh HTTP/2 connection was verified for each trial's first transport request, not inferred from creating a new service or process. In ON trials, the early POST could create the connection first and the handshake GET could reuse it. DNS, radio, and server state may remain warm. Repeated response-metadata callbacks for one request are counted once. + +Connection setup is `connectEndDate - connectStartDate` and includes the TLS handshake. TLS handshake is `secureConnectionEndDate - secureConnectionStartDate`, a portion of connection setup; do not add the two values. + +| Scenario | Pair | Setting | Test status | Early POST HTTP | Cold source | Handshake protocol | Handshake reused | Connection setup (incl. TLS, ms) | TLS handshake (ms) | Remote address | +|---|---:|:---:|---|:---:|---|---|:---:|---:|---:|---| +| omnient | 1 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 1 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 2 | OFF | completed | — | handshake | h2 | false | 24.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 2 | ON | completed | not sent | handshake | h2 | false | 28.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 3 | OFF | completed | — | handshake | h2 | false | 35.000 | 25.000 | 2404:6800:400b:c017::451 | +| omnient | 3 | ON | completed | not sent | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 4 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 4 | ON | completed | not sent | handshake | h2 | false | 22.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 5 | OFF | completed | — | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 5 | ON | completed | not sent | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 6 | OFF | completed | — | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 6 | ON | completed | not sent | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 7 | OFF | completed | — | handshake | h2 | false | 27.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 7 | ON | completed | not sent | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 8 | OFF | completed | — | handshake | h2 | false | 23.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 8 | ON | completed | not sent | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 9 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 9 | ON | completed | not sent | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 10 | OFF | completed | — | handshake | h2 | false | 22.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 10 | ON | completed | not sent | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 11 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 11 | ON | completed | not sent | handshake | h2 | false | 21.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 12 | OFF | completed | — | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 12 | ON | completed | 400 | handshake | h2 | false | 345.000 | 35.000 | 192.178.226.81 | +| omnient | 13 | OFF | completed | — | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 13 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 14 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 14 | ON | completed | not sent | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 15 | OFF | completed | — | handshake | h2 | false | 28.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 15 | ON | completed | not sent | handshake | h2 | false | 21.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 16 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 16 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 17 | OFF | completed | — | handshake | h2 | false | 26.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 17 | ON | completed | not sent | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 18 | OFF | completed | — | handshake | h2 | false | 25.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 18 | ON | completed | not sent | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 19 | OFF | completed | — | handshake | h2 | false | 29.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 19 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 20 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 20 | ON | completed | not sent | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 21 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 21 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 22 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 22 | ON | completed | not sent | handshake | h2 | false | 30.000 | 19.000 | 2404:6800:400b:c017::451 | +| omnient | 23 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 23 | ON | completed | 200 | handshake | h2 | false | 27.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 24 | OFF | completed | — | handshake | h2 | false | 34.000 | 25.000 | 2404:6800:400b:c017::451 | +| omnient | 24 | ON | completed | 200 | handshake | h2 | false | 114.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 25 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 25 | ON | completed | 400 | handshake | h2 | false | 272.000 | 245.000 | 2404:6800:400b:c017::451 | +| omnient | 26 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 26 | ON | completed | not sent | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 27 | OFF | completed | — | handshake | h2 | false | 27.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 27 | ON | completed | 400 | handshake | h2 | false | 281.000 | 270.000 | 2404:6800:400b:c017::451 | +| omnient | 28 | OFF | completed | — | handshake | h2 | false | 30.000 | 20.000 | 2404:6800:400b:c017::451 | +| omnient | 28 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 29 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 29 | ON | completed | not sent | handshake | h2 | false | 28.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 30 | OFF | completed | — | handshake | h2 | false | 292.000 | 31.000 | 2404:6800:400b:c017::451 | +| omnient | 30 | ON | completed | not sent | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 31 | OFF | completed | — | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 31 | ON | completed | 400 | handshake | h2 | false | 282.000 | 272.000 | 2404:6800:400b:c01b::451 | +| omnient | 32 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 32 | ON | completed | not sent | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 33 | OFF | completed | — | handshake | h2 | false | 63.000 | 16.000 | 2404:6800:400b:c01b::451 | +| omnient | 33 | ON | completed | not sent | handshake | h2 | false | 30.000 | 19.000 | 2404:6800:400b:c01b::451 | +| omnient | 34 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 34 | ON | completed | not sent | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 35 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 35 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 36 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 36 | ON | completed | not sent | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 37 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 37 | ON | completed | not sent | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 38 | OFF | completed | — | handshake | h2 | false | 195.000 | 136.000 | 2404:6800:400b:c01b::451 | +| omnient | 38 | ON | completed | not sent | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 39 | OFF | completed | — | handshake | h2 | false | 22.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 39 | ON | completed | not sent | handshake | h2 | false | 29.000 | 17.000 | 2404:6800:400b:c01b::451 | +| omnient | 40 | OFF | completed | — | handshake | h2 | false | 30.000 | 21.000 | 2404:6800:400b:c01b::451 | +| omnient | 40 | ON | completed | not sent | handshake | h2 | false | 29.000 | 19.000 | 2404:6800:400b:c01b::451 | +| omnient | 41 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 41 | ON | completed | not sent | handshake | h2 | false | 26.000 | 17.000 | 2404:6800:400b:c01b::451 | +| omnient | 42 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 42 | ON | completed | not sent | handshake | h2 | false | 23.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 43 | OFF | completed | — | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 43 | ON | completed | not sent | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 44 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 44 | ON | completed | not sent | handshake | h2 | false | 21.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 45 | OFF | completed | — | handshake | h2 | false | 19.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 45 | ON | completed | not sent | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 46 | OFF | completed | — | handshake | h2 | false | 30.000 | 23.000 | 192.178.226.81 | +| omnient | 46 | ON | completed | not sent | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 47 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c01b::451 | +| omnient | 47 | ON | completed | not sent | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 48 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 48 | ON | completed | not sent | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c01b::451 | +| omnient | 49 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 49 | ON | completed | 200 | handshake | h2 | false | 139.000 | 130.000 | 2404:6800:400b:c01b::451 | +| omnient | 50 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c01b::451 | +| omnient | 50 | ON | completed | not sent | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c01b::451 | + +## M1 and M3 dispatch + +The handshake payload column is the request's encoded `count`. `count=0` means neither M1 nor M3 was in the handshake request itself. `early POST` means the first request containing that message was an `AID=-1` POST logged before WebChannel opened, concurrent with the handshake; it does not prove server arrival order or acceptance. `post-open POST` means its first request was logged after the channel opened. + +M1 is message offset 0. The demo sends M3 at offset 1 in Omnient and offset 2 in Viewfinder (after M2 Heartbeat). Request body prefixes expose `count` and `ofs`, which identify the first HTTP request containing each queued message. A rejected early POST may be retried after opening; the table records the first dispatch. + +The observed M1 delay is measured from the client connect timestamp to the M1 `send()` call; scheduling can vary slightly from the requested delay. + +| Scenario | Pair | Setting | M1 after connect (ms) | Handshake payload | M1 first request | M3 first request | +|---|---:|:---:|---:|:---:|---|---| +| omnient | 1 | OFF | 208.704 | count=0 | post-open POST | post-open POST | +| omnient | 1 | ON | 206.074 | count=0 | post-open POST | post-open POST | +| omnient | 2 | OFF | 208.885 | count=0 | post-open POST | post-open POST | +| omnient | 2 | ON | 204.751 | count=0 | post-open POST | post-open POST | +| omnient | 3 | OFF | 208.562 | count=0 | post-open POST | post-open POST | +| omnient | 3 | ON | 208.912 | count=0 | post-open POST | post-open POST | +| omnient | 4 | OFF | 203.679 | count=0 | post-open POST | post-open POST | +| omnient | 4 | ON | 209.156 | count=0 | post-open POST | post-open POST | +| omnient | 5 | OFF | 205.472 | count=0 | post-open POST | post-open POST | +| omnient | 5 | ON | 206.621 | count=0 | post-open POST | post-open POST | +| omnient | 6 | OFF | 207.314 | count=0 | post-open POST | post-open POST | +| omnient | 6 | ON | 210.058 | count=0 | post-open POST | post-open POST | +| omnient | 7 | OFF | 207.712 | count=0 | post-open POST | post-open POST | +| omnient | 7 | ON | 209.965 | count=0 | post-open POST | post-open POST | +| omnient | 8 | OFF | 208.678 | count=0 | post-open POST | post-open POST | +| omnient | 8 | ON | 206.265 | count=0 | post-open POST | post-open POST | +| omnient | 9 | OFF | 202.203 | count=0 | post-open POST | post-open POST | +| omnient | 9 | ON | 200.810 | count=0 | post-open POST | post-open POST | +| omnient | 10 | OFF | 204.279 | count=0 | post-open POST | post-open POST | +| omnient | 10 | ON | 207.260 | count=0 | post-open POST | post-open POST | +| omnient | 11 | OFF | 208.502 | count=0 | post-open POST | post-open POST | +| omnient | 11 | ON | 207.061 | count=0 | post-open POST | post-open POST | +| omnient | 12 | OFF | 207.828 | count=0 | post-open POST | post-open POST | +| omnient | 12 | ON | 210.223 | count=0 | early POST | early POST | +| omnient | 13 | OFF | 201.206 | count=0 | post-open POST | post-open POST | +| omnient | 13 | ON | 208.047 | count=0 | post-open POST | post-open POST | +| omnient | 14 | OFF | 207.958 | count=0 | post-open POST | post-open POST | +| omnient | 14 | ON | 210.447 | count=0 | post-open POST | post-open POST | +| omnient | 15 | OFF | 209.448 | count=0 | post-open POST | post-open POST | +| omnient | 15 | ON | 204.467 | count=0 | post-open POST | post-open POST | +| omnient | 16 | OFF | 203.782 | count=0 | post-open POST | post-open POST | +| omnient | 16 | ON | 205.525 | count=0 | post-open POST | post-open POST | +| omnient | 17 | OFF | 208.322 | count=0 | post-open POST | post-open POST | +| omnient | 17 | ON | 204.665 | count=0 | post-open POST | post-open POST | +| omnient | 18 | OFF | 207.121 | count=0 | post-open POST | post-open POST | +| omnient | 18 | ON | 207.782 | count=0 | post-open POST | post-open POST | +| omnient | 19 | OFF | 208.827 | count=0 | post-open POST | post-open POST | +| omnient | 19 | ON | 207.318 | count=0 | post-open POST | post-open POST | +| omnient | 20 | OFF | 204.452 | count=0 | post-open POST | post-open POST | +| omnient | 20 | ON | 206.170 | count=0 | post-open POST | post-open POST | +| omnient | 21 | OFF | 204.707 | count=0 | post-open POST | post-open POST | +| omnient | 21 | ON | 208.787 | count=0 | post-open POST | post-open POST | +| omnient | 22 | OFF | 209.867 | count=0 | post-open POST | post-open POST | +| omnient | 22 | ON | 203.838 | count=0 | post-open POST | post-open POST | +| omnient | 23 | OFF | 206.056 | count=0 | post-open POST | post-open POST | +| omnient | 23 | ON | 201.604 | count=0 | early POST | post-open POST | +| omnient | 24 | OFF | 201.146 | count=0 | post-open POST | post-open POST | +| omnient | 24 | ON | 208.152 | count=0 | early POST | early POST | +| omnient | 25 | OFF | 204.674 | count=0 | post-open POST | post-open POST | +| omnient | 25 | ON | 200.827 | count=0 | early POST | early POST | +| omnient | 26 | OFF | 204.754 | count=0 | post-open POST | post-open POST | +| omnient | 26 | ON | 205.014 | count=0 | post-open POST | post-open POST | +| omnient | 27 | OFF | 203.894 | count=0 | post-open POST | post-open POST | +| omnient | 27 | ON | 208.231 | count=0 | early POST | early POST | +| omnient | 28 | OFF | 209.768 | count=0 | post-open POST | post-open POST | +| omnient | 28 | ON | 204.167 | count=0 | post-open POST | post-open POST | +| omnient | 29 | OFF | 207.215 | count=0 | post-open POST | post-open POST | +| omnient | 29 | ON | 208.008 | count=0 | post-open POST | post-open POST | +| omnient | 30 | OFF | 208.933 | count=0 | post-open POST | post-open POST | +| omnient | 30 | ON | 209.109 | count=0 | post-open POST | post-open POST | +| omnient | 31 | OFF | 203.304 | count=0 | post-open POST | post-open POST | +| omnient | 31 | ON | 208.262 | count=0 | early POST | early POST | +| omnient | 32 | OFF | 208.769 | count=0 | post-open POST | post-open POST | +| omnient | 32 | ON | 207.039 | count=0 | post-open POST | post-open POST | +| omnient | 33 | OFF | 205.095 | count=0 | post-open POST | post-open POST | +| omnient | 33 | ON | 208.312 | count=0 | post-open POST | post-open POST | +| omnient | 34 | OFF | 201.820 | count=0 | post-open POST | post-open POST | +| omnient | 34 | ON | 204.621 | count=0 | post-open POST | post-open POST | +| omnient | 35 | OFF | 206.577 | count=0 | post-open POST | post-open POST | +| omnient | 35 | ON | 201.232 | count=0 | post-open POST | post-open POST | +| omnient | 36 | OFF | 206.825 | count=0 | post-open POST | post-open POST | +| omnient | 36 | ON | 208.351 | count=0 | post-open POST | post-open POST | +| omnient | 37 | OFF | 203.430 | count=0 | post-open POST | post-open POST | +| omnient | 37 | ON | 205.552 | count=0 | post-open POST | post-open POST | +| omnient | 38 | OFF | 202.104 | count=0 | post-open POST | post-open POST | +| omnient | 38 | ON | 206.835 | count=0 | post-open POST | post-open POST | +| omnient | 39 | OFF | 206.874 | count=0 | post-open POST | post-open POST | +| omnient | 39 | ON | 209.653 | count=0 | post-open POST | post-open POST | +| omnient | 40 | OFF | 206.382 | count=0 | post-open POST | post-open POST | +| omnient | 40 | ON | 206.192 | count=0 | post-open POST | post-open POST | +| omnient | 41 | OFF | 204.557 | count=0 | post-open POST | post-open POST | +| omnient | 41 | ON | 203.896 | count=0 | post-open POST | post-open POST | +| omnient | 42 | OFF | 204.331 | count=0 | post-open POST | post-open POST | +| omnient | 42 | ON | 205.144 | count=0 | post-open POST | post-open POST | +| omnient | 43 | OFF | 208.312 | count=0 | post-open POST | post-open POST | +| omnient | 43 | ON | 203.606 | count=0 | post-open POST | post-open POST | +| omnient | 44 | OFF | 208.871 | count=0 | post-open POST | post-open POST | +| omnient | 44 | ON | 204.070 | count=0 | post-open POST | post-open POST | +| omnient | 45 | OFF | 202.283 | count=0 | post-open POST | post-open POST | +| omnient | 45 | ON | 203.980 | count=0 | post-open POST | post-open POST | +| omnient | 46 | OFF | 207.035 | count=0 | post-open POST | post-open POST | +| omnient | 46 | ON | 204.796 | count=0 | post-open POST | post-open POST | +| omnient | 47 | OFF | 206.589 | count=0 | post-open POST | post-open POST | +| omnient | 47 | ON | 204.528 | count=0 | post-open POST | post-open POST | +| omnient | 48 | OFF | 204.877 | count=0 | post-open POST | post-open POST | +| omnient | 48 | ON | 208.427 | count=0 | post-open POST | post-open POST | +| omnient | 49 | OFF | 210.512 | count=0 | post-open POST | post-open POST | +| omnient | 49 | ON | 208.796 | count=0 | early POST | early POST | +| omnient | 50 | OFF | 205.173 | count=0 | post-open POST | post-open POST | +| omnient | 50 | ON | 206.982 | count=0 | post-open POST | post-open POST | + +## Observations and limits + +Omnient sends M3 immediately after M1, scheduled 200 ms after connect() returns. Fresh connection verification is to the reached edge, not a cold DNS lookup or cold backend application state. + +The initial early POST returned HTTP 400 in 4/50 ON trials. Of those trials, 4 completed; inspect the logs to distinguish successful retries from incomplete runs. + +The Xcode logs contain retry diagnostics in ON trials for omnient pairs 12, 25, 27, 31. Those retries can affect TTFA and TTFD; the raw logs should be consulted before attributing a timing difference solely to the handshake option. + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/histogram-data.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/histogram-data.json new file mode 100644 index 0000000..ca200f7 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/histogram-data.json @@ -0,0 +1,1137 @@ +{ + "initialMessageDelayMs": 200, + "pairCount": 50, + "handshakeThresholdMs": 20.0, + "difference": "ON minus OFF", + "binWidthMs": 10, + "pairs": [ + { + "pair": 1, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -0.4839897155761719, + "ttfdDifferenceMs": -6.986856460571289 + }, + { + "pair": 2, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -1.7249584197998047, + "ttfdDifferenceMs": -7.667064666748047 + }, + { + "pair": 3, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 3.859877586364746, + "ttfdDifferenceMs": 6.790041923522949 + }, + { + "pair": 4, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 2.8330087661743164, + "ttfdDifferenceMs": 2.2519826889038086 + }, + { + "pair": 5, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 9.38403606414795, + "ttfdDifferenceMs": 11.319994926452637 + }, + { + "pair": 6, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 6.657958030700684, + "ttfdDifferenceMs": 7.976055145263672 + }, + { + "pair": 7, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 0.25200843811035156, + "ttfdDifferenceMs": 0.03695487976074219 + }, + { + "pair": 8, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 0.5459785461425781, + "ttfdDifferenceMs": 3.399968147277832 + }, + { + "pair": 9, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 21.10004425048828, + "ttfdDifferenceMs": 16.224026679992676 + }, + { + "pair": 10, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -0.8360147476196289, + "ttfdDifferenceMs": -1.9840002059936523 + }, + { + "pair": 11, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 7.454991340637207, + "ttfdDifferenceMs": 10.944008827209473 + }, + { + "pair": 12, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 241.97900295257568, + "ttfdDifferenceMs": 242.89000034332275 + }, + { + "pair": 13, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -109.48002338409424, + "ttfdDifferenceMs": -63.38691711425781 + }, + { + "pair": 14, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 13.944029808044434, + "ttfdDifferenceMs": 11.252164840698242 + }, + { + "pair": 15, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 4.836082458496094, + "ttfdDifferenceMs": 5.234122276306152 + }, + { + "pair": 16, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 18.182873725891113, + "ttfdDifferenceMs": 15.481948852539062 + }, + { + "pair": 17, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -1.6189813613891602, + "ttfdDifferenceMs": -1.0319948196411133 + }, + { + "pair": 18, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 7.2479248046875, + "ttfdDifferenceMs": 7.444977760314941 + }, + { + "pair": 19, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 8.040070533752441, + "ttfdDifferenceMs": 13.921976089477539 + }, + { + "pair": 20, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -0.44095516204833984, + "ttfdDifferenceMs": 0.5891323089599609 + }, + { + "pair": 21, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 5.542993545532227, + "ttfdDifferenceMs": 8.618950843811035 + }, + { + "pair": 22, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 4.708051681518555, + "ttfdDifferenceMs": 0.74005126953125 + }, + { + "pair": 23, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 7.37309455871582, + "ttfdDifferenceMs": 9.621977806091309 + }, + { + "pair": 24, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 6.170988082885742, + "ttfdDifferenceMs": 1.672983169555664 + }, + { + "pair": 25, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 90.17598628997803, + "ttfdDifferenceMs": 85.48688888549805 + }, + { + "pair": 26, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 13.141989707946777, + "ttfdDifferenceMs": 11.074066162109375 + }, + { + "pair": 27, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": -91.18902683258057, + "ttfdDifferenceMs": -43.1361198425293 + }, + { + "pair": 28, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 5.897045135498047, + "ttfdDifferenceMs": 8.980989456176758 + }, + { + "pair": 29, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 4.007935523986816, + "ttfdDifferenceMs": -2.838015556335449 + }, + { + "pair": 30, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -235.18705368041992, + "ttfdDifferenceMs": -229.7450304031372 + }, + { + "pair": 31, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 112.7328872680664, + "ttfdDifferenceMs": 110.17191410064697 + }, + { + "pair": 32, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 14.60111141204834, + "ttfdDifferenceMs": 19.12999153137207 + }, + { + "pair": 33, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 157.70196914672852, + "ttfdDifferenceMs": 107.30600357055664 + }, + { + "pair": 34, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 2.889871597290039, + "ttfdDifferenceMs": 6.633877754211426 + }, + { + "pair": 35, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -6.179928779602051, + "ttfdDifferenceMs": -2.998948097229004 + }, + { + "pair": 36, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 3.956913948059082, + "ttfdDifferenceMs": 15.018939971923828 + }, + { + "pair": 37, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 18.550992012023926, + "ttfdDifferenceMs": 18.2340145111084 + }, + { + "pair": 38, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -57.62004852294922, + "ttfdDifferenceMs": -101.51302814483643 + }, + { + "pair": 39, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 1.484990119934082, + "ttfdDifferenceMs": 0.861048698425293 + }, + { + "pair": 40, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -5.360007286071777, + "ttfdDifferenceMs": -7.887840270996094 + }, + { + "pair": 41, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -12.237906455993652, + "ttfdDifferenceMs": -13.952970504760742 + }, + { + "pair": 42, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 4.53495979309082, + "ttfdDifferenceMs": -0.20802021026611328 + }, + { + "pair": 43, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -107.69093036651611, + "ttfdDifferenceMs": -57.83188343048096 + }, + { + "pair": 44, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -77.00896263122559, + "ttfdDifferenceMs": -27.043938636779785 + }, + { + "pair": 45, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 8.283138275146484, + "ttfdDifferenceMs": 8.158087730407715 + }, + { + "pair": 46, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -77.71992683410645, + "ttfdDifferenceMs": -80.70099353790283 + }, + { + "pair": 47, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": -22.328972816467285, + "ttfdDifferenceMs": 19.273996353149414 + }, + { + "pair": 48, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 7.459044456481934, + "ttfdDifferenceMs": 10.126113891601562 + }, + { + "pair": 49, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -24.30105209350586, + "ttfdDifferenceMs": -13.17906379699707 + }, + { + "pair": 50, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "not sent", + "ttfaDifferenceMs": 9.240031242370605, + "ttfdDifferenceMs": 3.8721561431884766 + } + ], + "histograms": { + "TTFA": { + "binEdgesMs": [ + -280.0, + -270.0, + -260.0, + -250.0, + -240.0, + -230.0, + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0, + 1430.0, + 1440.0, + 1450.0, + 1460.0 + ], + "pairCounts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 7, + 20, + 5, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "TTFD": { + "binEdgesMs": [ + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0 + ], + "pairCounts": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 8, + 15, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "earlyPost400Pairs": 4, + "earlyPost400Rate": 0.08, + "unknownEarlyPostPairs": 0, + "noEarlyPostPairs": 43, + "acceptedPairs": 38, + "matplotlibVersion": "3.10.9", + "generatorSHA256": "766535930221932399509978f10b8b165a4a53854ccd020b2a379a83be842761", + "sharedHistogramAxes": true +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/input-manifest.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/input-manifest.json new file mode 100644 index 0000000..e4b406f --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/input-manifest.json @@ -0,0 +1,1602 @@ +[ + { + "path": "attachments/omnient-1-off-attachments/397CDEBC-7A68-4849-9DBB-DD122C445707.csv", + "sha256": "6abe01165ac46f6aa40224f50a73ce16a5642fd71806cff6ff4fd578fe6937d3" + }, + { + "path": "attachments/omnient-1-off-attachments/CAFAD207-B6E7-402A-B303-28B0DBEBA32D.json", + "sha256": "ac606c9b0bfffda88323381f5953c12b7934a8d8a2aa6570625276adec3e876c" + }, + { + "path": "attachments/omnient-1-off-attachments/manifest.json", + "sha256": "c4eaa60d96840ad129256bda807934f7c5aff825e1e171331c3e5b6564399db6" + }, + { + "path": "attachments/omnient-1-on-attachments/5229E451-1D9A-4623-BE73-257E0517DA9E.csv", + "sha256": "3c08b277b2f43990f6740620b1ab4c953365d33a76bdf0224677ea4346b1a840" + }, + { + "path": "attachments/omnient-1-on-attachments/75A9A20A-E772-44A3-9CDE-3697FDD414BD.json", + "sha256": "ffbf2643ab0e27ad06031eac8125723cb7136612e0e7bc29952af83c2dddad67" + }, + { + "path": "attachments/omnient-1-on-attachments/manifest.json", + "sha256": "96043ca81f54592f2171b2f900b05625f9032146d9cc7a401f83d1e6d8bcd706" + }, + { + "path": "attachments/omnient-10-off-attachments/3AC8373B-AE7E-4AA1-96A9-39912AC935AA.json", + "sha256": "31b317c921f08cc49746d430d4d8dd92a8ad61072341101727c0b6478ba3e584" + }, + { + "path": "attachments/omnient-10-off-attachments/FA714D30-9C9B-41C1-ABFA-FCDCEB239F32.csv", + "sha256": "21b3170ea4a3747992e3333fe2ef4f394645efc4ac0a55bc42868cb0ea8da4dd" + }, + { + "path": "attachments/omnient-10-off-attachments/manifest.json", + "sha256": "952391c6c14a1d01e6b711dc08f6fe1853c31e0a99a2b01cec07b6158cb7a831" + }, + { + "path": "attachments/omnient-10-on-attachments/5CF71B65-8D23-4697-857B-2F94DB34A7C6.csv", + "sha256": "6be14c4cafab68eb84a6ba4d0d29918fb134fc3a031ab4a31f3072d2afa88273" + }, + { + "path": "attachments/omnient-10-on-attachments/ED35ED22-45D1-4780-9035-8C5D158A49DF.json", + "sha256": "05e2593a711cdbce899a830bddc5d9dd26deedd681867c49d3a460799fff61b0" + }, + { + "path": "attachments/omnient-10-on-attachments/manifest.json", + "sha256": "d5f1c77ab3e85f551150243c72b1334fde660a204626b2328426fd519f422b3c" + }, + { + "path": "attachments/omnient-11-off-attachments/9AB018E0-32E7-43D0-A2FE-76D18AF54CF1.json", + "sha256": "dccf43a01b309243d931d6ec1a34915c9146799a810ef45f5a2258b4456e49da" + }, + { + "path": "attachments/omnient-11-off-attachments/FF0D985D-AC5D-498D-8A94-247FA545DBEB.csv", + "sha256": "5ba86d211dd14b9f2e557ab7d1aa4001b7c24261a6d8d8ae776e9564ce894ab2" + }, + { + "path": "attachments/omnient-11-off-attachments/manifest.json", + "sha256": "3088fc75049c9b217220596d55b769058f1b36bc725da6c44332e5823e2125d8" + }, + { + "path": "attachments/omnient-11-on-attachments/3E06EF33-72BA-4B5C-B664-8B372271C606.json", + "sha256": "0338974094191024400717b13bd06fadf389f06ddf01431532e8ade43f09b4b7" + }, + { + "path": "attachments/omnient-11-on-attachments/69AA265F-C571-4AB7-BF7C-74B04800B5FD.csv", + "sha256": "54eda9fe5e3a713c7c7fb24257c3fe5ab7510638439fb427009fc372820bb69d" + }, + { + "path": "attachments/omnient-11-on-attachments/manifest.json", + "sha256": "aafdee746a755c813d6f8228c06b83b023e8cad952418ef7fc3406a2056efd80" + }, + { + "path": "attachments/omnient-12-off-attachments/94CDB80E-2A15-49B7-BF31-562E08953ACD.csv", + "sha256": "4900ed50625bd4dbb1c07399835e7015fa836b77fe943de02e053b59f2108626" + }, + { + "path": "attachments/omnient-12-off-attachments/BB093D9B-E42E-4F57-87C5-C8C7EF9E1F9F.json", + "sha256": "1fa817201e00a430ea7430013b772c212e310794e82a49593756a05ea63292e6" + }, + { + "path": "attachments/omnient-12-off-attachments/manifest.json", + "sha256": "4e95939867117ca35bb47f48814f5a60275a90e44500d0ac11096eec59352ffd" + }, + { + "path": "attachments/omnient-12-on-attachments/7BEE6B89-31BB-4827-9046-1A216E78EA77.json", + "sha256": "95effcf1c4d792fca3d0c5ecfb525e84ffbc6c1a39eb8fe7e59a1b842aaee333" + }, + { + "path": "attachments/omnient-12-on-attachments/C75CB0B3-954F-4E1C-A602-68B33C337242.csv", + "sha256": "b344ccc920929627da4e125d08545e22b10ca97973cefce2631d48c1d90e2872" + }, + { + "path": "attachments/omnient-12-on-attachments/manifest.json", + "sha256": "e8b1d66ccdb498c78ef143cae6a70bdd5145683951a86dcdf509de4f670c4dec" + }, + { + "path": "attachments/omnient-13-off-attachments/344EA533-7790-4650-8998-1A30EF354933.csv", + "sha256": "fa829cacb491f7ba9105838318c17b9dbddb8ec7bca7be4ffcc6407a52560dcf" + }, + { + "path": "attachments/omnient-13-off-attachments/8F760863-9EB9-4055-B606-A7A78EA7C6A0.json", + "sha256": "6cd2793a5582b790889c87291628600988023ba0caca12336e6e6e0f5ce34d78" + }, + { + "path": "attachments/omnient-13-off-attachments/manifest.json", + "sha256": "71c33a818c0929e5a331c0ceaed5f7b6fe2748e0d88806fdef057b9d27ab0c1c" + }, + { + "path": "attachments/omnient-13-on-attachments/029158D5-E4D9-4482-9662-98D572204E9B.csv", + "sha256": "0618f88a67f46e20a8590773f98e8db64f8928541e99bd8d3014070e1abb6384" + }, + { + "path": "attachments/omnient-13-on-attachments/C1775B6F-2877-45C9-8FEA-F05C2D225EA0.json", + "sha256": "390b5382f0764cbdafce7b7190de100dbc70a59463c51b9fe1653f376f6ae7e6" + }, + { + "path": "attachments/omnient-13-on-attachments/manifest.json", + "sha256": "3097e025993f64a974a94b899a5be0c2e87384fdb83b46cc336c30b7a7691ed8" + }, + { + "path": "attachments/omnient-14-off-attachments/4F9117D7-6BF2-436D-95AF-D702560E33FF.csv", + "sha256": "227c2947ff9d4cb058085dbe84bdd913434d1f9554afe2a805086fd9bffd2486" + }, + { + "path": "attachments/omnient-14-off-attachments/C85B5998-2536-4936-9B75-C1A7A3E0C973.json", + "sha256": "c0836d8424494a69a9586f3144f78ecf7478d421c38c669e0ceb7bf67d692439" + }, + { + "path": "attachments/omnient-14-off-attachments/manifest.json", + "sha256": "b5e076633a781dec49275983aab099ad20f060277ef100bbcaab4840c12e83f3" + }, + { + "path": "attachments/omnient-14-on-attachments/383AB7DF-A9D8-48F9-BB38-A5D0F9E68BB5.csv", + "sha256": "fa4beda4a1785fd2eafe509af4f6dcb95e06e5dec946e3f2ad6eb826f8c9cf26" + }, + { + "path": "attachments/omnient-14-on-attachments/741DB92A-3B79-4099-A41F-D9608880653B.json", + "sha256": "ca43eed9750999c630dbced4b37f576df504df523e64306878d0e6146009d5f7" + }, + { + "path": "attachments/omnient-14-on-attachments/manifest.json", + "sha256": "f5c8aab30e4199fd46422647a2c31e5c0087971a52b013b18d049534b8b042ee" + }, + { + "path": "attachments/omnient-15-off-attachments/264314EF-B413-40CF-8E6B-F6272EEE07BA.csv", + "sha256": "c7de0480b5a69b25e769b309f6c4afac945c5e124b91330a1e406272151e474c" + }, + { + "path": "attachments/omnient-15-off-attachments/67EA5317-DAAE-472E-BF3D-E629135905B7.json", + "sha256": "23c52d8c275fabe6c79606441d14ae4dcd24090140304f90628b65562f103035" + }, + { + "path": "attachments/omnient-15-off-attachments/manifest.json", + "sha256": "1510cb6f1882d80500d4fa5d65d2956ef68cf3867e833cb4a3dbb2951e7b309e" + }, + { + "path": "attachments/omnient-15-on-attachments/0EFBAE7E-714B-40A9-9BFE-BAA43E72FB6B.json", + "sha256": "956209d6ba46e34215c38dbe82a0108363a05dd072200d07c48fbdb43cb61b39" + }, + { + "path": "attachments/omnient-15-on-attachments/FC6E7BF3-ABD7-44EC-95A7-DF602F6AC302.csv", + "sha256": "1b8042d201c8f0e126a24ae332e9d4d22f0ab6f499478d697beac359ace3ef5c" + }, + { + "path": "attachments/omnient-15-on-attachments/manifest.json", + "sha256": "362b0a2d42beb02906fcee2398e9d5e5d6c574368a29ba10da2d19c25d724143" + }, + { + "path": "attachments/omnient-16-off-attachments/014024EE-3AFD-4474-84CC-922FC1B98453.csv", + "sha256": "9e3005128ba7eb8c582b6b958ef6611ae5ad655e2f8e53898176b28f26a06c54" + }, + { + "path": "attachments/omnient-16-off-attachments/86DC8835-E64C-4631-8A9A-6727C92F30BD.json", + "sha256": "512fbdbaab0a55773cba6e228718979d513e6498b34b74a5793bbb532e4cdd21" + }, + { + "path": "attachments/omnient-16-off-attachments/manifest.json", + "sha256": "35d184cc9b1d75e6acec2c44b014cdf7cac551f0c8acc2768e14d97a4a714749" + }, + { + "path": "attachments/omnient-16-on-attachments/544FDEBC-A27B-4237-94AE-80FA0A648AC2.csv", + "sha256": "a4bf901d2391163f68587315ffdc6617683e5afd37334cbca070f0d1775d99d9" + }, + { + "path": "attachments/omnient-16-on-attachments/860AD35F-F7B1-4963-94C4-CE8134565985.json", + "sha256": "5ef7a83861498892864dd6862e4c8de0017ffcc7b0549e7c14800c004fd58c7f" + }, + { + "path": "attachments/omnient-16-on-attachments/manifest.json", + "sha256": "236e25104b4b68a0501e2c880a4e1b112fa923917ecb7c33a56b901dda26ca9b" + }, + { + "path": "attachments/omnient-17-off-attachments/3D259ADB-88B3-4644-B8C1-7E6D7F9F78E5.csv", + "sha256": "9455e32ca1e16e0960c1f8807bfdd9ddbd76405ba9d78d711cb30ac704d4a9a2" + }, + { + "path": "attachments/omnient-17-off-attachments/C4CEB7F3-1AE2-4C4B-A527-7291DA888B15.json", + "sha256": "f208d2c287a2168ad6f2341493cdecdf074b47e8dca6b424c93e4ecf4aab280f" + }, + { + "path": "attachments/omnient-17-off-attachments/manifest.json", + "sha256": "14de5a17d966a562b6156a990c17f87d043a7906a6f70f6b92fa301740785ea7" + }, + { + "path": "attachments/omnient-17-on-attachments/44739C09-D0F1-4376-B9A5-BA9FBD1656C5.csv", + "sha256": "935a1a6616869ec282fabd93f0c64f6c3e4c9f127438851b8ef535aa41ec37d5" + }, + { + "path": "attachments/omnient-17-on-attachments/BF21ADA3-6CF3-4377-ACD5-80D1AEF63923.json", + "sha256": "0d3d44b27f5f326345d51c387be933b2fdaea8a16600efc57588c156bc012861" + }, + { + "path": "attachments/omnient-17-on-attachments/manifest.json", + "sha256": "c2fced81979e4483769454255b8ab6910cae83fa0dfab0a4db6fe2d58f8a3279" + }, + { + "path": "attachments/omnient-18-off-attachments/2E77A6AD-05AE-439E-BA1A-B902487C7C61.json", + "sha256": "123a7c0fa36211fca80411eaf9414e8d786d28e535fd01f7339fc15f42b3203d" + }, + { + "path": "attachments/omnient-18-off-attachments/3F142386-73A5-438D-A6D3-DD2061089385.csv", + "sha256": "eeb70d45d866cc0e39839c6f3ca788a6465f11d2106b85bf9b5cc110553f940b" + }, + { + "path": "attachments/omnient-18-off-attachments/manifest.json", + "sha256": "75e4bc37e7d248190af5616095582bc3def4af120b63249ef8b09827372009da" + }, + { + "path": "attachments/omnient-18-on-attachments/8AD57547-5F12-4883-A193-501245D3EDEB.csv", + "sha256": "defba88dabde240b53c9f66795fbc799ee2a666a1591941b405cc7c527d7866d" + }, + { + "path": "attachments/omnient-18-on-attachments/BB503E13-E021-4BBE-A907-ACC2EE4C8D56.json", + "sha256": "042a52d5031370efeb69029ac2eecab96f0b9f7ba90aaecb76a4340f7c1b7f5b" + }, + { + "path": "attachments/omnient-18-on-attachments/manifest.json", + "sha256": "21e8142960346b1c6be3c7088e04fff8e352f8ec44d0c842bd36048e15e00b16" + }, + { + "path": "attachments/omnient-19-off-attachments/2369C7FF-9114-4328-9AB7-3CB1457F2DC6.json", + "sha256": "87715b46da7324aa46d6c314b0978201f90666de8dbd216c49216bdf15c08af8" + }, + { + "path": "attachments/omnient-19-off-attachments/47C96E1D-4930-4ECC-859E-BE962048F8AB.csv", + "sha256": "e8acdd243c864ed734d17d27cfc878c4634050e6583a90e38aecbc1f5e1414ce" + }, + { + "path": "attachments/omnient-19-off-attachments/manifest.json", + "sha256": "394a3f7f32a5d14b9609c0196747157a29ef774d9b59b584bded936eddc416b1" + }, + { + "path": "attachments/omnient-19-on-attachments/2764E674-8B4F-498C-882B-484770C17CDD.json", + "sha256": "53dab3d1080bd25f89eea463bce903e92fc5b9f070cef23f66de571a5649400a" + }, + { + "path": "attachments/omnient-19-on-attachments/BD435F7A-BB20-46AB-90BA-DE9AF193F7F7.csv", + "sha256": "4703dab508375c5d27b9206ffc00f24cb66586dc004ceb5343a2503146df3c63" + }, + { + "path": "attachments/omnient-19-on-attachments/manifest.json", + "sha256": "12032b2be89f4f6ed2cfe4438626cf4c6e6707f08d17a82eed43fbe5fdd22e8f" + }, + { + "path": "attachments/omnient-2-off-attachments/15A3B656-7234-4FBC-8B52-A868099D2880.json", + "sha256": "362fa921870f92c0583188d631ad5271884a52cab6bee39c69e94ce276e08e24" + }, + { + "path": "attachments/omnient-2-off-attachments/296B40FE-02C1-4A3A-9725-314D64C2278A.csv", + "sha256": "07c86bbeef409d8d9e14a29da658cbc3a8b09337680f71e3bcbe604d1eb0ab31" + }, + { + "path": "attachments/omnient-2-off-attachments/manifest.json", + "sha256": "9ee2b70a1fa1e0972ed269dc1fbb72b3da900e6bb536bac5eab143915926114a" + }, + { + "path": "attachments/omnient-2-on-attachments/0BAAFB69-D6C7-4EFD-8551-7B7CFBC715D4.csv", + "sha256": "3854071bf5b44ee429b328e3457cf0fc97fe48c075dc91c7acb34896d6edf28f" + }, + { + "path": "attachments/omnient-2-on-attachments/ECC14867-42BA-4FCB-A587-B742B4D3E9CA.json", + "sha256": "a2acad5f60dd334fc0395dbcb26a9e3da3dfbd8f47f9222e5e1a1600c1f33138" + }, + { + "path": "attachments/omnient-2-on-attachments/manifest.json", + "sha256": "3a34280667a5d60f5638a3de329ec38e4f6f696266202e5c0bcfcea5a6c93f9d" + }, + { + "path": "attachments/omnient-20-off-attachments/B3F84FD6-E67D-43B2-AE38-DD4B15A83834.json", + "sha256": "35769d1dea2b6a5e0c2c40094b72053b24d56c8f352f1e13ee7d3f887f197e0b" + }, + { + "path": "attachments/omnient-20-off-attachments/DF9816A1-A273-4F32-9BFE-F76A067D2705.csv", + "sha256": "38fcc6f21c03d7a28e5098021157891cade3317cd79d52f116713d24419b815d" + }, + { + "path": "attachments/omnient-20-off-attachments/manifest.json", + "sha256": "43ba2f25050053de09c32268f43607e17e895a0b20e3e16cd71b699f4c834a1b" + }, + { + "path": "attachments/omnient-20-on-attachments/4E94F0DC-5511-41F9-B56E-832C1ACB7679.csv", + "sha256": "ae4a90d592a4efc9f9d6728dbb68fcff8edfc5fc7ccef65559667375a889ed05" + }, + { + "path": "attachments/omnient-20-on-attachments/6FF67838-7864-46BE-BD07-2526DCCAF8C8.json", + "sha256": "4da86fcef3e0c35384a0f17c9930f0ddfa0550199e2787dafe5f1a1b0b540a6c" + }, + { + "path": "attachments/omnient-20-on-attachments/manifest.json", + "sha256": "db597d7e133b8b5eb4f39c960efd2e874890ace7a6ed2775e149223aaae5d7d5" + }, + { + "path": "attachments/omnient-21-off-attachments/C1E8351D-24E0-474E-862D-A75659CD956B.csv", + "sha256": "2e7901b68661e44998be20709b27a71695083b049844290cfa711c10e253fae2" + }, + { + "path": "attachments/omnient-21-off-attachments/F8AEF998-8035-4F0A-A08F-BAFB0AF97F33.json", + "sha256": "8d60d10e81fc7692ffb3e7956d3e9d95c74ace51b26afbb93c88b64ef39b3ae4" + }, + { + "path": "attachments/omnient-21-off-attachments/manifest.json", + "sha256": "43f32826ab34718a5959cf3880a6dce60ff257c3c90ea102bfd62121d2055cd1" + }, + { + "path": "attachments/omnient-21-on-attachments/0F3CA4F4-08E7-4532-A609-CCA54FA8B919.csv", + "sha256": "e99662793246be8339e7fb5fd87df0d8926f031311add9ae0a38cff11ac87239" + }, + { + "path": "attachments/omnient-21-on-attachments/5509DF00-B730-40D6-9056-8D75F73A9824.json", + "sha256": "f70e4cec258b3c1e9cca9b26c3bcac88e99df90d0333cf472de9f3772fe572d5" + }, + { + "path": "attachments/omnient-21-on-attachments/manifest.json", + "sha256": "7fc9750cde4a8375d4a905951e8d3128a7f0b560e8f90ec683826e1d25bac6d3" + }, + { + "path": "attachments/omnient-22-off-attachments/A01FC804-E33F-488F-9585-07DF7B0D0A05.csv", + "sha256": "1db5fd112a754ddf7f747b3438e30145c84d780ccb1eb91f8627716043e3fd47" + }, + { + "path": "attachments/omnient-22-off-attachments/D7DBCC90-665F-43E0-AE17-777D507EA0FE.json", + "sha256": "0e9fe5c623eb88edaa569e72546862aad50639d115e539bf3448fa546e163bda" + }, + { + "path": "attachments/omnient-22-off-attachments/manifest.json", + "sha256": "b084145f6f601441dddfd75f9fd4eeb5c94648feaa291d47d62ebf3560c275e6" + }, + { + "path": "attachments/omnient-22-on-attachments/94D207D8-E6F0-4C53-A317-8BE5C7D86E9B.json", + "sha256": "bf3c2a02b483296dde0c39fd3f76650f1b0a5bfc2132539cf3239c37289e0452" + }, + { + "path": "attachments/omnient-22-on-attachments/F27FDA93-A0D0-4FF4-98C5-7B102B3B536A.csv", + "sha256": "29a4a7913c8518d0a76861017f615ef1b937171f1510940ac5d86a2a149ed4c1" + }, + { + "path": "attachments/omnient-22-on-attachments/manifest.json", + "sha256": "940f7c7ddb2cc26a32f2e249dba934f5b6d110282d48aca25b330f55ceff8fd1" + }, + { + "path": "attachments/omnient-23-off-attachments/4B80296E-9A89-40F8-B86F-C105967564F2.csv", + "sha256": "5ade5225b6f1eff09faf5ef0651731b034a919bf11812fde8be81429ba0027f3" + }, + { + "path": "attachments/omnient-23-off-attachments/EC182F4E-48C6-4103-BE89-096F88722986.json", + "sha256": "02a62803005fe0b810a55d15e53f49a920da5a40eecafc3aa42d1761b903485f" + }, + { + "path": "attachments/omnient-23-off-attachments/manifest.json", + "sha256": "f9e9700ea30cea784d64b9459967a8143b1bd32c4167c2142464e7888d5b8451" + }, + { + "path": "attachments/omnient-23-on-attachments/C1A9034F-F0E4-4947-9974-CA7E17EE5C38.json", + "sha256": "2c8897defcc12e6dbcb79f92c0e75522faf6e0f5816bb03e38730b52ebb1e160" + }, + { + "path": "attachments/omnient-23-on-attachments/CE0BD401-B485-44DA-8040-83D860F90E21.csv", + "sha256": "63f5d94f8694052ac3fa174527569f3079e98f630ce1e5e70e310909eed58914" + }, + { + "path": "attachments/omnient-23-on-attachments/manifest.json", + "sha256": "315434e9f8c10fd4f49307b481983c288d113ca6a5ab9d4f8a8f53a6a16c209d" + }, + { + "path": "attachments/omnient-24-off-attachments/3C4773B3-B36B-4AC8-99AC-98A5F0DE1D03.json", + "sha256": "49acb06c4adf794e1c4a7130575e646deca8e095c714a064729f8b71526a410d" + }, + { + "path": "attachments/omnient-24-off-attachments/6A1533A6-9F4B-493F-9D67-16CC1B507801.csv", + "sha256": "e37bb098fae12e1dd0e81f799ccc48ab1ac1486d89e2fbce2529b06dc15b1d9e" + }, + { + "path": "attachments/omnient-24-off-attachments/manifest.json", + "sha256": "ef039b26620276534e15d2ed168ba33dee8683ad4dd850afce43b4922eca5d7d" + }, + { + "path": "attachments/omnient-24-on-attachments/86B08BE5-53C8-42CE-A9B2-B142653D97AE.csv", + "sha256": "5bc2564323c20641ef8fa64511cc405bab0707cec1a19b0f3c801f9fbe606ae5" + }, + { + "path": "attachments/omnient-24-on-attachments/B23A0A44-0A8F-43EF-9F66-023D075BF46F.json", + "sha256": "18c33834d824c8335b6f405c924dcc547c309244f4bb0ce26b229d80bb6171cb" + }, + { + "path": "attachments/omnient-24-on-attachments/manifest.json", + "sha256": "0597927aa3528d27e45ada88c6da06671487c03252b45ee9899c0bc434526963" + }, + { + "path": "attachments/omnient-25-off-attachments/39C12114-0A08-46A6-B4C0-D696899398FE.json", + "sha256": "d7ca08f81d82da25e04feab7bdde31742e20ffc48696cfbf21bd265c4f4a3d3b" + }, + { + "path": "attachments/omnient-25-off-attachments/55D0345C-D20E-48E9-B94E-B3E1157A49BE.csv", + "sha256": "fc159763d7a37a99271ee7bddbe4702135e6afcb0d4e26df110bd29ec59e6d6b" + }, + { + "path": "attachments/omnient-25-off-attachments/manifest.json", + "sha256": "47c0e825a2714f1dd6c8e2e0453f16306706e457333d18c6d62ef209e5b063ae" + }, + { + "path": "attachments/omnient-25-on-attachments/E149FF30-83F1-4756-90D8-47B376A153DE.csv", + "sha256": "d42250fd5c46eccaaf470acff1a4e7b32113d9b9aceddd69986090c5087cb2b3" + }, + { + "path": "attachments/omnient-25-on-attachments/FE2ABC8B-DC37-4775-91C0-CF994E195023.json", + "sha256": "c71baaae566db4adfa7b5659b77e158c0af420ddef752fb45d991797d4b58022" + }, + { + "path": "attachments/omnient-25-on-attachments/manifest.json", + "sha256": "4a64b66c9836eec5614b7ab005c269d8ca8ac9a7391c6f81ebd836f17a7689f1" + }, + { + "path": "attachments/omnient-26-off-attachments/93FD66ED-7DDD-440E-BFC0-F555F4DE7330.csv", + "sha256": "8525ed8df841b492993b75944099cab8430f5c4100fe61baae3b6bbb0a3f2476" + }, + { + "path": "attachments/omnient-26-off-attachments/BDD31469-C150-4D5F-8757-89E3D27CF3BC.json", + "sha256": "b7313258398738f3eaa39cd30cd6b9108ea36d5fdc8b764fcdd238019156b44a" + }, + { + "path": "attachments/omnient-26-off-attachments/manifest.json", + "sha256": "c70405856307a22047d8178cf172391dcf6cacce1c00a0446e01e6aafe36234d" + }, + { + "path": "attachments/omnient-26-on-attachments/EB2F5177-3338-48E7-AB1B-F7879E3566F6.json", + "sha256": "25cc8e4a201be318995ae5fe752e7cee4430d9c1a38bba6d6d6bb07e5470001d" + }, + { + "path": "attachments/omnient-26-on-attachments/F761AE51-85B0-4CEC-BA3F-3181970B364F.csv", + "sha256": "45c060ea877cec3f1e5c8c573e6325c32074fded39acecd47147cabac41c0e0d" + }, + { + "path": "attachments/omnient-26-on-attachments/manifest.json", + "sha256": "9df38d8ae6b04f96bd33f9be7f15ea36c2ebe241fe058c5bd54677adfaa2fc2d" + }, + { + "path": "attachments/omnient-27-off-attachments/229B26C7-A4B5-4D42-91A8-6D9FFBB095B8.csv", + "sha256": "71275c4558a7526777f1a41af71e44cf7bf0bf6cbcfa95ac994d111c6a0d0e57" + }, + { + "path": "attachments/omnient-27-off-attachments/D675E89B-5D6A-4B6D-B24B-3990A54703E5.json", + "sha256": "cb08bfa082c943edf141b9532e4a88458125af36640ffc2d98f16d43b8b3e585" + }, + { + "path": "attachments/omnient-27-off-attachments/manifest.json", + "sha256": "117d7df85072cd88b134f0cfaafe91f06630be4230430ce302e15e7740b889a5" + }, + { + "path": "attachments/omnient-27-on-attachments/5DF9CE6F-C8DB-4082-B5BB-2F3E7341BE5E.json", + "sha256": "7b9d60b06134cfdfaf196318072b0552537240c8f13c5459afdbd8dd19b951f4" + }, + { + "path": "attachments/omnient-27-on-attachments/A2E933FC-4E63-4249-88B5-684E2894FC3D.csv", + "sha256": "da513014c606f2c7915607f04dbcd476f8516cd136500473115fcfef1341eeb5" + }, + { + "path": "attachments/omnient-27-on-attachments/manifest.json", + "sha256": "057f6caedb9d96be82e93fb954dc97221ecfe0bed16dc2e21614f350ea2f015c" + }, + { + "path": "attachments/omnient-28-off-attachments/1CE38103-65C7-4EAD-A770-455112D2F418.json", + "sha256": "e18a922065db7de90b6feebf374e6478c3d759da89e59d2af65d0a335d7a86cf" + }, + { + "path": "attachments/omnient-28-off-attachments/20662AA6-85D7-4066-B036-598298541EB3.csv", + "sha256": "da9eb15926ea006123043db7f29a8f6dceeec98d2c34cc4a33f49f9efcf4ed5c" + }, + { + "path": "attachments/omnient-28-off-attachments/manifest.json", + "sha256": "23dfad728c08994f132b8f0c778049f4bbc0194e534a530b24b8cccac80df60f" + }, + { + "path": "attachments/omnient-28-on-attachments/2C5CA4B9-4110-42BE-90A0-B8D68EB7BBA1.csv", + "sha256": "ba1194d6e06e185a450583135045f6ddace083a7227e4bde0195526271901c2e" + }, + { + "path": "attachments/omnient-28-on-attachments/E28BD901-67E1-4851-8D69-214E1EF03272.json", + "sha256": "1ec1ed547eb9603233e307e7429ae286ac4ec8e397604aa03a477ec5c9073569" + }, + { + "path": "attachments/omnient-28-on-attachments/manifest.json", + "sha256": "abc8bc9fa911ec7441d79dbcb00c6ea591a5c8b969a892573dd904e48c15cc18" + }, + { + "path": "attachments/omnient-29-off-attachments/48F21419-1E1C-4EB8-A68D-395307DF8D1F.csv", + "sha256": "fa4f03b77682e2f99246524e86049f9f59cdbcc52fdecd541370051211d0191a" + }, + { + "path": "attachments/omnient-29-off-attachments/511D9E78-D4CC-4782-B5DF-6A93E46FA5F0.json", + "sha256": "8d54e6ebab1725ec4d3e80fc81d8afaff53153ff0b2f798b10f5832c40e4d923" + }, + { + "path": "attachments/omnient-29-off-attachments/manifest.json", + "sha256": "7a4458bff2f0e6b4c007a8087428e3037fc8df160e2dcb2555def5895ca4de9f" + }, + { + "path": "attachments/omnient-29-on-attachments/2BCB8C50-CABC-42D2-A261-10F097CC930D.csv", + "sha256": "89e67b8b07235db580afcc52232b055ddf0d89162c82dff308af80a4ec6791f2" + }, + { + "path": "attachments/omnient-29-on-attachments/3DD6C018-12BF-4C69-A27B-23B109576BD0.json", + "sha256": "6390d48b69bc59d5db1ce466dadaf1aa8630e577b0c0175bcee036cdee1dd4ff" + }, + { + "path": "attachments/omnient-29-on-attachments/manifest.json", + "sha256": "f69ef39396cfbcf7ec8b9ba9fb42298da8a991f9d2110b2c4c6020cb8bbcd44c" + }, + { + "path": "attachments/omnient-3-off-attachments/0508BD65-1222-42D4-B9AE-157EEAA76963.json", + "sha256": "e56099b50c06403a2b4bc3e933a551ba4311b95a64e5733bbdcd411fcc006fc8" + }, + { + "path": "attachments/omnient-3-off-attachments/BBD9B3DE-87A6-40E5-B0B9-FD801D5A07D8.csv", + "sha256": "cfddfec2dddab48283082d848bc294d0d632a89948982002e1b407fd787f96a1" + }, + { + "path": "attachments/omnient-3-off-attachments/manifest.json", + "sha256": "12af920041bf0d96933b049ae0beac2c0f3f4568cbeedc715fec63bd0482506b" + }, + { + "path": "attachments/omnient-3-on-attachments/B4C70C61-C71C-451F-A9C0-5ED15D295A0A.csv", + "sha256": "afbb748c60c6a50df4cdb33e34b0b38c3dafb619e8e74ace65d1377c29c0aa90" + }, + { + "path": "attachments/omnient-3-on-attachments/F84574A4-DE04-4CCE-B8D3-84CBEC348A10.json", + "sha256": "e9baa8de8bd1fe436b24ffca9793698b869a5fdef1b40cbfbfdcba2b1593a6a1" + }, + { + "path": "attachments/omnient-3-on-attachments/manifest.json", + "sha256": "fd8f78b1f78e9be7f2f0a61bdda63b69c46255e3ea59e22b6f73e644aed66f3f" + }, + { + "path": "attachments/omnient-30-off-attachments/2C0BBF6C-3A17-484B-90BB-99404FC839DA.json", + "sha256": "3105b5de2632d6bfd4ab906215166884c58b06d3c4cf54e794d5ff87409995e2" + }, + { + "path": "attachments/omnient-30-off-attachments/992BBBE1-7D96-4CDA-8B91-EF30B9AFFC50.csv", + "sha256": "c8ea751835ac3707eff281a4dd65ee19e86fb287178226b01500a7f5b22029dd" + }, + { + "path": "attachments/omnient-30-off-attachments/manifest.json", + "sha256": "247a46ed8bdce3fc915a47c44b8f7dd422de9cbcaa248bb2f7965e94adbb77cf" + }, + { + "path": "attachments/omnient-30-on-attachments/79286352-ECAB-46F9-B796-83CAB4C35C9B.json", + "sha256": "e9a5ba9974238446da062d9a0fd63415b262e8cd4e28a19dbe923689a3fbbd7c" + }, + { + "path": "attachments/omnient-30-on-attachments/934ADB2C-9B0D-4321-80D6-EF9F8896FAC9.csv", + "sha256": "f9c771c54fc2b6e3583185f67c50482d2c9385a661c5b1ee7613290946521707" + }, + { + "path": "attachments/omnient-30-on-attachments/manifest.json", + "sha256": "375b75b048ae2640971f0267a81e0a494fcaf26b9b24f3f1f797ad4c4f873082" + }, + { + "path": "attachments/omnient-31-off-attachments/09D6494D-0C68-43B9-99C2-0A37927B70D2.csv", + "sha256": "35ecb6d2f221ce39682f38d48372c8f77c967326d981d7bc9427d8c5d0166610" + }, + { + "path": "attachments/omnient-31-off-attachments/95664352-8C51-453C-B9B1-5F159535B266.json", + "sha256": "4739cadf6ac6f958a1d9382aba5e4805c8b83d81695771fe4f8b9716e5ed9334" + }, + { + "path": "attachments/omnient-31-off-attachments/manifest.json", + "sha256": "337ae231d463af00373032f06fb832ccf138c5beacea9e2f16ac715502a7db8b" + }, + { + "path": "attachments/omnient-31-on-attachments/56B99695-D568-4194-863C-B921FC067EE4.json", + "sha256": "0be9ba9611797bad2c41a19dfc0c7912dc247524078679765c0527bb12d734d2" + }, + { + "path": "attachments/omnient-31-on-attachments/ACEDC4C2-42DF-4B65-B7AC-4170CF50B960.csv", + "sha256": "10383227f9b44f6b930b20e586cc05d9b0215a8e0f8891651086bc80e6aed18a" + }, + { + "path": "attachments/omnient-31-on-attachments/manifest.json", + "sha256": "6b47fc40ff7f79b91ebbf49a5929cd627054c614c50647a78b9b05f5998ceba7" + }, + { + "path": "attachments/omnient-32-off-attachments/63BCB1F8-CA73-4BBD-872E-9EA1D26B6007.json", + "sha256": "5327653a3710cb8741938a5017534c21c0acb88da575ce846c57912a1a285d19" + }, + { + "path": "attachments/omnient-32-off-attachments/EDE2E04F-47E6-4E2F-B4F2-AF63FA4906F2.csv", + "sha256": "d6567da08cec1b892096bab19a489ebb952d7b1d3ae8ecaa544abd11e744723d" + }, + { + "path": "attachments/omnient-32-off-attachments/manifest.json", + "sha256": "3c7e29f570ef8b62de3a7a3b4e91e84e2c35db84f4a4fc04fbee3a059312a579" + }, + { + "path": "attachments/omnient-32-on-attachments/BF729F82-DCBD-4D40-B79A-36A406E02175.csv", + "sha256": "d928ef1528e83a9b7411a45f5cfcbe8209367bd3e6d8bbbefe4fdac46fbff8e2" + }, + { + "path": "attachments/omnient-32-on-attachments/C1A9A941-2AC5-49B1-A215-4B0A9E88A466.json", + "sha256": "17bd81c1161ad86b1a963f055861c6a8b1a54d1308796344a7d6976d97750420" + }, + { + "path": "attachments/omnient-32-on-attachments/manifest.json", + "sha256": "07ce12f67029ab4f856d214a81bd3f8628b46b4995d3836db8b7324ea27f0887" + }, + { + "path": "attachments/omnient-33-off-attachments/64E96885-2957-4329-8C53-179693412688.csv", + "sha256": "0519e40f9bd5a8adb11b9b0eed003523c9ece5691e04f817ec06b8afb91f3d05" + }, + { + "path": "attachments/omnient-33-off-attachments/ED3BA902-6356-4068-B0AF-C7E618507271.json", + "sha256": "cb2254a5f0937d61b2ad1b6e7b79c8b07442c40afd1961b03b7c563899636861" + }, + { + "path": "attachments/omnient-33-off-attachments/manifest.json", + "sha256": "39ae5d1611727ca8b83475dac2bdcfbfd3769a77184a093d2611e32909759fc7" + }, + { + "path": "attachments/omnient-33-on-attachments/0E238E4A-81C6-49F8-9A23-E6029C7E8F4A.json", + "sha256": "f46a7291431bb99ea7cd95eb0d4dd43a48092cbe71f10825d589283824915688" + }, + { + "path": "attachments/omnient-33-on-attachments/554119FF-4D42-4C7C-9431-149B2ADC849A.csv", + "sha256": "32e267c93a6ae318a921ea942792e260326b384ed01b43c75ac1fd36279e7ff4" + }, + { + "path": "attachments/omnient-33-on-attachments/manifest.json", + "sha256": "a30168c235246e060307fc0f11c5344e03ff9a4b6a0e38bd7730e7f601298b3c" + }, + { + "path": "attachments/omnient-34-off-attachments/08214B8F-F954-49B7-B002-42621069968A.json", + "sha256": "52abcbb1da9e6364c9c9d3211b3292c9998166507e8b467c0bf82848b21a3a60" + }, + { + "path": "attachments/omnient-34-off-attachments/AA4D2CA5-4094-49E5-B272-C5831C36424A.csv", + "sha256": "d8e11ff912f68b835370ee67d1d6904f99ba6a68d328b280df6582d64fe64ab6" + }, + { + "path": "attachments/omnient-34-off-attachments/manifest.json", + "sha256": "b9d7e49eb71dc90fe12c31cc795dba53d4499acac0d925baaa4e5a6bc69f152e" + }, + { + "path": "attachments/omnient-34-on-attachments/696002B5-9114-473F-AA8C-A65E28FE6DE7.csv", + "sha256": "8cb16e87332adc27096b425f72b86f976c18a70aae85d1ab1d33ccb270a2aa1f" + }, + { + "path": "attachments/omnient-34-on-attachments/82DD3EFE-21C6-45DB-890D-DD3C20E2D246.json", + "sha256": "9d968df428b40704c29a5c089c8b847747ac908ded87b69cbb5d41a068dbf76b" + }, + { + "path": "attachments/omnient-34-on-attachments/manifest.json", + "sha256": "24ae68a44268f7023e9e81aa8b4ce1b4047c80c10f7105369c6353f65afe073a" + }, + { + "path": "attachments/omnient-35-off-attachments/03700795-8ADB-489A-9C7B-2E082396977A.json", + "sha256": "b4eabe098e732e8e890f818203d364ef56f6b3f921bb22fabb7540bc5c175acd" + }, + { + "path": "attachments/omnient-35-off-attachments/8898651F-A67A-41D5-8023-D1D3EBCEED5C.csv", + "sha256": "76b917d7751c3412b3f04ef6dbbafe37da228bd39ba7c22dc72d1867005742c6" + }, + { + "path": "attachments/omnient-35-off-attachments/manifest.json", + "sha256": "e263dcc83577f27b3fac2925052b840de37503f4933be2808394545c122d2be2" + }, + { + "path": "attachments/omnient-35-on-attachments/04936024-6DF4-43B3-8FBE-1352A1EC2DE4.csv", + "sha256": "21849eca162dc03d210608acc22cc8ea4e15614cdcc5c152ce6d72c33c9badcc" + }, + { + "path": "attachments/omnient-35-on-attachments/347FFA09-48EF-427A-AA37-3C66966B8831.json", + "sha256": "edd06bffddf7539c06fac52e613e22c4f8dbcc98b50d1d1e1586426ba87e8ec6" + }, + { + "path": "attachments/omnient-35-on-attachments/manifest.json", + "sha256": "b7feacb0258a89d950e1a76f1b14da15a0487d50e1564bc85e1ba2f0508d01a8" + }, + { + "path": "attachments/omnient-36-off-attachments/309E55EF-7FA5-4DBB-AF1B-7E6FED62387F.json", + "sha256": "c82ff4f412a163b23f1a001d785ea5227ce63e0ae891bb82abd160943db0d26a" + }, + { + "path": "attachments/omnient-36-off-attachments/AA5F2963-87F1-464F-94A0-FE9E1C1FA77A.csv", + "sha256": "f688d3836ab02901ecd9ddeed68754dff884e234f8c7f2d7e841d9f3c7719dab" + }, + { + "path": "attachments/omnient-36-off-attachments/manifest.json", + "sha256": "43a0288b4a482f7115f39832e621ccede4c15328b81d77771ddec3aa6ae8f20f" + }, + { + "path": "attachments/omnient-36-on-attachments/7173EDCB-7951-4723-B8B2-EF02C7FCCD1A.csv", + "sha256": "de3b31afb71bbbffd29e0113179c0abd5a82a7260b426ebbbc5ae2e102a50667" + }, + { + "path": "attachments/omnient-36-on-attachments/CF8D4219-5782-42DC-AD21-BB294EF875F6.json", + "sha256": "0073e29e2f313e4eaeae5718e2b0eaf0f60b9cf269bfb4303c09933d394fca0f" + }, + { + "path": "attachments/omnient-36-on-attachments/manifest.json", + "sha256": "899fd2f1fc8e56e6d93753340e12afdba66ef0ef97406ee4c1e7328188e106c5" + }, + { + "path": "attachments/omnient-37-off-attachments/5888ABAC-C27F-4977-8EB4-138254E99C63.json", + "sha256": "1dc9598385c2933ae0e02080a594991f3c55372b924f34e37537c45d1fd8f5ba" + }, + { + "path": "attachments/omnient-37-off-attachments/7520A373-DCD0-4AC0-BC5C-4832D32E8B7E.csv", + "sha256": "7da04bb22c37956f0464c7c0e4504a146c1949a3ff29e420049dbdd92d424d42" + }, + { + "path": "attachments/omnient-37-off-attachments/manifest.json", + "sha256": "e6cb2685aefa49220012bc649c851513f8bd1c16925ac2ae805280413a9ed178" + }, + { + "path": "attachments/omnient-37-on-attachments/0D1EE27D-F518-49EB-8759-70AD552B5600.csv", + "sha256": "834885cc5d1855ad4a03e41fdcfeb2b2bcdf23ef512c378b0d5d079079a16edf" + }, + { + "path": "attachments/omnient-37-on-attachments/B355A41D-4AC3-4BA4-81BC-C0EA5B7BE0F3.json", + "sha256": "83306f76c80d6262454ffcfe99ea9b5f8ff59d2f165360378ad66364f5ad960c" + }, + { + "path": "attachments/omnient-37-on-attachments/manifest.json", + "sha256": "924fdf66e6066a65ef4a7c1339f789aca7b5da31bdff63f5c96da743408ec1ce" + }, + { + "path": "attachments/omnient-38-off-attachments/2C206366-AB8D-4F62-AD55-5F5967C334CE.json", + "sha256": "b781c96f4940a0ba030e60b45f1d7e030055178bc608c627db9873ab8755f0e2" + }, + { + "path": "attachments/omnient-38-off-attachments/E31D78AF-2FBA-483F-8B31-F91FC5248A4A.csv", + "sha256": "dd58e41f3fbd3a6b932c1b88b6b1ff342106ebb02de75ae14b3fc9b27261c6e0" + }, + { + "path": "attachments/omnient-38-off-attachments/manifest.json", + "sha256": "25f4fc05dbb31c015e063594068f4041c09216c3fbb8d6960303a364378952f2" + }, + { + "path": "attachments/omnient-38-on-attachments/042703F8-2815-49C1-8C30-C43F20FE379B.json", + "sha256": "10f965cc6cc8aafbb85181ce19e60b5d2b0654b4a5a6fe6aaee094222a3090b3" + }, + { + "path": "attachments/omnient-38-on-attachments/F983571D-03A0-4878-B0D4-05732C3CDC28.csv", + "sha256": "971d3360f7c5d654d1fb8af809d4b526e5515a75700d99bf3d7988f65dc648e6" + }, + { + "path": "attachments/omnient-38-on-attachments/manifest.json", + "sha256": "7a2d4036eeb9aba5fb008c2d1a34632a2f56f57926fcd60fb3d151ffb19b9703" + }, + { + "path": "attachments/omnient-39-off-attachments/5E934BC8-A5B8-45FE-BCDA-257D59E2058E.csv", + "sha256": "6830c1e6c122f2edc99d8c8c179cb2fbe4d311bf6677b25af93cd374c5667d4f" + }, + { + "path": "attachments/omnient-39-off-attachments/DFF5FBC2-6153-47C3-93BA-DB1CD150236C.json", + "sha256": "79883c903549887451742c812b91d2131300634f26c686339502f2e1bf9a60de" + }, + { + "path": "attachments/omnient-39-off-attachments/manifest.json", + "sha256": "f5eae722d2d40d7309da7f697bea0fc8337ed7440fe9ae1a160684f005877b0b" + }, + { + "path": "attachments/omnient-39-on-attachments/AD4D5F79-6B65-4578-B84A-8327256272EC.csv", + "sha256": "8c68ea256b33bb480d6165ab7445d889055dc178be616a1f866099f66ca47b68" + }, + { + "path": "attachments/omnient-39-on-attachments/DAD33528-5C76-4CC8-80B6-194C01427D2A.json", + "sha256": "5b8cbcaa701b379bd6e9c1b43a8d99b15a6c4896dca2aa162f456603e873c130" + }, + { + "path": "attachments/omnient-39-on-attachments/manifest.json", + "sha256": "480162c783a4dd66ab6a550ff180419a054109c9ca89154c9c3762ba3dfb8dd4" + }, + { + "path": "attachments/omnient-4-off-attachments/548F8987-690E-4B47-80E9-30C7E983413C.csv", + "sha256": "4b35aacebbf751c94be4ff14ed8cf699ead210ebc5365a26753be01b3c72a50b" + }, + { + "path": "attachments/omnient-4-off-attachments/5F4C5FBB-AB78-4386-A1A1-7D583D12B695.json", + "sha256": "feeb5a06d7fb130b0c2c70142a97b4b3bfd6ffc5c65180572f455e3dcb49827d" + }, + { + "path": "attachments/omnient-4-off-attachments/manifest.json", + "sha256": "8fcdbc6f1e1d4337af78716bcd445f32a2cecc6c2e6ebd71ce656c1fa451c8d6" + }, + { + "path": "attachments/omnient-4-on-attachments/95FA50EE-8AA8-496C-AD9D-4B34C7469C31.json", + "sha256": "cbcb6d5984878e0f3279af639aa0ed063075c464fd846903590d8fb8a029f50d" + }, + { + "path": "attachments/omnient-4-on-attachments/E53F5C59-B83A-4451-92C9-4873369EDC00.csv", + "sha256": "77fd0abef340d5115ea219bbcc0091fef22ac63eb128c8b03a5220898c71ef8c" + }, + { + "path": "attachments/omnient-4-on-attachments/manifest.json", + "sha256": "b616d26c8d7f23d8040e00a2f3a2ab3b5921aa0dded0dbec3b0e9b08753f416c" + }, + { + "path": "attachments/omnient-40-off-attachments/68BDBD7E-74C8-481D-9062-B8293F0E1522.json", + "sha256": "93d02a5621683308e8a5005701808c5bcc2bb8dba51070ddd8b45c3060b79e47" + }, + { + "path": "attachments/omnient-40-off-attachments/FBBF3593-8F7B-4DAB-A72E-91C36A81932A.csv", + "sha256": "f95211cc8c37518927fd6bbe7acae4efb09a844e93846e4846628aa4f306becf" + }, + { + "path": "attachments/omnient-40-off-attachments/manifest.json", + "sha256": "4d101b8f172da2aff9a32801eda5386272d2e0b35cd8940907cbf83de09155ae" + }, + { + "path": "attachments/omnient-40-on-attachments/708FBA44-CBF8-4E26-9AB7-ABF649E0FF20.json", + "sha256": "bedddca38b3728117fc7f4821b90fdccf93c04909f232c679b3f7d97c3436a81" + }, + { + "path": "attachments/omnient-40-on-attachments/FFA3732A-E7AE-425A-A109-0C2954B95390.csv", + "sha256": "dacc0b754e3709ac6007edee2479e524d1dd0c0c1a24cecf5948b5ad52e8056e" + }, + { + "path": "attachments/omnient-40-on-attachments/manifest.json", + "sha256": "b78a448c662d6c09a6fd8af3835dd61cc7dd7860e9078edc838ea8762039e796" + }, + { + "path": "attachments/omnient-41-off-attachments/402AD6CB-A7FA-4C39-8B1F-C57567855841.csv", + "sha256": "b50812469a25e0eefba2c2e17f4672b3878a63aeb3a646563def7ae290a029dd" + }, + { + "path": "attachments/omnient-41-off-attachments/C2917C69-FC7E-48E7-BDB8-89D7C0E9BBED.json", + "sha256": "e74b8b3befbbeae602e362672250b09b08f80f469ef8226cb9a13a42bdebeb43" + }, + { + "path": "attachments/omnient-41-off-attachments/manifest.json", + "sha256": "9ebb990a3b9f324c338254315ff9c1cd20998229e4e425fb23f57e5a7e29d039" + }, + { + "path": "attachments/omnient-41-on-attachments/7AE99723-52D8-4F61-BA0B-E92B6A6772E3.csv", + "sha256": "36dc9a52b71e67531d6823eec22d199cce8407231846eb60501dbfc7d1567c36" + }, + { + "path": "attachments/omnient-41-on-attachments/A4D5885B-5639-40DD-A20A-5DCF76320FBB.json", + "sha256": "7be2d0143a8a66485b67b1f13c1b8a3cda11c7a3d7b7acb978f5bb742f7d42bd" + }, + { + "path": "attachments/omnient-41-on-attachments/manifest.json", + "sha256": "a9d1cd69874c152fc175b9018f8740c5f1989b1da5d955810d681cff8ad128f5" + }, + { + "path": "attachments/omnient-42-off-attachments/0F393249-5F99-4C6E-99A6-5B2D1E15A81D.json", + "sha256": "30a3defef4d6e0336701875620d8b035956dd6499a090b3e6d53cd80e73be8cc" + }, + { + "path": "attachments/omnient-42-off-attachments/9EB55B9B-337A-4C68-AB9E-0FEDD3DD696C.csv", + "sha256": "0f831f7a762f18b5065ed6b4a26b5a51c57839cedbcfaed888d5f5a92e735857" + }, + { + "path": "attachments/omnient-42-off-attachments/manifest.json", + "sha256": "011d0b906e2315e516de31c28480f0246c894ef22979c1f14b02fbe27370e58d" + }, + { + "path": "attachments/omnient-42-on-attachments/51F1CFDE-7442-4F8B-9D65-F8EA385307BB.json", + "sha256": "b2398a659da8eff7b41a7dc19671f42477a3ebad5c631c8069a2243609345b3b" + }, + { + "path": "attachments/omnient-42-on-attachments/CAAB67F4-B9B6-4EFE-B4D2-BBF2DC73EED7.csv", + "sha256": "ac9ea3609bcaed3132ce50b791f96df2c9d3d40adcf3c0638153a6a948ca2d09" + }, + { + "path": "attachments/omnient-42-on-attachments/manifest.json", + "sha256": "98ec558cbf39b5a118561914fa018335354847bc3d4cfdc2af6b40a169fffa3f" + }, + { + "path": "attachments/omnient-43-off-attachments/4C6331ED-D225-430A-8F79-7EBB23EFD41B.json", + "sha256": "88b4838cf76bc2dfed715a54b3fe047e398fad86f80818b147422eb9568652ca" + }, + { + "path": "attachments/omnient-43-off-attachments/DD637BD9-04E4-4D60-BC05-14624BC8A19F.csv", + "sha256": "38f2bf41b2691ec0c3deebc5873aa9cdf3c3892905b9d8649a38d804c70c0eeb" + }, + { + "path": "attachments/omnient-43-off-attachments/manifest.json", + "sha256": "d87b38e173eed8bd06cda83b8625c8dcdaa5e53317531c773df2d6761064de01" + }, + { + "path": "attachments/omnient-43-on-attachments/53C43A15-ABC5-4C22-AA20-D1C73191C6B4.csv", + "sha256": "2744ece9c702b69dcfa93f9f076219008aacd3027d816db50ef235d8fa9cc05d" + }, + { + "path": "attachments/omnient-43-on-attachments/B69C5366-C201-4BAA-85A2-24D67BBE8069.json", + "sha256": "6e873530a0e7c01aa9a77f8e346c2ef6e107543a8542b7e4b441194e81fa38d3" + }, + { + "path": "attachments/omnient-43-on-attachments/manifest.json", + "sha256": "850c0d14ce2db32ca4c4523bee5156bc8a188929713f3ee26958893bb9219185" + }, + { + "path": "attachments/omnient-44-off-attachments/C712D8CF-7EBE-4520-8FF5-AD14913DA667.json", + "sha256": "2e0ef844e2c0fbb282ae10eb7032b2885e94439c74f83d56530f4ff1493eb749" + }, + { + "path": "attachments/omnient-44-off-attachments/F7F7E11E-A40E-4DC7-A559-E14665A978C4.csv", + "sha256": "3d5a98370e655ac942163cb4a59f17383af6cf79f84262f672de3ad456cbdcc7" + }, + { + "path": "attachments/omnient-44-off-attachments/manifest.json", + "sha256": "bc731de9627335f814b6975e194d4bb4f3a23b5e378b38faa346e09898b5c30d" + }, + { + "path": "attachments/omnient-44-on-attachments/CCB9CBD4-A190-453D-A923-1148E1F14521.json", + "sha256": "caf61410c4364f96834ffd4331754d7a8ac1fe38d4b82344cc8dcbae66a92c1a" + }, + { + "path": "attachments/omnient-44-on-attachments/E30DAB4A-ED21-4BFC-B1F7-C87B904E3CC2.csv", + "sha256": "c2f3b3d14ca3c620cbdbec925d218646e0d1b915e1b2760fbfae9c1b99e0312c" + }, + { + "path": "attachments/omnient-44-on-attachments/manifest.json", + "sha256": "2fa85a0976c15093858410249b48abfecb6dcd0dd3a07ac428f979b926e5f451" + }, + { + "path": "attachments/omnient-45-off-attachments/0F4E102A-9C6D-472F-8633-44A9FC12FFB7.csv", + "sha256": "32ed2b196cb5834a614653a5d66017fa9aaaf67cfe46893b1eac1195215025eb" + }, + { + "path": "attachments/omnient-45-off-attachments/12496F94-11E6-456D-A76B-8D9CFEBF441A.json", + "sha256": "04a74d9757acbff9bfe5d0ec739b29ba8882680e93db0da8c4d0269f37add2f1" + }, + { + "path": "attachments/omnient-45-off-attachments/manifest.json", + "sha256": "136a2b9ab4da501dbaf88b1b2ec2540d48f2741e43b3246cc203ac14e5b9f123" + }, + { + "path": "attachments/omnient-45-on-attachments/2AAD49D0-310F-4E00-974A-1A42236C660C.csv", + "sha256": "a6f4127cceeaf98b844e2a537ddcf07dba917e45fb2bd192e8bb0bf4e4737155" + }, + { + "path": "attachments/omnient-45-on-attachments/C42779CF-0DF2-4452-AD1B-349809714CF5.json", + "sha256": "81884beb6ed657b567b60ee03fa9df1e4599cd64d89bfa8ea106f9ca1781d7e2" + }, + { + "path": "attachments/omnient-45-on-attachments/manifest.json", + "sha256": "49ef02847d370f3055bce87e3ed3f668eb442aeb0489e7ab9a1ff1ea7155049e" + }, + { + "path": "attachments/omnient-46-off-attachments/0C7FB59F-139D-4D23-8AF1-ECBB53B27326.csv", + "sha256": "a9465fdfbd775dbb0d49255deabdae11100d306697931344dc4dd11326930415" + }, + { + "path": "attachments/omnient-46-off-attachments/F14D9D47-09B3-4216-8887-4E20807E3AD1.json", + "sha256": "54e70040310d7b2b4e6bc4f33309c686fa1e931109b347a3248df658ae915015" + }, + { + "path": "attachments/omnient-46-off-attachments/manifest.json", + "sha256": "99d10df0341a3551c83adf1adc191555ba8ad055d8517518d0164312b0d8e341" + }, + { + "path": "attachments/omnient-46-on-attachments/0BA866AB-F8BD-4ED1-A8E9-A751B666D70E.csv", + "sha256": "6edcf48648692fa74402ac5d29cfdaa8cfa68d54632f70bcefe73d0d2041da26" + }, + { + "path": "attachments/omnient-46-on-attachments/9FF4002D-AA45-46CB-AF7E-E980DC336ABA.json", + "sha256": "438d7a800d4a9712160d39dcb67987e2b9518181c7b2aa8b6da6813fbd018a1b" + }, + { + "path": "attachments/omnient-46-on-attachments/manifest.json", + "sha256": "6d0e679645ed5555215573b7e2a38ddf2b0fbd2e0dfe9970759815e381ddf123" + }, + { + "path": "attachments/omnient-47-off-attachments/11ECBCCB-4B25-4D3E-8EA8-06D37E9E1331.json", + "sha256": "f8646bdc97131bb30b21ce8d11b55597c204da43f20a84ff61326839ff0cb883" + }, + { + "path": "attachments/omnient-47-off-attachments/63AF8539-060B-43E2-9C9A-494F95C8E17E.csv", + "sha256": "bd38c3d7cffb3f9f99af6e9cb9a209183377719ef4ed2ede8a28ef7fcb4f969f" + }, + { + "path": "attachments/omnient-47-off-attachments/manifest.json", + "sha256": "67c733ec52e94d6a7329998ffbd44b9920c2ba483505243f9e1f8f0fddfa0b61" + }, + { + "path": "attachments/omnient-47-on-attachments/309F8770-1B6F-43F2-B2A4-474A32E91075.json", + "sha256": "26934e32d12d20dac7e1153f48e6316d82e33d5fb30b3927e2177b1ef9d535f4" + }, + { + "path": "attachments/omnient-47-on-attachments/84D1EC19-52EE-4E63-A72C-CEB077FF8172.csv", + "sha256": "69b31143a7791afbaf63ebf536dc94fb9c7d855058d63a1cd3dd956d1358d93c" + }, + { + "path": "attachments/omnient-47-on-attachments/manifest.json", + "sha256": "33f84f3a655559464618adaecd739a826281d195d621cdbc84eb62914fb2ebc6" + }, + { + "path": "attachments/omnient-48-off-attachments/36894AD2-B1A1-4B89-9DCC-E8EE667668AE.csv", + "sha256": "92ff9033e9bffa40bc4d51269a0b9932ed57ea37a95272b503203437e8cf3172" + }, + { + "path": "attachments/omnient-48-off-attachments/B1839AE9-9573-488B-A429-7FDE12A326C6.json", + "sha256": "412ebb9f2458b0e6f292228536453d32052912dc8d686235ab7e8f451aeb23f6" + }, + { + "path": "attachments/omnient-48-off-attachments/manifest.json", + "sha256": "13b7c544ffe3b05f80ebaf51ae9f457e5fe3bca862ea89f6aa91d8fc7ec30185" + }, + { + "path": "attachments/omnient-48-on-attachments/0A9ABCCE-2E5F-4C33-9921-5366399B02F8.json", + "sha256": "f54003bd33de1737e9c30424193acb37e37d841ef60208fc213bc3522ef7b76c" + }, + { + "path": "attachments/omnient-48-on-attachments/F6D294D8-29DA-4112-A509-CDBF9C3E6308.csv", + "sha256": "7ea33a5bbae3d14fcdb33efd641ec7675fdcff472e7125b8cacdb74358d5abfb" + }, + { + "path": "attachments/omnient-48-on-attachments/manifest.json", + "sha256": "9c6a742847ceb6d1d951cdc476f6f6d9d220ed59d4c9624e7984f64bc42a847f" + }, + { + "path": "attachments/omnient-49-off-attachments/754D4BDE-6A90-4160-8BE7-572A5FF86FA7.json", + "sha256": "7456d83e90baa235be60122842d12ff0e9622953a9904ad0b1d0077050879934" + }, + { + "path": "attachments/omnient-49-off-attachments/86D3BA03-CF04-4D24-9F3B-85766BFB9174.csv", + "sha256": "8964020cbf75f3d82a0c103274e293d86ddcf11a2253657836b17020ab296c57" + }, + { + "path": "attachments/omnient-49-off-attachments/manifest.json", + "sha256": "9d49c3740f8a6125d4a986b0fdf542cd6aea741688d4f802135e60d71ed8d851" + }, + { + "path": "attachments/omnient-49-on-attachments/2F008BE0-37EB-4DDC-941E-A7B2DBD47618.json", + "sha256": "251ae0c10f75ca4fec96bec0920f8f485dbdacabf5b967eb82b34276ae3c3640" + }, + { + "path": "attachments/omnient-49-on-attachments/E0C97026-11C7-440D-9C21-4B19C3D250A6.csv", + "sha256": "369c8724e95cefcf5f2757d9f8df288d0ee7c55fa5896f1a0d2af63c98f40eb6" + }, + { + "path": "attachments/omnient-49-on-attachments/manifest.json", + "sha256": "3b67aaf547889ce06a707e28aaa8613164d3a724523bd8a0bf5fb46fc229be63" + }, + { + "path": "attachments/omnient-5-off-attachments/1764D317-D3A8-4064-9030-9A2A083FD84E.csv", + "sha256": "fa4d021dde3511df1cfaa9d76df7f374e6970bfcefe42e7d7ccf5f497eb8d5b7" + }, + { + "path": "attachments/omnient-5-off-attachments/4A1C15B8-E363-438A-8179-D8A04FF2B299.json", + "sha256": "381cebedce10b573cbfa0273e70ff3a15ddd75ff77a8830613381d163afcba3e" + }, + { + "path": "attachments/omnient-5-off-attachments/manifest.json", + "sha256": "5a00239b0747a7853dc57c9ac68d0caee0c89e3a60edd4388a0756e4d0e9c4f4" + }, + { + "path": "attachments/omnient-5-on-attachments/01C823EA-D5C1-40EC-BDF0-4AAF383B81AD.csv", + "sha256": "7d432e7d553989898c136eb33f2a73e77730b56bb774e0ee391015bdf681de09" + }, + { + "path": "attachments/omnient-5-on-attachments/30E7FA58-8F91-40C2-BD65-F0749DE1842B.json", + "sha256": "6fd2b98240099b6ab83832ba9174a25ce336da187a5268dc1e3eba493d214d62" + }, + { + "path": "attachments/omnient-5-on-attachments/manifest.json", + "sha256": "50ef549ac515754323256f25a6ab82047820c7a6780a1c4c815b99f27b8465d8" + }, + { + "path": "attachments/omnient-50-off-attachments/8F073A6F-202D-47BA-B8DE-E20F2FB26FCC.csv", + "sha256": "6afa7fd187d260628c60ae2c85647acf71a560b9c7299d4e77d748d3dd64534c" + }, + { + "path": "attachments/omnient-50-off-attachments/E1C46BCF-3855-4E08-A932-198EC4DC95BB.json", + "sha256": "d504475070b3c24aa2e64800c17e4840f9b871ccb95729a126703b2de392fffe" + }, + { + "path": "attachments/omnient-50-off-attachments/manifest.json", + "sha256": "3501c89d7e03f129cb7cf294d257d86a1b1d4f5eaf6e95197ef9f4c417d03d70" + }, + { + "path": "attachments/omnient-50-on-attachments/395C97BD-9B32-437D-9A91-F824BA97D952.csv", + "sha256": "fc3616bd4a4d51cf677dfe2c26974b4d65f729f9a962139fb8238afcde90a7ba" + }, + { + "path": "attachments/omnient-50-on-attachments/AE2CA739-66C2-4A10-B8A3-259BB731047E.json", + "sha256": "d1f80358bc64195525edefffc51160ed6e4e288abdd5da2cc7f1953893a61401" + }, + { + "path": "attachments/omnient-50-on-attachments/manifest.json", + "sha256": "eeedd9c4a362d45b5d0142fe45f711e83abebf733e15742b375006692e03f654" + }, + { + "path": "attachments/omnient-6-off-attachments/694B6328-CFD5-4436-A0D0-396C80C6184F.csv", + "sha256": "627220a0a829c9d78e4f4f78c6bcb8f295dec8d2c90ecc66d2af3cf10f4cdbe6" + }, + { + "path": "attachments/omnient-6-off-attachments/C12DE915-9314-4BBE-9DC7-E3CEDA942D4D.json", + "sha256": "9f3916ae6d1c5010250994596a9dcd52670da10dbc81946cb4f60810234692e5" + }, + { + "path": "attachments/omnient-6-off-attachments/manifest.json", + "sha256": "c371541af035c4aa391554226ed1084a90a70792528fc50a442f6805b6ef6761" + }, + { + "path": "attachments/omnient-6-on-attachments/292E2B3E-6142-4DDD-9554-F3E367DC64CA.json", + "sha256": "7363e54605d8f2080aebf52f422df8c4ee781bd56739776f9d8ab5ece1d0239e" + }, + { + "path": "attachments/omnient-6-on-attachments/D9228DF9-B343-4A9D-AD02-22C004D3C5ED.csv", + "sha256": "43489f34ff1952a5dff9374528763141b3ffa21ba316dd2095db0519034a046b" + }, + { + "path": "attachments/omnient-6-on-attachments/manifest.json", + "sha256": "477d19b0114b550b95536ae9c9f3f829e2f1772eca92f0aa1cd8530ddf1e4343" + }, + { + "path": "attachments/omnient-7-off-attachments/BB25B3FC-4521-4DE9-9C2D-960721E35D97.json", + "sha256": "e9e37847861dc67ec46df5c923d4fcaee75f7c68e07feb88aeda5589469afe4c" + }, + { + "path": "attachments/omnient-7-off-attachments/EE2C2164-72AC-4C09-9882-6BD327059B1F.csv", + "sha256": "a23a918294dc88bbf11628942cde2d993212cd95a9926d17fbeeca2676d9e2cc" + }, + { + "path": "attachments/omnient-7-off-attachments/manifest.json", + "sha256": "67e46c310601a8f980b45017fec87cd8660a92da7803716a567d4e0fdff5aa65" + }, + { + "path": "attachments/omnient-7-on-attachments/921020D8-B919-49A8-909D-D944BCB4D3BD.json", + "sha256": "f79feab51c3268732af4a1145fe1fbb18252f1f1157cd6c446166ca6568045e0" + }, + { + "path": "attachments/omnient-7-on-attachments/E15F4025-CC4B-45FE-B434-D38B4BB8BD43.csv", + "sha256": "ef4fe84e1cfd1d47035f1d30393a5c0000295b39e4d0987428b796bf6f8c5989" + }, + { + "path": "attachments/omnient-7-on-attachments/manifest.json", + "sha256": "22597b50497b4837251fd61a99d8ad44ad2180e4dd7425d58d9f5297f75f96d5" + }, + { + "path": "attachments/omnient-8-off-attachments/267BD8C9-0D6C-4168-9386-4A249FFD8F53.csv", + "sha256": "328a727fcc909e95c9e68180edab2c15e568d9471bab11c894bbbecad5474aec" + }, + { + "path": "attachments/omnient-8-off-attachments/89089348-3677-4C04-8B57-A22FC808265E.json", + "sha256": "4acd533d48508d5111af489594f17f4c0d5e6183d15d9e8b77cfa74a563cf6d9" + }, + { + "path": "attachments/omnient-8-off-attachments/manifest.json", + "sha256": "337e821d6f5e62dfcb9d41ea40ea6d4e035e49a3fd331d0ea29c09988ecd79fc" + }, + { + "path": "attachments/omnient-8-on-attachments/302E78FD-A5B3-427D-8C8C-F636391D4F13.csv", + "sha256": "14d2c57d8e6f561b6bffd8ff5f382fe96cadc2ad41973df762fc147972167128" + }, + { + "path": "attachments/omnient-8-on-attachments/DC3ED0C2-6B9A-4A30-B282-378D05C6DCD0.json", + "sha256": "5877069410b1c0bbaa6560056e3ba11738ba8310195ac94cab08c198e40c5833" + }, + { + "path": "attachments/omnient-8-on-attachments/manifest.json", + "sha256": "248946519868d29c7770548d823eb9b9c513b8a4e94d608d2f26383503a9b3dd" + }, + { + "path": "attachments/omnient-9-off-attachments/6C157FAB-D51D-4FF5-87FC-6F1B723586F5.csv", + "sha256": "a7cf2fb857782530ceb4dc14d95203195cef8baeeea13de94c2569421e5be3e1" + }, + { + "path": "attachments/omnient-9-off-attachments/76063F8D-2F46-46E5-A1A1-54ABBF2753BD.json", + "sha256": "178bd3a7402e39ae4f24a02f8d2cbaa43ef687c9f7f086b381089eb88cb27a00" + }, + { + "path": "attachments/omnient-9-off-attachments/manifest.json", + "sha256": "25db4db1d43b61c85b46c727e1088aa4ec26a442f7b3052731d6efd05b46c545" + }, + { + "path": "attachments/omnient-9-on-attachments/2CE301AD-CDDA-42BD-80E7-36DDF74D5DB2.csv", + "sha256": "bc4cff60143aa687df5bc4455ec5e85bd8bb7adb094e46c9ea1f1999f2b3fd54" + }, + { + "path": "attachments/omnient-9-on-attachments/C3E81F31-C764-4CA8-B4ED-51FE1F82EAED.json", + "sha256": "7781f374b4e92fb0c58b3f6a30561c034718b4a9db4c638f4842560a11d6f1d2" + }, + { + "path": "attachments/omnient-9-on-attachments/manifest.json", + "sha256": "4609f0ef070110f08bd4a659876d1f89a6769d0853d26bb7e9e580cabc18e896" + }, + { + "path": "logs/omnient-1-off.log", + "sha256": "39420eefb9310c446e07e3963be8c308cddb9ee6b699ea70abdb8a85d4fceb5a" + }, + { + "path": "logs/omnient-1-on.log", + "sha256": "16f3aa20d315c58a28c629c68ff79d8f4d520568999b5e976c01056b4ae69f70" + }, + { + "path": "logs/omnient-10-off.log", + "sha256": "35524821eb1cb46ceb10ea13e8a6138028bb1865c97cf32e04fb046140776ef9" + }, + { + "path": "logs/omnient-10-on.log", + "sha256": "140c765b1121b6b3499b3d8c716319ac24c10fa6d18635c6378a03867b9bbf89" + }, + { + "path": "logs/omnient-11-off.log", + "sha256": "dcf6c369762d4fb7aaaf1f3d6457778b96e2a2023d34d0eb4b07fb884b10db67" + }, + { + "path": "logs/omnient-11-on.log", + "sha256": "d74fd37b50838ca6d11ce2eff18ed280d829609ca7c171152e98ae51fb80dfe4" + }, + { + "path": "logs/omnient-12-off.log", + "sha256": "96c0b54d4b49e0741862d45e5ee6763165775e51c8958deb472a00fffadd1076" + }, + { + "path": "logs/omnient-12-on.log", + "sha256": "d9d2f48b40a8470965d437bd5bd4f1a860ca4d386b332653d1cb54b11bd3686d" + }, + { + "path": "logs/omnient-13-off.log", + "sha256": "0b6e091f369b8119be0b712e2f7f473acf986745f4c447da2e0524be837fcc61" + }, + { + "path": "logs/omnient-13-on.log", + "sha256": "ab3bdaa594ff4888d0ca879115296c7345c7fc7e3b69c04b1b0b34789a5e61aa" + }, + { + "path": "logs/omnient-14-off.log", + "sha256": "2b32d2d542205f6c868bcebf225044311ae6b9a90f38907e964fe0890a4563bc" + }, + { + "path": "logs/omnient-14-on.log", + "sha256": "66cda02d831fc9e6ecb90e00dfabb8a2335adc36f3cd879d039fadfd366b86d6" + }, + { + "path": "logs/omnient-15-off.log", + "sha256": "9a1c5dd3a257fd550b0b12d4d367760ea23577dc9997bc25026fc4e1bb789451" + }, + { + "path": "logs/omnient-15-on.log", + "sha256": "2fdf600b93ef2f99534e93942039099d7340276acc77cebe0ecce6c69dd7aa8e" + }, + { + "path": "logs/omnient-16-off.log", + "sha256": "d68026d9bc0eb081feb9438b1ac0993337b6c9f4e678b1a45050c8d70b2a9bf8" + }, + { + "path": "logs/omnient-16-on.log", + "sha256": "36c1ab052ac6bdead62dcdf8260ef011e9932704ace15e420a95cbd13d780992" + }, + { + "path": "logs/omnient-17-off.log", + "sha256": "159d589bc568546ab24dbff7359dd8bacc611d490652b16546269cd3ee3310d5" + }, + { + "path": "logs/omnient-17-on.log", + "sha256": "dbb1e0db45ad05e974903068628535b52337ccb671f67225ae74c78ba922001c" + }, + { + "path": "logs/omnient-18-off.log", + "sha256": "5dfb7493869d8a0935b95e2c81d35b3bd32a593feab585795b7dc6a82bf55ab0" + }, + { + "path": "logs/omnient-18-on.log", + "sha256": "84656c4df0dc5a29ea0bada7290e2c9a507e7efde2aace3fe4da73f3ca5ac301" + }, + { + "path": "logs/omnient-19-off.log", + "sha256": "bdb5b96f66f5860186577be8145d1a5e9dee2f2ca8a6c6fd0bf0768731ea3f5a" + }, + { + "path": "logs/omnient-19-on.log", + "sha256": "829906e34e1879ff6d6e06df69c376e6fa8fc82a50ff43f607d7ee6cf3f5b53f" + }, + { + "path": "logs/omnient-2-off.log", + "sha256": "db7e48e6cee8a3fe69bff6ace861e1dbbede428851ac608723ecfd8d21ed871d" + }, + { + "path": "logs/omnient-2-on.log", + "sha256": "d8dd957bff498ad166ada25a39e4b4ccfbdeff915752b3db86cf0eeebdb22f5f" + }, + { + "path": "logs/omnient-20-off.log", + "sha256": "f81d34c4adfa2cd416b1c7754111eec03b51fdc32df06a0754ec5d13f07d2120" + }, + { + "path": "logs/omnient-20-on.log", + "sha256": "d9d4c96261c3faa890e440253808b58a25c3aa5de7095c0af66df99baca9bf1d" + }, + { + "path": "logs/omnient-21-off.log", + "sha256": "17a6d2c97870d75906116c9c47d3d89bb62d1d903e332325faccd43a038576de" + }, + { + "path": "logs/omnient-21-on.log", + "sha256": "f2ebde0fbe36aa5d45c9a1caa020e25d3fb90dc29b12eea3176e2a6d04c66b9d" + }, + { + "path": "logs/omnient-22-off.log", + "sha256": "007cf50cb12c8b86acc2458beecb2289090f45fb16ee43f42fc2c80e5291222f" + }, + { + "path": "logs/omnient-22-on.log", + "sha256": "19c2df129ab9594f30127bdfb5b0aa2d7477078b0216872fedb4a19b9b73a827" + }, + { + "path": "logs/omnient-23-off.log", + "sha256": "4b5363923eeb25bc7f04f73e7b4f76eb68530896593d836784f7d9a81776463f" + }, + { + "path": "logs/omnient-23-on.log", + "sha256": "93f1963daa5dc21f5531168a5ffc20eead71ffa49199212f666ba4a489673ae2" + }, + { + "path": "logs/omnient-24-off.log", + "sha256": "e5360c2d899271a8bb066853cdb938becf655c3df2a383244be90f25a902ae46" + }, + { + "path": "logs/omnient-24-on.log", + "sha256": "90c78768d405ae020f192037711b8c6fd34e2b979520c28721d6dc0e0b38ed13" + }, + { + "path": "logs/omnient-25-off.log", + "sha256": "62ae95d1d22e663beab740c1a5b4ef33dee234730502a66743210f79a621f430" + }, + { + "path": "logs/omnient-25-on.log", + "sha256": "06dd4b758662e961a57655b2ad0d60be46ef6a48de610521e7f3e1fb0b47b3bc" + }, + { + "path": "logs/omnient-26-off.log", + "sha256": "d2f0e37ea155d0cfeba43c2b6e02df4b47972092c2724290624dd33f2ebc7f05" + }, + { + "path": "logs/omnient-26-on.log", + "sha256": "3fe5d948d7667b99675b3f54fa558a0f80c79192b1cd407c9a5fe9737dc71730" + }, + { + "path": "logs/omnient-27-off.log", + "sha256": "db10b51535a7e11fd39fcce6eaa33327bab9a1a0bb28196a028c1a9f838059a2" + }, + { + "path": "logs/omnient-27-on.log", + "sha256": "5df86864b8be969486c6904a44b42ec64ee064e108e102e7471cbb0f0ca5a7f4" + }, + { + "path": "logs/omnient-28-off.log", + "sha256": "57b9936e9fb07e3cbdeb24b8a6af6a44f72870842c95295a83a6108ee888ed2f" + }, + { + "path": "logs/omnient-28-on.log", + "sha256": "5685cb24b29d9cbe7ce126db8a75a43ccf988f8d3fbdab9690c426653e3c27a3" + }, + { + "path": "logs/omnient-29-off.log", + "sha256": "fad1c9997db1ad0dc8fc5edbca28847ec2de6129cd09c3a85e6cbff7219676ee" + }, + { + "path": "logs/omnient-29-on.log", + "sha256": "9a928c24c553ac9de535a0d2220455de0d61d19cb657c7c5776664a9312bb63e" + }, + { + "path": "logs/omnient-3-off.log", + "sha256": "b5c05f9d80c0d9c90991ddbacd317c76b188ecf8498a7bba19089cd96a6e36fe" + }, + { + "path": "logs/omnient-3-on.log", + "sha256": "41897bebc5d22b3005f6f1c583668fd25db1696473fd23122c12fb1abd53450d" + }, + { + "path": "logs/omnient-30-off.log", + "sha256": "8e379582ea6af1e9642b241781142380744711f6d4089a39f28f9e3922e0db2a" + }, + { + "path": "logs/omnient-30-on.log", + "sha256": "8b9177513555f590c0b7d53a03f97afab497498a9d3279a0ff26f1a0cc0cfc45" + }, + { + "path": "logs/omnient-31-off.log", + "sha256": "8a72a6ddde263c205a32e6e2f547bbb5bbc78142c16b36d10f24fcb05e613bd0" + }, + { + "path": "logs/omnient-31-on.log", + "sha256": "dda0713936a0c991b6bc0b7756f9e7eeb5ffe79e74871b05d7f3575034752583" + }, + { + "path": "logs/omnient-32-off.log", + "sha256": "48d8d7fae360f25945a84cd67f3f64f46eeac233345df3aa7f97d27afdc67f83" + }, + { + "path": "logs/omnient-32-on.log", + "sha256": "c08abafc4a06bda51262a750db41d0969a5f3f91eb98c05d76961c6dd8b1893b" + }, + { + "path": "logs/omnient-33-off.log", + "sha256": "7494d98eed236dac6d51f4726ae4905939c070872727bd120251559025554ab5" + }, + { + "path": "logs/omnient-33-on.log", + "sha256": "b3f4733d82b9e2e5b3f6e5dc6a98d8896001c1b03598bf26b1e1bd99762f8f11" + }, + { + "path": "logs/omnient-34-off.log", + "sha256": "e1c59d6f9af33beba2cc8697571b5ba619871af5e8b79acad4dfc8409cac6567" + }, + { + "path": "logs/omnient-34-on.log", + "sha256": "2226a5d27420d2329bbecf729ece86889f642a9b05087387444bbcb1ed5dd354" + }, + { + "path": "logs/omnient-35-off.log", + "sha256": "5f752c45848f880572c4039a0409a2ecc818cc7e34cb81d5f18e4ae20578ce76" + }, + { + "path": "logs/omnient-35-on.log", + "sha256": "42adf67b7e5e891738b72c8ddb2eb6f411c25d69abfd8e814670d211222a2949" + }, + { + "path": "logs/omnient-36-off.log", + "sha256": "f93cc7f936844b667cc0af05776ff3f5d972a6a46d8b9f9a5d62ed295ba00a7a" + }, + { + "path": "logs/omnient-36-on.log", + "sha256": "1133103bfcef9b772a4b6330194154393b74e6511166db778ce153d48a6cde77" + }, + { + "path": "logs/omnient-37-off.log", + "sha256": "f2fdb5b5839bcd1627d891a30aebd40fe6732f8d34af76c6742ced7958760532" + }, + { + "path": "logs/omnient-37-on.log", + "sha256": "98a21b76bc0f31143e6d9a2ca1aecb1da17578683a2159741c614584556536c2" + }, + { + "path": "logs/omnient-38-off.log", + "sha256": "c7cad7c86a43162c640ef51b265e7e30a7d51f2d3ebb9ee68477c913e61eb912" + }, + { + "path": "logs/omnient-38-on.log", + "sha256": "09288a68710714a7d4d083a5acfb5f0169cc706fff5f70202d6d1c628136606f" + }, + { + "path": "logs/omnient-39-off.log", + "sha256": "0a9de399624f41e3cffe23efe704773134a2ec31e31ebf7b9fa0e2caf22d12d7" + }, + { + "path": "logs/omnient-39-on.log", + "sha256": "ddec39d79475dec2d12e0293cfc9438e5494c8e8d7fb52e890d91f9661901f5c" + }, + { + "path": "logs/omnient-4-off.log", + "sha256": "de736253a3a56e8d47d68dba031c290beca8b53150c5cf39f31217d663ae66ab" + }, + { + "path": "logs/omnient-4-on.log", + "sha256": "fd09c87321bf084af65b72580b57e196e2a9cbf46671a69c38e5376112dddda7" + }, + { + "path": "logs/omnient-40-off.log", + "sha256": "b82ed493f65b8cad2ddc7136c45c418c5aa085fdd5c8463083422b21b3187557" + }, + { + "path": "logs/omnient-40-on.log", + "sha256": "5ed44c07e74ade68c6a2affd23049429d227a26f467c1702ee340f97e2188af1" + }, + { + "path": "logs/omnient-41-off.log", + "sha256": "911cde451ac6fab41f7b8c3ad0646fa60307f45ba7c07ede8630574baf63c80d" + }, + { + "path": "logs/omnient-41-on.log", + "sha256": "959d8be995036ff6a36e90ba750db3f5737e76a857d0f23cb2cfdb7b736ea92b" + }, + { + "path": "logs/omnient-42-off.log", + "sha256": "b528134781e760778ec50fd429c73b9c00601c515a615feee3206c8b95147693" + }, + { + "path": "logs/omnient-42-on.log", + "sha256": "9662a9e148f53eb5dc378d5d529083110ce154b743bf2cfa75bc494303cd6f3f" + }, + { + "path": "logs/omnient-43-off.log", + "sha256": "d0e07481a2572c00de84339bb124b2af71ce55badb572a4a835829e51b66c489" + }, + { + "path": "logs/omnient-43-on.log", + "sha256": "217dae83f1e41aeabded42ee894a8a36cba9ef6e8cccc8a5eeb7ed05bf1dab79" + }, + { + "path": "logs/omnient-44-off.log", + "sha256": "3da56afba71126f57b161f44bd059b4d6f3521326a4794f7375ada973ba3605a" + }, + { + "path": "logs/omnient-44-on.log", + "sha256": "4fbb6c6cc9f208ea52f1e8acbf2ce60762db5dc0153d22c1eedbe921c8cf5c81" + }, + { + "path": "logs/omnient-45-off.log", + "sha256": "f1e78c73254f3703e9d1b692b06dcc9693b43c693c6911a0347a335423499fb0" + }, + { + "path": "logs/omnient-45-on.log", + "sha256": "9134a9493e6377fe515b0becd80b07076eb8b9bdb18780a3a819b4cf1e401345" + }, + { + "path": "logs/omnient-46-off.log", + "sha256": "864ff65e968de7f6fddfe8aca6ef2edfc0d047b006ce59806b541e74aa9480c0" + }, + { + "path": "logs/omnient-46-on.log", + "sha256": "f9e47ad5a307e0d48a45a7b44068f652ef254f1bce4416da262be99cb3c8cd6f" + }, + { + "path": "logs/omnient-47-off.log", + "sha256": "2709569356dba5b8e3a8a573e2ebe4873c12dda6919d65f3eb6646942b939cd9" + }, + { + "path": "logs/omnient-47-on.log", + "sha256": "fd145ac588b01fa3e3378f408a48de8dcc13051e4d5058b41dce790bbfb38ac1" + }, + { + "path": "logs/omnient-48-off.log", + "sha256": "5bdcfab70425db7ad04e4d765ea0120bd56f6ce329faff0724d40dc896984649" + }, + { + "path": "logs/omnient-48-on.log", + "sha256": "bd8da9c529f38abf307eabaa6d93847c8fc2325d4f656885716c5cb50a3d21d2" + }, + { + "path": "logs/omnient-49-off.log", + "sha256": "a651278a520aa568d9ac0ce8430a086c6a4d03894f72251477291237c7b7a741" + }, + { + "path": "logs/omnient-49-on.log", + "sha256": "37ab2156b26240fc4dea436a7ff192d6c4488d7847e868b313bd769cd270e7f5" + }, + { + "path": "logs/omnient-5-off.log", + "sha256": "9be56381cbe20d56cb0a970a9e3436c1f7647b4cc89098599653260012eedef1" + }, + { + "path": "logs/omnient-5-on.log", + "sha256": "890bba8961a50ac2a1f38d127e35f3fff4fd28b0963bfc12a988d9305af54b24" + }, + { + "path": "logs/omnient-50-off.log", + "sha256": "22345bc2c28da834f0cde50e73821e6038632569c3f9ff9d0ca330b62a2c46c3" + }, + { + "path": "logs/omnient-50-on.log", + "sha256": "c524592bf777113841a0740b7ea8b2bfc9c313becc74feead2492d8826b55368" + }, + { + "path": "logs/omnient-6-off.log", + "sha256": "62b32481bdd2166901fc52c53d344c299cc9b5a59e921b605aaff7cf7aff2a18" + }, + { + "path": "logs/omnient-6-on.log", + "sha256": "f1554a7643e7541c17001c8e9996d064aa0e3b5999ee4ba8fd5383748ec31c79" + }, + { + "path": "logs/omnient-7-off.log", + "sha256": "b779346ab5e05031faabece1dddd533494e9aaebbc817cabeea42f69ee5d7190" + }, + { + "path": "logs/omnient-7-on.log", + "sha256": "fe22e0307a133470593107339c814ef92e248083de997e65ab35a8ea5159dcbd" + }, + { + "path": "logs/omnient-8-off.log", + "sha256": "6ea99bdb986bee1d9eb3253ff67c524a0018ce931754fccf41c4cd1cfdd77170" + }, + { + "path": "logs/omnient-8-on.log", + "sha256": "c094a0a14bb6423aca6987b204d68835c0fbb58402ff24b04fa5b8f50223d043" + }, + { + "path": "logs/omnient-9-off.log", + "sha256": "421b3b6c11ca7743126e86b44e5f49d61ab210c98f354d85cb1ad90752d5483b" + }, + { + "path": "logs/omnient-9-on.log", + "sha256": "082b56ff28165d149e4b8ef44e9ecfd298979303b5f2a1344594b25ceadd7b64" + } +] diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/pair-differences.csv b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/pair-differences.csv new file mode 100644 index 0000000..ac0b439 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/pair-differences.csv @@ -0,0 +1,51 @@ +pair,accepted,exclusionReasons,earlyPostHTTP,ttfaDifferenceMs,ttfdDifferenceMs +1,True,[],not sent,-0.4839897155761719,-6.986856460571289 +2,True,[],not sent,-1.7249584197998047,-7.667064666748047 +3,True,[],not sent,3.859877586364746,6.790041923522949 +4,True,[],not sent,2.8330087661743164,2.2519826889038086 +5,True,[],not sent,9.38403606414795,11.319994926452637 +6,True,[],not sent,6.657958030700684,7.976055145263672 +7,True,[],not sent,0.25200843811035156,0.03695487976074219 +8,True,[],not sent,0.5459785461425781,3.399968147277832 +9,True,[],not sent,21.10004425048828,16.224026679992676 +10,True,[],not sent,-0.8360147476196289,-1.9840002059936523 +11,False,['handshake difference >20 ms'],not sent,7.454991340637207,10.944008827209473 +12,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,241.97900295257568,242.89000034332275 +13,True,[],not sent,-109.48002338409424,-63.38691711425781 +14,True,[],not sent,13.944029808044434,11.252164840698242 +15,True,[],not sent,4.836082458496094,5.234122276306152 +16,True,[],not sent,18.182873725891113,15.481948852539062 +17,True,[],not sent,-1.6189813613891602,-1.0319948196411133 +18,True,[],not sent,7.2479248046875,7.444977760314941 +19,True,[],not sent,8.040070533752441,13.921976089477539 +20,True,[],not sent,-0.44095516204833984,0.5891323089599609 +21,True,[],not sent,5.542993545532227,8.618950843811035 +22,True,[],not sent,4.708051681518555,0.74005126953125 +23,False,['handshake difference >20 ms'],200,7.37309455871582,9.621977806091309 +24,False,['handshake difference >20 ms'],200,6.170988082885742,1.672983169555664 +25,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,90.17598628997803,85.48688888549805 +26,True,[],not sent,13.141989707946777,11.074066162109375 +27,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,-91.18902683258057,-43.1361198425293 +28,True,[],not sent,5.897045135498047,8.980989456176758 +29,True,[],not sent,4.007935523986816,-2.838015556335449 +30,False,['handshake difference >20 ms'],not sent,-235.18705368041992,-229.7450304031372 +31,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,112.7328872680664,110.17191410064697 +32,True,[],not sent,14.60111141204834,19.12999153137207 +33,False,['handshake difference >20 ms'],not sent,157.70196914672852,107.30600357055664 +34,True,[],not sent,2.889871597290039,6.633877754211426 +35,True,[],not sent,-6.179928779602051,-2.998948097229004 +36,True,[],not sent,3.956913948059082,15.018939971923828 +37,True,[],not sent,18.550992012023926,18.2340145111084 +38,False,['handshake difference >20 ms'],not sent,-57.62004852294922,-101.51302814483643 +39,True,[],not sent,1.484990119934082,0.861048698425293 +40,True,[],not sent,-5.360007286071777,-7.887840270996094 +41,True,[],not sent,-12.237906455993652,-13.952970504760742 +42,True,[],not sent,4.53495979309082,-0.20802021026611328 +43,True,[],not sent,-107.69093036651611,-57.83188343048096 +44,True,[],not sent,-77.00896263122559,-27.043938636779785 +45,True,[],not sent,8.283138275146484,8.158087730407715 +46,False,['handshake difference >20 ms'],not sent,-77.71992683410645,-80.70099353790283 +47,True,[],not sent,-22.328972816467285,19.273996353149414 +48,True,[],not sent,7.459044456481934,10.126113891601562 +49,False,['handshake difference >20 ms'],200,-24.30105209350586,-13.17906379699707 +50,True,[],not sent,9.240031242370605,3.8721561431884766 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..086539051f0fd0be7b92bb2f092e74fc1f2ae21b GIT binary patch literal 50321 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 R|EUzcU}Rxfan3dRe*g+_-#q{T literal 0 HcmV?d00001 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.svg b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.svg new file mode 100644 index 0000000..882914d --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfa-on-minus-off.svg @@ -0,0 +1,4468 @@ + + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f8eee7b8222a98fde326c2ccb746747274536c GIT binary patch literal 49546 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 literal 0 HcmV?d00001 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.svg b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.svg new file mode 100644 index 0000000..0343a90 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/histograms/ttfd-on-minus-off.svg @@ -0,0 +1,4229 @@ + + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/report.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/report.md new file mode 100644 index 0000000..7fed58f --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/report.md @@ -0,0 +1,50 @@ +# Lens benchmark — 2026-10-12 physical-device cold-connection run (binary encoding) + +## Experiment specification + +[Google net_http: Lens Latency Mimic & Shutter Benchmark Mode](https://github.com/google/net_http/blob/main/webchannel/objc/demo/WebChanneliOSDemo/DESIGN.md#d-lens-latency-mimic--shutter-benchmark-mode). + +## Environment + +| Field | Recorded value | +|---|---| +| Device | iPhone SE (3rd generation), hardware model `iPhone14,6` | +| iOS | 26.3.1, from XCTest | +| Network switches | Not independently recorded for this run | +| Endpoint | `https://webchannel.sandbox.google.com/staging/channel/lens` | +| Mac | macOS 26.5.1; Xcode 26.6; Build version 17F113 | +| Source | Git HEAD `21eee148acc4a2bcb9856adc5ba9d7463a33f84d` plus uncommitted benchmark instrumentation | +| Test period | 2026-10-12 15:03–15:27 JST, from artifact timestamps | +| Test execution | 50 alternating OFF/ON pairs per scenario; a separate `xcodebuild test-without-building` invocation for each trial | +| Test result | All trials completed and passed fresh-transport verification | +| Transport requirement | First transport: `h2`, a new TCP/TLS connection on the handshake GET/POST or early POST; if the GET reused the early POST connection, matching address and local port | + +## Procedure and parameters + +1. Build the XCTest bundle once, then launch exactly one cold-trial test method per `xcodebuild test-without-building` invocation. Keep parallel testing disabled and retain each `.xcresult` bundle. +2. Run Omnient. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial. +3. Use `imageSizeKb=150`, `detectionDelayMs=50`, `initialMessageDelayMs=200`, `enableBinaryEncoding=true`, `sendRawJson=true`, `fastHandshake=false`, `nonBlockingSend=false`, `blockingHandshake=false`, `forceLongPolling=false`, and `detectBufferingProxy=false`. The 150 KB value is metadata; no 150 KB image is uploaded. +4. Schedule M1 Sticky Cluster Info 200 ms after `connect()` returns. Omnient sends M3 Prefetch immediately after M1. M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline. +5. Record Handshake (`webChannelOpened` minus connect), TTFA (M3 send to stream ACK), TTFD (M3 send to preliminary detections), and M4 RTT (M4 send to interaction response). +6. Include a pair in the histograms only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤20 ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit. + +7. Exclude a pair if the ON trial's initial early POST returned HTTP 400, even if a retry completed the trial. An unresolved early POST status is also excluded; a verified absence of an early POST is eligible. Do not replace excluded pairs with additional trials. +8. Plot paired differences as ON minus OFF, using full-precision measurements. Negative values mean ON was faster. Histograms use 10 ms bins aligned to multiples of 10 ms, pair counts on the vertical axis, and all eligible values without clipping in the main plot. When the full range exceeds 600 ms, an inset magnifies -300 to 300 ms and labels the number of pairs in that range; no additional pairs are excluded. TTFA and TTFD are measured from M3 send, so the configured M1 delay is not added to either metric. + +## Omnient: paired difference histograms + +| Item | Count / rate | +|---|---:| +| Measured OFF/ON pairs | 50 | +| ON initial early POST HTTP 400 pairs | 4/50 (8.0%) | +| ON early POST not sent | 43 | +| ON early POST status unresolved | 0 | +| Pairs included in both histograms | 38/50 | + +### TTFA: ON minus OFF + +![TTFA paired difference histogram](histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram](histograms/ttfd-on-minus-off.png) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/run-metadata.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/run-metadata.json new file mode 100644 index 0000000..a69500e --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-200ms/run-metadata.json @@ -0,0 +1,15 @@ +{ + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 15:03–15:27 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 200 +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/artifacts.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/artifacts.md new file mode 100644 index 0000000..b6d7929 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/artifacts.md @@ -0,0 +1,122 @@ +# Lens benchmark artifacts — 2026-10-12 physical-device cold-connection run + +[Report](report.md) · [Transport audit](connection-reuse-audit.md) · [Run metadata](run-metadata.json) + +Each trial has an Xcode log and exported attachments. Current runs keep logs in `logs/`, result bundles in `xcresults/`, and exported attachments in `attachments/`; older runs may keep these at the run root. The exported JSON and CSV preserve every attempted trial, including pairs omitted from the report tables. CSV values retain their recorded precision. + +| Scenario | Run # | Setting | Raw CSV | Raw JSON | Xcode log | Export log | Result bundle | Export manifest | +|---|---:|:---:|---|---|---|---|---|---| +| omnient | 1 | OFF | [CSV](attachments/omnient-1-off-attachments/CA1085C3-20B3-4DDC-B548-6A03170FE125.csv) | [JSON](attachments/omnient-1-off-attachments/24536F82-5C60-4A6B-9385-BBB2290EDE54.json) | [Log](logs/omnient-1-off.log) | [Export log](logs/omnient-1-off-export.log) | [xcresult](xcresults/omnient-1-off.xcresult) | [Manifest](attachments/omnient-1-off-attachments/manifest.json) | +| omnient | 1 | ON | [CSV](attachments/omnient-1-on-attachments/5461D8B4-E28B-4B94-A648-6045EE336169.csv) | [JSON](attachments/omnient-1-on-attachments/BBF93274-42CF-45E4-ACAB-5126B2D4CA67.json) | [Log](logs/omnient-1-on.log) | [Export log](logs/omnient-1-on-export.log) | [xcresult](xcresults/omnient-1-on.xcresult) | [Manifest](attachments/omnient-1-on-attachments/manifest.json) | +| omnient | 2 | OFF | [CSV](attachments/omnient-2-off-attachments/0C54C5F5-61A7-409D-A1A7-963F972E616B.csv) | [JSON](attachments/omnient-2-off-attachments/81F3A7B9-A0EA-44C0-B974-9B43369580AB.json) | [Log](logs/omnient-2-off.log) | [Export log](logs/omnient-2-off-export.log) | [xcresult](xcresults/omnient-2-off.xcresult) | [Manifest](attachments/omnient-2-off-attachments/manifest.json) | +| omnient | 2 | ON | [CSV](attachments/omnient-2-on-attachments/F8C3E241-137B-4409-BCAF-F893EECA08A4.csv) | [JSON](attachments/omnient-2-on-attachments/EAC63B8F-6A1C-424D-97F6-A3F4B706711C.json) | [Log](logs/omnient-2-on.log) | [Export log](logs/omnient-2-on-export.log) | [xcresult](xcresults/omnient-2-on.xcresult) | [Manifest](attachments/omnient-2-on-attachments/manifest.json) | +| omnient | 3 | OFF | [CSV](attachments/omnient-3-off-attachments/4172C3C9-AA42-4684-A05F-215C17C97D72.csv) | [JSON](attachments/omnient-3-off-attachments/A68E48F0-D4EE-4728-AFF4-8334807D817A.json) | [Log](logs/omnient-3-off.log) | [Export log](logs/omnient-3-off-export.log) | [xcresult](xcresults/omnient-3-off.xcresult) | [Manifest](attachments/omnient-3-off-attachments/manifest.json) | +| omnient | 3 | ON | [CSV](attachments/omnient-3-on-attachments/C56DA536-F972-4382-B0C4-B5BE4B80A45C.csv) | [JSON](attachments/omnient-3-on-attachments/500517ED-11A5-430B-89EF-B0C7EA612CD0.json) | [Log](logs/omnient-3-on.log) | [Export log](logs/omnient-3-on-export.log) | [xcresult](xcresults/omnient-3-on.xcresult) | [Manifest](attachments/omnient-3-on-attachments/manifest.json) | +| omnient | 4 | OFF | [CSV](attachments/omnient-4-off-attachments/B6BD6E1D-3CC1-422E-8669-9704D0711714.csv) | [JSON](attachments/omnient-4-off-attachments/411A4A49-427D-4253-BACB-6601519EAD77.json) | [Log](logs/omnient-4-off.log) | [Export log](logs/omnient-4-off-export.log) | [xcresult](xcresults/omnient-4-off.xcresult) | [Manifest](attachments/omnient-4-off-attachments/manifest.json) | +| omnient | 4 | ON | [CSV](attachments/omnient-4-on-attachments/C27E8434-D951-4530-A368-A9CE392D1779.csv) | [JSON](attachments/omnient-4-on-attachments/DB1F463B-0BB4-4E6B-9975-C07DB0E31A06.json) | [Log](logs/omnient-4-on.log) | [Export log](logs/omnient-4-on-export.log) | [xcresult](xcresults/omnient-4-on.xcresult) | [Manifest](attachments/omnient-4-on-attachments/manifest.json) | +| omnient | 5 | OFF | [CSV](attachments/omnient-5-off-attachments/F030F643-A6DC-410F-8B7A-5D6ADA729EA0.csv) | [JSON](attachments/omnient-5-off-attachments/220BB626-BB60-4325-98EE-F482B873411A.json) | [Log](logs/omnient-5-off.log) | [Export log](logs/omnient-5-off-export.log) | [xcresult](xcresults/omnient-5-off.xcresult) | [Manifest](attachments/omnient-5-off-attachments/manifest.json) | +| omnient | 5 | ON | [CSV](attachments/omnient-5-on-attachments/3535177F-5351-453A-9B9F-823476F9931D.csv) | [JSON](attachments/omnient-5-on-attachments/B5B60A3F-4862-4C0B-9F45-C4EEA745BD8D.json) | [Log](logs/omnient-5-on.log) | [Export log](logs/omnient-5-on-export.log) | [xcresult](xcresults/omnient-5-on.xcresult) | [Manifest](attachments/omnient-5-on-attachments/manifest.json) | +| omnient | 6 | OFF | [CSV](attachments/omnient-6-off-attachments/298469E4-4E13-43DE-82DC-DFED8C9AF12D.csv) | [JSON](attachments/omnient-6-off-attachments/BBDC01F7-F810-4CC2-8A8D-836D1E583376.json) | [Log](logs/omnient-6-off.log) | [Export log](logs/omnient-6-off-export.log) | [xcresult](xcresults/omnient-6-off.xcresult) | [Manifest](attachments/omnient-6-off-attachments/manifest.json) | +| omnient | 6 | ON | [CSV](attachments/omnient-6-on-attachments/1412E872-B69C-4E1D-88B2-6DAA52592B28.csv) | [JSON](attachments/omnient-6-on-attachments/6A8592F6-FDFF-44EB-9DC5-85CEFBCEBFBD.json) | [Log](logs/omnient-6-on.log) | [Export log](logs/omnient-6-on-export.log) | [xcresult](xcresults/omnient-6-on.xcresult) | [Manifest](attachments/omnient-6-on-attachments/manifest.json) | +| omnient | 7 | OFF | [CSV](attachments/omnient-7-off-attachments/3280717C-C63C-4CE2-93DC-E8704C813AD7.csv) | [JSON](attachments/omnient-7-off-attachments/FE805CC7-4CAC-4B91-A993-652B6FE6415A.json) | [Log](logs/omnient-7-off.log) | [Export log](logs/omnient-7-off-export.log) | [xcresult](xcresults/omnient-7-off.xcresult) | [Manifest](attachments/omnient-7-off-attachments/manifest.json) | +| omnient | 7 | ON | [CSV](attachments/omnient-7-on-attachments/FC2B1CFD-29A8-4958-82A9-914BE9F3F637.csv) | [JSON](attachments/omnient-7-on-attachments/0EA14A21-AC61-45DB-9966-8E0A3C5E4282.json) | [Log](logs/omnient-7-on.log) | [Export log](logs/omnient-7-on-export.log) | [xcresult](xcresults/omnient-7-on.xcresult) | [Manifest](attachments/omnient-7-on-attachments/manifest.json) | +| omnient | 8 | OFF | [CSV](attachments/omnient-8-off-attachments/82F98496-4A95-4A4D-B43E-ACA017C1E89B.csv) | [JSON](attachments/omnient-8-off-attachments/5AF18DBC-CB08-41AD-93E7-8CCAA1AA05AB.json) | [Log](logs/omnient-8-off.log) | [Export log](logs/omnient-8-off-export.log) | [xcresult](xcresults/omnient-8-off.xcresult) | [Manifest](attachments/omnient-8-off-attachments/manifest.json) | +| omnient | 8 | ON | [CSV](attachments/omnient-8-on-attachments/EC9D2FA0-32EB-4DDD-BA92-74B4BB0E8742.csv) | [JSON](attachments/omnient-8-on-attachments/B91D8956-F5A2-411A-8626-C58F07F367CB.json) | [Log](logs/omnient-8-on.log) | [Export log](logs/omnient-8-on-export.log) | [xcresult](xcresults/omnient-8-on.xcresult) | [Manifest](attachments/omnient-8-on-attachments/manifest.json) | +| omnient | 9 | OFF | [CSV](attachments/omnient-9-off-attachments/85177DE4-BB2E-4B42-A755-4583DFD9B8B3.csv) | [JSON](attachments/omnient-9-off-attachments/EFB48EFD-4C48-48DE-B6BB-0F3054A0D44B.json) | [Log](logs/omnient-9-off.log) | [Export log](logs/omnient-9-off-export.log) | [xcresult](xcresults/omnient-9-off.xcresult) | [Manifest](attachments/omnient-9-off-attachments/manifest.json) | +| omnient | 9 | ON | [CSV](attachments/omnient-9-on-attachments/4DA9D747-F228-409D-9597-1E882D3F25FF.csv) | [JSON](attachments/omnient-9-on-attachments/CD9C3060-F771-4AF3-85F7-8A46D4CF5FC6.json) | [Log](logs/omnient-9-on.log) | [Export log](logs/omnient-9-on-export.log) | [xcresult](xcresults/omnient-9-on.xcresult) | [Manifest](attachments/omnient-9-on-attachments/manifest.json) | +| omnient | 10 | OFF | [CSV](attachments/omnient-10-off-attachments/5592B3AD-4CEE-48C9-AA1A-BA2A64E665AE.csv) | [JSON](attachments/omnient-10-off-attachments/5F7A803A-1092-4901-9678-AB95121C6AD5.json) | [Log](logs/omnient-10-off.log) | [Export log](logs/omnient-10-off-export.log) | [xcresult](xcresults/omnient-10-off.xcresult) | [Manifest](attachments/omnient-10-off-attachments/manifest.json) | +| omnient | 10 | ON | [CSV](attachments/omnient-10-on-attachments/67938B1D-2A00-4585-852D-0A4E1C8BA9A1.csv) | [JSON](attachments/omnient-10-on-attachments/37DF6681-D91C-4ABE-A1F3-EF61160ED02F.json) | [Log](logs/omnient-10-on.log) | [Export log](logs/omnient-10-on-export.log) | [xcresult](xcresults/omnient-10-on.xcresult) | [Manifest](attachments/omnient-10-on-attachments/manifest.json) | +| omnient | 11 | OFF | [CSV](attachments/omnient-11-off-attachments/95F0AAA1-0C31-4F4C-9D3E-A7F98A5CBCEA.csv) | [JSON](attachments/omnient-11-off-attachments/AAE5B97E-095F-499A-9681-CF4F9F3DA6AA.json) | [Log](logs/omnient-11-off.log) | [Export log](logs/omnient-11-off-export.log) | [xcresult](xcresults/omnient-11-off.xcresult) | [Manifest](attachments/omnient-11-off-attachments/manifest.json) | +| omnient | 11 | ON | [CSV](attachments/omnient-11-on-attachments/F6249430-C3C7-4F4B-8CD5-278CB850FE4B.csv) | [JSON](attachments/omnient-11-on-attachments/82969362-74E8-4F2D-8A23-AFFEA45D6633.json) | [Log](logs/omnient-11-on.log) | [Export log](logs/omnient-11-on-export.log) | [xcresult](xcresults/omnient-11-on.xcresult) | [Manifest](attachments/omnient-11-on-attachments/manifest.json) | +| omnient | 12 | OFF | [CSV](attachments/omnient-12-off-attachments/ECCBF373-1675-4429-95F7-07F3E07CA285.csv) | [JSON](attachments/omnient-12-off-attachments/904C06C9-BFEA-416A-9D0D-6303301FEF54.json) | [Log](logs/omnient-12-off.log) | [Export log](logs/omnient-12-off-export.log) | [xcresult](xcresults/omnient-12-off.xcresult) | [Manifest](attachments/omnient-12-off-attachments/manifest.json) | +| omnient | 12 | ON | [CSV](attachments/omnient-12-on-attachments/90F50E57-B9F7-4DA7-BC3A-F9250CC933F8.csv) | [JSON](attachments/omnient-12-on-attachments/77335252-70D7-4E57-8971-64609FEFB6A8.json) | [Log](logs/omnient-12-on.log) | [Export log](logs/omnient-12-on-export.log) | [xcresult](xcresults/omnient-12-on.xcresult) | [Manifest](attachments/omnient-12-on-attachments/manifest.json) | +| omnient | 13 | OFF | [CSV](attachments/omnient-13-off-attachments/B38E2987-3753-4566-8CE5-E5B2EF1B85F0.csv) | [JSON](attachments/omnient-13-off-attachments/B428AC6A-B164-48CA-9361-8BB4102FD66C.json) | [Log](logs/omnient-13-off.log) | [Export log](logs/omnient-13-off-export.log) | [xcresult](xcresults/omnient-13-off.xcresult) | [Manifest](attachments/omnient-13-off-attachments/manifest.json) | +| omnient | 13 | ON | [CSV](attachments/omnient-13-on-attachments/305275D9-27DA-4E0A-A2B9-70A7DDF04321.csv) | [JSON](attachments/omnient-13-on-attachments/B32E97B0-D8E9-451B-92D7-11450D4A4A34.json) | [Log](logs/omnient-13-on.log) | [Export log](logs/omnient-13-on-export.log) | [xcresult](xcresults/omnient-13-on.xcresult) | [Manifest](attachments/omnient-13-on-attachments/manifest.json) | +| omnient | 14 | OFF | [CSV](attachments/omnient-14-off-attachments/F87497A5-9B52-4F41-9FA1-F196BA7EEC03.csv) | [JSON](attachments/omnient-14-off-attachments/F965DE23-9CC7-4071-BADE-40081742AA05.json) | [Log](logs/omnient-14-off.log) | [Export log](logs/omnient-14-off-export.log) | [xcresult](xcresults/omnient-14-off.xcresult) | [Manifest](attachments/omnient-14-off-attachments/manifest.json) | +| omnient | 14 | ON | [CSV](attachments/omnient-14-on-attachments/4D1EEAC3-8CE3-46E4-81D4-1D18BBC95C75.csv) | [JSON](attachments/omnient-14-on-attachments/E81BE51C-3F8A-4500-9A28-63AA3A386F4A.json) | [Log](logs/omnient-14-on.log) | [Export log](logs/omnient-14-on-export.log) | [xcresult](xcresults/omnient-14-on.xcresult) | [Manifest](attachments/omnient-14-on-attachments/manifest.json) | +| omnient | 15 | OFF | [CSV](attachments/omnient-15-off-attachments/F3B52973-F175-48DA-9D53-84577C6C77B1.csv) | [JSON](attachments/omnient-15-off-attachments/A5FBE1AE-A257-4A89-BEE6-2F3C9114524E.json) | [Log](logs/omnient-15-off.log) | [Export log](logs/omnient-15-off-export.log) | [xcresult](xcresults/omnient-15-off.xcresult) | [Manifest](attachments/omnient-15-off-attachments/manifest.json) | +| omnient | 15 | ON | [CSV](attachments/omnient-15-on-attachments/06210C41-6508-47B4-909F-B647693097AA.csv) | [JSON](attachments/omnient-15-on-attachments/F4302547-2995-4971-99F5-47A398347383.json) | [Log](logs/omnient-15-on.log) | [Export log](logs/omnient-15-on-export.log) | [xcresult](xcresults/omnient-15-on.xcresult) | [Manifest](attachments/omnient-15-on-attachments/manifest.json) | +| omnient | 16 | OFF | [CSV](attachments/omnient-16-off-attachments/EBCE3A4C-286C-49A3-9322-A9E686738143.csv) | [JSON](attachments/omnient-16-off-attachments/B248B025-8ACA-4E1E-8951-273D50698D23.json) | [Log](logs/omnient-16-off.log) | [Export log](logs/omnient-16-off-export.log) | [xcresult](xcresults/omnient-16-off.xcresult) | [Manifest](attachments/omnient-16-off-attachments/manifest.json) | +| omnient | 16 | ON | [CSV](attachments/omnient-16-on-attachments/9224F0E9-8B72-4781-8E39-7C7E5F2346F1.csv) | [JSON](attachments/omnient-16-on-attachments/875F8DE2-BF88-44C9-9953-344B9530BB93.json) | [Log](logs/omnient-16-on.log) | [Export log](logs/omnient-16-on-export.log) | [xcresult](xcresults/omnient-16-on.xcresult) | [Manifest](attachments/omnient-16-on-attachments/manifest.json) | +| omnient | 17 | OFF | [CSV](attachments/omnient-17-off-attachments/48433DB3-A6CE-4318-9176-67639A3AECA6.csv) | [JSON](attachments/omnient-17-off-attachments/667447D1-78A3-4815-A8DF-7095AF7805C3.json) | [Log](logs/omnient-17-off.log) | [Export log](logs/omnient-17-off-export.log) | [xcresult](xcresults/omnient-17-off.xcresult) | [Manifest](attachments/omnient-17-off-attachments/manifest.json) | +| omnient | 17 | ON | [CSV](attachments/omnient-17-on-attachments/B10403D4-201D-4FDD-9230-826C4B30261C.csv) | [JSON](attachments/omnient-17-on-attachments/FD349D22-C4F2-4EB9-BF35-3884FC167F1B.json) | [Log](logs/omnient-17-on.log) | [Export log](logs/omnient-17-on-export.log) | [xcresult](xcresults/omnient-17-on.xcresult) | [Manifest](attachments/omnient-17-on-attachments/manifest.json) | +| omnient | 18 | OFF | [CSV](attachments/omnient-18-off-attachments/D331E744-769E-4D4B-A96D-2C9170403496.csv) | [JSON](attachments/omnient-18-off-attachments/80E695D9-444C-49EE-A996-54D95E4F4578.json) | [Log](logs/omnient-18-off.log) | [Export log](logs/omnient-18-off-export.log) | [xcresult](xcresults/omnient-18-off.xcresult) | [Manifest](attachments/omnient-18-off-attachments/manifest.json) | +| omnient | 18 | ON | [CSV](attachments/omnient-18-on-attachments/875ACED4-7E25-4B92-822E-2722AADB39A7.csv) | [JSON](attachments/omnient-18-on-attachments/18689500-A7F0-4A6A-88F4-8AB2F23F4EB3.json) | [Log](logs/omnient-18-on.log) | [Export log](logs/omnient-18-on-export.log) | [xcresult](xcresults/omnient-18-on.xcresult) | [Manifest](attachments/omnient-18-on-attachments/manifest.json) | +| omnient | 19 | OFF | [CSV](attachments/omnient-19-off-attachments/3A124021-A144-4441-9E27-F0A99EC13506.csv) | [JSON](attachments/omnient-19-off-attachments/A2395425-3E20-4CE4-96F9-28AC4AE38C2E.json) | [Log](logs/omnient-19-off.log) | [Export log](logs/omnient-19-off-export.log) | [xcresult](xcresults/omnient-19-off.xcresult) | [Manifest](attachments/omnient-19-off-attachments/manifest.json) | +| omnient | 19 | ON | [CSV](attachments/omnient-19-on-attachments/BDA2F11A-D1C8-4D41-9982-A0AEC7439BB6.csv) | [JSON](attachments/omnient-19-on-attachments/46C095AA-9FE9-4F98-AA94-EB27FCEFC9A4.json) | [Log](logs/omnient-19-on.log) | [Export log](logs/omnient-19-on-export.log) | [xcresult](xcresults/omnient-19-on.xcresult) | [Manifest](attachments/omnient-19-on-attachments/manifest.json) | +| omnient | 20 | OFF | [CSV](attachments/omnient-20-off-attachments/63A6596E-CF57-4FF6-AD23-B1B5FD57C0DC.csv) | [JSON](attachments/omnient-20-off-attachments/E2A39D94-FD88-4254-8765-AF6AA6423616.json) | [Log](logs/omnient-20-off.log) | [Export log](logs/omnient-20-off-export.log) | [xcresult](xcresults/omnient-20-off.xcresult) | [Manifest](attachments/omnient-20-off-attachments/manifest.json) | +| omnient | 20 | ON | [CSV](attachments/omnient-20-on-attachments/9BD0DFF5-2A72-4B7C-B791-FAFB067E589B.csv) | [JSON](attachments/omnient-20-on-attachments/660D0A79-BBCE-40D5-9594-BEAD783752C5.json) | [Log](logs/omnient-20-on.log) | [Export log](logs/omnient-20-on-export.log) | [xcresult](xcresults/omnient-20-on.xcresult) | [Manifest](attachments/omnient-20-on-attachments/manifest.json) | +| omnient | 21 | OFF | [CSV](attachments/omnient-21-off-attachments/7815AC03-E6BA-479C-BF4D-F42E018752D2.csv) | [JSON](attachments/omnient-21-off-attachments/B604B714-82C5-4DE3-B649-3E6956CFDC2B.json) | [Log](logs/omnient-21-off.log) | [Export log](logs/omnient-21-off-export.log) | [xcresult](xcresults/omnient-21-off.xcresult) | [Manifest](attachments/omnient-21-off-attachments/manifest.json) | +| omnient | 21 | ON | [CSV](attachments/omnient-21-on-attachments/5C9AAA62-FFDE-424F-86C2-43D736D7A402.csv) | [JSON](attachments/omnient-21-on-attachments/CC90FA24-7EF3-44CF-843A-37F77D9FD221.json) | [Log](logs/omnient-21-on.log) | [Export log](logs/omnient-21-on-export.log) | [xcresult](xcresults/omnient-21-on.xcresult) | [Manifest](attachments/omnient-21-on-attachments/manifest.json) | +| omnient | 22 | OFF | [CSV](attachments/omnient-22-off-attachments/6B934CAE-BB6A-45E9-9E2E-52CD8DAD10FC.csv) | [JSON](attachments/omnient-22-off-attachments/CB095712-8043-41AF-A45C-84874E405127.json) | [Log](logs/omnient-22-off.log) | [Export log](logs/omnient-22-off-export.log) | [xcresult](xcresults/omnient-22-off.xcresult) | [Manifest](attachments/omnient-22-off-attachments/manifest.json) | +| omnient | 22 | ON | [CSV](attachments/omnient-22-on-attachments/A96FB450-6C9D-47A1-AE5B-26091F31EB37.csv) | [JSON](attachments/omnient-22-on-attachments/7E368CF3-8FC6-420E-AB08-6C3AB5DE9F84.json) | [Log](logs/omnient-22-on.log) | [Export log](logs/omnient-22-on-export.log) | [xcresult](xcresults/omnient-22-on.xcresult) | [Manifest](attachments/omnient-22-on-attachments/manifest.json) | +| omnient | 23 | OFF | [CSV](attachments/omnient-23-off-attachments/7B498BB4-04B0-4638-AE7B-2234C3AC1347.csv) | [JSON](attachments/omnient-23-off-attachments/B86054E9-AAA5-48F7-A50B-D19D063E73A0.json) | [Log](logs/omnient-23-off.log) | [Export log](logs/omnient-23-off-export.log) | [xcresult](xcresults/omnient-23-off.xcresult) | [Manifest](attachments/omnient-23-off-attachments/manifest.json) | +| omnient | 23 | ON | [CSV](attachments/omnient-23-on-attachments/3B95527E-CC4C-47FC-914C-0B1B367A1B6C.csv) | [JSON](attachments/omnient-23-on-attachments/E4A9AB7E-947A-4CE0-AFC5-DFF800DE27C7.json) | [Log](logs/omnient-23-on.log) | [Export log](logs/omnient-23-on-export.log) | [xcresult](xcresults/omnient-23-on.xcresult) | [Manifest](attachments/omnient-23-on-attachments/manifest.json) | +| omnient | 24 | OFF | [CSV](attachments/omnient-24-off-attachments/241DB052-4A2B-4A64-B611-AEFB78474D59.csv) | [JSON](attachments/omnient-24-off-attachments/794BF4AE-80E9-40F2-BA0D-4ABD1D0427CA.json) | [Log](logs/omnient-24-off.log) | [Export log](logs/omnient-24-off-export.log) | [xcresult](xcresults/omnient-24-off.xcresult) | [Manifest](attachments/omnient-24-off-attachments/manifest.json) | +| omnient | 24 | ON | [CSV](attachments/omnient-24-on-attachments/E8A69DD5-0658-4E54-BBE2-19FEFEC84645.csv) | [JSON](attachments/omnient-24-on-attachments/98677DEB-17EF-4257-AB30-FB86F79F2470.json) | [Log](logs/omnient-24-on.log) | [Export log](logs/omnient-24-on-export.log) | [xcresult](xcresults/omnient-24-on.xcresult) | [Manifest](attachments/omnient-24-on-attachments/manifest.json) | +| omnient | 25 | OFF | [CSV](attachments/omnient-25-off-attachments/C6A4E847-2205-400E-89C4-47E839EB7000.csv) | [JSON](attachments/omnient-25-off-attachments/AE481D8A-8D18-4E65-894F-125676583F30.json) | [Log](logs/omnient-25-off.log) | [Export log](logs/omnient-25-off-export.log) | [xcresult](xcresults/omnient-25-off.xcresult) | [Manifest](attachments/omnient-25-off-attachments/manifest.json) | +| omnient | 25 | ON | [CSV](attachments/omnient-25-on-attachments/F9C62E7A-2150-41BF-B1CA-378D5322F8EF.csv) | [JSON](attachments/omnient-25-on-attachments/F15C1B32-2198-47A5-8EBC-43AEE0B7E618.json) | [Log](logs/omnient-25-on.log) | [Export log](logs/omnient-25-on-export.log) | [xcresult](xcresults/omnient-25-on.xcresult) | [Manifest](attachments/omnient-25-on-attachments/manifest.json) | +| omnient | 26 | OFF | [CSV](attachments/omnient-26-off-attachments/FFD2FB60-9C8F-4588-8818-0674F550B201.csv) | [JSON](attachments/omnient-26-off-attachments/2C832D10-5702-4711-BAB2-99398B720D6A.json) | [Log](logs/omnient-26-off.log) | [Export log](logs/omnient-26-off-export.log) | [xcresult](xcresults/omnient-26-off.xcresult) | [Manifest](attachments/omnient-26-off-attachments/manifest.json) | +| omnient | 26 | ON | [CSV](attachments/omnient-26-on-attachments/A9CFA89A-2BA5-4AF6-88EB-AA85B7E78793.csv) | [JSON](attachments/omnient-26-on-attachments/D0F8002C-108D-4DB5-B235-E94530FB4145.json) | [Log](logs/omnient-26-on.log) | [Export log](logs/omnient-26-on-export.log) | [xcresult](xcresults/omnient-26-on.xcresult) | [Manifest](attachments/omnient-26-on-attachments/manifest.json) | +| omnient | 27 | OFF | [CSV](attachments/omnient-27-off-attachments/6BF99349-5A33-4BC7-A0E1-84A8E015919C.csv) | [JSON](attachments/omnient-27-off-attachments/76FE9420-8494-42CF-9BDD-8596917608DD.json) | [Log](logs/omnient-27-off.log) | [Export log](logs/omnient-27-off-export.log) | [xcresult](xcresults/omnient-27-off.xcresult) | [Manifest](attachments/omnient-27-off-attachments/manifest.json) | +| omnient | 27 | ON | [CSV](attachments/omnient-27-on-attachments/4A443C2D-8A31-4C69-84DE-F63D66145D1F.csv) | [JSON](attachments/omnient-27-on-attachments/34D0D32E-FE7F-4022-8039-9E82958465E3.json) | [Log](logs/omnient-27-on.log) | [Export log](logs/omnient-27-on-export.log) | [xcresult](xcresults/omnient-27-on.xcresult) | [Manifest](attachments/omnient-27-on-attachments/manifest.json) | +| omnient | 28 | OFF | [CSV](attachments/omnient-28-off-attachments/0E1F912A-A171-4F6C-A898-3B6D4DEF2C3E.csv) | [JSON](attachments/omnient-28-off-attachments/69D042DC-3CBE-4D52-8BF4-6D6AE721BF96.json) | [Log](logs/omnient-28-off.log) | [Export log](logs/omnient-28-off-export.log) | [xcresult](xcresults/omnient-28-off.xcresult) | [Manifest](attachments/omnient-28-off-attachments/manifest.json) | +| omnient | 28 | ON | [CSV](attachments/omnient-28-on-attachments/AEE9FC12-D68B-4A94-9DA0-316A9ADFDE2F.csv) | [JSON](attachments/omnient-28-on-attachments/D6CE0CBA-016C-47FF-91E8-09084745A4A1.json) | [Log](logs/omnient-28-on.log) | [Export log](logs/omnient-28-on-export.log) | [xcresult](xcresults/omnient-28-on.xcresult) | [Manifest](attachments/omnient-28-on-attachments/manifest.json) | +| omnient | 29 | OFF | [CSV](attachments/omnient-29-off-attachments/7DD03AAA-BD24-4333-804A-87C741453A5C.csv) | [JSON](attachments/omnient-29-off-attachments/2DC305E3-28D5-43C3-B314-8C68372CE421.json) | [Log](logs/omnient-29-off.log) | [Export log](logs/omnient-29-off-export.log) | [xcresult](xcresults/omnient-29-off.xcresult) | [Manifest](attachments/omnient-29-off-attachments/manifest.json) | +| omnient | 29 | ON | [CSV](attachments/omnient-29-on-attachments/9FD689B8-3487-496A-ABBC-14B98D7C6BAD.csv) | [JSON](attachments/omnient-29-on-attachments/1FCA74F3-5945-4A2D-A604-7E5C77C2BC0D.json) | [Log](logs/omnient-29-on.log) | [Export log](logs/omnient-29-on-export.log) | [xcresult](xcresults/omnient-29-on.xcresult) | [Manifest](attachments/omnient-29-on-attachments/manifest.json) | +| omnient | 30 | OFF | [CSV](attachments/omnient-30-off-attachments/6B1FF90E-9E90-4748-9322-35A9048C0104.csv) | [JSON](attachments/omnient-30-off-attachments/F10B7161-B75F-4166-92E9-DD5FE04CA7E5.json) | [Log](logs/omnient-30-off.log) | [Export log](logs/omnient-30-off-export.log) | [xcresult](xcresults/omnient-30-off.xcresult) | [Manifest](attachments/omnient-30-off-attachments/manifest.json) | +| omnient | 30 | ON | [CSV](attachments/omnient-30-on-attachments/72E59653-FF17-496F-8901-00662EEFAC36.csv) | [JSON](attachments/omnient-30-on-attachments/C548AD7C-080D-4820-94D6-027CE6AC08E8.json) | [Log](logs/omnient-30-on.log) | [Export log](logs/omnient-30-on-export.log) | [xcresult](xcresults/omnient-30-on.xcresult) | [Manifest](attachments/omnient-30-on-attachments/manifest.json) | +| omnient | 31 | OFF | [CSV](attachments/omnient-31-off-attachments/D1001AEA-BDC5-4F6A-8CA9-8E2D1B839653.csv) | [JSON](attachments/omnient-31-off-attachments/C298094E-F33D-4552-91DA-0D1603DCA00B.json) | [Log](logs/omnient-31-off.log) | [Export log](logs/omnient-31-off-export.log) | [xcresult](xcresults/omnient-31-off.xcresult) | [Manifest](attachments/omnient-31-off-attachments/manifest.json) | +| omnient | 31 | ON | [CSV](attachments/omnient-31-on-attachments/240ED765-2CE0-4A08-B3C2-7BA585F5FA7C.csv) | [JSON](attachments/omnient-31-on-attachments/743F5CA4-918C-493E-8061-E3F565434E27.json) | [Log](logs/omnient-31-on.log) | [Export log](logs/omnient-31-on-export.log) | [xcresult](xcresults/omnient-31-on.xcresult) | [Manifest](attachments/omnient-31-on-attachments/manifest.json) | +| omnient | 32 | OFF | [CSV](attachments/omnient-32-off-attachments/74192671-36C7-4CE3-9EAE-85D324CB3543.csv) | [JSON](attachments/omnient-32-off-attachments/028F264C-9442-4FAB-AED1-582F73C3C394.json) | [Log](logs/omnient-32-off.log) | [Export log](logs/omnient-32-off-export.log) | [xcresult](xcresults/omnient-32-off.xcresult) | [Manifest](attachments/omnient-32-off-attachments/manifest.json) | +| omnient | 32 | ON | [CSV](attachments/omnient-32-on-attachments/20DCE190-82CB-44C1-BD88-6733D705172A.csv) | [JSON](attachments/omnient-32-on-attachments/65EAAAE4-9D82-4D27-BFB5-AA77447C6493.json) | [Log](logs/omnient-32-on.log) | [Export log](logs/omnient-32-on-export.log) | [xcresult](xcresults/omnient-32-on.xcresult) | [Manifest](attachments/omnient-32-on-attachments/manifest.json) | +| omnient | 33 | OFF | [CSV](attachments/omnient-33-off-attachments/31C23912-3E0B-462A-81D4-246F659A28DA.csv) | [JSON](attachments/omnient-33-off-attachments/3004467F-7B22-4426-8FFA-A5F57637F12B.json) | [Log](logs/omnient-33-off.log) | [Export log](logs/omnient-33-off-export.log) | [xcresult](xcresults/omnient-33-off.xcresult) | [Manifest](attachments/omnient-33-off-attachments/manifest.json) | +| omnient | 33 | ON | [CSV](attachments/omnient-33-on-attachments/357BDD8B-4500-443B-8E60-5FF41824780E.csv) | [JSON](attachments/omnient-33-on-attachments/99EE87F4-0C84-4208-8243-AC3BAD07F436.json) | [Log](logs/omnient-33-on.log) | [Export log](logs/omnient-33-on-export.log) | [xcresult](xcresults/omnient-33-on.xcresult) | [Manifest](attachments/omnient-33-on-attachments/manifest.json) | +| omnient | 34 | OFF | [CSV](attachments/omnient-34-off-attachments/14B24A2B-96EF-4837-A058-7139584A80E7.csv) | [JSON](attachments/omnient-34-off-attachments/9639450B-289F-46A8-9F00-4A1456FCF9FA.json) | [Log](logs/omnient-34-off.log) | [Export log](logs/omnient-34-off-export.log) | [xcresult](xcresults/omnient-34-off.xcresult) | [Manifest](attachments/omnient-34-off-attachments/manifest.json) | +| omnient | 34 | ON | [CSV](attachments/omnient-34-on-attachments/A87B17CD-00B9-4FEE-825D-DC69CE83C9D0.csv) | [JSON](attachments/omnient-34-on-attachments/9E2C8B8E-C30B-4182-BF9E-8E27972F8B6D.json) | [Log](logs/omnient-34-on.log) | [Export log](logs/omnient-34-on-export.log) | [xcresult](xcresults/omnient-34-on.xcresult) | [Manifest](attachments/omnient-34-on-attachments/manifest.json) | +| omnient | 35 | OFF | [CSV](attachments/omnient-35-off-attachments/96403530-9AAC-4BDE-BBB7-3F5AA228F23B.csv) | [JSON](attachments/omnient-35-off-attachments/94EFE348-79CD-4323-8979-854493D1D2D9.json) | [Log](logs/omnient-35-off.log) | [Export log](logs/omnient-35-off-export.log) | [xcresult](xcresults/omnient-35-off.xcresult) | [Manifest](attachments/omnient-35-off-attachments/manifest.json) | +| omnient | 35 | ON | [CSV](attachments/omnient-35-on-attachments/02685510-C0B8-4402-9125-8CA37BD50FED.csv) | [JSON](attachments/omnient-35-on-attachments/0543BDA4-5B11-4DE2-A552-8D11473AEFC4.json) | [Log](logs/omnient-35-on.log) | [Export log](logs/omnient-35-on-export.log) | [xcresult](xcresults/omnient-35-on.xcresult) | [Manifest](attachments/omnient-35-on-attachments/manifest.json) | +| omnient | 36 | OFF | [CSV](attachments/omnient-36-off-attachments/A99EDFFD-8DBF-4DB4-B89A-DD74F9862616.csv) | [JSON](attachments/omnient-36-off-attachments/FA284ACF-5D69-46CF-A6CB-EC37FFDE7CBF.json) | [Log](logs/omnient-36-off.log) | [Export log](logs/omnient-36-off-export.log) | [xcresult](xcresults/omnient-36-off.xcresult) | [Manifest](attachments/omnient-36-off-attachments/manifest.json) | +| omnient | 36 | ON | [CSV](attachments/omnient-36-on-attachments/B953E590-015A-438D-A509-65261F6F82B5.csv) | [JSON](attachments/omnient-36-on-attachments/410C7691-E51F-41F4-A0A9-8718AA79D816.json) | [Log](logs/omnient-36-on.log) | [Export log](logs/omnient-36-on-export.log) | [xcresult](xcresults/omnient-36-on.xcresult) | [Manifest](attachments/omnient-36-on-attachments/manifest.json) | +| omnient | 37 | OFF | [CSV](attachments/omnient-37-off-attachments/089265AC-C8D8-4E4B-A46E-88E8D8C7CD95.csv) | [JSON](attachments/omnient-37-off-attachments/91205504-48DA-4885-8723-627D0C02518C.json) | [Log](logs/omnient-37-off.log) | [Export log](logs/omnient-37-off-export.log) | [xcresult](xcresults/omnient-37-off.xcresult) | [Manifest](attachments/omnient-37-off-attachments/manifest.json) | +| omnient | 37 | ON | [CSV](attachments/omnient-37-on-attachments/9016AC85-3D1B-4966-B774-2D2705EDB6A8.csv) | [JSON](attachments/omnient-37-on-attachments/401B5D48-F723-4CA5-ABEC-EBEF61324ECA.json) | [Log](logs/omnient-37-on.log) | [Export log](logs/omnient-37-on-export.log) | [xcresult](xcresults/omnient-37-on.xcresult) | [Manifest](attachments/omnient-37-on-attachments/manifest.json) | +| omnient | 38 | OFF | [CSV](attachments/omnient-38-off-attachments/B7467770-2FEA-4213-B33D-308C1B12EB7E.csv) | [JSON](attachments/omnient-38-off-attachments/35D03CDE-DDB7-4221-A73D-952F398EB750.json) | [Log](logs/omnient-38-off.log) | [Export log](logs/omnient-38-off-export.log) | [xcresult](xcresults/omnient-38-off.xcresult) | [Manifest](attachments/omnient-38-off-attachments/manifest.json) | +| omnient | 38 | ON | [CSV](attachments/omnient-38-on-attachments/7A1B2949-E0A6-41FA-A5FB-47C61EF640E7.csv) | [JSON](attachments/omnient-38-on-attachments/28F455ED-AF37-4B2B-8B28-D3D51FB5D482.json) | [Log](logs/omnient-38-on.log) | [Export log](logs/omnient-38-on-export.log) | [xcresult](xcresults/omnient-38-on.xcresult) | [Manifest](attachments/omnient-38-on-attachments/manifest.json) | +| omnient | 39 | OFF | [CSV](attachments/omnient-39-off-attachments/4A63AC17-481E-4944-A2F2-33DE34AFCBC9.csv) | [JSON](attachments/omnient-39-off-attachments/97188470-57C0-4E45-A48D-94105E537B40.json) | [Log](logs/omnient-39-off.log) | [Export log](logs/omnient-39-off-export.log) | [xcresult](xcresults/omnient-39-off.xcresult) | [Manifest](attachments/omnient-39-off-attachments/manifest.json) | +| omnient | 39 | ON | [CSV](attachments/omnient-39-on-attachments/7A5EC794-1705-45BE-92FF-DD75E8358E19.csv) | [JSON](attachments/omnient-39-on-attachments/12FA0206-9773-4764-8786-36FB61A1215E.json) | [Log](logs/omnient-39-on.log) | [Export log](logs/omnient-39-on-export.log) | [xcresult](xcresults/omnient-39-on.xcresult) | [Manifest](attachments/omnient-39-on-attachments/manifest.json) | +| omnient | 40 | OFF | [CSV](attachments/omnient-40-off-attachments/3FABCF0F-4B8F-450B-830C-4AD7AD3F0589.csv) | [JSON](attachments/omnient-40-off-attachments/089F9E8C-F3E9-4C54-9040-BE80E65E91B2.json) | [Log](logs/omnient-40-off.log) | [Export log](logs/omnient-40-off-export.log) | [xcresult](xcresults/omnient-40-off.xcresult) | [Manifest](attachments/omnient-40-off-attachments/manifest.json) | +| omnient | 40 | ON | [CSV](attachments/omnient-40-on-attachments/22FE52ED-1CE9-4659-B5C3-6E468F073D6C.csv) | [JSON](attachments/omnient-40-on-attachments/13126725-23E8-483B-84E2-5D09FE1F7479.json) | [Log](logs/omnient-40-on.log) | [Export log](logs/omnient-40-on-export.log) | [xcresult](xcresults/omnient-40-on.xcresult) | [Manifest](attachments/omnient-40-on-attachments/manifest.json) | +| omnient | 41 | OFF | [CSV](attachments/omnient-41-off-attachments/E8AF8617-F60B-4757-A539-F1F5C81A9D65.csv) | [JSON](attachments/omnient-41-off-attachments/5F7E5723-FABC-45D1-9C29-D892F7EA6658.json) | [Log](logs/omnient-41-off.log) | [Export log](logs/omnient-41-off-export.log) | [xcresult](xcresults/omnient-41-off.xcresult) | [Manifest](attachments/omnient-41-off-attachments/manifest.json) | +| omnient | 41 | ON | [CSV](attachments/omnient-41-on-attachments/C2A1917A-ED77-448C-9709-E18429F1E5F8.csv) | [JSON](attachments/omnient-41-on-attachments/16D5FA77-6452-46F5-B816-F1495FA82F59.json) | [Log](logs/omnient-41-on.log) | [Export log](logs/omnient-41-on-export.log) | [xcresult](xcresults/omnient-41-on.xcresult) | [Manifest](attachments/omnient-41-on-attachments/manifest.json) | +| omnient | 42 | OFF | [CSV](attachments/omnient-42-off-attachments/96C25000-1BEA-4BC4-BD9B-C32172D25FE5.csv) | [JSON](attachments/omnient-42-off-attachments/03291210-C8CD-4A87-AF0F-AE277D270D63.json) | [Log](logs/omnient-42-off.log) | [Export log](logs/omnient-42-off-export.log) | [xcresult](xcresults/omnient-42-off.xcresult) | [Manifest](attachments/omnient-42-off-attachments/manifest.json) | +| omnient | 42 | ON | [CSV](attachments/omnient-42-on-attachments/D6D65781-B304-46A9-B9A9-B1676B395C00.csv) | [JSON](attachments/omnient-42-on-attachments/D50761C1-891F-4CCF-AA9A-E4D0CF739FAA.json) | [Log](logs/omnient-42-on.log) | [Export log](logs/omnient-42-on-export.log) | [xcresult](xcresults/omnient-42-on.xcresult) | [Manifest](attachments/omnient-42-on-attachments/manifest.json) | +| omnient | 43 | OFF | [CSV](attachments/omnient-43-off-attachments/8CEB5CA7-0A33-4369-A9E4-2B7CB138B466.csv) | [JSON](attachments/omnient-43-off-attachments/BDA7F641-A8C1-4740-B189-B3F20D9A15F2.json) | [Log](logs/omnient-43-off.log) | [Export log](logs/omnient-43-off-export.log) | [xcresult](xcresults/omnient-43-off.xcresult) | [Manifest](attachments/omnient-43-off-attachments/manifest.json) | +| omnient | 43 | ON | [CSV](attachments/omnient-43-on-attachments/3671B1AC-EA60-461B-AEC4-57B5138CA529.csv) | [JSON](attachments/omnient-43-on-attachments/62B4B699-5DC6-4723-ABA0-9F63717D8F49.json) | [Log](logs/omnient-43-on.log) | [Export log](logs/omnient-43-on-export.log) | [xcresult](xcresults/omnient-43-on.xcresult) | [Manifest](attachments/omnient-43-on-attachments/manifest.json) | +| omnient | 44 | OFF | [CSV](attachments/omnient-44-off-attachments/A55741B6-D4AD-408B-B5BE-B9A94DD2E329.csv) | [JSON](attachments/omnient-44-off-attachments/24100926-9938-4C84-B787-0C79D7681C85.json) | [Log](logs/omnient-44-off.log) | [Export log](logs/omnient-44-off-export.log) | [xcresult](xcresults/omnient-44-off.xcresult) | [Manifest](attachments/omnient-44-off-attachments/manifest.json) | +| omnient | 44 | ON | [CSV](attachments/omnient-44-on-attachments/FB3F85C9-5F31-49FC-BAD8-3133C647EFB1.csv) | [JSON](attachments/omnient-44-on-attachments/F8F5AA42-7600-403C-BADD-FC70A2B03A6C.json) | [Log](logs/omnient-44-on.log) | [Export log](logs/omnient-44-on-export.log) | [xcresult](xcresults/omnient-44-on.xcresult) | [Manifest](attachments/omnient-44-on-attachments/manifest.json) | +| omnient | 45 | OFF | [CSV](attachments/omnient-45-off-attachments/13E16E42-9A96-4E15-BF31-BAD0CBF8F31C.csv) | [JSON](attachments/omnient-45-off-attachments/A0A7F206-575F-41EB-AAE4-014E8B561403.json) | [Log](logs/omnient-45-off.log) | [Export log](logs/omnient-45-off-export.log) | [xcresult](xcresults/omnient-45-off.xcresult) | [Manifest](attachments/omnient-45-off-attachments/manifest.json) | +| omnient | 45 | ON | [CSV](attachments/omnient-45-on-attachments/B771B9D3-11C5-4429-AD0F-F857EBC6DFFD.csv) | [JSON](attachments/omnient-45-on-attachments/CDD4C7B4-190A-4A77-9714-F5B21248CDEE.json) | [Log](logs/omnient-45-on.log) | [Export log](logs/omnient-45-on-export.log) | [xcresult](xcresults/omnient-45-on.xcresult) | [Manifest](attachments/omnient-45-on-attachments/manifest.json) | +| omnient | 46 | OFF | [CSV](attachments/omnient-46-off-attachments/3F72A81D-2F2B-48CB-A752-FB390A82DF79.csv) | [JSON](attachments/omnient-46-off-attachments/3FB06EA6-42C8-4F33-9A1D-030AAB849A7F.json) | [Log](logs/omnient-46-off.log) | [Export log](logs/omnient-46-off-export.log) | [xcresult](xcresults/omnient-46-off.xcresult) | [Manifest](attachments/omnient-46-off-attachments/manifest.json) | +| omnient | 46 | ON | [CSV](attachments/omnient-46-on-attachments/42CA3C04-B5E7-474B-A808-5BA4F93E85E0.csv) | [JSON](attachments/omnient-46-on-attachments/A70ADC95-1A3D-4B09-806C-7F02AA90DAD6.json) | [Log](logs/omnient-46-on.log) | [Export log](logs/omnient-46-on-export.log) | [xcresult](xcresults/omnient-46-on.xcresult) | [Manifest](attachments/omnient-46-on-attachments/manifest.json) | +| omnient | 47 | OFF | [CSV](attachments/omnient-47-off-attachments/E644FA00-361C-4360-814B-49C0F2283F62.csv) | [JSON](attachments/omnient-47-off-attachments/CF53D8F4-F3BB-499E-B97E-644F301CB5FF.json) | [Log](logs/omnient-47-off.log) | [Export log](logs/omnient-47-off-export.log) | [xcresult](xcresults/omnient-47-off.xcresult) | [Manifest](attachments/omnient-47-off-attachments/manifest.json) | +| omnient | 47 | ON | [CSV](attachments/omnient-47-on-attachments/8E66306B-BAD1-4361-9F47-37C38612BCE0.csv) | [JSON](attachments/omnient-47-on-attachments/747DADDB-4F6F-4978-A042-4F975EAF9AE6.json) | [Log](logs/omnient-47-on.log) | [Export log](logs/omnient-47-on-export.log) | [xcresult](xcresults/omnient-47-on.xcresult) | [Manifest](attachments/omnient-47-on-attachments/manifest.json) | +| omnient | 48 | OFF | [CSV](attachments/omnient-48-off-attachments/710B0E91-46F7-466A-AFDA-846B61255067.csv) | [JSON](attachments/omnient-48-off-attachments/A5AB6247-3264-48AF-B52F-BDBB9BD4BF78.json) | [Log](logs/omnient-48-off.log) | [Export log](logs/omnient-48-off-export.log) | [xcresult](xcresults/omnient-48-off.xcresult) | [Manifest](attachments/omnient-48-off-attachments/manifest.json) | +| omnient | 48 | ON | [CSV](attachments/omnient-48-on-attachments/0B0127DB-8052-4D6B-B72B-28DD89FFF047.csv) | [JSON](attachments/omnient-48-on-attachments/D351115F-F40A-4BF0-B2AA-B242258D855F.json) | [Log](logs/omnient-48-on.log) | [Export log](logs/omnient-48-on-export.log) | [xcresult](xcresults/omnient-48-on.xcresult) | [Manifest](attachments/omnient-48-on-attachments/manifest.json) | +| omnient | 49 | OFF | [CSV](attachments/omnient-49-off-attachments/4DEB603C-E598-4BAC-A7AC-52343A6243BE.csv) | [JSON](attachments/omnient-49-off-attachments/B98C9164-89B3-47AC-821C-CC8DCB30EA7B.json) | [Log](logs/omnient-49-off.log) | [Export log](logs/omnient-49-off-export.log) | [xcresult](xcresults/omnient-49-off.xcresult) | [Manifest](attachments/omnient-49-off-attachments/manifest.json) | +| omnient | 49 | ON | [CSV](attachments/omnient-49-on-attachments/6711E6D6-CE07-4915-8072-3A0EA7EE8892.csv) | [JSON](attachments/omnient-49-on-attachments/D7C9C889-5268-48B9-8FF0-CF6819933FD1.json) | [Log](logs/omnient-49-on.log) | [Export log](logs/omnient-49-on-export.log) | [xcresult](xcresults/omnient-49-on.xcresult) | [Manifest](attachments/omnient-49-on-attachments/manifest.json) | +| omnient | 50 | OFF | [CSV](attachments/omnient-50-off-attachments/750E1B96-DAF9-439B-9A9B-0C7AF434DE1D.csv) | [JSON](attachments/omnient-50-off-attachments/668DC7A2-9292-4485-8469-CA830849F55F.json) | [Log](logs/omnient-50-off.log) | [Export log](logs/omnient-50-off-export.log) | [xcresult](xcresults/omnient-50-off.xcresult) | [Manifest](attachments/omnient-50-off-attachments/manifest.json) | +| omnient | 50 | ON | [CSV](attachments/omnient-50-on-attachments/C3B178F0-60BA-4AEE-A2F3-C5D409F46B05.csv) | [JSON](attachments/omnient-50-on-attachments/275DAADD-FC80-468F-B564-C5EED7FD6A17.json) | [Log](logs/omnient-50-on.log) | [Export log](logs/omnient-50-on-export.log) | [xcresult](xcresults/omnient-50-on.xcresult) | [Manifest](attachments/omnient-50-on-attachments/manifest.json) | + +## Histogram evidence + +[Histogram data and selection decisions](histograms/histogram-data.json) · [Full-precision paired differences](histograms/pair-differences.csv). Each record retains its pair number and exclusion reasons; no raw measurement is changed. + +[Input SHA-256 manifest](histograms/input-manifest.json) records the raw files used for aggregation. The histogram JSON records the renderer version and generator SHA-256. + +| Metric | PNG | SVG | +|---|---|---| +| TTFA | [PNG](histograms/ttfa-on-minus-off.png) | [SVG](histograms/ttfa-on-minus-off.svg) | +| TTFD | [PNG](histograms/ttfd-on-minus-off.png) | [SVG](histograms/ttfd-on-minus-off.svg) | + + +JSON includes app logs and task-level `URLSessionTaskMetrics`. Xcode logs include HTTP response metadata used to classify early POST status. Manifests map exported attachments to XCTest tests. diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/connection-reuse-audit.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/connection-reuse-audit.md new file mode 100644 index 0000000..b2d9996 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/connection-reuse-audit.md @@ -0,0 +1,234 @@ +# Handshake transport audit + +[Report](report.md) · [Artifacts](artifacts.md) + +The table lists the actual handshake task, identified by its request ID. In ON trials, either the handshake GET or the concurrent early POST may create the fresh connection; the other request can reuse it within that trial. + +The early POST HTTP status comes from the saved Xcode response metadata for `AID=-1`. HTTP 400 confirms rejection of that POST, but does not identify whether soft stickiness failed, requests arrived out of order, or another server-side condition caused it. OFF has no early POST. + +A fresh HTTP/2 connection was verified for each trial's first transport request, not inferred from creating a new service or process. In ON trials, the early POST could create the connection first and the handshake GET could reuse it. DNS, radio, and server state may remain warm. Repeated response-metadata callbacks for one request are counted once. + +Connection setup is `connectEndDate - connectStartDate` and includes the TLS handshake. TLS handshake is `secureConnectionEndDate - secureConnectionStartDate`, a portion of connection setup; do not add the two values. + +| Scenario | Pair | Setting | Test status | Early POST HTTP | Cold source | Handshake protocol | Handshake reused | Connection setup (incl. TLS, ms) | TLS handshake (ms) | Remote address | +|---|---:|:---:|---|:---:|---|---|:---:|---:|---:|---| +| omnient | 1 | OFF | completed | — | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 1 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 2 | OFF | completed | — | handshake | h2 | false | 145.000 | 135.000 | 2404:6800:400b:c017::451 | +| omnient | 2 | ON | completed | 200 | handshake | h2 | false | 27.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 3 | OFF | completed | — | handshake | h2 | false | 111.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 3 | ON | completed | 200 | handshake | h2 | false | 27.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 4 | OFF | completed | — | handshake | h2 | false | 26.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 4 | ON | completed | 200 | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 5 | OFF | completed | — | handshake | h2 | false | 35.000 | 27.000 | 2404:6800:400b:c017::451 | +| omnient | 5 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 6 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 6 | ON | completed | 200 | handshake | h2 | false | 191.000 | 182.000 | 2404:6800:400b:c017::451 | +| omnient | 7 | OFF | completed | — | handshake | h2 | false | 33.000 | 23.000 | 2404:6800:400b:c017::451 | +| omnient | 7 | ON | completed | 200 | handshake | h2 | false | 25.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 8 | OFF | completed | — | handshake | h2 | false | 28.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 8 | ON | completed | 200 | handshake | h2 | false | 28.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 9 | OFF | completed | — | handshake | h2 | false | 170.000 | 158.000 | 2404:6800:400b:c017::451 | +| omnient | 9 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 10 | OFF | completed | — | handshake | h2 | false | 297.000 | 287.000 | 2404:6800:400b:c017::451 | +| omnient | 10 | ON | completed | 200 | handshake | h2 | false | 23.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 11 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 11 | ON | completed | 200 | handshake | h2 | false | 24.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 12 | OFF | completed | — | handshake | h2 | false | 25.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 12 | ON | completed | 200 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 13 | OFF | completed | — | handshake | h2 | false | 26.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 13 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 14 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 14 | ON | completed | 400 | handshake | h2 | false | 632.000 | 26.000 | 2404:6800:400b:c017::451 | +| omnient | 15 | OFF | completed | — | handshake | h2 | false | 20.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 15 | ON | completed | 200 | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 16 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 16 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 17 | OFF | completed | — | handshake | h2 | false | 20.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 17 | ON | completed | 200 | handshake | h2 | false | 214.000 | 202.000 | 2404:6800:400b:c017::451 | +| omnient | 18 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 18 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 19 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 19 | ON | completed | 200 | handshake | h2 | false | 29.000 | 19.000 | 2404:6800:400b:c017::451 | +| omnient | 20 | OFF | completed | — | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 20 | ON | completed | 200 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 21 | OFF | completed | — | handshake | h2 | false | 22.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 21 | ON | completed | 200 | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 22 | OFF | completed | — | handshake | h2 | false | 24.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 22 | ON | completed | 200 | handshake | h2 | false | 24.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 23 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 23 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 24 | OFF | completed | — | handshake | h2 | false | 52.000 | 42.000 | 2404:6800:400b:c017::451 | +| omnient | 24 | ON | completed | 200 | handshake | h2 | false | 38.000 | 29.000 | 2404:6800:400b:c017::451 | +| omnient | 25 | OFF | completed | — | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 25 | ON | completed | 200 | handshake | h2 | false | 26.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 26 | OFF | completed | — | handshake | h2 | false | 24.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 26 | ON | completed | 200 | handshake | h2 | false | 20.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 27 | OFF | completed | — | handshake | h2 | false | 26.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 27 | ON | completed | 200 | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 28 | OFF | completed | — | handshake | h2 | false | 20.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 28 | ON | completed | 200 | handshake | h2 | false | 34.000 | 24.000 | 2404:6800:400b:c017::451 | +| omnient | 29 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 29 | ON | completed | 200 | handshake | h2 | false | 26.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 30 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 30 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 31 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 31 | ON | completed | 200 | handshake | h2 | false | 31.000 | 19.000 | 2404:6800:400b:c017::451 | +| omnient | 32 | OFF | completed | — | handshake | h2 | false | 28.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 32 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 33 | OFF | completed | — | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 33 | ON | completed | 200 | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 34 | OFF | completed | — | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 34 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 35 | OFF | completed | — | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 35 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 36 | OFF | completed | — | handshake | h2 | false | 634.000 | 24.000 | 2404:6800:400b:c017::451 | +| omnient | 36 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 37 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 37 | ON | completed | 400 | handshake | h2 | false | 199.000 | 24.000 | 2404:6800:400b:c017::451 | +| omnient | 38 | OFF | completed | — | handshake | h2 | false | 26.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 38 | ON | completed | 200 | handshake | h2 | false | 22.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 39 | OFF | completed | — | handshake | h2 | false | 25.000 | 19.000 | 2404:6800:400b:c017::451 | +| omnient | 39 | ON | completed | 200 | handshake | h2 | false | 24.000 | 17.000 | 2404:6800:400b:c017::451 | +| omnient | 40 | OFF | completed | — | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 40 | ON | completed | 200 | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 41 | OFF | completed | — | handshake | h2 | false | 23.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 41 | ON | completed | 400 | handshake | h2 | false | 205.000 | 144.000 | 2404:6800:400b:c017::451 | +| omnient | 42 | OFF | completed | — | handshake | h2 | false | 158.000 | 147.000 | 2404:6800:400b:c017::451 | +| omnient | 42 | ON | completed | 200 | handshake | h2 | false | 28.000 | 19.000 | 2404:6800:400b:c017::451 | +| omnient | 43 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 43 | ON | completed | 200 | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 44 | OFF | completed | — | handshake | h2 | false | 26.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 44 | ON | completed | 200 | handshake | h2 | false | 225.000 | 215.000 | 2404:6800:400b:c017::451 | +| omnient | 45 | OFF | completed | — | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 45 | ON | completed | 200 | handshake | h2 | false | 23.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 46 | OFF | completed | — | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 46 | ON | completed | 200 | handshake | h2 | false | 21.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 47 | OFF | completed | — | handshake | h2 | false | 22.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 47 | ON | completed | 200 | handshake | h2 | false | 29.000 | 18.000 | 2404:6800:400b:c017::451 | +| omnient | 48 | OFF | completed | — | handshake | h2 | false | 37.000 | 13.000 | 2404:6800:400b:c017::451 | +| omnient | 48 | ON | completed | 200 | handshake | h2 | false | 25.000 | 16.000 | 2404:6800:400b:c017::451 | +| omnient | 49 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 49 | ON | completed | 200 | handshake | h2 | false | 24.000 | 14.000 | 2404:6800:400b:c017::451 | +| omnient | 50 | OFF | completed | — | handshake | h2 | false | 25.000 | 15.000 | 2404:6800:400b:c017::451 | +| omnient | 50 | ON | completed | 200 | handshake | h2 | false | 25.000 | 14.000 | 2404:6800:400b:c017::451 | + +## M1 and M3 dispatch + +The handshake payload column is the request's encoded `count`. `count=0` means neither M1 nor M3 was in the handshake request itself. `early POST` means the first request containing that message was an `AID=-1` POST logged before WebChannel opened, concurrent with the handshake; it does not prove server arrival order or acceptance. `post-open POST` means its first request was logged after the channel opened. + +M1 is message offset 0. The demo sends M3 at offset 1 in Omnient and offset 2 in Viewfinder (after M2 Heartbeat). Request body prefixes expose `count` and `ofs`, which identify the first HTTP request containing each queued message. A rejected early POST may be retried after opening; the table records the first dispatch. + +The observed M1 delay is measured from the client connect timestamp to the M1 `send()` call; scheduling can vary slightly from the requested delay. + +| Scenario | Pair | Setting | M1 after connect (ms) | Handshake payload | M1 first request | M3 first request | +|---|---:|:---:|---:|:---:|---|---| +| omnient | 1 | OFF | 54.955 | count=0 | post-open POST | post-open POST | +| omnient | 1 | ON | 50.376 | count=0 | early POST | early POST | +| omnient | 2 | OFF | 50.803 | count=0 | post-open POST | post-open POST | +| omnient | 2 | ON | 50.420 | count=0 | early POST | early POST | +| omnient | 3 | OFF | 54.461 | count=0 | post-open POST | post-open POST | +| omnient | 3 | ON | 59.159 | count=0 | early POST | early POST | +| omnient | 4 | OFF | 53.381 | count=0 | post-open POST | post-open POST | +| omnient | 4 | ON | 52.708 | count=0 | early POST | early POST | +| omnient | 5 | OFF | 51.110 | count=0 | post-open POST | post-open POST | +| omnient | 5 | ON | 50.750 | count=0 | early POST | early POST | +| omnient | 6 | OFF | 54.330 | count=0 | post-open POST | post-open POST | +| omnient | 6 | ON | 52.448 | count=0 | early POST | early POST | +| omnient | 7 | OFF | 50.938 | count=0 | post-open POST | post-open POST | +| omnient | 7 | ON | 52.885 | count=0 | early POST | early POST | +| omnient | 8 | OFF | 54.097 | count=0 | post-open POST | post-open POST | +| omnient | 8 | ON | 50.918 | count=0 | early POST | early POST | +| omnient | 9 | OFF | 50.550 | count=0 | post-open POST | post-open POST | +| omnient | 9 | ON | 54.711 | count=0 | early POST | early POST | +| omnient | 10 | OFF | 54.661 | count=0 | post-open POST | post-open POST | +| omnient | 10 | ON | 59.034 | count=0 | early POST | early POST | +| omnient | 11 | OFF | 52.862 | count=0 | post-open POST | post-open POST | +| omnient | 11 | ON | 52.734 | count=0 | early POST | early POST | +| omnient | 12 | OFF | 52.875 | count=0 | post-open POST | post-open POST | +| omnient | 12 | ON | 51.749 | count=0 | early POST | early POST | +| omnient | 13 | OFF | 52.123 | count=0 | post-open POST | post-open POST | +| omnient | 13 | ON | 51.086 | count=0 | early POST | early POST | +| omnient | 14 | OFF | 50.772 | count=0 | post-open POST | post-open POST | +| omnient | 14 | ON | 52.565 | count=0 | early POST | early POST | +| omnient | 15 | OFF | 52.064 | count=0 | post-open POST | post-open POST | +| omnient | 15 | ON | 53.924 | count=0 | early POST | early POST | +| omnient | 16 | OFF | 60.154 | count=0 | post-open POST | post-open POST | +| omnient | 16 | ON | 52.249 | count=0 | early POST | early POST | +| omnient | 17 | OFF | 55.864 | count=0 | post-open POST | post-open POST | +| omnient | 17 | ON | 50.726 | count=0 | early POST | early POST | +| omnient | 18 | OFF | 58.996 | count=0 | post-open POST | post-open POST | +| omnient | 18 | ON | 53.064 | count=0 | early POST | early POST | +| omnient | 19 | OFF | 52.464 | count=0 | post-open POST | post-open POST | +| omnient | 19 | ON | 56.832 | count=0 | early POST | early POST | +| omnient | 20 | OFF | 59.628 | count=0 | post-open POST | post-open POST | +| omnient | 20 | ON | 51.505 | count=0 | early POST | early POST | +| omnient | 21 | OFF | 53.023 | count=0 | post-open POST | post-open POST | +| omnient | 21 | ON | 51.598 | count=0 | early POST | early POST | +| omnient | 22 | OFF | 51.495 | count=0 | post-open POST | post-open POST | +| omnient | 22 | ON | 51.499 | count=0 | early POST | early POST | +| omnient | 23 | OFF | 52.110 | count=0 | post-open POST | post-open POST | +| omnient | 23 | ON | 51.541 | count=0 | early POST | early POST | +| omnient | 24 | OFF | 50.965 | count=0 | post-open POST | post-open POST | +| omnient | 24 | ON | 51.772 | count=0 | early POST | early POST | +| omnient | 25 | OFF | 51.776 | count=0 | post-open POST | post-open POST | +| omnient | 25 | ON | 52.838 | count=0 | early POST | early POST | +| omnient | 26 | OFF | 52.364 | count=0 | post-open POST | post-open POST | +| omnient | 26 | ON | 52.076 | count=0 | early POST | early POST | +| omnient | 27 | OFF | 53.584 | count=0 | post-open POST | post-open POST | +| omnient | 27 | ON | 52.195 | count=0 | early POST | early POST | +| omnient | 28 | OFF | 52.120 | count=0 | post-open POST | post-open POST | +| omnient | 28 | ON | 50.315 | count=0 | early POST | early POST | +| omnient | 29 | OFF | 51.078 | count=0 | post-open POST | post-open POST | +| omnient | 29 | ON | 52.813 | count=0 | early POST | early POST | +| omnient | 30 | OFF | 53.047 | count=0 | post-open POST | post-open POST | +| omnient | 30 | ON | 50.833 | count=0 | early POST | early POST | +| omnient | 31 | OFF | 50.281 | count=0 | post-open POST | post-open POST | +| omnient | 31 | ON | 52.909 | count=0 | early POST | early POST | +| omnient | 32 | OFF | 50.747 | count=0 | post-open POST | post-open POST | +| omnient | 32 | ON | 51.909 | count=0 | early POST | early POST | +| omnient | 33 | OFF | 52.783 | count=0 | post-open POST | post-open POST | +| omnient | 33 | ON | 51.403 | count=0 | early POST | early POST | +| omnient | 34 | OFF | 51.130 | count=0 | post-open POST | post-open POST | +| omnient | 34 | ON | 52.628 | count=0 | early POST | early POST | +| omnient | 35 | OFF | 52.347 | count=0 | post-open POST | post-open POST | +| omnient | 35 | ON | 52.925 | count=0 | early POST | early POST | +| omnient | 36 | OFF | 52.876 | count=0 | post-open POST | post-open POST | +| omnient | 36 | ON | 52.905 | count=0 | early POST | early POST | +| omnient | 37 | OFF | 53.040 | count=0 | post-open POST | post-open POST | +| omnient | 37 | ON | 51.789 | count=0 | early POST | early POST | +| omnient | 38 | OFF | 52.122 | count=0 | post-open POST | post-open POST | +| omnient | 38 | ON | 52.198 | count=0 | early POST | early POST | +| omnient | 39 | OFF | 52.205 | count=0 | post-open POST | post-open POST | +| omnient | 39 | ON | 51.503 | count=0 | early POST | early POST | +| omnient | 40 | OFF | 50.551 | count=0 | post-open POST | post-open POST | +| omnient | 40 | ON | 51.167 | count=0 | early POST | early POST | +| omnient | 41 | OFF | 52.836 | count=0 | post-open POST | post-open POST | +| omnient | 41 | ON | 50.843 | count=0 | early POST | early POST | +| omnient | 42 | OFF | 51.248 | count=0 | post-open POST | post-open POST | +| omnient | 42 | ON | 51.141 | count=0 | early POST | early POST | +| omnient | 43 | OFF | 50.612 | count=0 | post-open POST | post-open POST | +| omnient | 43 | ON | 51.119 | count=0 | early POST | early POST | +| omnient | 44 | OFF | 52.113 | count=0 | post-open POST | post-open POST | +| omnient | 44 | ON | 52.892 | count=0 | early POST | early POST | +| omnient | 45 | OFF | 52.084 | count=0 | post-open POST | post-open POST | +| omnient | 45 | ON | 50.836 | count=0 | early POST | early POST | +| omnient | 46 | OFF | 52.882 | count=0 | post-open POST | post-open POST | +| omnient | 46 | ON | 52.278 | count=0 | early POST | early POST | +| omnient | 47 | OFF | 51.895 | count=0 | post-open POST | post-open POST | +| omnient | 47 | ON | 51.042 | count=0 | early POST | early POST | +| omnient | 48 | OFF | 50.342 | count=0 | post-open POST | post-open POST | +| omnient | 48 | ON | 52.156 | count=0 | early POST | early POST | +| omnient | 49 | OFF | 52.657 | count=0 | post-open POST | post-open POST | +| omnient | 49 | ON | 52.824 | count=0 | early POST | early POST | +| omnient | 50 | OFF | 51.812 | count=0 | post-open POST | post-open POST | +| omnient | 50 | ON | 52.414 | count=0 | early POST | early POST | + +## Observations and limits + +Omnient sends M3 immediately after M1, scheduled 50 ms after connect() returns. Fresh connection verification is to the reached edge, not a cold DNS lookup or cold backend application state. + +The initial early POST returned HTTP 400 in 3/50 ON trials. Of those trials, 3 completed; inspect the logs to distinguish successful retries from incomplete runs. + +The Xcode logs contain retry diagnostics in ON trials for omnient pairs 6, 14, 37, 41, 44. Those retries can affect TTFA and TTFD; the raw logs should be consulted before attributing a timing difference solely to the handshake option. + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/histogram-data.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/histogram-data.json new file mode 100644 index 0000000..1fdff1f --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/histogram-data.json @@ -0,0 +1,1144 @@ +{ + "initialMessageDelayMs": 50, + "pairCount": 50, + "handshakeThresholdMs": 20.0, + "difference": "ON minus OFF", + "binWidthMs": 10, + "pairs": [ + { + "pair": 1, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -100.03495216369629, + "ttfdDifferenceMs": -97.15497493743896 + }, + { + "pair": 2, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -243.25692653656006, + "ttfdDifferenceMs": -240.89586734771729 + }, + { + "pair": 3, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -214.37203884124756, + "ttfdDifferenceMs": -195.64199447631836 + }, + { + "pair": 4, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -270.10810375213623, + "ttfdDifferenceMs": -219.51699256896973 + }, + { + "pair": 5, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -118.16704273223877, + "ttfdDifferenceMs": -107.49304294586182 + }, + { + "pair": 6, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 21.057963371276855, + "ttfdDifferenceMs": 31.91399574279785 + }, + { + "pair": 7, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -134.3669891357422, + "ttfdDifferenceMs": -133.41295719146729 + }, + { + "pair": 8, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -66.05899333953857, + "ttfdDifferenceMs": -98.2520580291748 + }, + { + "pair": 9, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -278.1250476837158, + "ttfdDifferenceMs": -252.87103652954102 + }, + { + "pair": 10, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -422.4200248718262, + "ttfdDifferenceMs": -425.44591426849365 + }, + { + "pair": 11, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -119.62199211120605, + "ttfdDifferenceMs": -117.3640489578247 + }, + { + "pair": 12, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -108.85512828826904, + "ttfdDifferenceMs": -108.69300365447998 + }, + { + "pair": 13, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -118.29710006713867, + "ttfdDifferenceMs": -118.55697631835938 + }, + { + "pair": 14, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 483.2669496536255, + "ttfdDifferenceMs": 484.5559597015381 + }, + { + "pair": 15, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -111.55104637145996, + "ttfdDifferenceMs": -110.10110378265381 + }, + { + "pair": 16, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -134.2710256576538, + "ttfdDifferenceMs": -128.1599998474121 + }, + { + "pair": 17, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 69.96703147888184, + "ttfdDifferenceMs": 74.32305812835693 + }, + { + "pair": 18, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -99.79605674743652, + "ttfdDifferenceMs": -94.95997428894043 + }, + { + "pair": 19, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -107.25593566894531, + "ttfdDifferenceMs": -107.28883743286133 + }, + { + "pair": 20, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -264.1409635543823, + "ttfdDifferenceMs": -217.5149917602539 + }, + { + "pair": 21, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -220.16394138336182, + "ttfdDifferenceMs": -167.6110029220581 + }, + { + "pair": 22, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -122.56395816802979, + "ttfdDifferenceMs": -117.94602870941162 + }, + { + "pair": 23, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -115.8210039138794, + "ttfdDifferenceMs": -106.27603530883789 + }, + { + "pair": 24, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -340.09993076324463, + "ttfdDifferenceMs": -301.4949560165405 + }, + { + "pair": 25, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -102.27799415588379, + "ttfdDifferenceMs": -100.04496574401855 + }, + { + "pair": 26, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -124.91905689239502, + "ttfdDifferenceMs": -113.150954246521 + }, + { + "pair": 27, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -117.82705783843994, + "ttfdDifferenceMs": -115.72408676147461 + }, + { + "pair": 28, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -101.64201259613037, + "ttfdDifferenceMs": -99.72894191741943 + }, + { + "pair": 29, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -119.1251277923584, + "ttfdDifferenceMs": -114.63093757629395 + }, + { + "pair": 30, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -115.00692367553711, + "ttfdDifferenceMs": -103.01387310028076 + }, + { + "pair": 31, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -117.91300773620605, + "ttfdDifferenceMs": -121.14500999450684 + }, + { + "pair": 32, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -134.03093814849854, + "ttfdDifferenceMs": -129.54294681549072 + }, + { + "pair": 33, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -254.24695014953613, + "ttfdDifferenceMs": -248.00491333007812 + }, + { + "pair": 34, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -133.9198350906372, + "ttfdDifferenceMs": -130.26189804077148 + }, + { + "pair": 35, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -113.68489265441895, + "ttfdDifferenceMs": -112.21301555633545 + }, + { + "pair": 36, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -735.4429960250854, + "ttfdDifferenceMs": -730.1548719406128 + }, + { + "pair": 37, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 50.114989280700684, + "ttfdDifferenceMs": 55.33301830291748 + }, + { + "pair": 38, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -243.8681125640869, + "ttfdDifferenceMs": -198.8661289215088 + }, + { + "pair": 39, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -121.25003337860107, + "ttfdDifferenceMs": -118.91007423400879 + }, + { + "pair": 40, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -124.37903881072998, + "ttfdDifferenceMs": -119.06802654266357 + }, + { + "pair": 41, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms", + "ON initial early POST HTTP 400" + ], + "earlyPostHTTP": "400", + "ttfaDifferenceMs": 51.96511745452881, + "ttfdDifferenceMs": 227.2270917892456 + }, + { + "pair": 42, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -274.18994903564453, + "ttfdDifferenceMs": -271.8609571456909 + }, + { + "pair": 43, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -120.51403522491455, + "ttfdDifferenceMs": -118.81899833679199 + }, + { + "pair": 44, + "accepted": false, + "exclusionReasons": [ + "handshake difference >20 ms" + ], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": 76.16996765136719, + "ttfdDifferenceMs": 72.69406318664551 + }, + { + "pair": 45, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -131.0349702835083, + "ttfdDifferenceMs": -116.84799194335938 + }, + { + "pair": 46, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -93.97900104522705, + "ttfdDifferenceMs": -91.16804599761963 + }, + { + "pair": 47, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -115.71896076202393, + "ttfdDifferenceMs": -103.70194911956787 + }, + { + "pair": 48, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -119.05503273010254, + "ttfdDifferenceMs": -124.58598613739014 + }, + { + "pair": 49, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -112.56098747253418, + "ttfdDifferenceMs": -114.7679090499878 + }, + { + "pair": 50, + "accepted": true, + "exclusionReasons": [], + "earlyPostHTTP": "200", + "ttfaDifferenceMs": -140.0458812713623, + "ttfdDifferenceMs": -119.62592601776123 + } + ], + "histograms": { + "TTFA": { + "binEdgesMs": [ + -280.0, + -270.0, + -260.0, + -250.0, + -240.0, + -230.0, + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0, + 1430.0, + 1440.0, + 1450.0, + 1460.0 + ], + "pairCounts": [ + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 5, + 5, + 13, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "TTFD": { + "binEdgesMs": [ + -220.0, + -210.0, + -200.0, + -190.0, + -180.0, + -170.0, + -160.0, + -150.0, + -140.0, + -130.0, + -120.0, + -110.0, + -100.0, + -90.0, + -80.0, + -70.0, + -60.0, + -50.0, + -40.0, + -30.0, + -20.0, + -10.0, + 0.0, + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 130.0, + 140.0, + 150.0, + 160.0, + 170.0, + 180.0, + 190.0, + 200.0, + 210.0, + 220.0, + 230.0, + 240.0, + 250.0, + 260.0, + 270.0, + 280.0, + 290.0, + 300.0, + 310.0, + 320.0, + 330.0, + 340.0, + 350.0, + 360.0, + 370.0, + 380.0, + 390.0, + 400.0, + 410.0, + 420.0, + 430.0, + 440.0, + 450.0, + 460.0, + 470.0, + 480.0, + 490.0, + 500.0, + 510.0, + 520.0, + 530.0, + 540.0, + 550.0, + 560.0, + 570.0, + 580.0, + 590.0, + 600.0, + 610.0, + 620.0, + 630.0, + 640.0, + 650.0, + 660.0, + 670.0, + 680.0, + 690.0, + 700.0, + 710.0, + 720.0, + 730.0, + 740.0, + 750.0, + 760.0, + 770.0, + 780.0, + 790.0, + 800.0, + 810.0, + 820.0, + 830.0, + 840.0, + 850.0, + 860.0, + 870.0, + 880.0, + 890.0, + 900.0, + 910.0, + 920.0, + 930.0, + 940.0, + 950.0, + 960.0, + 970.0, + 980.0, + 990.0, + 1000.0, + 1010.0, + 1020.0, + 1030.0, + 1040.0, + 1050.0, + 1060.0, + 1070.0, + 1080.0, + 1090.0, + 1100.0, + 1110.0, + 1120.0, + 1130.0, + 1140.0, + 1150.0, + 1160.0, + 1170.0, + 1180.0, + 1190.0, + 1200.0, + 1210.0, + 1220.0, + 1230.0, + 1240.0, + 1250.0, + 1260.0, + 1270.0, + 1280.0, + 1290.0, + 1300.0, + 1310.0, + 1320.0, + 1330.0, + 1340.0, + 1350.0, + 1360.0, + 1370.0, + 1380.0, + 1390.0, + 1400.0, + 1410.0, + 1420.0 + ], + "pairCounts": [ + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 4, + 14, + 6, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "earlyPost400Pairs": 3, + "earlyPost400Rate": 0.06, + "unknownEarlyPostPairs": 0, + "noEarlyPostPairs": 0, + "acceptedPairs": 34, + "matplotlibVersion": "3.10.9", + "generatorSHA256": "766535930221932399509978f10b8b165a4a53854ccd020b2a379a83be842761", + "sharedHistogramAxes": true +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/input-manifest.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/input-manifest.json new file mode 100644 index 0000000..12aa07b --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/input-manifest.json @@ -0,0 +1,1602 @@ +[ + { + "path": "attachments/omnient-1-off-attachments/24536F82-5C60-4A6B-9385-BBB2290EDE54.json", + "sha256": "c6033968c60b0288264991bc72721800519fe2a658703e525c9d83a8c7ffa265" + }, + { + "path": "attachments/omnient-1-off-attachments/CA1085C3-20B3-4DDC-B548-6A03170FE125.csv", + "sha256": "f403493a5662edaf7216baefc83761931922f4e9b86af7b3482331c27a2a7d86" + }, + { + "path": "attachments/omnient-1-off-attachments/manifest.json", + "sha256": "5a25e2cd2a743ab335864f00bdb05ad30877d027c619ad83dc55b98cf733488d" + }, + { + "path": "attachments/omnient-1-on-attachments/5461D8B4-E28B-4B94-A648-6045EE336169.csv", + "sha256": "bc0687b84e57cbab6ba9307cc7e3108beda642de3ca1312c7285d4b1c6f34a74" + }, + { + "path": "attachments/omnient-1-on-attachments/BBF93274-42CF-45E4-ACAB-5126B2D4CA67.json", + "sha256": "77ed19fab205f25e27487069208ea4247f9f652aa949516bb0fb490b5d07398c" + }, + { + "path": "attachments/omnient-1-on-attachments/manifest.json", + "sha256": "5454a9f08c03960393dff33ab5fd393db8e225e1aefef561d71b5dcc982b0cb3" + }, + { + "path": "attachments/omnient-10-off-attachments/5592B3AD-4CEE-48C9-AA1A-BA2A64E665AE.csv", + "sha256": "a383fe8d30ddcf011c4e68629fd2ee28509ec47b9e89b731fd5301c16c66a174" + }, + { + "path": "attachments/omnient-10-off-attachments/5F7A803A-1092-4901-9678-AB95121C6AD5.json", + "sha256": "a28ebb7f361485dbb8b2e9e95b76bf14567575183a8c671c4905d9492ff49d15" + }, + { + "path": "attachments/omnient-10-off-attachments/manifest.json", + "sha256": "66124c02e8fd05a1969dc54ee93a3f741316081d118316a0ea39ed3923865b0e" + }, + { + "path": "attachments/omnient-10-on-attachments/37DF6681-D91C-4ABE-A1F3-EF61160ED02F.json", + "sha256": "bcceceb642a928ddb7aad890e45a8f133354701c2400e99fc7b4f8d97a314b43" + }, + { + "path": "attachments/omnient-10-on-attachments/67938B1D-2A00-4585-852D-0A4E1C8BA9A1.csv", + "sha256": "eeb7ccf6f475a398189870d0d8ac70c9f5498a9bcdb52664dad6c96767cb6648" + }, + { + "path": "attachments/omnient-10-on-attachments/manifest.json", + "sha256": "58c61ee9fb7936b2f42fd8783bf563821e673e4269d28d3dfc519b26df175c34" + }, + { + "path": "attachments/omnient-11-off-attachments/95F0AAA1-0C31-4F4C-9D3E-A7F98A5CBCEA.csv", + "sha256": "2dec6019d61742027f6d753645713c81973dfbc797f23af79fcb55f2941fbb5a" + }, + { + "path": "attachments/omnient-11-off-attachments/AAE5B97E-095F-499A-9681-CF4F9F3DA6AA.json", + "sha256": "ce75344e79b65feac7dd40c0ada557c44668c15a4e46f1f8d1830337d8ff2541" + }, + { + "path": "attachments/omnient-11-off-attachments/manifest.json", + "sha256": "1562e58769ec30a09460fb68791db7629b617900c650eaca12b56210d8afb39f" + }, + { + "path": "attachments/omnient-11-on-attachments/82969362-74E8-4F2D-8A23-AFFEA45D6633.json", + "sha256": "f80c22cfdaaf6a3bbde4349bf296a995cf9e55772cda2b0e698eee201dc4f74e" + }, + { + "path": "attachments/omnient-11-on-attachments/F6249430-C3C7-4F4B-8CD5-278CB850FE4B.csv", + "sha256": "52e2724974cdf4a89d01daaf6b358f4c04d443f7e95de18e745d4bbfefdd15a6" + }, + { + "path": "attachments/omnient-11-on-attachments/manifest.json", + "sha256": "1a362cb9598b484565b98b117298f46e92263f444003ac663e8066649c5300db" + }, + { + "path": "attachments/omnient-12-off-attachments/904C06C9-BFEA-416A-9D0D-6303301FEF54.json", + "sha256": "a758bea3cd4c1c74a90e4d33e6569fb35a15ce162d2cb77e7d3b78a2d3e1bd15" + }, + { + "path": "attachments/omnient-12-off-attachments/ECCBF373-1675-4429-95F7-07F3E07CA285.csv", + "sha256": "d8bd607c608a98e307f98ebc10807f45e31aedab87e1665923cf38753549e723" + }, + { + "path": "attachments/omnient-12-off-attachments/manifest.json", + "sha256": "4f5e973ce88b6d5c1fc90ae18f7006672ddea9c2572193918df4a648d016423d" + }, + { + "path": "attachments/omnient-12-on-attachments/77335252-70D7-4E57-8971-64609FEFB6A8.json", + "sha256": "d6add3bfd572df5f55faf892ca129d4f3d16f0105a8cd35ad76bfe632b53f07e" + }, + { + "path": "attachments/omnient-12-on-attachments/90F50E57-B9F7-4DA7-BC3A-F9250CC933F8.csv", + "sha256": "8e97856b718fcc57aa4a80fe67c3d2d0edc67001be779ea873fa96c6f9053298" + }, + { + "path": "attachments/omnient-12-on-attachments/manifest.json", + "sha256": "d57a3939b267bd8a7da7d18d2c6046422d2875551a6fa74b642b51e63e1a917d" + }, + { + "path": "attachments/omnient-13-off-attachments/B38E2987-3753-4566-8CE5-E5B2EF1B85F0.csv", + "sha256": "736b68d7bcff4cb69aacdef956fa19764f641caccbe467bb0b3d605997bdd957" + }, + { + "path": "attachments/omnient-13-off-attachments/B428AC6A-B164-48CA-9361-8BB4102FD66C.json", + "sha256": "03bb4c571d0ac6ac9a26bd4558cc203a55136a1860edfb740a19652301f1c716" + }, + { + "path": "attachments/omnient-13-off-attachments/manifest.json", + "sha256": "6db9e73a9f9aeedfdd1a8125de998e88f42084a4f4f3bbca6c521d63b5f690db" + }, + { + "path": "attachments/omnient-13-on-attachments/305275D9-27DA-4E0A-A2B9-70A7DDF04321.csv", + "sha256": "9467d01fdbff15f686cd578a6b1623c9f5e423701f438ae8f31b480c46f1881c" + }, + { + "path": "attachments/omnient-13-on-attachments/B32E97B0-D8E9-451B-92D7-11450D4A4A34.json", + "sha256": "298948605b4abb79e22e495b4ce8e653ea230194b1fa5eb919a7bca4621927cb" + }, + { + "path": "attachments/omnient-13-on-attachments/manifest.json", + "sha256": "2c58e27c9affaa9105515ce9a39515e74229310f94ec9c77644abdb3d6e99cc8" + }, + { + "path": "attachments/omnient-14-off-attachments/F87497A5-9B52-4F41-9FA1-F196BA7EEC03.csv", + "sha256": "74e8d3f0e95b15ac518592dce840d32337affaf323fbce7161666e6b47c28290" + }, + { + "path": "attachments/omnient-14-off-attachments/F965DE23-9CC7-4071-BADE-40081742AA05.json", + "sha256": "d29d1469bb8d7b2a59d661ac8c80db1efbec2d6b7b467b7d1cc4737d4bea358b" + }, + { + "path": "attachments/omnient-14-off-attachments/manifest.json", + "sha256": "2f514642a63a468a9bf1e76a1ebf093caf5f0f85cdd35f5c183a43e2982fb1c0" + }, + { + "path": "attachments/omnient-14-on-attachments/4D1EEAC3-8CE3-46E4-81D4-1D18BBC95C75.csv", + "sha256": "c92d676fe9f5999940548b80ed9fb6fe0b5792ab6cf65cd89bec5ae1ed541c1d" + }, + { + "path": "attachments/omnient-14-on-attachments/E81BE51C-3F8A-4500-9A28-63AA3A386F4A.json", + "sha256": "6bd7ff14aa88d68309a8abc31171dffedd1a9413ab71b2f90c00603e14c98118" + }, + { + "path": "attachments/omnient-14-on-attachments/manifest.json", + "sha256": "6e1d7cd88ee6f515e255ef47a3fdbfba0af0bd444b4b7bc068b40b9795b24a76" + }, + { + "path": "attachments/omnient-15-off-attachments/A5FBE1AE-A257-4A89-BEE6-2F3C9114524E.json", + "sha256": "90a9913bb253939d56519fd6e78da1d0c6df7fa73dd383a8b7c30f55575d6b6a" + }, + { + "path": "attachments/omnient-15-off-attachments/F3B52973-F175-48DA-9D53-84577C6C77B1.csv", + "sha256": "93b7f7178fc20c9a85c41e36ef0c73484b2d4e76bbf7861457e5601d1b45813f" + }, + { + "path": "attachments/omnient-15-off-attachments/manifest.json", + "sha256": "f514b05c0bf7c6db99386b921ad000c57b2afd15d3a481fb800a9caf3d7e5ff0" + }, + { + "path": "attachments/omnient-15-on-attachments/06210C41-6508-47B4-909F-B647693097AA.csv", + "sha256": "946b3c3022718fea51d3c74c487a87e503030326a9d939f685ea58192366b07c" + }, + { + "path": "attachments/omnient-15-on-attachments/F4302547-2995-4971-99F5-47A398347383.json", + "sha256": "905e684cd0cc7d645559e2d9ecebac28ddf04bd9b492c55153f8451b34a7f5c7" + }, + { + "path": "attachments/omnient-15-on-attachments/manifest.json", + "sha256": "d88920e483d3ccb2d22167ef9c2b863c665cb7601ff13359672d201c7142a0da" + }, + { + "path": "attachments/omnient-16-off-attachments/B248B025-8ACA-4E1E-8951-273D50698D23.json", + "sha256": "8939c2c04209ab58d99f247ad383f591de0a9f050072d5a8151eec1a29b785ed" + }, + { + "path": "attachments/omnient-16-off-attachments/EBCE3A4C-286C-49A3-9322-A9E686738143.csv", + "sha256": "a9e324ab8d329755c589458f0a1907da5b0dfdc55e2fc6f1458c0e7a92e120ed" + }, + { + "path": "attachments/omnient-16-off-attachments/manifest.json", + "sha256": "8d8ea1d5454ac6eaade26981863803cac55d7b2c5cf13ba64ae5befd0d8efbfb" + }, + { + "path": "attachments/omnient-16-on-attachments/875F8DE2-BF88-44C9-9953-344B9530BB93.json", + "sha256": "0e9d298eb3bf7936940b1bb74511b49faf2cb48a4e7ec6b02a5b20ad84ab011c" + }, + { + "path": "attachments/omnient-16-on-attachments/9224F0E9-8B72-4781-8E39-7C7E5F2346F1.csv", + "sha256": "8f6c027176e2ae574e064b0b1e89a467b8540fd8fb5e4689b7df88a21fcff55c" + }, + { + "path": "attachments/omnient-16-on-attachments/manifest.json", + "sha256": "f31cb52bf0276c145eaeebd07eac7c754b203862aa591a75f182095afbe33c77" + }, + { + "path": "attachments/omnient-17-off-attachments/48433DB3-A6CE-4318-9176-67639A3AECA6.csv", + "sha256": "26651997a55597f2af995f7661ef7944073f7d9419f72ec6907f5ac34862a99c" + }, + { + "path": "attachments/omnient-17-off-attachments/667447D1-78A3-4815-A8DF-7095AF7805C3.json", + "sha256": "a25564f63a31efc359e0045ca0fa46092666b0c293aa6331094cc915924e9484" + }, + { + "path": "attachments/omnient-17-off-attachments/manifest.json", + "sha256": "cf178f7b0a2e1c7fc332ddf29f9bb6e498e7c8389320772ed126dd91bbcacd98" + }, + { + "path": "attachments/omnient-17-on-attachments/B10403D4-201D-4FDD-9230-826C4B30261C.csv", + "sha256": "5bb3591551d7520ad00897f5cdb6b9eb4f33503833823f9cd3b0fb5b6c212800" + }, + { + "path": "attachments/omnient-17-on-attachments/FD349D22-C4F2-4EB9-BF35-3884FC167F1B.json", + "sha256": "256bd035ee2f33e952de70e5017b9ed43f921063f1bb766247777cfb63f4aecc" + }, + { + "path": "attachments/omnient-17-on-attachments/manifest.json", + "sha256": "139a0ec605da4d98ed0fecb477d8510477d41c99442de1c98555f417f32d2c85" + }, + { + "path": "attachments/omnient-18-off-attachments/80E695D9-444C-49EE-A996-54D95E4F4578.json", + "sha256": "d9c178ffcd326375fe3a39f7c99f8c24e7856227b406d5db67969f7afa9ad584" + }, + { + "path": "attachments/omnient-18-off-attachments/D331E744-769E-4D4B-A96D-2C9170403496.csv", + "sha256": "b2c90a663e8bc22249d3e0d4ac9dfdc58aa3e5eecc28b4b7dbd535ad4ec37356" + }, + { + "path": "attachments/omnient-18-off-attachments/manifest.json", + "sha256": "236b44587927a56f837f029d57d866f88a0219aa2322f0c03c46efa1a6f9f640" + }, + { + "path": "attachments/omnient-18-on-attachments/18689500-A7F0-4A6A-88F4-8AB2F23F4EB3.json", + "sha256": "7d0f4c52467bebe256a9a17983128e795b5e43ca6427ff957bea3690b8c62bd8" + }, + { + "path": "attachments/omnient-18-on-attachments/875ACED4-7E25-4B92-822E-2722AADB39A7.csv", + "sha256": "200d939f1e554fdedeef46f3ee69c96e26f87e8ab2c9149a3b70bfaba076dd5a" + }, + { + "path": "attachments/omnient-18-on-attachments/manifest.json", + "sha256": "d0b3a94fdd12c75ef24aee4d93376b1be12310f3775798129e6883a6e46e8b71" + }, + { + "path": "attachments/omnient-19-off-attachments/3A124021-A144-4441-9E27-F0A99EC13506.csv", + "sha256": "ec5df361e0f7eb12f0206201530aa01ee6dbd8cb23341c8bdec1dce1f2e173a1" + }, + { + "path": "attachments/omnient-19-off-attachments/A2395425-3E20-4CE4-96F9-28AC4AE38C2E.json", + "sha256": "7cffd943e57738219c59187c51ef6706dc3a00044da33ee39ed31077c32ff0df" + }, + { + "path": "attachments/omnient-19-off-attachments/manifest.json", + "sha256": "f4fd43e45a4597ae1f9885b4cd098f02aa926d6a70c6186c022d146d8463a406" + }, + { + "path": "attachments/omnient-19-on-attachments/46C095AA-9FE9-4F98-AA94-EB27FCEFC9A4.json", + "sha256": "b26554fdb330daf681ee6a5c52f40cd2008617330a34e60edbad864295eac11b" + }, + { + "path": "attachments/omnient-19-on-attachments/BDA2F11A-D1C8-4D41-9982-A0AEC7439BB6.csv", + "sha256": "0769f8bc10a8e0db77425df32bf13043141879234d3c6b1b43ca99d07a2b3849" + }, + { + "path": "attachments/omnient-19-on-attachments/manifest.json", + "sha256": "d560cf42aac6f78952dea3050e46788b8043b38e445e8fd9525a7432bc0fde76" + }, + { + "path": "attachments/omnient-2-off-attachments/0C54C5F5-61A7-409D-A1A7-963F972E616B.csv", + "sha256": "359afd46ef4f62ccfd059033065f498894d6f199d71cb2299bf63578822563e9" + }, + { + "path": "attachments/omnient-2-off-attachments/81F3A7B9-A0EA-44C0-B974-9B43369580AB.json", + "sha256": "a44277b976a029a05f5efd723ec89c20728fbafb7e43cb8e9a1dc1678acf1e4e" + }, + { + "path": "attachments/omnient-2-off-attachments/manifest.json", + "sha256": "c57568b52511e557ee38c0dbcdbbaa101639b722c9045223a16e86f30303c1a9" + }, + { + "path": "attachments/omnient-2-on-attachments/EAC63B8F-6A1C-424D-97F6-A3F4B706711C.json", + "sha256": "36770a24c77dcf23b009721a55725ec03e04d653ff83cc997238f83d6a825843" + }, + { + "path": "attachments/omnient-2-on-attachments/F8C3E241-137B-4409-BCAF-F893EECA08A4.csv", + "sha256": "a3c152256c66a58e2c822a8b4b2e83dd888d988133d2cdecf6d3ad1b9a31d20f" + }, + { + "path": "attachments/omnient-2-on-attachments/manifest.json", + "sha256": "3b59ad50c2ba9d4ad0546ccb19a6f156c6c2a92a48ff5ccd395cbdc8eebc40da" + }, + { + "path": "attachments/omnient-20-off-attachments/63A6596E-CF57-4FF6-AD23-B1B5FD57C0DC.csv", + "sha256": "944af6a988a58254899939a54293ad871a0c303154c4eee4cc3f08000e3c749b" + }, + { + "path": "attachments/omnient-20-off-attachments/E2A39D94-FD88-4254-8765-AF6AA6423616.json", + "sha256": "c184d2a5b64c60878c7ce8102f76f2c51791066fffedbca87fa37592874f9c58" + }, + { + "path": "attachments/omnient-20-off-attachments/manifest.json", + "sha256": "45e5569c6f088c50801934de2f7088eb506d0a8a245103de7d25e6d13204e80d" + }, + { + "path": "attachments/omnient-20-on-attachments/660D0A79-BBCE-40D5-9594-BEAD783752C5.json", + "sha256": "7d6633d1b366011f202af5fb98745f63a94dea0e862537ff15b10045eb64d368" + }, + { + "path": "attachments/omnient-20-on-attachments/9BD0DFF5-2A72-4B7C-B791-FAFB067E589B.csv", + "sha256": "84ed8e931819e4a937385c6ba00133f713ff2071ef35028f407c61ea61b1420e" + }, + { + "path": "attachments/omnient-20-on-attachments/manifest.json", + "sha256": "ad8b2c6cb08c6394de9c11df6d7e6b3eb266fc0f640e3d225ba464b207f5be1c" + }, + { + "path": "attachments/omnient-21-off-attachments/7815AC03-E6BA-479C-BF4D-F42E018752D2.csv", + "sha256": "f1d10caba461edf412929fd4f0fd842b1c63a98d1fdee4b68d69c808123e9bb6" + }, + { + "path": "attachments/omnient-21-off-attachments/B604B714-82C5-4DE3-B649-3E6956CFDC2B.json", + "sha256": "a6836b90f89bee9e80e4efd78452471b8aca0a9e4bcc25c026fb438d389f326c" + }, + { + "path": "attachments/omnient-21-off-attachments/manifest.json", + "sha256": "c16472c192236b0b91a3f451ea41e38c0b0ebd51d00fa1c2e2529d24945cdd8a" + }, + { + "path": "attachments/omnient-21-on-attachments/5C9AAA62-FFDE-424F-86C2-43D736D7A402.csv", + "sha256": "3e7cf3f33c857f0b983573756add6f051b85ed421b39d9a954c1b67113a87ef0" + }, + { + "path": "attachments/omnient-21-on-attachments/CC90FA24-7EF3-44CF-843A-37F77D9FD221.json", + "sha256": "3893bd794ab6a1188162349fa4d2b087c9e123316e0d7bc31730b8c7b470bf3b" + }, + { + "path": "attachments/omnient-21-on-attachments/manifest.json", + "sha256": "1c7b05a838a8205645c37e19ccfad02daa4166c1f6b15a7467ceb44655a1f9f6" + }, + { + "path": "attachments/omnient-22-off-attachments/6B934CAE-BB6A-45E9-9E2E-52CD8DAD10FC.csv", + "sha256": "34739e33f348715ac6734ae13d511a5d5f0636bd88557abddc87133b92a962fe" + }, + { + "path": "attachments/omnient-22-off-attachments/CB095712-8043-41AF-A45C-84874E405127.json", + "sha256": "575e2592c8b4478b5bdf53d19f26e2ca8f317a1cca1dff1eae48238f6fc17089" + }, + { + "path": "attachments/omnient-22-off-attachments/manifest.json", + "sha256": "e9eb7f7f95d9978eecc0994da95ed17c6a65123bc6840680404bd6681e09030b" + }, + { + "path": "attachments/omnient-22-on-attachments/7E368CF3-8FC6-420E-AB08-6C3AB5DE9F84.json", + "sha256": "8ba898ed2456e86c8e3d50efb71aace4b7039c955e783e0e6e53f3dd3f81046b" + }, + { + "path": "attachments/omnient-22-on-attachments/A96FB450-6C9D-47A1-AE5B-26091F31EB37.csv", + "sha256": "f1d2def94fb0ad6f4a5cb771f3dd2a73a4a9fd21e307bc14bf70d5209832541f" + }, + { + "path": "attachments/omnient-22-on-attachments/manifest.json", + "sha256": "0fb917dd639b6ebfa9ceab8822d8fff4236d39fa525fc7573e20e9daf8c21d33" + }, + { + "path": "attachments/omnient-23-off-attachments/7B498BB4-04B0-4638-AE7B-2234C3AC1347.csv", + "sha256": "e6a02b654e5ae3ecc0e20c40f862a77170b6f487b6b0c85cb28dd1116487d17a" + }, + { + "path": "attachments/omnient-23-off-attachments/B86054E9-AAA5-48F7-A50B-D19D063E73A0.json", + "sha256": "1d4984ef93477aa6eb8676605866cd7e85ae9774d7198bbfbcd8b9d40dfbedf5" + }, + { + "path": "attachments/omnient-23-off-attachments/manifest.json", + "sha256": "484027e4044371bc086aadc19acbbf1d2af79c794a384ad787c21aa0f23930de" + }, + { + "path": "attachments/omnient-23-on-attachments/3B95527E-CC4C-47FC-914C-0B1B367A1B6C.csv", + "sha256": "81d37a0979f48230ee0021b61716bd39851d87c37a73f6f5a264284963b5a67b" + }, + { + "path": "attachments/omnient-23-on-attachments/E4A9AB7E-947A-4CE0-AFC5-DFF800DE27C7.json", + "sha256": "6431d6772e9944a8b399685bc41daa5994969349bf23911ced5329d70752848f" + }, + { + "path": "attachments/omnient-23-on-attachments/manifest.json", + "sha256": "ad1e2df71561c43bf18baebe1741def122dc0ec1aa974a4b446f7905f51ca37a" + }, + { + "path": "attachments/omnient-24-off-attachments/241DB052-4A2B-4A64-B611-AEFB78474D59.csv", + "sha256": "5b6910ef4abb5e1a2165095cb561a56beb16db0639f057df3740b076d6af16fb" + }, + { + "path": "attachments/omnient-24-off-attachments/794BF4AE-80E9-40F2-BA0D-4ABD1D0427CA.json", + "sha256": "206c9cee2e33f9656c59027c14a013341c2f9722201c54e1237588ff42872f6c" + }, + { + "path": "attachments/omnient-24-off-attachments/manifest.json", + "sha256": "5b8bcdf9215c0b0b80e5c7b1a6a051dd05aa77317718fe9a2df1cf89b8890766" + }, + { + "path": "attachments/omnient-24-on-attachments/98677DEB-17EF-4257-AB30-FB86F79F2470.json", + "sha256": "1a5fc40b912a100a262ce035278564d18d72e672db1982bce64f44675f695de4" + }, + { + "path": "attachments/omnient-24-on-attachments/E8A69DD5-0658-4E54-BBE2-19FEFEC84645.csv", + "sha256": "f6e694edaacf9e3ba25f7bf9270a6511a668dda22fe9b884b4c07910cda0db6f" + }, + { + "path": "attachments/omnient-24-on-attachments/manifest.json", + "sha256": "ddad2984771659f69ea30d8c062742af8ea9c843928c10b353e7e76746e60410" + }, + { + "path": "attachments/omnient-25-off-attachments/AE481D8A-8D18-4E65-894F-125676583F30.json", + "sha256": "b469df4d8fdf243f850c4e273e57b4e4bd3492d03efd0b85bc3438cc0a9dd460" + }, + { + "path": "attachments/omnient-25-off-attachments/C6A4E847-2205-400E-89C4-47E839EB7000.csv", + "sha256": "a9a3646b3ec5840b02eb16b4f75c3e96a0eeef191857ec68f3ccea40379573de" + }, + { + "path": "attachments/omnient-25-off-attachments/manifest.json", + "sha256": "92664b49a88043d49608dcfeb1597f7ee0eb74b4807f61c97b92e66be9b80ecd" + }, + { + "path": "attachments/omnient-25-on-attachments/F15C1B32-2198-47A5-8EBC-43AEE0B7E618.json", + "sha256": "fb2ccf38d2badb663ba433936d130071bad4f2d08b26f59159d59fca26ab13ca" + }, + { + "path": "attachments/omnient-25-on-attachments/F9C62E7A-2150-41BF-B1CA-378D5322F8EF.csv", + "sha256": "4633b020d0f958ace05e485ebbb3838f6ad568dd73983da6ed1134033e7b4b8e" + }, + { + "path": "attachments/omnient-25-on-attachments/manifest.json", + "sha256": "d4fe70b227897252d0cb78c4912f9284170e84ca4889fc19ff4bea31d11c1b7c" + }, + { + "path": "attachments/omnient-26-off-attachments/2C832D10-5702-4711-BAB2-99398B720D6A.json", + "sha256": "4099ec286351ac6ee6132963a34df5ff7d2aba944a6f79d1012d435b78d81a5d" + }, + { + "path": "attachments/omnient-26-off-attachments/FFD2FB60-9C8F-4588-8818-0674F550B201.csv", + "sha256": "cc07baf867bd66ff1f5b5d18bfc0977c91fe30be3d99e0786c15fd040f73122d" + }, + { + "path": "attachments/omnient-26-off-attachments/manifest.json", + "sha256": "0f3cae509ee83262ef4962a2399330b792315e3d33b698db0acddc82077c3313" + }, + { + "path": "attachments/omnient-26-on-attachments/A9CFA89A-2BA5-4AF6-88EB-AA85B7E78793.csv", + "sha256": "d6884917d0abb8dd26c8933b0e20779e7d1a03ef53e3abd0a1628a460480b4e0" + }, + { + "path": "attachments/omnient-26-on-attachments/D0F8002C-108D-4DB5-B235-E94530FB4145.json", + "sha256": "d4e7795d5ff09f61e8b5f01821a0c51d68e21f693db99a4f7f0e2201ad6713ea" + }, + { + "path": "attachments/omnient-26-on-attachments/manifest.json", + "sha256": "8562cca622dd6e0d826779da4293ea3d25acfd8595163ff19fa97e980903e2ff" + }, + { + "path": "attachments/omnient-27-off-attachments/6BF99349-5A33-4BC7-A0E1-84A8E015919C.csv", + "sha256": "1d6559be07aa61d8d2963e3152ebe98a0e08e4157c3c77557fa8b1e401d73a3a" + }, + { + "path": "attachments/omnient-27-off-attachments/76FE9420-8494-42CF-9BDD-8596917608DD.json", + "sha256": "b86c30f39d053bd73ce53f48329aa9a738fc8090151b1f82239389117cb11720" + }, + { + "path": "attachments/omnient-27-off-attachments/manifest.json", + "sha256": "1f5df5a4d64b8415e071767a001e3d8fa4d688b116ecfbfedb9b68486525825e" + }, + { + "path": "attachments/omnient-27-on-attachments/34D0D32E-FE7F-4022-8039-9E82958465E3.json", + "sha256": "3c10196f2972f387bc13ad6f89c145d37cd1a372a4ea189fbd6a3368b72c3aa8" + }, + { + "path": "attachments/omnient-27-on-attachments/4A443C2D-8A31-4C69-84DE-F63D66145D1F.csv", + "sha256": "b6eba8a8948b2676f924ba73a4db00c6efef7a4e96ca903c7e9470d2e88a159c" + }, + { + "path": "attachments/omnient-27-on-attachments/manifest.json", + "sha256": "1c6f8b199076e309b450cecaea1417681a847d4d048c86b0054c0070311fa4e4" + }, + { + "path": "attachments/omnient-28-off-attachments/0E1F912A-A171-4F6C-A898-3B6D4DEF2C3E.csv", + "sha256": "9fa93adce141fb1f1e08ecf25c25017386694db4558cbfa5aa13a3aa7d18a488" + }, + { + "path": "attachments/omnient-28-off-attachments/69D042DC-3CBE-4D52-8BF4-6D6AE721BF96.json", + "sha256": "9f75e730f8d8e5cce3b5b149b6bbdae8f52fb9482111c88a8c44c4802fdf1d2e" + }, + { + "path": "attachments/omnient-28-off-attachments/manifest.json", + "sha256": "f33d0460e3262f63f60a59972881fbdb0eb63be3fd41e362247284be89eb3022" + }, + { + "path": "attachments/omnient-28-on-attachments/AEE9FC12-D68B-4A94-9DA0-316A9ADFDE2F.csv", + "sha256": "ca069b229c8176d2487e8fab1a5b4476539e7567d497e99ae490d396c9682952" + }, + { + "path": "attachments/omnient-28-on-attachments/D6CE0CBA-016C-47FF-91E8-09084745A4A1.json", + "sha256": "99585d580023ad20f850a28318e9c2101a79908dfd135408f14359aa0839e1fe" + }, + { + "path": "attachments/omnient-28-on-attachments/manifest.json", + "sha256": "4b81f25536f1c0a16959e095b79c2aaa835c75723ded68bdd695ce5b020565be" + }, + { + "path": "attachments/omnient-29-off-attachments/2DC305E3-28D5-43C3-B314-8C68372CE421.json", + "sha256": "422832826a62bb8a4c760f62ddf897baac75568b8eb9b4138e8d7996fb3b8d0a" + }, + { + "path": "attachments/omnient-29-off-attachments/7DD03AAA-BD24-4333-804A-87C741453A5C.csv", + "sha256": "2980439b9af7bc3bf1cdb0d3e6539f0b299bbdcad81f60bfb5eadbae8dd0a374" + }, + { + "path": "attachments/omnient-29-off-attachments/manifest.json", + "sha256": "d921c6691591af97702d80ae149eca7ae31e0a3caa0f9832b632cfa132ebd88b" + }, + { + "path": "attachments/omnient-29-on-attachments/1FCA74F3-5945-4A2D-A604-7E5C77C2BC0D.json", + "sha256": "54275250fe54b8f778e051d09260fe820b3479a4ddfd2d7adeddd7b42b351b36" + }, + { + "path": "attachments/omnient-29-on-attachments/9FD689B8-3487-496A-ABBC-14B98D7C6BAD.csv", + "sha256": "9cf57447fd03e41cdd70aa6e1f7596c58ee3f509da02c83b740fbf4d1a8ffd0b" + }, + { + "path": "attachments/omnient-29-on-attachments/manifest.json", + "sha256": "5aa92a94359760496a07048a35f686d062d4647a4a2333a04375196cbd8db278" + }, + { + "path": "attachments/omnient-3-off-attachments/4172C3C9-AA42-4684-A05F-215C17C97D72.csv", + "sha256": "769b76bee04be1b8255370190a485e01e9dd4fed9975c6e2d2d4abde69232c24" + }, + { + "path": "attachments/omnient-3-off-attachments/A68E48F0-D4EE-4728-AFF4-8334807D817A.json", + "sha256": "8e45831ceab731921233b0ff96a6a93824fbf31362496e39e953c3d9ed9d74ec" + }, + { + "path": "attachments/omnient-3-off-attachments/manifest.json", + "sha256": "15140c6f62170793a9bf9c322e7a8a1a84c0df8865d716f1d1f1557063521cee" + }, + { + "path": "attachments/omnient-3-on-attachments/500517ED-11A5-430B-89EF-B0C7EA612CD0.json", + "sha256": "da641e343e47b8ec0fb0c79031f1369d936ce3768918e4f5162ff83571facab0" + }, + { + "path": "attachments/omnient-3-on-attachments/C56DA536-F972-4382-B0C4-B5BE4B80A45C.csv", + "sha256": "38aef2489eec3758df96f45d4c0da24c1c27e85fb97aa54552a9f7fbd2475321" + }, + { + "path": "attachments/omnient-3-on-attachments/manifest.json", + "sha256": "ccf3a338f98915555e85c9b519590961e78a8d180674c3d98b9e2ca52c65075d" + }, + { + "path": "attachments/omnient-30-off-attachments/6B1FF90E-9E90-4748-9322-35A9048C0104.csv", + "sha256": "bed94c292a99c5f4a61953146c0965dcb998b05ae613d3690aaf6317bf07bf65" + }, + { + "path": "attachments/omnient-30-off-attachments/F10B7161-B75F-4166-92E9-DD5FE04CA7E5.json", + "sha256": "f52b46196676fe1af9d6ae6f838c72d31ee572e16edf39c7d13951a5a549c0ce" + }, + { + "path": "attachments/omnient-30-off-attachments/manifest.json", + "sha256": "47d77d4c0af96d04fc40975e920c886d6e13eb0cf7e255720f15aa8da7897e6b" + }, + { + "path": "attachments/omnient-30-on-attachments/72E59653-FF17-496F-8901-00662EEFAC36.csv", + "sha256": "910af5febaebd5918e2991307fe743d4752611fdc7223e91396973f8c7502fad" + }, + { + "path": "attachments/omnient-30-on-attachments/C548AD7C-080D-4820-94D6-027CE6AC08E8.json", + "sha256": "b63e12a41a0dd0883b3dd8bbbb45026c34a1553ffee3bb97366a9855afcdff98" + }, + { + "path": "attachments/omnient-30-on-attachments/manifest.json", + "sha256": "15cf58331a200751b12e388650c2da8f06b35ae25abc1429ebb1d3e06cd94095" + }, + { + "path": "attachments/omnient-31-off-attachments/C298094E-F33D-4552-91DA-0D1603DCA00B.json", + "sha256": "ab555fbdaeddf9e8fa610e2383d7508090a7c6ada4504dba9fbe8bd304671f94" + }, + { + "path": "attachments/omnient-31-off-attachments/D1001AEA-BDC5-4F6A-8CA9-8E2D1B839653.csv", + "sha256": "389dd04574b34c544a12aa395f0a5fc6adaaa79fa8f5b66f402bde13fe9d5f9c" + }, + { + "path": "attachments/omnient-31-off-attachments/manifest.json", + "sha256": "5582ade986e918e7ac4ad571f5fc1777af859cbe12306f6afff7df01853a655c" + }, + { + "path": "attachments/omnient-31-on-attachments/240ED765-2CE0-4A08-B3C2-7BA585F5FA7C.csv", + "sha256": "346686bdc3a8925a7a17d5670088ab3da223911f960aadebc8c999358a52e903" + }, + { + "path": "attachments/omnient-31-on-attachments/743F5CA4-918C-493E-8061-E3F565434E27.json", + "sha256": "647ef1a1df2d1a7d5ed71227fb26e1cdfe30adf96296de1dc13e62863641d8c3" + }, + { + "path": "attachments/omnient-31-on-attachments/manifest.json", + "sha256": "896780e08634348b7f8964d20d7a579eb162acb64637a32cd4876a56bfd79c87" + }, + { + "path": "attachments/omnient-32-off-attachments/028F264C-9442-4FAB-AED1-582F73C3C394.json", + "sha256": "becd89c0c4e708bcb157afe05fb50905ad38580b128cbac768fe8bf09e1220db" + }, + { + "path": "attachments/omnient-32-off-attachments/74192671-36C7-4CE3-9EAE-85D324CB3543.csv", + "sha256": "7518d2ff420ac2278ef28b2944000c0252a80b91283c69a207d93d5a4c5ba5ba" + }, + { + "path": "attachments/omnient-32-off-attachments/manifest.json", + "sha256": "6c104ad222c502f5ca2d5c70f860125b218f5d8d49823f87234336e3a60b57f2" + }, + { + "path": "attachments/omnient-32-on-attachments/20DCE190-82CB-44C1-BD88-6733D705172A.csv", + "sha256": "8c8ecf4e3d4d287a05c1f8ba6e00867feebf937baf75e8db43cf02712f87091d" + }, + { + "path": "attachments/omnient-32-on-attachments/65EAAAE4-9D82-4D27-BFB5-AA77447C6493.json", + "sha256": "223f3d157c50dd980bcfb200f90d0eface52ab7624d37364dba23fda5f4e3705" + }, + { + "path": "attachments/omnient-32-on-attachments/manifest.json", + "sha256": "760ec0026413b2f6eea26ff7ab5ba0d41dcd031abbaa3faa5955fc5460a346a9" + }, + { + "path": "attachments/omnient-33-off-attachments/3004467F-7B22-4426-8FFA-A5F57637F12B.json", + "sha256": "ca3b2a38cd8bd46caf708505f6d128133c4571b75a02c016f780501bac0c5cdf" + }, + { + "path": "attachments/omnient-33-off-attachments/31C23912-3E0B-462A-81D4-246F659A28DA.csv", + "sha256": "6b865d1081a30c0f3a82d7c5a354e15b2884ce31e3e77d0c920caefd86651e5c" + }, + { + "path": "attachments/omnient-33-off-attachments/manifest.json", + "sha256": "0e8f5c9fbe5ec28125885dbb789fe530ce331efe3fa44612051538cb4490c11d" + }, + { + "path": "attachments/omnient-33-on-attachments/357BDD8B-4500-443B-8E60-5FF41824780E.csv", + "sha256": "4f1fd4f81eeb67bb709165c03a0fafe61eeb7a5f9291d5418f5169aca3e2c93e" + }, + { + "path": "attachments/omnient-33-on-attachments/99EE87F4-0C84-4208-8243-AC3BAD07F436.json", + "sha256": "ff0c37445106c325e3383c60f0f665add646cc38c8afce8c2a220b12d6758b82" + }, + { + "path": "attachments/omnient-33-on-attachments/manifest.json", + "sha256": "764c60d15f94cd7bde58005aa7b1a3ca213d94efb8192ec5d3d44d1c8a33babc" + }, + { + "path": "attachments/omnient-34-off-attachments/14B24A2B-96EF-4837-A058-7139584A80E7.csv", + "sha256": "011285e712e235ab697da12c7ae3a9f8102940b30f00e1727f6ec0e70551d65a" + }, + { + "path": "attachments/omnient-34-off-attachments/9639450B-289F-46A8-9F00-4A1456FCF9FA.json", + "sha256": "db2b292d15fa675919898cba04a47ae6e19cc06299dc7788e3b9906ad4c1f6a3" + }, + { + "path": "attachments/omnient-34-off-attachments/manifest.json", + "sha256": "2687d479f95f020c2c483c76fed5da16012ae97007d890f088f6c0bcadec5290" + }, + { + "path": "attachments/omnient-34-on-attachments/9E2C8B8E-C30B-4182-BF9E-8E27972F8B6D.json", + "sha256": "a13f148af26a3bfe65f260f71769cf0c80810b6a525975688aeb29109e13f783" + }, + { + "path": "attachments/omnient-34-on-attachments/A87B17CD-00B9-4FEE-825D-DC69CE83C9D0.csv", + "sha256": "78a71c72d039765277ac0cc0d507e2ca3c35642c1b67feb8b046918f2e50335e" + }, + { + "path": "attachments/omnient-34-on-attachments/manifest.json", + "sha256": "c9d6971b79a4d7bae5f3ba3d298b85f7b9fe412e86b5973f2e958410b0084284" + }, + { + "path": "attachments/omnient-35-off-attachments/94EFE348-79CD-4323-8979-854493D1D2D9.json", + "sha256": "853a3c241b1e6dd927676d126a7aafcaf30b60a7387c09e0ca0bdc036fe11517" + }, + { + "path": "attachments/omnient-35-off-attachments/96403530-9AAC-4BDE-BBB7-3F5AA228F23B.csv", + "sha256": "1e7ec356e151654bf16e3d3931521da68846503e2ef994a09ceb4233af657bcc" + }, + { + "path": "attachments/omnient-35-off-attachments/manifest.json", + "sha256": "db4dcc27d0381a4d836e8885dcefe133b8e8e990838ec4339d8eac4204e7abe5" + }, + { + "path": "attachments/omnient-35-on-attachments/02685510-C0B8-4402-9125-8CA37BD50FED.csv", + "sha256": "5becdd6bb10b758c88b26be79a262456cbba57b13740fa266ac7fcc978b81da3" + }, + { + "path": "attachments/omnient-35-on-attachments/0543BDA4-5B11-4DE2-A552-8D11473AEFC4.json", + "sha256": "4dcae914c29e4ad88f9f82bdc8da2a378d0d6f70bd8d4af16770bbd4fcecd6d7" + }, + { + "path": "attachments/omnient-35-on-attachments/manifest.json", + "sha256": "d63bda855bd18549a4600f35b0ae84a714fc7e479aa1a47467db212a003316fa" + }, + { + "path": "attachments/omnient-36-off-attachments/A99EDFFD-8DBF-4DB4-B89A-DD74F9862616.csv", + "sha256": "637df73e53a8877b72b36505683829fcb0c1a8098aef1b905ecfd6f9411e8ffc" + }, + { + "path": "attachments/omnient-36-off-attachments/FA284ACF-5D69-46CF-A6CB-EC37FFDE7CBF.json", + "sha256": "999486c947fd6a75d3c8cee8f2f7ee836343101798f2b64dfda24308fcba7a46" + }, + { + "path": "attachments/omnient-36-off-attachments/manifest.json", + "sha256": "3437cdf0daa314ee0942f0c6b399bcb1e6b763cb2220815fc04159ee59b76c86" + }, + { + "path": "attachments/omnient-36-on-attachments/410C7691-E51F-41F4-A0A9-8718AA79D816.json", + "sha256": "7c50c8b4254c62584b748ce534f6fe7cbb40d59a9db72a0da1e0acde727cfefa" + }, + { + "path": "attachments/omnient-36-on-attachments/B953E590-015A-438D-A509-65261F6F82B5.csv", + "sha256": "806bce7dc8a121c129c68a5034133cd91ace504bd65f30f2face4c184dc95c2e" + }, + { + "path": "attachments/omnient-36-on-attachments/manifest.json", + "sha256": "bca18c2cdecdff3208e2d200cb57ddc0a6aea32168bfbfb87b2d711ae0a20591" + }, + { + "path": "attachments/omnient-37-off-attachments/089265AC-C8D8-4E4B-A46E-88E8D8C7CD95.csv", + "sha256": "3ee9c09fbc33f7941ad706d88feb3248f6225a8bac472dc07a1ea4f71fb8388b" + }, + { + "path": "attachments/omnient-37-off-attachments/91205504-48DA-4885-8723-627D0C02518C.json", + "sha256": "aadf4e9ba6a9a18748184bbcf2ce3a8eeef28b52e693528321d0e53eaf8593bf" + }, + { + "path": "attachments/omnient-37-off-attachments/manifest.json", + "sha256": "dc746dc6ba79679b25a5b99815e27b4d93e9320240a2ad412f70e2537449f7d1" + }, + { + "path": "attachments/omnient-37-on-attachments/401B5D48-F723-4CA5-ABEC-EBEF61324ECA.json", + "sha256": "7c4c7c818fc7f3ac141e192edb34bbbb280a09574f965905cd6acfa5ac78af82" + }, + { + "path": "attachments/omnient-37-on-attachments/9016AC85-3D1B-4966-B774-2D2705EDB6A8.csv", + "sha256": "fe203149d2e9b16e4b79b6a27d66b8c17351ac32c99a1280da455a1dfe6bc9fe" + }, + { + "path": "attachments/omnient-37-on-attachments/manifest.json", + "sha256": "17cc01b13f9fbb414bea6ba35c4470c120c4a498ad20e1b191c70e38c6cd7337" + }, + { + "path": "attachments/omnient-38-off-attachments/35D03CDE-DDB7-4221-A73D-952F398EB750.json", + "sha256": "bc239107150b9d68d364fd1e39ebd0e0d13b87abc764d4e7bbb03690d4342ae0" + }, + { + "path": "attachments/omnient-38-off-attachments/B7467770-2FEA-4213-B33D-308C1B12EB7E.csv", + "sha256": "6a33be0986a46d32b2b2f8119b2359a268e1bef95d49fa98f6642d4340b155fc" + }, + { + "path": "attachments/omnient-38-off-attachments/manifest.json", + "sha256": "69b3d678d984e1d9c4105d10f9cc2d6974d54c021d3ba44e794fa071a40d8300" + }, + { + "path": "attachments/omnient-38-on-attachments/28F455ED-AF37-4B2B-8B28-D3D51FB5D482.json", + "sha256": "eab8ca54007e6c3ec519e28e6806dcb8991553c9b106e46f6647a5db2dca46af" + }, + { + "path": "attachments/omnient-38-on-attachments/7A1B2949-E0A6-41FA-A5FB-47C61EF640E7.csv", + "sha256": "325c87cd4465a1555f52c44c4e758452cdaeb0c2002c022d9008f54842a47906" + }, + { + "path": "attachments/omnient-38-on-attachments/manifest.json", + "sha256": "92da5b371e5da0a08b32cacc065122e6ccdaeb39b8aabfe34c1b62e5cda011aa" + }, + { + "path": "attachments/omnient-39-off-attachments/4A63AC17-481E-4944-A2F2-33DE34AFCBC9.csv", + "sha256": "40b887e642749aae062d4c491d494cc6619a0d2e9a1cc425733b685639bd08c5" + }, + { + "path": "attachments/omnient-39-off-attachments/97188470-57C0-4E45-A48D-94105E537B40.json", + "sha256": "1b1dc0725c2fee4b4110ee40cb4239689fc05c5017e76db1b19fba8d6292a788" + }, + { + "path": "attachments/omnient-39-off-attachments/manifest.json", + "sha256": "c5bc97b096526ee14cf2320fd3a1b9f5235a7871b06b9baf688650a864d1c3bc" + }, + { + "path": "attachments/omnient-39-on-attachments/12FA0206-9773-4764-8786-36FB61A1215E.json", + "sha256": "4291b3cf99a2a3926fed2a88782dffdc30d2b0ffdf5e45b9f5be6df7d904ebad" + }, + { + "path": "attachments/omnient-39-on-attachments/7A5EC794-1705-45BE-92FF-DD75E8358E19.csv", + "sha256": "1e0b6c578e37550c5796ac99b3761773e20e8683a65b7af84648599ecb042207" + }, + { + "path": "attachments/omnient-39-on-attachments/manifest.json", + "sha256": "c1304e80ffaf48db7e4811b4fad69f47dc352f5a0979000d1b33ebd3df2725e3" + }, + { + "path": "attachments/omnient-4-off-attachments/411A4A49-427D-4253-BACB-6601519EAD77.json", + "sha256": "c0023159be7a18b14a7b731ecdc9f85c0c47deca61dc3b318d96b4f4e880ac32" + }, + { + "path": "attachments/omnient-4-off-attachments/B6BD6E1D-3CC1-422E-8669-9704D0711714.csv", + "sha256": "7945ffb8648b4a64cc4ca7ac74ba77b7ad37ce4e1c28cc2d284d9c7872cd7775" + }, + { + "path": "attachments/omnient-4-off-attachments/manifest.json", + "sha256": "e697f40342eac017c9caf7526567321f582ac0e18f4bb5ac070bf928b631f947" + }, + { + "path": "attachments/omnient-4-on-attachments/C27E8434-D951-4530-A368-A9CE392D1779.csv", + "sha256": "4a7202a2ce5e23ed5df091bfca5e00403fef3fb81ddf331d007b393ffe45d8e8" + }, + { + "path": "attachments/omnient-4-on-attachments/DB1F463B-0BB4-4E6B-9975-C07DB0E31A06.json", + "sha256": "3847ea93b39da981ee59afa642b7da0149a9e976abb02fb8782d81170c5c5085" + }, + { + "path": "attachments/omnient-4-on-attachments/manifest.json", + "sha256": "c7547a6bf151c6a0a2963c72dfc5301166e54383dcbf14cd3b315cd3c3808177" + }, + { + "path": "attachments/omnient-40-off-attachments/089F9E8C-F3E9-4C54-9040-BE80E65E91B2.json", + "sha256": "c7a9bd5b086887f8e7148bc1f6c6797e847dc7f098d8b371832b64524983477f" + }, + { + "path": "attachments/omnient-40-off-attachments/3FABCF0F-4B8F-450B-830C-4AD7AD3F0589.csv", + "sha256": "ea624e06dacd9eb9869ecef2fabc42a012843b2bf634ae0af72da16f16b17758" + }, + { + "path": "attachments/omnient-40-off-attachments/manifest.json", + "sha256": "cd986b0cab7b7b239c4d2dbf5277d6ea10144fe732841c8eb0b3f0f1118b6120" + }, + { + "path": "attachments/omnient-40-on-attachments/13126725-23E8-483B-84E2-5D09FE1F7479.json", + "sha256": "f0e741fa53d0640430b8c2c1df083ff9f560edfb4fe818dbe0ac4d068d74655f" + }, + { + "path": "attachments/omnient-40-on-attachments/22FE52ED-1CE9-4659-B5C3-6E468F073D6C.csv", + "sha256": "d8196e42a37e3b318ce7b5b8973766f6e22e41072d6afda31a033719d454893b" + }, + { + "path": "attachments/omnient-40-on-attachments/manifest.json", + "sha256": "63d4e94b3a31abdb45d391707973cdd675048cecec9efc134e44e7db0e75886c" + }, + { + "path": "attachments/omnient-41-off-attachments/5F7E5723-FABC-45D1-9C29-D892F7EA6658.json", + "sha256": "bab6825cc0e71b3fbf3ec4fecf6fdff9af12dab487284d7b8fcaef9c837fbada" + }, + { + "path": "attachments/omnient-41-off-attachments/E8AF8617-F60B-4757-A539-F1F5C81A9D65.csv", + "sha256": "d143e22b529a8b945daf0503aaa16bcd115d4d3bf364aa9cb3091fb21c3ebf5c" + }, + { + "path": "attachments/omnient-41-off-attachments/manifest.json", + "sha256": "4158114010dcc52b15cd00b685f1ffba260d0c4f622fe24d384e01e9379f3c0b" + }, + { + "path": "attachments/omnient-41-on-attachments/16D5FA77-6452-46F5-B816-F1495FA82F59.json", + "sha256": "29227be33d87756146d197439085d2eb66e1709aefdc686549419894a8a55d1d" + }, + { + "path": "attachments/omnient-41-on-attachments/C2A1917A-ED77-448C-9709-E18429F1E5F8.csv", + "sha256": "fac7f9e4b7ba0db1e2abb864ecde3a5bad6164220dc669907525ddc0247104e2" + }, + { + "path": "attachments/omnient-41-on-attachments/manifest.json", + "sha256": "b7c1d589610867ae73c81b2b4ee3e30605fa1e49edcb20dd5c972350ea6e5014" + }, + { + "path": "attachments/omnient-42-off-attachments/03291210-C8CD-4A87-AF0F-AE277D270D63.json", + "sha256": "b4377bfc37410a7f2e96bc905e44282fca9736d17deb6a1588e27f1b2ac81096" + }, + { + "path": "attachments/omnient-42-off-attachments/96C25000-1BEA-4BC4-BD9B-C32172D25FE5.csv", + "sha256": "dea86f5201f4ab6701f828715d7c70b4314cb8798f8a776fb3a3ce4c998cf934" + }, + { + "path": "attachments/omnient-42-off-attachments/manifest.json", + "sha256": "314fd3a68a2cdbad527eb08b51c65f6d89b56f2b8bc2fd49bd6ea0b8817df2f0" + }, + { + "path": "attachments/omnient-42-on-attachments/D50761C1-891F-4CCF-AA9A-E4D0CF739FAA.json", + "sha256": "7482d15b796bb30115e539bb2ce2ab892d727b60d835671dc8d1455b3e186102" + }, + { + "path": "attachments/omnient-42-on-attachments/D6D65781-B304-46A9-B9A9-B1676B395C00.csv", + "sha256": "7ec4c65430542c399ca88794b6b1ad501ce5b6e2a5afc99f024d738ff93678f5" + }, + { + "path": "attachments/omnient-42-on-attachments/manifest.json", + "sha256": "79e651032f82c66cac53e3455ad7ec0fec2e395a229492a473cf08fdd6f8e393" + }, + { + "path": "attachments/omnient-43-off-attachments/8CEB5CA7-0A33-4369-A9E4-2B7CB138B466.csv", + "sha256": "ace833d0794df519dac2a02a96fa0caaf325d0516f9fb74a04a18c25b3da9f1d" + }, + { + "path": "attachments/omnient-43-off-attachments/BDA7F641-A8C1-4740-B189-B3F20D9A15F2.json", + "sha256": "ac1e5f611d46c0aa1dfd9b7cc4541bcc622b1a7717f4299fb5aabe98deddc11c" + }, + { + "path": "attachments/omnient-43-off-attachments/manifest.json", + "sha256": "a40bb7a88d91a67a64b0adef1b066004887c4b3af6f7c38e4c947af326cd01f4" + }, + { + "path": "attachments/omnient-43-on-attachments/3671B1AC-EA60-461B-AEC4-57B5138CA529.csv", + "sha256": "4d9e072fde10d5fdf2204945fb19e3dc3c452b3db5f1b0fa0fad02712a4de0c2" + }, + { + "path": "attachments/omnient-43-on-attachments/62B4B699-5DC6-4723-ABA0-9F63717D8F49.json", + "sha256": "bc0b77ac6fa2e2818f594994da3d612c05921be37b1825bcd3225d20307d85bc" + }, + { + "path": "attachments/omnient-43-on-attachments/manifest.json", + "sha256": "abb7a2d9cdb1ca64e9612eba519d08f0aae25251f489fbc88117fa2846d8ef16" + }, + { + "path": "attachments/omnient-44-off-attachments/24100926-9938-4C84-B787-0C79D7681C85.json", + "sha256": "26e7156a92d32cfe27ab458a4c85c07e4d87fc876ac4a0e8e6398fd6ecf5d256" + }, + { + "path": "attachments/omnient-44-off-attachments/A55741B6-D4AD-408B-B5BE-B9A94DD2E329.csv", + "sha256": "dd8a533be5dcf4b06bc75dcda58a11122acb0aec54ec79549ca10d5cb10e7a48" + }, + { + "path": "attachments/omnient-44-off-attachments/manifest.json", + "sha256": "7e242c0499344e43ea0c564aa18ef84da16cd901797f296e1658f9ac0c8b3b4d" + }, + { + "path": "attachments/omnient-44-on-attachments/F8F5AA42-7600-403C-BADD-FC70A2B03A6C.json", + "sha256": "aea74fd5c9af13153e721fb08bd8b1c845de9794199674ebde0416e57f99b634" + }, + { + "path": "attachments/omnient-44-on-attachments/FB3F85C9-5F31-49FC-BAD8-3133C647EFB1.csv", + "sha256": "614a2d595505457ca9363a0abf8a569877c5f7e266015b16dec6057338027c50" + }, + { + "path": "attachments/omnient-44-on-attachments/manifest.json", + "sha256": "51055fa3ea45364f25e7ca8952fa80834816db9148d4f5b004b209dadc34c853" + }, + { + "path": "attachments/omnient-45-off-attachments/13E16E42-9A96-4E15-BF31-BAD0CBF8F31C.csv", + "sha256": "db551c318119c124dd0121aa1297bf3b51a6cd3784aeedf74a6642a1299ed9a1" + }, + { + "path": "attachments/omnient-45-off-attachments/A0A7F206-575F-41EB-AAE4-014E8B561403.json", + "sha256": "2b0511375cbfc75a94d0971259d40d316fc15b0e24fc2a4bb5c12aafe41fcf3c" + }, + { + "path": "attachments/omnient-45-off-attachments/manifest.json", + "sha256": "f16b8a902be46694cf5bec310ce54899bca7ed8d85e09d8b947363b1a178e2a0" + }, + { + "path": "attachments/omnient-45-on-attachments/B771B9D3-11C5-4429-AD0F-F857EBC6DFFD.csv", + "sha256": "6d4326d69ef8e885042cfa287c096df88e76515b519057ecd51db7dccdd4c40a" + }, + { + "path": "attachments/omnient-45-on-attachments/CDD4C7B4-190A-4A77-9714-F5B21248CDEE.json", + "sha256": "2d0aef8cb9cc505f70d9d7aa0a7f8983659d52e23411229b13fd9cd4b5361097" + }, + { + "path": "attachments/omnient-45-on-attachments/manifest.json", + "sha256": "eb5661018877d478a0d16ec171a6aaf9d28199e47925d9e526d4bcde68a2b4e6" + }, + { + "path": "attachments/omnient-46-off-attachments/3F72A81D-2F2B-48CB-A752-FB390A82DF79.csv", + "sha256": "20f06ece98de0f3ac822f6d1681a6be37a22c06183a5f1c97462b60a3c1ab65b" + }, + { + "path": "attachments/omnient-46-off-attachments/3FB06EA6-42C8-4F33-9A1D-030AAB849A7F.json", + "sha256": "6db8d919d4a48a70fb965d368e6fea5c775bafe10714d44ab5470e6ed96473d9" + }, + { + "path": "attachments/omnient-46-off-attachments/manifest.json", + "sha256": "ea348534ebc0ab621f1ed45ee8c1fc95856b8f39a1de227a30732e1c17c1c69f" + }, + { + "path": "attachments/omnient-46-on-attachments/42CA3C04-B5E7-474B-A808-5BA4F93E85E0.csv", + "sha256": "364a773e3594bea15e33519504a755d1b8c4e8b93c2051f7076912d6e14e3488" + }, + { + "path": "attachments/omnient-46-on-attachments/A70ADC95-1A3D-4B09-806C-7F02AA90DAD6.json", + "sha256": "04f2bd8b9c4e0258913def991c57c0d2bc72beec5ffb63dace8a281f7e9fa48a" + }, + { + "path": "attachments/omnient-46-on-attachments/manifest.json", + "sha256": "184900399f1b086c1b673cbbe99af6991bfc11834eab811ac2c57ef3a345076a" + }, + { + "path": "attachments/omnient-47-off-attachments/CF53D8F4-F3BB-499E-B97E-644F301CB5FF.json", + "sha256": "e585971411376ca7ac3a88f00f450e14f712cfdd35b14a0297370198411b19ca" + }, + { + "path": "attachments/omnient-47-off-attachments/E644FA00-361C-4360-814B-49C0F2283F62.csv", + "sha256": "e134bb6f0b8aa1cea2c5c57cbcd28c7d2ea6e2541dbabca9c8a1afb42b8a87d2" + }, + { + "path": "attachments/omnient-47-off-attachments/manifest.json", + "sha256": "60677495572438ec4e730918c297dfc6fbcd4464c8b8708509983cfdbd455c89" + }, + { + "path": "attachments/omnient-47-on-attachments/747DADDB-4F6F-4978-A042-4F975EAF9AE6.json", + "sha256": "be0a9f2bdb38c88499552d7967f7c2b12cb124930d1135ee5189fdf46e7b7901" + }, + { + "path": "attachments/omnient-47-on-attachments/8E66306B-BAD1-4361-9F47-37C38612BCE0.csv", + "sha256": "695f19dfd09024fd6a0865a5eff90e2c5ff8de4e62893f3537afa099f7ea8350" + }, + { + "path": "attachments/omnient-47-on-attachments/manifest.json", + "sha256": "5b0d48701498537f33012cb5edaa3fd415c5a263e6f4594c3097f35aa1f509a2" + }, + { + "path": "attachments/omnient-48-off-attachments/710B0E91-46F7-466A-AFDA-846B61255067.csv", + "sha256": "538cec29742ef851277e1f0dd6f81c86c17da6ed670162006db5229041afd042" + }, + { + "path": "attachments/omnient-48-off-attachments/A5AB6247-3264-48AF-B52F-BDBB9BD4BF78.json", + "sha256": "4a4369ede0d4ce1d5c75f9cdd390d81554fa5d67f6b4b80523b5ba214264bde4" + }, + { + "path": "attachments/omnient-48-off-attachments/manifest.json", + "sha256": "7c0beb3a6e6419937d718880ed4286fe67d09c78bcaedfcd1bd8ef8e38dcd893" + }, + { + "path": "attachments/omnient-48-on-attachments/0B0127DB-8052-4D6B-B72B-28DD89FFF047.csv", + "sha256": "9d2fd9aca996a3fc384ad64ebeed1b2695d2110b59270e5237706e7027be4548" + }, + { + "path": "attachments/omnient-48-on-attachments/D351115F-F40A-4BF0-B2AA-B242258D855F.json", + "sha256": "78ff6f3c8b7e5fd1bfb4f6f694d728010219a21958404f5d5e14d137744c693c" + }, + { + "path": "attachments/omnient-48-on-attachments/manifest.json", + "sha256": "cb034f9f9745470206ea3de20d55a41615d6769c53a8fb420e15c034aba81253" + }, + { + "path": "attachments/omnient-49-off-attachments/4DEB603C-E598-4BAC-A7AC-52343A6243BE.csv", + "sha256": "b3255a0de3b206f0a65c88307e8c80453e81a773e7de119235bddab131013df3" + }, + { + "path": "attachments/omnient-49-off-attachments/B98C9164-89B3-47AC-821C-CC8DCB30EA7B.json", + "sha256": "7bf08518609aaa289dba04e1b3747c56f325952ea18884098b5b52cd2d5b842b" + }, + { + "path": "attachments/omnient-49-off-attachments/manifest.json", + "sha256": "2c114593125087ecfdf0700e1c26ed21fb6eb21b18ae62cbf971a048e9d73499" + }, + { + "path": "attachments/omnient-49-on-attachments/6711E6D6-CE07-4915-8072-3A0EA7EE8892.csv", + "sha256": "203f022cd0427a10f2de90456836502dbd217e9d47c9b9eb295c9c0c02b01f0a" + }, + { + "path": "attachments/omnient-49-on-attachments/D7C9C889-5268-48B9-8FF0-CF6819933FD1.json", + "sha256": "ca7f6a5a352167278cd4b9a23774e779a98849590eb1ff5e82ad91b60d4e4d2a" + }, + { + "path": "attachments/omnient-49-on-attachments/manifest.json", + "sha256": "71cfd2691d343f7c735adbeca16b3bae7f5457736f6ede90461409ef44e6ec39" + }, + { + "path": "attachments/omnient-5-off-attachments/220BB626-BB60-4325-98EE-F482B873411A.json", + "sha256": "784132ba40a997e7ba35df477a7501d46f588765b2e9185e3be903d4409c0925" + }, + { + "path": "attachments/omnient-5-off-attachments/F030F643-A6DC-410F-8B7A-5D6ADA729EA0.csv", + "sha256": "c888e34d97ba6a2c8f98ee52d593397ad73993497f3a7d90ecf6f50bac2bb8b5" + }, + { + "path": "attachments/omnient-5-off-attachments/manifest.json", + "sha256": "d9c4df0625c0575cbba3b1f5774b04d3445dbe7af152b787feecc5eb511ffa8d" + }, + { + "path": "attachments/omnient-5-on-attachments/3535177F-5351-453A-9B9F-823476F9931D.csv", + "sha256": "8113f820c6f509bb392b04c3299cb8c24535696e33c202a6fcf89ed4d3532257" + }, + { + "path": "attachments/omnient-5-on-attachments/B5B60A3F-4862-4C0B-9F45-C4EEA745BD8D.json", + "sha256": "3ae7ffe241fe946de7bbed393a8418cdc3661191f64137e37e94dbb9c050fb88" + }, + { + "path": "attachments/omnient-5-on-attachments/manifest.json", + "sha256": "040d6ae10e764ba54fef0b3e5fc5a5ebc65b6a083db6fcba47d331faa480762e" + }, + { + "path": "attachments/omnient-50-off-attachments/668DC7A2-9292-4485-8469-CA830849F55F.json", + "sha256": "8536802cb9118a2569514f79ab2b4889124fd23c5c3f8e46db3d871c5ed62074" + }, + { + "path": "attachments/omnient-50-off-attachments/750E1B96-DAF9-439B-9A9B-0C7AF434DE1D.csv", + "sha256": "3cd2ab14ddc5c94c81ef870c57101fe7f10104a75d0041996d2a813e2e839242" + }, + { + "path": "attachments/omnient-50-off-attachments/manifest.json", + "sha256": "6a37100a8fcf07af0a0d0a7b13a047b72732060b440598b3c3b5527d67d5de1f" + }, + { + "path": "attachments/omnient-50-on-attachments/275DAADD-FC80-468F-B564-C5EED7FD6A17.json", + "sha256": "848cf1725121834a2f26f73d03206a81c2c6d6d2bda8cba825eea1c60b735dba" + }, + { + "path": "attachments/omnient-50-on-attachments/C3B178F0-60BA-4AEE-A2F3-C5D409F46B05.csv", + "sha256": "4cb3f50a3f37d4ec376808eb9e618c6b072fb13e4d34dab751ce9bf4ea97746c" + }, + { + "path": "attachments/omnient-50-on-attachments/manifest.json", + "sha256": "91964e343afb0af8b322ff764f543ce2a081fa48d97972472f9781881ede6e83" + }, + { + "path": "attachments/omnient-6-off-attachments/298469E4-4E13-43DE-82DC-DFED8C9AF12D.csv", + "sha256": "b941fc26e99013abe6ad942917901ab930d650bdd2d575abdccc2d5a9638713c" + }, + { + "path": "attachments/omnient-6-off-attachments/BBDC01F7-F810-4CC2-8A8D-836D1E583376.json", + "sha256": "ad301b73654b2add2c2553ddec29a7680c696cb3b93101a003a837866c2f2680" + }, + { + "path": "attachments/omnient-6-off-attachments/manifest.json", + "sha256": "b028c21bf6da00f521e538b438a9220625adb303684d834afb2f5d0966a3367c" + }, + { + "path": "attachments/omnient-6-on-attachments/1412E872-B69C-4E1D-88B2-6DAA52592B28.csv", + "sha256": "880dfa1795d1093f94610a222fec10133be3842aae8f75532fbb0d84533730ec" + }, + { + "path": "attachments/omnient-6-on-attachments/6A8592F6-FDFF-44EB-9DC5-85CEFBCEBFBD.json", + "sha256": "813fed820f2ca19e94025d226afdd14dec52eca90610d61b3281fadc944f0208" + }, + { + "path": "attachments/omnient-6-on-attachments/manifest.json", + "sha256": "c86f58f3a9e900bae561f34b85b62b335d64fa983d8d55045b8b676b4605064f" + }, + { + "path": "attachments/omnient-7-off-attachments/3280717C-C63C-4CE2-93DC-E8704C813AD7.csv", + "sha256": "6e9cb28032514c731316f6e59df0083b317a74a8a41870cc00c77a4898807e4f" + }, + { + "path": "attachments/omnient-7-off-attachments/FE805CC7-4CAC-4B91-A993-652B6FE6415A.json", + "sha256": "347b312cc2495a11f0c8a18cff89d2f9ba9c66ffe9946b46aec2387e8e2de476" + }, + { + "path": "attachments/omnient-7-off-attachments/manifest.json", + "sha256": "037ac9c17f3cc5c400a2d036f7d39b36202601d3f892ef6dde5912e00ef55bae" + }, + { + "path": "attachments/omnient-7-on-attachments/0EA14A21-AC61-45DB-9966-8E0A3C5E4282.json", + "sha256": "fce54566e0446c6a533c4e441af1e0357e065766be37b80c11dbf0f989693abc" + }, + { + "path": "attachments/omnient-7-on-attachments/FC2B1CFD-29A8-4958-82A9-914BE9F3F637.csv", + "sha256": "f18ed8f615582741e30817b76c97b7bc72d38a1ac7734914ad05d7fdfe94d017" + }, + { + "path": "attachments/omnient-7-on-attachments/manifest.json", + "sha256": "5e6f959554d96570d8b4d92c7e82610ab643c671f1498c6f876d40fba51805e1" + }, + { + "path": "attachments/omnient-8-off-attachments/5AF18DBC-CB08-41AD-93E7-8CCAA1AA05AB.json", + "sha256": "367a23a4c3bc2adf24a4f6228ec88712619541c24a2d98ae8c1446eb54e1b2ae" + }, + { + "path": "attachments/omnient-8-off-attachments/82F98496-4A95-4A4D-B43E-ACA017C1E89B.csv", + "sha256": "b04d32d443d223d899eb242164a066630b2f910b783ff632dac4483d413edb67" + }, + { + "path": "attachments/omnient-8-off-attachments/manifest.json", + "sha256": "85602031e8393b56f4a4bb52ba88033e82634229d7737221ac183a7ef306b36d" + }, + { + "path": "attachments/omnient-8-on-attachments/B91D8956-F5A2-411A-8626-C58F07F367CB.json", + "sha256": "17c89a88a9062a24fd6740969851f2fc51a3f0ba872cc920967df40966fe7e3a" + }, + { + "path": "attachments/omnient-8-on-attachments/EC9D2FA0-32EB-4DDD-BA92-74B4BB0E8742.csv", + "sha256": "c20c45b34d1c073e250bdf8d4f6bf4f73d5a2e0b9b2d526f5fba2af2582b168a" + }, + { + "path": "attachments/omnient-8-on-attachments/manifest.json", + "sha256": "799808ac54fbc51cd478d49bc7cd05cecb7a9ad6fb09540c484d4ad1eeebd690" + }, + { + "path": "attachments/omnient-9-off-attachments/85177DE4-BB2E-4B42-A755-4583DFD9B8B3.csv", + "sha256": "bf910608bc2cfefd1989b6a69af9a5fdfdca1c43c19a7faafcdbcdd3608c7228" + }, + { + "path": "attachments/omnient-9-off-attachments/EFB48EFD-4C48-48DE-B6BB-0F3054A0D44B.json", + "sha256": "e61a6dd62ce4632fe77d39c74ebef29a037a88c5b666ff025bef5a5e605da63d" + }, + { + "path": "attachments/omnient-9-off-attachments/manifest.json", + "sha256": "567a81175bd6996a619cef91ff32d08960443e53bae74e55e353ef4ecf4adf8d" + }, + { + "path": "attachments/omnient-9-on-attachments/4DA9D747-F228-409D-9597-1E882D3F25FF.csv", + "sha256": "ce0d1eff4a52a2581cd9a1c5fee3cf4cc02a679f530ffd1ff65a6128a8a78f1e" + }, + { + "path": "attachments/omnient-9-on-attachments/CD9C3060-F771-4AF3-85F7-8A46D4CF5FC6.json", + "sha256": "606573b86a4c830f005d46bff846aecf641463de7946a89d841878a1bc76633f" + }, + { + "path": "attachments/omnient-9-on-attachments/manifest.json", + "sha256": "c47cb9b472e0269e3d27e168bc4dc902db3ad84c6929573c2338af45583d57cf" + }, + { + "path": "logs/omnient-1-off.log", + "sha256": "012258f69b822d93cffd551dfc2e79a2249534a2e738c868d5fa4ffd1f50f9cc" + }, + { + "path": "logs/omnient-1-on.log", + "sha256": "c9f11abf9ef91a5f0897ef967ddc19e153ab2e5b4264ee3ea7b816b8955562ca" + }, + { + "path": "logs/omnient-10-off.log", + "sha256": "7e3d76b128420d5df81b1044f2a33fbd37fee8dde817797e85a2305e641407d1" + }, + { + "path": "logs/omnient-10-on.log", + "sha256": "e90fd3809ef5bf6bdc5a744558230c848d3e8163fe643ddbf18b3c07c340217b" + }, + { + "path": "logs/omnient-11-off.log", + "sha256": "837c9d4a4199c9a43817275488eb20bd30c7a8d3bc4ea7377eb3c61b68e71d69" + }, + { + "path": "logs/omnient-11-on.log", + "sha256": "3adcff86522307249b8168f5e28746ddeb2fe059466b58ec422f1180bb953f46" + }, + { + "path": "logs/omnient-12-off.log", + "sha256": "309262fcbfc17c04fc095b4ec2c87187f169b70cd1e04dc877ed26fb0c1eddb1" + }, + { + "path": "logs/omnient-12-on.log", + "sha256": "f1b15ba3b75187b247124c4c56191fbe5811a68088d11acd3ca11b643d2c6d71" + }, + { + "path": "logs/omnient-13-off.log", + "sha256": "154da5a7967a94b627fc821295ff4c186cecc1b89565edbc688c77f8ec527c6a" + }, + { + "path": "logs/omnient-13-on.log", + "sha256": "44c5bb8c7eedc2eeb6617f01a33350e05da0a5bcaf4c66feb9da36cf89d52c1d" + }, + { + "path": "logs/omnient-14-off.log", + "sha256": "35d9bcf5d0c0a82aefe6ac2883c3b1f119b95bd1ba9eb245fd5b5b27bd2663d0" + }, + { + "path": "logs/omnient-14-on.log", + "sha256": "5ce80e4c82f162a5b9dfd1e8e8147f835fd5fdda75303a08f1d9d363d250d4c4" + }, + { + "path": "logs/omnient-15-off.log", + "sha256": "f30e18bc6dae7f6083a0d9eca366578551ca81bbef3f3602a7a30b550e9943e0" + }, + { + "path": "logs/omnient-15-on.log", + "sha256": "316945506785cc48a9d723451062d2153423a865cfae63be3763c47df678a4e5" + }, + { + "path": "logs/omnient-16-off.log", + "sha256": "a19268cc0fbf640f3c85bf8fe5977e680eb18469ec118c37002f0b5768542fe0" + }, + { + "path": "logs/omnient-16-on.log", + "sha256": "b26168379e7ea4bd2af50b5b9f4d3aebcba61b87a873aa66863c5310d8f9ae30" + }, + { + "path": "logs/omnient-17-off.log", + "sha256": "0ea2941221a3c95b83a2b02899f51e49cf9e680eb70a898fefc2ea5b15164b37" + }, + { + "path": "logs/omnient-17-on.log", + "sha256": "222cb63afbf1ee4a0b0daca7bd0af7555f3728950f5c15cabea34b842f77449d" + }, + { + "path": "logs/omnient-18-off.log", + "sha256": "52080be2f0d5e626bd9d669d0a3940d0201048875ff04ef43651baee7a0b77cc" + }, + { + "path": "logs/omnient-18-on.log", + "sha256": "e600375b0a940a982dc7e716a4f9f8d0cc617099da4e882e07b3bcd0c8d98488" + }, + { + "path": "logs/omnient-19-off.log", + "sha256": "b0c337b09b79d2c76b642d2cfdeb6d6be0496ee85028a41f550ca7aaec0a85be" + }, + { + "path": "logs/omnient-19-on.log", + "sha256": "24d30b8d9badd5a6e82b3c3321df33880a190141545e018ac7ba71b0b0ca1335" + }, + { + "path": "logs/omnient-2-off.log", + "sha256": "9c48f2253a920eb3c00e8a1e63a6de44386d8ad2e70fd5fb1817b506f587cc78" + }, + { + "path": "logs/omnient-2-on.log", + "sha256": "b8f021c645f7e8a56d9409fc594c70fdb141755acaf776c384ff4441596286db" + }, + { + "path": "logs/omnient-20-off.log", + "sha256": "9240e4d05de4d4b7f8afb91eddb51fad5edad39efc1acfbf9438034e4075fb45" + }, + { + "path": "logs/omnient-20-on.log", + "sha256": "c04d0d513d67316cab3ca4efeb5d077b9f2d172cdc5af178d2a4ec608488fd45" + }, + { + "path": "logs/omnient-21-off.log", + "sha256": "06b4144a5f1d31b420090be52fd585ec3c6b778b6bdb581de6ad2091c6ddbc44" + }, + { + "path": "logs/omnient-21-on.log", + "sha256": "a8f479e0004c7f9b8896efcbf0b8c4c50b1e849874bcff3bb676a8df32bc5803" + }, + { + "path": "logs/omnient-22-off.log", + "sha256": "7854594361133664887e055178073b69da34afbf952a53612cf805aa953141e1" + }, + { + "path": "logs/omnient-22-on.log", + "sha256": "d26220b15e9e74de3634dc5462c7f8b9074d4235e82a4daf1ab7b9e9db4f0277" + }, + { + "path": "logs/omnient-23-off.log", + "sha256": "961393ef1c59f1c4b29547d636be9bcc9971f1ced202fd58ac79a7b8d8a5508e" + }, + { + "path": "logs/omnient-23-on.log", + "sha256": "a921f7b5f27c7f61f848fac45512dae44b04d9a7fbed56d29c0d1e8b780d9418" + }, + { + "path": "logs/omnient-24-off.log", + "sha256": "88e15e989a24fb5f5f0178b9abd1c210a4870e15fea217ab45c95c0c37cfb25b" + }, + { + "path": "logs/omnient-24-on.log", + "sha256": "bfcb8c968976be4d870c377641ed78abf4655a0b0a8667465348f4767acd5ba8" + }, + { + "path": "logs/omnient-25-off.log", + "sha256": "794568aea86336bbc80b19e3fd98f92b244071c15d0a77f3aee168af404444f5" + }, + { + "path": "logs/omnient-25-on.log", + "sha256": "3c6506631bb5f7fbd220f129f404b9cf8079cb386d33d722178ff52ebc9f37d7" + }, + { + "path": "logs/omnient-26-off.log", + "sha256": "9f5fc5aa4d3b8596076eb93d4a54d85ac44c3f617760ac887d1ecdb140803957" + }, + { + "path": "logs/omnient-26-on.log", + "sha256": "95f2bd9aa8e0ea082ab1e98882aa5defc323275365607c11a30a327f79c26151" + }, + { + "path": "logs/omnient-27-off.log", + "sha256": "af0248b29feec7534c22b87652421f6e4dd3ceb90f2eec80e1a7d156d43f306e" + }, + { + "path": "logs/omnient-27-on.log", + "sha256": "da67914ea9e0f11dc35b42123c424dbd916b93f360c9b8cbc595c2ac3783ae07" + }, + { + "path": "logs/omnient-28-off.log", + "sha256": "a8ea0d1ec892d5e2293ee42a9137f782b37cdfb34d559a8c8b78a4588ded995c" + }, + { + "path": "logs/omnient-28-on.log", + "sha256": "a8c91ee41b003d75bffef42790e8d26acd4d766136f15de6a1dbc203197079b6" + }, + { + "path": "logs/omnient-29-off.log", + "sha256": "55c971e116ad80f7a68bc12b9ec8702d0e92c35c02547d6cacd42156aa1ee9ff" + }, + { + "path": "logs/omnient-29-on.log", + "sha256": "83e5502fd46a6ae0033ccbc6d41167d1b587a9aeb7b5a5d422ce5338021b52c6" + }, + { + "path": "logs/omnient-3-off.log", + "sha256": "b8f839862c93789bf8ec82e68b0e7384971a72352dbec066abfc983a48884313" + }, + { + "path": "logs/omnient-3-on.log", + "sha256": "bfc9b52290b31212c4e4faf3a8936ccd89ef2c5af1f59326a8b0d0336dc30932" + }, + { + "path": "logs/omnient-30-off.log", + "sha256": "7891f2ecf357e17f16aa3f1583ed61fef5938ffe47fc3a18c7d6cf26635408bb" + }, + { + "path": "logs/omnient-30-on.log", + "sha256": "4a758601d9f723e1ea97b96db44184c355e34e4a6984f58648c488cf6ad883e5" + }, + { + "path": "logs/omnient-31-off.log", + "sha256": "e6767366620c99516b6df166a60ac12d4f6aa2fb6212f075f5b722bfa34f2fa8" + }, + { + "path": "logs/omnient-31-on.log", + "sha256": "345500d573c1bffb1f768d4a6c09262b11b75e4c14fed840a06b220e9b854b23" + }, + { + "path": "logs/omnient-32-off.log", + "sha256": "3053a212b2bdd6b160dd5065395ff30a698aedfaaaa50a505794b62413677d6a" + }, + { + "path": "logs/omnient-32-on.log", + "sha256": "7a46c14e8904dc3760a3d5989794dad1a62394c8c1aba50ff9e564cd156f0422" + }, + { + "path": "logs/omnient-33-off.log", + "sha256": "0b4a367f4f76eedde3844faa67e9f851724847e2a4e7305f443b2ffdb298e163" + }, + { + "path": "logs/omnient-33-on.log", + "sha256": "2c9834cd2d52aedf24a4e95b148d10b376eb7d2d721e29171ab9a96417fbb7e0" + }, + { + "path": "logs/omnient-34-off.log", + "sha256": "2ed3bc3bfb6a6cbabea875bc3a668042d3c8811254ce92b06a3c182ee6e7db89" + }, + { + "path": "logs/omnient-34-on.log", + "sha256": "2b08e719bfe49fd6b77a30c6e51c1db99bf21ff4fdc94b580473c1a19b52151e" + }, + { + "path": "logs/omnient-35-off.log", + "sha256": "f797ed1f9dd84c6e65a8c365f57213721da19b759ec84bf0b589eeac2f3f111a" + }, + { + "path": "logs/omnient-35-on.log", + "sha256": "d0ae36c569ad82a6e7032ea2bb90e0aa014eb1348f82c8e7fe00dfd27d2630b0" + }, + { + "path": "logs/omnient-36-off.log", + "sha256": "e4fc2ca20476dc6326937797748f2c4b6e4aacb4f433254496ac7bed3ec59073" + }, + { + "path": "logs/omnient-36-on.log", + "sha256": "2cc770dc55cd8d64dfeaec71292b68c792eb0d40f4149238c78ec9e8e01d67ba" + }, + { + "path": "logs/omnient-37-off.log", + "sha256": "c5cec30f6873331c81ee2b3c7ce6f694e32c66d48ffaf56b31a69bf2eb38add1" + }, + { + "path": "logs/omnient-37-on.log", + "sha256": "679f79b5754fca8a1b825f9f35a9068ac1e01e72987eabe2f527c377012fa2dd" + }, + { + "path": "logs/omnient-38-off.log", + "sha256": "570e6b47ff1270f12db3e0240181be86161202673193fce1a6ffc43f3bb5dddf" + }, + { + "path": "logs/omnient-38-on.log", + "sha256": "719002638e03aace76850cbaec7047b19167b0beccaf7d7de138a541b9a3f55d" + }, + { + "path": "logs/omnient-39-off.log", + "sha256": "32614941a43f324b6850922581e6105617cc1bde162fbeff26451b1c63fe58af" + }, + { + "path": "logs/omnient-39-on.log", + "sha256": "d4c512938c2e58dcc82d8389701103ff03da11777b81b55e81a19e8668f8dea5" + }, + { + "path": "logs/omnient-4-off.log", + "sha256": "d538594079ddbdcb55b02ea0d64a29bc88ffbd33a87b62d5e9555e901be470de" + }, + { + "path": "logs/omnient-4-on.log", + "sha256": "7e88ef11333cb729761522346eb898597cb2d0e2242b8c3fb9fe73abd00887d3" + }, + { + "path": "logs/omnient-40-off.log", + "sha256": "e6ed9f4ce7da0593bc0ecd3aa13926f5e858b2f0c353f75adaa2ad5ebef091bb" + }, + { + "path": "logs/omnient-40-on.log", + "sha256": "5f66448692376ae935ef1fd8a6a1589f62d5126fa3a90adfca17c1dbdcbc8f06" + }, + { + "path": "logs/omnient-41-off.log", + "sha256": "42b719153d6d81a14d8830b6e7f9c9565e086e488f993c0f229bb52dfd8473bd" + }, + { + "path": "logs/omnient-41-on.log", + "sha256": "e8ee7442115d90d0e5a78cf1dc77c560855ba3b9216d3cb18497b4c0cbc8599a" + }, + { + "path": "logs/omnient-42-off.log", + "sha256": "897211d4c894ae994145886a967de4556b664ceee49219304afb3fbf3440de2f" + }, + { + "path": "logs/omnient-42-on.log", + "sha256": "dcf0b1fb7654e9e72f82e0bb090eeeef4df1bf5e2690f29df6d0183000a63410" + }, + { + "path": "logs/omnient-43-off.log", + "sha256": "4d47148f035f9983c436eb91430516bd971ae6ca60ab2e9a0a84fac482e1b485" + }, + { + "path": "logs/omnient-43-on.log", + "sha256": "a11cd66527766cdab98fffb6492df20ba5258facadb3e3d45ebaf2ddb9b01ba6" + }, + { + "path": "logs/omnient-44-off.log", + "sha256": "95a891a18aedc9cb30145623741c7d6da5b8d27840c197c3a5b75c907c8c31f6" + }, + { + "path": "logs/omnient-44-on.log", + "sha256": "aa3cafb7aa50dc220ea9563afef2cd71c1667ca867e69e1d01bb0d0d114e7b34" + }, + { + "path": "logs/omnient-45-off.log", + "sha256": "9ae86f4aa1858d8694677bfa0427b0930705fbebcec5696b892c88f6b21f1e37" + }, + { + "path": "logs/omnient-45-on.log", + "sha256": "72a5f865d0f8c90a8354ae41247e3aa3fc6055cf0e3e2eb2482f2bc01a5bd458" + }, + { + "path": "logs/omnient-46-off.log", + "sha256": "c4ed91ec4b620043fcad64d37dbf7228ed9d9d7cdddbd9f7cffb9e4481299647" + }, + { + "path": "logs/omnient-46-on.log", + "sha256": "9040bd772b0c45f4e3758074586239de61caa53e1f6af1cc258e8c2f80d26de3" + }, + { + "path": "logs/omnient-47-off.log", + "sha256": "89509e377c3e3e46d1cd5f0299cc3e29663cdbd1b28704f4cf410273cfd6d203" + }, + { + "path": "logs/omnient-47-on.log", + "sha256": "0611bb852a040445321bd4cda2c61f3652ee5585e2a2a314d8e4f24eb2b9f1c6" + }, + { + "path": "logs/omnient-48-off.log", + "sha256": "f72cb1d7f7021977212cdf4b8f9b9665b067af6ab73e1db47dc4349d743ea74a" + }, + { + "path": "logs/omnient-48-on.log", + "sha256": "4585a2fd041a8f5ac16365b15338529963ba1d2b6c9f1bc6d35671aa41de81ba" + }, + { + "path": "logs/omnient-49-off.log", + "sha256": "aa1894bb956f506041a0a1ac8835063e3f2c29ca2215bbeef64a6543abef1c1c" + }, + { + "path": "logs/omnient-49-on.log", + "sha256": "1d3c232f2a75103887cedcfba744cfd7c07dfbb19a827d5d7c80157d3158081b" + }, + { + "path": "logs/omnient-5-off.log", + "sha256": "247a4b40d317ff55ee29f9fb540b078c8338000f9c5577f8d9d559a50ecdff65" + }, + { + "path": "logs/omnient-5-on.log", + "sha256": "143edf7867ddbe8a0c07cff3da26e9bd4e726dc9af4cf925b904045fc968d633" + }, + { + "path": "logs/omnient-50-off.log", + "sha256": "d1ba098762b2695f35d66a5ecb746194cb77bc6b5e9956cfc86ea0b33d18b263" + }, + { + "path": "logs/omnient-50-on.log", + "sha256": "32f63ee57019f4ac4d1ee73f3440efd16091959a5531d8ea3d52209a6963dbb2" + }, + { + "path": "logs/omnient-6-off.log", + "sha256": "841f84827b9e276a9f5847b585c7782f034c4f6d8b17f3a35d769c59a0500fd9" + }, + { + "path": "logs/omnient-6-on.log", + "sha256": "403b0142d20332a7ba74803c6eb6d9f062af8e439b6cf4d45da71f70f5cec4a9" + }, + { + "path": "logs/omnient-7-off.log", + "sha256": "bff3dbbe5ab9791e2146748831dd4267d7113fd84228567a0933015d37256ba5" + }, + { + "path": "logs/omnient-7-on.log", + "sha256": "e5c76148abfb5d45c60e49e660621b1fd218479eb1969f99148fd546d72c1b9c" + }, + { + "path": "logs/omnient-8-off.log", + "sha256": "56f644314005c8a23d424755dd5e48216873f8734444cabf7ac7d3cd797801e1" + }, + { + "path": "logs/omnient-8-on.log", + "sha256": "e618405f4168200c0b37f8d6f7c79d6ecafffff929d525076a2b34a9ebdd174e" + }, + { + "path": "logs/omnient-9-off.log", + "sha256": "208d6770f23fd604c15528de585568a8221161d95608e89191251f0ee644ede2" + }, + { + "path": "logs/omnient-9-on.log", + "sha256": "9133d5cc30df817c2a403b84e558a3306fb405ad828c2dd0405f11b5af02ac81" + } +] diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/pair-differences.csv b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/pair-differences.csv new file mode 100644 index 0000000..49785db --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/pair-differences.csv @@ -0,0 +1,51 @@ +pair,accepted,exclusionReasons,earlyPostHTTP,ttfaDifferenceMs,ttfdDifferenceMs +1,True,[],200,-100.03495216369629,-97.15497493743896 +2,False,['handshake difference >20 ms'],200,-243.25692653656006,-240.89586734771729 +3,False,['handshake difference >20 ms'],200,-214.37203884124756,-195.64199447631836 +4,True,[],200,-270.10810375213623,-219.51699256896973 +5,True,[],200,-118.16704273223877,-107.49304294586182 +6,False,['handshake difference >20 ms'],200,21.057963371276855,31.91399574279785 +7,True,[],200,-134.3669891357422,-133.41295719146729 +8,False,['handshake difference >20 ms'],200,-66.05899333953857,-98.2520580291748 +9,False,['handshake difference >20 ms'],200,-278.1250476837158,-252.87103652954102 +10,False,['handshake difference >20 ms'],200,-422.4200248718262,-425.44591426849365 +11,True,[],200,-119.62199211120605,-117.3640489578247 +12,True,[],200,-108.85512828826904,-108.69300365447998 +13,True,[],200,-118.29710006713867,-118.55697631835938 +14,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,483.2669496536255,484.5559597015381 +15,True,[],200,-111.55104637145996,-110.10110378265381 +16,True,[],200,-134.2710256576538,-128.1599998474121 +17,False,['handshake difference >20 ms'],200,69.96703147888184,74.32305812835693 +18,True,[],200,-99.79605674743652,-94.95997428894043 +19,True,[],200,-107.25593566894531,-107.28883743286133 +20,True,[],200,-264.1409635543823,-217.5149917602539 +21,True,[],200,-220.16394138336182,-167.6110029220581 +22,True,[],200,-122.56395816802979,-117.94602870941162 +23,True,[],200,-115.8210039138794,-106.27603530883789 +24,False,['handshake difference >20 ms'],200,-340.09993076324463,-301.4949560165405 +25,False,['handshake difference >20 ms'],200,-102.27799415588379,-100.04496574401855 +26,True,[],200,-124.91905689239502,-113.150954246521 +27,True,[],200,-117.82705783843994,-115.72408676147461 +28,True,[],200,-101.64201259613037,-99.72894191741943 +29,True,[],200,-119.1251277923584,-114.63093757629395 +30,True,[],200,-115.00692367553711,-103.01387310028076 +31,True,[],200,-117.91300773620605,-121.14500999450684 +32,True,[],200,-134.03093814849854,-129.54294681549072 +33,False,['handshake difference >20 ms'],200,-254.24695014953613,-248.00491333007812 +34,True,[],200,-133.9198350906372,-130.26189804077148 +35,True,[],200,-113.68489265441895,-112.21301555633545 +36,False,['handshake difference >20 ms'],200,-735.4429960250854,-730.1548719406128 +37,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,50.114989280700684,55.33301830291748 +38,True,[],200,-243.8681125640869,-198.8661289215088 +39,True,[],200,-121.25003337860107,-118.91007423400879 +40,True,[],200,-124.37903881072998,-119.06802654266357 +41,False,"['handshake difference >20 ms', 'ON initial early POST HTTP 400']",400,51.96511745452881,227.2270917892456 +42,False,['handshake difference >20 ms'],200,-274.18994903564453,-271.8609571456909 +43,True,[],200,-120.51403522491455,-118.81899833679199 +44,False,['handshake difference >20 ms'],200,76.16996765136719,72.69406318664551 +45,True,[],200,-131.0349702835083,-116.84799194335938 +46,True,[],200,-93.97900104522705,-91.16804599761963 +47,True,[],200,-115.71896076202393,-103.70194911956787 +48,True,[],200,-119.05503273010254,-124.58598613739014 +49,True,[],200,-112.56098747253418,-114.7679090499878 +50,True,[],200,-140.0458812713623,-119.62592601776123 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..6c33eaac1f3e5b0d27b7c198ccd0cf8ae4d5f3b9 GIT binary patch literal 47223 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 KLaq&n75)!4L|~Wz literal 0 HcmV?d00001 diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.svg b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.svg new file mode 100644 index 0000000..eddd6a2 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfa-on-minus-off.svg @@ -0,0 +1,4391 @@ + + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfd-on-minus-off.png b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/histograms/ttfd-on-minus-off.png new file mode 100644 index 0000000000000000000000000000000000000000..82fd6cd64180791833361b9bd998b343b1e3a3d8 GIT binary patch literal 47811 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 z + + + + + + + image/svg+xml + + + Matplotlib v3.10.9, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/report.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/report.md new file mode 100644 index 0000000..017cc90 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/report.md @@ -0,0 +1,50 @@ +# Lens benchmark — 2026-10-12 physical-device cold-connection run (binary encoding) + +## Experiment specification + +[Google net_http: Lens Latency Mimic & Shutter Benchmark Mode](https://github.com/google/net_http/blob/main/webchannel/objc/demo/WebChanneliOSDemo/DESIGN.md#d-lens-latency-mimic--shutter-benchmark-mode). + +## Environment + +| Field | Recorded value | +|---|---| +| Device | iPhone SE (3rd generation), hardware model `iPhone14,6` | +| iOS | 26.3.1, from XCTest | +| Network switches | Not independently recorded for this run | +| Endpoint | `https://webchannel.sandbox.google.com/staging/channel/lens` | +| Mac | macOS 26.5.1; Xcode 26.6; Build version 17F113 | +| Source | Git HEAD `21eee148acc4a2bcb9856adc5ba9d7463a33f84d` plus uncommitted benchmark instrumentation | +| Test period | 2026-10-12 14:17–14:52 JST, from artifact timestamps | +| Test execution | 50 alternating OFF/ON pairs per scenario; a separate `xcodebuild test-without-building` invocation for each trial | +| Test result | All trials completed and passed fresh-transport verification | +| Transport requirement | First transport: `h2`, a new TCP/TLS connection on the handshake GET/POST or early POST; if the GET reused the early POST connection, matching address and local port | + +## Procedure and parameters + +1. Build the XCTest bundle once, then launch exactly one cold-trial test method per `xcodebuild test-without-building` invocation. Keep parallel testing disabled and retain each `.xcresult` bundle. +2. Run Omnient. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial. +3. Use `imageSizeKb=150`, `detectionDelayMs=50`, `initialMessageDelayMs=50`, `enableBinaryEncoding=true`, `sendRawJson=true`, `fastHandshake=false`, `nonBlockingSend=false`, `blockingHandshake=false`, `forceLongPolling=false`, and `detectBufferingProxy=false`. The 150 KB value is metadata; no 150 KB image is uploaded. +4. Schedule M1 Sticky Cluster Info 50 ms after `connect()` returns. Omnient sends M3 Prefetch immediately after M1. M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline. +5. Record Handshake (`webChannelOpened` minus connect), TTFA (M3 send to stream ACK), TTFD (M3 send to preliminary detections), and M4 RTT (M4 send to interaction response). +6. Include a pair in the histograms only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤20 ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit. + +7. Exclude a pair if the ON trial's initial early POST returned HTTP 400, even if a retry completed the trial. An unresolved early POST status is also excluded; a verified absence of an early POST is eligible. Do not replace excluded pairs with additional trials. +8. Plot paired differences as ON minus OFF, using full-precision measurements. Negative values mean ON was faster. Histograms use 10 ms bins aligned to multiples of 10 ms, pair counts on the vertical axis, and all eligible values without clipping in the main plot. When the full range exceeds 600 ms, an inset magnifies -300 to 300 ms and labels the number of pairs in that range; no additional pairs are excluded. TTFA and TTFD are measured from M3 send, so the configured M1 delay is not added to either metric. + +## Omnient: paired difference histograms + +| Item | Count / rate | +|---|---:| +| Measured OFF/ON pairs | 50 | +| ON initial early POST HTTP 400 pairs | 3/50 (6.0%) | +| ON early POST not sent | 0 | +| ON early POST status unresolved | 0 | +| Pairs included in both histograms | 34/50 | + +### TTFA: ON minus OFF + +![TTFA paired difference histogram](histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram](histograms/ttfd-on-minus-off.png) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/run-metadata.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/run-metadata.json new file mode 100644 index 0000000..fd2a15c --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/delay-50ms/run-metadata.json @@ -0,0 +1,15 @@ +{ + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 14:17–14:52 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 50 +} diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-200ms-pair-30/README.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-200ms-pair-30/README.md new file mode 100644 index 0000000..18449c6 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-200ms-pair-30/README.md @@ -0,0 +1,7 @@ +# Device-preparation interruption + +The ON trial could not start: Xcode timed out waiting for the destination, reporting Device is busy (Preparing iPhone). No ON benchmark measurement was produced. The adjacent OFF trial is retained here so pair 30 can be measured again as adjacent OFF/ON trials. These files are outside the 50 measurement pairs; no completed pair is replaced because of histogram exclusion. + +[OFF log](logs/omnient-30-off.log) · [ON destination-failure log](logs/omnient-30-on.log) + +[OFF result bundle](xcresults/omnient-30-off.xcresult) · [ON result bundle](xcresults/omnient-30-on.xcresult) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md new file mode 100644 index 0000000..387543d --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md @@ -0,0 +1,7 @@ +# Failed reconnect attempt + +The OFF test runner could not launch: Device disconnected during socket operation; incomplete read while receiving socket identifier. No benchmark measurement was produced. Retained for infrastructure diagnosis, outside the 50 measurement pairs. + +[Launch-failure log](logs/omnient-27-off.log) + +[OFF result bundle](xcresults/omnient-27-off.xcresult) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27/README.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27/README.md new file mode 100644 index 0000000..a5113b2 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/infrastructure-attempts/delay-50ms-pair-27/README.md @@ -0,0 +1,7 @@ +# Interrupted infrastructure attempt + +The ON trial could not install/launch: CoreDevice reported IXRemoteErrorDomain code 6, connection interrupted. No ON benchmark measurement was produced. The adjacent OFF trial is retained here so pair 27 can be measured again as an adjacent OFF/ON pair. These files are excluded from the 50 measurement pairs; recorded measurement trials rejected by histogram filters are not repeated. + +[OFF log](logs/omnient-27-off.log) · [ON install-failure log](logs/omnient-27-on.log) + +[OFF result bundle](xcresults/omnient-27-off.xcresult) · [ON result bundle](xcresults/omnient-27-on.xcresult) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/report.md b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/report.md new file mode 100644 index 0000000..505ef70 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/report.md @@ -0,0 +1,86 @@ +# Lens benchmark — Omnient initial-message delay sweep + +## Experiment specification + +[Google net_http: Lens Latency Mimic & Shutter Benchmark Mode](https://github.com/google/net_http/blob/main/webchannel/objc/demo/WebChanneliOSDemo/DESIGN.md#d-lens-latency-mimic--shutter-benchmark-mode). + +## Environment + +| Field | Recorded value | +|---|---| +| Device | iPhone SE (3rd generation), hardware model `iPhone14,6` | +| iOS | 26.3.1, from XCTest | +| Network switches | Not independently recorded for this run | +| Endpoint | `https://webchannel.sandbox.google.com/staging/channel/lens` | +| Mac | macOS 26.5.1; Xcode 26.6; Build version 17F113 | +| Source | Git HEAD `21eee148acc4a2bcb9856adc5ba9d7463a33f84d` plus uncommitted benchmark instrumentation | +| Test period | 0 ms: 2026-10-12 14:10–14:17 JST, from artifact timestamps; 50 ms: 2026-10-12 14:17–14:52 JST, from artifact timestamps; 100 ms: 2026-10-12 14:56–15:03 JST, from artifact timestamps; 200 ms: 2026-10-12 15:03–15:27 JST, from artifact timestamps | +| Test execution | 50 alternating OFF/ON pairs per delay; 0, 50, 100, 200 ms in that order; a separate `xcodebuild test-without-building` invocation for each trial | +| Test result | 400/400 completed trials; 400/400 passed fresh-transport verification | +| Transport requirement | First transport: `h2`, a new TCP/TLS connection on the handshake GET/POST or early POST; if the GET reused the early POST connection, matching address and local port | + +## Procedure and parameters + +1. Build the XCTest bundle once, then launch exactly one cold-trial test method per `xcodebuild test-without-building` invocation. Keep parallel testing disabled and retain each `.xcresult` bundle. +2. Run Omnient. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial. +3. Use `imageSizeKb=150`, `detectionDelayMs=50`, `initialMessageDelayMs=0, 50, 100, 200` (separate settings), `enableBinaryEncoding=true`, `sendRawJson=true`, `fastHandshake=false`, `nonBlockingSend=false`, `blockingHandshake=false`, `forceLongPolling=false`, and `detectBufferingProxy=false`. The 150 KB value is metadata; no 150 KB image is uploaded. +4. Schedule M1 Sticky Cluster Info at the configured delay after `connect()` returns. Omnient sends M3 Prefetch immediately after M1. M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline. +5. Record Handshake (`webChannelOpened` minus connect), TTFA (M3 send to stream ACK), TTFD (M3 send to preliminary detections), and M4 RTT (M4 send to interaction response). +6. Include a pair in the histograms only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤20 ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit. + +7. Exclude a pair if the ON trial's initial early POST returned HTTP 400, even if a retry completed the trial. An unresolved early POST status is also excluded; a verified absence of an early POST is eligible. Do not replace excluded pairs with additional trials. +8. Plot paired differences as ON minus OFF, using full-precision measurements. Negative values mean ON was faster. All four delay settings use the same horizontal range and bin edges for each metric. Histograms use 10 ms bins aligned to multiples of 10 ms, pair counts on the vertical axis, and all eligible values without clipping in the main plot. When the full range exceeds 600 ms, an inset magnifies -300 to 300 ms and labels the number of pairs in that range; no additional pairs are excluded. TTFA and TTFD are measured from M3 send, so the configured M1 delay is not added to either metric. + +## Pair inclusion and early POST rejection + +The HTTP 400 rate uses all 50 attempted pairs at each delay as the denominator, including pairs that fail other histogram inclusion conditions. + +| M1 delay (ms) | Measured pairs | ON early POST HTTP 400 | 400 pair rate | No early POST | Unresolved status | Histogram pairs | +|---:|---:|---:|---:|---:|---:|---:| +| 0 | 50 | 29 | 58.0% | 0 | 0 | 17 | +| 50 | 50 | 3 | 6.0% | 0 | 0 | 34 | +| 100 | 50 | 0 | 0.0% | 0 | 0 | 37 | +| 200 | 50 | 4 | 8.0% | 43 | 0 | 38 | + +## M1 delay: 0 ms + +### TTFA: ON minus OFF + +![TTFA paired difference histogram, delay 0 ms](delay-0ms/histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram, delay 0 ms](delay-0ms/histograms/ttfd-on-minus-off.png) + + +## M1 delay: 50 ms + +### TTFA: ON minus OFF + +![TTFA paired difference histogram, delay 50 ms](delay-50ms/histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram, delay 50 ms](delay-50ms/histograms/ttfd-on-minus-off.png) + + +## M1 delay: 100 ms + +### TTFA: ON minus OFF + +![TTFA paired difference histogram, delay 100 ms](delay-100ms/histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram, delay 100 ms](delay-100ms/histograms/ttfd-on-minus-off.png) + + +## M1 delay: 200 ms + +### TTFA: ON minus OFF + +![TTFA paired difference histogram, delay 200 ms](delay-200ms/histograms/ttfa-on-minus-off.png) + +### TTFD: ON minus OFF + +![TTFD paired difference histogram, delay 200 ms](delay-200ms/histograms/ttfd-on-minus-off.png) diff --git a/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/run-metadata.json b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/run-metadata.json new file mode 100644 index 0000000..f2b3b62 --- /dev/null +++ b/webchannel/benchmark/lens/2026-10-12_14-09_omnient-delay-sweep_JST/run-metadata.json @@ -0,0 +1,80 @@ +{ + "delaysMs": [ + 0, + 50, + 100, + 200 + ], + "pairsPerDelay": 50, + "handshakeThresholdMs": 20.0, + "difference": "ON minus OFF", + "binWidthMs": 10, + "generatorSHA256": "32dcb3ea9ae120ace5547096a1871ace13800c59af06d7afd241fd9b86f4cdb4", + "infrastructureAttempts": [ + "infrastructure-attempts/delay-200ms-pair-30/README.md", + "infrastructure-attempts/delay-50ms-pair-27/README.md", + "infrastructure-attempts/delay-50ms-pair-27-reconnect/README.md" + ], + "runs": { + "0": { + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 14:10\u201314:17 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 0 + }, + "50": { + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 14:17\u201314:52 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 50 + }, + "100": { + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 14:56\u201315:03 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 100 + }, + "200": { + "pairCount": 50, + "scenarios": [ + "omnient" + ], + "reportFormat": "histogram", + "runDate": "2026-10-12", + "testPeriod": "2026-10-12 15:03\u201315:27 JST, from artifact timestamps", + "macOS": "26.5.1", + "xcode": "Xcode 26.6; Build version 17F113", + "sourceGitHead": "21eee148acc4a2bcb9856adc5ba9d7463a33f84d", + "networkSwitches": "Not independently recorded for this run", + "handshakeThresholdMs": 20.0, + "initialMessageDelayMs": 200 + } + } +} diff --git a/webchannel/benchmark/lens/AGENTS.md b/webchannel/benchmark/lens/AGENTS.md index d067655..5b62ac2 100644 --- a/webchannel/benchmark/lens/AGENTS.md +++ b/webchannel/benchmark/lens/AGENTS.md @@ -10,3 +10,7 @@ When changing or generating files under this directory, follow [README.md](READM - For new cold-connection runs, store per-trial Xcode and attachment-export logs in `logs/`, result bundles in `xcresults/`, and exported attachments in `attachments/`. Preserve earlier run layouts and keep the summarizer compatible with both. - Describe an early POST HTTP 400 as a rejection. Client logs alone do not establish whether soft stickiness failed or requests arrived out of order. - For cold-connection runs, update `summarize-cold-benchmark.py` when changing the generated layout, regenerate the documents, and verify them against the raw evidence. Do not use that generator on the earlier single-invocation run. +- For the authorized Omnient delay sweep, run 50 OFF/ON pairs at each of 0, 50, 100, and 200 ms with binary encoding enabled. Keep the 20 ms handshake-difference threshold and fresh-transport requirement. Use `run-omnient-delay-sweep.sh` and `summarize-delay-sweep.py`. +- Delay-sweep reports replace raw measurement tables with TTFA and TTFD histograms of paired ON-minus-OFF differences, with negative values meaning ON is faster. Exclude pairs with ON initial early POST HTTP 400, unresolved early POST status, or failed ordinary inclusion conditions. A verified absence of an early POST is eligible. Do not replace excluded pairs. Show the 400-pair count/rate over all 50 attempted pairs and histogram sample counts. This user-requested histogram format and 400 rate override the default raw-table and no-summary-statistics rules for this experiment. +- Render histograms deterministically from retained evidence, with 10 ms bins and common bin edges across the four delays for each metric. Retain full-precision paired differences, selection decisions, and bin counts in `histograms/`; link them from `artifacts.md`. Do not alter earlier reports when adding a new report mode. +- Finish runner edits before starting measurements; do not modify a shell script while it is executing. Resume recorded trials with `LENS_RESUME=1` after an infrastructure interruption. Preserve install/launch failures separately and never rerun completed pairs merely because they fail histogram inclusion. diff --git a/webchannel/benchmark/lens/README.md b/webchannel/benchmark/lens/README.md index c0e07c2..849f7ce 100644 --- a/webchannel/benchmark/lens/README.md +++ b/webchannel/benchmark/lens/README.md @@ -24,4 +24,23 @@ The raw attachments and, where applicable, the audit retain every trial. HTTP 40 Instructions for agents editing the runner, summarizer, or reports are in [AGENTS.md](AGENTS.md). +The [2026-10-12 Omnient delay-sweep report](2026-10-12_14-09_omnient-delay-sweep_JST/report.md) contains 50 pairs at each of 0, 50, 100, and 200 ms. Its [connection reuse audit](2026-10-12_14-09_omnient-delay-sweep_JST/connection-reuse-audit.md) and [artifacts](2026-10-12_14-09_omnient-delay-sweep_JST/artifacts.md) retain the measurement and infrastructure-interruption evidence. + +## Omnient initial-message delay sweep + +The Omnient sweep runs 50 OFF/ON pairs at each of 0, 50, 100, and 200 ms, in that order, with binary encoding enabled and a new process per trial. Build for testing once as above, then run: + +```bash +LENS_DERIVED_DATA=/path/to/derived-data bash webchannel/benchmark/lens/run-omnient-delay-sweep.sh DEVICE_ID OUTPUT_DIR 50 +MPLCONFIGDIR=/tmp/lens-matplotlib python3 -B webchannel/benchmark/lens/summarize-delay-sweep.py OUTPUT_DIR --pairs 50 --handshake-threshold-ms 20 +``` + +The summarizer requires matplotlib. For a single-delay Omnient histogram report, use `summarize-cold-benchmark.py OUTPUT_DIR 50 --scenarios omnient --report-format histogram --handshake-threshold-ms 20`. The normal raw-table mode remains available. Set `LENS_SCENARIOS=Omnient` to select only Omnient in the cold-trial runner; its default runs both scenarios. + +The sweep's `report.md` embeds TTFA and TTFD histograms of paired ON-minus-OFF differences, so negative values mean ON is faster. Both trials must complete, have verified fresh HTTP/2 transport, and differ in handshake duration by at most 20 ms. Pairs with an ON initial early POST HTTP 400 or an unresolved status are excluded. A verified absence of an early POST is eligible. Exclusions are not replaced. The report records the 400-pair fraction over all 50 attempted pairs at each delay, unresolved/unsent early POST counts, and histogram sample counts. Each metric uses common 10 ms bin edges across the four delays and retains every eligible value. + +Each `delay-Nms/` subdirectory retains `logs/`, `xcresults/`, `attachments/`, `connection-reuse-audit.md`, and `artifacts.md`. `histograms/` contains PNG/SVG charts, full-precision paired differences, per-pair selection decisions, and exact bin counts. The top-level artifact and audit documents link the per-delay evidence. Trust/preflight checks and interrupted earlier attempts are excluded from the sweep data. The runner refuses to overwrite trial files and stops on test-launch or attachment-export failures. + +After resolving an infrastructure interruption, archive the incomplete pair's files under `infrastructure-attempts/` before restarting that pair. Set `LENS_RESUME=1` when rerunning the sweep to preserve all already-recorded trials, including failed measurement trials that exported their benchmark result. Never retry a pair merely because it fails histogram inclusion. The runner bounds each install/launch/test command to 180 seconds by default (`LENS_TRIAL_TIMEOUT_SECONDS`); the Lens measurement's completion deadline remains 60 seconds. Cancellation is forwarded to the active Xcode process group. + Recorded runs: [single-invocation run at 00:37 JST](2026-10-07_00-37-42_JST/report.md), [text-encoding cold-connection run at 15:21 JST](2026-10-07_15-21-10_JST/report.md), [binary-encoding cold-connection run at 17:27 JST](2026-10-07_17-27-44_binary-cold_JST/report.md), [binary-encoding rerun on 2026-10-08](2026-10-08_13-08_binary-cold-rerun_JST/report.md), [binary-encoding run with a 20 ms handshake threshold](2026-10-08_13-21_binary-cold-20ms_JST/report.md), [its separate rerun at 13:40 JST](2026-10-08_13-39_binary-cold-20ms-rerun_JST/report.md), and [the 50 ms initial-message-delay run](2026-10-08_15-04_binary-cold-50ms_JST/report.md). diff --git a/webchannel/benchmark/lens/run-bounded-command.py b/webchannel/benchmark/lens/run-bounded-command.py new file mode 100644 index 0000000..9f224af --- /dev/null +++ b/webchannel/benchmark/lens/run-bounded-command.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +"""Bound a trial's install/launch time and forward cancellation to its process group.""" + +import os +import signal +import subprocess +import sys + + +def main(): + timeout = int(sys.argv[1]) + if timeout <= 0: + raise ValueError("trial timeout must be positive") + child = subprocess.Popen(sys.argv[2:], start_new_session=True) + + def terminate(): + if child.poll() is None: + os.killpg(child.pid, signal.SIGTERM) + try: + child.wait(timeout=5) + except subprocess.TimeoutExpired: + os.killpg(child.pid, signal.SIGKILL) + child.wait() + + def cancelled(signum, _frame): + terminate() + raise SystemExit(128 + signum) + + signal.signal(signal.SIGINT, cancelled) + signal.signal(signal.SIGTERM, cancelled) + try: + result = child.wait(timeout=timeout) + return result if result >= 0 else 128 - result + except subprocess.TimeoutExpired: + print(f"Trial command exceeded {timeout} seconds; terminating install/launch/test.", file=sys.stderr) + terminate() + return 124 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/webchannel/benchmark/lens/run-cold-benchmark.sh b/webchannel/benchmark/lens/run-cold-benchmark.sh index 9067feb..bb2dfa9 100644 --- a/webchannel/benchmark/lens/run-cold-benchmark.sh +++ b/webchannel/benchmark/lens/run-cold-benchmark.sh @@ -10,9 +10,32 @@ device_id=$1 output_dir=$2 pairs=${3:-10} demo_dir=$(cd "$(dirname "$0")/../../objc/demo/WebChanneliOSDemo" && pwd) +runner_dir=$(cd "$(dirname "$0")" && pwd) derived_data=${LENS_DERIVED_DATA:-/tmp/net-http-cold-build} binary_encoding=${LENS_BINARY_ENCODING:-0} initial_message_delay_ms=${LENS_INITIAL_MESSAGE_DELAY_MS:-0} +scenarios=${LENS_SCENARIOS:-"Omnient Viewfinder"} +resume=${LENS_RESUME:-0} +trial_timeout_seconds=${LENS_TRIAL_TIMEOUT_SECONDS:-180} +case "$trial_timeout_seconds" in + ''|*[!0-9]*|0) echo "LENS_TRIAL_TIMEOUT_SECONDS must be a positive integer" >&2; exit 2 ;; +esac +case "$resume" in + 0|1) ;; + *) echo "LENS_RESUME must be 0 or 1" >&2; exit 2 ;; +esac +case "$pairs" in + ''|*[!0-9]*|0) echo "PAIRS must be a positive integer" >&2; exit 2 ;; +esac +for scenario in $scenarios; do + case "$scenario" in + Omnient|Viewfinder) ;; + *) echo "LENS_SCENARIOS must contain Omnient and/or Viewfinder" >&2; exit 2 ;; + esac +done +if [ -z "$scenarios" ]; then + echo "LENS_SCENARIOS must not be empty" >&2; exit 2 +fi case "$initial_message_delay_ms" in ''|*[!0-9]*) echo "LENS_INITIAL_MESSAGE_DELAY_MS must be a nonnegative integer" >&2; exit 2 ;; esac @@ -22,8 +45,18 @@ case "$binary_encoding" in *) echo "LENS_BINARY_ENCODING must be 0 or 1" >&2; exit 2 ;; esac mkdir -p "$output_dir/logs" "$output_dir/xcresults" "$output_dir/attachments" +trial_pid= +stop_trial() { + trap - INT TERM + if [ -n "$trial_pid" ]; then + kill -TERM "$trial_pid" 2>/dev/null || true + wait "$trial_pid" 2>/dev/null || true + fi + exit 130 +} +trap stop_trial INT TERM -for scenario in Omnient Viewfinder; do +for scenario in $scenarios; do case "$scenario" in Omnient) scenario_slug=omnient ;; Viewfinder) scenario_slug=viewfinder ;; @@ -38,20 +71,45 @@ for scenario in Omnient Viewfinder; do result="$output_dir/xcresults/$trial.xcresult" log="$output_dir/logs/$trial.log" export_dir="$output_dir/attachments/$trial-attachments" + if [ "$resume" = 1 ] && [ -f "$log" ] && [ -d "$export_dir" ] \ + && rg -q 'LENS_BENCHMARK_RESULT' "$log" \ + && find "$export_dir" -name '*.json' ! -name manifest.json | rg -q .; then + echo "Keeping recorded trial $trial" + continue + fi + if [ -e "$result" ] || [ -e "$log" ]; then + echo "Refusing to overwrite existing trial $trial" >&2 + exit 2 + fi echo "Running $trial" - if TEST_RUNNER_LENS_INITIAL_MESSAGE_DELAY_MS="$initial_message_delay_ms" xcodebuild test-without-building \ + TEST_RUNNER_LENS_INITIAL_MESSAGE_DELAY_MS="$initial_message_delay_ms" \ + python3 "$runner_dir/run-bounded-command.py" "$trial_timeout_seconds" xcodebuild test-without-building \ -workspace "$demo_dir/WebChanneliOSDemo.xcworkspace" \ -scheme WebChanneliOSDemo -configuration Debug \ -destination "id=$device_id" -derivedDataPath "$derived_data" \ -parallel-testing-enabled NO \ -only-testing:"WebChanneliOSDemoTests/LensBenchmarkTests/${test_prefix}${scenario}${setting}" \ - -resultBundlePath "$result" > "$log" 2>&1; then + -resultBundlePath "$result" > "$log" 2>&1 & + trial_pid=$! + if wait "$trial_pid"; then echo "PASS $trial" else echo "FAIL $trial (see $log)" >&2 fi + trial_pid= + if rg -q 'Developer App Certificate is not trusted|Failed to install or launch the test runner' "$log"; then + echo "Stopping: device could not launch the test runner (see $log)" >&2 + exit 1 + fi xcrun xcresulttool export attachments --path "$result" --output-path "$export_dir" \ - > "$output_dir/logs/$trial-export.log" 2>&1 || true + > "$output_dir/logs/$trial-export.log" 2>&1 || { + echo "Stopping: attachment export failed for $trial" >&2 + exit 1 + } + if ! rg -q 'LENS_BENCHMARK_RESULT' "$log"; then + echo "Stopping: trial produced no benchmark result (see $log)" >&2 + exit 1 + fi done done done diff --git a/webchannel/benchmark/lens/run-omnient-delay-sweep.sh b/webchannel/benchmark/lens/run-omnient-delay-sweep.sh new file mode 100644 index 0000000..bd16ecf --- /dev/null +++ b/webchannel/benchmark/lens/run-omnient-delay-sweep.sh @@ -0,0 +1,31 @@ +#!/bin/bash +set -eu + +if [ "$#" -lt 2 ]; then + echo "Usage: $0 DEVICE_ID OUTPUT_DIR [PAIRS]" >&2 + exit 2 +fi +device_id=$1 +output_dir=$2 +pairs=${3:-50} +runner_dir=$(cd "$(dirname "$0")" && pwd) +runner_pid= +stop_sweep() { + trap - INT TERM + if [ -n "$runner_pid" ]; then + kill -TERM "$runner_pid" 2>/dev/null || true + wait "$runner_pid" 2>/dev/null || true + fi + exit 130 +} +trap stop_sweep INT TERM + +mkdir -p "$output_dir/logs" +for delay_ms in 0 50 100 200; do + echo "Starting M1 delay ${delay_ms} ms: ${pairs} Omnient OFF/ON pairs" + LENS_SCENARIOS=Omnient LENS_BINARY_ENCODING=1 LENS_INITIAL_MESSAGE_DELAY_MS=$delay_ms \ + bash "$runner_dir/run-cold-benchmark.sh" "$device_id" "$output_dir/delay-${delay_ms}ms" "$pairs" & + runner_pid=$! + wait "$runner_pid" + runner_pid= +done diff --git a/webchannel/benchmark/lens/summarize-cold-benchmark.py b/webchannel/benchmark/lens/summarize-cold-benchmark.py index 051d88d..9d6f5b0 100644 --- a/webchannel/benchmark/lens/summarize-cold-benchmark.py +++ b/webchannel/benchmark/lens/summarize-cold-benchmark.py @@ -2,11 +2,14 @@ """Summarize one-process-per-trial Lens results exported by xcresulttool.""" import argparse +import csv +import hashlib import json import math import re import subprocess from datetime import datetime +from zoneinfo import ZoneInfo from pathlib import Path from urllib.parse import parse_qs, urlsplit @@ -23,7 +26,7 @@ def trial_result(root: Path, stem: str): def load_trial(root: Path, scenario: str, pair: int, setting: str): export = trial_attachments(root, f"{scenario}-{pair}-{setting}") - for path in export.glob("*.json"): + for path in sorted(export.glob("*.json")): if path.name != "manifest.json": rows = json.loads(path.read_text()) if rows: @@ -58,8 +61,12 @@ def early_post_status(root: Path, scenario: str, pair: int, setting: str): log = trial_log(root, scenario, pair, setting) if not log.exists(): return "unknown" + text = log.read_text(errors="replace") + early_requests = [parse_qs(urlsplit(url).query) for url in re.findall(r"\[HTTP Req\].*? POST (\S+)", text)] + early_rids = [int(query["RID"][0]) for query in early_requests + if query.get("AID") == ["-1"] and query.get("RID", [""])[0].isdigit()] statuses_by_rid = {} - for line in log.read_text(errors="replace").splitlines(): + for line in text.splitlines(): match = re.search(r"\[HTTP Resp Meta\].*?\] POST (\S+) status: (\d+)", line) if match: query = parse_qs(urlsplit(match.group(1)).query) @@ -67,8 +74,71 @@ def early_post_status(root: Path, scenario: str, pair: int, setting: str): if query.get("AID") == ["-1"] and rid.isdigit(): statuses_by_rid.setdefault(int(rid), set()).add(match.group(2)) if not statuses_by_rid: - return "unknown" - return ", ".join(sorted(statuses_by_rid[min(statuses_by_rid)])) + return "not sent" if not early_rids and "[SDK Info] WebChannel opened on " in text else "unknown" + first_rid = min(early_rids) if early_rids else min(statuses_by_rid) + return ", ".join(sorted(statuses_by_rid[first_rid])) if first_rid in statuses_by_rid else "unknown" + + +def has_early_post_400(status): + return "400" in status.split(", ") + + +def pair_reasons(off, on, threshold_ms): + reasons = [] + required = ("handshakeMs", "ttfaMs", "ttfdMs", "m4RttMs") + for setting, row in (("OFF", off), ("ON", on)): + if row is None: + reasons.append(f"{setting} attachment missing") + elif row.get("status") != "completed" or any( + not isinstance(row.get(key), (int, float)) or not math.isfinite(row[key]) + for key in required + ): + reasons.append(f"{setting} incomplete") + elif row.get("coldConnection") is not True: + reasons.append(f"{setting} handshake connection unverified") + if not reasons and abs(on["handshakeMs"] - off["handshakeMs"]) > threshold_ms: + reasons.append(f"handshake difference >{threshold_ms:g} ms") + return reasons + + +def plot_histogram(values, path, metric, delay_ms, bin_width=10, bounds=None): + import matplotlib + matplotlib.use("Agg") + matplotlib.rcParams["svg.hashsalt"] = "lens-histogram-v1" + import matplotlib.pyplot as plt + from matplotlib.ticker import MaxNLocator + + low, high = bounds or (min(values + [0]), max(values + [0])) + lower = math.floor(low / bin_width) * bin_width + upper = max(lower + bin_width, (math.floor(high / bin_width) + 1) * bin_width) + bins = [lower + i * bin_width for i in range(round((upper - lower) / bin_width) + 1)] + fig, ax = plt.subplots(figsize=(9, 4.8), layout="constrained") + counts, edges, _ = ax.hist(values, bins=bins, color="#2c6eaa", edgecolor="white") + ax.axvline(0, color="#333333", linestyle="--", linewidth=1) + ax.set(title=f"Omnient: {metric} ON - OFF | M1 delay {delay_ms} ms | n={len(values)}", + xlabel=f"{metric} difference (ms): negative = ON faster", ylabel="Pair count") + ax.yaxis.set_major_locator(MaxNLocator(integer=True)) + ax.grid(axis="y", alpha=0.2) + ax.set_axisbelow(True) + ax.set_xlim(bins[0], bins[-1]) + if bins[-1] - bins[0] > 600 and any(-300 <= value <= 300 for value in values): + detail = ax.inset_axes([0.40, 0.49, 0.57, 0.43]) + detail.hist(values, bins=bins, color="#2c6eaa", edgecolor="white") + detail.axvline(0, color="#333333", linestyle="--", linewidth=1) + detail.set_xlim(-300, 300) + detail.yaxis.set_major_locator(MaxNLocator(integer=True)) + detail.grid(axis="y", alpha=0.2) + detail.set_axisbelow(True) + visible = sum(-300 <= value <= 300 for value in values) + detail.set_title(f"Detail: -300 to 300 ms ({visible}/{len(values)} pairs)", fontsize=9) + detail.tick_params(labelsize=8) + if not values: + ax.text(0.5, 0.5, "No eligible pairs", transform=ax.transAxes, ha="center") + path.parent.mkdir(parents=True, exist_ok=True) + fig.savefig(path, dpi=160) + fig.savefig(path.with_suffix(".svg"), metadata={"Date": None}) + plt.close(fig) + return {"binEdgesMs": edges.tolist(), "pairCounts": counts.astype(int).tolist()} def message_dispatch(root: Path, scenario: str, pair: int, setting: str, handshake): @@ -125,14 +195,24 @@ def command_output(*args): def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("output_dir", type=Path) - parser.add_argument("pairs", nargs="?", type=int, default=10) + parser.add_argument("pairs", nargs="?", type=int) parser.add_argument("network_switches", nargs="?") parser.add_argument("--handshake-threshold-ms", type=float) + parser.add_argument("--scenarios", nargs="+", choices=("omnient", "viewfinder")) + parser.add_argument("--report-format", choices=("raw", "histogram")) args = parser.parse_args() root = args.output_dir - pair_count = args.pairs + metadata_path = root / "run-metadata.json" + metadata = json.loads(metadata_path.read_text()) if metadata_path.exists() else {} + pair_count = args.pairs if args.pairs is not None else metadata.get("pairCount", 10) + if pair_count < 1: + parser.error("pairs must be positive") + scenarios = tuple(args.scenarios or metadata.get("scenarios", ("omnient", "viewfinder"))) + report_format = args.report_format or metadata.get("reportFormat", "raw") + if report_format == "histogram" and scenarios != ("omnient",): + parser.error("histogram reports currently require --scenarios omnient") trials = {} - for scenario in ("omnient", "viewfinder"): + for scenario in scenarios: for pair in range(1, pair_count + 1): for setting in ("off", "on"): trials[scenario, pair, setting] = load_trial(root, scenario, pair, setting) @@ -149,14 +229,15 @@ def main(): logs = [trial_log(root, *key) for key in trials] logs = [path for path in logs if path.exists()] if logs: - start = datetime.fromtimestamp(min(path.stat().st_ctime for path in logs)) - end = datetime.fromtimestamp(max(path.stat().st_mtime for path in logs)) - detected_period = f"{start:%Y-%m-%d %H:%M}–{end:%H:%M} local time, from artifact timestamps" + start = datetime.fromtimestamp(min(path.stat().st_ctime for path in logs), ZoneInfo("Asia/Tokyo")) + end = datetime.fromtimestamp(max(path.stat().st_mtime for path in logs), ZoneInfo("Asia/Tokyo")) + detected_period = f"{start:%Y-%m-%d %H:%M}–{end:%H:%M} JST, from artifact timestamps" else: detected_period = "unavailable" - start = datetime.now() - metadata_path = root / "run-metadata.json" - metadata = json.loads(metadata_path.read_text()) if metadata_path.exists() else {} + start = datetime.now(ZoneInfo("Asia/Tokyo")) + metadata["pairCount"] = pair_count + metadata["scenarios"] = list(scenarios) + metadata["reportFormat"] = report_format metadata.setdefault("runDate", f"{start:%Y-%m-%d}") metadata.setdefault("testPeriod", detected_period) metadata.setdefault("macOS", command_output("sw_vers", "-productVersion")) @@ -184,7 +265,6 @@ def main(): ("TTFD", "ttfdMs"), ("M4 RTT", "m4RttMs"), ) - required = [key for _, key in metrics] lines = [ f"# Lens benchmark — {metadata['runDate']} physical-device cold-connection run" f"{' (binary encoding)' if binary_encoding else ''}", @@ -205,38 +285,81 @@ def main(): f"| Source | Git HEAD `{metadata['sourceGitHead']}` plus uncommitted benchmark instrumentation |", f"| Test period | {metadata['testPeriod']} |", f"| Test execution | {pair_count} alternating OFF/ON pairs per scenario; a separate `xcodebuild test-without-building` invocation for each trial |", - f"| Test result | {'All trials completed and passed fresh-transport verification' if succeeded == cold == 4 * pair_count else f'{succeeded} completed trials; {cold} passed fresh-transport verification'} |", + f"| Test result | {'All trials completed and passed fresh-transport verification' if succeeded == cold == 2 * len(scenarios) * pair_count else f'{succeeded} completed trials; {cold} passed fresh-transport verification'} |", "| Transport requirement | First transport: `h2`, a new TCP/TLS connection on the handshake GET/POST or early POST; if the GET reused the early POST connection, matching address and local port |", "", "## Procedure and parameters", "", "1. Build the XCTest bundle once, then launch exactly one cold-trial test method per `xcodebuild test-without-building` invocation. Keep parallel testing disabled and retain each `.xcresult` bundle.", - "2. Run Omnient first, then Camera Viewfinder. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial.", + f"2. Run {', then '.join('Omnient' if scenario == 'omnient' else 'Camera Viewfinder' for scenario in scenarios)}. Each pair runs `fastHandshake2=false` (OFF), then `fastHandshake2=true` (ON). The XCTest creates a new `WebChannelService` and WebChannel client per trial.", f"3. Use `imageSizeKb=150`, `detectionDelayMs=50`, `initialMessageDelayMs={initial_message_delay_ms}`, `enableBinaryEncoding={'true' if binary_encoding else 'false'}`, `sendRawJson=true`, `fastHandshake=false`, `nonBlockingSend=false`, `blockingHandshake=false`, `forceLongPolling=false`, and `detectBufferingProxy=false`. The 150 KB value is metadata; no 150 KB image is uploaded.", - f"4. Schedule M1 Sticky Cluster Info {initial_message_delay_ms} ms after `connect()` returns. Omnient sends M3 Prefetch immediately after M1; Camera Viewfinder schedules M2 Heartbeat at +200 ms and M3 Prefetch at +500 ms after `connect()` returns. M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline.", + f"4. Schedule M1 Sticky Cluster Info {initial_message_delay_ms} ms after `connect()` returns. " + + ("Omnient sends M3 Prefetch immediately after M1. " if "omnient" in scenarios else "") + + ("Camera Viewfinder schedules M2 Heartbeat at +200 ms and M3 Prefetch at +500 ms after `connect()` returns. " if "viewfinder" in scenarios else "") + + "M4 Final Capture follows preliminary detections. Each trial has a 60-second completion deadline.", "5. Record Handshake (`webChannelOpened` minus connect), TTFA (M3 send to stream ACK), TTFD (M3 send to preliminary detections), and M4 RTT (M4 send to interaction response).", - f"6. Include a pair in the raw measurement tables only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤{threshold_ms:g} ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit.", + f"6. Include a pair in the {'histograms' if report_format == 'histogram' else 'raw measurement tables'} only if both runs completed, both trials meet the transport requirement, and the absolute ON/OFF handshake-duration difference is ≤{threshold_ms:g} ms. Calculate that difference from full-precision values. Keep every trial in the raw attachments and audit.", "", ] - for scenario, heading in (("omnient", "Omnient"), ("viewfinder", "Camera Viewfinder")): + if report_format == "histogram": + lines.extend([ + "7. Exclude a pair if the ON trial's initial early POST returned HTTP 400, even if a retry completed the trial. An unresolved early POST status is also excluded; a verified absence of an early POST is eligible. Do not replace excluded pairs with additional trials.", + "8. Plot paired differences as ON minus OFF, using full-precision measurements. Negative values mean ON was faster. Histograms use 10 ms bins aligned to multiples of 10 ms, pair counts on the vertical axis, and all eligible values without clipping in the main plot. When the full range exceeds 600 ms, an inset magnifies -300 to 300 ms and labels the number of pairs in that range; no additional pairs are excluded. TTFA and TTFD are measured from M3 send, so the configured M1 delay is not added to either metric.", + "", + ]) + + histogram_data = {"initialMessageDelayMs": initial_message_delay_ms, "pairCount": pair_count, + "handshakeThresholdMs": threshold_ms, "difference": "ON minus OFF", "binWidthMs": 10, + "pairs": [], "histograms": {}} + for scenario in scenarios: + heading = "Omnient" if scenario == "omnient" else "Camera Viewfinder" selected = [] for pair in range(1, pair_count + 1): off = trials[scenario, pair, "off"] on = trials[scenario, pair, "on"] - reasons = [] - for setting, row in (("OFF", off), ("ON", on)): - if row is None: - reasons.append(f"{setting} attachment missing") - elif row.get("status") != "completed" or any(row.get(key) is None for key in required): - reasons.append(f"{setting} incomplete") - elif not row.get("coldConnection"): - reasons.append(f"{setting} handshake connection unverified") - if not reasons and abs(on["handshakeMs"] - off["handshakeMs"]) > threshold_ms: - reasons.append(f"handshake difference >{threshold_ms:g} ms") + reasons = pair_reasons(off, on, threshold_ms) + if report_format == "histogram": + post_status = early_post_statuses[scenario, pair, "on"] + if has_early_post_400(post_status): + reasons.append("ON initial early POST HTTP 400") + elif post_status == "unknown": + reasons.append("ON initial early POST status unresolved") + record = {"pair": pair, "accepted": not reasons, "exclusionReasons": reasons, + "earlyPostHTTP": post_status, "ttfaDifferenceMs": None, "ttfdDifferenceMs": None} + if off and on: + for key, metric in (("ttfaDifferenceMs", "ttfaMs"), ("ttfdDifferenceMs", "ttfdMs")): + if off.get(metric) is not None and on.get(metric) is not None: + record[key] = on[metric] - off[metric] + histogram_data["pairs"].append(record) if not reasons: selected.extend(((pair, "OFF", off), (pair, "ON", on))) + if report_format == "histogram": + statuses = [early_post_statuses[scenario, pair, "on"] for pair in range(1, pair_count + 1)] + rejected = sum(has_early_post_400(status) for status in statuses) + histogram_data.update(earlyPost400Pairs=rejected, earlyPost400Rate=rejected / pair_count, + unknownEarlyPostPairs=statuses.count("unknown"), noEarlyPostPairs=statuses.count("not sent"), + acceptedPairs=len(selected) // 2) + lines.extend([ + f"## {heading}: paired difference histograms", + "", + "| Item | Count / rate |", + "|---|---:|", + f"| Measured OFF/ON pairs | {pair_count} |", + f"| ON initial early POST HTTP 400 pairs | {rejected}/{pair_count} ({100 * rejected / pair_count:.1f}%) |", + f"| ON early POST not sent | {statuses.count('not sent')} |", + f"| ON early POST status unresolved | {statuses.count('unknown')} |", + f"| Pairs included in both histograms | {len(selected) // 2}/{pair_count} |", + "", + ]) + for metric, key in (("TTFA", "ttfaDifferenceMs"), ("TTFD", "ttfdDifferenceMs")): + values = [record[key] for record in histogram_data["pairs"] if record["accepted"]] + path = root / "histograms" / f"{metric.lower()}-on-minus-off.png" + histogram_data["histograms"][metric] = plot_histogram(values, path, metric, initial_message_delay_ms) + lines.extend([f"### {metric}: ON minus OFF", "", f"![{metric} paired difference histogram]({path.relative_to(root).as_posix()})", ""]) + continue + lines.extend([ f"## {heading}: valid pair raw measurements", "", @@ -300,7 +423,7 @@ def main(): viewfinder_timing = ("after the channel opened in every completed Viewfinder trial" if viewfinder_open_before_prefetch else "near the channel opening") retries = {} - for scenario in ("omnient", "viewfinder"): + for scenario in scenarios: retries[scenario] = [ pair for pair in range(1, pair_count + 1) if trial_log(root, scenario, pair, "on").exists() @@ -316,12 +439,16 @@ def main(): reason = " (Xcode log includes network connection lost, -1005)" if "Code=-1005" in log_text else "" failed_trials.append(f"{scenario} pair {pair} {setting.upper()}{reason}") audit_lines.extend(["", "## Observations and limits", "", - f"Omnient sends M3 during connection establishment; Viewfinder schedules M3 about 500 ms later, {viewfinder_timing}. Fresh connection verification is to the reached edge, not a cold DNS lookup or cold backend application state.", + f"Omnient sends M3 immediately after M1, scheduled {initial_message_delay_ms} ms after connect() returns. " + + (f"Viewfinder schedules M3 about 500 ms later, {viewfinder_timing}. " if "viewfinder" in scenarios else "") + + "Fresh connection verification is to the reached edge, not a cold DNS lookup or cold backend application state.", "", - f"The initial early POST returned HTTP 400 in {sum(status == '400' for status in early_post_statuses.values())}/{2 * pair_count} ON trials. " - f"Of those trials, {sum(status == '400' and trials[key] is not None and trials[key].get('status') == 'completed' for key, status in early_post_statuses.items())} completed; inspect the logs to distinguish successful retries from incomplete runs.", + f"The initial early POST returned HTTP 400 in {sum(has_early_post_400(status) for status in early_post_statuses.values())}/{len(scenarios) * pair_count} ON trials. " + f"Of those trials, {sum(has_early_post_400(status) and trials[key] is not None and trials[key].get('status') == 'completed' for key, status in early_post_statuses.items())} completed; inspect the logs to distinguish successful retries from incomplete runs.", "", - f"The Xcode logs contain retry diagnostics in ON trials for Omnient pairs {', '.join(map(str, retries['omnient'])) or 'none'} and Viewfinder pairs {', '.join(map(str, retries['viewfinder'])) or 'none'}. Those retries can affect TTFA and TTFD; the raw logs should be consulted before attributing a timing difference solely to the handshake option.", + "The Xcode logs contain retry diagnostics in ON trials for " + "; ".join( + f"{scenario} pairs {', '.join(map(str, retries[scenario])) or 'none'}" for scenario in scenarios + ) + ". Those retries can affect TTFA and TTFD; the raw logs should be consulted before attributing a timing difference solely to the handshake option.", "", ]) if failed_trials: @@ -341,7 +468,7 @@ def main(): def artifact_link(path, label): return f"[{label}]({path.relative_to(root).as_posix()})" if path.exists() else "—" - for scenario in ("omnient", "viewfinder"): + for scenario in scenarios: for pair in range(1, pair_count + 1): for setting in ("off", "on"): stem = f"{scenario}-{pair}-{setting}" @@ -357,6 +484,30 @@ def artifact_link(path, label): f"{artifact_link(trial_result(root, stem), 'xcresult')} | " f"{artifact_link(export / 'manifest.json', 'Manifest')} |" ) + if report_format == "histogram": + import matplotlib + histogram_data["matplotlibVersion"] = matplotlib.__version__ + histogram_data["generatorSHA256"] = hashlib.sha256(Path(__file__).read_bytes()).hexdigest() + data_path = root / "histograms" / "histogram-data.json" + data_path.write_text(json.dumps(histogram_data, indent=2, ensure_ascii=False) + "\n") + csv_path = root / "histograms" / "pair-differences.csv" + with csv_path.open("w", newline="") as stream: + writer = csv.DictWriter(stream, fieldnames=list(histogram_data["pairs"][0])) + writer.writeheader() + writer.writerows(histogram_data["pairs"]) + evidence = set(logs) + for scenario, pair, setting in trials: + export = trial_attachments(root, f"{scenario}-{pair}-{setting}") + evidence.update(path for path in export.glob("*") if path.suffix in (".json", ".csv")) + manifest = [{"path": path.relative_to(root).as_posix(), "sha256": hashlib.sha256(path.read_bytes()).hexdigest()} + for path in sorted(evidence)] + (root / "histograms" / "input-manifest.json").write_text(json.dumps(manifest, indent=2) + "\n") + artifact_lines.extend(["", "## Histogram evidence", "", + "[Histogram data and selection decisions](histograms/histogram-data.json) · [Full-precision paired differences](histograms/pair-differences.csv). Each record retains its pair number and exclusion reasons; no raw measurement is changed.", "", + "[Input SHA-256 manifest](histograms/input-manifest.json) records the raw files used for aggregation. The histogram JSON records the renderer version and generator SHA-256.", "", + "| Metric | PNG | SVG |", "|---|---|---|", + "| TTFA | [PNG](histograms/ttfa-on-minus-off.png) | [SVG](histograms/ttfa-on-minus-off.svg) |", + "| TTFD | [PNG](histograms/ttfd-on-minus-off.png) | [SVG](histograms/ttfd-on-minus-off.svg) |", ""]) artifact_lines.extend(["", "JSON includes app logs and task-level `URLSessionTaskMetrics`. Xcode logs include HTTP response metadata used to classify early POST status. Manifests map exported attachments to XCTest tests.", ""]) (root / "artifacts.md").write_text("\n".join(artifact_lines)) diff --git a/webchannel/benchmark/lens/summarize-delay-sweep.py b/webchannel/benchmark/lens/summarize-delay-sweep.py new file mode 100644 index 0000000..51fba3d --- /dev/null +++ b/webchannel/benchmark/lens/summarize-delay-sweep.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +"""Generate an Omnient delay-sweep report from retained cold-trial evidence.""" + +import argparse +import hashlib +import importlib.util +import json +import re +import subprocess +import sys +from pathlib import Path + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("output_dir", type=Path) + parser.add_argument("--pairs", type=int, default=50) + parser.add_argument("--handshake-threshold-ms", type=float, default=20) + parser.add_argument("--network-switches") + args = parser.parse_args() + root = args.output_dir + delays = (0, 50, 100, 200) + summarizer_path = Path(__file__).with_name("summarize-cold-benchmark.py") + spec = importlib.util.spec_from_file_location("cold_summary", summarizer_path) + summary = importlib.util.module_from_spec(spec) + spec.loader.exec_module(summary) + datasets = {} + metadata = {} + for delay in delays: + run = root / f"delay-{delay}ms" + # Refuse to present a partial sweep as a completed measurement. + for pair in range(1, args.pairs + 1): + for setting in ("off", "on"): + if not summary.trial_log(run, "omnient", pair, setting).exists(): + parser.error(f"Missing attempted trial: delay {delay}, pair {pair}, {setting}") + command = [sys.executable, "-B", str(summarizer_path), str(run), str(args.pairs), + "--scenarios", "omnient", "--report-format", "histogram", + "--handshake-threshold-ms", str(args.handshake_threshold_ms)] + if args.network_switches is not None: + command.insert(5, args.network_switches) + subprocess.run(command, check=True) + datasets[delay] = json.loads((run / "histograms/histogram-data.json").read_text()) + metadata[delay] = json.loads((run / "run-metadata.json").read_text()) + if datasets[delay]["initialMessageDelayMs"] != delay: + parser.error(f"Measured delay setting does not match directory: {run}") + + # All four charts for a metric have exactly the same bin edges and range. + for metric, key in (("TTFA", "ttfaDifferenceMs"), ("TTFD", "ttfdDifferenceMs")): + pooled = [record[key] for data in datasets.values() for record in data["pairs"] if record["accepted"]] + bounds = (min(pooled + [0]), max(pooled + [0])) + for delay, data in datasets.items(): + values = [record[key] for record in data["pairs"] if record["accepted"]] + path = root / f"delay-{delay}ms/histograms/{metric.lower()}-on-minus-off.png" + data["histograms"][metric] = summary.plot_histogram(values, path, metric, delay, bounds=bounds) + data["sharedHistogramAxes"] = True + (path.parent / "histogram-data.json").write_text(json.dumps(data, indent=2) + "\n") + + first_report = (root / "delay-0ms/report.md").read_text() + prefix = first_report.split("## Omnient: paired difference histograms")[0] + prefix = re.sub(r"^# .*", "# Lens benchmark — Omnient initial-message delay sweep", prefix, count=1) + prefix = prefix.replace(f"{args.pairs} alternating OFF/ON pairs per scenario", f"{args.pairs} alternating OFF/ON pairs per delay; 0, 50, 100, 200 ms in that order") + total_completed = total_fresh = 0 + for delay in delays: + for pair in range(1, args.pairs + 1): + for setting in ("off", "on"): + row = summary.load_trial(root / f"delay-{delay}ms", "omnient", pair, setting) + total_completed += bool(row and row.get("status") == "completed") + total_fresh += bool(row and row.get("coldConnection") is True) + prefix = re.sub(r"\| Test result \| .*? \|", f"| Test result | {total_completed}/{8 * args.pairs} completed trials; {total_fresh}/{8 * args.pairs} passed fresh-transport verification |", prefix) + period = "; ".join(f"{delay} ms: {metadata[delay]['testPeriod']}" for delay in delays) + prefix = re.sub(r"\| Test period \| .*? \|", f"| Test period | {period} |", prefix) + prefix = prefix.replace("`initialMessageDelayMs=0`", "`initialMessageDelayMs=0, 50, 100, 200` (separate settings)") + prefix = prefix.replace("Schedule M1 Sticky Cluster Info 0 ms after", "Schedule M1 Sticky Cluster Info at the configured delay after") + prefix = prefix.replace("Histograms use 10 ms bins", "All four delay settings use the same horizontal range and bin edges for each metric. Histograms use 10 ms bins") + lines = [prefix.rstrip(), "", "## Pair inclusion and early POST rejection", "", + "The HTTP 400 rate uses all 50 attempted pairs at each delay as the denominator, including pairs that fail other histogram inclusion conditions.".replace("all 50", f"all {args.pairs}"), "", + "| M1 delay (ms) | Measured pairs | ON early POST HTTP 400 | 400 pair rate | No early POST | Unresolved status | Histogram pairs |", + "|---:|---:|---:|---:|---:|---:|---:|"] + for delay, data in datasets.items(): + lines.append(f"| {delay} | {args.pairs} | {data['earlyPost400Pairs']} | {data['earlyPost400Rate'] * 100:.1f}% | {data['noEarlyPostPairs']} | {data['unknownEarlyPostPairs']} | {data['acceptedPairs']} |") + for delay in delays: + lines.extend(["", f"## M1 delay: {delay} ms", ""]) + for metric in ("TTFA", "TTFD"): + lines.extend([f"### {metric}: ON minus OFF", "", + f"![{metric} paired difference histogram, delay {delay} ms](delay-{delay}ms/histograms/{metric.lower()}-on-minus-off.png)", ""]) + (root / "report.md").write_text("\n".join(lines)) + artifacts = ["# Omnient delay-sweep artifacts", "", "[Report](report.md) · [Connection reuse audit](connection-reuse-audit.md)", "", + "Each delay retains every attempted OFF/ON trial. Raw CSV/JSON, logs, result bundles, histogram bins, paired differences, and selection decisions are linked below.", "", + "| M1 delay (ms) | Artifacts | Transport audit | Histogram input and bins | Paired differences |", "|---:|---|---|---|---|"] + audit = ["# Omnient delay-sweep connection reuse audit", "", "[Report](report.md) · [Artifacts](artifacts.md)", "", + "Per-delay audits retain every trial's HTTP/2 connection evidence, initial early POST status, and M1/M3 dispatch. HTTP 400 confirms rejection; client evidence does not identify the server-side cause.", ""] + for delay in delays: + directory = f"delay-{delay}ms" + artifacts.append(f"| {delay} | [Artifacts]({directory}/artifacts.md) | [Audit]({directory}/connection-reuse-audit.md) | [JSON]({directory}/histograms/histogram-data.json) | [CSV]({directory}/histograms/pair-differences.csv) |") + audit.append(f"- [{delay} ms connection reuse audit]({directory}/connection-reuse-audit.md)") + infrastructure = sorted((root / "infrastructure-attempts").glob("*/README.md")) + if infrastructure: + audit.extend(["", "## Infrastructure interruptions", "", + "Install/launch failures produced no paired benchmark measurement. Their files are retained separately; completed measurement pairs excluded by the histogram rules were not repeated. The interrupted pair was restarted as adjacent OFF/ON trials after reconnecting.", ""]) + artifacts.extend(["", "## Infrastructure interruptions", ""]) + for path in infrastructure: + link = f"- [{path.parent.name}]({path.relative_to(root).as_posix()})" + audit.append(link) + artifacts.append(link) + artifacts.extend(["", "Histogram PNG and SVG files are generated with matplotlib. Each metric shares 10 ms bin edges across all delay settings. Exact bin counts, renderer version, generator SHA-256, and input SHA-256 manifests are saved with each delay's evidence.", ""]) + setup_logs = [("build.log", "Build log"), ("trust-preflight.log", "Successful trust preflight")] + links = [f"[{label}](logs/{name})" for name, label in setup_logs if (root / "logs" / name).exists()] + if links: + artifacts.extend([" · ".join(links) + ". Setup and preflight trials are not included in the measurement pairs.", ""]) + (root / "artifacts.md").write_text("\n".join(artifacts)) + (root / "connection-reuse-audit.md").write_text("\n".join(audit) + "\n") + sweep_metadata = {"delaysMs": list(delays), "pairsPerDelay": args.pairs, + "handshakeThresholdMs": args.handshake_threshold_ms, "difference": "ON minus OFF", + "binWidthMs": 10, "generatorSHA256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + "infrastructureAttempts": [path.relative_to(root).as_posix() for path in infrastructure], + "runs": {str(delay): item for delay, item in metadata.items()}} + (root / "run-metadata.json").write_text(json.dumps(sweep_metadata, indent=2) + "\n") + + +if __name__ == "__main__": + main() diff --git a/webchannel/objc/demo/WebChanneliOSDemo/README.md b/webchannel/objc/demo/WebChanneliOSDemo/README.md index 9d65403..65f7c35 100644 --- a/webchannel/objc/demo/WebChanneliOSDemo/README.md +++ b/webchannel/objc/demo/WebChanneliOSDemo/README.md @@ -154,6 +154,14 @@ Set `LENS_INITIAL_MESSAGE_DELAY_MS=50` to schedule Lens M1 50 ms after follows M1 immediately; Viewfinder M2 and M3 remain scheduled at +200 ms and +500 ms after `connect()` returns. +Set `LENS_SCENARIOS=Omnient` to run only Omnient. The +`webchannel/benchmark/lens/run-omnient-delay-sweep.sh` wrapper runs 50 OFF/ON +pairs at each of 0, 50, 100, and 200 ms with binary encoding. Its companion +`summarize-delay-sweep.py` produces TTFA/TTFD ON-minus-OFF histograms, excluding +early POST HTTP 400 pairs, and reports the 400-pair rate. See the +[Lens benchmark report guide](../../../benchmark/lens/README.md#omnient-initial-message-delay-sweep) +for commands and the full inclusion rule. + --- ## 🌐 Testing Endpoints