# Containers of the qqww-t4 bundle: the boundary-regeneration chain hosted beside the script, three files available on request

The two sector containers and the regenerated node pair below are available on request until a Zenodo-class home exists; `row35_chain.tar.gz` is hosted with the bundle (beside `eval_row35.py`; unpack it there with `tar xzf row35_chain.tar.gz`). Each is named here by file name, sha256 and byte
size so that a copy obtained by any route can be checked before use; `eval_row35.py`
reads the machine-readable twin of this table, `containers.json`, and checks size and
sha256 of any container it finds beside itself (a mismatch refuses by name with exit
code 3; a required container that is absent refuses with exit code 4 and prints this
table's line for it).  `python3 eval_row35.py --containers` prints the status of every
entry as found beside the script.

Placement: beside eval_row35.py (same directory); tarballs are unpacked there.

| file | sha256 | bytes | holds | role | availability |
|---|---|---|---|---|---|
| `row35_radical_feed_b421.json` | `fc69acf55870ffa14807865950e7f954e5c41670b1099baa8f51cca6a3bbc95f` | 508,033,204 | certified closed-form container of sector 421 (masters 33-35): ~1.9M-term layered-VoP containers at eps^-2..eps^1, exact-zero-remainder identity checked in-run (35/35) | optional | available on request until a Zenodo-class home exists |
| `row35_radical_feed_b453.json` | `77939c132e770f400f53be09cf5453a8a1f63c6e1d9c608b667acefaca3adc2a` | 486,957,056 | certified closed-form container of sector 453 (masters 48-50): same construction as sector 421 (identity 35/35 in-run) | optional | available on request until a Zenodo-class home exists |
| `row35_chain.tar.gz` | `89d64799b6ddda59d6971f4989003e10b8e21df142e2bd6bb88f5e56d8005185` | 1,769,154 | the boundary-regeneration chain: the gate driver t4_chain.py (fixed-eps replay of the eta-chain from the exact boundary tables: Gamma endings -> seed at eta=inf -> 79x79 eta-march -> Frobenius arrival at eta=0 -> R(d)-map), the production driver production/t4_chain.py that solved the shipped node bank (flint march, --rmap-out), their python dependencies (chain_transport.py, flint_march.py, detransport/), the exact symbolic boundary tables bdump/, the reduction tables vendor/ (727-entry sha manifest), the fixed-d0 oracle out_d0_1013.json the GATE-D0 form gates against, the recorded gate reports chain_out/ and the two-precision ceiling demonstration ceiling_demo/ (dps150 vs dps210, 157.9-161.7 d) | required by --boundary-recompute (all forms) | hosted with the bundle (beside eval_row35.py; unpack there) |
| `row35_fresh_pair.tar.gz` | `f7ca345b7a093be5bbbe9dd2664d9e8200c6e0678ad0de7af3559f8923d8297a` | 776,107 | the 48 node solves regenerated from the chain on 2026-08-08 (24 primes x dps130/dps160, production driver, --rmap-out) with their sha manifest; per-row values agree with the shipped bank row35_nodes/ at the comparator floor (999.0 d = identical strings, all 24 primes, dps130 sweep) | reference record; consumed by --nodes-source fresh:DIR, whose consumer code is not part of this download | available on request until a Zenodo-class home exists |

## What each mode of `eval_row35.py` needs

| mode | needs beside the script | in this table |
|---|---|---|
| default, `--point`, `--master`, `--gate-full`, `--cached`, `--check`, `--mutate`, `--check-expression` | nothing; with `row35_radical_feed_b421.json` / `_b453.json` beside the script, masters 33-35 / 48-50 are folded from the closed-form containers instead of being transported | optional rows |
| `--boundary-recompute [DPS] [--bc-rows N]` (GATE-D0 replay of the chain against the fixed-d0 oracle) | `row35_chain/` unpacked from `row35_chain.tar.gz` (hosted with the bundle) | required row |
| `--boundary-recompute [DPS] --gate-bc-only` (reduced boundary-table gate) | `row35_chain/` | required row |
| `--boundary-recompute DPS --regenerate-node Q` (one from-definition node solve, compared row by row to the shipped bank) | `row35_chain/` | required row |
| `--nodes-source fresh:DIR` | a two-precision node pair such as `row35_fresh_pair/` AND the consumer code path, which is not in this download | reference row; code not hosted |
| `--e4-extract` | the transport-on-demand node-cache code path, which is not in this download | none (code, not a container) |

## Notes

* The fan-claim cap of the value path stays at 40 digits (`FAN_CLAIM_CAP`): it is the
  measured capacity of the shipped 24-node bank, and it lifts when the containers are
  distributable and a deeper bank is regenerated from the chain.
* Exit codes of `--boundary-recompute`: 3 when a container or a chain member does not
  match its manifest; 4 when `row35_chain/` (or `containers.json`) is absent or a chain
  member is missing; 5 when a gate falls below its bar -- the GATE-D0 replay more than
  0.5 digits under the recorded worst for its form, a GATE-BC failure reported by the
  driver, a regenerated node under dps-10 digits against the shipped bank, a driver
  that exits nonzero, or a node file left incomplete by a solve that exited 0.  The
  chain lines of a run print every path under the script's directory relative to it
  (`row35_chain/...`, `row35_chain_work/...`).
* `row35_chain.tar.gz` unpacks to `row35_chain/` (763 members, every one listed
  in `row35_chain/MANIFEST.sha256.json`); the evaluator drives both drivers from there
  and writes every run product under `row35_chain_work/` beside the script, so the
  container directory is never modified by a run.
* From 2026-09-11 `row35_chain.tar.gz` is hosted with the bundle (sha256 `89d64799b6ddda59d6971f4989003e10b8e21df142e2bd6bb88f5e56d8005185`,
  1,769,154 bytes). Its text members were re-cut for release: comments and provenance notes name no
  directory of the machine the code was written on, and the two drivers' default module / data paths now
  resolve inside `row35_chain/` itself (no statement of a solve path moved), so its sha256 differs from the
  one this table carried while the container was on request (`f70bc8f7da19cca7...`, CHANGES.md).
* The 48-solve regeneration of the whole bank (24 primes x two precisions) is one
  `--regenerate-node` call per prime and precision; each call is its own checkpoint
  (the node file it writes; a finished node is skipped on rerun).  The recorded
  single-core wall of one dps130 node is 54 min (508 MB resident), so the full
  regeneration is a multi-core-hour job; `--boundary-recompute --bc-rows 5` at dps 60
  and `--gate-bc-only` are the minutes-class forms.

Emitted 2026-09-11T19:45:37Z by build_containers_v2.py (the successor of build_containers.py, which emitted the previous table 2026-09-05T22:10:24Z) from the bytes of the files named above; exit-code note added 2026-09-06T00:25:08Z, its fifth condition 2026-09-06T02:34:02Z (CHANGES.md).
