FORENSIC REPRODUCTION — NO EXPERIMENT REPLAY

Use Python 3 standard library. Work from the extracted release root. No VM is needed for byte/inventory verification. A signed manifest authenticates payload contents; the ZIP is only a transport container. Current candidate is UNSIGNED. Do not execute historical installers, launchers, dispatches, attacks or proposed actions contained in evidence.

1. Obtain the exact manifest SHA-256 and archive SHA-256 from the independent owner handoff. Verify the downloaded ZIP hash before extraction; use a fresh directory. Verify the detached MANIFEST.json.minisig against the independently trusted existing public key:
minisign -Vm MANIFEST.json -x /path/to/MANIFEST.json.minisig -P 'RWRS1+wI01bGz7h6vYSR4m9shqB2/q8FiIpbY8tSgDQnhNZ4qzp+0mSA'
The public-key identity is CFC656D308ECD752, inherited from the existing owner handoffs; confirm trust independently. Never obtain trust solely from an untrusted download.

2. With the handoff digest supplied as EZA_EXPECTED_MANIFEST:
python3 -I -B evaluator/verify_release.py --expected-manifest "$EZA_EXPECTED_MANIFEST"
This unchanged verifier checks exact regular-file membership, sizes and hashes. It does not verify publisher signatures itself. Never regenerate MANIFEST.json to make a failed download pass.

3. Verify complete membership and every nested evidence member without extracting or executing it:
python3 -I -B - <<'PY'
import json,hashlib,tarfile
from pathlib import Path, PurePosixPath
r=Path('.')
rows=json.loads((r/'INSTALLATION-SOURCE-AND-EVIDENCE-INVENTORY.json').read_bytes())['files']
for filename in ['LIVE-EVIDENCE-INVENTORY.json','FINAL-REVIEW-EVIDENCE-INVENTORY.json']:
    v=json.loads((r/filename).read_bytes())
    rows += [dict(x,archive=v['archive']) for x in v['files']]
for archive in sorted(set(x['archive'] for x in rows)):
    name='installation-verification-evidence.tar.gz' if archive=='verification-evidence.tar.gz' else archive
    subset=[x for x in rows if x['archive']==archive]
    expected={x['path']:x for x in subset}
    assert len(expected)==len(subset)
    with tarfile.open(r/name) as t:
        members=t.getmembers()
        assert len(members)==len(expected) and {m.name for m in members}==set(expected)
        for m in members:
            p=PurePosixPath(m.name)
            assert m.isfile() and not p.is_absolute() and '..' not in p.parts
            raw=t.extractfile(m).read();row=expected[m.name]
            assert len(raw)==row['bytes'] and hashlib.sha256(raw).hexdigest()==row['sha256']
    print('PASS',name,len(expected))
PY

4. Trace claims to raw evidence. The historical archive contains the complete selected native case records, not just summary verdicts. Compare Commit217 authority-before/after, NATIVE-RECEIPT and trusted executor journal with ledger result 10. Compare the four 218 case before/after records, receipts and result records 13/16/19/22. Require exact reason codes, zero effects for refusals, immutable ledger prefixes, unchanged grants/resources/consumed roots/prepared state after refusals, and expected auxiliary denial-budget increments only. Verify every canonical ledger hash over the row without its sha256 field using json.dumps(sort_keys=True,separators=(',',':'),ensure_ascii=True,allow_nan=False). Verify receipt begin/done hashes and proof bindings. A COMMITTED denial receipt does not mean an object write.

5. The supplement contains the current authority/physical observations, saved results of the unchanged native result-contract validator, current maintenance observation, independent evidence review, original 219 authority-before.json, manual-test evidence limits and privacy scan. Compare current-authority proof/payload/ledger with attempt 219, and physical hashes/identities with 218 final-physical-evidence. The unchanged authority observer (source SHA-256 516b2d928a45d260168994c264a2140ec6d75f24a8af76aef7fd6afa152c810b) performed native witness/DB/ledger validation under UID 5200. The result-contract validator is the installed unchanged source; native validation was used because the host lacked jsonschema. No local dependency was installed.

6. For an offline maintenance replay, extract the verified maintenance JSON records and existing startup-prerequisite-correction-203/tools/freeze_verify.py into an isolated local review directory. Import that unchanged module with Python bytecode writing disabled and call verify(record['evidence'], record['evidence']['binding']). Require equality with record['existing_verifier_report'], MAINTENANCE FREEZE == VERIFIED and no reasons. This consumes saved observations and makes no guest changes. The module SHA-256 is 20e110bae517720b3ccf95605c61d2a91853bfced83a4fb031066ded599afc0f.

7. Reconstruct the outer ZIP exactly from an already verified frozen root using the same simple format: lexical path order, regular files only, one candidate-name prefix, ZIP_STORED, fixed timestamp 1980-01-01 00:00:00, create_system=3, external_attr=(0o100644 << 16), no comments or extra fields. A generic ZIP created with other metadata need not have the same archive digest, even with identical contents. The handoff identifies the approved transport bytes.

8. Historical Release176/218 manifests and complete ZIP digests are recorded in PRIOR-RELEASES-UNCHANGED.json in the supplement. They were independently verified against retained local originals; those entire old ZIP containers are not duplicated in this package. Their selected candidate/source/installation/native archives are included unchanged. The workspace retains every original, including failures, drafts and unexecuted scenarios. No claim is made that all workspace history is published.

No live action is needed to reproduce this evidence inventory. Repeating a native experiment is outside this procedure and outside this release authorization.
