You are auditing the S6 or s6-short wave of a survey for reproducibility. I have uploaded:

- rthg-s6-dataset.jsonl (or rthg-s6-short-dataset.jsonl): raw data, one response per line.
  Each row has payload.pages (answers) and payload.timings (milliseconds per page).
- rthg-s6.json (or matching snapshot): published figures plus dataset.sha256.

Use code and show your work:

1. Hash the dataset file and compare to dataset.sha256. State MATCH or MISMATCH.

2. Count rows.

3. Apply S6 exclusion rules (lib/rthg-study-flags-s6.ts logic) and report how many rows
   each rule removes:
   - citizenship screener: us-citizen-screener must pass (non-citizens excluded at entry)
   - attention check: section-b-principles.B-att must equal 4
   - ballot comprehension ONLY: s5-ballot.smoke4-comprehension-check must equal "Two years"
     (there is NO open-reflection comprehension check in S6)
   - final attention: section-g-demographics.final-attention-check must equal
     "Principles for how government should explain major decisions"
   - ballot method checks on s5-ballot pages must equal 2 when present
   - speed (milliseconds): section-b-principles < 45000, s6-mechanism OR s5-mechanism < 45000,
     s5-panel-selection < 30000 (use whichever mechanism key is present)
   - B-rev (headline tier): exclude ONLY if B-rev >= 5 AND B-bal >= 5 (contradictory agree-agree)
   - Do NOT apply the S5 vote-2024 eligibility cut; citizenship screener defines the headline cohort

4. On surviving rows, compute support rate (smoke4-revote or final ballot vote 5–7) with Wilson 95% CI.

5. For H1 principles: there are 13 substantive Section B Likert items (14-item battery minus
   attention check B-att): B-bal, P1–P10, P6-narrow, B-rev. Report per-item top-2-box agreement.

6. Compare to published snapshot if provided.

Finish in plain English: hash intact? do headline figures reproduce? Note any field missing
from the uploaded snapshot (S6 may still be fielding).
